go.arsenm.dev/pcre@v0.0.0-20220530205550-74594f6c8b0e/lib/pcre2_linux_riscv64.go (about) 1 // Code generated by 'ccgo -o pcre2_linux_riscv64.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 = int64 /* <builtin>:3:26 */ 2551 2552 type Tsize_t = uint64 /* <builtin>:9:23 */ 2553 2554 type Twchar_t = int32 /* <builtin>:15:24 */ 2555 2556 type T__int128_t = struct { 2557 Flo int64 2558 Fhi int64 2559 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128 2560 type T__uint128_t = struct { 2561 Flo uint64 2562 Fhi uint64 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 = uint64 /* 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 = int64 /* types.h:44:25 */ 3610 type T__uint64_t = uint64 /* 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 = int64 /* types.h:63:18 */ 3624 type T__u_quad_t = uint64 /* types.h:64:27 */ 3625 3626 // Largest integral types. 3627 type T__intmax_t = int64 /* types.h:72:18 */ 3628 type T__uintmax_t = uint64 /* 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 = uint64 /* 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 = uint64 /* types.h:148:25 */ // Type of file serial numbers. 3723 type T__ino64_t = uint64 /* 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 = uint64 /* types.h:151:27 */ // Type of file link counts. 3726 type T__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. 3727 type T__off64_t = int64 /* 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 = int64 /* types.h:156:27 */ // Type of CPU usage counts. 3731 type T__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. 3732 type T__rlim64_t = uint64 /* 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 = int64 /* 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 = int64 /* types.h:162:31 */ // Signed count of microseconds. 3737 type T__suseconds64_t = int64 /* 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 = int64 /* 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 = int64 /* types.h:180:28 */ 3755 type T__blkcnt64_t = int64 /* types.h:181:30 */ 3756 3757 // Type to count file system blocks. 3758 type T__fsblkcnt_t = uint64 /* types.h:184:30 */ 3759 type T__fsblkcnt64_t = uint64 /* types.h:185:32 */ 3760 3761 // Type to count file system nodes. 3762 type T__fsfilcnt_t = uint64 /* types.h:188:30 */ 3763 type T__fsfilcnt64_t = uint64 /* types.h:189:32 */ 3764 3765 // Type of miscellaneous file system fields. 3766 type T__fsword_t = int64 /* types.h:192:28 */ 3767 3768 type T__ssize_t = int64 /* 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 = int64 /* types.h:197:33 */ 3772 // Unsigned long type used in system calls. 3773 type T__syscall_ulong_t = uint64 /* 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 = int64 /* 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__ccgo_pad1 [4]byte 4180 F_IO_read_ptr uintptr 4181 F_IO_read_end uintptr 4182 F_IO_read_base uintptr 4183 F_IO_write_base uintptr 4184 F_IO_write_ptr uintptr 4185 F_IO_write_end uintptr 4186 F_IO_buf_base uintptr 4187 F_IO_buf_end uintptr 4188 F_IO_save_base uintptr 4189 F_IO_backup_base uintptr 4190 F_IO_save_end uintptr 4191 F_markers uintptr 4192 F_chain uintptr 4193 F_fileno int32 4194 F_flags2 int32 4195 F_old_offset T__off_t 4196 F_cur_column uint16 4197 F_vtable_offset int8 4198 F_shortbuf [1]uint8 4199 F__ccgo_pad2 [4]byte 4200 F_lock uintptr 4201 F_offset T__off64_t 4202 F_codecvt uintptr 4203 F_wide_data uintptr 4204 F_freeres_list uintptr 4205 F_freeres_buf uintptr 4206 F__pad5 Tsize_t 4207 F_mode int32 4208 F_unused2 [20]uint8 4209 } /* __FILE.h:4:1 */ 4210 4211 type T__FILE = S_IO_FILE /* __FILE.h:5:25 */ 4212 4213 // The opaque type of streams. This is the definition used elsewhere. 4214 type TFILE = S_IO_FILE /* FILE.h:7:25 */ 4215 4216 // The structure with the cookie function pointers. 4217 // The tag name of this struct is _IO_cookie_io_functions_t to 4218 // preserve historic C++ mangled names for functions taking 4219 // cookie_io_functions_t arguments. That name should not be used in 4220 // new code. 4221 type S_IO_cookie_io_functions_t = struct { 4222 Fread uintptr 4223 Fwrite uintptr 4224 Fseek uintptr 4225 Fclose uintptr 4226 } /* cookie_io_functions_t.h:55:9 */ 4227 4228 // The structure with the cookie function pointers. 4229 // The tag name of this struct is _IO_cookie_io_functions_t to 4230 // preserve historic C++ mangled names for functions taking 4231 // cookie_io_functions_t arguments. That name should not be used in 4232 // new code. 4233 type Tcookie_io_functions_t = S_IO_cookie_io_functions_t /* cookie_io_functions_t.h:61:3 */ 4234 4235 type Tva_list = T__gnuc_va_list /* stdio.h:52:24 */ 4236 4237 type Toff_t = T__off64_t /* stdio.h:65:19 */ 4238 type Toff64_t = T__off64_t /* stdio.h:70:19 */ 4239 4240 type Tssize_t = T__ssize_t /* stdio.h:77:19 */ 4241 4242 // The type of the second argument to `fgetpos' and `fsetpos'. 4243 type Tfpos_t = T__fpos64_t /* stdio.h:86:20 */ 4244 type Tfpos64_t = T__fpos64_t /* stdio.h:89:20 */ 4245 4246 // If we are compiling with optimizing read this file. It contains 4247 // several optimizing inline functions and macros. 4248 4249 // Macros to control TS 18661-3 glibc features on x86. 4250 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 4251 // This file is part of the GNU C Library. 4252 // 4253 // The GNU C Library is free software; you can redistribute it and/or 4254 // modify it under the terms of the GNU Lesser General Public 4255 // License as published by the Free Software Foundation; either 4256 // version 2.1 of the License, or (at your option) any later version. 4257 // 4258 // The GNU C Library is distributed in the hope that it will be useful, 4259 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4260 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4261 // Lesser General Public License for more details. 4262 // 4263 // You should have received a copy of the GNU Lesser General Public 4264 // License along with the GNU C Library; if not, see 4265 // <https://www.gnu.org/licenses/>. 4266 4267 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4268 // Copyright The GNU Toolchain Authors. 4269 // This file is part of the GNU C Library. 4270 // 4271 // The GNU C Library is free software; you can redistribute it and/or 4272 // modify it under the terms of the GNU Lesser General Public 4273 // License as published by the Free Software Foundation; either 4274 // version 2.1 of the License, or (at your option) any later version. 4275 // 4276 // The GNU C Library is distributed in the hope that it will be useful, 4277 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4278 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4279 // Lesser General Public License for more details. 4280 // 4281 // You should have received a copy of the GNU Lesser General Public 4282 // License along with the GNU C Library; if not, see 4283 // <https://www.gnu.org/licenses/>. 4284 4285 // ISO C99 Standard: 7.20 General utilities <stdlib.h> 4286 4287 // Handle feature test macros at the start of a header. 4288 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 4289 // This file is part of the GNU C Library. 4290 // 4291 // The GNU C Library is free software; you can redistribute it and/or 4292 // modify it under the terms of the GNU Lesser General Public 4293 // License as published by the Free Software Foundation; either 4294 // version 2.1 of the License, or (at your option) any later version. 4295 // 4296 // The GNU C Library is distributed in the hope that it will be useful, 4297 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4298 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4299 // Lesser General Public License for more details. 4300 // 4301 // You should have received a copy of the GNU Lesser General Public 4302 // License along with the GNU C Library; if not, see 4303 // <https://www.gnu.org/licenses/>. 4304 4305 // This header is internal to glibc and should not be included outside 4306 // of glibc headers. Headers including it must define 4307 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 4308 // cannot have multiple include guards because ISO C feature test 4309 // macros depend on the definition of the macro when an affected 4310 // header is included, not when the first system header is 4311 // included. 4312 4313 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4314 // This file is part of the GNU C Library. 4315 // 4316 // The GNU C Library is free software; you can redistribute it and/or 4317 // modify it under the terms of the GNU Lesser General Public 4318 // License as published by the Free Software Foundation; either 4319 // version 2.1 of the License, or (at your option) any later version. 4320 // 4321 // The GNU C Library is distributed in the hope that it will be useful, 4322 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4323 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4324 // Lesser General Public License for more details. 4325 // 4326 // You should have received a copy of the GNU Lesser General Public 4327 // License along with the GNU C Library; if not, see 4328 // <https://www.gnu.org/licenses/>. 4329 4330 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 4331 // macro. 4332 4333 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 4334 // macro. Most but not all symbols enabled by that macro in TS 4335 // 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in 4336 // Annex F still require a new feature test macro 4337 // __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define 4338 // __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 4339 // 18661-1 are not included in C2X (and thus should depend on 4340 // __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are 4341 // enabled). 4342 // 4343 // __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 4344 // 18661-1 not included in C2X. 4345 // 4346 // __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS 4347 // 18661-1 that are also included in C2X (with no feature test macro 4348 // required in C2X). 4349 // 4350 // __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 4351 // that are included in C2X but conditional on 4352 // __STDC_WANT_IEC_60559_EXT__. (There are currently no features 4353 // conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 4354 // 18661-1.) 4355 4356 // ISO/IEC TS 18661-4:2015 defines the 4357 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 4358 // functions, the symbols from this TS are enabled unconditionally in 4359 // C2X. 4360 4361 // ISO/IEC TS 18661-3:2015 defines the 4362 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 4363 4364 // Get size_t, wchar_t and NULL from <stddef.h>. 4365 // Copyright (C) 1989-2021 Free Software Foundation, Inc. 4366 // 4367 // This file is part of GCC. 4368 // 4369 // GCC is free software; you can redistribute it and/or modify 4370 // it under the terms of the GNU General Public License as published by 4371 // the Free Software Foundation; either version 3, or (at your option) 4372 // any later version. 4373 // 4374 // GCC is distributed in the hope that it will be useful, 4375 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4376 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4377 // GNU General Public License for more details. 4378 // 4379 // Under Section 7 of GPL version 3, you are granted additional 4380 // permissions described in the GCC Runtime Library Exception, version 4381 // 3.1, as published by the Free Software Foundation. 4382 // 4383 // You should have received a copy of the GNU General Public License and 4384 // a copy of the GCC Runtime Library Exception along with this program; 4385 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4386 // <http://www.gnu.org/licenses/>. 4387 4388 // ISO C Standard: 7.17 Common definitions <stddef.h> 4389 4390 // Any one of these symbols __need_* means that GNU libc 4391 // wants us just to define one data type. So don't define 4392 // the symbols that indicate this file's entire job has been done. 4393 4394 // This avoids lossage on SunOS but only if stdtypes.h comes first. 4395 // There's no way to win with the other order! Sun lossage. 4396 4397 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 4398 // Just ignore it. 4399 4400 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 4401 // _TYPE_size_t which will typedef size_t. fixincludes patched the 4402 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 4403 // not defined, and so that defining this macro defines _GCC_SIZE_T. 4404 // If we find that the macros are still defined at this point, we must 4405 // invoke them so that the type is defined as expected. 4406 4407 // In case nobody has defined these types, but we aren't running under 4408 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4409 // __WCHAR_TYPE__ have reasonable values. This can happen if the 4410 // parts of GCC is compiled by an older compiler, that actually 4411 // include gstddef.h, such as collect2. 4412 4413 // Signed type of difference of two pointers. 4414 4415 // Define this type if we are doing the whole job, 4416 // or if we want this type in particular. 4417 4418 // If this symbol has done its job, get rid of it. 4419 4420 // Unsigned type of `sizeof' something. 4421 4422 // Define this type if we are doing the whole job, 4423 // or if we want this type in particular. 4424 4425 // Wide character type. 4426 // Locale-writers should change this as necessary to 4427 // be big enough to hold unique values not between 0 and 127, 4428 // and not (wchar_t) -1, for each defined multibyte character. 4429 4430 // Define this type if we are doing the whole job, 4431 // or if we want this type in particular. 4432 4433 // A null pointer constant. 4434 4435 // Offset of member MEMBER in a struct of type TYPE. 4436 4437 // XPG requires a few symbols from <sys/wait.h> being defined. 4438 // Definitions of flag bits for `waitpid' et al. 4439 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 4440 // This file is part of the GNU C Library. 4441 // 4442 // The GNU C Library is free software; you can redistribute it and/or 4443 // modify it under the terms of the GNU Lesser General Public 4444 // License as published by the Free Software Foundation; either 4445 // version 2.1 of the License, or (at your option) any later version. 4446 // 4447 // The GNU C Library is distributed in the hope that it will be useful, 4448 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4449 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4450 // Lesser General Public License for more details. 4451 // 4452 // You should have received a copy of the GNU Lesser General Public 4453 // License along with the GNU C Library; if not, see 4454 // <https://www.gnu.org/licenses/>. 4455 4456 // Bits in the third argument to `waitpid'. 4457 4458 // Bits in the fourth argument to `waitid'. 4459 4460 // Definitions of status bits for `wait' et al. 4461 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 4462 // This file is part of the GNU C Library. 4463 // 4464 // The GNU C Library is free software; you can redistribute it and/or 4465 // modify it under the terms of the GNU Lesser General Public 4466 // License as published by the Free Software Foundation; either 4467 // version 2.1 of the License, or (at your option) any later version. 4468 // 4469 // The GNU C Library is distributed in the hope that it will be useful, 4470 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4471 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4472 // Lesser General Public License for more details. 4473 // 4474 // You should have received a copy of the GNU Lesser General Public 4475 // License along with the GNU C Library; if not, see 4476 // <https://www.gnu.org/licenses/>. 4477 4478 // Everything extant so far uses these same bits. 4479 4480 // If WIFEXITED(STATUS), the low-order 8 bits of the status. 4481 4482 // If WIFSIGNALED(STATUS), the terminating signal. 4483 4484 // If WIFSTOPPED(STATUS), the signal that stopped the child. 4485 4486 // Nonzero if STATUS indicates normal termination. 4487 4488 // Nonzero if STATUS indicates termination by a signal. 4489 4490 // Nonzero if STATUS indicates the child is stopped. 4491 4492 // Nonzero if STATUS indicates the child continued after a stop. We only 4493 // define this if <bits/waitflags.h> provides the WCONTINUED flag bit. 4494 4495 // Nonzero if STATUS indicates the child dumped core. 4496 4497 // Macros for constructing status values. 4498 4499 // Define the macros <sys/wait.h> also would define this way. 4500 4501 // _FloatN API tests for enablement. 4502 // Macros to control TS 18661-3 glibc features on x86. 4503 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 4504 // This file is part of the GNU C Library. 4505 // 4506 // The GNU C Library is free software; you can redistribute it and/or 4507 // modify it under the terms of the GNU Lesser General Public 4508 // License as published by the Free Software Foundation; either 4509 // version 2.1 of the License, or (at your option) any later version. 4510 // 4511 // The GNU C Library is distributed in the hope that it will be useful, 4512 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4513 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4514 // Lesser General Public License for more details. 4515 // 4516 // You should have received a copy of the GNU Lesser General Public 4517 // License along with the GNU C Library; if not, see 4518 // <https://www.gnu.org/licenses/>. 4519 4520 // Returned by `div'. 4521 type Tdiv_t = struct { 4522 Fquot int32 4523 Frem int32 4524 } /* stdlib.h:63:5 */ 4525 4526 // Returned by `ldiv'. 4527 type Tldiv_t = struct { 4528 Fquot int64 4529 Frem int64 4530 } /* stdlib.h:71:5 */ 4531 4532 // Returned by `lldiv'. 4533 type Tlldiv_t = struct { 4534 Fquot int64 4535 Frem int64 4536 } /* stdlib.h:81:5 */ 4537 4538 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4539 // This file is part of the GNU C Library. 4540 // 4541 // The GNU C Library is free software; you can redistribute it and/or 4542 // modify it under the terms of the GNU Lesser General Public 4543 // License as published by the Free Software Foundation; either 4544 // version 2.1 of the License, or (at your option) any later version. 4545 // 4546 // The GNU C Library is distributed in the hope that it will be useful, 4547 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4548 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4549 // Lesser General Public License for more details. 4550 // 4551 // You should have received a copy of the GNU Lesser General Public 4552 // License along with the GNU C Library; if not, see 4553 // <https://www.gnu.org/licenses/>. 4554 4555 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 4556 4557 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4558 // This file is part of the GNU C Library. 4559 // 4560 // The GNU C Library is free software; you can redistribute it and/or 4561 // modify it under the terms of the GNU Lesser General Public 4562 // License as published by the Free Software Foundation; either 4563 // version 2.1 of the License, or (at your option) any later version. 4564 // 4565 // The GNU C Library is distributed in the hope that it will be useful, 4566 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4567 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4568 // Lesser General Public License for more details. 4569 // 4570 // You should have received a copy of the GNU Lesser General Public 4571 // License along with the GNU C Library; if not, see 4572 // <https://www.gnu.org/licenses/>. 4573 4574 // bits/types.h -- definitions of __*_t types underlying *_t types. 4575 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4576 // This file is part of the GNU C Library. 4577 // 4578 // The GNU C Library is free software; you can redistribute it and/or 4579 // modify it under the terms of the GNU Lesser General Public 4580 // License as published by the Free Software Foundation; either 4581 // version 2.1 of the License, or (at your option) any later version. 4582 // 4583 // The GNU C Library is distributed in the hope that it will be useful, 4584 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4585 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4586 // Lesser General Public License for more details. 4587 // 4588 // You should have received a copy of the GNU Lesser General Public 4589 // License along with the GNU C Library; if not, see 4590 // <https://www.gnu.org/licenses/>. 4591 4592 // Never include this file directly; use <sys/types.h> instead. 4593 4594 type Tu_char = T__u_char /* types.h:33:18 */ 4595 type Tu_short = T__u_short /* types.h:34:19 */ 4596 type Tu_int = T__u_int /* types.h:35:17 */ 4597 type Tu_long = T__u_long /* types.h:36:18 */ 4598 type Tquad_t = T__quad_t /* types.h:37:18 */ 4599 type Tu_quad_t = T__u_quad_t /* types.h:38:20 */ 4600 type Tfsid_t = T__fsid_t /* types.h:39:18 */ 4601 type Tloff_t = T__loff_t /* types.h:42:18 */ 4602 4603 type Tino_t = T__ino64_t /* types.h:49:19 */ 4604 type Tino64_t = T__ino64_t /* types.h:54:19 */ 4605 4606 type Tdev_t = T__dev_t /* types.h:59:17 */ 4607 4608 type Tgid_t = T__gid_t /* types.h:64:17 */ 4609 4610 type Tmode_t = T__mode_t /* types.h:69:18 */ 4611 4612 type Tnlink_t = T__nlink_t /* types.h:74:19 */ 4613 4614 type Tuid_t = T__uid_t /* types.h:79:17 */ 4615 4616 type Tpid_t = T__pid_t /* types.h:97:17 */ 4617 4618 type Tid_t = T__id_t /* types.h:103:16 */ 4619 4620 type Tdaddr_t = T__daddr_t /* types.h:114:19 */ 4621 type Tcaddr_t = T__caddr_t /* types.h:115:19 */ 4622 4623 type Tkey_t = T__key_t /* types.h:121:17 */ 4624 4625 // bits/types.h -- definitions of __*_t types underlying *_t types. 4626 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4627 // This file is part of the GNU C Library. 4628 // 4629 // The GNU C Library is free software; you can redistribute it and/or 4630 // modify it under the terms of the GNU Lesser General Public 4631 // License as published by the Free Software Foundation; either 4632 // version 2.1 of the License, or (at your option) any later version. 4633 // 4634 // The GNU C Library is distributed in the hope that it will be useful, 4635 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4636 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4637 // Lesser General Public License for more details. 4638 // 4639 // You should have received a copy of the GNU Lesser General Public 4640 // License along with the GNU C Library; if not, see 4641 // <https://www.gnu.org/licenses/>. 4642 4643 // Never include this file directly; use <sys/types.h> instead. 4644 4645 // Returned by `clock'. 4646 type Tclock_t = T__clock_t /* clock_t.h:7:19 */ 4647 4648 // bits/types.h -- definitions of __*_t types underlying *_t types. 4649 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4650 // This file is part of the GNU C Library. 4651 // 4652 // The GNU C Library is free software; you can redistribute it and/or 4653 // modify it under the terms of the GNU Lesser General Public 4654 // License as published by the Free Software Foundation; either 4655 // version 2.1 of the License, or (at your option) any later version. 4656 // 4657 // The GNU C Library is distributed in the hope that it will be useful, 4658 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4659 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4660 // Lesser General Public License for more details. 4661 // 4662 // You should have received a copy of the GNU Lesser General Public 4663 // License along with the GNU C Library; if not, see 4664 // <https://www.gnu.org/licenses/>. 4665 4666 // Never include this file directly; use <sys/types.h> instead. 4667 4668 // Clock ID used in clock and timer functions. 4669 type Tclockid_t = T__clockid_t /* clockid_t.h:7:21 */ 4670 4671 // bits/types.h -- definitions of __*_t types underlying *_t types. 4672 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4673 // This file is part of the GNU C Library. 4674 // 4675 // The GNU C Library is free software; you can redistribute it and/or 4676 // modify it under the terms of the GNU Lesser General Public 4677 // License as published by the Free Software Foundation; either 4678 // version 2.1 of the License, or (at your option) any later version. 4679 // 4680 // The GNU C Library is distributed in the hope that it will be useful, 4681 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4682 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4683 // Lesser General Public License for more details. 4684 // 4685 // You should have received a copy of the GNU Lesser General Public 4686 // License along with the GNU C Library; if not, see 4687 // <https://www.gnu.org/licenses/>. 4688 4689 // Never include this file directly; use <sys/types.h> instead. 4690 4691 // Returned by `time'. 4692 type Ttime_t = T__time_t /* time_t.h:10:18 */ 4693 4694 // bits/types.h -- definitions of __*_t types underlying *_t types. 4695 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4696 // This file is part of the GNU C Library. 4697 // 4698 // The GNU C Library is free software; you can redistribute it and/or 4699 // modify it under the terms of the GNU Lesser General Public 4700 // License as published by the Free Software Foundation; either 4701 // version 2.1 of the License, or (at your option) any later version. 4702 // 4703 // The GNU C Library is distributed in the hope that it will be useful, 4704 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4705 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4706 // Lesser General Public License for more details. 4707 // 4708 // You should have received a copy of the GNU Lesser General Public 4709 // License along with the GNU C Library; if not, see 4710 // <https://www.gnu.org/licenses/>. 4711 4712 // Never include this file directly; use <sys/types.h> instead. 4713 4714 // Timer ID returned by `timer_create'. 4715 type Ttimer_t = T__timer_t /* timer_t.h:7:19 */ 4716 4717 type Tuseconds_t = T__useconds_t /* types.h:134:22 */ 4718 type Tsuseconds_t = T__suseconds_t /* types.h:138:23 */ 4719 4720 // Copyright (C) 1989-2021 Free Software Foundation, Inc. 4721 // 4722 // This file is part of GCC. 4723 // 4724 // GCC is free software; you can redistribute it and/or modify 4725 // it under the terms of the GNU General Public License as published by 4726 // the Free Software Foundation; either version 3, or (at your option) 4727 // any later version. 4728 // 4729 // GCC is distributed in the hope that it will be useful, 4730 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4731 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4732 // GNU General Public License for more details. 4733 // 4734 // Under Section 7 of GPL version 3, you are granted additional 4735 // permissions described in the GCC Runtime Library Exception, version 4736 // 3.1, as published by the Free Software Foundation. 4737 // 4738 // You should have received a copy of the GNU General Public License and 4739 // a copy of the GCC Runtime Library Exception along with this program; 4740 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4741 // <http://www.gnu.org/licenses/>. 4742 4743 // ISO C Standard: 7.17 Common definitions <stddef.h> 4744 4745 // Any one of these symbols __need_* means that GNU libc 4746 // wants us just to define one data type. So don't define 4747 // the symbols that indicate this file's entire job has been done. 4748 4749 // This avoids lossage on SunOS but only if stdtypes.h comes first. 4750 // There's no way to win with the other order! Sun lossage. 4751 4752 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 4753 // Just ignore it. 4754 4755 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 4756 // _TYPE_size_t which will typedef size_t. fixincludes patched the 4757 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 4758 // not defined, and so that defining this macro defines _GCC_SIZE_T. 4759 // If we find that the macros are still defined at this point, we must 4760 // invoke them so that the type is defined as expected. 4761 4762 // In case nobody has defined these types, but we aren't running under 4763 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4764 // __WCHAR_TYPE__ have reasonable values. This can happen if the 4765 // parts of GCC is compiled by an older compiler, that actually 4766 // include gstddef.h, such as collect2. 4767 4768 // Signed type of difference of two pointers. 4769 4770 // Define this type if we are doing the whole job, 4771 // or if we want this type in particular. 4772 4773 // If this symbol has done its job, get rid of it. 4774 4775 // Unsigned type of `sizeof' something. 4776 4777 // Define this type if we are doing the whole job, 4778 // or if we want this type in particular. 4779 4780 // Wide character type. 4781 // Locale-writers should change this as necessary to 4782 // be big enough to hold unique values not between 0 and 127, 4783 // and not (wchar_t) -1, for each defined multibyte character. 4784 4785 // Define this type if we are doing the whole job, 4786 // or if we want this type in particular. 4787 4788 // A null pointer constant. 4789 4790 // Offset of member MEMBER in a struct of type TYPE. 4791 4792 // Old compatibility names for C types. 4793 type Tulong = uint64 /* types.h:148:27 */ 4794 type Tushort = uint16 /* types.h:149:28 */ 4795 type Tuint = uint32 /* types.h:150:22 */ 4796 4797 // These size-specific names are used by some of the inet code. 4798 4799 // Define intN_t types. 4800 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 4801 // This file is part of the GNU C Library. 4802 // 4803 // The GNU C Library is free software; you can redistribute it and/or 4804 // modify it under the terms of the GNU Lesser General Public 4805 // License as published by the Free Software Foundation; either 4806 // version 2.1 of the License, or (at your option) any later version. 4807 // 4808 // The GNU C Library is distributed in the hope that it will be useful, 4809 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4810 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4811 // Lesser General Public License for more details. 4812 // 4813 // You should have received a copy of the GNU Lesser General Public 4814 // License along with the GNU C Library; if not, see 4815 // <https://www.gnu.org/licenses/>. 4816 4817 // bits/types.h -- definitions of __*_t types underlying *_t types. 4818 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4819 // This file is part of the GNU C Library. 4820 // 4821 // The GNU C Library is free software; you can redistribute it and/or 4822 // modify it under the terms of the GNU Lesser General Public 4823 // License as published by the Free Software Foundation; either 4824 // version 2.1 of the License, or (at your option) any later version. 4825 // 4826 // The GNU C Library is distributed in the hope that it will be useful, 4827 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4828 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4829 // Lesser General Public License for more details. 4830 // 4831 // You should have received a copy of the GNU Lesser General Public 4832 // License along with the GNU C Library; if not, see 4833 // <https://www.gnu.org/licenses/>. 4834 4835 // Never include this file directly; use <sys/types.h> instead. 4836 4837 type Tint8_t = T__int8_t /* stdint-intn.h:24:18 */ 4838 type Tint16_t = T__int16_t /* stdint-intn.h:25:19 */ 4839 type Tint32_t = T__int32_t /* stdint-intn.h:26:19 */ 4840 type Tint64_t = T__int64_t /* stdint-intn.h:27:19 */ 4841 4842 // These were defined by ISO C without the first `_'. 4843 type Tu_int8_t = T__uint8_t /* types.h:158:19 */ 4844 type Tu_int16_t = T__uint16_t /* types.h:159:20 */ 4845 type Tu_int32_t = T__uint32_t /* types.h:160:20 */ 4846 type Tu_int64_t = T__uint64_t /* types.h:161:20 */ 4847 4848 type Tregister_t = int32 /* types.h:164:13 */ 4849 4850 // It also defines `fd_set' and the FD_* macros for `select'. 4851 // `fd_set' type and related macros, and `select'/`pselect' declarations. 4852 // Copyright (C) 1996-2022 Free Software Foundation, Inc. 4853 // This file is part of the GNU C Library. 4854 // 4855 // The GNU C Library is free software; you can redistribute it and/or 4856 // modify it under the terms of the GNU Lesser General Public 4857 // License as published by the Free Software Foundation; either 4858 // version 2.1 of the License, or (at your option) any later version. 4859 // 4860 // The GNU C Library is distributed in the hope that it will be useful, 4861 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4862 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4863 // Lesser General Public License for more details. 4864 // 4865 // You should have received a copy of the GNU Lesser General Public 4866 // License along with the GNU C Library; if not, see 4867 // <https://www.gnu.org/licenses/>. 4868 4869 // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> 4870 4871 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4872 // This file is part of the GNU C Library. 4873 // 4874 // The GNU C Library is free software; you can redistribute it and/or 4875 // modify it under the terms of the GNU Lesser General Public 4876 // License as published by the Free Software Foundation; either 4877 // version 2.1 of the License, or (at your option) any later version. 4878 // 4879 // The GNU C Library is distributed in the hope that it will be useful, 4880 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4881 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4882 // Lesser General Public License for more details. 4883 // 4884 // You should have received a copy of the GNU Lesser General Public 4885 // License along with the GNU C Library; if not, see 4886 // <https://www.gnu.org/licenses/>. 4887 4888 // Get definition of needed basic types. 4889 // bits/types.h -- definitions of __*_t types underlying *_t types. 4890 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4891 // This file is part of the GNU C Library. 4892 // 4893 // The GNU C Library is free software; you can redistribute it and/or 4894 // modify it under the terms of the GNU Lesser General Public 4895 // License as published by the Free Software Foundation; either 4896 // version 2.1 of the License, or (at your option) any later version. 4897 // 4898 // The GNU C Library is distributed in the hope that it will be useful, 4899 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4900 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4901 // Lesser General Public License for more details. 4902 // 4903 // You should have received a copy of the GNU Lesser General Public 4904 // License along with the GNU C Library; if not, see 4905 // <https://www.gnu.org/licenses/>. 4906 4907 // Never include this file directly; use <sys/types.h> instead. 4908 4909 // Get __FD_* definitions. 4910 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 4911 // This file is part of the GNU C Library. 4912 // 4913 // The GNU C Library is free software; you can redistribute it and/or 4914 // modify it under the terms of the GNU Lesser General Public 4915 // License as published by the Free Software Foundation; either 4916 // version 2.1 of the License, or (at your option) any later version. 4917 // 4918 // The GNU C Library is distributed in the hope that it will be useful, 4919 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4920 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4921 // Lesser General Public License for more details. 4922 // 4923 // You should have received a copy of the GNU Lesser General Public 4924 // License along with the GNU C Library; if not, see 4925 // <https://www.gnu.org/licenses/>. 4926 4927 // We don't use `memset' because this would require a prototype and 4928 // the array isn't too big. 4929 4930 // Get sigset_t. 4931 4932 type T__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */ 4933 4934 // A set of signals to be blocked, unblocked, or waited for. 4935 type Tsigset_t = T__sigset_t /* sigset_t.h:7:20 */ 4936 4937 // Get definition of timer specification structures. 4938 4939 // bits/types.h -- definitions of __*_t types underlying *_t types. 4940 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4941 // This file is part of the GNU C Library. 4942 // 4943 // The GNU C Library is free software; you can redistribute it and/or 4944 // modify it under the terms of the GNU Lesser General Public 4945 // License as published by the Free Software Foundation; either 4946 // version 2.1 of the License, or (at your option) any later version. 4947 // 4948 // The GNU C Library is distributed in the hope that it will be useful, 4949 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4950 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4951 // Lesser General Public License for more details. 4952 // 4953 // You should have received a copy of the GNU Lesser General Public 4954 // License along with the GNU C Library; if not, see 4955 // <https://www.gnu.org/licenses/>. 4956 4957 // Never include this file directly; use <sys/types.h> instead. 4958 4959 // A time value that is accurate to the nearest 4960 // microsecond but also has a range of years. 4961 type Stimeval = struct { 4962 Ftv_sec T__time_t 4963 Ftv_usec T__suseconds_t 4964 } /* struct_timeval.h:8:1 */ 4965 4966 // NB: Include guard matches what <linux/time.h> uses. 4967 4968 // bits/types.h -- definitions of __*_t types underlying *_t types. 4969 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4970 // This file is part of the GNU C Library. 4971 // 4972 // The GNU C Library is free software; you can redistribute it and/or 4973 // modify it under the terms of the GNU Lesser General Public 4974 // License as published by the Free Software Foundation; either 4975 // version 2.1 of the License, or (at your option) any later version. 4976 // 4977 // The GNU C Library is distributed in the hope that it will be useful, 4978 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4979 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4980 // Lesser General Public License for more details. 4981 // 4982 // You should have received a copy of the GNU Lesser General Public 4983 // License along with the GNU C Library; if not, see 4984 // <https://www.gnu.org/licenses/>. 4985 4986 // Never include this file directly; use <sys/types.h> instead. 4987 4988 // Endian macros for string.h functions 4989 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 4990 // This file is part of the GNU C Library. 4991 // 4992 // The GNU C Library is free software; you can redistribute it and/or 4993 // modify it under the terms of the GNU Lesser General Public 4994 // License as published by the Free Software Foundation; either 4995 // version 2.1 of the License, or (at your option) any later version. 4996 // 4997 // The GNU C Library is distributed in the hope that it will be useful, 4998 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4999 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5000 // Lesser General Public License for more details. 5001 // 5002 // You should have received a copy of the GNU Lesser General Public 5003 // License along with the GNU C Library; if not, see 5004 // <http://www.gnu.org/licenses/>. 5005 5006 // POSIX.1b structure for a time value. This is like a `struct timeval' but 5007 // has nanoseconds instead of microseconds. 5008 type Stimespec = struct { 5009 Ftv_sec T__time_t 5010 Ftv_nsec T__syscall_slong_t 5011 } /* struct_timespec.h:11:1 */ 5012 5013 // The fd_set member is required to be an array of longs. 5014 type T__fd_mask = int64 /* select.h:49:18 */ 5015 5016 // Some versions of <linux/posix_types.h> define this macros. 5017 // It's easier to assume 8-bit bytes than to get CHAR_BIT. 5018 5019 // fd_set for select and pselect. 5020 type Tfd_set = struct{ Ffds_bits [16]T__fd_mask } /* select.h:70:5 */ 5021 5022 // Maximum number of file descriptors in `fd_set'. 5023 5024 // Sometimes the fd_set member is assumed to have this type. 5025 type Tfd_mask = T__fd_mask /* select.h:77:19 */ 5026 5027 // Define some inlines helping to catch common problems. 5028 5029 type Tblksize_t = T__blksize_t /* types.h:185:21 */ 5030 5031 // Types from the Large File Support interface. 5032 type Tblkcnt_t = T__blkcnt64_t /* types.h:205:22 */ // Type to count number of disk blocks. 5033 type Tfsblkcnt_t = T__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks. 5034 type Tfsfilcnt_t = T__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes. 5035 5036 type Tblkcnt64_t = T__blkcnt64_t /* types.h:219:22 */ // Type to count number of disk blocks. 5037 type Tfsblkcnt64_t = T__fsblkcnt64_t /* types.h:220:24 */ // Type to count file system blocks. 5038 type Tfsfilcnt64_t = T__fsfilcnt64_t /* types.h:221:24 */ // Type to count file system inodes. 5039 5040 // Now add the thread types. 5041 // Declaration of common pthread types for all architectures. 5042 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5043 // This file is part of the GNU C Library. 5044 // 5045 // The GNU C Library is free software; you can redistribute it and/or 5046 // modify it under the terms of the GNU Lesser General Public 5047 // License as published by the Free Software Foundation; either 5048 // version 2.1 of the License, or (at your option) any later version. 5049 // 5050 // The GNU C Library is distributed in the hope that it will be useful, 5051 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5052 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5053 // Lesser General Public License for more details. 5054 // 5055 // You should have received a copy of the GNU Lesser General Public 5056 // License along with the GNU C Library; if not, see 5057 // <https://www.gnu.org/licenses/>. 5058 5059 // For internal mutex and condition variable definitions. 5060 // Common threading primitives definitions for both POSIX and C11. 5061 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5062 // This file is part of the GNU C Library. 5063 // 5064 // The GNU C Library is free software; you can redistribute it and/or 5065 // modify it under the terms of the GNU Lesser General Public 5066 // License as published by the Free Software Foundation; either 5067 // version 2.1 of the License, or (at your option) any later version. 5068 // 5069 // The GNU C Library is distributed in the hope that it will be useful, 5070 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5071 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5072 // Lesser General Public License for more details. 5073 // 5074 // You should have received a copy of the GNU Lesser General Public 5075 // License along with the GNU C Library; if not, see 5076 // <https://www.gnu.org/licenses/>. 5077 5078 // Arch-specific definitions. Each architecture must define the following 5079 // macros to define the expected sizes of pthread data types: 5080 // 5081 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 5082 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 5083 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 5084 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 5085 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 5086 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 5087 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 5088 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 5089 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 5090 // 5091 // The additional macro defines any constraint for the lock alignment 5092 // inside the thread structures: 5093 // 5094 // __LOCK_ALIGNMENT - for internal lock/futex usage. 5095 // 5096 // Same idea but for the once locking primitive: 5097 // 5098 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 5099 5100 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 5101 // This file is part of the GNU C Library. 5102 // 5103 // The GNU C Library is free software; you can redistribute it and/or 5104 // modify it under the terms of the GNU Lesser General Public 5105 // License as published by the Free Software Foundation; either 5106 // version 2.1 of the License, or (at your option) any later version. 5107 // 5108 // The GNU C Library is distributed in the hope that it will be useful, 5109 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5110 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5111 // Lesser General Public License for more details. 5112 // 5113 // You should have received a copy of the GNU Lesser General Public 5114 // License along with the GNU C Library; if not, see 5115 // <https://www.gnu.org/licenses/>. 5116 5117 // Determine the wordsize from the preprocessor defines. 5118 5119 // Both x86-64 and x32 use the 64-bit system call interface. 5120 5121 // Monotonically increasing wide counters (at least 62 bits). 5122 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 5123 // This file is part of the GNU C Library. 5124 // 5125 // The GNU C Library is free software; you can redistribute it and/or 5126 // modify it under the terms of the GNU Lesser General Public 5127 // License as published by the Free Software Foundation; either 5128 // version 2.1 of the License, or (at your option) any later version. 5129 // 5130 // The GNU C Library is distributed in the hope that it will be useful, 5131 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5132 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5133 // Lesser General Public License for more details. 5134 // 5135 // You should have received a copy of the GNU Lesser General Public 5136 // License along with the GNU C Library; if not, see 5137 // <https://www.gnu.org/licenses/>. 5138 5139 // Counter that is monotonically increasing (by less than 2**31 per 5140 // increment), with a single writer, and an arbitrary number of 5141 // readers. 5142 type T__atomic_wide_counter = struct{ F__value64 uint64 } /* atomic_wide_counter.h:33:3 */ 5143 5144 // Common definition of pthread_mutex_t. 5145 5146 type S__pthread_internal_list = struct { 5147 F__prev uintptr 5148 F__next uintptr 5149 } /* thread-shared-types.h:51:9 */ 5150 5151 // Common definition of pthread_mutex_t. 5152 5153 type T__pthread_list_t = S__pthread_internal_list /* thread-shared-types.h:55:3 */ 5154 5155 type S__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:57:9 */ 5156 5157 type T__pthread_slist_t = S__pthread_internal_slist /* thread-shared-types.h:60:3 */ 5158 5159 // Arch-specific mutex definitions. A generic implementation is provided 5160 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 5161 // can override it by defining: 5162 // 5163 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 5164 // definition). It should contains at least the internal members 5165 // defined in the generic version. 5166 // 5167 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 5168 // atomic operations. 5169 // 5170 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 5171 // It should initialize the mutex internal flag. 5172 5173 // x86 internal mutex struct definitions. 5174 // Copyright (C) 2019-2022 Free Software Foundation, Inc. 5175 // This file is part of the GNU C Library. 5176 // 5177 // The GNU C Library is free software; you can redistribute it and/or 5178 // modify it under the terms of the GNU Lesser General Public 5179 // License as published by the Free Software Foundation; either 5180 // version 2.1 of the License, or (at your option) any later version. 5181 // 5182 // The GNU C Library is distributed in the hope that it will be useful, 5183 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5184 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5185 // Lesser General Public License for more details. 5186 // 5187 // You should have received a copy of the GNU Lesser General Public 5188 // License along with the GNU C Library; if not, see 5189 // <http://www.gnu.org/licenses/>. 5190 5191 type S__pthread_mutex_s = struct { 5192 F__lock int32 5193 F__count uint32 5194 F__owner int32 5195 F__nusers uint32 5196 F__kind int32 5197 F__spins int16 5198 F__elision int16 5199 F__list T__pthread_list_t 5200 } /* struct_mutex.h:22:1 */ 5201 5202 // Arch-sepecific read-write lock definitions. A generic implementation is 5203 // provided by struct_rwlock.h. If required, an architecture can override it 5204 // by defining: 5205 // 5206 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 5207 // It should contain at least the internal members defined in the 5208 // generic version. 5209 // 5210 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 5211 // It should initialize the rwlock internal type. 5212 5213 // x86 internal rwlock struct definitions. 5214 // Copyright (C) 2019-2022 Free Software Foundation, Inc. 5215 // 5216 // This file is part of the GNU C Library. 5217 // 5218 // The GNU C Library is free software; you can redistribute it and/or 5219 // modify it under the terms of the GNU Lesser General Public 5220 // License as published by the Free Software Foundation; either 5221 // version 2.1 of the License, or (at your option) any later version. 5222 // 5223 // The GNU C Library is distributed in the hope that it will be useful, 5224 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5225 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5226 // Lesser General Public License for more details. 5227 // 5228 // You should have received a copy of the GNU Lesser General Public 5229 // License along with the GNU C Library; if not, see 5230 // <http://www.gnu.org/licenses/>. 5231 5232 type S__pthread_rwlock_arch_t = struct { 5233 F__readers uint32 5234 F__writers uint32 5235 F__wrphase_futex uint32 5236 F__writers_futex uint32 5237 F__pad3 uint32 5238 F__pad4 uint32 5239 F__cur_writer int32 5240 F__shared int32 5241 F__rwelision int8 5242 F__pad1 [7]uint8 5243 F__pad2 uint64 5244 F__flags uint32 5245 F__ccgo_pad1 [4]byte 5246 } /* struct_rwlock.h:23:1 */ 5247 5248 // Common definition of pthread_cond_t. 5249 5250 type S__pthread_cond_s = struct { 5251 F__wseq T__atomic_wide_counter 5252 F__g1_start T__atomic_wide_counter 5253 F__g_refs [2]uint32 5254 F__g_size [2]uint32 5255 F__g1_orig_size uint32 5256 F__wrefs uint32 5257 F__g_signals [2]uint32 5258 } /* thread-shared-types.h:94:1 */ 5259 5260 type T__tss_t = uint32 /* thread-shared-types.h:105:22 */ 5261 type T__thrd_t = uint64 /* thread-shared-types.h:106:27 */ 5262 5263 type T__once_flag = struct{ F__data int32 } /* thread-shared-types.h:111:3 */ 5264 5265 // Thread identifiers. The structure of the attribute type is not 5266 // exposed on purpose. 5267 type Tpthread_t = uint64 /* pthreadtypes.h:27:27 */ 5268 5269 // Data structures for mutex handling. The structure of the attribute 5270 // type is not exposed on purpose. 5271 type Tpthread_mutexattr_t = struct { 5272 F__ccgo_pad1 [0]uint32 5273 F__size [4]uint8 5274 } /* pthreadtypes.h:36:3 */ 5275 5276 // Data structure for condition variable handling. The structure of 5277 // the attribute type is not exposed on purpose. 5278 type Tpthread_condattr_t = struct { 5279 F__ccgo_pad1 [0]uint32 5280 F__size [4]uint8 5281 } /* pthreadtypes.h:45:3 */ 5282 5283 // Keys for thread-specific data 5284 type Tpthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 5285 5286 // Once-only execution 5287 type Tpthread_once_t = int32 /* pthreadtypes.h:53:30 */ 5288 5289 type Spthread_attr_t = struct { 5290 F__ccgo_pad1 [0]uint64 5291 F__size [56]uint8 5292 } /* pthreadtypes.h:56:1 */ 5293 5294 type Tpthread_attr_t = Spthread_attr_t /* pthreadtypes.h:62:30 */ 5295 5296 type Tpthread_mutex_t = struct{ F__data S__pthread_mutex_s } /* 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{ F__data S__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ 5303 5304 type Tpthread_rwlockattr_t = struct { 5305 F__ccgo_pad1 [0]uint64 5306 F__size [8]uint8 5307 } /* pthreadtypes.h:97:3 */ 5308 5309 // POSIX spinlock data type. 5310 type Tpthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 5311 5312 // POSIX barriers data type. The structure of the type is 5313 // deliberately not exposed. 5314 type Tpthread_barrier_t = struct { 5315 F__ccgo_pad1 [0]uint64 5316 F__size [32]uint8 5317 } /* pthreadtypes.h:112:3 */ 5318 5319 type Tpthread_barrierattr_t = struct { 5320 F__ccgo_pad1 [0]uint32 5321 F__size [4]uint8 5322 } /* pthreadtypes.h:118:3 */ 5323 5324 // Reentrant versions of the `random' family of functions. 5325 // These functions all use the following data structure to contain 5326 // state, rather than global state variables. 5327 5328 type Srandom_data = struct { 5329 Ffptr uintptr 5330 Frptr uintptr 5331 Fstate uintptr 5332 Frand_type int32 5333 Frand_deg int32 5334 Frand_sep int32 5335 F__ccgo_pad1 [4]byte 5336 Fend_ptr uintptr 5337 } /* stdlib.h:424:1 */ 5338 5339 // Data structure for communication with thread safe versions. This 5340 // type is to be regarded as opaque. It's only exported because users 5341 // have to allocate objects of this type. 5342 type Sdrand48_data = struct { 5343 F__x [3]uint16 5344 F__old_x [3]uint16 5345 F__c uint16 5346 F__init uint16 5347 F__a uint64 5348 } /* stdlib.h:491:1 */ 5349 5350 // Shorthand for type of comparison functions. 5351 type T__compar_fn_t = uintptr /* stdlib.h:816:13 */ 5352 5353 type Tcomparison_fn_t = T__compar_fn_t /* stdlib.h:819:23 */ 5354 type T__compar_d_fn_t = uintptr /* stdlib.h:823:13 */ 5355 5356 // Macros to make boolean values more obvious. The #ifndef is to pacify 5357 // compiler warnings in environments where these macros are defined elsewhere. 5358 // Unfortunately, there is no way to do the same for the typedef. 5359 5360 type TBOOL = int32 /* pcre2_internal.h:67:13 */ 5361 5362 // Valgrind (memcheck) support 5363 5364 // -ftrivial-auto-var-init support supports initializing all local variables 5365 // to avoid some classes of bug, but this can cause an unacceptable slowdown 5366 // for large on-stack arrays in hot functions. This macro lets us annotate 5367 // such arrays. 5368 5369 // Older versions of MSVC lack snprintf(). This define allows for 5370 // warning/error-free compilation and testing with MSVC compilers back to at least 5371 // MSVC 10/2010. Except for VC6 (which is missing some fundamentals and fails). 5372 5373 // When compiling a DLL for Windows, the exported symbols have to be declared 5374 // using some MS magic. I found some useful information on this web page: 5375 // http://msdn2.microsoft.com/en-us/library/y4h7bcy6(VS.80).aspx. According to the 5376 // information there, using __declspec(dllexport) without "extern" we have a 5377 // definition; with "extern" we have a declaration. The settings here override the 5378 // setting in pcre2.h (which is included below); it defines only PCRE2_EXP_DECL, 5379 // which is all that is needed for applications (they just import the symbols). We 5380 // use: 5381 // 5382 // PCRE2_EXP_DECL for declarations 5383 // PCRE2_EXP_DEFN for definitions 5384 // 5385 // The reason for wrapping this in #ifndef PCRE2_EXP_DECL is so that pcre2test, 5386 // which is an application, but needs to import this file in order to "peek" at 5387 // internals, can #include pcre2.h first to get an application's-eye view. 5388 // 5389 // In principle, people compiling for non-Windows, non-Unix-like (i.e. uncommon, 5390 // special-purpose environments) might want to stick other stuff in front of 5391 // exported symbols. That's why, in the non-Windows case, we set PCRE2_EXP_DEFN 5392 // only if it is not already set. 5393 5394 // Include the public PCRE2 header and the definitions of UCP character 5395 // property values. This must follow the setting of PCRE2_EXP_DECL above. 5396 5397 // ************************************************ 5398 // 5399 // Perl-Compatible Regular Expressions * 5400 // 5401 5402 // This is the public header file for the PCRE library, second API, to be 5403 // #included by applications that call PCRE2 functions. 5404 // 5405 // Copyright (c) 2016-2021 University of Cambridge 5406 // 5407 // ----------------------------------------------------------------------------- 5408 // Redistribution and use in source and binary forms, with or without 5409 // modification, are permitted provided that the following conditions are met: 5410 // 5411 // * Redistributions of source code must retain the above copyright notice, 5412 // this list of conditions and the following disclaimer. 5413 // 5414 // * Redistributions in binary form must reproduce the above copyright 5415 // notice, this list of conditions and the following disclaimer in the 5416 // documentation and/or other materials provided with the distribution. 5417 // 5418 // * Neither the name of the University of Cambridge nor the names of its 5419 // contributors may be used to endorse or promote products derived from 5420 // this software without specific prior written permission. 5421 // 5422 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 5423 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 5424 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 5425 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 5426 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 5427 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 5428 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 5429 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 5430 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 5431 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 5432 // POSSIBILITY OF SUCH DAMAGE. 5433 // ----------------------------------------------------------------------------- 5434 5435 // The current PCRE version information. 5436 5437 // When an application links to a PCRE DLL in Windows, the symbols that are 5438 // imported have to be identified as such. When building PCRE2, the appropriate 5439 // export setting is defined in pcre2_internal.h, which includes this file. So we 5440 // don't change existing definitions of PCRE2_EXP_DECL. 5441 5442 // By default, we use the standard "extern" declarations. 5443 5444 // When compiling with the MSVC compiler, it is sometimes necessary to include 5445 // a "calling convention" before exported function names. (This is secondhand 5446 // information; I know nothing about MSVC myself). For example, something like 5447 // 5448 // void __cdecl function(....) 5449 // 5450 // might be needed. In order so make this easy, all the exported functions have 5451 // PCRE2_CALL_CONVENTION just before their names. It is rarely needed; if not 5452 // set, we ensure here that it has no effect. 5453 5454 // Have to include limits.h, stdlib.h, and inttypes.h to ensure that size_t and 5455 // uint8_t, UCHAR_MAX, etc are defined. Some systems that do have inttypes.h do 5456 // not have stdint.h, which is why we use inttypes.h, which according to the C 5457 // standard is a superset of stdint.h. If inttypes.h is not available the build 5458 // will break and the relevant values must be provided by some other means. 5459 5460 // Copyright (C) 1992-2021 Free Software Foundation, Inc. 5461 // 5462 // This file is part of GCC. 5463 // 5464 // GCC is free software; you can redistribute it and/or modify it under 5465 // the terms of the GNU General Public License as published by the Free 5466 // Software Foundation; either version 3, or (at your option) any later 5467 // version. 5468 // 5469 // GCC is distributed in the hope that it will be useful, but WITHOUT ANY 5470 // WARRANTY; without even the implied warranty of MERCHANTABILITY or 5471 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 5472 // for more details. 5473 // 5474 // Under Section 7 of GPL version 3, you are granted additional 5475 // permissions described in the GCC Runtime Library Exception, version 5476 // 3.1, as published by the Free Software Foundation. 5477 // 5478 // You should have received a copy of the GNU General Public License and 5479 // a copy of the GCC Runtime Library Exception along with this program; 5480 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 5481 // <http://www.gnu.org/licenses/>. 5482 5483 // This administrivia gets added to the beginning of limits.h 5484 // if the system has its own version of limits.h. 5485 5486 // We use _GCC_LIMITS_H_ because we want this not to match 5487 // any macros that the system's limits.h uses for its own purposes. 5488 5489 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 5490 // Copyright The GNU Toolchain Authors. 5491 // This file is part of the GNU C Library. 5492 // 5493 // The GNU C Library is free software; you can redistribute it and/or 5494 // modify it under the terms of the GNU Lesser General Public 5495 // License as published by the Free Software Foundation; either 5496 // version 2.1 of the License, or (at your option) any later version. 5497 // 5498 // The GNU C Library is distributed in the hope that it will be useful, 5499 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5500 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5501 // Lesser General Public License for more details. 5502 // 5503 // You should have received a copy of the GNU Lesser General Public 5504 // License along with the GNU C Library; if not, see 5505 // <https://www.gnu.org/licenses/>. 5506 5507 // ISO C99 Standard: 7.20 General utilities <stdlib.h> 5508 5509 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 5510 // This file is part of the GNU C Library. 5511 // 5512 // The GNU C Library is free software; you can redistribute it and/or 5513 // modify it under the terms of the GNU Lesser General Public 5514 // License as published by the Free Software Foundation; either 5515 // version 2.1 of the License, or (at your option) any later version. 5516 // 5517 // The GNU C Library is distributed in the hope that it will be useful, 5518 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5519 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5520 // Lesser General Public License for more details. 5521 // 5522 // You should have received a copy of the GNU Lesser General Public 5523 // License along with the GNU C Library; if not, see 5524 // <https://www.gnu.org/licenses/>. 5525 5526 // ISO C99: 7.8 Format conversion of integer types <inttypes.h> 5527 5528 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 5529 // This file is part of the GNU C Library. 5530 // 5531 // The GNU C Library is free software; you can redistribute it and/or 5532 // modify it under the terms of the GNU Lesser General Public 5533 // License as published by the Free Software Foundation; either 5534 // version 2.1 of the License, or (at your option) any later version. 5535 // 5536 // The GNU C Library is distributed in the hope that it will be useful, 5537 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5538 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5539 // Lesser General Public License for more details. 5540 // 5541 // You should have received a copy of the GNU Lesser General Public 5542 // License along with the GNU C Library; if not, see 5543 // <https://www.gnu.org/licenses/>. 5544 5545 // Get the type definitions. 5546 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 5547 // This file is part of the GNU C Library. 5548 // 5549 // The GNU C Library is free software; you can redistribute it and/or 5550 // modify it under the terms of the GNU Lesser General Public 5551 // License as published by the Free Software Foundation; either 5552 // version 2.1 of the License, or (at your option) any later version. 5553 // 5554 // The GNU C Library is distributed in the hope that it will be useful, 5555 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5556 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5557 // Lesser General Public License for more details. 5558 // 5559 // You should have received a copy of the GNU Lesser General Public 5560 // License along with the GNU C Library; if not, see 5561 // <https://www.gnu.org/licenses/>. 5562 5563 // ISO C99: 7.18 Integer types <stdint.h> 5564 5565 // Handle feature test macros at the start of a header. 5566 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 5567 // This file is part of the GNU C Library. 5568 // 5569 // The GNU C Library is free software; you can redistribute it and/or 5570 // modify it under the terms of the GNU Lesser General Public 5571 // License as published by the Free Software Foundation; either 5572 // version 2.1 of the License, or (at your option) any later version. 5573 // 5574 // The GNU C Library is distributed in the hope that it will be useful, 5575 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5576 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5577 // Lesser General Public License for more details. 5578 // 5579 // You should have received a copy of the GNU Lesser General Public 5580 // License along with the GNU C Library; if not, see 5581 // <https://www.gnu.org/licenses/>. 5582 5583 // This header is internal to glibc and should not be included outside 5584 // of glibc headers. Headers including it must define 5585 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 5586 // cannot have multiple include guards because ISO C feature test 5587 // macros depend on the definition of the macro when an affected 5588 // header is included, not when the first system header is 5589 // included. 5590 5591 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 5592 // This file is part of the GNU C Library. 5593 // 5594 // The GNU C Library is free software; you can redistribute it and/or 5595 // modify it under the terms of the GNU Lesser General Public 5596 // License as published by the Free Software Foundation; either 5597 // version 2.1 of the License, or (at your option) any later version. 5598 // 5599 // The GNU C Library is distributed in the hope that it will be useful, 5600 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5601 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5602 // Lesser General Public License for more details. 5603 // 5604 // You should have received a copy of the GNU Lesser General Public 5605 // License along with the GNU C Library; if not, see 5606 // <https://www.gnu.org/licenses/>. 5607 5608 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 5609 // macro. 5610 5611 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 5612 // macro. Most but not all symbols enabled by that macro in TS 5613 // 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in 5614 // Annex F still require a new feature test macro 5615 // __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define 5616 // __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 5617 // 18661-1 are not included in C2X (and thus should depend on 5618 // __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are 5619 // enabled). 5620 // 5621 // __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 5622 // 18661-1 not included in C2X. 5623 // 5624 // __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS 5625 // 18661-1 that are also included in C2X (with no feature test macro 5626 // required in C2X). 5627 // 5628 // __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 5629 // that are included in C2X but conditional on 5630 // __STDC_WANT_IEC_60559_EXT__. (There are currently no features 5631 // conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 5632 // 18661-1.) 5633 5634 // ISO/IEC TS 18661-4:2015 defines the 5635 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 5636 // functions, the symbols from this TS are enabled unconditionally in 5637 // C2X. 5638 5639 // ISO/IEC TS 18661-3:2015 defines the 5640 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 5641 // bits/types.h -- definitions of __*_t types underlying *_t types. 5642 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 5643 // This file is part of the GNU C Library. 5644 // 5645 // The GNU C Library is free software; you can redistribute it and/or 5646 // modify it under the terms of the GNU Lesser General Public 5647 // License as published by the Free Software Foundation; either 5648 // version 2.1 of the License, or (at your option) any later version. 5649 // 5650 // The GNU C Library is distributed in the hope that it will be useful, 5651 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5652 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5653 // Lesser General Public License for more details. 5654 // 5655 // You should have received a copy of the GNU Lesser General Public 5656 // License along with the GNU C Library; if not, see 5657 // <https://www.gnu.org/licenses/>. 5658 5659 // Never include this file directly; use <sys/types.h> instead. 5660 5661 // wchar_t type related definitions. 5662 // Copyright (C) 2000-2022 Free Software Foundation, Inc. 5663 // This file is part of the GNU C Library. 5664 // 5665 // The GNU C Library is free software; you can redistribute it and/or 5666 // modify it under the terms of the GNU Lesser General Public 5667 // License as published by the Free Software Foundation; either 5668 // version 2.1 of the License, or (at your option) any later version. 5669 // 5670 // The GNU C Library is distributed in the hope that it will be useful, 5671 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5672 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5673 // Lesser General Public License for more details. 5674 // 5675 // You should have received a copy of the GNU Lesser General Public 5676 // License along with the GNU C Library; if not, see 5677 // <https://www.gnu.org/licenses/>. 5678 5679 // The fallback definitions, for when __WCHAR_MAX__ or __WCHAR_MIN__ 5680 // are not defined, give the right value and type as long as both int 5681 // and wchar_t are 32-bit types. Adding L'\0' to a constant value 5682 // ensures that the type is correct; it is necessary to use (L'\0' + 5683 // 0) rather than just L'\0' so that the type in C++ is the promoted 5684 // version of wchar_t rather than the distinct wchar_t type itself. 5685 // Because wchar_t in preprocessor #if expressions is treated as 5686 // intmax_t or uintmax_t, the expression (L'\0' - 1) would have the 5687 // wrong value for WCHAR_MAX in such expressions and so cannot be used 5688 // to define __WCHAR_MAX in the unsigned case. 5689 5690 // Determine the wordsize from the preprocessor defines. 5691 5692 // Both x86-64 and x32 use the 64-bit system call interface. 5693 5694 // Exact integral types. 5695 5696 // Signed. 5697 // Define intN_t types. 5698 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5699 // This file is part of the GNU C Library. 5700 // 5701 // The GNU C Library is free software; you can redistribute it and/or 5702 // modify it under the terms of the GNU Lesser General Public 5703 // License as published by the Free Software Foundation; either 5704 // version 2.1 of the License, or (at your option) any later version. 5705 // 5706 // The GNU C Library is distributed in the hope that it will be useful, 5707 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5708 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5709 // Lesser General Public License for more details. 5710 // 5711 // You should have received a copy of the GNU Lesser General Public 5712 // License along with the GNU C Library; if not, see 5713 // <https://www.gnu.org/licenses/>. 5714 5715 // Unsigned. 5716 // Define uintN_t types. 5717 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5718 // This file is part of the GNU C Library. 5719 // 5720 // The GNU C Library is free software; you can redistribute it and/or 5721 // modify it under the terms of the GNU Lesser General Public 5722 // License as published by the Free Software Foundation; either 5723 // version 2.1 of the License, or (at your option) any later version. 5724 // 5725 // The GNU C Library is distributed in the hope that it will be useful, 5726 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5727 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5728 // Lesser General Public License for more details. 5729 // 5730 // You should have received a copy of the GNU Lesser General Public 5731 // License along with the GNU C Library; if not, see 5732 // <https://www.gnu.org/licenses/>. 5733 5734 // bits/types.h -- definitions of __*_t types underlying *_t types. 5735 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 5736 // This file is part of the GNU C Library. 5737 // 5738 // The GNU C Library is free software; you can redistribute it and/or 5739 // modify it under the terms of the GNU Lesser General Public 5740 // License as published by the Free Software Foundation; either 5741 // version 2.1 of the License, or (at your option) any later version. 5742 // 5743 // The GNU C Library is distributed in the hope that it will be useful, 5744 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5745 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5746 // Lesser General Public License for more details. 5747 // 5748 // You should have received a copy of the GNU Lesser General Public 5749 // License along with the GNU C Library; if not, see 5750 // <https://www.gnu.org/licenses/>. 5751 5752 // Never include this file directly; use <sys/types.h> instead. 5753 5754 type Tuint8_t = T__uint8_t /* stdint-uintn.h:24:19 */ 5755 type Tuint16_t = T__uint16_t /* stdint-uintn.h:25:20 */ 5756 type Tuint32_t = T__uint32_t /* stdint-uintn.h:26:20 */ 5757 type Tuint64_t = T__uint64_t /* stdint-uintn.h:27:20 */ 5758 5759 // Small types. 5760 5761 // Signed. 5762 type Tint_least8_t = T__int_least8_t /* stdint.h:43:24 */ 5763 type Tint_least16_t = T__int_least16_t /* stdint.h:44:25 */ 5764 type Tint_least32_t = T__int_least32_t /* stdint.h:45:25 */ 5765 type Tint_least64_t = T__int_least64_t /* stdint.h:46:25 */ 5766 5767 // Unsigned. 5768 type Tuint_least8_t = T__uint_least8_t /* stdint.h:49:25 */ 5769 type Tuint_least16_t = T__uint_least16_t /* stdint.h:50:26 */ 5770 type Tuint_least32_t = T__uint_least32_t /* stdint.h:51:26 */ 5771 type Tuint_least64_t = T__uint_least64_t /* stdint.h:52:26 */ 5772 5773 // Fast types. 5774 5775 // Signed. 5776 type Tint_fast8_t = int8 /* stdint.h:58:22 */ 5777 type Tint_fast16_t = int64 /* stdint.h:60:19 */ 5778 type Tint_fast32_t = int64 /* stdint.h:61:19 */ 5779 type Tint_fast64_t = int64 /* stdint.h:62:19 */ 5780 5781 // Unsigned. 5782 type Tuint_fast8_t = uint8 /* stdint.h:71:24 */ 5783 type Tuint_fast16_t = uint64 /* stdint.h:73:27 */ 5784 type Tuint_fast32_t = uint64 /* stdint.h:74:27 */ 5785 type Tuint_fast64_t = uint64 /* stdint.h:75:27 */ 5786 5787 // Types for `void *' pointers. 5788 type Tintptr_t = int64 /* stdint.h:87:19 */ 5789 type Tuintptr_t = uint64 /* stdint.h:90:27 */ 5790 5791 // Largest integral types. 5792 type Tintmax_t = T__intmax_t /* stdint.h:101:21 */ 5793 type Tuintmax_t = T__uintmax_t /* stdint.h:102:22 */ 5794 5795 // Limits of integral types. 5796 5797 // Minimum of signed integral types. 5798 // Maximum of signed integral types. 5799 5800 // Maximum of unsigned integral types. 5801 5802 // Minimum of signed integral types having a minimum size. 5803 // Maximum of signed integral types having a minimum size. 5804 5805 // Maximum of unsigned integral types having a minimum size. 5806 5807 // Minimum of fast signed integral types having a minimum size. 5808 // Maximum of fast signed integral types having a minimum size. 5809 5810 // Maximum of fast unsigned integral types having a minimum size. 5811 5812 // Values to test for integral types holding `void *' pointer. 5813 5814 // Minimum for largest signed integral type. 5815 // Maximum for largest signed integral type. 5816 5817 // Maximum for largest unsigned integral type. 5818 5819 // Limits of other integer types. 5820 5821 // Limits of `ptrdiff_t' type. 5822 5823 // Limits of `sig_atomic_t'. 5824 5825 // Limit of `size_t' type. 5826 5827 // Limits of `wchar_t'. 5828 // These constants might also be defined in <wchar.h>. 5829 5830 // Limits of `wint_t'. 5831 5832 // Signed. 5833 5834 // Unsigned. 5835 5836 // Maximal type. 5837 5838 // Get a definition for wchar_t. But we must not define wchar_t itself. 5839 type T__gwchar_t = int32 /* inttypes.h:34:24 */ 5840 5841 // Macros for printing format specifiers. 5842 5843 // Decimal notation. 5844 5845 // Octal notation. 5846 5847 // Unsigned integers. 5848 5849 // lowercase hexadecimal notation. 5850 5851 // UPPERCASE hexadecimal notation. 5852 5853 // Macros for printing `intmax_t' and `uintmax_t'. 5854 5855 // Macros for printing `intptr_t' and `uintptr_t'. 5856 5857 // Macros for scanning format specifiers. 5858 5859 // Signed decimal notation. 5860 5861 // Signed decimal notation. 5862 5863 // Unsigned decimal notation. 5864 5865 // Octal notation. 5866 5867 // Hexadecimal notation. 5868 5869 // Macros for scanning `intmax_t' and `uintmax_t'. 5870 5871 // Macros for scaning `intptr_t' and `uintptr_t'. 5872 5873 // We have to define the `uintmax_t' type using `ldiv_t'. 5874 type Timaxdiv_t = struct { 5875 Fquot int64 5876 Frem int64 5877 } /* inttypes.h:275:5 */ 5878 5879 // Allow for C++ users compiling this directly. 5880 5881 // The following option bits can be passed to pcre2_compile(), pcre2_match(), 5882 // or pcre2_dfa_match(). PCRE2_NO_UTF_CHECK affects only the function to which it 5883 // is passed. Put these bits at the most significant end of the options word so 5884 // others can be added next to them 5885 5886 // The following option bits can be passed only to pcre2_compile(). However, 5887 // they may affect compilation, JIT compilation, and/or interpretive execution. 5888 // The following tags indicate which: 5889 // 5890 // C alters what is compiled by pcre2_compile() 5891 // J alters what is compiled by pcre2_jit_compile() 5892 // M is inspected during pcre2_match() execution 5893 // D is inspected during pcre2_dfa_match() execution 5894 5895 // An additional compile options word is available in the compile context. 5896 5897 // These are for pcre2_jit_compile(). 5898 5899 // These are for pcre2_match(), pcre2_dfa_match(), pcre2_jit_match(), and 5900 // pcre2_substitute(). Some are allowed only for one of the functions, and in 5901 // these cases it is noted below. Note that PCRE2_ANCHORED, PCRE2_ENDANCHORED and 5902 // PCRE2_NO_UTF_CHECK can also be passed to these functions (though 5903 // pcre2_jit_match() ignores the latter since it bypasses all sanity checks). 5904 5905 // Options for pcre2_pattern_convert(). 5906 5907 // Newline and \R settings, for use in compile contexts. The newline values 5908 // must be kept in step with values set in config.h and both sets must all be 5909 // greater than zero. 5910 5911 // Error codes for pcre2_compile(). Some of these are also used by 5912 // pcre2_pattern_convert(). 5913 5914 // Error 159 is obsolete and should now never occur 5915 5916 // "Expected" matching error codes: no match and partial match. 5917 5918 // Error codes for UTF-8 validity checks 5919 5920 // Error codes for UTF-16 validity checks 5921 5922 // Error codes for UTF-32 validity checks 5923 5924 // Miscellaneous error codes for pcre2[_dfa]_match(), substring extraction 5925 // functions, context functions, and serializing functions. They are in numerical 5926 // order. Originally they were in alphabetical order too, but now that PCRE2 is 5927 // released, the numbers must not be changed. 5928 5929 // Request types for pcre2_pattern_info() 5930 5931 // Request types for pcre2_config(). 5932 5933 // Types for code units in patterns and subject strings. 5934 5935 type TPCRE2_UCHAR8 = Tuint8_t /* pcre2.h:458:18 */ 5936 type TPCRE2_UCHAR16 = Tuint16_t /* pcre2.h:459:18 */ 5937 type TPCRE2_UCHAR32 = Tuint32_t /* pcre2.h:460:18 */ 5938 5939 type TPCRE2_SPTR8 = uintptr /* pcre2.h:462:29 */ 5940 type TPCRE2_SPTR16 = uintptr /* pcre2.h:463:29 */ 5941 type TPCRE2_SPTR32 = uintptr /* pcre2.h:464:29 */ 5942 5943 // The PCRE2_SIZE type is used for all string lengths and offsets in PCRE2, 5944 // including pattern offsets for errors and subject offsets after a match. We 5945 // define special values to indicate zero-terminated strings and unset offsets in 5946 // the offset vector (ovector). 5947 5948 // Generic types for opaque structures and JIT callback functions. These 5949 // declarations are defined in a macro that is expanded for each width later. 5950 5951 // The structures for passing out data via callout functions. We use structures 5952 // so that new fields can be added on the end in future versions, without changing 5953 // the API of the function, thereby allowing old clients to work without 5954 // modification. Define the generic versions in a macro; the width-specific 5955 // versions are generated from this macro below. 5956 5957 // Flags for the callout_flags field. These are cleared after a callout. 5958 5959 // List the generic forms of all other functions in macros, which will be 5960 // expanded for each width below. Start with functions that give general 5961 // information. 5962 5963 // Functions for manipulating contexts. 5964 5965 // Functions concerned with compiling a pattern to PCRE internal code. 5966 5967 // Functions that give information about a compiled pattern. 5968 5969 // Functions for running a match and inspecting the result. 5970 5971 // Convenience functions for handling matched substrings. 5972 5973 // Functions for serializing / deserializing compiled patterns. 5974 5975 // Convenience function for match + substitute. 5976 5977 // Functions for converting pattern source strings. 5978 5979 // Functions for JIT processing 5980 5981 // Other miscellaneous functions. 5982 5983 // Define macros that generate width-specific names from generic versions. The 5984 // three-level macro scheme is necessary to get the macros expanded when we want 5985 // them to be. First we get the width from PCRE2_LOCAL_WIDTH, which is used for 5986 // generating three versions of everything below. After that, PCRE2_SUFFIX will be 5987 // re-defined to use PCRE2_CODE_UNIT_WIDTH, for use when macros such as 5988 // pcre2_compile are called by application code. 5989 5990 // Data types 5991 5992 // Data blocks 5993 5994 // Functions: the complete list in alphabetical order 5995 5996 // Keep this old function name for backwards compatibility 5997 5998 // Keep this obsolete function for backwards compatibility: it is now a noop. 5999 6000 // Now generate all three sets of width-specific structures and function 6001 // prototypes. 6002 6003 type Spcre2_real_general_context_8 = struct{ Fmemctl Tpcre2_memctl } /* pcre2.h:935:1 */ 6004 6005 type Tpcre2_general_context_8 = Spcre2_real_general_context_8 /* pcre2.h:935:1 */ 6006 type Spcre2_real_compile_context_8 = struct { 6007 Fmemctl Tpcre2_memctl 6008 Fstack_guard uintptr 6009 Fstack_guard_data uintptr 6010 Ftables uintptr 6011 Fmax_pattern_length Tsize_t 6012 Fbsr_convention Tuint16_t 6013 Fnewline_convention Tuint16_t 6014 Fparens_nest_limit Tuint32_t 6015 Fextra_options Tuint32_t 6016 F__ccgo_pad1 [4]byte 6017 } /* pcre2.h:935:1 */ 6018 6019 type Tpcre2_compile_context_8 = Spcre2_real_compile_context_8 /* pcre2.h:935:1 */ 6020 type Spcre2_real_match_context_8 = struct { 6021 Fmemctl Tpcre2_memctl 6022 Fcallout uintptr 6023 Fcallout_data uintptr 6024 Fsubstitute_callout uintptr 6025 Fsubstitute_callout_data uintptr 6026 Foffset_limit Tsize_t 6027 Fheap_limit Tuint32_t 6028 Fmatch_limit Tuint32_t 6029 Fdepth_limit Tuint32_t 6030 F__ccgo_pad1 [4]byte 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 F__ccgo_pad1 [4]byte 6109 } /* pcre2.h:935:1 */ 6110 6111 type Tpcre2_callout_block_8 = Spcre2_callout_block_8 /* pcre2.h:935:1 */ 6112 type Spcre2_callout_enumerate_block_8 = struct { 6113 Fversion Tuint32_t 6114 F__ccgo_pad1 [4]byte 6115 Fpattern_position Tsize_t 6116 Fnext_item_length Tsize_t 6117 Fcallout_number Tuint32_t 6118 F__ccgo_pad2 [4]byte 6119 Fcallout_string_offset Tsize_t 6120 Fcallout_string_length Tsize_t 6121 Fcallout_string TPCRE2_SPTR8 6122 } /* pcre2.h:935:1 */ 6123 6124 type Tpcre2_callout_enumerate_block_8 = Spcre2_callout_enumerate_block_8 /* pcre2.h:935:1 */ 6125 type Spcre2_substitute_callout_block_8 = struct { 6126 Fversion Tuint32_t 6127 F__ccgo_pad1 [4]byte 6128 Finput TPCRE2_SPTR8 6129 Foutput TPCRE2_SPTR8 6130 Foutput_offsets [2]Tsize_t 6131 Fovector uintptr 6132 Foveccount Tuint32_t 6133 Fsubscount Tuint32_t 6134 } /* pcre2.h:935:1 */ 6135 6136 type Tpcre2_substitute_callout_block_8 = Spcre2_substitute_callout_block_8 /* pcre2.h:935:1 */ 6137 type Tpcre2_jit_callback_16 = uintptr /* pcre2.h:939:1 */ 6138 type Spcre2_callout_block_16 = struct { 6139 Fversion Tuint32_t 6140 Fcallout_number Tuint32_t 6141 Fcapture_top Tuint32_t 6142 Fcapture_last Tuint32_t 6143 Foffset_vector uintptr 6144 Fmark TPCRE2_SPTR16 6145 Fsubject TPCRE2_SPTR16 6146 Fsubject_length Tsize_t 6147 Fstart_match Tsize_t 6148 Fcurrent_position Tsize_t 6149 Fpattern_position Tsize_t 6150 Fnext_item_length Tsize_t 6151 Fcallout_string_offset Tsize_t 6152 Fcallout_string_length Tsize_t 6153 Fcallout_string TPCRE2_SPTR16 6154 Fcallout_flags Tuint32_t 6155 F__ccgo_pad1 [4]byte 6156 } /* pcre2.h:939:1 */ 6157 6158 type Tpcre2_callout_block_16 = Spcre2_callout_block_16 /* pcre2.h:939:1 */ 6159 type Spcre2_callout_enumerate_block_16 = struct { 6160 Fversion Tuint32_t 6161 F__ccgo_pad1 [4]byte 6162 Fpattern_position Tsize_t 6163 Fnext_item_length Tsize_t 6164 Fcallout_number Tuint32_t 6165 F__ccgo_pad2 [4]byte 6166 Fcallout_string_offset Tsize_t 6167 Fcallout_string_length Tsize_t 6168 Fcallout_string TPCRE2_SPTR16 6169 } /* pcre2.h:939:1 */ 6170 6171 type Tpcre2_callout_enumerate_block_16 = Spcre2_callout_enumerate_block_16 /* pcre2.h:939:1 */ 6172 type Spcre2_substitute_callout_block_16 = struct { 6173 Fversion Tuint32_t 6174 F__ccgo_pad1 [4]byte 6175 Finput TPCRE2_SPTR16 6176 Foutput TPCRE2_SPTR16 6177 Foutput_offsets [2]Tsize_t 6178 Fovector uintptr 6179 Foveccount Tuint32_t 6180 Fsubscount Tuint32_t 6181 } /* pcre2.h:939:1 */ 6182 6183 type Tpcre2_substitute_callout_block_16 = Spcre2_substitute_callout_block_16 /* pcre2.h:939:1 */ 6184 type Tpcre2_jit_callback_32 = uintptr /* pcre2.h:943:1 */ 6185 type Spcre2_callout_block_32 = struct { 6186 Fversion Tuint32_t 6187 Fcallout_number Tuint32_t 6188 Fcapture_top Tuint32_t 6189 Fcapture_last Tuint32_t 6190 Foffset_vector uintptr 6191 Fmark TPCRE2_SPTR32 6192 Fsubject TPCRE2_SPTR32 6193 Fsubject_length Tsize_t 6194 Fstart_match Tsize_t 6195 Fcurrent_position Tsize_t 6196 Fpattern_position Tsize_t 6197 Fnext_item_length Tsize_t 6198 Fcallout_string_offset Tsize_t 6199 Fcallout_string_length Tsize_t 6200 Fcallout_string TPCRE2_SPTR32 6201 Fcallout_flags Tuint32_t 6202 F__ccgo_pad1 [4]byte 6203 } /* pcre2.h:943:1 */ 6204 6205 type Tpcre2_callout_block_32 = Spcre2_callout_block_32 /* pcre2.h:943:1 */ 6206 type Spcre2_callout_enumerate_block_32 = struct { 6207 Fversion Tuint32_t 6208 F__ccgo_pad1 [4]byte 6209 Fpattern_position Tsize_t 6210 Fnext_item_length Tsize_t 6211 Fcallout_number Tuint32_t 6212 F__ccgo_pad2 [4]byte 6213 Fcallout_string_offset Tsize_t 6214 Fcallout_string_length Tsize_t 6215 Fcallout_string TPCRE2_SPTR32 6216 } /* pcre2.h:943:1 */ 6217 6218 type Tpcre2_callout_enumerate_block_32 = Spcre2_callout_enumerate_block_32 /* pcre2.h:943:1 */ 6219 type Spcre2_substitute_callout_block_32 = struct { 6220 Fversion Tuint32_t 6221 F__ccgo_pad1 [4]byte 6222 Finput TPCRE2_SPTR32 6223 Foutput TPCRE2_SPTR32 6224 Foutput_offsets [2]Tsize_t 6225 Fovector uintptr 6226 Foveccount Tuint32_t 6227 Fsubscount Tuint32_t 6228 } /* pcre2.h:943:1 */ 6229 6230 type Tpcre2_substitute_callout_block_32 = Spcre2_substitute_callout_block_32 /* pcre2.h:943:1 */ 6231 6232 // *** NOTE NOTE NOTE *** Whenever the list above is updated, the two macro 6233 // definitions that follow must also be updated to match. There are also tables 6234 // called "opcode_possessify" in pcre2_compile.c and "coptable" and "poptable" in 6235 // pcre2_dfa_match.c that must be updated. 6236 6237 // This macro defines textual names for all the opcodes. These are used only 6238 // for debugging, and some of them are only partial names. The macro is referenced 6239 // only in pcre2_printint.c, which fills out the full names in many cases (and in 6240 // some cases doesn't actually use these names at all). 6241 6242 // This macro defines the length of fixed length operations in the compiled 6243 // regex. The lengths are used when searching for specific things, and also in the 6244 // debugging printing of a compiled regex. We use a macro so that it can be 6245 // defined close to the definitions of the opcodes themselves. 6246 // 6247 // As things have been extended, some of these are no longer fixed lenths, but are 6248 // minima instead. For example, the length of a single-character repeat may vary 6249 // in UTF-8 mode. The code that uses this table must know about such things. 6250 6251 // A magic value for OP_RREF to indicate the "any recursion" condition. 6252 6253 // ---------- Private structures that are mode-independent. ---------- 6254 6255 // Structure to hold data for custom memory management. 6256 6257 type Spcre2_memctl = struct { 6258 Fmalloc uintptr 6259 Ffree uintptr 6260 Fmemory_data uintptr 6261 } /* pcre2.h:935:1 */ 6262 6263 // *** NOTE NOTE NOTE *** Whenever the list above is updated, the two macro 6264 // definitions that follow must also be updated to match. There are also tables 6265 // called "opcode_possessify" in pcre2_compile.c and "coptable" and "poptable" in 6266 // pcre2_dfa_match.c that must be updated. 6267 6268 // This macro defines textual names for all the opcodes. These are used only 6269 // for debugging, and some of them are only partial names. The macro is referenced 6270 // only in pcre2_printint.c, which fills out the full names in many cases (and in 6271 // some cases doesn't actually use these names at all). 6272 6273 // This macro defines the length of fixed length operations in the compiled 6274 // regex. The lengths are used when searching for specific things, and also in the 6275 // debugging printing of a compiled regex. We use a macro so that it can be 6276 // defined close to the definitions of the opcodes themselves. 6277 // 6278 // As things have been extended, some of these are no longer fixed lenths, but are 6279 // minima instead. For example, the length of a single-character repeat may vary 6280 // in UTF-8 mode. The code that uses this table must know about such things. 6281 6282 // A magic value for OP_RREF to indicate the "any recursion" condition. 6283 6284 // ---------- Private structures that are mode-independent. ---------- 6285 6286 // Structure to hold data for custom memory management. 6287 6288 type Tpcre2_memctl = Spcre2_memctl /* pcre2_internal.h:1794:3 */ 6289 6290 // Structure for building a chain of open capturing subpatterns during 6291 // compiling, so that instructions to close them can be compiled when (*ACCEPT) is 6292 // encountered. 6293 6294 type Sopen_capitem = struct { 6295 Fnext uintptr 6296 Fnumber Tuint16_t 6297 Fassert_depth Tuint16_t 6298 F__ccgo_pad1 [4]byte 6299 } /* pcre2_internal.h:1800:9 */ 6300 6301 // Structure for building a chain of open capturing subpatterns during 6302 // compiling, so that instructions to close them can be compiled when (*ACCEPT) is 6303 // encountered. 6304 6305 type Topen_capitem = Sopen_capitem /* pcre2_internal.h:1804:3 */ 6306 6307 // Layout of the UCP type table that translates property names into types and 6308 // codes. Each entry used to point directly to a name, but to reduce the number of 6309 // relocations in shared libraries, it now has an offset into a single string 6310 // instead. 6311 6312 type Tucp_type_table = struct { 6313 Fname_offset Tuint16_t 6314 Ftype Tuint16_t 6315 Fvalue Tuint16_t 6316 } /* pcre2_internal.h:1815:3 */ 6317 6318 // Unicode character database (UCD) record format 6319 6320 type Tucd_record = struct { 6321 Fscript Tuint8_t 6322 Fchartype Tuint8_t 6323 Fgbprop Tuint8_t 6324 Fcaseset Tuint8_t 6325 Fother_case Tint32_t 6326 Fscriptx_bidiclass Tuint16_t 6327 Fbprops Tuint16_t 6328 } /* pcre2_internal.h:1827:3 */ 6329 6330 // UCD access macros 6331 6332 // The "scriptx" and bprops fields contain offsets into vectors of 32-bit words 6333 // that form a bitmap representing a list of scripts or boolean properties. These 6334 // macros test or set a bit in the map by number. 6335 6336 // Header for serialized pcre2 codes. 6337 6338 type Spcre2_serialized_data = struct { 6339 Fmagic Tuint32_t 6340 Fversion Tuint32_t 6341 Fconfig Tuint32_t 6342 Fnumber_of_codes Tint32_t 6343 } /* pcre2_internal.h:1870:9 */ 6344 6345 // UCD access macros 6346 6347 // The "scriptx" and bprops fields contain offsets into vectors of 32-bit words 6348 // that form a bitmap representing a list of scripts or boolean properties. These 6349 // macros test or set a bit in the map by number. 6350 6351 // Header for serialized pcre2 codes. 6352 6353 type Tpcre2_serialized_data = Spcre2_serialized_data /* pcre2_internal.h:1875:3 */ 6354 6355 // Mode-dependent macros and hidden and private structures are defined in a 6356 // separate file so that pcre2test can include them at all supported widths. When 6357 // compiling the library, PCRE2_CODE_UNIT_WIDTH will be defined, and we can 6358 // include them at the appropriate width, after setting up suffix macros for the 6359 // private structures. 6360 6361 // ************************************************ 6362 // 6363 // Perl-Compatible Regular Expressions * 6364 // 6365 6366 // PCRE is a library of functions to support regular expressions whose syntax 6367 // and semantics are as close as possible to those of the Perl 5 language. 6368 // 6369 // Written by Philip Hazel 6370 // Original API code Copyright (c) 1997-2012 University of Cambridge 6371 // New API code Copyright (c) 2016-2018 University of Cambridge 6372 // 6373 // ----------------------------------------------------------------------------- 6374 // Redistribution and use in source and binary forms, with or without 6375 // modification, are permitted provided that the following conditions are met: 6376 // 6377 // * Redistributions of source code must retain the above copyright notice, 6378 // this list of conditions and the following disclaimer. 6379 // 6380 // * Redistributions in binary form must reproduce the above copyright 6381 // notice, this list of conditions and the following disclaimer in the 6382 // documentation and/or other materials provided with the distribution. 6383 // 6384 // * Neither the name of the University of Cambridge nor the names of its 6385 // contributors may be used to endorse or promote products derived from 6386 // this software without specific prior written permission. 6387 // 6388 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 6389 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 6390 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 6391 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 6392 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 6393 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 6394 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 6395 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 6396 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 6397 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 6398 // POSSIBILITY OF SUCH DAMAGE. 6399 // ----------------------------------------------------------------------------- 6400 6401 // This module contains mode-dependent macro and structure definitions. The 6402 // file is #included by pcre2_internal.h if PCRE2_CODE_UNIT_WIDTH is defined. 6403 // These mode-dependent items are kept in a separate file so that they can also be 6404 // #included multiple times for different code unit widths by pcre2test in order 6405 // to have access to the hidden structures at all supported widths. 6406 // 6407 // Some of the mode-dependent macros are required at different widths for 6408 // different parts of the pcre2test code (in particular, the included 6409 // pcre_printint.c file). We undefine them here so that they can be re-defined for 6410 // multiple inclusions. Not all of these are used in pcre2test, but it's easier 6411 // just to undefine them all. 6412 6413 // -------------------------- MACROS ----------------------------- 6414 6415 // PCRE keeps offsets in its compiled code as at least 16-bit quantities 6416 // (always stored in big-endian order in 8-bit mode) by default. These are used, 6417 // for example, to link from the start of a subpattern to its alternatives and its 6418 // end. The use of 16 bits per offset limits the size of an 8-bit compiled regex 6419 // to around 64K, which is big enough for almost everybody. However, I received a 6420 // request for an even bigger limit. For this reason, and also to make the code 6421 // easier to maintain, the storing and loading of offsets from the compiled code 6422 // unit string is now handled by the macros that are defined here. 6423 // 6424 // The macros are controlled by the value of LINK_SIZE. This defaults to 2, but 6425 // values of 3 or 4 are also supported. 6426 6427 // ------------------- 8-bit support ------------------ 6428 6429 // ------------------- 16-bit support ------------------ 6430 6431 // --------------- Other mode-specific macros ----------------- 6432 6433 // PCRE uses some other (at least) 16-bit quantities that do not change when 6434 // the size of offsets changes. There are used for repeat counts and for other 6435 // things such as capturing parenthesis numbers in back references. 6436 // 6437 // Define the number of code units required to hold a 16-bit count/offset, and 6438 // macros to load and store such a value. For reasons that I do not understand, 6439 // the expression in the 8-bit GET2 macro is treated by gcc as a signed 6440 // expression, even when a is declared as unsigned. It seems that any kind of 6441 // arithmetic results in a signed value. Hence the cast. 6442 6443 // Other macros that are different for 8-bit mode. The MAX_255 macro checks 6444 // whether its argument, which is assumed to be one code unit, is less than 256. 6445 // The CHMAX_255 macro does not assume one code unit. The maximum length of a MARK 6446 // name must fit in one code unit; currently it is set to 255 or 65535. The 6447 // TABLE_GET macro is used to access elements of tables containing exactly 256 6448 // items. Its argument is a code unit. When code points can be greater than 255, a 6449 // check is needed before accessing these tables. 6450 6451 // ----------------- Character-handling macros ----------------- 6452 6453 // There is a proposed future special "UTF-21" mode, in which only the lowest 6454 // 21 bits of a 32-bit character are interpreted as UTF, with the remaining 11 6455 // high-order bits available to the application for other uses. In preparation for 6456 // the future implementation of this mode, there are macros that load a data item 6457 // and, if in this special mode, mask it to 21 bits. These macros all have names 6458 // starting with UCHAR21. In all other modes, including the normal 32-bit 6459 // library, the macros all have the same simple definitions. When the new mode is 6460 // implemented, it is expected that these definitions will be varied appropriately 6461 // using #ifdef when compiling the library that supports the special mode. 6462 6463 // When UTF encoding is being used, a character is no longer just a single 6464 // byte in 8-bit mode or a single short in 16-bit mode. The macros for character 6465 // handling generate simple sequences when used in the basic mode, and more 6466 // complicated ones for UTF characters. GETCHARLENTEST and other macros are not 6467 // used when UTF is not supported. To make sure they can never even appear when 6468 // UTF support is omitted, we don't even define them. 6469 6470 // ------------------- 8-bit support ------------------ 6471 6472 // The largest UTF code point that can be encoded as a single code unit. 6473 6474 // Tests whether the code point needs extra characters to decode. 6475 6476 // Returns with the additional number of characters if IS_MULTICHAR(c) is TRUE. 6477 // Otherwise it has an undefined behaviour. 6478 6479 // Returns TRUE, if the given value is not the first code unit of a UTF 6480 // sequence. 6481 6482 // Get the next UTF-8 character, not advancing the pointer. This is called when 6483 // we know we are in UTF-8 mode. 6484 6485 // Get the next UTF-8 character, testing for UTF-8 mode, and not advancing the 6486 // pointer. 6487 6488 // Get the next UTF-8 character, advancing the pointer. This is called when we 6489 // know we are in UTF-8 mode. 6490 6491 // Get the next character, testing for UTF-8 mode, and advancing the pointer. 6492 // This is called when we don't know if we are in UTF-8 mode. 6493 6494 // Get the next UTF-8 character, not advancing the pointer, incrementing length 6495 // if there are extra bytes. This is called when we know we are in UTF-8 mode. 6496 6497 // Get the next UTF-8 character, testing for UTF-8 mode, not advancing the 6498 // pointer, incrementing length if there are extra bytes. This is called when we 6499 // do not know if we are in UTF-8 mode. 6500 6501 // If the pointer is not at the start of a character, move it back until 6502 // it is. This is called only in UTF-8 mode - we don't put a test within the macro 6503 // because almost all calls are already within a block of UTF-8 only code. 6504 6505 // Same as above, just in the other direction. 6506 6507 // Same as above, but it allows a fully customizable form. 6508 6509 // Deposit a character into memory, returning the number of code units. 6510 6511 // ------------------- 16-bit support ------------------ 6512 6513 // Mode-dependent macros that have the same definition in all modes. 6514 6515 // ----------------------- HIDDEN STRUCTURES ----------------------------- 6516 6517 // NOTE: All these structures *must* start with a pcre2_memctl structure. The 6518 // code that uses them is simpler because it assumes this. 6519 6520 // The real general context structure. At present it holds only data for custom 6521 // memory control. 6522 6523 type Tpcre2_real_general_context_8 = Spcre2_real_general_context_8 /* pcre2_intmodedep.h:561:3 */ 6524 6525 // The real compile context structure 6526 6527 type Tpcre2_real_compile_context_8 = Spcre2_real_compile_context_8 /* pcre2_intmodedep.h:575:3 */ 6528 6529 // The real match context structure. 6530 6531 type Tpcre2_real_match_context_8 = Spcre2_real_match_context_8 /* pcre2_intmodedep.h:593:3 */ 6532 6533 // The real convert context structure. 6534 6535 type Tpcre2_real_convert_context_8 = Spcre2_real_convert_context_8 /* pcre2_intmodedep.h:601:3 */ 6536 6537 // The real compiled code structure. The type for the blocksize field is 6538 // defined specially because it is required in pcre2_serialize_decode() when 6539 // copying the size from possibly unaligned memory into a variable of the same 6540 // type. Use a macro rather than a typedef to avoid compiler warnings when this 6541 // file is included multiple times by pcre2test. LOOKBEHIND_MAX specifies the 6542 // largest lookbehind that is supported. (OP_REVERSE in a pattern has a 16-bit 6543 // argument in 8-bit and 16-bit modes, so we need no more than a 16-bit field 6544 // here.) 6545 6546 type Tpcre2_real_code_8 = Spcre2_real_code_8 /* pcre2_intmodedep.h:642:3 */ 6547 6548 // The real match data structure. Define ovector as large as it can ever 6549 // actually be so that array bound checkers don't grumble. Memory for this 6550 // structure is obtained by calling pcre2_match_data_create(), which sets the size 6551 // as the offset of ovector plus a pair of elements for each capturable string, so 6552 // the size varies from call to call. As the maximum number of capturing 6553 // subpatterns is 65535 we must allow for 65536 strings to include the overall 6554 // match. (See also the heapframe structure below.) 6555 6556 type Tpcre2_real_match_data_8 = Spcre2_real_match_data_8 /* pcre2_intmodedep.h:665:3 */ 6557 6558 // ----------------------- PRIVATE STRUCTURES ----------------------------- 6559 6560 // These structures are not needed for pcre2test. 6561 6562 // Structures for checking for mutual recursion when scanning compiled or 6563 // parsed code. 6564 6565 type Srecurse_check = struct { 6566 Fprev uintptr 6567 Fgroup TPCRE2_SPTR8 6568 } /* pcre2_intmodedep.h:677:9 */ 6569 6570 // ----------------------- PRIVATE STRUCTURES ----------------------------- 6571 6572 // These structures are not needed for pcre2test. 6573 6574 // Structures for checking for mutual recursion when scanning compiled or 6575 // parsed code. 6576 6577 type Trecurse_check = Srecurse_check /* pcre2_intmodedep.h:680:3 */ 6578 6579 type Sparsed_recurse_check = struct { 6580 Fprev uintptr 6581 Fgroupptr uintptr 6582 } /* pcre2_intmodedep.h:682:9 */ 6583 6584 type Tparsed_recurse_check = Sparsed_recurse_check /* pcre2_intmodedep.h:685:3 */ 6585 6586 // Structure for building a cache when filling in recursion offsets. 6587 6588 type Srecurse_cache = struct { 6589 Fgroup TPCRE2_SPTR8 6590 Fgroupnumber int32 6591 F__ccgo_pad1 [4]byte 6592 } /* pcre2_intmodedep.h:689:9 */ 6593 6594 // Structure for building a cache when filling in recursion offsets. 6595 6596 type Trecurse_cache = Srecurse_cache /* pcre2_intmodedep.h:692:3 */ 6597 6598 // Structure for maintaining a chain of pointers to the currently incomplete 6599 // branches, for testing for left recursion while compiling. 6600 6601 type Sbranch_chain_8 = struct { 6602 Fouter uintptr 6603 Fcurrent_branch uintptr 6604 } /* pcre2_intmodedep.h:697:9 */ 6605 6606 // Structure for maintaining a chain of pointers to the currently incomplete 6607 // branches, for testing for left recursion while compiling. 6608 6609 type Tbranch_chain_8 = Sbranch_chain_8 /* pcre2_intmodedep.h:700:3 */ 6610 6611 // Structure for building a list of named groups during the first pass of 6612 // compiling. 6613 6614 type Snamed_group_8 = struct { 6615 Fname TPCRE2_SPTR8 6616 Fnumber Tuint32_t 6617 Flength Tuint16_t 6618 Fisdup Tuint16_t 6619 } /* pcre2_intmodedep.h:705:9 */ 6620 6621 // Structure for building a list of named groups during the first pass of 6622 // compiling. 6623 6624 type Tnamed_group_8 = Snamed_group_8 /* pcre2_intmodedep.h:710:3 */ 6625 6626 // Structure for passing "static" information around between the functions 6627 // doing the compiling, so that they are thread-safe. 6628 6629 type Scompile_block_8 = struct { 6630 Fcx uintptr 6631 Flcc uintptr 6632 Ffcc uintptr 6633 Fcbits uintptr 6634 Fctypes uintptr 6635 Fstart_workspace TPCRE2_SPTR8 6636 Fstart_code TPCRE2_SPTR8 6637 Fstart_pattern TPCRE2_SPTR8 6638 Fend_pattern TPCRE2_SPTR8 6639 Fname_table uintptr 6640 Fworkspace_size Tsize_t 6641 Fsmall_ref_offset [10]Tsize_t 6642 Ferroroffset Tsize_t 6643 Fnames_found Tuint16_t 6644 Fname_entry_size Tuint16_t 6645 Fparens_depth Tuint16_t 6646 Fassert_depth Tuint16_t 6647 Fopen_caps uintptr 6648 Fnamed_groups uintptr 6649 Fnamed_group_list_size Tuint32_t 6650 Fexternal_options Tuint32_t 6651 Fexternal_flags Tuint32_t 6652 Fbracount Tuint32_t 6653 Flastcapture Tuint32_t 6654 F__ccgo_pad1 [4]byte 6655 Fparsed_pattern uintptr 6656 Fparsed_pattern_end uintptr 6657 Fgroupinfo uintptr 6658 Ftop_backref Tuint32_t 6659 Fbackref_map Tuint32_t 6660 Fnltype Tuint32_t 6661 Fnllen Tuint32_t 6662 Fclass_range_start Tuint32_t 6663 Fclass_range_end Tuint32_t 6664 Fnl [4]TPCRE2_UCHAR8 6665 Freq_varyopt Tuint32_t 6666 Fmax_lookbehind int32 6667 Fhad_accept TBOOL 6668 Fhad_pruneorskip TBOOL 6669 Fhad_recurse TBOOL 6670 Fdupnames TBOOL 6671 F__ccgo_pad2 [4]byte 6672 } /* pcre2_intmodedep.h:715:9 */ 6673 6674 // Structure for passing "static" information around between the functions 6675 // doing the compiling, so that they are thread-safe. 6676 6677 type Tcompile_block_8 = Scompile_block_8 /* pcre2_intmodedep.h:756:3 */ 6678 6679 // Structure for keeping the properties of the in-memory stack used 6680 // by the JIT matcher. 6681 6682 type Tpcre2_real_jit_stack_8 = Spcre2_real_jit_stack_8 /* pcre2_intmodedep.h:764:3 */ 6683 6684 // Structure for items in a linked list that represents an explicit recursive 6685 // call within the pattern when running pcre2_dfa_match(). 6686 6687 type Sdfa_recursion_info = struct { 6688 Fprevrec uintptr 6689 Fsubject_position TPCRE2_SPTR8 6690 Fgroup_num Tuint32_t 6691 F__ccgo_pad1 [4]byte 6692 } /* pcre2_intmodedep.h:769:9 */ 6693 6694 // Structure for items in a linked list that represents an explicit recursive 6695 // call within the pattern when running pcre2_dfa_match(). 6696 6697 type Tdfa_recursion_info = Sdfa_recursion_info /* pcre2_intmodedep.h:773:3 */ 6698 6699 // Structure for "stack" frames that are used for remembering backtracking 6700 // positions during matching. As these are used in a vector, with the ovector item 6701 // being extended, the size of the structure must be a multiple of PCRE2_SIZE. The 6702 // only way to check this at compile time is to force an error by generating an 6703 // array with a negative size. By putting this in a typedef (which is never used), 6704 // we don't generate any code when all is well. 6705 6706 type Sheapframe = struct { 6707 Fecode TPCRE2_SPTR8 6708 Ftemp_sptr [2]TPCRE2_SPTR8 6709 Flength Tsize_t 6710 Fback_frame Tsize_t 6711 Ftemp_size Tsize_t 6712 Frdepth Tuint32_t 6713 Fgroup_frame_type Tuint32_t 6714 Ftemp_32 [4]Tuint32_t 6715 Freturn_id Tuint8_t 6716 Fop Tuint8_t 6717 Foccu [6]TPCRE2_UCHAR8 6718 Feptr TPCRE2_SPTR8 6719 Fstart_match TPCRE2_SPTR8 6720 Fmark TPCRE2_SPTR8 6721 Fcurrent_recurse Tuint32_t 6722 Fcapture_last Tuint32_t 6723 Flast_group_offset Tsize_t 6724 Foffset_top Tsize_t 6725 Fovector [131072]Tsize_t 6726 } /* pcre2_intmodedep.h:782:9 */ 6727 6728 // Structure for "stack" frames that are used for remembering backtracking 6729 // positions during matching. As these are used in a vector, with the ovector item 6730 // being extended, the size of the structure must be a multiple of PCRE2_SIZE. The 6731 // only way to check this at compile time is to force an error by generating an 6732 // array with a negative size. By putting this in a typedef (which is never used), 6733 // we don't generate any code when all is well. 6734 6735 type Theapframe = Sheapframe /* pcre2_intmodedep.h:833:3 */ 6736 6737 // This typedef is a check that the size of the heapframe structure is a 6738 // multiple of PCRE2_SIZE. See various comments above. 6739 6740 type Tcheck_heapframe_size = [1]uint8 /* pcre2_intmodedep.h:838:14 */ 6741 6742 // Structure for computing the alignment of heapframe. 6743 6744 type Sheapframe_align = struct { 6745 Funalign uint8 6746 F__ccgo_pad1 [7]byte 6747 Fframe Theapframe 6748 } /* pcre2_intmodedep.h:843:9 */ 6749 6750 // Structure for computing the alignment of heapframe. 6751 6752 type Theapframe_align = Sheapframe_align /* pcre2_intmodedep.h:846:3 */ 6753 6754 // This define is the minimum alignment required for a heapframe, in bytes. 6755 6756 // Structure for passing "static" information around between the functions 6757 // doing traditional NFA matching (pcre2_match() and friends). 6758 6759 type Smatch_block_8 = struct { 6760 Fmemctl Tpcre2_memctl 6761 Fframe_vector_size Tsize_t 6762 Fmatch_frames uintptr 6763 Fmatch_frames_top uintptr 6764 Fstack_frames uintptr 6765 Fheap_limit Tsize_t 6766 Fmatch_limit Tuint32_t 6767 Fmatch_limit_depth Tuint32_t 6768 Fmatch_call_count Tuint32_t 6769 Fhitend TBOOL 6770 Fhasthen TBOOL 6771 Fallowemptypartial TBOOL 6772 Flcc uintptr 6773 Ffcc uintptr 6774 Fctypes uintptr 6775 Fstart_offset Tsize_t 6776 Fend_offset_top Tsize_t 6777 Fpartial Tuint16_t 6778 Fbsr_convention Tuint16_t 6779 Fname_count Tuint16_t 6780 Fname_entry_size Tuint16_t 6781 Fname_table TPCRE2_SPTR8 6782 Fstart_code TPCRE2_SPTR8 6783 Fstart_subject TPCRE2_SPTR8 6784 Fcheck_subject TPCRE2_SPTR8 6785 Fend_subject TPCRE2_SPTR8 6786 Fend_match_ptr TPCRE2_SPTR8 6787 Fstart_used_ptr TPCRE2_SPTR8 6788 Flast_used_ptr TPCRE2_SPTR8 6789 Fmark TPCRE2_SPTR8 6790 Fnomatch_mark TPCRE2_SPTR8 6791 Fverb_ecode_ptr TPCRE2_SPTR8 6792 Fverb_skip_ptr TPCRE2_SPTR8 6793 Fverb_current_recurse Tuint32_t 6794 Fmoptions Tuint32_t 6795 Fpoptions Tuint32_t 6796 Fskip_arg_count Tuint32_t 6797 Fignore_skip_arg Tuint32_t 6798 Fnltype Tuint32_t 6799 Fnllen Tuint32_t 6800 Fnl [4]TPCRE2_UCHAR8 6801 Fcb uintptr 6802 Fcallout_data uintptr 6803 Fcallout uintptr 6804 } /* pcre2_intmodedep.h:855:9 */ 6805 6806 // This define is the minimum alignment required for a heapframe, in bytes. 6807 6808 // Structure for passing "static" information around between the functions 6809 // doing traditional NFA matching (pcre2_match() and friends). 6810 6811 type Tmatch_block_8 = Smatch_block_8 /* pcre2_intmodedep.h:900:3 */ 6812 6813 // A similar structure is used for the same purpose by the DFA matching 6814 // functions. 6815 6816 type Sdfa_match_block_8 = struct { 6817 Fmemctl Tpcre2_memctl 6818 Fstart_code TPCRE2_SPTR8 6819 Fstart_subject TPCRE2_SPTR8 6820 Fend_subject TPCRE2_SPTR8 6821 Fstart_used_ptr TPCRE2_SPTR8 6822 Flast_used_ptr TPCRE2_SPTR8 6823 Ftables uintptr 6824 Fstart_offset Tsize_t 6825 Fheap_limit Tsize_t 6826 Fheap_used Tsize_t 6827 Fmatch_limit Tuint32_t 6828 Fmatch_limit_depth Tuint32_t 6829 Fmatch_call_count Tuint32_t 6830 Fmoptions Tuint32_t 6831 Fpoptions Tuint32_t 6832 Fnltype Tuint32_t 6833 Fnllen Tuint32_t 6834 Fallowemptypartial TBOOL 6835 Fnl [4]TPCRE2_UCHAR8 6836 Fbsr_convention Tuint16_t 6837 F__ccgo_pad1 [2]byte 6838 Fcb uintptr 6839 Fcallout_data uintptr 6840 Fcallout uintptr 6841 Frecursive uintptr 6842 } /* pcre2_intmodedep.h:905:9 */ 6843 6844 // A similar structure is used for the same purpose by the DFA matching 6845 // functions. 6846 6847 type Tdfa_match_block_8 = Sdfa_match_block_8 /* pcre2_intmodedep.h:930:3 */ 6848 6849 // This function is needed only when memmove() is not available. 6850 6851 // End of pcre2_internal.h 6852 6853 // ************************************************ 6854 // 6855 // Tables for auto-possessification * 6856 // 6857 6858 // This table is used to check whether auto-possessification is possible 6859 // between adjacent character-type opcodes. The left-hand (repeated) opcode is 6860 // used to select the row, and the right-hand opcode is use to select the column. 6861 // A value of 1 means that auto-possessification is OK. For example, the second 6862 // value in the first row means that \D+\d can be turned into \D++\d. 6863 // 6864 // The Unicode property types (\P and \p) have to be present to fill out the table 6865 // because of what their opcode values are, but the table values should always be 6866 // zero because property types are handled separately in the code. The last four 6867 // columns apply to items that cannot be repeated, so there is no need to have 6868 // rows for them. Note that OP_DIGIT etc. are generated only when PCRE_UCP is 6869 // *not* set. When it is set, \d etc. are converted into OP_(NOT_)PROP codes. 6870 6871 var autoposstab = [17][21]Tuint8_t{ 6872 // \D \d \S \s \W \w . .+ \C \P \p \R \H \h \V \v \X \Z \z $ $M 6873 {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 6874 {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 6875 {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 6876 {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 6877 {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 6878 {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 6879 {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)}, // . 6880 {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)}, // .+ 6881 {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 6882 {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 6883 {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 6884 {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 6885 {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 6886 {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 6887 {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 6888 {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 6889 {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 6890 } /* pcre2_auto_possess.c:73:22 */ 6891 6892 // This table is used to check whether auto-possessification is possible 6893 // between adjacent Unicode property opcodes (OP_PROP and OP_NOTPROP). The 6894 // left-hand (repeated) opcode is used to select the row, and the right-hand 6895 // opcode is used to select the column. The values are as follows: 6896 // 6897 // 0 Always return FALSE (never auto-possessify) 6898 // 1 Character groups are distinct (possessify if both are OP_PROP) 6899 // 2 Check character categories in the same group (general or particular) 6900 // 3 TRUE if the two opcodes are not the same (PROP vs NOTPROP) 6901 // 6902 // 4 Check left general category vs right particular category 6903 // 5 Check right general category vs left particular category 6904 // 6905 // 6 Left alphanum vs right general category 6906 // 7 Left space vs right general category 6907 // 8 Left word vs right general category 6908 // 6909 // 9 Right alphanum vs left general category 6910 // 10 Right space vs left general category 6911 // 11 Right word vs left general category 6912 // 6913 // 12 Left alphanum vs right particular category 6914 // 13 Left space vs right particular category 6915 // 14 Left word vs right particular category 6916 // 6917 // 15 Right alphanum vs left particular category 6918 // 16 Right space vs left particular category 6919 // 17 Right word vs left particular category 6920 6921 var propposstab = [14][14]Tuint8_t{ 6922 // ANY LAMP GC PC SC SCX ALNUM SPACE PXSPACE WORD CLIST UCNC BIDICL BOOL 6923 {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 6924 {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 6925 {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 6926 {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 6927 {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 6928 {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 6929 {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 6930 {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 6931 {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 6932 {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 6933 {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 6934 {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 6935 {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 6936 {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 6937 } /* pcre2_auto_possess.c:125:22 */ 6938 6939 // This table is used to check whether auto-possessification is possible 6940 // between adjacent Unicode property opcodes (OP_PROP and OP_NOTPROP) when one 6941 // specifies a general category and the other specifies a particular category. The 6942 // row is selected by the general category and the column by the particular 6943 // category. The value is 1 if the particular category is not part of the general 6944 // category. 6945 6946 var catposstab = [7][30]Tuint8_t{ 6947 // 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 6948 {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 6949 {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 6950 {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 6951 {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 6952 {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 6953 {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 6954 {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 6955 } /* pcre2_auto_possess.c:150:22 */ 6956 6957 // This table is used when checking ALNUM, (PX)SPACE, SPACE, and WORD against 6958 // a general or particular category. The properties in each row are those 6959 // that apply to the character set in question. Duplication means that a little 6960 // unnecessary work is done when checking, but this keeps things much simpler 6961 // because they can all use the same code. For more details see the comment where 6962 // this table is used. 6963 // 6964 // Note: SPACE and PXSPACE used to be different because Perl excluded VT from 6965 // "space", but from Perl 5.18 it's included, so both categories are treated the 6966 // same here. 6967 6968 var posspropstab = [3][4]Tuint8_t{ 6969 {ucp_L, ucp_N, ucp_N, ucp_Nl}, // ALNUM, 3rd and 4th values redundant 6970 {ucp_Z, ucp_Z, ucp_C, ucp_Cc}, // SPACE and PXSPACE, 2nd value redundant 6971 {ucp_L, ucp_N, ucp_P, ucp_Po}, // WORD 6972 } /* pcre2_auto_possess.c:172:22 */ 6973 6974 // ************************************************ 6975 // 6976 // Check a character and a property * 6977 // 6978 6979 // This function is called by compare_opcodes() when a property item is 6980 // adjacent to a fixed character. 6981 // 6982 // Arguments: 6983 // c the character 6984 // ptype the property type 6985 // pdata the data for the type 6986 // negated TRUE if it's a negated property (\P or \p{^) 6987 // 6988 // Returns: TRUE if auto-possessifying is OK 6989 6990 func check_char_prop(tls *libc.TLS, c Tuint32_t, ptype uint32, pdata uint32, negated TBOOL) TBOOL { /* pcre2_auto_possess.c:199:1: */ 6991 var ok TBOOL 6992 var p uintptr 6993 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 6994 6995 switch ptype { 6996 case uint32(DPT_LAMP): 6997 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) 6998 6999 case uint32(DPT_GC): 7000 return libc.Bool32(libc.Bool32(pdata == X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype]) == negated) 7001 7002 case uint32(DPT_PC): 7003 return libc.Bool32(libc.Bool32(pdata == uint32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype)) == negated) 7004 7005 case uint32(DPT_SC): 7006 return libc.Bool32(libc.Bool32(pdata == uint32((*Tucd_record)(unsafe.Pointer(prop)).Fscript)) == negated) 7007 7008 case uint32(DPT_SCX): 7009 ok = libc.Bool32(pdata == uint32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) || 7010 *(*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)) 7011 return libc.Bool32(ok == negated) 7012 7013 // These are specials 7014 7015 case uint32(DPT_ALNUM): 7016 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) 7017 7018 // Perl space used to exclude VT, but from Perl 5.18 it is included, which 7019 // means that Perl space and POSIX space are now identical. PCRE was changed 7020 // at release 8.34. 7021 7022 case uint32(DPT_SPACE): 7023 fallthrough // Perl space 7024 case uint32(DPT_PXSPACE): // POSIX space 7025 switch c { 7026 case Tuint32_t('\011'): 7027 fallthrough 7028 case Tuint32_t('\040'): 7029 fallthrough 7030 case Tuint32_t(uint8('\xa0')): 7031 fallthrough 7032 case Tuint32_t(0x1680): 7033 fallthrough /* OGHAM SPACE MARK */ 7034 case Tuint32_t(0x180e): 7035 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 7036 case Tuint32_t(0x2000): 7037 fallthrough /* EN QUAD */ 7038 case Tuint32_t(0x2001): 7039 fallthrough /* EM QUAD */ 7040 case Tuint32_t(0x2002): 7041 fallthrough /* EN SPACE */ 7042 case Tuint32_t(0x2003): 7043 fallthrough /* EM SPACE */ 7044 case Tuint32_t(0x2004): 7045 fallthrough /* THREE-PER-EM SPACE */ 7046 case Tuint32_t(0x2005): 7047 fallthrough /* FOUR-PER-EM SPACE */ 7048 case Tuint32_t(0x2006): 7049 fallthrough /* SIX-PER-EM SPACE */ 7050 case Tuint32_t(0x2007): 7051 fallthrough /* FIGURE SPACE */ 7052 case Tuint32_t(0x2008): 7053 fallthrough /* PUNCTUATION SPACE */ 7054 case Tuint32_t(0x2009): 7055 fallthrough /* THIN SPACE */ 7056 case Tuint32_t(0x200A): 7057 fallthrough /* HAIR SPACE */ 7058 case Tuint32_t(0x202f): 7059 fallthrough /* NARROW NO-BREAK SPACE */ 7060 case Tuint32_t(0x205f): 7061 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 7062 case Tuint32_t(0x3000): 7063 fallthrough 7064 case Tuint32_t('\012'): 7065 fallthrough 7066 case Tuint32_t('\013'): 7067 fallthrough 7068 case Tuint32_t('\014'): 7069 fallthrough 7070 case Tuint32_t('\015'): 7071 fallthrough 7072 case Tuint32_t(uint8('\x85')): 7073 fallthrough 7074 case Tuint32_t(0x2028): 7075 fallthrough /* LINE SEPARATOR */ 7076 case Tuint32_t(0x2029): 7077 return negated 7078 7079 default: 7080 return libc.Bool32(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) == negated) 7081 } 7082 break // Control never reaches here 7083 7084 case uint32(DPT_WORD): 7085 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) 7086 7087 case uint32(DPT_CLIST): 7088 p = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr((*Tucd_record)(unsafe.Pointer(prop)).Fcaseset)*4 7089 for { 7090 if c < *(*Tuint32_t)(unsafe.Pointer(p)) { 7091 return libc.BoolInt32(!(negated != 0)) 7092 } 7093 if c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 4))) { 7094 return negated 7095 } 7096 } 7097 break // Control never reaches here 7098 7099 // Haven't yet thought these through. 7100 7101 case uint32(DPT_BIDICL): 7102 return DFALSE 7103 7104 case uint32(DPT_BOOL): 7105 return DFALSE 7106 } 7107 7108 return DFALSE 7109 } 7110 7111 // ************************************************ 7112 // 7113 // Base opcode of repeated opcodes * 7114 // 7115 7116 // Returns the base opcode for repeated single character type opcodes. If the 7117 // opcode is not a repeated character type, it returns with the original value. 7118 // 7119 // Arguments: c opcode 7120 // Returns: base opcode for the type 7121 7122 func get_repeat_base(tls *libc.TLS, c TPCRE2_UCHAR8) TPCRE2_UCHAR8 { /* pcre2_auto_possess.c:291:1: */ 7123 if int32(c) > OP_TYPEPOSUPTO { 7124 return c 7125 } 7126 if int32(c) >= OP_TYPESTAR { 7127 return OP_TYPESTAR 7128 } 7129 if int32(c) >= OP_NOTSTARI { 7130 return OP_NOTSTARI 7131 } 7132 if int32(c) >= OP_NOTSTAR { 7133 return OP_NOTSTAR 7134 } 7135 if int32(c) >= OP_STARI { 7136 return OP_STARI 7137 } 7138 return OP_STAR 7139 } 7140 7141 // ************************************************ 7142 // 7143 // Fill the character property list * 7144 // 7145 7146 // Checks whether the code points to an opcode that can take part in auto- 7147 // possessification, and if so, fills a list with its properties. 7148 // 7149 // Arguments: 7150 // code points to start of expression 7151 // utf TRUE if in UTF mode 7152 // ucp TRUE if in UCP mode 7153 // fcc points to the case-flipping table 7154 // list points to output list 7155 // list[0] will be filled with the opcode 7156 // list[1] will be non-zero if this opcode 7157 // can match an empty character string 7158 // list[2..7] depends on the opcode 7159 // 7160 // Returns: points to the start of the next opcode if *code is accepted 7161 // NULL if *code is not accepted 7162 7163 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: */ 7164 var c TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 7165 var base TPCRE2_UCHAR8 7166 var end TPCRE2_SPTR8 7167 var chr Tuint32_t 7168 var clist_dest uintptr 7169 var clist_src uintptr 7170 7171 *(*Tuint32_t)(unsafe.Pointer(list)) = Tuint32_t(c) 7172 *(*Tuint32_t)(unsafe.Pointer(list + 1*4)) = Tuint32_t(DFALSE) 7173 code++ 7174 7175 if int32(c) >= OP_STAR && int32(c) <= OP_TYPEPOSUPTO { 7176 base = get_repeat_base(tls, c) 7177 c = TPCRE2_UCHAR8(int32(c) - (int32(base) - OP_STAR)) 7178 7179 if int32(c) == OP_UPTO || int32(c) == OP_MINUPTO || int32(c) == OP_EXACT || int32(c) == OP_POSUPTO { 7180 code += TPCRE2_SPTR8(DIMM2_SIZE) 7181 } 7182 7183 *(*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)) 7184 7185 switch int32(base) { 7186 case OP_STAR: 7187 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_CHAR 7188 break 7189 fallthrough 7190 7191 case OP_STARI: 7192 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_CHARI 7193 break 7194 fallthrough 7195 7196 case OP_NOTSTAR: 7197 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_NOT 7198 break 7199 fallthrough 7200 7201 case OP_NOTSTARI: 7202 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_NOTI 7203 break 7204 fallthrough 7205 7206 case OP_TYPESTAR: 7207 *(*Tuint32_t)(unsafe.Pointer(list)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 7208 code++ 7209 break 7210 } 7211 c = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(list))) 7212 } 7213 7214 switch int32(c) { 7215 case OP_NOT_DIGIT: 7216 fallthrough 7217 case OP_DIGIT: 7218 fallthrough 7219 case OP_NOT_WHITESPACE: 7220 fallthrough 7221 case OP_WHITESPACE: 7222 fallthrough 7223 case OP_NOT_WORDCHAR: 7224 fallthrough 7225 case OP_WORDCHAR: 7226 fallthrough 7227 case OP_ANY: 7228 fallthrough 7229 case OP_ALLANY: 7230 fallthrough 7231 case OP_ANYNL: 7232 fallthrough 7233 case OP_NOT_HSPACE: 7234 fallthrough 7235 case OP_HSPACE: 7236 fallthrough 7237 case OP_NOT_VSPACE: 7238 fallthrough 7239 case OP_VSPACE: 7240 fallthrough 7241 case OP_EXTUNI: 7242 fallthrough 7243 case OP_EODN: 7244 fallthrough 7245 case OP_EOD: 7246 fallthrough 7247 case OP_DOLL: 7248 fallthrough 7249 case OP_DOLLM: 7250 return code 7251 7252 case OP_CHAR: 7253 fallthrough 7254 case OP_NOT: 7255 chr = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1)))) 7256 if utf != 0 && chr >= 0xc0 { 7257 if chr&0x20 == Tuint32_t(0) { 7258 chr = chr&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))))&0x3f 7259 } else if chr&0x10 == Tuint32_t(0) { 7260 chr = chr&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f 7261 code += uintptr(2) 7262 } else if chr&0x08 == Tuint32_t(0) { 7263 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 7264 code += uintptr(3) 7265 } else if chr&0x04 == Tuint32_t(0) { 7266 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 7267 code += uintptr(4) 7268 } else { 7269 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 7270 code += uintptr(5) 7271 } 7272 } 7273 7274 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = chr 7275 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = DNOTACHAR 7276 return code 7277 7278 case OP_CHARI: 7279 fallthrough 7280 case OP_NOTI: 7281 *(*Tuint32_t)(unsafe.Pointer(list)) = func() uint32 { 7282 if int32(c) == OP_CHARI { 7283 return OP_CHAR 7284 } 7285 return OP_NOT 7286 }() 7287 chr = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1)))) 7288 if utf != 0 && chr >= 0xc0 { 7289 if chr&0x20 == Tuint32_t(0) { 7290 chr = chr&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))))&0x3f 7291 } else if chr&0x10 == Tuint32_t(0) { 7292 chr = chr&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f 7293 code += uintptr(2) 7294 } else if chr&0x08 == Tuint32_t(0) { 7295 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 7296 code += uintptr(3) 7297 } else if chr&0x04 == Tuint32_t(0) { 7298 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 7299 code += uintptr(4) 7300 } else { 7301 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 7302 code += uintptr(5) 7303 } 7304 } 7305 7306 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = chr 7307 7308 if chr < Tuint32_t(128) || chr < Tuint32_t(256) && !(utf != 0) && !(ucp != 0) { 7309 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(chr)))) 7310 } else { 7311 *(*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) 7312 } 7313 7314 // The othercase might be the same value. 7315 7316 if chr == *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) { 7317 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = DNOTACHAR 7318 } else { 7319 *(*Tuint32_t)(unsafe.Pointer(list + 4*4)) = DNOTACHAR 7320 } 7321 return code 7322 7323 case OP_PROP: 7324 fallthrough 7325 case OP_NOTPROP: 7326 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) != DPT_CLIST { 7327 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 7328 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 7329 return code + uintptr(2) 7330 } 7331 7332 // Convert only if we have enough space. 7333 7334 clist_src = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))*4 7335 clist_dest = list + uintptr(2)*4 7336 code += uintptr(2) 7337 7338 for __ccgo := true; __ccgo; __ccgo = *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&clist_src, 4))) != DNOTACHAR { 7339 if clist_dest >= list+uintptr(8)*4 { 7340 // Early return if there is not enough space. This should never 7341 // happen, since all clists are shorter than 5 character now. 7342 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 7343 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 7344 return code 7345 } 7346 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&clist_dest, 4))) = *(*Tuint32_t)(unsafe.Pointer(clist_src)) 7347 } 7348 7349 // All characters are stored. The terminating NOTACHAR is copied from the 7350 // clist itself. 7351 7352 *(*Tuint32_t)(unsafe.Pointer(list)) = func() uint32 { 7353 if int32(c) == OP_PROP { 7354 return OP_CHAR 7355 } 7356 return OP_NOT 7357 }() 7358 return code 7359 7360 case OP_NCLASS: 7361 fallthrough 7362 case OP_CLASS: 7363 fallthrough 7364 case OP_XCLASS: 7365 if int32(c) == OP_XCLASS { 7366 end = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))))) - uintptr(1) 7367 } else { 7368 end = code + uintptr(uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 7369 } 7370 7371 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end))) { 7372 case OP_CRSTAR: 7373 fallthrough 7374 case OP_CRMINSTAR: 7375 fallthrough 7376 case OP_CRQUERY: 7377 fallthrough 7378 case OP_CRMINQUERY: 7379 fallthrough 7380 case OP_CRPOSSTAR: 7381 fallthrough 7382 case OP_CRPOSQUERY: 7383 *(*Tuint32_t)(unsafe.Pointer(list + 1*4)) = Tuint32_t(DTRUE) 7384 end++ 7385 break 7386 7387 case OP_CRPLUS: 7388 fallthrough 7389 case OP_CRMINPLUS: 7390 fallthrough 7391 case OP_CRPOSPLUS: 7392 end++ 7393 break 7394 7395 case OP_CRRANGE: 7396 fallthrough 7397 case OP_CRMINRANGE: 7398 fallthrough 7399 case OP_CRPOSRANGE: 7400 *(*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))) 7401 end += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 7402 break 7403 } 7404 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = Tuint32_t((int64(end) - int64(code)) / 1) 7405 return end 7406 } 7407 7408 return uintptr(0) // Opcode not accepted 7409 } 7410 7411 // ************************************************ 7412 // 7413 // Scan further character sets for match * 7414 // 7415 7416 // Checks whether the base and the current opcode have a common character, in 7417 // which case the base cannot be possessified. 7418 // 7419 // Arguments: 7420 // code points to the byte code 7421 // utf TRUE in UTF mode 7422 // ucp TRUE in UCP mode 7423 // cb compile data block 7424 // base_list the data list of the base opcode 7425 // base_end the end of the base opcode 7426 // rec_limit points to recursion depth counter 7427 // 7428 // Returns: TRUE if the auto-possessification is possible 7429 7430 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: */ 7431 bp := tls.Alloc(32) 7432 defer tls.Free(32) 7433 7434 var c TPCRE2_UCHAR8 7435 // var list [8]Tuint32_t at bp, 32 7436 7437 var chr_ptr uintptr 7438 var ochr_ptr uintptr 7439 var list_ptr uintptr 7440 var next_code TPCRE2_SPTR8 7441 var xclass_flags TPCRE2_SPTR8 7442 var class_bitset uintptr 7443 var set1 uintptr 7444 var set2 uintptr 7445 var set_end uintptr 7446 var chr Tuint32_t 7447 var accepted TBOOL 7448 var invert_bits TBOOL 7449 var entered_a_group TBOOL = DFALSE 7450 7451 if libc.PreDecInt32(&*(*int32)(unsafe.Pointer(rec_limit)), 1) <= 0 { 7452 return DFALSE 7453 } // Recursion has gone too deep 7454 7455 // Note: the base_list[1] contains whether the current opcode has a greedy 7456 // (represented by a non-zero value) quantifier. This is a different from 7457 // other character type lists, which store here that the character iterator 7458 // matches to an empty string (also represented by a non-zero value). 7459 7460 for { 7461 // All operations move the code pointer forward. 7462 // Therefore infinite recursions are not possible. 7463 7464 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 7465 7466 // Skip over callouts 7467 7468 if int32(c) == OP_CALLOUT { 7469 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7470 continue 7471 } 7472 7473 if int32(c) == OP_CALLOUT_STR { 7474 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 7475 continue 7476 } 7477 7478 // At the end of a branch, skip to the end of the group. 7479 7480 if int32(c) == OP_ALT { 7481 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 7482 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 7483 } 7484 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 7485 } 7486 7487 // Inspect the next opcode. 7488 7489 switch int32(c) { 7490 // We can always possessify a greedy iterator at the end of the pattern, 7491 // which is reached after skipping over the final OP_KET. A non-greedy 7492 // iterator must never be possessified. 7493 7494 case OP_END: 7495 return libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(base_list + 1*4)) != Tuint32_t(0)) 7496 7497 // When an iterator is at the end of certain kinds of group we can inspect 7498 // what follows the group by skipping over the closing ket. Note that this 7499 // does not apply to OP_KETRMAX or OP_KETRMIN because what follows any given 7500 // iteration is variable (could be another iteration or could be the next 7501 // item). As these two opcodes are not listed in the next switch, they will 7502 // end up as the next code to inspect, and return FALSE by virtue of being 7503 // unsupported. 7504 7505 case OP_KET: 7506 fallthrough 7507 case OP_KETRPOS: 7508 // The non-greedy case cannot be converted to a possessive form. 7509 7510 if *(*Tuint32_t)(unsafe.Pointer(base_list + 1*4)) == Tuint32_t(0) { 7511 return DFALSE 7512 } 7513 7514 // If the bracket is capturing it might be referenced by an OP_RECURSE 7515 // so its last iterator can never be possessified if the pattern contains 7516 // recursions. (This could be improved by keeping a list of group numbers that 7517 // are called by recursion.) 7518 7519 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code - uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))))) { 7520 case OP_CBRA: 7521 fallthrough 7522 case OP_SCBRA: 7523 fallthrough 7524 case OP_CBRAPOS: 7525 fallthrough 7526 case OP_SCBRAPOS: 7527 if (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_recurse != 0 { 7528 return DFALSE 7529 } 7530 break 7531 7532 // A script run might have to backtrack if the iterated item can match 7533 // characters from more than one script. So give up unless repeating an 7534 // explicit character. 7535 7536 case OP_SCRIPT_RUN: 7537 if *(*Tuint32_t)(unsafe.Pointer(base_list)) != OP_CHAR && *(*Tuint32_t)(unsafe.Pointer(base_list)) != OP_CHARI { 7538 return DFALSE 7539 } 7540 break 7541 7542 // Atomic sub-patterns and assertions can always auto-possessify their 7543 // last iterator. However, if the group was entered as a result of checking 7544 // a previous iterator, this is not possible. 7545 7546 case OP_ASSERT: 7547 fallthrough 7548 case OP_ASSERT_NOT: 7549 fallthrough 7550 case OP_ASSERTBACK: 7551 fallthrough 7552 case OP_ASSERTBACK_NOT: 7553 fallthrough 7554 case OP_ONCE: 7555 return libc.BoolInt32(!(entered_a_group != 0)) 7556 7557 // Non-atomic assertions - don't possessify last iterator. This needs 7558 // more thought. 7559 7560 case OP_ASSERT_NA: 7561 fallthrough 7562 case OP_ASSERTBACK_NA: 7563 return DFALSE 7564 } 7565 7566 // Skip over the bracket and inspect what comes next. 7567 7568 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7569 continue 7570 7571 // Handle cases where the next item is a group. 7572 7573 case OP_ONCE: 7574 fallthrough 7575 case OP_BRA: 7576 fallthrough 7577 case OP_CBRA: 7578 next_code = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 7579 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7580 7581 // Check each branch. We have to recurse a level for all but the last 7582 // branch. 7583 7584 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) == OP_ALT { 7585 if !(compare_opcodes(tls, code, utf, ucp, cb, base_list, base_end, rec_limit) != 0) { 7586 return DFALSE 7587 } 7588 code = next_code + uintptr(1) + uintptr(DLINK_SIZE) 7589 next_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 2))))) 7590 } 7591 7592 entered_a_group = DTRUE 7593 continue 7594 7595 case OP_BRAZERO: 7596 fallthrough 7597 case OP_BRAMINZERO: 7598 7599 next_code = code + uintptr(1) 7600 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 { 7601 return DFALSE 7602 } 7603 7604 for __ccgo1 := true; __ccgo1; __ccgo1 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) == OP_ALT { 7605 next_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 2))))) 7606 } 7607 7608 // The bracket content will be checked by the OP_BRA/OP_CBRA case above. 7609 7610 next_code += TPCRE2_SPTR8(1 + DLINK_SIZE) 7611 if !(compare_opcodes(tls, next_code, utf, ucp, cb, base_list, base_end, 7612 rec_limit) != 0) { 7613 return DFALSE 7614 } 7615 7616 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7617 continue 7618 7619 // The next opcode does not need special handling; fall through and use it 7620 // to see if the base can be possessified. 7621 7622 default: 7623 break 7624 } 7625 7626 // We now have the next appropriate opcode to compare with the base. Check 7627 // for a supported opcode, and load its properties. 7628 7629 code = get_chr_property_list(tls, code, utf, ucp, (*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc, bp) 7630 if code == uintptr(0) { 7631 return DFALSE 7632 } // Unsupported 7633 7634 // If either opcode is a small character list, set pointers for comparing 7635 // characters from that list with another list, or with a property. 7636 7637 if *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_CHAR { 7638 chr_ptr = base_list + uintptr(2)*4 7639 list_ptr = bp /* &list[0] */ 7640 } else if *(*Tuint32_t)(unsafe.Pointer(bp)) == OP_CHAR { 7641 chr_ptr = bp + uintptr(2)*4 7642 list_ptr = base_list 7643 } else if *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_CLASS || *(*Tuint32_t)(unsafe.Pointer(bp)) == OP_CLASS || 7644 7645 !(utf != 0) && (*(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_NCLASS || *(*Tuint32_t)(unsafe.Pointer(bp)) == OP_NCLASS) { 7646 if *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_CLASS || !(utf != 0) && *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_NCLASS { 7647 set1 = base_end - uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 2*4))) 7648 list_ptr = bp /* &list[0] */ 7649 } else { 7650 set1 = code - uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 2*4))) 7651 list_ptr = base_list 7652 } 7653 7654 invert_bits = DFALSE 7655 switch *(*Tuint32_t)(unsafe.Pointer(list_ptr)) { 7656 case OP_CLASS: 7657 fallthrough 7658 case OP_NCLASS: 7659 set2 = func() uintptr { 7660 if list_ptr == bp { 7661 return code 7662 } 7663 return base_end 7664 }() - uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4))) 7665 break 7666 fallthrough 7667 7668 case OP_XCLASS: 7669 xclass_flags = func() uintptr { 7670 if list_ptr == bp { 7671 return code 7672 } 7673 return base_end 7674 }() - uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4))) + uintptr(DLINK_SIZE) 7675 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(xclass_flags)))&DXCL_HASPROP != 0 { 7676 return DFALSE 7677 } 7678 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(xclass_flags)))&DXCL_MAP == 0 { 7679 // No bits are set for characters < 256. 7680 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 7681 return libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(xclass_flags)))&DXCL_NOT == 0) 7682 } 7683 // Might be an empty repeat. 7684 continue 7685 } 7686 set2 = xclass_flags + uintptr(1) 7687 break 7688 fallthrough 7689 7690 case OP_NOT_DIGIT: 7691 invert_bits = DTRUE 7692 fallthrough 7693 // Fall through 7694 case OP_DIGIT: 7695 set2 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits + uintptr(Dcbit_digit) 7696 break 7697 fallthrough 7698 7699 case OP_NOT_WHITESPACE: 7700 invert_bits = DTRUE 7701 fallthrough 7702 // Fall through 7703 case OP_WHITESPACE: 7704 set2 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits + uintptr(Dcbit_space) 7705 break 7706 fallthrough 7707 7708 case OP_NOT_WORDCHAR: 7709 invert_bits = DTRUE 7710 fallthrough 7711 // Fall through 7712 case OP_WORDCHAR: 7713 set2 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits + uintptr(Dcbit_word) 7714 break 7715 fallthrough 7716 7717 default: 7718 return DFALSE 7719 } 7720 7721 // Because the bit sets are unaligned bytes, we need to perform byte 7722 // comparison here. 7723 7724 set_end = set1 + uintptr(32) 7725 if invert_bits != 0 { 7726 for __ccgo2 := true; __ccgo2; __ccgo2 = set1 < set_end { 7727 if int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set1, 1)))) & ^int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set2, 1)))) != 0 { 7728 return DFALSE 7729 } 7730 } 7731 } else { 7732 for __ccgo3 := true; __ccgo3; __ccgo3 = set1 < set_end { 7733 if int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set1, 1))))&int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set2, 1)))) != 0 { 7734 return DFALSE 7735 } 7736 } 7737 } 7738 7739 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 7740 return DTRUE 7741 } 7742 // Might be an empty repeat. 7743 continue 7744 } else { 7745 var leftop Tuint32_t 7746 var rightop Tuint32_t 7747 7748 leftop = *(*Tuint32_t)(unsafe.Pointer(base_list)) 7749 rightop = *(*Tuint32_t)(unsafe.Pointer(bp)) 7750 7751 accepted = DFALSE // Always set in non-unicode case. 7752 if leftop == OP_PROP || leftop == OP_NOTPROP { 7753 if rightop == OP_EOD { 7754 accepted = DTRUE 7755 } else if rightop == OP_PROP || rightop == OP_NOTPROP { 7756 var n int32 7757 var p uintptr 7758 var same TBOOL = libc.Bool32(leftop == rightop) 7759 var lisprop TBOOL = libc.Bool32(leftop == OP_PROP) 7760 var risprop TBOOL = libc.Bool32(rightop == OP_PROP) 7761 var bothprop TBOOL = libc.Bool32(lisprop != 0 && risprop != 0) 7762 7763 // There's a table that specifies how each combination is to be 7764 // processed: 7765 // 0 Always return FALSE (never auto-possessify) 7766 // 1 Character groups are distinct (possessify if both are OP_PROP) 7767 // 2 Check character categories in the same group (general or particular) 7768 // 3 Return TRUE if the two opcodes are not the same 7769 // ... see comments below 7770 // 7771 7772 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)))))) 7773 switch n { 7774 case 0: 7775 break 7776 fallthrough 7777 case 1: 7778 accepted = bothprop 7779 break 7780 fallthrough 7781 case 2: 7782 accepted = libc.Bool32(libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) == *(*Tuint32_t)(unsafe.Pointer(bp + 3*4))) != same) 7783 break 7784 fallthrough 7785 case 3: 7786 accepted = libc.BoolInt32(!(same != 0)) 7787 break 7788 fallthrough 7789 7790 case 4: // Left general category, right particular category 7791 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) 7792 break 7793 fallthrough 7794 7795 case 5: // Right general category, left particular category 7796 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) 7797 break 7798 fallthrough 7799 7800 // This code is logically tricky. Think hard before fiddling with it. 7801 // The posspropstab table has four entries per row. Each row relates to 7802 // one of PCRE's special properties such as ALNUM or SPACE or WORD. 7803 // Only WORD actually needs all four entries, but using repeats for the 7804 // others means they can all use the same code below. 7805 // 7806 // The first two entries in each row are Unicode general categories, and 7807 // apply always, because all the characters they include are part of the 7808 // PCRE character set. The third and fourth entries are a general and a 7809 // particular category, respectively, that include one or more relevant 7810 // characters. One or the other is used, depending on whether the check 7811 // is for a general or a particular category. However, in both cases the 7812 // category contains more characters than the specials that are defined 7813 // for the property being tested against. Therefore, it cannot be used 7814 // in a NOTPROP case. 7815 // 7816 // Example: the row for WORD contains ucp_L, ucp_N, ucp_P, ucp_Po. 7817 // Underscore is covered by ucp_P or ucp_Po. 7818 7819 case 6: 7820 fallthrough // Left alphanum vs right general category 7821 case 7: 7822 fallthrough // Left space vs right general category 7823 case 8: // Left word vs right general category 7824 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-6)*4 7825 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)))) 7826 break 7827 fallthrough 7828 7829 case 9: 7830 fallthrough // Right alphanum vs left general category 7831 case 10: 7832 fallthrough // Right space vs left general category 7833 case 11: // Right word vs left general category 7834 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-9)*4 7835 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)))) 7836 break 7837 fallthrough 7838 7839 case 12: 7840 fallthrough // Left alphanum vs right particular category 7841 case 13: 7842 fallthrough // Left space vs right particular category 7843 case 14: // Left word vs right particular category 7844 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-12)*4 7845 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)))) 7846 break 7847 fallthrough 7848 7849 case 15: 7850 fallthrough // Right alphanum vs left particular category 7851 case 16: 7852 fallthrough // Right space vs left particular category 7853 case 17: // Right word vs left particular category 7854 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-15)*4 7855 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)))) 7856 break 7857 } 7858 } 7859 } else { 7860 7861 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) 7862 } 7863 7864 if !(accepted != 0) { 7865 return DFALSE 7866 } 7867 7868 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 7869 return DTRUE 7870 } 7871 // Might be an empty repeat. 7872 continue 7873 } 7874 7875 // Control reaches here only if one of the items is a small character list. 7876 // All characters are checked against the other side. 7877 7878 for __ccgo4 := true; __ccgo4; __ccgo4 = *(*Tuint32_t)(unsafe.Pointer(chr_ptr)) != DNOTACHAR { 7879 chr = *(*Tuint32_t)(unsafe.Pointer(chr_ptr)) 7880 7881 switch *(*Tuint32_t)(unsafe.Pointer(list_ptr)) { 7882 case OP_CHAR: 7883 ochr_ptr = list_ptr + uintptr(2)*4 7884 for __ccgo5 := true; __ccgo5; __ccgo5 = *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) != DNOTACHAR { 7885 if chr == *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) { 7886 return DFALSE 7887 } 7888 ochr_ptr += 4 7889 } 7890 break 7891 7892 case OP_NOT: 7893 ochr_ptr = list_ptr + uintptr(2)*4 7894 for __ccgo6 := true; __ccgo6; __ccgo6 = *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) != DNOTACHAR { 7895 if chr == *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) { 7896 break 7897 } 7898 ochr_ptr += 4 7899 } 7900 if *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) == DNOTACHAR { 7901 return DFALSE 7902 } // Not found 7903 break 7904 7905 // Note that OP_DIGIT etc. are generated only when PCRE2_UCP is *not* 7906 // set. When it is set, \d etc. are converted into OP_(NOT_)PROP codes. 7907 7908 case OP_DIGIT: 7909 if chr < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_digit != 0 { 7910 return DFALSE 7911 } 7912 break 7913 7914 case OP_NOT_DIGIT: 7915 if chr > Tuint32_t(255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_digit == 0 { 7916 return DFALSE 7917 } 7918 break 7919 7920 case OP_WHITESPACE: 7921 if chr < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_space != 0 { 7922 return DFALSE 7923 } 7924 break 7925 7926 case OP_NOT_WHITESPACE: 7927 if chr > Tuint32_t(255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_space == 0 { 7928 return DFALSE 7929 } 7930 break 7931 7932 case OP_WORDCHAR: 7933 if chr < Tuint32_t(255) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_word != 0 { 7934 return DFALSE 7935 } 7936 break 7937 7938 case OP_NOT_WORDCHAR: 7939 if chr > Tuint32_t(255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_word == 0 { 7940 return DFALSE 7941 } 7942 break 7943 7944 case OP_HSPACE: 7945 switch chr { 7946 case Tuint32_t('\011'): 7947 fallthrough 7948 case Tuint32_t('\040'): 7949 fallthrough 7950 case Tuint32_t(uint8('\xa0')): 7951 fallthrough 7952 case Tuint32_t(0x1680): 7953 fallthrough /* OGHAM SPACE MARK */ 7954 case Tuint32_t(0x180e): 7955 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 7956 case Tuint32_t(0x2000): 7957 fallthrough /* EN QUAD */ 7958 case Tuint32_t(0x2001): 7959 fallthrough /* EM QUAD */ 7960 case Tuint32_t(0x2002): 7961 fallthrough /* EN SPACE */ 7962 case Tuint32_t(0x2003): 7963 fallthrough /* EM SPACE */ 7964 case Tuint32_t(0x2004): 7965 fallthrough /* THREE-PER-EM SPACE */ 7966 case Tuint32_t(0x2005): 7967 fallthrough /* FOUR-PER-EM SPACE */ 7968 case Tuint32_t(0x2006): 7969 fallthrough /* SIX-PER-EM SPACE */ 7970 case Tuint32_t(0x2007): 7971 fallthrough /* FIGURE SPACE */ 7972 case Tuint32_t(0x2008): 7973 fallthrough /* PUNCTUATION SPACE */ 7974 case Tuint32_t(0x2009): 7975 fallthrough /* THIN SPACE */ 7976 case Tuint32_t(0x200A): 7977 fallthrough /* HAIR SPACE */ 7978 case Tuint32_t(0x202f): 7979 fallthrough /* NARROW NO-BREAK SPACE */ 7980 case Tuint32_t(0x205f): 7981 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 7982 case Tuint32_t(0x3000): 7983 return DFALSE 7984 default: 7985 break 7986 } 7987 break 7988 7989 case OP_NOT_HSPACE: 7990 switch chr { 7991 case Tuint32_t('\011'): 7992 fallthrough 7993 case Tuint32_t('\040'): 7994 fallthrough 7995 case Tuint32_t(uint8('\xa0')): 7996 fallthrough 7997 case Tuint32_t(0x1680): 7998 fallthrough /* OGHAM SPACE MARK */ 7999 case Tuint32_t(0x180e): 8000 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 8001 case Tuint32_t(0x2000): 8002 fallthrough /* EN QUAD */ 8003 case Tuint32_t(0x2001): 8004 fallthrough /* EM QUAD */ 8005 case Tuint32_t(0x2002): 8006 fallthrough /* EN SPACE */ 8007 case Tuint32_t(0x2003): 8008 fallthrough /* EM SPACE */ 8009 case Tuint32_t(0x2004): 8010 fallthrough /* THREE-PER-EM SPACE */ 8011 case Tuint32_t(0x2005): 8012 fallthrough /* FOUR-PER-EM SPACE */ 8013 case Tuint32_t(0x2006): 8014 fallthrough /* SIX-PER-EM SPACE */ 8015 case Tuint32_t(0x2007): 8016 fallthrough /* FIGURE SPACE */ 8017 case Tuint32_t(0x2008): 8018 fallthrough /* PUNCTUATION SPACE */ 8019 case Tuint32_t(0x2009): 8020 fallthrough /* THIN SPACE */ 8021 case Tuint32_t(0x200A): 8022 fallthrough /* HAIR SPACE */ 8023 case Tuint32_t(0x202f): 8024 fallthrough /* NARROW NO-BREAK SPACE */ 8025 case Tuint32_t(0x205f): 8026 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 8027 case Tuint32_t(0x3000): 8028 break 8029 default: 8030 return DFALSE 8031 } 8032 break 8033 8034 case OP_ANYNL: 8035 fallthrough 8036 case OP_VSPACE: 8037 switch chr { 8038 case Tuint32_t('\012'): 8039 fallthrough 8040 case Tuint32_t('\013'): 8041 fallthrough 8042 case Tuint32_t('\014'): 8043 fallthrough 8044 case Tuint32_t('\015'): 8045 fallthrough 8046 case Tuint32_t(uint8('\x85')): 8047 fallthrough 8048 case Tuint32_t(0x2028): 8049 fallthrough /* LINE SEPARATOR */ 8050 case Tuint32_t(0x2029): 8051 return DFALSE 8052 default: 8053 break 8054 } 8055 break 8056 8057 case OP_NOT_VSPACE: 8058 switch chr { 8059 case Tuint32_t('\012'): 8060 fallthrough 8061 case Tuint32_t('\013'): 8062 fallthrough 8063 case Tuint32_t('\014'): 8064 fallthrough 8065 case Tuint32_t('\015'): 8066 fallthrough 8067 case Tuint32_t(uint8('\x85')): 8068 fallthrough 8069 case Tuint32_t(0x2028): 8070 fallthrough /* LINE SEPARATOR */ 8071 case Tuint32_t(0x2029): 8072 break 8073 default: 8074 return DFALSE 8075 } 8076 break 8077 8078 case OP_DOLL: 8079 fallthrough 8080 case OP_EODN: 8081 switch chr { 8082 case Tuint32_t('\015'): 8083 fallthrough 8084 case Tuint32_t('\012'): 8085 fallthrough 8086 case Tuint32_t('\013'): 8087 fallthrough 8088 case Tuint32_t('\014'): 8089 fallthrough 8090 case Tuint32_t(uint8('\x85')): 8091 fallthrough 8092 case Tuint32_t(0x2028): 8093 fallthrough 8094 case Tuint32_t(0x2029): 8095 return DFALSE 8096 } 8097 break 8098 8099 case OP_EOD: // Can always possessify before \z 8100 break 8101 8102 case OP_PROP: 8103 fallthrough 8104 case OP_NOTPROP: 8105 if !(check_char_prop(tls, chr, *(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4)), *(*Tuint32_t)(unsafe.Pointer(list_ptr + 3*4)), 8106 libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(list_ptr)) == OP_NOTPROP)) != 0) { 8107 return DFALSE 8108 } 8109 break 8110 8111 case OP_NCLASS: 8112 if chr > Tuint32_t(255) { 8113 return DFALSE 8114 } 8115 fallthrough 8116 // Fall through 8117 8118 case OP_CLASS: 8119 if chr > Tuint32_t(255) { 8120 break 8121 } 8122 class_bitset = func() uintptr { 8123 if list_ptr == bp { 8124 return code 8125 } 8126 return base_end 8127 }() - uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4))) 8128 if uint32(*(*Tuint8_t)(unsafe.Pointer(class_bitset + uintptr(chr>>3))))&(uint32(1)<<(chr&Tuint32_t(7))) != uint32(0) { 8129 return DFALSE 8130 } 8131 break 8132 8133 case OP_XCLASS: 8134 if X_pcre2_xclass_8(tls, chr, func() uintptr { 8135 if list_ptr == bp { 8136 return code 8137 } 8138 return base_end 8139 }()-uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4)))+uintptr(DLINK_SIZE), utf) != 0 { 8140 return DFALSE 8141 } 8142 break 8143 8144 default: 8145 return DFALSE 8146 } 8147 8148 chr_ptr += 4 8149 } 8150 8151 // At least one character must be matched from this opcode. 8152 8153 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 8154 return DTRUE 8155 } 8156 } 8157 return TBOOL(0) 8158 8159 // Control never reaches here. There used to be a fail-save return FALSE; here, 8160 // but some compilers complain about an unreachable statement. 8161 } 8162 8163 // ************************************************ 8164 // 8165 // Scan compiled regex for auto-possession * 8166 // 8167 8168 // Replaces single character iterations with their possessive alternatives 8169 // if appropriate. This function modifies the compiled opcode! Hitting a 8170 // non-existent opcode may indicate a bug in PCRE2, but it can also be caused if a 8171 // bad UTF string was compiled with PCRE2_NO_UTF_CHECK. The rec_limit catches 8172 // overly complicated or large patterns. In these cases, the check just stops, 8173 // leaving the remainder of the pattern unpossessified. 8174 // 8175 // Arguments: 8176 // code points to start of the byte code 8177 // cb compile data block 8178 // 8179 // Returns: 0 for success 8180 // -1 if a non-existant opcode is encountered 8181 8182 func X_pcre2_auto_possessify_8(tls *libc.TLS, code uintptr, cb uintptr) int32 { /* pcre2_auto_possess.c:1132:1: */ 8183 bp := tls.Alloc(36) 8184 defer tls.Free(36) 8185 8186 var c TPCRE2_UCHAR8 8187 var end TPCRE2_SPTR8 8188 var repeat_opcode uintptr 8189 // var list [8]Tuint32_t at bp, 32 8190 8191 *(*int32)(unsafe.Pointer(bp + 32 /* rec_limit */)) = 1000 // Was 10,000 but clang+ASAN uses a lot of stack. 8192 var utf TBOOL = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_UTF != Tuint32_t(0)) 8193 var ucp TBOOL = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_UCP != Tuint32_t(0)) 8194 8195 for { 8196 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 8197 8198 if int32(c) >= OP_TABLE_LENGTH { 8199 return -1 8200 } // Something gone wrong 8201 8202 if int32(c) >= OP_STAR && int32(c) <= OP_TYPEPOSUPTO { 8203 c = TPCRE2_UCHAR8(int32(c) - (int32(get_repeat_base(tls, c)) - OP_STAR)) 8204 if int32(c) <= OP_MINUPTO { 8205 end = get_chr_property_list(tls, code, utf, ucp, (*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc, bp) 8206 } else { 8207 end = uintptr(0) 8208 } 8209 *(*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)) 8210 8211 if end != uintptr(0) && compare_opcodes(tls, end, utf, ucp, cb, bp, end, 8212 bp+32) != 0 { 8213 switch int32(c) { 8214 case OP_STAR: 8215 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSSTAR - OP_STAR) 8216 break 8217 fallthrough 8218 8219 case OP_MINSTAR: 8220 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSSTAR - OP_MINSTAR) 8221 break 8222 fallthrough 8223 8224 case OP_PLUS: 8225 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSPLUS - OP_PLUS) 8226 break 8227 fallthrough 8228 8229 case OP_MINPLUS: 8230 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSPLUS - OP_MINPLUS) 8231 break 8232 fallthrough 8233 8234 case OP_QUERY: 8235 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSQUERY - OP_QUERY) 8236 break 8237 fallthrough 8238 8239 case OP_MINQUERY: 8240 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSQUERY - OP_MINQUERY) 8241 break 8242 fallthrough 8243 8244 case OP_UPTO: 8245 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSUPTO - OP_UPTO) 8246 break 8247 fallthrough 8248 8249 case OP_MINUPTO: 8250 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSUPTO - OP_MINUPTO) 8251 break 8252 } 8253 } 8254 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 8255 } else if int32(c) == OP_CLASS || int32(c) == OP_NCLASS || int32(c) == OP_XCLASS { 8256 if int32(c) == OP_XCLASS { 8257 repeat_opcode = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 8258 } else { 8259 repeat_opcode = code + uintptr(1) + uintptr(uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 8260 } 8261 8262 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) 8263 if int32(c) >= OP_CRSTAR && int32(c) <= OP_CRMINRANGE { 8264 // The return from get_chr_property_list() will never be NULL when 8265 // code (aka c) is one of the three class opcodes. However, gcc with 8266 // -fanalyzer notes that a NULL return is possible, and grumbles. Hence we 8267 // put in a check. 8268 8269 end = get_chr_property_list(tls, code, utf, ucp, (*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc, bp) 8270 *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) = Tuint32_t(libc.Bool32(int32(c)&1 == 0)) 8271 8272 if end != uintptr(0) && compare_opcodes(tls, end, utf, ucp, cb, bp, end, bp+32) != 0 { 8273 switch int32(c) { 8274 case OP_CRSTAR: 8275 fallthrough 8276 case OP_CRMINSTAR: 8277 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSSTAR 8278 break 8279 fallthrough 8280 8281 case OP_CRPLUS: 8282 fallthrough 8283 case OP_CRMINPLUS: 8284 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSPLUS 8285 break 8286 fallthrough 8287 8288 case OP_CRQUERY: 8289 fallthrough 8290 case OP_CRMINQUERY: 8291 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSQUERY 8292 break 8293 fallthrough 8294 8295 case OP_CRRANGE: 8296 fallthrough 8297 case OP_CRMINRANGE: 8298 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSRANGE 8299 break 8300 } 8301 } 8302 } 8303 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 8304 } 8305 8306 switch int32(c) { 8307 case OP_END: 8308 return 0 8309 8310 case OP_TYPESTAR: 8311 fallthrough 8312 case OP_TYPEMINSTAR: 8313 fallthrough 8314 case OP_TYPEPLUS: 8315 fallthrough 8316 case OP_TYPEMINPLUS: 8317 fallthrough 8318 case OP_TYPEQUERY: 8319 fallthrough 8320 case OP_TYPEMINQUERY: 8321 fallthrough 8322 case OP_TYPEPOSSTAR: 8323 fallthrough 8324 case OP_TYPEPOSPLUS: 8325 fallthrough 8326 case OP_TYPEPOSQUERY: 8327 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_NOTPROP { 8328 code += uintptr(2) 8329 } 8330 break 8331 8332 case OP_TYPEUPTO: 8333 fallthrough 8334 case OP_TYPEMINUPTO: 8335 fallthrough 8336 case OP_TYPEEXACT: 8337 fallthrough 8338 case OP_TYPEPOSUPTO: 8339 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_NOTPROP { 8340 code += uintptr(2) 8341 } 8342 break 8343 8344 case OP_CALLOUT_STR: 8345 code += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 8346 break 8347 8348 case OP_XCLASS: 8349 code += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 8350 break 8351 8352 case OP_MARK: 8353 fallthrough 8354 case OP_COMMIT_ARG: 8355 fallthrough 8356 case OP_PRUNE_ARG: 8357 fallthrough 8358 case OP_SKIP_ARG: 8359 fallthrough 8360 case OP_THEN_ARG: 8361 code += uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 8362 break 8363 } 8364 8365 // Add in the fixed length from the table 8366 8367 code += uintptr(X_pcre2_OP_lengths_8[c]) 8368 8369 // In UTF-8 and UTF-16 modes, opcodes that are followed by a character may be 8370 // followed by a multi-byte character. The length in the table is a minimum, so 8371 // we have to arrange to skip the extra code units. 8372 8373 if utf != 0 { 8374 switch int32(c) { 8375 case OP_CHAR: 8376 fallthrough 8377 case OP_CHARI: 8378 fallthrough 8379 case OP_NOT: 8380 fallthrough 8381 case OP_NOTI: 8382 fallthrough 8383 case OP_STAR: 8384 fallthrough 8385 case OP_MINSTAR: 8386 fallthrough 8387 case OP_PLUS: 8388 fallthrough 8389 case OP_MINPLUS: 8390 fallthrough 8391 case OP_QUERY: 8392 fallthrough 8393 case OP_MINQUERY: 8394 fallthrough 8395 case OP_UPTO: 8396 fallthrough 8397 case OP_MINUPTO: 8398 fallthrough 8399 case OP_EXACT: 8400 fallthrough 8401 case OP_POSSTAR: 8402 fallthrough 8403 case OP_POSPLUS: 8404 fallthrough 8405 case OP_POSQUERY: 8406 fallthrough 8407 case OP_POSUPTO: 8408 fallthrough 8409 case OP_STARI: 8410 fallthrough 8411 case OP_MINSTARI: 8412 fallthrough 8413 case OP_PLUSI: 8414 fallthrough 8415 case OP_MINPLUSI: 8416 fallthrough 8417 case OP_QUERYI: 8418 fallthrough 8419 case OP_MINQUERYI: 8420 fallthrough 8421 case OP_UPTOI: 8422 fallthrough 8423 case OP_MINUPTOI: 8424 fallthrough 8425 case OP_EXACTI: 8426 fallthrough 8427 case OP_POSSTARI: 8428 fallthrough 8429 case OP_POSPLUSI: 8430 fallthrough 8431 case OP_POSQUERYI: 8432 fallthrough 8433 case OP_POSUPTOI: 8434 fallthrough 8435 case OP_NOTSTAR: 8436 fallthrough 8437 case OP_NOTMINSTAR: 8438 fallthrough 8439 case OP_NOTPLUS: 8440 fallthrough 8441 case OP_NOTMINPLUS: 8442 fallthrough 8443 case OP_NOTQUERY: 8444 fallthrough 8445 case OP_NOTMINQUERY: 8446 fallthrough 8447 case OP_NOTUPTO: 8448 fallthrough 8449 case OP_NOTMINUPTO: 8450 fallthrough 8451 case OP_NOTEXACT: 8452 fallthrough 8453 case OP_NOTPOSSTAR: 8454 fallthrough 8455 case OP_NOTPOSPLUS: 8456 fallthrough 8457 case OP_NOTPOSQUERY: 8458 fallthrough 8459 case OP_NOTPOSUPTO: 8460 fallthrough 8461 case OP_NOTSTARI: 8462 fallthrough 8463 case OP_NOTMINSTARI: 8464 fallthrough 8465 case OP_NOTPLUSI: 8466 fallthrough 8467 case OP_NOTMINPLUSI: 8468 fallthrough 8469 case OP_NOTQUERYI: 8470 fallthrough 8471 case OP_NOTMINQUERYI: 8472 fallthrough 8473 case OP_NOTUPTOI: 8474 fallthrough 8475 case OP_NOTMINUPTOI: 8476 fallthrough 8477 case OP_NOTEXACTI: 8478 fallthrough 8479 case OP_NOTPOSSTARI: 8480 fallthrough 8481 case OP_NOTPOSPLUSI: 8482 fallthrough 8483 case OP_NOTPOSQUERYI: 8484 fallthrough 8485 case OP_NOTPOSUPTOI: 8486 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) >= 0xc0 { 8487 code += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0x3f]) 8488 } 8489 break 8490 } 8491 } 8492 } 8493 return int32(0) 8494 } 8495 8496 // End of pcre2_auto_possess.c 8497 8498 // This function is needed only when memmove() is not available. 8499 8500 // End of pcre2_internal.h 8501 8502 var X_pcre2_default_tables_8 = [1088]Tuint8_t{ 8503 8504 // This table is a lower casing table. 8505 8506 Tuint8_t(0), Tuint8_t(1), Tuint8_t(2), Tuint8_t(3), Tuint8_t(4), Tuint8_t(5), Tuint8_t(6), Tuint8_t(7), 8507 Tuint8_t(8), Tuint8_t(9), Tuint8_t(10), Tuint8_t(11), Tuint8_t(12), Tuint8_t(13), Tuint8_t(14), Tuint8_t(15), 8508 Tuint8_t(16), Tuint8_t(17), Tuint8_t(18), Tuint8_t(19), Tuint8_t(20), Tuint8_t(21), Tuint8_t(22), Tuint8_t(23), 8509 Tuint8_t(24), Tuint8_t(25), Tuint8_t(26), Tuint8_t(27), Tuint8_t(28), Tuint8_t(29), Tuint8_t(30), Tuint8_t(31), 8510 Tuint8_t(32), Tuint8_t(33), Tuint8_t(34), Tuint8_t(35), Tuint8_t(36), Tuint8_t(37), Tuint8_t(38), Tuint8_t(39), 8511 Tuint8_t(40), Tuint8_t(41), Tuint8_t(42), Tuint8_t(43), Tuint8_t(44), Tuint8_t(45), Tuint8_t(46), Tuint8_t(47), 8512 Tuint8_t(48), Tuint8_t(49), Tuint8_t(50), Tuint8_t(51), Tuint8_t(52), Tuint8_t(53), Tuint8_t(54), Tuint8_t(55), 8513 Tuint8_t(56), Tuint8_t(57), Tuint8_t(58), Tuint8_t(59), Tuint8_t(60), Tuint8_t(61), Tuint8_t(62), Tuint8_t(63), 8514 Tuint8_t(64), Tuint8_t(97), Tuint8_t(98), Tuint8_t(99), Tuint8_t(100), Tuint8_t(101), Tuint8_t(102), Tuint8_t(103), 8515 Tuint8_t(104), Tuint8_t(105), Tuint8_t(106), Tuint8_t(107), Tuint8_t(108), Tuint8_t(109), Tuint8_t(110), Tuint8_t(111), 8516 Tuint8_t(112), Tuint8_t(113), Tuint8_t(114), Tuint8_t(115), Tuint8_t(116), Tuint8_t(117), Tuint8_t(118), Tuint8_t(119), 8517 Tuint8_t(120), Tuint8_t(121), Tuint8_t(122), Tuint8_t(91), Tuint8_t(92), Tuint8_t(93), Tuint8_t(94), Tuint8_t(95), 8518 Tuint8_t(96), Tuint8_t(97), Tuint8_t(98), Tuint8_t(99), Tuint8_t(100), Tuint8_t(101), Tuint8_t(102), Tuint8_t(103), 8519 Tuint8_t(104), Tuint8_t(105), Tuint8_t(106), Tuint8_t(107), Tuint8_t(108), Tuint8_t(109), Tuint8_t(110), Tuint8_t(111), 8520 Tuint8_t(112), Tuint8_t(113), Tuint8_t(114), Tuint8_t(115), Tuint8_t(116), Tuint8_t(117), Tuint8_t(118), Tuint8_t(119), 8521 Tuint8_t(120), Tuint8_t(121), Tuint8_t(122), Tuint8_t(123), Tuint8_t(124), Tuint8_t(125), Tuint8_t(126), Tuint8_t(127), 8522 Tuint8_t(128), Tuint8_t(129), Tuint8_t(130), Tuint8_t(131), Tuint8_t(132), Tuint8_t(133), Tuint8_t(134), Tuint8_t(135), 8523 Tuint8_t(136), Tuint8_t(137), Tuint8_t(138), Tuint8_t(139), Tuint8_t(140), Tuint8_t(141), Tuint8_t(142), Tuint8_t(143), 8524 Tuint8_t(144), Tuint8_t(145), Tuint8_t(146), Tuint8_t(147), Tuint8_t(148), Tuint8_t(149), Tuint8_t(150), Tuint8_t(151), 8525 Tuint8_t(152), Tuint8_t(153), Tuint8_t(154), Tuint8_t(155), Tuint8_t(156), Tuint8_t(157), Tuint8_t(158), Tuint8_t(159), 8526 Tuint8_t(160), Tuint8_t(161), Tuint8_t(162), Tuint8_t(163), Tuint8_t(164), Tuint8_t(165), Tuint8_t(166), Tuint8_t(167), 8527 Tuint8_t(168), Tuint8_t(169), Tuint8_t(170), Tuint8_t(171), Tuint8_t(172), Tuint8_t(173), Tuint8_t(174), Tuint8_t(175), 8528 Tuint8_t(176), Tuint8_t(177), Tuint8_t(178), Tuint8_t(179), Tuint8_t(180), Tuint8_t(181), Tuint8_t(182), Tuint8_t(183), 8529 Tuint8_t(184), Tuint8_t(185), Tuint8_t(186), Tuint8_t(187), Tuint8_t(188), Tuint8_t(189), Tuint8_t(190), Tuint8_t(191), 8530 Tuint8_t(192), Tuint8_t(193), Tuint8_t(194), Tuint8_t(195), Tuint8_t(196), Tuint8_t(197), Tuint8_t(198), Tuint8_t(199), 8531 Tuint8_t(200), Tuint8_t(201), Tuint8_t(202), Tuint8_t(203), Tuint8_t(204), Tuint8_t(205), Tuint8_t(206), Tuint8_t(207), 8532 Tuint8_t(208), Tuint8_t(209), Tuint8_t(210), Tuint8_t(211), Tuint8_t(212), Tuint8_t(213), Tuint8_t(214), Tuint8_t(215), 8533 Tuint8_t(216), Tuint8_t(217), Tuint8_t(218), Tuint8_t(219), Tuint8_t(220), Tuint8_t(221), Tuint8_t(222), Tuint8_t(223), 8534 Tuint8_t(224), Tuint8_t(225), Tuint8_t(226), Tuint8_t(227), Tuint8_t(228), Tuint8_t(229), Tuint8_t(230), Tuint8_t(231), 8535 Tuint8_t(232), Tuint8_t(233), Tuint8_t(234), Tuint8_t(235), Tuint8_t(236), Tuint8_t(237), Tuint8_t(238), Tuint8_t(239), 8536 Tuint8_t(240), Tuint8_t(241), Tuint8_t(242), Tuint8_t(243), Tuint8_t(244), Tuint8_t(245), Tuint8_t(246), Tuint8_t(247), 8537 Tuint8_t(248), Tuint8_t(249), Tuint8_t(250), Tuint8_t(251), Tuint8_t(252), Tuint8_t(253), Tuint8_t(254), Tuint8_t(255), 8538 8539 // This table is a case flipping table. 8540 8541 Tuint8_t(0), Tuint8_t(1), Tuint8_t(2), Tuint8_t(3), Tuint8_t(4), Tuint8_t(5), Tuint8_t(6), Tuint8_t(7), 8542 Tuint8_t(8), Tuint8_t(9), Tuint8_t(10), Tuint8_t(11), Tuint8_t(12), Tuint8_t(13), Tuint8_t(14), Tuint8_t(15), 8543 Tuint8_t(16), Tuint8_t(17), Tuint8_t(18), Tuint8_t(19), Tuint8_t(20), Tuint8_t(21), Tuint8_t(22), Tuint8_t(23), 8544 Tuint8_t(24), Tuint8_t(25), Tuint8_t(26), Tuint8_t(27), Tuint8_t(28), Tuint8_t(29), Tuint8_t(30), Tuint8_t(31), 8545 Tuint8_t(32), Tuint8_t(33), Tuint8_t(34), Tuint8_t(35), Tuint8_t(36), Tuint8_t(37), Tuint8_t(38), Tuint8_t(39), 8546 Tuint8_t(40), Tuint8_t(41), Tuint8_t(42), Tuint8_t(43), Tuint8_t(44), Tuint8_t(45), Tuint8_t(46), Tuint8_t(47), 8547 Tuint8_t(48), Tuint8_t(49), Tuint8_t(50), Tuint8_t(51), Tuint8_t(52), Tuint8_t(53), Tuint8_t(54), Tuint8_t(55), 8548 Tuint8_t(56), Tuint8_t(57), Tuint8_t(58), Tuint8_t(59), Tuint8_t(60), Tuint8_t(61), Tuint8_t(62), Tuint8_t(63), 8549 Tuint8_t(64), Tuint8_t(97), Tuint8_t(98), Tuint8_t(99), Tuint8_t(100), Tuint8_t(101), Tuint8_t(102), Tuint8_t(103), 8550 Tuint8_t(104), Tuint8_t(105), Tuint8_t(106), Tuint8_t(107), Tuint8_t(108), Tuint8_t(109), Tuint8_t(110), Tuint8_t(111), 8551 Tuint8_t(112), Tuint8_t(113), Tuint8_t(114), Tuint8_t(115), Tuint8_t(116), Tuint8_t(117), Tuint8_t(118), Tuint8_t(119), 8552 Tuint8_t(120), Tuint8_t(121), Tuint8_t(122), Tuint8_t(91), Tuint8_t(92), Tuint8_t(93), Tuint8_t(94), Tuint8_t(95), 8553 Tuint8_t(96), Tuint8_t(65), Tuint8_t(66), Tuint8_t(67), Tuint8_t(68), Tuint8_t(69), Tuint8_t(70), Tuint8_t(71), 8554 Tuint8_t(72), Tuint8_t(73), Tuint8_t(74), Tuint8_t(75), Tuint8_t(76), Tuint8_t(77), Tuint8_t(78), Tuint8_t(79), 8555 Tuint8_t(80), Tuint8_t(81), Tuint8_t(82), Tuint8_t(83), Tuint8_t(84), Tuint8_t(85), Tuint8_t(86), Tuint8_t(87), 8556 Tuint8_t(88), Tuint8_t(89), Tuint8_t(90), Tuint8_t(123), Tuint8_t(124), Tuint8_t(125), Tuint8_t(126), Tuint8_t(127), 8557 Tuint8_t(128), Tuint8_t(129), Tuint8_t(130), Tuint8_t(131), Tuint8_t(132), Tuint8_t(133), Tuint8_t(134), Tuint8_t(135), 8558 Tuint8_t(136), Tuint8_t(137), Tuint8_t(138), Tuint8_t(139), Tuint8_t(140), Tuint8_t(141), Tuint8_t(142), Tuint8_t(143), 8559 Tuint8_t(144), Tuint8_t(145), Tuint8_t(146), Tuint8_t(147), Tuint8_t(148), Tuint8_t(149), Tuint8_t(150), Tuint8_t(151), 8560 Tuint8_t(152), Tuint8_t(153), Tuint8_t(154), Tuint8_t(155), Tuint8_t(156), Tuint8_t(157), Tuint8_t(158), Tuint8_t(159), 8561 Tuint8_t(160), Tuint8_t(161), Tuint8_t(162), Tuint8_t(163), Tuint8_t(164), Tuint8_t(165), Tuint8_t(166), Tuint8_t(167), 8562 Tuint8_t(168), Tuint8_t(169), Tuint8_t(170), Tuint8_t(171), Tuint8_t(172), Tuint8_t(173), Tuint8_t(174), Tuint8_t(175), 8563 Tuint8_t(176), Tuint8_t(177), Tuint8_t(178), Tuint8_t(179), Tuint8_t(180), Tuint8_t(181), Tuint8_t(182), Tuint8_t(183), 8564 Tuint8_t(184), Tuint8_t(185), Tuint8_t(186), Tuint8_t(187), Tuint8_t(188), Tuint8_t(189), Tuint8_t(190), Tuint8_t(191), 8565 Tuint8_t(192), Tuint8_t(193), Tuint8_t(194), Tuint8_t(195), Tuint8_t(196), Tuint8_t(197), Tuint8_t(198), Tuint8_t(199), 8566 Tuint8_t(200), Tuint8_t(201), Tuint8_t(202), Tuint8_t(203), Tuint8_t(204), Tuint8_t(205), Tuint8_t(206), Tuint8_t(207), 8567 Tuint8_t(208), Tuint8_t(209), Tuint8_t(210), Tuint8_t(211), Tuint8_t(212), Tuint8_t(213), Tuint8_t(214), Tuint8_t(215), 8568 Tuint8_t(216), Tuint8_t(217), Tuint8_t(218), Tuint8_t(219), Tuint8_t(220), Tuint8_t(221), Tuint8_t(222), Tuint8_t(223), 8569 Tuint8_t(224), Tuint8_t(225), Tuint8_t(226), Tuint8_t(227), Tuint8_t(228), Tuint8_t(229), Tuint8_t(230), Tuint8_t(231), 8570 Tuint8_t(232), Tuint8_t(233), Tuint8_t(234), Tuint8_t(235), Tuint8_t(236), Tuint8_t(237), Tuint8_t(238), Tuint8_t(239), 8571 Tuint8_t(240), Tuint8_t(241), Tuint8_t(242), Tuint8_t(243), Tuint8_t(244), Tuint8_t(245), Tuint8_t(246), Tuint8_t(247), 8572 Tuint8_t(248), Tuint8_t(249), Tuint8_t(250), Tuint8_t(251), Tuint8_t(252), Tuint8_t(253), Tuint8_t(254), Tuint8_t(255), 8573 8574 // This table contains bit maps for various character classes. Each map is 32 8575 // bytes long and the bits run from the least significant end of each byte. The 8576 // classes that have their own maps are: space, xdigit, digit, upper, lower, word, 8577 // graph, print, punct, and cntrl. Other classes are built from combinations. 8578 8579 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 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 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 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), 8583 8584 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 8585 Tuint8_t(0x7e), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x7e), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8586 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8587 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8588 8589 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 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 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8592 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8593 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), // upper 8595 Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x07), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8596 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8597 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8598 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), // lower 8600 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x07), 8601 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8602 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8603 8604 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 8605 Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x87), Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x07), 8606 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8607 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8608 8609 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 8610 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x7f), 8611 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8612 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8613 8614 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 8615 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x7f), 8616 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8617 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8618 8619 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 8620 Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xf8), Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x78), 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), 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), 8623 8624 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 8625 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x80), 8626 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8627 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8628 8629 // This table identifies various classes of character by individual bits: 8630 // 0x01 white space character 8631 // 0x02 letter 8632 // 0x04 lower case letter 8633 // 0x08 decimal digit 8634 // 0x10 alphanumeric or '_' 8635 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), // 0- 7 8637 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 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), // 16- 23 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), // 24- 31 8640 Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // - ' 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), // ( - / 8642 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 8643 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 - ? 8644 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 8645 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 8646 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 8647 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 - _ 8648 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 8649 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 8650 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 8651 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 8652 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 8653 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 8654 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 8655 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 8656 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 8657 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 8658 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 8659 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 8660 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 8661 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 8662 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 8663 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 8664 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 8665 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 8666 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 8667 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 8668 8669 // End of pcre2_chartables.c 8670 8671 // ************************************************ 8672 // 8673 // Code parameters and static tables * 8674 // 8675 8676 // COMPILE_WORK_SIZE specifies the size of stack workspace, which is used in 8677 // different ways in the different pattern scans. The parsing and group- 8678 // identifying pre-scan uses it to handle nesting, and needs it to be 16-bit 8679 // aligned for this. Having defined the size in code units, we set up 8680 // C16_WORK_SIZE as the number of elements in the 16-bit vector. 8681 // 8682 // During the first compiling phase, when determining how much memory is required, 8683 // the regex is partly compiled into this space, but the compiled parts are 8684 // discarded as soon as they can be, so that hopefully there will never be an 8685 // overrun. The code does, however, check for an overrun, which can occur for 8686 // pathological patterns. The size of the workspace depends on LINK_SIZE because 8687 // the length of compiled items varies with this. 8688 // 8689 // In the real compile phase, this workspace is not currently used. 8690 8691 // A uint32_t vector is used for caching information about the size of 8692 // capturing groups, to improve performance. A default is created on the stack of 8693 // this size. 8694 8695 // The overrun tests check for a slightly smaller size so that they detect the 8696 // overrun before it actually does run off the end of the data block. 8697 8698 // This value determines the size of the initial vector that is used for 8699 // remembering named groups during the pre-compile. It is allocated on the stack, 8700 // but if it is too small, it is expanded, in a similar way to the workspace. The 8701 // value is the number of slots in the list. 8702 8703 // The pre-compiling pass over the pattern creates a parsed pattern in a vector 8704 // of uint32_t. For short patterns this lives on the stack, with this size. Heap 8705 // memory is used for longer patterns. 8706 8707 // Maximum length value to check against when making sure that the variable 8708 // that holds the compiled pattern length does not overflow. We make it a bit less 8709 // than INT_MAX to allow for adding in group terminating code units, so that we 8710 // don't have to check them every time. 8711 8712 // Code values for parsed patterns, which are stored in a vector of 32-bit 8713 // unsigned ints. Values less than META_END are literal data values. The coding 8714 // for identifying the item is in the top 16-bits, leaving 16 bits for the 8715 // additional data that some of them need. The META_CODE, META_DATA, and META_DIFF 8716 // macros are used to manipulate parsed pattern elements. 8717 // 8718 // NOTE: When these definitions are changed, the table of extra lengths for each 8719 // code (meta_extra_lengths, just below) must be updated to remain in step. 8720 8721 // These must be kept together to make it easy to check that an assertion 8722 // is present where expected in a conditional group. 8723 8724 // These cannot be conditions 8725 8726 // These must be kept in this order, with consecutive values, and the _ARG 8727 // versions of COMMIT, PRUNE, SKIP, and THEN immediately after their non-argument 8728 // versions. 8729 8730 // These must be kept in groups of adjacent 3 values, and all together. 8731 8732 // This is a special "meta code" that is used only to distinguish (*asr: from 8733 // (*sr: in the table of aphabetic assertions. It is never stored in the parsed 8734 // pattern because (*asr: is turned into (*sr:(*atomic: at that stage. There is 8735 // therefore no need for it to have a length entry, so use a high value. 8736 8737 // Table of extra lengths for each of the meta codes. Must be kept in step with 8738 // the definitions above. For some items these values are a basic length to which 8739 // a variable amount has to be added. 8740 8741 var meta_extra_lengths = [64]uint8{ 8742 uint8(0), // META_END 8743 uint8(0), // META_ALT 8744 uint8(0), // META_ATOMIC 8745 uint8(0), // META_BACKREF - more if group is >= 10 8746 uint8(1 + DSIZEOFFSET), 8747 uint8(1), // META_BIGVALUE 8748 uint8(3), // META_CALLOUT_NUMBER 8749 uint8(3 + DSIZEOFFSET), 8750 uint8(0), // META_CAPTURE 8751 uint8(0), // META_CIRCUMFLEX 8752 uint8(0), // META_CLASS 8753 uint8(0), // META_CLASS_EMPTY 8754 uint8(0), // META_CLASS_EMPTY_NOT 8755 uint8(0), // META_CLASS_END 8756 uint8(0), // META_CLASS_NOT 8757 uint8(0), // META_COND_ASSERT 8758 uint8(DSIZEOFFSET), // META_COND_DEFINE 8759 uint8(1 + DSIZEOFFSET), 8760 uint8(1 + DSIZEOFFSET), 8761 uint8(1 + DSIZEOFFSET), 8762 uint8(1 + DSIZEOFFSET), 8763 uint8(3), // META_COND_VERSION 8764 uint8(0), // META_DOLLAR 8765 uint8(0), // META_DOT 8766 uint8(0), // META_ESCAPE - more for ESC_P, ESC_p, ESC_g, ESC_k 8767 uint8(0), // META_KET 8768 uint8(0), // META_NOCAPTURE 8769 uint8(1), // META_OPTIONS 8770 uint8(1), // META_POSIX 8771 uint8(1), // META_POSIX_NEG 8772 uint8(0), // META_RANGE_ESCAPED 8773 uint8(0), // META_RANGE_LITERAL 8774 uint8(DSIZEOFFSET), // META_RECURSE 8775 uint8(1 + DSIZEOFFSET), 8776 uint8(0), // META_SCRIPT_RUN 8777 uint8(0), // META_LOOKAHEAD 8778 uint8(0), // META_LOOKAHEADNOT 8779 uint8(DSIZEOFFSET), // META_LOOKBEHIND 8780 uint8(DSIZEOFFSET), // META_LOOKBEHINDNOT 8781 uint8(0), // META_LOOKAHEAD_NA 8782 uint8(DSIZEOFFSET), // META_LOOKBEHIND_NA 8783 uint8(1), // META_MARK - plus the string length 8784 uint8(0), // META_ACCEPT 8785 uint8(0), // META_FAIL 8786 uint8(0), // META_COMMIT 8787 uint8(1), // META_COMMIT_ARG - plus the string length 8788 uint8(0), // META_PRUNE 8789 uint8(1), // META_PRUNE_ARG - plus the string length 8790 uint8(0), // META_SKIP 8791 uint8(1), // META_SKIP_ARG - plus the string length 8792 uint8(0), // META_THEN 8793 uint8(1), // META_THEN_ARG - plus the string length 8794 uint8(0), // META_ASTERISK 8795 uint8(0), // META_ASTERISK_PLUS 8796 uint8(0), // META_ASTERISK_QUERY 8797 uint8(0), // META_PLUS 8798 uint8(0), // META_PLUS_PLUS 8799 uint8(0), // META_PLUS_QUERY 8800 uint8(0), // META_QUERY 8801 uint8(0), // META_QUERY_PLUS 8802 uint8(0), // META_QUERY_QUERY 8803 uint8(2), // META_MINMAX 8804 uint8(2), // META_MINMAX_PLUS 8805 uint8(2), // META_MINMAX_QUERY 8806 } /* pcre2_compile.c:306:22 */ 8807 8808 // Macro for setting individual bits in class bitmaps. It took some 8809 // experimenting to figure out how to stop gcc 5.3.0 from warning with 8810 // -Wconversion. This version gets a warning: 8811 // 8812 // #define SETBIT(a,b) a[(b)/8] |= (uint8_t)(1u << ((b)&7)) 8813 // 8814 // Let's hope the apparently less efficient version isn't actually so bad if the 8815 // compiler is clever with identical subexpressions. 8816 8817 // Values and flags for the unsigned xxcuflags variables that accompany xxcu 8818 // variables, which are concerned with first and required code units. A value 8819 // greater than or equal to REQ_NONE means "no code unit set"; otherwise the 8820 // matching xxcu variable is set, and the low valued bits are relevant. 8821 8822 // These flags are used in the groupinfo vector. 8823 8824 // This simple test for a decimal digit works for both ASCII/Unicode and EBCDIC 8825 // and is fast (a good compiler can turn it into a subtraction and unsigned 8826 // comparison). 8827 8828 // Table to identify hex digits. The tables in chartables are dependent on the 8829 // locale, and may mark arbitrary characters as digits. We want to recognize only 8830 // 0-9, a-z, and A-Z as hex digits, which is why we have a private table here. It 8831 // costs 256 bytes, but it is a lot faster than doing character value tests (at 8832 // least in some simple cases I timed), and in some applications one wants PCRE2 8833 // to compile efficiently as well as match efficiently. The value in the table is 8834 // the binary hex digit value, or 0xff for non-hex digits. 8835 8836 // This is the "normal" case, for ASCII systems, and EBCDIC systems running in 8837 // UTF-8 mode. 8838 8839 var xdigitab = [256]Tuint8_t{ 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), // 0- 7 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), // 8- 15 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), // 16- 23 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), // 24- 31 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), // - ' 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), // ( - / 8846 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 8847 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 - ? 8848 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 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), // H - O 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), // P - W 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), // X - _ 8852 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 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), // h - o 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), // p - w 8855 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 8856 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 8857 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 8858 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 8859 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 8860 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 8861 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 8862 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 8863 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 8864 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 8865 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 8866 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 8867 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 8868 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 8869 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 8870 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 8871 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 8872 8873 // Table for handling alphanumeric escaped characters. Positive returns are 8874 // simple data values; negative values are for special things like \d and so on. 8875 // Zero means further processing is needed (for things like \x), or the escape is 8876 // invalid. 8877 8878 // This is the "normal" table for ASCII systems or for EBCDIC systems running 8879 // in UTF-8 mode. It runs from '0' to 'z'. 8880 8881 var escapes = [75]int16{ 8882 int16(0), int16(0), 8883 int16(0), int16(0), 8884 int16(0), int16(0), 8885 int16(0), int16(0), 8886 int16(0), int16(0), 8887 int16('\072'), int16('\073'), 8888 int16('\074'), int16('\075'), 8889 int16('\076'), int16('\077'), 8890 int16('\100'), int16(-ESC_A), 8891 int16(-ESC_B), int16(-ESC_C), 8892 int16(-ESC_D), int16(-ESC_E), 8893 int16(0), int16(-ESC_G), 8894 int16(-ESC_H), int16(0), 8895 int16(0), int16(-ESC_K), 8896 int16(0), int16(0), 8897 int16(-ESC_N), int16(0), 8898 int16(-ESC_P), int16(-ESC_Q), 8899 int16(-ESC_R), int16(-ESC_S), 8900 int16(0), int16(0), 8901 int16(-ESC_V), int16(-ESC_W), 8902 int16(-ESC_X), int16(0), 8903 int16(-ESC_Z), int16('\133'), 8904 int16('\134'), int16('\135'), 8905 int16('\136'), int16('\137'), 8906 int16('\140'), int16('\007'), 8907 int16(-ESC_b), int16(0), 8908 int16(-ESC_d), int16('\033'), 8909 int16('\014'), int16(0), 8910 int16(-ESC_h), int16(0), 8911 int16(0), int16(-ESC_k), 8912 int16(0), int16(0), 8913 int16('\012'), int16(0), 8914 int16(-ESC_p), int16(0), 8915 int16('\015'), int16(-ESC_s), 8916 int16('\011'), int16(0), 8917 int16(-ESC_v), int16(-ESC_w), 8918 int16(0), int16(0), 8919 int16(-ESC_z), 8920 } /* pcre2_compile.c:511:24 */ 8921 8922 // Table of special "verbs" like (*PRUNE). This is a short table, so it is 8923 // searched linearly. Put all the names into a single string, in order to reduce 8924 // the number of relocations when a shared library is dynamically linked. The 8925 // string is built from string macros so that it works in UTF-8 mode on EBCDIC 8926 // platforms. 8927 8928 type Sverbitem = struct { 8929 Flen uint32 8930 Fmeta Tuint32_t 8931 Fhas_arg int32 8932 } /* pcre2_compile.c:602:9 */ 8933 8934 // Table of special "verbs" like (*PRUNE). This is a short table, so it is 8935 // searched linearly. Put all the names into a single string, in order to reduce 8936 // the number of relocations when a shared library is dynamically linked. The 8937 // string is built from string macros so that it works in UTF-8 mode on EBCDIC 8938 // platforms. 8939 8940 type Tverbitem = Sverbitem /* pcre2_compile.c:606:3 */ 8941 8942 var verbnames = 8943 // Empty name is a shorthand for MARK 8944 8945 *(*[43]uint8)(unsafe.Pointer(ts)) /* pcre2_compile.c:608:19 */ 8946 8947 var verbs = [9]Tverbitem{ 8948 {Fmeta: DMETA_MARK, Fhas_arg: +1}, // > 0 => must have an argument 8949 {Flen: uint32(4), Fmeta: DMETA_MARK, Fhas_arg: +1}, 8950 {Flen: uint32(6), Fmeta: DMETA_ACCEPT, Fhas_arg: -1}, // < 0 => Optional argument, convert to pre-MARK 8951 {Flen: uint32(1), Fmeta: DMETA_FAIL, Fhas_arg: -1}, 8952 {Flen: uint32(4), Fmeta: DMETA_FAIL, Fhas_arg: -1}, 8953 {Flen: uint32(6), Fmeta: DMETA_COMMIT}, 8954 {Flen: uint32(5), Fmeta: DMETA_PRUNE}, // Optional argument; bump META code if found 8955 {Flen: uint32(4), Fmeta: DMETA_SKIP}, 8956 {Flen: uint32(4), Fmeta: DMETA_THEN}, 8957 } /* pcre2_compile.c:619:23 */ 8958 8959 var verbcount int32 = int32(uint64(unsafe.Sizeof(verbs)) / uint64(unsafe.Sizeof(Tverbitem{}))) /* pcre2_compile.c:631:18 */ 8960 8961 // Verb opcodes, indexed by their META code offset from META_MARK. 8962 8963 var verbops = [11]Tuint32_t{ 8964 OP_MARK, OP_ACCEPT, OP_FAIL, OP_COMMIT, OP_COMMIT_ARG, OP_PRUNE, 8965 OP_PRUNE_ARG, OP_SKIP, OP_SKIP_ARG, OP_THEN, OP_THEN_ARG} /* pcre2_compile.c:635:23 */ 8966 8967 // Table of "alpha assertions" like (*pla:...), similar to the (*VERB) table. 8968 8969 type Salasitem = struct { 8970 Flen uint32 8971 Fmeta Tuint32_t 8972 } /* pcre2_compile.c:641:9 */ 8973 8974 // Table of "alpha assertions" like (*pla:...), similar to the (*VERB) table. 8975 8976 type Talasitem = Salasitem /* pcre2_compile.c:644:3 */ 8977 8978 var alasnames = *(*[210]uint8)(unsafe.Pointer(ts + 43)) /* pcre2_compile.c:646:19 */ 8979 8980 var alasmeta = [17]Talasitem{ 8981 {Flen: uint32(3), Fmeta: DMETA_LOOKAHEAD}, 8982 {Flen: uint32(3), Fmeta: DMETA_LOOKBEHIND}, 8983 {Flen: uint32(5), Fmeta: DMETA_LOOKAHEAD_NA}, 8984 {Flen: uint32(5), Fmeta: DMETA_LOOKBEHIND_NA}, 8985 {Flen: uint32(3), Fmeta: DMETA_LOOKAHEADNOT}, 8986 {Flen: uint32(3), Fmeta: DMETA_LOOKBEHINDNOT}, 8987 {Flen: uint32(18), Fmeta: DMETA_LOOKAHEAD}, 8988 {Flen: uint32(19), Fmeta: DMETA_LOOKBEHIND}, 8989 {Flen: uint32(29), Fmeta: DMETA_LOOKAHEAD_NA}, 8990 {Flen: uint32(30), Fmeta: DMETA_LOOKBEHIND_NA}, 8991 {Flen: uint32(18), Fmeta: DMETA_LOOKAHEADNOT}, 8992 {Flen: uint32(19), Fmeta: DMETA_LOOKBEHINDNOT}, 8993 {Flen: uint32(6), Fmeta: DMETA_ATOMIC}, 8994 {Flen: uint32(2), Fmeta: DMETA_SCRIPT_RUN}, // sr = script run 8995 {Flen: uint32(3), Fmeta: DMETA_ATOMIC_SCRIPT_RUN}, // asr = atomic script run 8996 {Flen: uint32(10), Fmeta: DMETA_SCRIPT_RUN}, // script run 8997 {Flen: uint32(17), Fmeta: DMETA_ATOMIC_SCRIPT_RUN}, // atomic script run 8998 } /* pcre2_compile.c:665:23 */ 8999 9000 var alascount int32 = int32(uint64(unsafe.Sizeof(alasmeta)) / uint64(unsafe.Sizeof(Talasitem{}))) /* pcre2_compile.c:685:18 */ 9001 9002 // Offsets from OP_STAR for case-independent and negative repeat opcodes. 9003 9004 var chartypeoffset = [4]Tuint32_t{ 9005 Tuint32_t(OP_STAR - OP_STAR), Tuint32_t(OP_STARI - OP_STAR), 9006 Tuint32_t(OP_NOTSTAR - OP_STAR), Tuint32_t(OP_NOTSTARI - OP_STAR)} /* pcre2_compile.c:689:17 */ 9007 9008 // Tables of names of POSIX character classes and their lengths. The names are 9009 // now all in a single string, to reduce the number of relocations when a shared 9010 // library is dynamically loaded. The list of lengths is terminated by a zero 9011 // length entry. The first three must be alpha, lower, upper, as this is assumed 9012 // for handling case independence. The indices for graph, print, and punct are 9013 // needed, so identify them. 9014 9015 var posix_names = *(*[84]uint8)(unsafe.Pointer(ts + 253)) /* pcre2_compile.c:700:19 */ 9016 9017 var posix_name_lengths = [15]Tuint8_t{ 9018 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 */ 9019 9020 // Table of class bit maps for each POSIX class. Each class is formed from a 9021 // base map, with an optional addition or removal of another map. Then, for some 9022 // classes, there is some additional tweaking: for [:blank:] the vertical space 9023 // characters are removed, and for [:alpha:] and [:alnum:] the underscore 9024 // character is removed. The triples in the table consist of the base map offset, 9025 // second map offset or -1 if no second map, and a non-negative value for map 9026 // addition or a negative value for map subtraction (if there are two maps). The 9027 // absolute value of the third field has these meanings: 0 => no tweaking, 1 => 9028 // remove vertical space characters, 2 => remove underscore. 9029 9030 var posix_class_maps = [42]int32{ 9031 Dcbit_word, Dcbit_digit, -2, // alpha 9032 Dcbit_lower, -1, 0, // lower 9033 Dcbit_upper, -1, 0, // upper 9034 Dcbit_word, -1, 2, // alnum - word without underscore 9035 Dcbit_print, Dcbit_cntrl, 0, // ascii 9036 Dcbit_space, -1, 1, // blank - a GNU extension 9037 Dcbit_cntrl, -1, 0, // cntrl 9038 Dcbit_digit, -1, 0, // digit 9039 Dcbit_graph, -1, 0, // graph 9040 Dcbit_print, -1, 0, // print 9041 Dcbit_punct, -1, 0, // punct 9042 Dcbit_space, -1, 0, // space 9043 Dcbit_word, -1, 0, // word - a Perl extension 9044 Dcbit_xdigit, -1, 0, // xdigit 9045 } /* pcre2_compile.c:723:18 */ 9046 9047 // The POSIX class Unicode property substitutes that are used in UCP mode must 9048 // be in the order of the POSIX class names, defined above. 9049 9050 var posix_substitutes = [28]int32{ 9051 DPT_GC, ucp_L, // alpha 9052 DPT_PC, ucp_Ll, // lower 9053 DPT_PC, ucp_Lu, // upper 9054 DPT_ALNUM, 0, // alnum 9055 -1, 0, // ascii, treat as non-UCP 9056 -1, 1, // blank, treat as \h 9057 DPT_PC, ucp_Cc, // cntrl 9058 DPT_PC, ucp_Nd, // digit 9059 DPT_PXGRAPH, 0, // graph 9060 DPT_PXPRINT, 0, // print 9061 DPT_PXPUNCT, 0, // punct 9062 DPT_PXSPACE, 0, /* space */ // Xps is POSIX space, but from 8.34 9063 DPT_WORD, 0, /* word */ // Perl and POSIX space are the same 9064 -1, 0, // xdigit, treat as non-UCP 9065 } /* pcre2_compile.c:745:12 */ // Read integer value for depth limit 9066 9067 type Spso = struct { 9068 Fname uintptr 9069 Flength Tuint16_t 9070 Ftype Tuint16_t 9071 Fvalue Tuint32_t 9072 } /* pcre2_compile.c:822:9 */ 9073 9074 // Read integer value for depth limit 9075 9076 type Tpso = Spso /* pcre2_compile.c:827:3 */ 9077 9078 // NB: STRING_UTFn_RIGHTPAR contains the length as well 9079 9080 var pso_list = [21]Tpso{ 9081 {Fname: uintptr(ts + 337), Flength: Tuint16_t(5), Fvalue: DPCRE2_UTF}, 9082 {Fname: uintptr(ts + 343), Flength: Tuint16_t(4), Fvalue: DPCRE2_UTF}, 9083 {Fname: uintptr(ts + 348), Flength: Tuint16_t(4), Fvalue: DPCRE2_UCP}, 9084 {Fname: uintptr(ts + 353), Flength: Tuint16_t(9), Ftype: PSO_FLG, Fvalue: Tuint32_t(DPCRE2_NOTEMPTY_SET)}, 9085 {Fname: uintptr(ts + 363), Flength: Tuint16_t(17), Ftype: PSO_FLG, Fvalue: Tuint32_t(DPCRE2_NE_ATST_SET)}, 9086 {Fname: uintptr(ts + 381), Flength: Tuint16_t(16), Fvalue: DPCRE2_NO_AUTO_POSSESS}, 9087 {Fname: uintptr(ts + 398), Flength: Tuint16_t(18), Fvalue: DPCRE2_NO_DOTSTAR_ANCHOR}, 9088 {Fname: uintptr(ts + 417), Flength: Tuint16_t(7), Ftype: PSO_FLG, Fvalue: Tuint32_t(DPCRE2_NOJIT)}, 9089 {Fname: uintptr(ts + 425), Flength: Tuint16_t(13), Fvalue: DPCRE2_NO_START_OPTIMIZE}, 9090 {Fname: uintptr(ts + 439), Flength: Tuint16_t(11), Ftype: PSO_LIMH}, 9091 {Fname: uintptr(ts + 451), Flength: Tuint16_t(12), Ftype: PSO_LIMM}, 9092 {Fname: uintptr(ts + 464), Flength: Tuint16_t(12), Ftype: PSO_LIMD}, 9093 {Fname: uintptr(ts + 477), Flength: Tuint16_t(16), Ftype: PSO_LIMD}, 9094 {Fname: uintptr(ts + 494), Flength: Tuint16_t(3), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_CR)}, 9095 {Fname: uintptr(ts + 498), Flength: Tuint16_t(3), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_LF)}, 9096 {Fname: uintptr(ts + 502), Flength: Tuint16_t(5), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_CRLF)}, 9097 {Fname: uintptr(ts + 508), Flength: Tuint16_t(4), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_ANY)}, 9098 {Fname: uintptr(ts + 513), Flength: Tuint16_t(4), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_NUL)}, 9099 {Fname: uintptr(ts + 518), Flength: Tuint16_t(8), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_ANYCRLF)}, 9100 {Fname: uintptr(ts + 527), Flength: Tuint16_t(12), Ftype: PSO_BSR, Fvalue: Tuint32_t(DPCRE2_BSR_ANYCRLF)}, 9101 {Fname: uintptr(ts + 540), Flength: Tuint16_t(12), Ftype: PSO_BSR, Fvalue: Tuint32_t(DPCRE2_BSR_UNICODE)}, 9102 } /* pcre2_compile.c:831:12 */ 9103 9104 // This table is used when converting repeating opcodes into possessified 9105 // versions as a result of an explicit possessive quantifier such as ++. A zero 9106 // value means there is no possessified version - in those cases the item in 9107 // question must be wrapped in ONCE brackets. The table is truncated at OP_CALLOUT 9108 // because all relevant opcodes are less than that. 9109 9110 var opcode_possessify = [119]Tuint8_t{ 9111 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 9112 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 9113 9114 Tuint8_t(0), // NOTI 9115 OP_POSSTAR, Tuint8_t(0), // STAR, MINSTAR 9116 OP_POSPLUS, Tuint8_t(0), // PLUS, MINPLUS 9117 OP_POSQUERY, Tuint8_t(0), // QUERY, MINQUERY 9118 OP_POSUPTO, Tuint8_t(0), // UPTO, MINUPTO 9119 Tuint8_t(0), // EXACT 9120 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // POS{STAR,PLUS,QUERY,UPTO} 9121 9122 OP_POSSTARI, Tuint8_t(0), // STARI, MINSTARI 9123 OP_POSPLUSI, Tuint8_t(0), // PLUSI, MINPLUSI 9124 OP_POSQUERYI, Tuint8_t(0), // QUERYI, MINQUERYI 9125 OP_POSUPTOI, Tuint8_t(0), // UPTOI, MINUPTOI 9126 Tuint8_t(0), // EXACTI 9127 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // POS{STARI,PLUSI,QUERYI,UPTOI} 9128 9129 OP_NOTPOSSTAR, Tuint8_t(0), // NOTSTAR, NOTMINSTAR 9130 OP_NOTPOSPLUS, Tuint8_t(0), // NOTPLUS, NOTMINPLUS 9131 OP_NOTPOSQUERY, Tuint8_t(0), // NOTQUERY, NOTMINQUERY 9132 OP_NOTPOSUPTO, Tuint8_t(0), // NOTUPTO, NOTMINUPTO 9133 Tuint8_t(0), // NOTEXACT 9134 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // NOTPOS{STAR,PLUS,QUERY,UPTO} 9135 9136 OP_NOTPOSSTARI, Tuint8_t(0), // NOTSTARI, NOTMINSTARI 9137 OP_NOTPOSPLUSI, Tuint8_t(0), // NOTPLUSI, NOTMINPLUSI 9138 OP_NOTPOSQUERYI, Tuint8_t(0), // NOTQUERYI, NOTMINQUERYI 9139 OP_NOTPOSUPTOI, Tuint8_t(0), // NOTUPTOI, NOTMINUPTOI 9140 Tuint8_t(0), // NOTEXACTI 9141 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // NOTPOS{STARI,PLUSI,QUERYI,UPTOI} 9142 9143 OP_TYPEPOSSTAR, Tuint8_t(0), // TYPESTAR, TYPEMINSTAR 9144 OP_TYPEPOSPLUS, Tuint8_t(0), // TYPEPLUS, TYPEMINPLUS 9145 OP_TYPEPOSQUERY, Tuint8_t(0), // TYPEQUERY, TYPEMINQUERY 9146 OP_TYPEPOSUPTO, Tuint8_t(0), // TYPEUPTO, TYPEMINUPTO 9147 Tuint8_t(0), // TYPEEXACT 9148 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // TYPEPOS{STAR,PLUS,QUERY,UPTO} 9149 9150 OP_CRPOSSTAR, Tuint8_t(0), // CRSTAR, CRMINSTAR 9151 OP_CRPOSPLUS, Tuint8_t(0), // CRPLUS, CRMINPLUS 9152 OP_CRPOSQUERY, Tuint8_t(0), // CRQUERY, CRMINQUERY 9153 OP_CRPOSRANGE, Tuint8_t(0), // CRRANGE, CRMINRANGE 9154 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CRPOS{STAR,PLUS,QUERY,RANGE} 9155 9156 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CLASS, NCLASS, XCLASS 9157 Tuint8_t(0), Tuint8_t(0), // REF, REFI 9158 Tuint8_t(0), Tuint8_t(0), // DNREF, DNREFI 9159 Tuint8_t(0), Tuint8_t(0), // RECURSE, CALLOUT 9160 } /* pcre2_compile.c:861:22 */ 9161 9162 // ************************************************ 9163 // 9164 // Copy compiled code * 9165 // 9166 9167 // Compiled JIT code cannot be copied, so the new compiled block has no 9168 // associated JIT data. 9169 9170 func Xpcre2_code_copy_8(tls *libc.TLS, code uintptr) uintptr { /* pcre2_compile.c:1193:27: */ 9171 var ref_count uintptr 9172 var newcode uintptr 9173 9174 if code == uintptr(0) { 9175 return uintptr(0) 9176 } 9177 newcode = (*struct { 9178 f func(*libc.TLS, Tsize_t, uintptr) uintptr 9179 })(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) 9180 if newcode == uintptr(0) { 9181 return uintptr(0) 9182 } 9183 libc.Xmemcpy(tls, newcode, code, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fblocksize) 9184 (*Tpcre2_code_8)(unsafe.Pointer(newcode)).Fexecutable_jit = uintptr(0) 9185 9186 // If the code is one that has been deserialized, increment the reference count 9187 // in the decoded tables. 9188 9189 if (*Tpcre2_code_8)(unsafe.Pointer(code)).Fflags&Tuint32_t(DPCRE2_DEREF_TABLES) != Tuint32_t(0) { 9190 ref_count = (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset+Dcbit_length+256) 9191 *(*Tsize_t)(unsafe.Pointer(ref_count))++ 9192 } 9193 9194 return newcode 9195 } 9196 9197 // ************************************************ 9198 // 9199 // Copy compiled code and character tables * 9200 // 9201 9202 // Compiled JIT code cannot be copied, so the new compiled block has no 9203 // associated JIT data. This version of code_copy also makes a separate copy of 9204 // the character tables. 9205 9206 func Xpcre2_code_copy_with_tables_8(tls *libc.TLS, code uintptr) uintptr { /* pcre2_compile.c:1227:27: */ 9207 var ref_count uintptr 9208 var newcode uintptr 9209 var newtables uintptr 9210 9211 if code == uintptr(0) { 9212 return uintptr(0) 9213 } 9214 newcode = (*struct { 9215 f func(*libc.TLS, Tsize_t, uintptr) uintptr 9216 })(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) 9217 if newcode == uintptr(0) { 9218 return uintptr(0) 9219 } 9220 libc.Xmemcpy(tls, newcode, code, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fblocksize) 9221 (*Tpcre2_code_8)(unsafe.Pointer(newcode)).Fexecutable_jit = uintptr(0) 9222 9223 newtables = (*struct { 9224 f func(*libc.TLS, Tsize_t, uintptr) uintptr 9225 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmalloc})).f(tls, uint64(Dcbits_offset+Dcbit_length+256)+uint64(unsafe.Sizeof(Tsize_t(0))), 9226 (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9227 if newtables == uintptr(0) { 9228 (*struct { 9229 f func(*libc.TLS, uintptr, uintptr) 9230 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Ffree})).f(tls, newcode, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9231 return uintptr(0) 9232 } 9233 libc.Xmemcpy(tls, newtables, (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables, uint64(Dcbits_offset+Dcbit_length+256)) 9234 ref_count = newtables + uintptr(Dcbits_offset+Dcbit_length+256) 9235 *(*Tsize_t)(unsafe.Pointer(ref_count)) = uint64(1) 9236 9237 (*Tpcre2_code_8)(unsafe.Pointer(newcode)).Ftables = newtables 9238 *(*Tuint32_t)(unsafe.Pointer(newcode + 96)) |= Tuint32_t(DPCRE2_DEREF_TABLES) 9239 return newcode 9240 } 9241 9242 // ************************************************ 9243 // 9244 // Free compiled code * 9245 // 9246 9247 func Xpcre2_code_free_8(tls *libc.TLS, code uintptr) { /* pcre2_compile.c:1263:1: */ 9248 var ref_count uintptr 9249 9250 if code != uintptr(0) { 9251 if (*Tpcre2_code_8)(unsafe.Pointer(code)).Fexecutable_jit != uintptr(0) { 9252 X_pcre2_jit_free_8(tls, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fexecutable_jit, code) 9253 } 9254 9255 if (*Tpcre2_code_8)(unsafe.Pointer(code)).Fflags&Tuint32_t(DPCRE2_DEREF_TABLES) != Tuint32_t(0) { 9256 // Decoded tables belong to the codes after deserialization, and they must 9257 // be freed when there are no more references to them. The *ref_count should 9258 // always be > 0. 9259 9260 ref_count = (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset+Dcbit_length+256) 9261 if *(*Tsize_t)(unsafe.Pointer(ref_count)) > uint64(0) { 9262 *(*Tsize_t)(unsafe.Pointer(ref_count))-- 9263 if *(*Tsize_t)(unsafe.Pointer(ref_count)) == uint64(0) { 9264 (*struct { 9265 f func(*libc.TLS, uintptr, uintptr) 9266 })(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) 9267 } 9268 } 9269 } 9270 9271 (*struct { 9272 f func(*libc.TLS, uintptr, uintptr) 9273 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Ffree})).f(tls, code, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9274 } 9275 } 9276 9277 // ************************************************ 9278 // 9279 // Read a number, possibly signed * 9280 // 9281 9282 // This function is used to read numbers in the pattern. The initial pointer 9283 // must be the sign or first digit of the number. When relative values (introduced 9284 // by + or -) are allowed, they are relative group numbers, and the result must be 9285 // greater than zero. 9286 // 9287 // Arguments: 9288 // ptrptr points to the character pointer variable 9289 // ptrend points to the end of the input string 9290 // allow_sign if < 0, sign not allowed; if >= 0, sign is relative to this 9291 // max_value the largest number allowed 9292 // max_error the error to give for an over-large number 9293 // intptr where to put the result 9294 // errcodeptr where to put an error code 9295 // 9296 // Returns: TRUE - a number was read 9297 // FALSE - errorcode == 0 => no number was found 9298 // errorcode != 0 => an error occurred 9299 9300 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: */ 9301 var sign int32 9302 var n Tuint32_t 9303 var ptr TPCRE2_SPTR8 9304 var yield TBOOL 9305 sign = 0 9306 n = Tuint32_t(0) 9307 ptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9308 yield = DFALSE 9309 9310 *(*int32)(unsafe.Pointer(errorcodeptr)) = 0 9311 9312 if !(allow_sign >= 0 && ptr < ptrend) { 9313 goto __1 9314 } 9315 9316 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\053') { 9317 goto __2 9318 } 9319 9320 sign = +1 9321 max_value = max_value - Tuint32_t(allow_sign) 9322 ptr++ 9323 goto __3 9324 __2: 9325 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\055') { 9326 goto __4 9327 } 9328 9329 sign = -1 9330 ptr++ 9331 __4: 9332 ; 9333 __3: 9334 ; 9335 __1: 9336 ; 9337 9338 if !(ptr >= ptrend || !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) <= '\071')) { 9339 goto __5 9340 } 9341 return DFALSE 9342 __5: 9343 ; 9344 __6: 9345 if !(ptr < ptrend && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) <= '\071')) { 9346 goto __7 9347 } 9348 9349 n = n*Tuint32_t(10) + Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1)))) - Tuint32_t('\060') 9350 if !(n > max_value) { 9351 goto __8 9352 } 9353 9354 *(*int32)(unsafe.Pointer(errorcodeptr)) = int32(max_error) 9355 goto EXIT 9356 __8: 9357 ; 9358 goto __6 9359 __7: 9360 ; 9361 9362 if !(allow_sign >= 0 && sign != 0) { 9363 goto __9 9364 } 9365 9366 if !(n == Tuint32_t(0)) { 9367 goto __10 9368 } 9369 9370 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR26 // +0 and -0 are not allowed 9371 goto EXIT 9372 __10: 9373 ; 9374 9375 if !(sign > 0) { 9376 goto __11 9377 } 9378 n = n + Tuint32_t(allow_sign) 9379 goto __12 9380 __11: 9381 if !(int32(n) > allow_sign) { 9382 goto __13 9383 } 9384 9385 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 // Non-existent subpattern 9386 goto EXIT 9387 goto __14 9388 __13: 9389 n = Tuint32_t(allow_sign+1) - n 9390 __14: 9391 ; 9392 __12: 9393 ; 9394 __9: 9395 ; 9396 9397 yield = DTRUE 9398 9399 EXIT: 9400 *(*int32)(unsafe.Pointer(intptr)) = int32(n) 9401 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 9402 return yield 9403 } 9404 9405 // ************************************************ 9406 // 9407 // Read repeat counts * 9408 // 9409 9410 // Read an item of the form {n,m} and return the values if non-NULL pointers 9411 // are supplied. Repeat counts must be less than 65536 (MAX_REPEAT_COUNT); a 9412 // larger value is used for "unlimited". We have to use signed arguments for 9413 // read_number() because it is capable of returning a signed value. 9414 // 9415 // Arguments: 9416 // ptrptr points to pointer to character after'{' 9417 // ptrend pointer to end of input 9418 // minp if not NULL, pointer to int for min 9419 // maxp if not NULL, pointer to int for max (-1 if no max) 9420 // returned as -1 if no max 9421 // errorcodeptr points to error code variable 9422 // 9423 // Returns: FALSE if not a repeat quantifier, errorcode set zero 9424 // FALSE on error, with errorcode set non-zero 9425 // TRUE on success, with pointer updated to point after '}' 9426 9427 func read_repeat_counts(tls *libc.TLS, ptrptr uintptr, ptrend TPCRE2_SPTR8, minp uintptr, maxp uintptr, errorcodeptr uintptr) TBOOL { /* pcre2_compile.c:1403:1: */ 9428 bp := tls.Alloc(16) 9429 defer tls.Free(16) 9430 9431 // var p TPCRE2_SPTR8 at bp, 8 9432 9433 var yield TBOOL 9434 var had_comma TBOOL 9435 // var min Tint32_t at bp+8, 4 9436 9437 // var max Tint32_t at bp+12, 4 9438 9439 var c Tuint32_t 9440 yield = DFALSE 9441 had_comma = DFALSE 9442 *(*Tint32_t)(unsafe.Pointer(bp + 8 /* min */)) = 0 9443 *(*Tint32_t)(unsafe.Pointer(bp + 12 /* max */)) = int32(DMAX_REPEAT_COUNT + uint32(1)) // This value is larger than MAX_REPEAT_COUNT 9444 9445 // Check the syntax 9446 9447 *(*int32)(unsafe.Pointer(errorcodeptr)) = 0 9448 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9449 __1: 9450 ; 9451 9452 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) >= ptrend) { 9453 goto __4 9454 } 9455 return DFALSE 9456 __4: 9457 ; 9458 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))))) 9459 if !(c >= Tuint32_t('\060') && c <= Tuint32_t('\071')) { 9460 goto __5 9461 } 9462 goto __2 9463 __5: 9464 ; 9465 if !(c == Tuint32_t('\175')) { 9466 goto __6 9467 } 9468 goto __3 9469 __6: 9470 ; 9471 if !(c == Tuint32_t('\054')) { 9472 goto __7 9473 } 9474 9475 if !(had_comma != 0) { 9476 goto __9 9477 } 9478 return DFALSE 9479 __9: 9480 ; 9481 had_comma = DTRUE 9482 goto __8 9483 __7: 9484 return DFALSE 9485 __8: 9486 ; 9487 goto __2 9488 __2: 9489 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))++ 9490 goto __1 9491 goto __3 9492 __3: 9493 ; 9494 9495 // The only error from read_number() is for a number that is too big. 9496 9497 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9498 if !!(read_number(tls, bp, ptrend, -1, DMAX_REPEAT_COUNT, ERR5, bp+8, errorcodeptr) != 0) { 9499 goto __10 9500 } 9501 goto EXIT 9502 __10: 9503 ; 9504 9505 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\175') { 9506 goto __11 9507 } 9508 9509 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))++ 9510 *(*Tint32_t)(unsafe.Pointer(bp + 12 /* max */)) = *(*Tint32_t)(unsafe.Pointer(bp + 8 /* min */)) 9511 goto __12 9512 __11: 9513 9514 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)), 1)))) != '\175') { 9515 goto __13 9516 } 9517 9518 if !!(read_number(tls, bp, ptrend, -1, DMAX_REPEAT_COUNT, ERR5, bp+12, 9519 errorcodeptr) != 0) { 9520 goto __14 9521 } 9522 goto EXIT 9523 __14: 9524 ; 9525 if !(*(*Tint32_t)(unsafe.Pointer(bp + 12)) < *(*Tint32_t)(unsafe.Pointer(bp + 8))) { 9526 goto __15 9527 } 9528 9529 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR4 9530 goto EXIT 9531 __15: 9532 ; 9533 __13: 9534 ; 9535 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))++ 9536 __12: 9537 ; 9538 9539 yield = DTRUE 9540 if !(minp != uintptr(0)) { 9541 goto __16 9542 } 9543 *(*Tuint32_t)(unsafe.Pointer(minp)) = Tuint32_t(*(*Tint32_t)(unsafe.Pointer(bp + 8 /* min */))) 9544 __16: 9545 ; 9546 if !(maxp != uintptr(0)) { 9547 goto __17 9548 } 9549 *(*Tuint32_t)(unsafe.Pointer(maxp)) = Tuint32_t(*(*Tint32_t)(unsafe.Pointer(bp + 12 /* max */))) 9550 __17: 9551 ; 9552 9553 // Update the pattern pointer 9554 9555 EXIT: 9556 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) 9557 return yield 9558 } 9559 9560 // ************************************************ 9561 // 9562 // Handle escapes * 9563 // 9564 9565 // This function is called when a \ has been encountered. It either returns a 9566 // positive value for a simple escape such as \d, or 0 for a data character, which 9567 // is placed in chptr. A backreference to group n is returned as negative n. On 9568 // entry, ptr is pointing at the character after \. On exit, it points after the 9569 // final code unit of the escape sequence. 9570 // 9571 // This function is also called from pcre2_substitute() to handle escape sequences 9572 // in replacement strings. In this case, the cb argument is NULL, and in the case 9573 // of escapes that have further processing, only sequences that define a data 9574 // character are recognised. The isclass argument is not relevant; the options 9575 // argument is the final value of the compiled pattern's options. 9576 // 9577 // Arguments: 9578 // ptrptr points to the input position pointer 9579 // ptrend points to the end of the input 9580 // chptr points to a returned data character 9581 // errorcodeptr points to the errorcode variable (containing zero) 9582 // options the current options bits 9583 // isclass TRUE if inside a character class 9584 // cb compile data block or NULL when called from pcre2_substitute() 9585 // 9586 // Returns: zero => a data character 9587 // positive => a special escape sequence 9588 // negative => a numerical back reference 9589 // on error, errorcodeptr is set non-zero 9590 9591 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: */ 9592 bp := tls.Alloc(32) 9593 defer tls.Free(32) 9594 9595 var utf TBOOL 9596 // var ptr TPCRE2_SPTR8 at bp+24, 8 9597 9598 var c Tuint32_t 9599 var cc Tuint32_t 9600 var escape int32 9601 var i int32 9602 // var p TPCRE2_SPTR8 at bp, 8 9603 9604 var hptr TPCRE2_SPTR8 9605 var xc Tuint32_t 9606 // var p1 TPCRE2_SPTR8 at bp+8, 8 9607 9608 var xc1 Tuint32_t 9609 // var s int32 at bp+16, 4 9610 9611 var oldptr TPCRE2_SPTR8 9612 var overflow TBOOL 9613 var alt_bsux TBOOL 9614 utf = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 9615 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9616 escape = 0 9617 9618 // If backslash is at the end of the string, it's an error. 9619 9620 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend) { 9621 goto __1 9622 } 9623 9624 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR1 9625 return 0 9626 __1: 9627 ; 9628 9629 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)), 1)))) 9630 if !(utf != 0 && c >= 0xc0) { 9631 goto __2 9632 } 9633 if !(c&0x20 == Tuint32_t(0)) { 9634 goto __3 9635 } 9636 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1))))&0x3f 9637 goto __4 9638 __3: 9639 if !(c&0x10 == Tuint32_t(0)) { 9640 goto __5 9641 } 9642 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1)))&0x3f 9643 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(2) 9644 goto __6 9645 __5: 9646 if !(c&0x08 == Tuint32_t(0)) { 9647 goto __7 9648 } 9649 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 2)))&0x3f 9650 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(3) 9651 goto __8 9652 __7: 9653 if !(c&0x04 == Tuint32_t(0)) { 9654 goto __9 9655 } 9656 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 3)))&0x3f 9657 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(4) 9658 goto __10 9659 __9: 9660 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 4)))&0x3f 9661 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(5) 9662 __10: 9663 ; 9664 __8: 9665 ; 9666 __6: 9667 ; 9668 __4: 9669 ; 9670 __2: 9671 ; 9672 9673 // Get character value, increment pointer 9674 *(*int32)(unsafe.Pointer(errorcodeptr)) = 0 // Be optimistic 9675 9676 // Non-alphanumerics are literals, so we just leave the value in c. An initial 9677 // value test saves a memory lookup for code points outside the alphanumeric 9678 // range. 9679 9680 if !(c < Tuint32_t('\060') || c > Tuint32_t('\172')) { 9681 goto __11 9682 } 9683 goto __12 9684 __11: 9685 if !(libc.AssignInt32(&i, int32(escapes[c-Tuint32_t('\060')])) != 0) { 9686 goto __13 9687 } 9688 9689 if !(i > 0) { 9690 goto __15 9691 } 9692 9693 c = Tuint32_t(i) 9694 if !(c == Tuint32_t('\015') && extra_options&DPCRE2_EXTRA_ESCAPED_CR_IS_LF != Tuint32_t(0)) { 9695 goto __17 9696 } 9697 c = Tuint32_t('\012') 9698 __17: 9699 ; 9700 goto __16 9701 __15: /* Negative table entry */ 9702 9703 escape = -i // Else return a special escape 9704 if !(cb != uintptr(0) && (escape == ESC_P || escape == ESC_p || escape == ESC_X)) { 9705 goto __18 9706 } 9707 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASBKPORX) 9708 __18: 9709 ; // Note \P, \p, or \X 9710 9711 // Perl supports \N{name} for character names and \N{U+dddd} for numerical 9712 // Unicode code points, as well as plain \N for "not newline". PCRE does not 9713 // support \N{name}. However, it does support quantification such as \N{2,3}, 9714 // so if \N{ is not followed by U+dddd we check for a quantifier. 9715 9716 if !(escape == ESC_N && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\173') { 9717 goto __19 9718 } 9719 9720 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + uintptr(1) 9721 9722 // \N{U+ can be handled by the \x{ code. However, this construction is 9723 // not valid in EBCDIC environments because it specifies a Unicode 9724 // character, not a codepoint in the local code. For example \N{U+0041} 9725 // must be "A" in all environments. Also, in Perl, \N{U+ forces Unicode 9726 // casing semantics for the entire pattern, so allow it only in UTF (i.e. 9727 // Unicode) mode. 9728 9729 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))/1 > int64(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\125' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + 1))) == '\053') { 9730 goto __20 9731 } 9732 9733 if !(utf != 0) { 9734 goto __22 9735 } 9736 9737 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + uintptr(1) 9738 escape = 0 // Not a fancy escape after all 9739 goto COME_FROM_NU 9740 goto __23 9741 __22: 9742 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR93 9743 __23: 9744 ; 9745 goto __21 9746 __20: 9747 9748 if !(!(read_repeat_counts(tls, bp, ptrend, uintptr(0), uintptr(0), errorcodeptr) != 0) && *(*int32)(unsafe.Pointer(errorcodeptr)) == 0) { 9749 goto __24 9750 } 9751 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 9752 __24: 9753 ; 9754 __21: 9755 ; 9756 __19: 9757 ; 9758 __16: 9759 ; 9760 goto __14 9761 __13: 9762 alt_bsux = 9763 libc.Bool32(options&DPCRE2_ALT_BSUX|extra_options&DPCRE2_EXTRA_ALT_BSUX != Tuint32_t(0)) 9764 9765 // Filter calls from pcre2_substitute(). 9766 9767 if !(cb == uintptr(0)) { 9768 goto __25 9769 } 9770 9771 if !(c != Tuint32_t('\143') && c != Tuint32_t('\157') && c != Tuint32_t('\170')) { 9772 goto __26 9773 } 9774 9775 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR3 9776 return 0 9777 __26: 9778 ; 9779 alt_bsux = DFALSE // Do not modify \x handling 9780 __25: 9781 ; 9782 9783 switch c { 9784 // A number of Perl escapes are not handled by PCRE. We give an explicit 9785 // error. 9786 9787 case Tuint32_t('\106'): 9788 goto __28 9789 case Tuint32_t('\154'): 9790 goto __29 9791 case Tuint32_t('\114'): 9792 goto __30 9793 9794 // \u is unrecognized when neither PCRE2_ALT_BSUX nor PCRE2_EXTRA_ALT_BSUX 9795 // is set. Otherwise, \u must be followed by exactly four hex digits or, if 9796 // PCRE2_EXTRA_ALT_BSUX is set, by any number of hex digits in braces. 9797 // Otherwise it is a lowercase u letter. This gives some compatibility with 9798 // ECMAScript (aka JavaScript). 9799 9800 case Tuint32_t('\165'): 9801 goto __31 9802 9803 // \U is unrecognized unless PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, 9804 // in which case it is an upper case letter. 9805 9806 case Tuint32_t('\125'): 9807 goto __32 9808 9809 // In a character class, \g is just a literal "g". Outside a character 9810 // class, \g must be followed by one of a number of specific things: 9811 // 9812 // (1) A number, either plain or braced. If positive, it is an absolute 9813 // backreference. If negative, it is a relative backreference. This is a Perl 9814 // 5.10 feature. 9815 // 9816 // (2) Perl 5.10 also supports \g{name} as a reference to a named group. This 9817 // is part of Perl's movement towards a unified syntax for back references. As 9818 // this is synonymous with \k{name}, we fudge it up by pretending it really 9819 // was \k{name}. 9820 // 9821 // (3) For Oniguruma compatibility we also support \g followed by a name or a 9822 // number either in angle brackets or in single quotes. However, these are 9823 // (possibly recursive) subroutine calls, _not_ backreferences. We return 9824 // the ESC_g code. 9825 // 9826 // Summary: Return a negative number for a numerical back reference, ESC_k for 9827 // a named back reference, and ESC_g for a named or numbered subroutine call. 9828 // 9829 9830 case Tuint32_t('\147'): 9831 goto __33 9832 9833 // The handling of escape sequences consisting of a string of digits 9834 // starting with one that is not zero is not straightforward. Perl has changed 9835 // over the years. Nowadays \g{} for backreferences and \o{} for octal are 9836 // recommended to avoid the ambiguities in the old syntax. 9837 // 9838 // Outside a character class, the digits are read as a decimal number. If the 9839 // number is less than 10, or if there are that many previous extracting left 9840 // brackets, it is a back reference. Otherwise, up to three octal digits are 9841 // read to form an escaped character code. Thus \123 is likely to be octal 123 9842 // (cf \0123, which is octal 012 followed by the literal 3). 9843 // 9844 // Inside a character class, \ followed by a digit is always either a literal 9845 // 8 or 9 or an octal number. 9846 9847 case Tuint32_t('\061'): 9848 goto __34 9849 case Tuint32_t('\062'): 9850 goto __35 9851 case Tuint32_t('\063'): 9852 goto __36 9853 case Tuint32_t('\064'): 9854 goto __37 9855 case Tuint32_t('\065'): 9856 goto __38 9857 case Tuint32_t('\066'): 9858 goto __39 9859 case Tuint32_t('\067'): 9860 goto __40 9861 case Tuint32_t('\070'): 9862 goto __41 9863 case Tuint32_t('\071'): 9864 goto __42 9865 9866 // Fall through 9867 9868 // \0 always starts an octal number, but we may drop through to here with a 9869 // larger first octal digit. The original code used just to take the least 9870 // significant 8 bits of octal numbers (I think this is what early Perls used 9871 // to do). Nowadays we allow for larger numbers in UTF-8 mode and 16-bit mode, 9872 // but no more than 3 octal digits. 9873 9874 case Tuint32_t('\060'): 9875 goto __43 9876 9877 // \o is a relatively new Perl feature, supporting a more general way of 9878 // specifying character codes in octal. The only supported form is \o{ddd}. 9879 9880 case Tuint32_t('\157'): 9881 goto __44 9882 9883 // When PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, \x must be followed 9884 // by two hexadecimal digits. Otherwise it is a lowercase x letter. 9885 9886 case Tuint32_t('\170'): 9887 goto __45 9888 9889 // The handling of \c is different in ASCII and EBCDIC environments. In an 9890 // ASCII (or Unicode) environment, an error is given if the character 9891 // following \c is not a printable ASCII character. Otherwise, the following 9892 // character is upper-cased if it is a letter, and after that the 0x40 bit is 9893 // flipped. The result is the value of the escape. 9894 // 9895 // In an EBCDIC environment the handling of \c is compatible with the 9896 // specification in the perlebcdic document. The following character must be 9897 // a letter or one of small number of special characters. These provide a 9898 // means of defining the character values 0-31. 9899 // 9900 // For testing the EBCDIC handling of \c in an ASCII environment, recognize 9901 // the EBCDIC value of 'c' explicitly. 9902 9903 case Tuint32_t('\143'): 9904 goto __46 9905 9906 // Any other alphanumeric following \ is an error. Perl gives an error only 9907 // if in warning mode, but PCRE doesn't have a warning mode. 9908 9909 default: 9910 goto __47 9911 } 9912 goto __27 9913 9914 // A number of Perl escapes are not handled by PCRE. We give an explicit 9915 // error. 9916 9917 __28: 9918 __29: 9919 __30: 9920 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 9921 goto __27 9922 9923 // \u is unrecognized when neither PCRE2_ALT_BSUX nor PCRE2_EXTRA_ALT_BSUX 9924 // is set. Otherwise, \u must be followed by exactly four hex digits or, if 9925 // PCRE2_EXTRA_ALT_BSUX is set, by any number of hex digits in braces. 9926 // Otherwise it is a lowercase u letter. This gives some compatibility with 9927 // ECMAScript (aka JavaScript). 9928 9929 __31: 9930 if !!(alt_bsux != 0) { 9931 goto __48 9932 } 9933 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 9934 goto __49 9935 __48: 9936 9937 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend) { 9938 goto __50 9939 } 9940 goto __27 9941 __50: 9942 ; 9943 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\173' && extra_options&DPCRE2_EXTRA_ALT_BSUX != Tuint32_t(0)) { 9944 goto __51 9945 } 9946 9947 hptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + uintptr(1) 9948 cc = Tuint32_t(0) 9949 9950 __53: 9951 if !(hptr < ptrend && libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(hptr))])) != Tuint32_t(0xff)) { 9952 goto __54 9953 } 9954 9955 if !(cc&0xf0000000 != Tuint32_t(0)) { 9956 goto __55 9957 } /* Test for 32-bit overflow */ 9958 9959 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR77 9960 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = hptr // Show where 9961 goto __54 // *hptr != } will cause another break below 9962 __55: 9963 ; 9964 cc = cc<<4 | xc 9965 hptr++ 9966 goto __53 9967 __54: 9968 ; 9969 9970 if !(hptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))+uintptr(1) || hptr >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(hptr))) != '\175') { 9971 goto __56 9972 } // No } terminator 9973 goto __27 9974 __56: 9975 ; // Hex escape not recognized 9976 9977 c = cc // Accept the code point 9978 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = hptr + uintptr(1) 9979 goto __52 9980 __51: /* Must be exactly 4 hex digits */ 9981 9982 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))/1 < int64(4)) { 9983 goto __57 9984 } 9985 goto __27 9986 __57: 9987 ; // Less than 4 chars 9988 if !(libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))])) == Tuint32_t(0xff)) { 9989 goto __58 9990 } 9991 goto __27 9992 __58: 9993 ; // Not a hex digit 9994 if !(libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1))])) == Tuint32_t(0xff)) { 9995 goto __59 9996 } 9997 goto __27 9998 __59: 9999 ; // Not a hex digit 10000 cc = cc<<4 | xc 10001 if !(libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 2))])) == Tuint32_t(0xff)) { 10002 goto __60 10003 } 10004 goto __27 10005 __60: 10006 ; // Not a hex digit 10007 cc = cc<<4 | xc 10008 if !(libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 3))])) == Tuint32_t(0xff)) { 10009 goto __61 10010 } 10011 goto __27 10012 __61: 10013 ; // Not a hex digit 10014 c = cc<<4 | xc 10015 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(4) 10016 __52: 10017 ; 10018 10019 if !(utf != 0) { 10020 goto __62 10021 } 10022 10023 if !(c > 0x10ffff) { 10024 goto __64 10025 } 10026 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR77 10027 goto __65 10028 __64: 10029 if !(c >= Tuint32_t(0xd800) && c <= Tuint32_t(0xdfff) && extra_options&DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES == Tuint32_t(0)) { 10030 goto __66 10031 } 10032 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR73 10033 __66: 10034 ; 10035 __65: 10036 ; 10037 goto __63 10038 __62: 10039 if !(c > uint32(0xffffffff)>>(32-DPCRE2_CODE_UNIT_WIDTH)) { 10040 goto __67 10041 } 10042 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR77 10043 __67: 10044 ; 10045 __63: 10046 ; 10047 __49: 10048 ; 10049 goto __27 10050 10051 // \U is unrecognized unless PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, 10052 // in which case it is an upper case letter. 10053 10054 __32: 10055 if !!(alt_bsux != 0) { 10056 goto __68 10057 } 10058 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 10059 __68: 10060 ; 10061 goto __27 10062 10063 // In a character class, \g is just a literal "g". Outside a character 10064 // class, \g must be followed by one of a number of specific things: 10065 // 10066 // (1) A number, either plain or braced. If positive, it is an absolute 10067 // backreference. If negative, it is a relative backreference. This is a Perl 10068 // 5.10 feature. 10069 // 10070 // (2) Perl 5.10 also supports \g{name} as a reference to a named group. This 10071 // is part of Perl's movement towards a unified syntax for back references. As 10072 // this is synonymous with \k{name}, we fudge it up by pretending it really 10073 // was \k{name}. 10074 // 10075 // (3) For Oniguruma compatibility we also support \g followed by a name or a 10076 // number either in angle brackets or in single quotes. However, these are 10077 // (possibly recursive) subroutine calls, _not_ backreferences. We return 10078 // the ESC_g code. 10079 // 10080 // Summary: Return a negative number for a numerical back reference, ESC_k for 10081 // a named back reference, and ESC_g for a named or numbered subroutine call. 10082 // 10083 10084 __33: 10085 if !(isclass != 0) { 10086 goto __69 10087 } 10088 goto __27 10089 __69: 10090 ; 10091 10092 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend) { 10093 goto __70 10094 } 10095 10096 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR57 10097 goto __27 10098 __70: 10099 ; 10100 10101 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\074' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\047') { 10102 goto __71 10103 } 10104 10105 escape = ESC_g 10106 goto __27 10107 __71: 10108 ; 10109 10110 // If there is a brace delimiter, try to read a numerical reference. If 10111 // there isn't one, assume we have a name and treat it as \k. 10112 10113 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\173') { 10114 goto __72 10115 } 10116 10117 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* p1 */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + uintptr(1) 10118 if !!(read_number(tls, bp+8, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+16, 10119 errorcodeptr) != 0) { 10120 goto __74 10121 } 10122 10123 if !(*(*int32)(unsafe.Pointer(errorcodeptr)) == 0) { 10124 goto __75 10125 } 10126 escape = ESC_k 10127 __75: 10128 ; // No number found 10129 goto __27 10130 __74: 10131 ; 10132 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\175') { 10133 goto __76 10134 } 10135 10136 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR57 10137 goto __27 10138 __76: 10139 ; 10140 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + uintptr(1) 10141 goto __73 10142 __72: 10143 10144 if !!(read_number(tls, bp+24, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+16, 10145 errorcodeptr) != 0) { 10146 goto __77 10147 } 10148 10149 if !(*(*int32)(unsafe.Pointer(errorcodeptr)) == 0) { 10150 goto __78 10151 } 10152 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR57 10153 __78: 10154 ; // No number found 10155 goto __27 10156 __77: 10157 ; 10158 __73: 10159 ; 10160 10161 if !(*(*int32)(unsafe.Pointer(bp + 16)) <= 0) { 10162 goto __79 10163 } 10164 10165 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 10166 goto __27 10167 __79: 10168 ; 10169 10170 escape = -*(*int32)(unsafe.Pointer(bp + 16 /* s */)) 10171 goto __27 10172 10173 // The handling of escape sequences consisting of a string of digits 10174 // starting with one that is not zero is not straightforward. Perl has changed 10175 // over the years. Nowadays \g{} for backreferences and \o{} for octal are 10176 // recommended to avoid the ambiguities in the old syntax. 10177 // 10178 // Outside a character class, the digits are read as a decimal number. If the 10179 // number is less than 10, or if there are that many previous extracting left 10180 // brackets, it is a back reference. Otherwise, up to three octal digits are 10181 // read to form an escaped character code. Thus \123 is likely to be octal 123 10182 // (cf \0123, which is octal 012 followed by the literal 3). 10183 // 10184 // Inside a character class, \ followed by a digit is always either a literal 10185 // 8 or 9 or an octal number. 10186 10187 __34: 10188 __35: 10189 __36: 10190 __37: 10191 __38: 10192 __39: 10193 __40: 10194 __41: 10195 __42: 10196 10197 if !!(isclass != 0) { 10198 goto __80 10199 } 10200 10201 oldptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) 10202 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- // Back to the digit 10203 10204 // As we know we are at a digit, the only possible error from 10205 // read_number() is a number that is too large to be a group number. In this 10206 // case we fall through handle this as not a group reference. If we have 10207 // read a small enough number, check for a back reference. 10208 // 10209 // \1 to \9 are always back references. \8x and \9x are too; \1x to \7x 10210 // are octal escapes if there are not that many previous captures. 10211 10212 if !(read_number(tls, bp+24, ptrend, -1, uint32(0x7fffffff/10-1), uint32(0), bp+16, errorcodeptr) != 0 && (*(*int32)(unsafe.Pointer(bp + 16)) < 10 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(oldptr + libc.UintptrFromInt32(-1)))) >= '\070' || *(*int32)(unsafe.Pointer(bp + 16)) <= int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount))) { 10213 goto __81 10214 } 10215 10216 if !(*(*int32)(unsafe.Pointer(bp + 16)) > int32(DMAX_GROUP_NUMBER)) { 10217 goto __82 10218 } 10219 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR61 10220 goto __83 10221 __82: 10222 escape = -*(*int32)(unsafe.Pointer(bp + 16 /* s */)) 10223 __83: 10224 ; // Indicates a back reference 10225 goto __27 10226 __81: 10227 ; 10228 10229 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = oldptr // Put the pointer back and fall through 10230 __80: 10231 ; 10232 10233 // Handle a digit following \ when the number is not a back reference, or 10234 // we are within a character class. If the first digit is 8 or 9, Perl used to 10235 // generate a binary zero and then treat the digit as a following literal. At 10236 // least by Perl 5.18 this changed so as not to insert the binary zero. 10237 10238 if !(c >= Tuint32_t('\070')) { 10239 goto __84 10240 } 10241 goto __27 10242 __84: 10243 ; 10244 10245 // Fall through 10246 10247 // \0 always starts an octal number, but we may drop through to here with a 10248 // larger first octal digit. The original code used just to take the least 10249 // significant 8 bits of octal numbers (I think this is what early Perls used 10250 // to do). Nowadays we allow for larger numbers in UTF-8 mode and 16-bit mode, 10251 // but no more than 3 octal digits. 10252 10253 __43: 10254 c = c - Tuint32_t('\060') 10255 __85: 10256 if !(libc.PostIncInt32(&i, 1) < 2 && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) <= '\067') { 10257 goto __86 10258 } 10259 c = c*Tuint32_t(8) + Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1)))) - Tuint32_t('\060') 10260 goto __85 10261 __86: 10262 ; 10263 if !(!(utf != 0) && c > Tuint32_t(0xff)) { 10264 goto __87 10265 } 10266 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR51 10267 __87: 10268 ; 10269 goto __27 10270 10271 // \o is a relatively new Perl feature, supporting a more general way of 10272 // specifying character codes in octal. The only supported form is \o{ddd}. 10273 10274 __44: 10275 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1)))) != '\173') { 10276 goto __88 10277 } 10278 10279 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- 10280 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR55 10281 goto __89 10282 __88: 10283 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\175') { 10284 goto __90 10285 } 10286 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR78 10287 goto __91 10288 __90: 10289 10290 c = Tuint32_t(0) 10291 overflow = DFALSE 10292 __92: 10293 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) <= '\067') { 10294 goto __93 10295 } 10296 10297 cc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)), 1)))) 10298 if !(c == Tuint32_t(0) && cc == Tuint32_t('\060')) { 10299 goto __94 10300 } 10301 goto __92 10302 __94: 10303 ; // Leading zeroes 10304 c = c<<3 + (cc - Tuint32_t('\060')) 10305 if !(c > func() uint32 { 10306 if utf != 0 { 10307 return 0x10ffff 10308 } 10309 return 0xff 10310 }()) { 10311 goto __95 10312 } 10313 overflow = DTRUE 10314 goto __93 10315 __95: 10316 ; 10317 goto __92 10318 __93: 10319 ; 10320 if !(overflow != 0) { 10321 goto __96 10322 } 10323 10324 __98: 10325 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) <= '\067') { 10326 goto __99 10327 } 10328 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10329 goto __98 10330 __99: 10331 ; 10332 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR34 10333 goto __97 10334 __96: 10335 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1)))) == '\175') { 10336 goto __100 10337 } 10338 10339 if !(utf != 0 && c >= Tuint32_t(0xd800) && c <= Tuint32_t(0xdfff) && extra_options&DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES == Tuint32_t(0)) { 10340 goto __102 10341 } 10342 10343 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- 10344 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR73 10345 __102: 10346 ; 10347 goto __101 10348 __100: 10349 10350 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- 10351 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR64 10352 __101: 10353 ; 10354 __97: 10355 ; 10356 __91: 10357 ; 10358 __89: 10359 ; 10360 goto __27 10361 10362 // When PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, \x must be followed 10363 // by two hexadecimal digits. Otherwise it is a lowercase x letter. 10364 10365 __45: 10366 if !(alt_bsux != 0) { 10367 goto __103 10368 } 10369 10370 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))/1 < int64(2)) { 10371 goto __105 10372 } 10373 goto __27 10374 __105: 10375 ; // Less than 2 characters 10376 if !(libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))])) == Tuint32_t(0xff)) { 10377 goto __106 10378 } 10379 goto __27 10380 __106: 10381 ; // Not a hex digit 10382 if !(libc.AssignUint32(&xc1, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1))])) == Tuint32_t(0xff)) { 10383 goto __107 10384 } 10385 goto __27 10386 __107: 10387 ; // Not a hex digit 10388 c = cc<<4 | xc1 10389 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(2) 10390 goto __104 10391 __103: 10392 10393 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\173') { 10394 goto __108 10395 } 10396 10397 COME_FROM_NU: 10398 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\175') { 10399 goto __110 10400 } 10401 10402 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR78 10403 goto __27 10404 __110: 10405 ; 10406 c = Tuint32_t(0) 10407 overflow = DFALSE 10408 10409 __111: 10410 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))])) != Tuint32_t(0xff)) { 10411 goto __112 10412 } 10413 10414 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10415 if !(c == Tuint32_t(0) && cc == Tuint32_t(0)) { 10416 goto __113 10417 } 10418 goto __111 10419 __113: 10420 ; // Leading zeroes 10421 c = c<<4 | cc 10422 if !(utf != 0 && c > 0x10ffff || !(utf != 0) && c > uint32(0xffffffff)>>(32-DPCRE2_CODE_UNIT_WIDTH)) { 10423 goto __114 10424 } 10425 10426 overflow = DTRUE 10427 goto __112 10428 __114: 10429 ; 10430 goto __111 10431 __112: 10432 ; 10433 10434 if !(overflow != 0) { 10435 goto __115 10436 } 10437 10438 __117: 10439 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))]) != 0xff) { 10440 goto __118 10441 } 10442 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10443 goto __117 10444 __118: 10445 ; 10446 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR34 10447 goto __116 10448 __115: 10449 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1)))) == '\175') { 10450 goto __119 10451 } 10452 10453 if !(utf != 0 && c >= Tuint32_t(0xd800) && c <= Tuint32_t(0xdfff) && extra_options&DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES == Tuint32_t(0)) { 10454 goto __121 10455 } 10456 10457 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- 10458 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR73 10459 __121: 10460 ; 10461 goto __120 10462 __119: 10463 10464 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- 10465 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR67 10466 __120: 10467 ; 10468 __116: 10469 ; 10470 goto __109 10471 __108: 10472 10473 c = Tuint32_t(0) 10474 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend || libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))])) == Tuint32_t(0xff)) { 10475 goto __122 10476 } 10477 goto __27 10478 __122: 10479 ; // Not a hex digit 10480 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10481 c = cc 10482 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend || libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))])) == Tuint32_t(0xff)) { 10483 goto __123 10484 } 10485 goto __27 10486 __123: 10487 ; // Not a hex digit 10488 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10489 c = c<<4 | cc 10490 __109: 10491 ; // End of \xdd handling 10492 __104: 10493 ; // End of Perl-style \x handling 10494 goto __27 10495 10496 // The handling of \c is different in ASCII and EBCDIC environments. In an 10497 // ASCII (or Unicode) environment, an error is given if the character 10498 // following \c is not a printable ASCII character. Otherwise, the following 10499 // character is upper-cased if it is a letter, and after that the 0x40 bit is 10500 // flipped. The result is the value of the escape. 10501 // 10502 // In an EBCDIC environment the handling of \c is compatible with the 10503 // specification in the perlebcdic document. The following character must be 10504 // a letter or one of small number of special characters. These provide a 10505 // means of defining the character values 0-31. 10506 // 10507 // For testing the EBCDIC handling of \c in an ASCII environment, recognize 10508 // the EBCDIC value of 'c' explicitly. 10509 10510 __46: 10511 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend) { 10512 goto __124 10513 } 10514 10515 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR2 10516 goto __27 10517 __124: 10518 ; 10519 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))))) 10520 if !(c >= Tuint32_t('\141') && c <= Tuint32_t('\172')) { 10521 goto __125 10522 } 10523 c = c - Tuint32_t(32) 10524 __125: 10525 ; 10526 10527 // Handle \c in an ASCII/Unicode environment. 10528 10529 if !(c < Tuint32_t(32) || c > Tuint32_t(126)) { 10530 goto __126 10531 } /* Excludes all non-printable ASCII */ 10532 10533 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR68 10534 goto __27 10535 __126: 10536 ; 10537 c = c ^ Tuint32_t(0x40) 10538 10539 // Handle \c in an EBCDIC environment. The special case \c? is converted to 10540 // 255 (0xff) or 95 (0x5f) if other characters suggest we are using the 10541 // POSIX-BC encoding. (This is the way Perl indicates that it handles \c?.) 10542 // The other valid sequences correspond to a list of specific characters. 10543 10544 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10545 goto __27 10546 10547 // Any other alphanumeric following \ is an error. Perl gives an error only 10548 // if in warning mode, but PCRE doesn't have a warning mode. 10549 10550 __47: 10551 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR3 10552 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) - uintptr(1) // Point to the character at fault 10553 return 0 10554 __27: 10555 ; 10556 __14: 10557 ; 10558 __12: 10559 ; 10560 10561 // Set the pointer to the next character before returning. 10562 10563 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) 10564 *(*Tuint32_t)(unsafe.Pointer(chptr)) = c 10565 return escape 10566 } 10567 10568 // ************************************************ 10569 // 10570 // Handle \P and \p * 10571 // 10572 10573 // This function is called after \P or \p has been encountered, provided that 10574 // PCRE2 is compiled with support for UTF and Unicode properties. On entry, the 10575 // contents of ptrptr are pointing after the P or p. On exit, it is left pointing 10576 // after the final code unit of the escape sequence. 10577 // 10578 // Arguments: 10579 // ptrptr the pattern position pointer 10580 // negptr a boolean that is set TRUE for negation else FALSE 10581 // ptypeptr an unsigned int that is set to the type value 10582 // pdataptr an unsigned int that is set to the detailed property value 10583 // errorcodeptr the error code variable 10584 // cb the compile data 10585 // 10586 // Returns: TRUE if the type value was found, or FALSE for an invalid type 10587 10588 func get_ucp(tls *libc.TLS, ptrptr uintptr, negptr uintptr, ptypeptr uintptr, pdataptr uintptr, errorcodeptr uintptr, cb uintptr) TBOOL { /* pcre2_compile.c:2087:1: */ 10589 bp := tls.Alloc(58) 10590 defer tls.Free(58) 10591 10592 var c TPCRE2_UCHAR8 10593 var i Tsize_t 10594 var bot Tsize_t 10595 var top Tsize_t 10596 var ptr TPCRE2_SPTR8 10597 // var name [50]TPCRE2_UCHAR8 at bp, 50 10598 10599 var vptr uintptr 10600 var ptscript Tuint16_t 10601 var offset int32 10602 // var sname [8]TPCRE2_UCHAR8 at bp+50, 8 10603 10604 var r int32 10605 ptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 10606 vptr = uintptr(0) 10607 ptscript = Tuint16_t(DPT_NOTSCRIPT) 10608 10609 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10610 goto __1 10611 } 10612 goto ERROR_RETURN 10613 __1: 10614 ; 10615 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) 10616 *(*TBOOL)(unsafe.Pointer(negptr)) = DFALSE 10617 10618 // \P or \p can be followed by a name in {}, optionally preceded by ^ for 10619 // negation. 10620 10621 if !(int32(c) == '\173') { 10622 goto __2 10623 } 10624 10625 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10626 goto __4 10627 } 10628 goto ERROR_RETURN 10629 __4: 10630 ; 10631 10632 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\136') { 10633 goto __5 10634 } 10635 10636 *(*TBOOL)(unsafe.Pointer(negptr)) = DTRUE 10637 ptr++ 10638 __5: 10639 ; 10640 10641 i = uint64(0) 10642 __6: 10643 if !(i < uint64(int32(uint64(unsafe.Sizeof([50]TPCRE2_UCHAR8{}))/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0))))-1)) { 10644 goto __8 10645 } 10646 10647 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10648 goto __9 10649 } 10650 goto ERROR_RETURN 10651 __9: 10652 ; 10653 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) 10654 __10: 10655 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) { 10656 goto __11 10657 } 10658 10659 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10660 goto __12 10661 } 10662 goto ERROR_RETURN 10663 __12: 10664 ; 10665 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) 10666 goto __10 10667 __11: 10668 ; 10669 if !(int32(c) == 0) { 10670 goto __13 10671 } 10672 goto ERROR_RETURN 10673 __13: 10674 ; 10675 if !(int32(c) == '\175') { 10676 goto __14 10677 } 10678 goto __8 10679 __14: 10680 ; 10681 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + uintptr(i))) = TPCRE2_UCHAR8(libc.Xtolower(tls, int32(c))) 10682 if !((int32(c) == ':' || int32(c) == '=') && vptr == uintptr(0)) { 10683 goto __15 10684 } 10685 vptr = bp + uintptr(i) 10686 __15: 10687 ; 10688 goto __7 10689 __7: 10690 i++ 10691 goto __6 10692 goto __8 10693 __8: 10694 ; 10695 10696 if !(int32(c) != '\175') { 10697 goto __16 10698 } 10699 goto ERROR_RETURN 10700 __16: 10701 ; 10702 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + uintptr(i))) = TPCRE2_UCHAR8(0) 10703 goto __3 10704 __2: 10705 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(c))))&Dctype_letter != 0) { 10706 goto __17 10707 } 10708 10709 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp)) = TPCRE2_UCHAR8(libc.Xtolower(tls, int32(c))) 10710 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 1)) = TPCRE2_UCHAR8(0) 10711 goto __18 10712 __17: 10713 goto ERROR_RETURN 10714 __18: 10715 ; 10716 __3: 10717 ; 10718 10719 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 10720 10721 // If the property contains ':' or '=' we have class name and value separately 10722 // specified. The following are supported: 10723 // 10724 // . Bidi_Class (synonym bc), for which the property names are "bidi<name>". 10725 // . Script (synonym sc) for which the property name is the script name 10726 // . Script_Extensions (synonym scx), ditto 10727 // 10728 // As this is a small number, we currently just check the names directly. If this 10729 // grows, a sorted table and a switch will be neater. 10730 // 10731 // For both the script properties, set a PT_xxx value so that (1) they can be 10732 // distinguished and (2) invalid script names that happen to be the name of 10733 // another property can be diagnosed. 10734 10735 if !(vptr != uintptr(0)) { 10736 goto __19 10737 } 10738 10739 offset = 0 10740 10741 *(*TPCRE2_UCHAR8)(unsafe.Pointer(vptr)) = TPCRE2_UCHAR8(0) // Terminate property name 10742 if !(X_pcre2_strcmp_c8_8(tls, bp, ts+553) == 0 || X_pcre2_strcmp_c8_8(tls, bp, ts+563) == 0) { 10743 goto __20 10744 } 10745 10746 offset = 4 10747 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50)) = TPCRE2_UCHAR8('\142') 10748 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50 + 1)) = TPCRE2_UCHAR8('\151') // There is no strcpy_c8 function 10749 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50 + 2)) = TPCRE2_UCHAR8('\144') 10750 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50 + 3)) = TPCRE2_UCHAR8('\151') 10751 goto __21 10752 __20: 10753 if !(X_pcre2_strcmp_c8_8(tls, bp, ts+566) == 0 || X_pcre2_strcmp_c8_8(tls, bp, ts+573) == 0) { 10754 goto __22 10755 } 10756 ptscript = Tuint16_t(DPT_SC) 10757 goto __23 10758 __22: 10759 if !(X_pcre2_strcmp_c8_8(tls, bp, ts+576) == 0 || X_pcre2_strcmp_c8_8(tls, bp, ts+593) == 0) { 10760 goto __24 10761 } 10762 ptscript = Tuint16_t(DPT_SCX) 10763 goto __25 10764 __24: 10765 10766 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR47 10767 return DFALSE 10768 __25: 10769 ; 10770 __23: 10771 ; 10772 __21: 10773 ; 10774 10775 // Adjust the string in name[] as needed 10776 10777 libc.Xmemmove(tls, bp+uintptr(offset), vptr+uintptr(1), uint64((int64(bp+uintptr(i))-int64(vptr))/1)*uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 10778 if !(offset != 0) { 10779 goto __26 10780 } 10781 libc.Xmemmove(tls, bp, bp+50, uint64(offset)*uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 10782 __26: 10783 ; 10784 __19: 10785 ; 10786 10787 // Search for a recognized property using binary chop. 10788 10789 bot = uint64(0) 10790 top = X_pcre2_utt_size_8 10791 10792 __27: 10793 if !(bot < top) { 10794 goto __28 10795 } 10796 10797 i = (bot + top) >> 1 10798 r = X_pcre2_strcmp_c8_8(tls, bp, uintptr(unsafe.Pointer(&X_pcre2_utt_names_8))+uintptr(X_pcre2_utt_8[i].Fname_offset)) 10799 10800 // When a matching property is found, some extra checking is needed when the 10801 // \p{xx:yy} syntax is used and xx is either sc or scx. 10802 10803 if !(r == 0) { 10804 goto __29 10805 } 10806 10807 *(*Tuint16_t)(unsafe.Pointer(pdataptr)) = X_pcre2_utt_8[i].Fvalue 10808 if !(vptr == uintptr(0) || int32(ptscript) == DPT_NOTSCRIPT) { 10809 goto __30 10810 } 10811 10812 *(*Tuint16_t)(unsafe.Pointer(ptypeptr)) = X_pcre2_utt_8[i].Ftype 10813 return DTRUE 10814 __30: 10815 ; 10816 10817 switch int32(X_pcre2_utt_8[i].Ftype) { 10818 case DPT_SC: 10819 goto __32 10820 10821 case DPT_SCX: 10822 goto __33 10823 } 10824 goto __31 10825 10826 __32: 10827 *(*Tuint16_t)(unsafe.Pointer(ptypeptr)) = Tuint16_t(DPT_SC) 10828 return DTRUE 10829 10830 __33: 10831 *(*Tuint16_t)(unsafe.Pointer(ptypeptr)) = ptscript 10832 return DTRUE 10833 __31: 10834 ; 10835 10836 goto __28 // Non-script found 10837 __29: 10838 ; 10839 10840 if !(r > 0) { 10841 goto __34 10842 } 10843 bot = i + uint64(1) 10844 goto __35 10845 __34: 10846 top = i 10847 __35: 10848 ; 10849 goto __27 10850 __28: 10851 ; 10852 10853 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR47 // Unrecognized property 10854 return DFALSE 10855 10856 ERROR_RETURN: // Malformed \P or \p 10857 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR46 10858 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 10859 return DFALSE 10860 } 10861 10862 // ************************************************ 10863 // 10864 // Check for POSIX class syntax * 10865 // 10866 10867 // This function is called when the sequence "[:" or "[." or "[=" is 10868 // encountered in a character class. It checks whether this is followed by a 10869 // sequence of characters terminated by a matching ":]" or ".]" or "=]". If we 10870 // reach an unescaped ']' without the special preceding character, return FALSE. 10871 // 10872 // Originally, this function only recognized a sequence of letters between the 10873 // terminators, but it seems that Perl recognizes any sequence of characters, 10874 // though of course unknown POSIX names are subsequently rejected. Perl gives an 10875 // "Unknown POSIX class" error for [:f\oo:] for example, where previously PCRE 10876 // didn't consider this to be a POSIX class. Likewise for [:1234:]. 10877 // 10878 // The problem in trying to be exactly like Perl is in the handling of escapes. We 10879 // have to be sure that [abc[:x\]pqr] is *not* treated as containing a POSIX 10880 // class, but [abc[:x\]pqr:]] is (so that an error can be generated). The code 10881 // below handles the special cases \\ and \], but does not try to do any other 10882 // escape processing. This makes it different from Perl for cases such as 10883 // [:l\ower:] where Perl recognizes it as the POSIX class "lower" but PCRE does 10884 // not recognize "l\ower". This is a lesser evil than not diagnosing bad classes 10885 // when Perl does, I think. 10886 // 10887 // A user pointed out that PCRE was rejecting [:a[:digit:]] whereas Perl was not. 10888 // It seems that the appearance of a nested POSIX class supersedes an apparent 10889 // external class. For example, [:a[:digit:]b:] matches "a", "b", ":", or 10890 // a digit. This is handled by returning FALSE if the start of a new group with 10891 // the same terminator is encountered, since the next closing sequence must close 10892 // the nested group, not the outer one. 10893 // 10894 // In Perl, unescaped square brackets may also appear as part of class names. For 10895 // example, [:a[:abc]b:] gives unknown POSIX class "[:abc]b:]". However, for 10896 // [:a[:abc]b][b:] it gives unknown POSIX class "[:abc]b][b:]", which does not 10897 // seem right at all. PCRE does not allow closing square brackets in POSIX class 10898 // names. 10899 // 10900 // Arguments: 10901 // ptr pointer to the character after the initial [ (colon, dot, equals) 10902 // ptrend pointer to the end of the pattern 10903 // endptr where to return a pointer to the terminating ':', '.', or '=' 10904 // 10905 // Returns: TRUE or FALSE 10906 10907 func check_posix_syntax(tls *libc.TLS, ptr TPCRE2_SPTR8, ptrend TPCRE2_SPTR8, endptr uintptr) TBOOL { /* pcre2_compile.c:2293:1: */ 10908 var terminator TPCRE2_UCHAR8 // Don't combine these lines; the Solaris cc 10909 terminator = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) // compiler warns about "non-constant" initializer. 10910 10911 for ; (int64(ptrend)-int64(ptr))/1 >= int64(2); ptr++ { 10912 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\134' && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\135' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\134') { 10913 ptr++ 10914 } 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' { 10915 return DFALSE 10916 } else if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(terminator) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\135' { 10917 *(*TPCRE2_SPTR8)(unsafe.Pointer(endptr)) = ptr 10918 return DTRUE 10919 } 10920 } 10921 10922 return DFALSE 10923 } 10924 10925 // ************************************************ 10926 // 10927 // Check POSIX class name * 10928 // 10929 10930 // This function is called to check the name given in a POSIX-style class entry 10931 // such as [:alnum:]. 10932 // 10933 // Arguments: 10934 // ptr points to the first letter 10935 // len the length of the name 10936 // 10937 // Returns: a value representing the name, or -1 if unknown 10938 10939 func check_posix_name(tls *libc.TLS, ptr TPCRE2_SPTR8, len int32) int32 { /* pcre2_compile.c:2334:1: */ 10940 var pn uintptr = uintptr(unsafe.Pointer(&posix_names)) 10941 var yield int32 = 0 10942 for int32(posix_name_lengths[yield]) != 0 { 10943 if len == int32(posix_name_lengths[yield]) && X_pcre2_strncmp_c8_8(tls, ptr, pn, uint64(uint32(len))) == 0 { 10944 return yield 10945 } 10946 pn += uintptr(int32(posix_name_lengths[yield]) + 1) 10947 yield++ 10948 } 10949 return -1 10950 } 10951 10952 // ************************************************ 10953 // 10954 // Read a subpattern or VERB name * 10955 // 10956 10957 // This function is called from parse_regex() below whenever it needs to read 10958 // the name of a subpattern or a (*VERB) or an (*alpha_assertion). The initial 10959 // pointer must be to the character before the name. If that character is '*' we 10960 // are reading a verb or alpha assertion name. The pointer is updated to point 10961 // after the name, for a VERB or alpha assertion name, or after tha name's 10962 // terminator for a subpattern name. Returning both the offset and the name 10963 // pointer is redundant information, but some callers use one and some the other, 10964 // so it is simplest just to return both. 10965 // 10966 // Arguments: 10967 // ptrptr points to the character pointer variable 10968 // ptrend points to the end of the input string 10969 // utf true if the input is UTF-encoded 10970 // terminator the terminator of a subpattern name must be this 10971 // offsetptr where to put the offset from the start of the pattern 10972 // nameptr where to put a pointer to the name in the input 10973 // namelenptr where to put the length of the name 10974 // errcodeptr where to put an error code 10975 // cb pointer to the compile data block 10976 // 10977 // Returns: TRUE if a name was read 10978 // FALSE otherwise, with error code set 10979 10980 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: */ 10981 var ptr TPCRE2_SPTR8 10982 var is_group TBOOL 10983 var c Tuint32_t 10984 var type1 Tuint32_t 10985 ptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 10986 is_group = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) != '\052') 10987 10988 if !(libc.PreIncUintptr(&ptr, 1) >= ptrend) { 10989 goto __1 10990 } /* No characters in name */ 10991 10992 *(*int32)(unsafe.Pointer(errorcodeptr)) = func() int32 { 10993 if is_group != 0 { 10994 return ERR62 10995 } 10996 return ERR60 10997 }() // Verb not recognized or malformed 10998 goto FAILED 10999 __1: 11000 ; 11001 11002 *(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr)) = ptr 11003 *(*Tsize_t)(unsafe.Pointer(offsetptr)) = Tsize_t((int64(ptr) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 11004 11005 // In UTF mode, a group name may contain letters and decimal digits as defined 11006 // by Unicode properties, and underscores, but must not start with a digit. 11007 11008 if !(utf != 0 && is_group != 0) { 11009 goto __2 11010 } 11011 11012 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 11013 if !(c >= 0xc0) { 11014 goto __4 11015 } 11016 if !(c&0x20 == Tuint32_t(0)) { 11017 goto __5 11018 } 11019 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 11020 goto __6 11021 __5: 11022 if !(c&0x10 == Tuint32_t(0)) { 11023 goto __7 11024 } 11025 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 11026 goto __8 11027 __7: 11028 if !(c&0x08 == Tuint32_t(0)) { 11029 goto __9 11030 } 11031 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 11032 goto __10 11033 __9: 11034 if !(c&0x04 == Tuint32_t(0)) { 11035 goto __11 11036 } 11037 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 11038 goto __12 11039 __11: 11040 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 11041 __12: 11042 ; 11043 __10: 11044 ; 11045 __8: 11046 ; 11047 __6: 11048 ; 11049 __4: 11050 ; 11051 11052 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) 11053 11054 if !(type1 == ucp_Nd) { 11055 goto __13 11056 } 11057 11058 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR44 11059 goto FAILED 11060 __13: 11061 ; 11062 11063 __14: 11064 11065 if !(type1 != ucp_Nd && X_pcre2_ucp_gentype_8[type1] != ucp_L && c != Tuint32_t('\137')) { 11066 goto __17 11067 } 11068 goto __16 11069 __17: 11070 ; 11071 ptr++ 11072 __18: 11073 if !(ptr < ptrend && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0xc0 == 0x80) { 11074 goto __19 11075 } 11076 ptr++ 11077 goto __18 11078 __19: 11079 ; 11080 if !(ptr >= ptrend) { 11081 goto __20 11082 } 11083 goto __16 11084 __20: 11085 ; 11086 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 11087 if !(c >= 0xc0) { 11088 goto __21 11089 } 11090 if !(c&0x20 == Tuint32_t(0)) { 11091 goto __22 11092 } 11093 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 11094 goto __23 11095 __22: 11096 if !(c&0x10 == Tuint32_t(0)) { 11097 goto __24 11098 } 11099 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 11100 goto __25 11101 __24: 11102 if !(c&0x08 == Tuint32_t(0)) { 11103 goto __26 11104 } 11105 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 11106 goto __27 11107 __26: 11108 if !(c&0x04 == Tuint32_t(0)) { 11109 goto __28 11110 } 11111 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 11112 goto __29 11113 __28: 11114 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 11115 __29: 11116 ; 11117 __27: 11118 ; 11119 __25: 11120 ; 11121 __23: 11122 ; 11123 __21: 11124 ; 11125 11126 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) 11127 goto __15 11128 __15: 11129 goto __14 11130 goto __16 11131 __16: 11132 ; 11133 goto __3 11134 __2: 11135 11136 /* Handle non-group names and group names in non-UTF modes. A group name must 11137 not start with a digit. If either of the others start with a digit it just 11138 won't be recognized. */ 11139 11140 if !(is_group != 0 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) <= '\071')) { 11141 goto __30 11142 } 11143 11144 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR44 11145 goto FAILED 11146 __30: 11147 ; 11148 11149 __31: 11150 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) { 11151 goto __32 11152 } 11153 11154 ptr++ 11155 goto __31 11156 __32: 11157 ; 11158 __3: 11159 ; 11160 11161 // Check name length 11162 11163 if !(ptr > *(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr))+uintptr(DMAX_NAME_SIZE)) { 11164 goto __33 11165 } 11166 11167 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR48 11168 goto FAILED 11169 __33: 11170 ; 11171 *(*Tuint32_t)(unsafe.Pointer(namelenptr)) = Tuint32_t((int64(ptr) - int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr)))) / 1) 11172 11173 // Subpattern names must not be empty, and their terminator is checked here. 11174 // (What follows a verb or alpha assertion name is checked separately.) 11175 11176 if !(is_group != 0) { 11177 goto __34 11178 } 11179 11180 if !(ptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr))) { 11181 goto __35 11182 } 11183 11184 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR62 // Subpattern name expected 11185 goto FAILED 11186 __35: 11187 ; 11188 if !(ptr >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) != int32(TPCRE2_UCHAR8(terminator))) { 11189 goto __36 11190 } 11191 11192 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR42 11193 goto FAILED 11194 __36: 11195 ; 11196 ptr++ 11197 __34: 11198 ; 11199 11200 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 11201 return DTRUE 11202 11203 FAILED: 11204 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 11205 return DFALSE 11206 } 11207 11208 // ************************************************ 11209 // 11210 // Manage callouts at start of cycle * 11211 // 11212 11213 // At the start of a new item in parse_regex() we are able to record the 11214 // details of the previous item in a prior callout, and also to set up an 11215 // automatic callout if enabled. Avoid having two adjacent automatic callouts, 11216 // which would otherwise happen for items such as \Q that contribute nothing to 11217 // the parsed pattern. 11218 // 11219 // Arguments: 11220 // ptr current pattern pointer 11221 // pcalloutptr points to a pointer to previous callout, or NULL 11222 // auto_callout TRUE if auto_callouts are enabled 11223 // parsed_pattern the parsed pattern pointer 11224 // cb compile block 11225 // 11226 // Returns: possibly updated parsed_pattern pointer. 11227 11228 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: */ 11229 var previous_callout uintptr = *(*uintptr)(unsafe.Pointer(pcalloutptr)) 11230 11231 if previous_callout != uintptr(0) { 11232 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 2*4)) = Tuint32_t(Tsize_t((int64(ptr)-int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1) - Tsize_t(*(*Tuint32_t)(unsafe.Pointer(previous_callout + 1*4)))) 11233 } 11234 11235 if !(auto_callout != 0) { 11236 previous_callout = uintptr(0) 11237 } else { 11238 if previous_callout == uintptr(0) || previous_callout != parsed_pattern-uintptr(4)*4 || *(*Tuint32_t)(unsafe.Pointer(previous_callout + 3*4)) != Tuint32_t(255) { 11239 previous_callout = parsed_pattern // Set up new automatic callout 11240 parsed_pattern += 4 * uintptr(4) 11241 *(*Tuint32_t)(unsafe.Pointer(previous_callout)) = DMETA_CALLOUT_NUMBER 11242 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 2*4)) = Tuint32_t(0) 11243 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 3*4)) = Tuint32_t(255) 11244 } 11245 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 1*4)) = Tuint32_t((int64(ptr) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 11246 } 11247 11248 *(*uintptr)(unsafe.Pointer(pcalloutptr)) = previous_callout 11249 return parsed_pattern 11250 } 11251 11252 // ************************************************ 11253 // 11254 // Parse regex and identify named groups * 11255 // 11256 11257 // This function is called first of all. It scans the pattern and does two 11258 // things: (1) It identifies capturing groups and makes a table of named capturing 11259 // groups so that information about them is fully available to both the compiling 11260 // scans. (2) It writes a parsed version of the pattern with comments omitted and 11261 // escapes processed into the parsed_pattern vector. 11262 // 11263 // Arguments: 11264 // ptr points to the start of the pattern 11265 // options compiling dynamic options (may change during the scan) 11266 // has_lookbehind points to a boolean, set TRUE if a lookbehind is found 11267 // cb pointer to the compile data block 11268 // 11269 // Returns: zero on success or a non-zero error code, with the 11270 // error offset placed in the cb field 11271 11272 // A structure and some flags for dealing with nested groups. 11273 11274 type Snest_save = struct { 11275 Fnest_depth Tuint16_t 11276 Freset_group Tuint16_t 11277 Fmax_group Tuint16_t 11278 Fflags Tuint16_t 11279 Foptions Tuint32_t 11280 } /* pcre2_compile.c:2555:9 */ 11281 11282 // ************************************************ 11283 // 11284 // Parse regex and identify named groups * 11285 // 11286 11287 // This function is called first of all. It scans the pattern and does two 11288 // things: (1) It identifies capturing groups and makes a table of named capturing 11289 // groups so that information about them is fully available to both the compiling 11290 // scans. (2) It writes a parsed version of the pattern with comments omitted and 11291 // escapes processed into the parsed_pattern vector. 11292 // 11293 // Arguments: 11294 // ptr points to the start of the pattern 11295 // options compiling dynamic options (may change during the scan) 11296 // has_lookbehind points to a boolean, set TRUE if a lookbehind is found 11297 // cb pointer to the compile data block 11298 // 11299 // Returns: zero on success or a non-zero error code, with the 11300 // error offset placed in the cb field 11301 11302 // A structure and some flags for dealing with nested groups. 11303 11304 type Tnest_save = Snest_save /* pcre2_compile.c:2561:3 */ 11305 11306 // Only in 32-bit mode can there be literals > META_END. A macro encapsulates 11307 // the storing of literal values in the main parsed pattern, where they can always 11308 // be quantified. 11309 11310 // Here's the actual function. 11311 11312 func parse_regex(tls *libc.TLS, ptr TPCRE2_SPTR8, options Tuint32_t, has_lookbehind uintptr, cb uintptr) int32 { /* pcre2_compile.c:2598:12: */ 11313 bp := tls.Alloc(104) 11314 defer tls.Free(104) 11315 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) = ptr 11316 11317 // var c Tuint32_t at bp+16, 4 11318 11319 var delimiter Tuint32_t 11320 // var namelen Tuint32_t at bp+72, 4 11321 11322 var class_range_state Tuint32_t 11323 var verblengthptr uintptr // Value avoids compiler warning 11324 var verbstartptr uintptr 11325 // var previous_callout uintptr at bp, 8 11326 11327 var parsed_pattern uintptr 11328 var parsed_pattern_end uintptr 11329 var meta_quantifier Tuint32_t 11330 var add_after_mark Tuint32_t 11331 var extra_options Tuint32_t 11332 var nest_depth Tuint16_t 11333 var after_manual_callout int32 11334 var expect_cond_assert int32 11335 // var errorcode int32 at bp+20, 4 11336 11337 var escape int32 11338 // var i int32 at bp+48, 4 11339 11340 var inescq TBOOL 11341 var inverbname TBOOL 11342 var utf TBOOL 11343 var auto_callout TBOOL 11344 var isdupname TBOOL 11345 var negate_class TBOOL 11346 var okquantifier TBOOL 11347 var thisptr TPCRE2_SPTR8 11348 // var name TPCRE2_SPTR8 at bp+64, 8 11349 11350 var ptrend TPCRE2_SPTR8 11351 var verbnamestart TPCRE2_SPTR8 // Value avoids compiler warning 11352 var ng uintptr 11353 var top_nest uintptr 11354 var end_nests uintptr 11355 var verbnamelength Tsize_t 11356 var ok TBOOL 11357 // var negated TBOOL at bp+32, 4 11358 11359 // var ptype Tuint16_t at bp+36, 2 11360 11361 // var pdata Tuint16_t at bp+38, 2 11362 11363 // var p TPCRE2_SPTR8 at bp+40, 8 11364 11365 var p1 uintptr 11366 var ptype1 int32 11367 var pvalue int32 11368 var posix_negate TBOOL 11369 var posix_class int32 11370 // var negated1 TBOOL at bp+84, 4 11371 11372 // var ptype2 Tuint16_t at bp+88, 2 11373 11374 // var pdata1 Tuint16_t at bp+90, 2 11375 11376 var char_is_literal TBOOL 11377 var meta Tuint32_t 11378 var vn uintptr 11379 var hyphenok TBOOL 11380 var oldoptions Tuint32_t 11381 var calloutlength Tsize_t 11382 var startptr TPCRE2_SPTR8 11383 var n int32 11384 var ge Tuint32_t 11385 // var major int32 at bp+100, 4 11386 11387 var minor int32 11388 var was_r_ampersand TBOOL 11389 var newsize Tuint32_t 11390 var newspace uintptr 11391 var prev_expect_cond_assert int32 11392 // var min_repeat Tuint32_t at bp+76, 4 11393 11394 // var max_repeat Tuint32_t at bp+80, 4 11395 11396 // var set Tuint32_t at bp+92, 4 11397 11398 // var unset Tuint32_t at bp+96, 4 11399 11400 var optset uintptr 11401 var terminator Tuint32_t 11402 var prev_meta_quantifier Tuint32_t 11403 var prev_okquantifier TBOOL 11404 // var tempptr TPCRE2_SPTR8 at bp+24, 8 11405 11406 // var offset Tsize_t at bp+56, 8 11407 verblengthptr = uintptr(0) 11408 verbstartptr = uintptr(0) 11409 *(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) = uintptr(0) 11410 parsed_pattern = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fparsed_pattern 11411 parsed_pattern_end = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fparsed_pattern_end 11412 meta_quantifier = Tuint32_t(0) 11413 add_after_mark = Tuint32_t(0) 11414 extra_options = (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options 11415 nest_depth = Tuint16_t(0) 11416 after_manual_callout = 0 11417 expect_cond_assert = 0 11418 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = 0 11419 inescq = DFALSE 11420 inverbname = DFALSE 11421 utf = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 11422 auto_callout = libc.Bool32(options&DPCRE2_AUTO_CALLOUT != Tuint32_t(0)) 11423 okquantifier = DFALSE 11424 ptrend = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern 11425 verbnamestart = uintptr(0) 11426 11427 // Insert leading items for word and line matching (features provided for the 11428 // benefit of pcre2grep). 11429 11430 if !(extra_options&DPCRE2_EXTRA_MATCH_LINE != Tuint32_t(0)) { 11431 goto __1 11432 } 11433 11434 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CIRCUMFLEX 11435 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 11436 goto __2 11437 __1: 11438 if !(extra_options&DPCRE2_EXTRA_MATCH_WORD != Tuint32_t(0)) { 11439 goto __3 11440 } 11441 11442 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_b 11443 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 11444 __3: 11445 ; 11446 __2: 11447 ; 11448 11449 // If the pattern is actually a literal string, process it separately to avoid 11450 // cluttering up the main loop. 11451 11452 if !(options&DPCRE2_LITERAL != Tuint32_t(0)) { 11453 goto __4 11454 } 11455 11456 __5: 11457 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend) { 11458 goto __6 11459 } 11460 11461 if !(parsed_pattern >= parsed_pattern_end) { 11462 goto __7 11463 } 11464 11465 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR63 // Internal error (parsed pattern overflow) 11466 goto FAILED 11467 __7: 11468 ; 11469 thisptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 11470 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 11471 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 11472 goto __8 11473 } 11474 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 11475 goto __9 11476 } 11477 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 11478 goto __10 11479 __9: 11480 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 11481 goto __11 11482 } 11483 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 11484 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 11485 goto __12 11486 __11: 11487 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 11488 goto __13 11489 } 11490 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 11491 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 11492 goto __14 11493 __13: 11494 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 11495 goto __15 11496 } 11497 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 11498 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 11499 goto __16 11500 __15: 11501 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 11502 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 11503 __16: 11504 ; 11505 __14: 11506 ; 11507 __12: 11508 ; 11509 __10: 11510 ; 11511 __8: 11512 ; 11513 11514 if !(auto_callout != 0) { 11515 goto __17 11516 } 11517 parsed_pattern = manage_callouts(tls, thisptr, bp, 11518 auto_callout, parsed_pattern, cb) 11519 __17: 11520 ; 11521 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 11522 okquantifier = DTRUE 11523 11524 goto __5 11525 __6: 11526 ; 11527 goto PARSED_END 11528 __4: 11529 ; 11530 11531 // Process a real regex which may contain meta-characters. 11532 11533 top_nest = uintptr(0) 11534 end_nests = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size) 11535 11536 // The size of the nest_save structure might not be a factor of the size of the 11537 // workspace. Therefore we must round down end_nests so as to correctly avoid 11538 // creating a nest_save that spans the end of the workspace. 11539 11540 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{}))) 11541 11542 // PCRE2_EXTENDED_MORE implies PCRE2_EXTENDED 11543 11544 if !(options&DPCRE2_EXTENDED_MORE != Tuint32_t(0)) { 11545 goto __18 11546 } 11547 options = options | DPCRE2_EXTENDED 11548 __18: 11549 ; 11550 11551 // Now scan the pattern 11552 11553 __19: 11554 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend) { 11555 goto __20 11556 } 11557 11558 if !(parsed_pattern >= parsed_pattern_end) { 11559 goto __21 11560 } 11561 11562 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR63 // Internal error (parsed pattern overflow) 11563 goto FAILED 11564 __21: 11565 ; 11566 11567 if !(Tuint32_t(nest_depth) > (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fparens_nest_limit) { 11568 goto __22 11569 } 11570 11571 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR19 11572 goto FAILED // Parentheses too deeply nested 11573 __22: 11574 ; 11575 11576 // Get next input character, save its position for callout handling. 11577 11578 thisptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 11579 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 11580 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 11581 goto __23 11582 } 11583 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 11584 goto __24 11585 } 11586 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 11587 goto __25 11588 __24: 11589 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 11590 goto __26 11591 } 11592 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 11593 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 11594 goto __27 11595 __26: 11596 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 11597 goto __28 11598 } 11599 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 11600 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 11601 goto __29 11602 __28: 11603 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 11604 goto __30 11605 } 11606 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 11607 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 11608 goto __31 11609 __30: 11610 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 11611 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 11612 __31: 11613 ; 11614 __29: 11615 ; 11616 __27: 11617 ; 11618 __25: 11619 ; 11620 __23: 11621 ; 11622 11623 // Copy quoted literals until \E, allowing for the possibility of automatic 11624 // callouts, except when processing a (*VERB) "name". 11625 11626 if !(inescq != 0) { 11627 goto __32 11628 } 11629 11630 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\134') && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\105') { 11631 goto __33 11632 } 11633 11634 inescq = DFALSE 11635 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ // Skip E 11636 goto __34 11637 __33: 11638 11639 if !(expect_cond_assert > 0) { 11640 goto __35 11641 } /* A literal is not allowed if we are */ 11642 // expecting a conditional assertion, 11643 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // but an empty \Q\E sequence is OK. 11644 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR28 11645 goto FAILED 11646 __35: 11647 ; 11648 if !(inverbname != 0) { 11649 goto __36 11650 } 11651 // Don't use PARSED_LITERAL() because it 11652 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 11653 goto __37 11654 __36: 11655 11656 if !(libc.PostDecInt32(&after_manual_callout, 1) <= 0) { 11657 goto __38 11658 } 11659 parsed_pattern = manage_callouts(tls, thisptr, bp, 11660 auto_callout, parsed_pattern, cb) 11661 __38: 11662 ; 11663 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 11664 okquantifier = DTRUE 11665 11666 __37: 11667 ; 11668 meta_quantifier = Tuint32_t(0) 11669 __34: 11670 ; 11671 goto __19 // Next character 11672 __32: 11673 ; 11674 11675 // If we are processing the "name" part of a (*VERB:NAME) item, all 11676 // characters up to the closing parenthesis are literals except when 11677 // PCRE2_ALT_VERBNAMES is set. That causes backslash interpretation, but only \Q 11678 // and \E and escaped characters are allowed (no character types such as \d). If 11679 // PCRE2_EXTENDED is also set, we must ignore white space and # comments. Do 11680 // this by not entering the special (*VERB:NAME) processing - they are then 11681 // picked up below. Note that c is a character, not a code unit, so we must not 11682 // use MAX_255 to test its size because MAX_255 tests code units and is assumed 11683 // TRUE in 8-bit mode. 11684 11685 if !(inverbname != 0 && (options&(DPCRE2_EXTENDED|DPCRE2_ALT_VERBNAMES) != DPCRE2_EXTENDED|DPCRE2_ALT_VERBNAMES || *(*Tuint32_t)(unsafe.Pointer(bp + 16)) > Tuint32_t(255) && *(*Tuint32_t)(unsafe.Pointer(bp + 16))|Tuint32_t(1) != Tuint32_t(0x200f) && *(*Tuint32_t)(unsafe.Pointer(bp + 16))|Tuint32_t(1) != Tuint32_t(0x2029) || *(*Tuint32_t)(unsafe.Pointer(bp + 16)) < Tuint32_t(256) && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\043') && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 16))))))&Dctype_space == 0 && 11686 11687 *(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t(uint8('\x85')))) { 11688 goto __39 11689 } 11690 11691 switch *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) { 11692 default: 11693 goto __41 11694 11695 case Tuint32_t('\051'): 11696 goto __42 11697 11698 case Tuint32_t('\134'): 11699 goto __43 11700 } 11701 goto __40 11702 11703 __41: // Don't use PARSED_LITERAL() because it 11704 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 11705 goto __40 11706 11707 __42: 11708 inverbname = DFALSE 11709 // This is the length in characters 11710 verbnamelength = Tsize_t((int64(parsed_pattern)-int64(verblengthptr))/4 - int64(1)) 11711 // But the limit on the length is in code units 11712 if !((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))-int64(verbnamestart))/1-int64(1) > int64(int32(uint32(1)<<8-uint32(1)))) { 11713 goto __44 11714 } 11715 11716 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- 11717 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR76 11718 goto FAILED 11719 __44: 11720 ; 11721 *(*Tuint32_t)(unsafe.Pointer(verblengthptr)) = Tuint32_t(verbnamelength) 11722 11723 // If this name was on a verb such as (*ACCEPT) which does not continue, 11724 // a (*MARK) was generated for the name. We now add the original verb as the 11725 // next item. 11726 11727 if !(add_after_mark != Tuint32_t(0)) { 11728 goto __45 11729 } 11730 11731 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = add_after_mark 11732 add_after_mark = Tuint32_t(0) 11733 __45: 11734 ; 11735 goto __40 11736 11737 __43: 11738 if !(options&DPCRE2_ALT_VERBNAMES != Tuint32_t(0)) { 11739 goto __46 11740 } 11741 11742 escape = X_pcre2_check_escape_8(tls, bp+8, ptrend, bp+16, bp+20, options, 11743 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options, DFALSE, cb) 11744 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 11745 goto __48 11746 } 11747 goto FAILED 11748 __48: 11749 ; 11750 goto __47 11751 __46: 11752 escape = 0 11753 __47: 11754 ; // Treat all as literal 11755 11756 switch escape { 11757 case 0: 11758 goto __50 11759 11760 case ESC_Q: 11761 goto __51 11762 11763 case ESC_E: 11764 goto __52 11765 11766 default: 11767 goto __53 11768 } 11769 goto __49 11770 11771 __50: // Don't use PARSED_LITERAL() because it 11772 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 11773 goto __49 11774 11775 __51: 11776 inescq = DTRUE 11777 goto __49 11778 11779 __52: // Ignore 11780 goto __49 11781 11782 __53: 11783 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR40 // Invalid in verb name 11784 goto FAILED 11785 __49: 11786 ; 11787 __40: 11788 ; 11789 goto __19 // Next character in pattern 11790 __39: 11791 ; 11792 11793 // Not a verb name character. At this point we must process everything that 11794 // must not change the quantification state. This is mainly comments, but we 11795 // handle \Q and \E here as well, so that an item such as A\Q\E+ is treated as 11796 // A+, as in Perl. An isolated \E is ignored. 11797 11798 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\134') && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend) { 11799 goto __54 11800 } 11801 11802 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\121' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\105') { 11803 goto __55 11804 } 11805 11806 inescq = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\121') 11807 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 11808 goto __19 11809 __55: 11810 ; 11811 __54: 11812 ; 11813 11814 // Skip over whitespace and # comments in extended mode. Note that c is a 11815 // character, not a code unit, so we must not use MAX_255 to test its size 11816 // because MAX_255 tests code units and is assumed TRUE in 8-bit mode. The 11817 // whitespace characters are those designated as "Pattern White Space" by 11818 // Unicode, which are the isspace() characters plus CHAR_NEL (newline), which is 11819 // U+0085 in Unicode, plus U+200E, U+200F, U+2028, and U+2029. These are a 11820 // subset of space characters that match \h and \v. 11821 11822 if !(options&DPCRE2_EXTENDED != Tuint32_t(0)) { 11823 goto __56 11824 } 11825 11826 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 16))))))&Dctype_space != 0) { 11827 goto __57 11828 } 11829 goto __19 11830 __57: 11831 ; 11832 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t(uint8('\x85')) || *(*Tuint32_t)(unsafe.Pointer(bp + 16))|Tuint32_t(1) == Tuint32_t(0x200f) || *(*Tuint32_t)(unsafe.Pointer(bp + 16))|Tuint32_t(1) == Tuint32_t(0x2029)) { 11833 goto __58 11834 } 11835 goto __19 11836 __58: 11837 ; 11838 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\043')) { 11839 goto __59 11840 } 11841 11842 __60: 11843 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend) { 11844 goto __61 11845 } 11846 11847 if !(func() int32 { 11848 if (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 11849 return libc.Bool32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern && X_pcre2_is_newline_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnltype, (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern, cb+260, utf) != 0) 11850 } 11851 return libc.Bool32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) <= (*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 + 8))))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cb + 272))) && ((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cb + 272 + 1))))) 11852 }() != 0) { 11853 goto __62 11854 } /* For non-fixed-length newline cases, */ 11855 // IS_NEWLINE sets cb->nllen. 11856 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += TPCRE2_SPTR8((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnllen) 11857 goto __61 11858 __62: 11859 ; 11860 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 11861 if !(utf != 0) { 11862 goto __63 11863 } 11864 __64: 11865 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0xc0 == 0x80) { 11866 goto __65 11867 } 11868 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 11869 goto __64 11870 __65: 11871 ; 11872 __63: 11873 ; 11874 goto __60 11875 __61: 11876 ; 11877 goto __19 // Next character in pattern 11878 __59: 11879 ; 11880 __56: 11881 ; 11882 11883 // Skip over bracketed comments 11884 11885 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\050') && (int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\077' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) == '\043') { 11886 goto __66 11887 } 11888 11889 __67: 11890 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 11891 goto __68 11892 } 11893 goto __67 11894 __68: 11895 ; 11896 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 11897 goto __69 11898 } 11899 11900 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR18 // A special error for missing ) in a comment 11901 goto FAILED // to make it easier to debug. 11902 __69: 11903 ; 11904 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 11905 goto __19 // Next character in pattern 11906 __66: 11907 ; 11908 11909 // If the next item is not a quantifier, fill in length of any previous 11910 // callout and create an auto callout if required. 11911 11912 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\052') && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\053') && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\077') && (*(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\173') || func() bool { 11913 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) 11914 return !(read_repeat_counts(tls, bp+24, ptrend, uintptr(0), uintptr(0), bp+20) != 0) 11915 }())) { 11916 goto __70 11917 } 11918 11919 if !(libc.PostDecInt32(&after_manual_callout, 1) <= 0) { 11920 goto __71 11921 } 11922 parsed_pattern = manage_callouts(tls, thisptr, bp, auto_callout, 11923 parsed_pattern, cb) 11924 __71: 11925 ; 11926 __70: 11927 ; 11928 11929 // If expect_cond_assert is 2, we have just passed (?( and are expecting an 11930 // assertion, possibly preceded by a callout. If the value is 1, we have just 11931 // had the callout and expect an assertion. There must be at least 3 more 11932 // characters in all cases. When expect_cond_assert is 2, we know that the 11933 // current character is an opening parenthesis, as otherwise we wouldn't be 11934 // here. However, when it is 1, we need to check, and it's easiest just to check 11935 // always. Note that expect_cond_assert may be negative, since all callouts just 11936 // decrement it. 11937 11938 if !(expect_cond_assert > 0) { 11939 goto __72 11940 } 11941 11942 ok = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\050') && (int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(3) && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\077' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\052')) 11943 if !(ok != 0) { 11944 goto __73 11945 } 11946 11947 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\052') { 11948 goto __74 11949 } /* New alpha assertion format, possibly */ 11950 11951 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 + 8)) + 1))))))&Dctype_lcletter != 0) 11952 goto __75 11953 __74: 11954 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) + 1))) { 11955 case '\103': 11956 goto __77 11957 11958 case '\075': 11959 goto __78 11960 case '\041': 11961 goto __79 11962 11963 case '\074': 11964 goto __80 11965 11966 default: 11967 goto __81 11968 } 11969 goto __76 /* Traditional symbolic format */ 11970 11971 __77: 11972 ok = libc.Bool32(expect_cond_assert == 2) 11973 goto __76 11974 11975 __78: 11976 __79: 11977 goto __76 11978 11979 __80: 11980 ok = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2))) == '\075' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2))) == '\041') 11981 goto __76 11982 11983 __81: 11984 ok = DFALSE 11985 __76: 11986 ; 11987 __75: 11988 ; 11989 __73: 11990 ; 11991 11992 if !!(ok != 0) { 11993 goto __82 11994 } 11995 11996 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Adjust error offset 11997 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR28 11998 goto FAILED 11999 __82: 12000 ; 12001 __72: 12002 ; 12003 12004 // Remember whether we are expecting a conditional assertion, and set the 12005 // default for this item. 12006 12007 prev_expect_cond_assert = expect_cond_assert 12008 expect_cond_assert = 0 12009 12010 // Remember quantification status for the previous significant item, then set 12011 // default for this item. 12012 12013 prev_okquantifier = okquantifier 12014 prev_meta_quantifier = meta_quantifier 12015 okquantifier = DFALSE 12016 meta_quantifier = Tuint32_t(0) 12017 12018 // If the previous significant item was a quantifier, adjust the parsed code 12019 // if there is a following modifier. The base meta value is always followed by 12020 // the PLUS and QUERY values, in that order. We do this here rather than after 12021 // reading a quantifier so that intervening comments and /x whitespace can be 12022 // ignored without having to replicate code. 12023 12024 if !(prev_meta_quantifier != Tuint32_t(0) && (*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\077') || *(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\053'))) { 12025 goto __83 12026 } 12027 12028 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + uintptr(func() int32 { 12029 if prev_meta_quantifier == DMETA_MINMAX { 12030 return -3 12031 } 12032 return -1 12033 }())*4)) = prev_meta_quantifier + func() uint32 { 12034 if *(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\077') { 12035 return 0x00020000 12036 } 12037 return 0x00010000 12038 }() 12039 goto __19 // Next character in pattern 12040 __83: 12041 ; 12042 12043 // Process the next item in the main part of a pattern. 12044 12045 switch *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) { 12046 default: 12047 goto __85 12048 12049 // ---- Escape sequence ---- 12050 12051 case Tuint32_t('\134'): 12052 goto __86 // End escape sequence processing 12053 12054 // ---- Single-character special items ---- 12055 12056 case Tuint32_t('\136'): 12057 goto __87 12058 12059 case Tuint32_t('\044'): 12060 goto __88 12061 12062 case Tuint32_t('\056'): 12063 goto __89 12064 12065 // ---- Single-character quantifiers ---- 12066 12067 case Tuint32_t('\052'): 12068 goto __90 12069 12070 case Tuint32_t('\053'): 12071 goto __91 12072 12073 case Tuint32_t('\077'): 12074 goto __92 12075 12076 // ---- Potential {n,m} quantifier ---- 12077 12078 case Tuint32_t('\173'): 12079 goto __93 12080 12081 // ---- Character class ---- 12082 12083 case Tuint32_t('\133'): 12084 goto __94 // End of character class 12085 12086 // ---- Opening parenthesis ---- 12087 12088 case Tuint32_t('\050'): 12089 goto __95 // End of ( handling 12090 12091 // ---- Branch terminators ---- 12092 12093 // Alternation: reset the capture count if we are in a (?| group. 12094 12095 case Tuint32_t('\174'): 12096 goto __96 12097 12098 // End of group; reset the capture count to the maximum if we are in a (?| 12099 // group and/or reset the options that are tracked during parsing. Disallow 12100 // quantifier for a condition that is an assertion. 12101 12102 case Tuint32_t('\051'): 12103 goto __97 12104 } 12105 goto __84 12106 12107 __85: // Non-special character 12108 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 12109 okquantifier = DTRUE 12110 12111 goto __84 12112 12113 // ---- Escape sequence ---- 12114 12115 __86: 12116 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* tempptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 12117 escape = X_pcre2_check_escape_8(tls, bp+8, ptrend, bp+16, bp+20, options, 12118 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options, DFALSE, cb) 12119 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 12120 goto __98 12121 } 12122 12123 ESCAPE_FAILED: 12124 if !(extra_options&DPCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL == Tuint32_t(0)) { 12125 goto __99 12126 } 12127 goto FAILED 12128 __99: 12129 ; 12130 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* tempptr */)) 12131 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 12132 goto __100 12133 } 12134 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t('\134') 12135 goto __101 12136 __100: 12137 12138 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 12139 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 12140 goto __102 12141 } 12142 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 12143 goto __103 12144 } 12145 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 12146 goto __104 12147 __103: 12148 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 12149 goto __105 12150 } 12151 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 12152 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 12153 goto __106 12154 __105: 12155 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 12156 goto __107 12157 } 12158 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 12159 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 12160 goto __108 12161 __107: 12162 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 12163 goto __109 12164 } 12165 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 12166 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 12167 goto __110 12168 __109: 12169 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 12170 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 12171 __110: 12172 ; 12173 __108: 12174 ; 12175 __106: 12176 ; 12177 __104: 12178 ; 12179 __102: 12180 ; 12181 12182 // Get character value, increment pointer 12183 __101: 12184 ; 12185 escape = 0 // Treat as literal character 12186 __98: 12187 ; 12188 12189 // The escape was a data escape or literal character. 12190 12191 if !(escape == 0) { 12192 goto __111 12193 } 12194 12195 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 12196 okquantifier = DTRUE 12197 12198 goto __112 12199 __111: 12200 if !(escape < 0) { 12201 goto __113 12202 } 12203 12204 *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))-int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1 - int64(1)) 12205 escape = -escape 12206 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_BACKREF | Tuint32_t(escape) 12207 if !(escape < 10) { 12208 goto __115 12209 } 12210 12211 if !(*(*Tsize_t)(unsafe.Pointer(cb + 88 + uintptr(escape)*8)) == libc.CplUint64(uint64(0))) { 12212 goto __117 12213 } 12214 *(*Tsize_t)(unsafe.Pointer(cb + 88 + uintptr(escape)*8)) = *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) 12215 __117: 12216 ; 12217 goto __116 12218 __115: 12219 12220 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 12221 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 12222 12223 __116: 12224 ; 12225 okquantifier = DTRUE 12226 goto __114 12227 __113: 12228 switch escape { 12229 case ESC_C: 12230 goto __119 12231 12232 case ESC_X: 12233 goto __120 12234 case ESC_H: 12235 goto __121 12236 case ESC_h: 12237 goto __122 12238 case ESC_N: 12239 goto __123 12240 case ESC_R: 12241 goto __124 12242 case ESC_V: 12243 goto __125 12244 case ESC_v: 12245 goto __126 12246 12247 default: 12248 goto __127 12249 12250 // Escapes that change in UCP mode. Note that PCRE2_UCP will never be set 12251 // without Unicode support because it is checked when pcre2_compile() is 12252 // called. 12253 12254 case ESC_d: 12255 goto __128 12256 case ESC_D: 12257 goto __129 12258 case ESC_s: 12259 goto __130 12260 case ESC_S: 12261 goto __131 12262 case ESC_w: 12263 goto __132 12264 case ESC_W: 12265 goto __133 12266 12267 // Unicode property matching 12268 12269 case ESC_P: 12270 goto __134 12271 case ESC_p: 12272 goto __135 // End \P and \p 12273 12274 // When \g is used with quotes or angle brackets as delimiters, it is a 12275 // numerical or named subroutine call, and control comes here. When used 12276 // with brace delimiters it is a numberical back reference and does not come 12277 // here because check_escape() returns it directly as a reference. \k is 12278 // always a named back reference. 12279 12280 case ESC_g: 12281 goto __136 12282 case ESC_k: 12283 goto __137 12284 } 12285 goto __118 12286 12287 __119: 12288 if !(options&DPCRE2_NEVER_BACKSLASH_C != Tuint32_t(0)) { 12289 goto __138 12290 } 12291 12292 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR83 12293 goto ESCAPE_FAILED 12294 __138: 12295 ; 12296 okquantifier = DTRUE 12297 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12298 goto __118 12299 12300 __120: 12301 __121: 12302 __122: 12303 __123: 12304 __124: 12305 __125: 12306 __126: 12307 okquantifier = DTRUE 12308 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12309 goto __118 12310 12311 __127: // \A, \B, \b, \G, \K, \Z, \z cannot be quantified. 12312 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12313 goto __118 12314 12315 // Escapes that change in UCP mode. Note that PCRE2_UCP will never be set 12316 // without Unicode support because it is checked when pcre2_compile() is 12317 // called. 12318 12319 __128: 12320 __129: 12321 __130: 12322 __131: 12323 __132: 12324 __133: 12325 okquantifier = DTRUE 12326 if !(options&DPCRE2_UCP == Tuint32_t(0)) { 12327 goto __139 12328 } 12329 12330 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12331 goto __140 12332 __139: 12333 12334 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 12335 if escape == ESC_d || escape == ESC_s || escape == ESC_w { 12336 return ESC_p 12337 } 12338 return ESC_P 12339 }() 12340 switch escape { 12341 case ESC_d: 12342 goto __142 12343 case ESC_D: 12344 goto __143 12345 12346 case ESC_s: 12347 goto __144 12348 case ESC_S: 12349 goto __145 12350 12351 case ESC_w: 12352 goto __146 12353 case ESC_W: 12354 goto __147 12355 } 12356 goto __141 12357 12358 __142: 12359 __143: 12360 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_PC)<<16 | ucp_Nd) 12361 goto __141 12362 12363 __144: 12364 __145: 12365 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_SPACE) << 16) 12366 goto __141 12367 12368 __146: 12369 __147: 12370 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_WORD) << 16) 12371 goto __141 12372 __141: 12373 ; 12374 __140: 12375 ; 12376 goto __118 12377 12378 // Unicode property matching 12379 12380 __134: 12381 __135: 12382 12383 *(*Tuint16_t)(unsafe.Pointer(bp + 36 /* ptype */)) = Tuint16_t(0) 12384 *(*Tuint16_t)(unsafe.Pointer(bp + 38 /* pdata */)) = Tuint16_t(0) 12385 if !!(get_ucp(tls, bp+8, bp+32, bp+36, bp+38, bp+20, cb) != 0) { 12386 goto __148 12387 } 12388 goto ESCAPE_FAILED 12389 __148: 12390 ; 12391 if !(*(*TBOOL)(unsafe.Pointer(bp + 32)) != 0) { 12392 goto __149 12393 } 12394 if escape == ESC_P { 12395 escape = ESC_p 12396 } else { 12397 escape = ESC_P 12398 } 12399 __149: 12400 ; 12401 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12402 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(*(*Tuint16_t)(unsafe.Pointer(bp + 36)))<<16 | int32(*(*Tuint16_t)(unsafe.Pointer(bp + 38)))) 12403 okquantifier = DTRUE 12404 12405 goto __118 // End \P and \p 12406 12407 // When \g is used with quotes or angle brackets as delimiters, it is a 12408 // numerical or named subroutine call, and control comes here. When used 12409 // with brace delimiters it is a numberical back reference and does not come 12410 // here because check_escape() returns it directly as a reference. \k is 12411 // always a named back reference. 12412 12413 __136: 12414 __137: 12415 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\173' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\074' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\047') { 12416 goto __150 12417 } 12418 12419 if escape == ESC_g { 12420 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR57 12421 } else { 12422 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR69 12423 } 12424 goto ESCAPE_FAILED 12425 __150: 12426 ; 12427 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\074' { 12428 terminator = uint32('\076') 12429 } else { 12430 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\047' { 12431 terminator = uint32('\047') 12432 } else { 12433 terminator = uint32('\175') 12434 } 12435 } 12436 12437 // For a non-braced \g, check for a numerical recursion. 12438 12439 if !(escape == ESC_g && terminator != Tuint32_t('\175')) { 12440 goto __151 12441 } 12442 12443 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40 /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + uintptr(1) 12444 12445 if !(read_number(tls, bp+40, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+48, 12446 bp+20) != 0) { 12447 goto __152 12448 } 12449 12450 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40)) >= ptrend || Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40))))) != terminator) { 12451 goto __153 12452 } 12453 12454 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR57 12455 goto ESCAPE_FAILED 12456 __153: 12457 ; 12458 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40 /* p */)) 12459 goto SET_RECURSION 12460 __152: 12461 ; 12462 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 12463 goto __154 12464 } 12465 goto ESCAPE_FAILED 12466 __154: 12467 ; 12468 __151: 12469 ; 12470 12471 // Not a numerical recursion 12472 12473 if !!(read_name(tls, bp+8, ptrend, utf, terminator, bp+56, bp+64, bp+72, 12474 bp+20, cb) != 0) { 12475 goto __155 12476 } 12477 goto ESCAPE_FAILED 12478 __155: 12479 ; 12480 12481 // \k and \g when used with braces are back references, whereas \g used 12482 // with quotes or angle brackets is a recursion 12483 12484 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12485 if escape == ESC_k || terminator == Tuint32_t('\175') { 12486 return DMETA_BACKREF_BYNAME 12487 } 12488 return DMETA_RECURSE_BYNAME 12489 }() 12490 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 72 /* namelen */)) 12491 12492 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 12493 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 12494 12495 okquantifier = DTRUE 12496 goto __118 // End special escape processing 12497 __118: 12498 ; 12499 __114: 12500 ; 12501 __112: 12502 ; 12503 goto __84 // End escape sequence processing 12504 12505 // ---- Single-character special items ---- 12506 12507 __87: 12508 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CIRCUMFLEX 12509 goto __84 12510 12511 __88: 12512 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_DOLLAR 12513 goto __84 12514 12515 __89: 12516 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_DOT 12517 okquantifier = DTRUE 12518 goto __84 12519 12520 // ---- Single-character quantifiers ---- 12521 12522 __90: 12523 meta_quantifier = DMETA_ASTERISK 12524 goto CHECK_QUANTIFIER 12525 12526 __91: 12527 meta_quantifier = DMETA_PLUS 12528 goto CHECK_QUANTIFIER 12529 12530 __92: 12531 meta_quantifier = DMETA_QUERY 12532 goto CHECK_QUANTIFIER 12533 12534 // ---- Potential {n,m} quantifier ---- 12535 12536 __93: 12537 if !!(read_repeat_counts(tls, bp+8, ptrend, bp+76, bp+80, 12538 bp+20) != 0) { 12539 goto __156 12540 } 12541 12542 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 12543 goto __157 12544 } 12545 goto FAILED 12546 __157: 12547 ; // Error in quantifier. 12548 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 12549 okquantifier = DTRUE 12550 // Not a quantifier 12551 goto __84 // No more quantifier processing 12552 __156: 12553 ; 12554 meta_quantifier = DMETA_MINMAX 12555 // Fall through 12556 12557 // ---- Quantifier post-processing ---- 12558 12559 // Check that a quantifier is allowed after the previous item. 12560 12561 CHECK_QUANTIFIER: 12562 if !!(prev_okquantifier != 0) { 12563 goto __158 12564 } 12565 12566 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR9 12567 goto FAILED_BACK 12568 __158: 12569 ; 12570 12571 // Most (*VERB)s are not allowed to be quantified, but an ungreedy 12572 // quantifier can be useful for (*ACCEPT) - meaning "succeed on backtrack", a 12573 // sort of negated (*COMMIT). We therefore allow (*ACCEPT) to be quantified by 12574 // wrapping it in non-capturing brackets, but we have to allow for a preceding 12575 // (*MARK) for when (*ACCEPT) has an argument. 12576 12577 if !(*(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) == DMETA_ACCEPT) { 12578 goto __159 12579 } 12580 12581 p1 = parsed_pattern - uintptr(1)*4 12582 __160: 12583 if !(p1 >= verbstartptr) { 12584 goto __162 12585 } 12586 *(*Tuint32_t)(unsafe.Pointer(p1 + 1*4)) = *(*Tuint32_t)(unsafe.Pointer(p1)) 12587 goto __161 12588 __161: 12589 p1 -= 4 12590 goto __160 12591 goto __162 12592 __162: 12593 ; 12594 *(*Tuint32_t)(unsafe.Pointer(verbstartptr)) = DMETA_NOCAPTURE 12595 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + 1*4)) = DMETA_KET 12596 parsed_pattern += 4 * uintptr(2) 12597 __159: 12598 ; 12599 12600 // Now we can put the quantifier into the parsed pattern vector. At this 12601 // stage, we have only the basic quantifier. The check for a following + or ? 12602 // modifier happens at the top of the loop, after any intervening comments 12603 // have been removed. 12604 12605 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = meta_quantifier 12606 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\173')) { 12607 goto __163 12608 } 12609 12610 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 76 /* min_repeat */)) 12611 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 80 /* max_repeat */)) 12612 __163: 12613 ; 12614 goto __84 12615 12616 // ---- Character class ---- 12617 12618 __94: 12619 okquantifier = DTRUE 12620 12621 // In another (POSIX) regex library, the ugly syntax [[:<:]] and [[:>:]] is 12622 // used for "start of word" and "end of word". As these are otherwise illegal 12623 // sequences, we don't break anything by recognizing them. They are replaced 12624 // by \b(?=\w) and \b(?<=\w) respectively. Sequences like [a[:<:]] are 12625 // erroneous and are handled by the normal code below. 12626 12627 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(6) && (X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ts+597, uint64(6)) == 0 || X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ts+604, uint64(6)) == 0)) { 12628 goto __164 12629 } 12630 12631 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_b 12632 12633 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2))) == '\074') { 12634 goto __165 12635 } 12636 12637 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEAD 12638 goto __166 12639 __165: 12640 12641 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKBEHIND 12642 *(*TBOOL)(unsafe.Pointer(has_lookbehind)) = DTRUE 12643 12644 /* The offset is used only for the "non-fixed length" error; this won't 12645 occur here, so just store zero. */ 12646 12647 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = uint32(Tsize_t(uint64(0)) >> 32) 12648 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = uint32(uint64(0) & uint64(0xffffffff)) 12649 12650 __166: 12651 ; 12652 12653 if !(options&DPCRE2_UCP == Tuint32_t(0)) { 12654 goto __167 12655 } 12656 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_w 12657 goto __168 12658 __167: 12659 12660 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_p 12661 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_WORD) << 16) 12662 __168: 12663 ; 12664 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 12665 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(6) 12666 goto __84 12667 __164: 12668 ; 12669 12670 // PCRE supports POSIX class stuff inside a class. Perl gives an error if 12671 // they are encountered at the top level, so we'll do that too. 12672 12673 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\072' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\056' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\075') && check_posix_syntax(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ptrend, bp+24) != 0) { 12674 goto __169 12675 } 12676 12677 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostDecUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) == '\072' { 12678 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR12 12679 } else { 12680 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR13 12681 } 12682 goto FAILED 12683 __169: 12684 ; 12685 12686 // Process a regular character class. If the first character is '^', set 12687 // the negation flag. If the first few characters (either before or after ^) 12688 // are \Q\E or \E or space or tab in extended-more mode, we skip them too. 12689 // This makes for compatibility with Perl. 12690 12691 negate_class = DFALSE 12692 __170: 12693 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend) { 12694 goto __171 12695 } 12696 12697 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 12698 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 12699 goto __172 12700 } 12701 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 12702 goto __173 12703 } 12704 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 12705 goto __174 12706 __173: 12707 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 12708 goto __175 12709 } 12710 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 12711 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 12712 goto __176 12713 __175: 12714 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 12715 goto __177 12716 } 12717 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 12718 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 12719 goto __178 12720 __177: 12721 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 12722 goto __179 12723 } 12724 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 12725 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 12726 goto __180 12727 __179: 12728 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 12729 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 12730 __180: 12731 ; 12732 __178: 12733 ; 12734 __176: 12735 ; 12736 __174: 12737 ; 12738 __172: 12739 ; 12740 12741 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\134')) { 12742 goto __181 12743 } 12744 12745 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\105') { 12746 goto __183 12747 } 12748 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 12749 goto __184 12750 __183: 12751 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(3) && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ts+611, uint64(3)) == 0) { 12752 goto __185 12753 } 12754 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 12755 goto __186 12756 __185: 12757 goto __171 12758 __186: 12759 ; 12760 __184: 12761 ; 12762 goto __182 12763 __181: 12764 if !(options&DPCRE2_EXTENDED_MORE != Tuint32_t(0) && (*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\040') || *(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\011'))) { 12765 goto __187 12766 } // Note: just these two 12767 goto __170 12768 goto __188 12769 __187: 12770 if !(!(negate_class != 0) && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\136')) { 12771 goto __189 12772 } 12773 negate_class = DTRUE 12774 goto __190 12775 __189: 12776 goto __171 12777 __190: 12778 ; 12779 __188: 12780 ; 12781 __182: 12782 ; 12783 goto __170 12784 __171: 12785 ; 12786 12787 // Now the real contents of the class; c has the first "real" character. 12788 // Empty classes are permitted only if the option is set. 12789 12790 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\135') && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_ALLOW_EMPTY_CLASS != Tuint32_t(0)) { 12791 goto __191 12792 } 12793 12794 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12795 if negate_class != 0 { 12796 return DMETA_CLASS_EMPTY_NOT 12797 } 12798 return DMETA_CLASS_EMPTY 12799 }() 12800 goto __84 // End of class processing 12801 __191: 12802 ; 12803 12804 // Process a non-empty class. 12805 12806 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12807 if negate_class != 0 { 12808 return DMETA_CLASS_NOT 12809 } 12810 return DMETA_CLASS 12811 }() 12812 class_range_state = RANGE_NO 12813 12814 // In an EBCDIC environment, Perl treats alphabetic ranges specially 12815 // because there are holes in the encoding, and simply using the range A-Z 12816 // (for example) would include the characters in the holes. This applies only 12817 // to ranges where both values are literal; [\xC1-\xE9] is different to [A-Z] 12818 // in this respect. In order to accommodate this, we keep track of whether 12819 // character values are literal or not, and a state variable for handling 12820 // ranges. 12821 12822 // Loop for the contents of the class 12823 12824 __192: 12825 char_is_literal = DTRUE 12826 12827 // Inside \Q...\E everything is literal except \E 12828 12829 if !(inescq != 0) { 12830 goto __195 12831 } 12832 12833 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\134') && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\105') { 12834 goto __196 12835 } 12836 12837 inescq = DFALSE // Reset literal state 12838 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ // Skip the 'E' 12839 goto CLASS_CONTINUE 12840 __196: 12841 ; 12842 goto CLASS_LITERAL 12843 __195: 12844 ; 12845 12846 // Skip over space and tab (only) in extended-more mode. 12847 12848 if !(options&DPCRE2_EXTENDED_MORE != Tuint32_t(0) && (*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\040') || *(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\011'))) { 12849 goto __197 12850 } 12851 goto CLASS_CONTINUE 12852 __197: 12853 ; 12854 12855 // Handle POSIX class names. Perl allows a negation extension of the 12856 // form [:^name:]. A square bracket that doesn't match the syntax is 12857 // treated as a literal. We also recognize the POSIX constructions 12858 // [.ch.] and [=ch=] ("collating elements") and fault them, as Perl 12859 // 5.6 and 5.8 do. 12860 12861 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\133') && (int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(3) && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\072' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\056' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\075') && check_posix_syntax(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ptrend, bp+24) != 0) { 12862 goto __198 12863 } 12864 12865 posix_negate = DFALSE 12866 12867 // Perl treats a hyphen before a POSIX class as a literal, not the 12868 // start of a range. However, it gives a warning in its warning mode. PCRE 12869 // does not have a warning mode, so we give an error, because this is 12870 // likely an error on the user's part. 12871 12872 if !(class_range_state == Tuint32_t(1)) { 12873 goto __200 12874 } 12875 12876 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR50 12877 goto FAILED 12878 __200: 12879 ; 12880 12881 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\072') { 12882 goto __201 12883 } 12884 12885 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR13 12886 goto FAILED_BACK 12887 __201: 12888 ; 12889 12890 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) == '\136') { 12891 goto __202 12892 } 12893 12894 posix_negate = DTRUE 12895 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 12896 __202: 12897 ; 12898 12899 posix_class = check_posix_name(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), int32((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)))-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1)) 12900 if !(posix_class < 0) { 12901 goto __203 12902 } 12903 12904 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR30 12905 goto FAILED 12906 __203: 12907 ; 12908 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + uintptr(2) 12909 12910 // Perl treats a hyphen after a POSIX class as a literal, not the 12911 // start of a range. However, it gives a warning in its warning mode 12912 // unless the hyphen is the last character in the class. PCRE does not 12913 // have a warning mode, so we give an error, because this is likely an 12914 // error on the user's part. 12915 12916 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\055' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) != '\135') { 12917 goto __204 12918 } 12919 12920 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR50 12921 goto FAILED 12922 __204: 12923 ; 12924 12925 // Set "a hyphen is not the start of a range" for the -] case, and also 12926 // in case the POSIX class is followed by \E or \Q\E (possibly repeated - 12927 // fuzzers do that kind of thing) and *then* a hyphen. This causes that 12928 // hyphen to be treated as a literal. I don't think it's worth setting up 12929 // special apparatus to do otherwise. 12930 12931 class_range_state = RANGE_NO 12932 12933 // When PCRE2_UCP is set, some of the POSIX classes are converted to 12934 // use Unicode properties \p or \P or, in one case, \h or \H. The 12935 // substitutes table has two values per class, containing the type and 12936 // value of a \p or \P item. The special cases are specified with a 12937 // negative type: a non-zero value causes \h or \H to be used, and a zero 12938 // value falls through to behave like a non-UCP POSIX class. 12939 12940 if !(options&DPCRE2_UCP != Tuint32_t(0)) { 12941 goto __205 12942 } 12943 12944 ptype1 = posix_substitutes[2*posix_class] 12945 pvalue = posix_substitutes[2*posix_class+1] 12946 if !(ptype1 >= 0) { 12947 goto __206 12948 } 12949 12950 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 12951 if posix_negate != 0 { 12952 return ESC_P 12953 } 12954 return ESC_p 12955 }() 12956 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(ptype1<<16 | pvalue) 12957 goto CLASS_CONTINUE 12958 __206: 12959 ; 12960 12961 if !(pvalue != 0) { 12962 goto __207 12963 } 12964 12965 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 12966 if posix_negate != 0 { 12967 return ESC_H 12968 } 12969 return ESC_h 12970 }() 12971 goto CLASS_CONTINUE 12972 __207: 12973 ; 12974 12975 // Fall through 12976 __205: 12977 ; 12978 12979 // Non-UCP POSIX class 12980 12981 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12982 if posix_negate != 0 { 12983 return DMETA_POSIX_NEG 12984 } 12985 return DMETA_POSIX 12986 }() 12987 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(posix_class) 12988 goto __199 12989 __198: 12990 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\055') && class_range_state >= RANGE_OK_ESCAPED) { 12991 goto __208 12992 } 12993 12994 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12995 if class_range_state == RANGE_OK_LITERAL { 12996 return DMETA_RANGE_LITERAL 12997 } 12998 return DMETA_RANGE_ESCAPED 12999 }() 13000 class_range_state = Tuint32_t(1) /* RANGE_STARTED */ 13001 goto __209 13002 __208: 13003 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\134')) { 13004 goto __210 13005 } 13006 13007 CLASS_LITERAL: 13008 if !(class_range_state == Tuint32_t(1)) { 13009 goto __212 13010 } 13011 13012 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-2)*4))) { 13013 goto __214 13014 } // Optimize one-char range 13015 parsed_pattern -= 4 13016 goto __215 13017 __214: 13018 if !(*(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-2)*4)) > *(*Tuint32_t)(unsafe.Pointer(bp + 16))) { 13019 goto __216 13020 } /* Check range is in order */ 13021 13022 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR8 13023 goto FAILED_BACK 13024 goto __217 13025 __216: 13026 13027 if !(!(char_is_literal != 0) && *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) == DMETA_RANGE_LITERAL) { 13028 goto __218 13029 } 13030 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) = DMETA_RANGE_ESCAPED 13031 __218: 13032 ; 13033 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 13034 okquantifier = DTRUE 13035 13036 __217: 13037 ; 13038 __215: 13039 ; 13040 class_range_state = RANGE_NO 13041 goto __213 13042 __212: /* Potential start of range */ 13043 13044 if char_is_literal != 0 { 13045 class_range_state = RANGE_OK_LITERAL 13046 } else { 13047 class_range_state = RANGE_OK_ESCAPED 13048 } 13049 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 13050 okquantifier = DTRUE 13051 13052 __213: 13053 ; 13054 goto __211 13055 __210: 13056 13057 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* tempptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 13058 escape = X_pcre2_check_escape_8(tls, bp+8, ptrend, bp+16, bp+20, options, 13059 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options, DTRUE, cb) 13060 13061 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 13062 goto __219 13063 } 13064 13065 if !(extra_options&DPCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL == Tuint32_t(0)) { 13066 goto __220 13067 } 13068 goto FAILED 13069 __220: 13070 ; 13071 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* tempptr */)) 13072 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 13073 goto __221 13074 } 13075 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t('\134') 13076 goto __222 13077 __221: 13078 13079 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 13080 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 13081 goto __223 13082 } 13083 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 13084 goto __224 13085 } 13086 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 13087 goto __225 13088 __224: 13089 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 13090 goto __226 13091 } 13092 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 13093 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 13094 goto __227 13095 __226: 13096 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 13097 goto __228 13098 } 13099 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 13100 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 13101 goto __229 13102 __228: 13103 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 13104 goto __230 13105 } 13106 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 13107 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 13108 goto __231 13109 __230: 13110 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 13111 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 13112 __231: 13113 ; 13114 __229: 13115 ; 13116 __227: 13117 ; 13118 __225: 13119 ; 13120 __223: 13121 ; 13122 13123 // Get character value, increment pointer 13124 __222: 13125 ; 13126 escape = 0 // Treat as literal character 13127 __219: 13128 ; 13129 13130 switch escape { 13131 case 0: 13132 goto __233 13133 13134 case ESC_b: 13135 goto __234 13136 13137 case ESC_Q: 13138 goto __235 13139 13140 case ESC_E: 13141 goto __236 13142 13143 case ESC_B: 13144 goto __237 // Always an error in a class 13145 case ESC_R: 13146 goto __238 13147 case ESC_X: 13148 goto __239 13149 } 13150 goto __232 13151 13152 __233: // Escaped character code point is in c 13153 char_is_literal = DFALSE 13154 goto CLASS_LITERAL 13155 13156 __234: 13157 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t('\010') // \b is backspace in a class 13158 char_is_literal = DFALSE 13159 goto CLASS_LITERAL 13160 13161 __235: 13162 inescq = DTRUE // Enter literal mode 13163 goto CLASS_CONTINUE 13164 13165 __236: // Ignore orphan \E 13166 goto CLASS_CONTINUE 13167 13168 __237: // Always an error in a class 13169 __238: 13170 __239: 13171 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR7 13172 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- 13173 goto FAILED 13174 __232: 13175 ; 13176 13177 // The second part of a range can be a single-character escape 13178 // sequence (detected above), but not any of the other escapes. Perl 13179 // treats a hyphen as a literal in such circumstances. However, in Perl's 13180 // warning mode, a warning is given, so PCRE now faults it, as it is 13181 // almost certainly a mistake on the user's part. 13182 13183 if !(class_range_state == Tuint32_t(1)) { 13184 goto __240 13185 } 13186 13187 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR50 13188 goto FAILED // Not CLASS_ESCAPE_FAILED; always an error 13189 __240: 13190 ; 13191 13192 // Of the remaining escapes, only those that define characters are 13193 // allowed in a class. None may start a range. 13194 13195 class_range_state = RANGE_NO 13196 switch escape { 13197 case ESC_N: 13198 goto __242 13199 13200 case ESC_H: 13201 goto __243 13202 case ESC_h: 13203 goto __244 13204 case ESC_V: 13205 goto __245 13206 case ESC_v: 13207 goto __246 13208 13209 // These escapes are converted to Unicode property tests when 13210 // PCRE2_UCP is set. 13211 13212 case ESC_d: 13213 goto __247 13214 case ESC_D: 13215 goto __248 13216 case ESC_s: 13217 goto __249 13218 case ESC_S: 13219 goto __250 13220 case ESC_w: 13221 goto __251 13222 case ESC_W: 13223 goto __252 13224 13225 // Explicit Unicode property matching 13226 13227 case ESC_P: 13228 goto __253 13229 case ESC_p: 13230 goto __254 // End \P and \p 13231 13232 default: 13233 goto __255 13234 } 13235 goto __241 13236 13237 __242: 13238 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR71 13239 goto FAILED 13240 13241 __243: 13242 __244: 13243 __245: 13244 __246: 13245 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 13246 goto __241 13247 13248 // These escapes are converted to Unicode property tests when 13249 // PCRE2_UCP is set. 13250 13251 __247: 13252 __248: 13253 __249: 13254 __250: 13255 __251: 13256 __252: 13257 if !(options&DPCRE2_UCP == Tuint32_t(0)) { 13258 goto __256 13259 } 13260 13261 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 13262 goto __257 13263 __256: 13264 13265 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 13266 if escape == ESC_d || escape == ESC_s || escape == ESC_w { 13267 return ESC_p 13268 } 13269 return ESC_P 13270 }() 13271 switch escape { 13272 case ESC_d: 13273 goto __259 13274 case ESC_D: 13275 goto __260 13276 13277 case ESC_s: 13278 goto __261 13279 case ESC_S: 13280 goto __262 13281 13282 case ESC_w: 13283 goto __263 13284 case ESC_W: 13285 goto __264 13286 } 13287 goto __258 13288 13289 __259: 13290 __260: 13291 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_PC)<<16 | ucp_Nd) 13292 goto __258 13293 13294 __261: 13295 __262: 13296 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_SPACE) << 16) 13297 goto __258 13298 13299 __263: 13300 __264: 13301 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_WORD) << 16) 13302 goto __258 13303 __258: 13304 ; 13305 __257: 13306 ; 13307 goto __241 13308 13309 // Explicit Unicode property matching 13310 13311 __253: 13312 __254: 13313 13314 *(*Tuint16_t)(unsafe.Pointer(bp + 88 /* ptype2 */)) = Tuint16_t(0) 13315 *(*Tuint16_t)(unsafe.Pointer(bp + 90 /* pdata1 */)) = Tuint16_t(0) 13316 if !!(get_ucp(tls, bp+8, bp+84, bp+88, bp+90, bp+20, cb) != 0) { 13317 goto __265 13318 } 13319 goto FAILED 13320 __265: 13321 ; 13322 if !(*(*TBOOL)(unsafe.Pointer(bp + 84)) != 0) { 13323 goto __266 13324 } 13325 if escape == ESC_P { 13326 escape = ESC_p 13327 } else { 13328 escape = ESC_P 13329 } 13330 __266: 13331 ; 13332 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 13333 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(*(*Tuint16_t)(unsafe.Pointer(bp + 88)))<<16 | int32(*(*Tuint16_t)(unsafe.Pointer(bp + 90)))) 13334 13335 goto __241 // End \P and \p 13336 13337 __255: // All others are not allowed in a class 13338 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR7 13339 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- 13340 goto FAILED 13341 __241: 13342 ; 13343 13344 // Perl gives a warning unless a following hyphen is the last character 13345 // in the class. PCRE throws an error. 13346 13347 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\055' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) != '\135') { 13348 goto __267 13349 } 13350 13351 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR50 13352 goto FAILED 13353 __267: 13354 ; 13355 __211: 13356 ; 13357 __209: 13358 ; 13359 __199: 13360 ; 13361 13362 // Proceed to next thing in the class. 13363 13364 CLASS_CONTINUE: 13365 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 13366 goto __268 13367 } 13368 13369 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR6 // Missing terminating ']' 13370 goto FAILED 13371 __268: 13372 ; 13373 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 13374 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 13375 goto __269 13376 } 13377 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 13378 goto __270 13379 } 13380 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 13381 goto __271 13382 __270: 13383 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 13384 goto __272 13385 } 13386 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 13387 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 13388 goto __273 13389 __272: 13390 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 13391 goto __274 13392 } 13393 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 13394 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 13395 goto __275 13396 __274: 13397 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 13398 goto __276 13399 } 13400 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 13401 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 13402 goto __277 13403 __276: 13404 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 13405 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 13406 __277: 13407 ; 13408 __275: 13409 ; 13410 __273: 13411 ; 13412 __271: 13413 ; 13414 __269: 13415 ; 13416 13417 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\135') && !(inescq != 0)) { 13418 goto __278 13419 } 13420 goto __194 13421 __278: 13422 ; 13423 goto __193 13424 __193: 13425 goto __192 13426 goto __194 13427 __194: 13428 ; // End of class-processing loop 13429 13430 // -] at the end of a class is a literal '-' 13431 13432 if !(class_range_state == Tuint32_t(1)) { 13433 goto __279 13434 } 13435 13436 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) = Tuint32_t('\055') 13437 class_range_state = RANGE_NO 13438 __279: 13439 ; 13440 13441 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CLASS_END 13442 goto __84 // End of character class 13443 13444 // ---- Opening parenthesis ---- 13445 13446 __95: 13447 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 13448 goto __280 13449 } 13450 goto UNCLOSED_PARENTHESIS 13451 __280: 13452 ; 13453 13454 // If ( is not followed by ? it is either a capture or a special verb or an 13455 // alpha assertion or a positive non-atomic lookahead. 13456 13457 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\077') { 13458 goto __281 13459 } 13460 13461 // Handle capturing brackets (or non-capturing if auto-capture is turned 13462 // off). 13463 13464 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\052') { 13465 goto __282 13466 } 13467 13468 nest_depth++ 13469 if !(options&DPCRE2_NO_AUTO_CAPTURE == Tuint32_t(0)) { 13470 goto __284 13471 } 13472 13473 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount >= DMAX_GROUP_NUMBER) { 13474 goto __286 13475 } 13476 13477 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR97 13478 goto FAILED 13479 __286: 13480 ; 13481 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount++ 13482 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CAPTURE | (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount 13483 goto __285 13484 __284: 13485 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 13486 __285: 13487 ; 13488 goto __283 13489 __282: 13490 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 <= int64(1) || libc.AssignPtrUint32(bp+16, Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))) == Tuint32_t('\051')) { 13491 goto __287 13492 } 13493 goto __84 13494 goto __288 13495 __287: 13496 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 16))))))&Dctype_lcletter != 0) { 13497 goto __289 13498 } 13499 13500 vn = uintptr(unsafe.Pointer(&alasnames)) 13501 if !!(read_name(tls, bp+8, ptrend, utf, uint32(0), bp+56, bp+64, bp+72, 13502 bp+20, cb) != 0) { 13503 goto __291 13504 } 13505 goto FAILED 13506 __291: 13507 ; 13508 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\072') { 13509 goto __292 13510 } 13511 13512 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR95 // Malformed 13513 goto FAILED 13514 __292: 13515 ; 13516 13517 // Scan the table of alpha assertion names 13518 13519 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 0 13520 __293: 13521 if !(*(*int32)(unsafe.Pointer(bp + 48)) < alascount) { 13522 goto __295 13523 } 13524 13525 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 72)) == alasmeta[*(*int32)(unsafe.Pointer(bp + 48))].Flen && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)), vn, uint64(*(*Tuint32_t)(unsafe.Pointer(bp + 72)))) == 0) { 13526 goto __296 13527 } 13528 goto __295 13529 __296: 13530 ; 13531 vn += uintptr(alasmeta[*(*int32)(unsafe.Pointer(bp + 48))].Flen + uint32(1)) 13532 goto __294 13533 __294: 13534 *(*int32)(unsafe.Pointer(bp + 48 /* i */))++ 13535 goto __293 13536 goto __295 13537 __295: 13538 ; 13539 13540 if !(*(*int32)(unsafe.Pointer(bp + 48)) >= alascount) { 13541 goto __297 13542 } 13543 13544 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR95 // Alpha assertion not recognized 13545 goto FAILED 13546 __297: 13547 ; 13548 13549 // Check for expecting an assertion condition. If so, only atomic 13550 // lookaround assertions are valid. 13551 13552 meta = alasmeta[*(*int32)(unsafe.Pointer(bp + 48 /* i */))].Fmeta 13553 if !(prev_expect_cond_assert > 0 && (meta < DMETA_LOOKAHEAD || meta > DMETA_LOOKBEHINDNOT)) { 13554 goto __298 13555 } 13556 13557 if meta == DMETA_LOOKAHEAD_NA || meta == DMETA_LOOKBEHIND_NA { 13558 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR98 13559 } else { 13560 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR28 13561 } // (Atomic) assertion expected 13562 goto FAILED 13563 __298: 13564 ; 13565 13566 // The lookaround alphabetic synonyms can mostly be handled by jumping 13567 // to the code that handles the traditional symbolic forms. 13568 13569 switch meta { 13570 default: 13571 goto __300 // the meta values come from a table above. 13572 13573 case DMETA_ATOMIC: 13574 goto __301 13575 13576 case DMETA_LOOKAHEAD: 13577 goto __302 13578 13579 case DMETA_LOOKAHEAD_NA: 13580 goto __303 13581 13582 case DMETA_LOOKAHEADNOT: 13583 goto __304 13584 13585 case DMETA_LOOKBEHIND: 13586 goto __305 13587 case DMETA_LOOKBEHINDNOT: 13588 goto __306 13589 case DMETA_LOOKBEHIND_NA: 13590 goto __307 13591 13592 // The script run facilities are handled here. Unicode support is 13593 // required (give an error if not, as this is a security issue). Always 13594 // record a META_SCRIPT_RUN item. Then, for the atomic version, insert 13595 // META_ATOMIC and remember that we need two META_KETs at the end. 13596 13597 case DMETA_SCRIPT_RUN: 13598 goto __308 13599 case DMETA_ATOMIC_SCRIPT_RUN: 13600 goto __309 13601 } 13602 goto __299 13603 13604 __300: 13605 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR89 // Unknown code; should never occur because 13606 goto FAILED // the meta values come from a table above. 13607 13608 __301: 13609 goto ATOMIC_GROUP 13610 13611 __302: 13612 goto POSITIVE_LOOK_AHEAD 13613 13614 __303: 13615 goto POSITIVE_NONATOMIC_LOOK_AHEAD 13616 13617 __304: 13618 goto NEGATIVE_LOOK_AHEAD 13619 13620 __305: 13621 __306: 13622 __307: 13623 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = meta 13624 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- 13625 goto POST_LOOKBEHIND 13626 13627 // The script run facilities are handled here. Unicode support is 13628 // required (give an error if not, as this is a security issue). Always 13629 // record a META_SCRIPT_RUN item. Then, for the atomic version, insert 13630 // META_ATOMIC and remember that we need two META_KETs at the end. 13631 13632 __308: 13633 __309: 13634 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_SCRIPT_RUN 13635 nest_depth++ 13636 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 13637 if !(meta == DMETA_ATOMIC_SCRIPT_RUN) { 13638 goto __310 13639 } 13640 13641 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ATOMIC 13642 if !(top_nest == uintptr(0)) { 13643 goto __311 13644 } 13645 top_nest = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace 13646 goto __312 13647 __311: 13648 if !(libc.PreIncUintptr(&top_nest, 12) >= end_nests) { 13649 goto __313 13650 } 13651 13652 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR84 13653 goto FAILED 13654 __313: 13655 ; 13656 __312: 13657 ; 13658 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 13659 (*Tnest_save)(unsafe.Pointer(top_nest)).Fflags = uint16(DNSF_ATOMICSR) 13660 (*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) 13661 __310: 13662 ; 13663 goto __299 13664 __299: 13665 ; 13666 goto __290 13667 __289: 13668 13669 vn = uintptr(unsafe.Pointer(&verbnames)) 13670 if !!(read_name(tls, bp+8, ptrend, utf, uint32(0), bp+56, bp+64, bp+72, 13671 bp+20, cb) != 0) { 13672 goto __314 13673 } 13674 goto FAILED 13675 __314: 13676 ; 13677 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\072' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 13678 goto __315 13679 } 13680 13681 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR60 // Malformed 13682 goto FAILED 13683 __315: 13684 ; 13685 13686 // Scan the table of verb names 13687 13688 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 0 13689 __316: 13690 if !(*(*int32)(unsafe.Pointer(bp + 48)) < verbcount) { 13691 goto __318 13692 } 13693 13694 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 72)) == verbs[*(*int32)(unsafe.Pointer(bp + 48))].Flen && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)), vn, uint64(*(*Tuint32_t)(unsafe.Pointer(bp + 72)))) == 0) { 13695 goto __319 13696 } 13697 goto __318 13698 __319: 13699 ; 13700 vn += uintptr(verbs[*(*int32)(unsafe.Pointer(bp + 48))].Flen + uint32(1)) 13701 goto __317 13702 __317: 13703 *(*int32)(unsafe.Pointer(bp + 48 /* i */))++ 13704 goto __316 13705 goto __318 13706 __318: 13707 ; 13708 13709 if !(*(*int32)(unsafe.Pointer(bp + 48)) >= verbcount) { 13710 goto __320 13711 } 13712 13713 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR60 // Verb not recognized 13714 goto FAILED 13715 __320: 13716 ; 13717 13718 // An empty argument is treated as no argument. 13719 13720 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\072' && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))+uintptr(1) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) == '\051') { 13721 goto __321 13722 } 13723 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 13724 __321: 13725 ; // Advance to the closing parens 13726 13727 // Check for mandatory non-empty argument; this is (*MARK) 13728 13729 if !(verbs[*(*int32)(unsafe.Pointer(bp + 48))].Fhas_arg > 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\072') { 13730 goto __322 13731 } 13732 13733 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR66 13734 goto FAILED 13735 __322: 13736 ; 13737 13738 // Remember where this verb, possibly with a preceding (*MARK), starts, 13739 // for handling quantified (*ACCEPT). 13740 13741 verbstartptr = parsed_pattern 13742 okquantifier = libc.Bool32(verbs[*(*int32)(unsafe.Pointer(bp + 48))].Fmeta == DMETA_ACCEPT) 13743 13744 // It appears that Perl allows any characters whatsoever, other than a 13745 // closing parenthesis, to appear in arguments ("names"), so we no longer 13746 // insist on letters, digits, and underscores. Perl does not, however, do 13747 // any interpretation within arguments, and has no means of including a 13748 // closing parenthesis. PCRE supports escape processing but only when it 13749 // is requested by an option. We set inverbname TRUE here, and let the 13750 // main loop take care of this so that escape and \x processing is done by 13751 // the main code above. 13752 13753 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) == '\072') { 13754 goto __323 13755 } /* Skip past : or ) */ 13756 13757 // Some optional arguments can be treated as a preceding (*MARK) 13758 13759 if !(verbs[*(*int32)(unsafe.Pointer(bp + 48))].Fhas_arg < 0) { 13760 goto __325 13761 } 13762 13763 add_after_mark = verbs[*(*int32)(unsafe.Pointer(bp + 48 /* i */))].Fmeta 13764 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_MARK 13765 goto __326 13766 __325: 13767 13768 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = verbs[*(*int32)(unsafe.Pointer(bp + 48))].Fmeta + func() uint32 { 13769 if verbs[*(*int32)(unsafe.Pointer(bp + 48))].Fmeta != DMETA_MARK { 13770 return 0x00010000 13771 } 13772 return uint32(0) 13773 }() 13774 __326: 13775 ; 13776 13777 // Set up for reading the name in the main loop. 13778 13779 verblengthptr = libc.PostIncUintptr(&parsed_pattern, 4) 13780 verbnamestart = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 13781 inverbname = DTRUE 13782 goto __324 13783 __323: /* No verb "name" argument */ 13784 13785 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = verbs[*(*int32)(unsafe.Pointer(bp + 48 /* i */))].Fmeta 13786 __324: 13787 ; 13788 __290: 13789 ; 13790 __288: 13791 ; 13792 __283: 13793 ; // End of (*VERB) handling 13794 goto __84 // Done with this parenthesis 13795 __281: 13796 ; // End of groups that don't start with (? 13797 13798 // ---- Items starting (? ---- 13799 13800 // The type of item is determined by what follows (?. Handle (?| and option 13801 // changes under "default" because both need a new block on the nest stack. 13802 // Comments starting with (?# are handled above. Note that there is some 13803 // ambiguity about the sequence (?- because if a digit follows it's a relative 13804 // recursion or subroutine call whereas otherwise it's an option unsetting. 13805 13806 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend) { 13807 goto __327 13808 } 13809 goto UNCLOSED_PARENTHESIS 13810 __327: 13811 ; 13812 13813 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))))) { 13814 default: 13815 goto __329 // End default case after (? 13816 13817 // ---- Python syntax support ---- 13818 13819 case '\120': 13820 goto __330 // End of (?P processing 13821 13822 // ---- Recursion/subroutine calls by number ---- 13823 13824 case '\122': 13825 goto __331 13826 13827 // An item starting (?- followed by a digit comes here via the "default" 13828 // case because (?- followed by a non-digit is an options setting. 13829 13830 case '\053': 13831 goto __332 13832 // Fall through 13833 13834 case '\060': 13835 goto __333 13836 case '\061': 13837 goto __334 13838 case '\062': 13839 goto __335 13840 case '\063': 13841 goto __336 13842 case '\064': 13843 goto __337 13844 case '\065': 13845 goto __338 13846 case '\066': 13847 goto __339 13848 case '\067': 13849 goto __340 13850 case '\070': 13851 goto __341 13852 case '\071': 13853 goto __342 // End of recursive call by number handling 13854 13855 // ---- Recursion/subroutine calls by name ---- 13856 13857 case '\046': 13858 goto __343 13859 13860 // ---- Callout with numerical or string argument ---- 13861 13862 case '\103': 13863 goto __344 // End callout 13864 13865 // ---- Conditional group ---- 13866 13867 // A condition can be an assertion, a number (referring to a numbered 13868 // group's having been set), a name (referring to a named group), or 'R', 13869 // referring to overall recursion. R<digits> and R&name are also permitted 13870 // for recursion state tests. Numbers may be preceded by + or - to specify a 13871 // relative group number. 13872 // 13873 // There are several syntaxes for testing a named group: (?(name)) is used 13874 // by Python; Perl 5.10 onwards uses (?(<name>) or (?('name')). 13875 // 13876 // There are two unfortunate ambiguities. 'R' can be the recursive thing or 13877 // the name 'R' (and similarly for 'R' followed by digits). 'DEFINE' can be 13878 // the Perl DEFINE feature or the Python named test. We look for a name 13879 // first; if not found, we try the other case. 13880 // 13881 // For compatibility with auto-callouts, we allow a callout to be specified 13882 // before a condition that is an assertion. 13883 13884 case '\050': 13885 goto __345 // End of condition processing 13886 13887 // ---- Atomic group ---- 13888 13889 case '\076': 13890 goto __346 13891 13892 // ---- Lookahead assertions ---- 13893 13894 case '\075': 13895 goto __347 13896 13897 case '\052': 13898 goto __348 13899 13900 case '\041': 13901 goto __349 13902 13903 // ---- Lookbehind assertions ---- 13904 13905 // (?< followed by = or ! or * is a lookbehind assertion. Otherwise (?< 13906 // is the start of the name of a capturing group. 13907 13908 case '\074': 13909 goto __350 13910 13911 // ---- Define a named group ---- 13912 13913 // A named group may be defined as (?'name') or (?<name>). In the latter 13914 // case we jump to DEFINE_NAME from the disambiguation of (?< above with the 13915 // terminator set to '>'. 13916 13917 case '\047': 13918 goto __351 13919 } 13920 goto __328 13921 13922 __329: 13923 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\055' && (int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 > int64(1) && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) <= '\071')) { 13924 goto __352 13925 } 13926 goto RECURSION_BYNUMBER 13927 __352: 13928 ; // The + case is handled by CHAR_PLUS 13929 13930 // We now have either (?| or a (possibly empty) option setting, 13931 // optionally followed by a non-capturing group. 13932 13933 nest_depth++ 13934 if !(top_nest == uintptr(0)) { 13935 goto __353 13936 } 13937 top_nest = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace 13938 goto __354 13939 __353: 13940 if !(libc.PreIncUintptr(&top_nest, 12) >= end_nests) { 13941 goto __355 13942 } 13943 13944 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR84 13945 goto FAILED 13946 __355: 13947 ; 13948 __354: 13949 ; 13950 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 13951 (*Tnest_save)(unsafe.Pointer(top_nest)).Fflags = Tuint16_t(0) 13952 (*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) 13953 13954 // Start of non-capturing group that resets the capture count for each 13955 // branch. 13956 13957 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\174') { 13958 goto __356 13959 } 13960 13961 (*Tnest_save)(unsafe.Pointer(top_nest)).Freset_group = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 13962 (*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 13963 *(*Tuint16_t)(unsafe.Pointer(top_nest + 6)) |= uint16(DNSF_RESET) 13964 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_DUPCAPUSED) 13965 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 13966 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 13967 goto __357 13968 __356: 13969 13970 hyphenok = DTRUE 13971 oldoptions = options 13972 13973 (*Tnest_save)(unsafe.Pointer(top_nest)).Freset_group = Tuint16_t(0) 13974 (*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group = Tuint16_t(0) 13975 *(*Tuint32_t)(unsafe.Pointer(bp + 92 /* set */)) = libc.AssignPtrUint32(bp+96 /* unset */, Tuint32_t(0)) 13976 optset = bp + 92 /* &set */ 13977 13978 // ^ at the start unsets imnsx and disables the subsequent use of - 13979 13980 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\136') { 13981 goto __358 13982 } 13983 13984 options = options & libc.CplUint32(DPCRE2_CASELESS|DPCRE2_MULTILINE|DPCRE2_NO_AUTO_CAPTURE|DPCRE2_DOTALL|DPCRE2_EXTENDED|DPCRE2_EXTENDED_MORE) 13985 hyphenok = DFALSE 13986 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 13987 __358: 13988 ; 13989 13990 __359: 13991 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\072') { 13992 goto __360 13993 } 13994 13995 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) { 13996 case '\055': 13997 goto __362 13998 13999 case '\112': 14000 goto __363 14001 14002 case '\151': 14003 goto __364 14004 case '\155': 14005 goto __365 14006 case '\156': 14007 goto __366 14008 case '\163': 14009 goto __367 14010 case '\125': 14011 goto __368 14012 14013 // If x appears twice it sets the extended extended option. 14014 14015 case '\170': 14016 goto __369 14017 14018 default: 14019 goto __370 14020 } 14021 goto __361 14022 14023 __362: 14024 if !!(hyphenok != 0) { 14025 goto __371 14026 } 14027 14028 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR94 14029 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Correct the offset 14030 goto FAILED 14031 __371: 14032 ; 14033 optset = bp + 96 /* &unset */ 14034 hyphenok = DFALSE 14035 goto __361 14036 14037 __363: // Record that it changed in the external options 14038 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_DUPNAMES 14039 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_JCHANGED) 14040 goto __361 14041 14042 __364: 14043 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_CASELESS 14044 goto __361 14045 __365: 14046 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_MULTILINE 14047 goto __361 14048 __366: 14049 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_NO_AUTO_CAPTURE 14050 goto __361 14051 __367: 14052 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_DOTALL 14053 goto __361 14054 __368: 14055 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_UNGREEDY 14056 goto __361 14057 14058 // If x appears twice it sets the extended extended option. 14059 14060 __369: 14061 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_EXTENDED 14062 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\170') { 14063 goto __372 14064 } 14065 14066 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_EXTENDED_MORE 14067 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14068 __372: 14069 ; 14070 goto __361 14071 14072 __370: 14073 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR11 14074 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Correct the offset 14075 goto FAILED 14076 __361: 14077 ; 14078 goto __359 14079 __360: 14080 ; 14081 14082 // If we are setting extended without extended-more, ensure that any 14083 // existing extended-more gets unset. Also, unsetting extended must also 14084 // unset extended-more. 14085 14086 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 92))&(DPCRE2_EXTENDED|DPCRE2_EXTENDED_MORE) == DPCRE2_EXTENDED || *(*Tuint32_t)(unsafe.Pointer(bp + 96))&DPCRE2_EXTENDED != Tuint32_t(0)) { 14087 goto __373 14088 } 14089 *(*Tuint32_t)(unsafe.Pointer(bp + 96 /* unset */)) |= DPCRE2_EXTENDED_MORE 14090 __373: 14091 ; 14092 14093 options = (options | *(*Tuint32_t)(unsafe.Pointer(bp + 92))) & ^*(*Tuint32_t)(unsafe.Pointer(bp + 96)) 14094 14095 // If the options ended with ')' this is not the start of a nested 14096 // group with option changes, so the options change at this level. 14097 // In this case, if the previous level set up a nest block, discard the 14098 // one we have just created. Otherwise adjust it for the previous level. 14099 // If the options ended with ':' we are starting a non-capturing group, 14100 // possibly with an options setting. 14101 14102 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 14103 goto __374 14104 } 14105 goto UNCLOSED_PARENTHESIS 14106 __374: 14107 ; 14108 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) == '\051') { 14109 goto __375 14110 } 14111 14112 nest_depth-- // This is not a nested group after all. 14113 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)) { 14114 goto __377 14115 } 14116 top_nest -= 12 14117 goto __378 14118 __377: 14119 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 14120 __378: 14121 ; 14122 goto __376 14123 __375: 14124 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 14125 __376: 14126 ; 14127 14128 // If nothing changed, no need to record. 14129 14130 if !(options != oldoptions) { 14131 goto __379 14132 } 14133 14134 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_OPTIONS 14135 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = options 14136 __379: 14137 ; 14138 __357: 14139 ; // End options processing 14140 goto __328 // End default case after (? 14141 14142 // ---- Python syntax support ---- 14143 14144 __330: 14145 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend) { 14146 goto __380 14147 } 14148 goto UNCLOSED_PARENTHESIS 14149 __380: 14150 ; 14151 14152 // (?P<name> is the same as (?<name>, which defines a named group. 14153 14154 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\074') { 14155 goto __381 14156 } 14157 14158 terminator = Tuint32_t('\076') 14159 goto DEFINE_NAME 14160 __381: 14161 ; 14162 14163 // (?P>name) is the same as (?&name), which is a recursion or subroutine 14164 // call. 14165 14166 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\076') { 14167 goto __382 14168 } 14169 goto RECURSE_BY_NAME 14170 __382: 14171 ; 14172 14173 // (?P=name) is the same as \k<name>, a back reference by name. Anything 14174 // else after (?P is an error. 14175 14176 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\075') { 14177 goto __383 14178 } 14179 14180 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR41 14181 goto FAILED 14182 __383: 14183 ; 14184 if !!(read_name(tls, bp+8, ptrend, utf, uint32('\051'), bp+56, bp+64, 14185 bp+72, bp+20, cb) != 0) { 14186 goto __384 14187 } 14188 goto FAILED 14189 __384: 14190 ; 14191 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_BACKREF_BYNAME 14192 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 72 /* namelen */)) 14193 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14194 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14195 14196 okquantifier = DTRUE 14197 goto __328 // End of (?P processing 14198 14199 // ---- Recursion/subroutine calls by number ---- 14200 14201 __331: 14202 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 0 // (?R) == (?R0) 14203 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14204 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 14205 goto __385 14206 } 14207 14208 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR58 14209 goto FAILED 14210 __385: 14211 ; 14212 goto SET_RECURSION 14213 14214 // An item starting (?- followed by a digit comes here via the "default" 14215 // case because (?- followed by a non-digit is an options setting. 14216 14217 __332: 14218 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 < int64(2) || !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) <= '\071')) { 14219 goto __386 14220 } 14221 14222 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR29 // Missing number 14223 goto FAILED 14224 __386: 14225 ; 14226 // Fall through 14227 14228 __333: 14229 __334: 14230 __335: 14231 __336: 14232 __337: 14233 __338: 14234 __339: 14235 __340: 14236 __341: 14237 __342: 14238 RECURSION_BYNUMBER: 14239 if !!(read_number(tls, bp+8, ptrend, 14240 func() int32 { 14241 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071' { 14242 return -1 14243 } 14244 return int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 14245 }(), 14246 DMAX_GROUP_NUMBER, ERR61, 14247 bp+48, bp+20) != 0) { 14248 goto __387 14249 } 14250 goto FAILED 14251 __387: 14252 ; 14253 if !(*(*int32)(unsafe.Pointer(bp + 48)) < 0) { 14254 goto __388 14255 } /* NB (?0) is permitted */ 14256 14257 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR15 // Unknown group 14258 goto FAILED_BACK 14259 __388: 14260 ; 14261 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 14262 goto __389 14263 } 14264 goto UNCLOSED_PARENTHESIS 14265 __389: 14266 ; 14267 14268 SET_RECURSION: 14269 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_RECURSE | Tuint32_t(*(*int32)(unsafe.Pointer(bp + 48))) 14270 *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 14271 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14272 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14273 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14274 14275 okquantifier = DTRUE 14276 goto __328 // End of recursive call by number handling 14277 14278 // ---- Recursion/subroutine calls by name ---- 14279 14280 __343: 14281 RECURSE_BY_NAME: 14282 if !!(read_name(tls, bp+8, ptrend, utf, uint32('\051'), bp+56, bp+64, 14283 bp+72, bp+20, cb) != 0) { 14284 goto __390 14285 } 14286 goto FAILED 14287 __390: 14288 ; 14289 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_RECURSE_BYNAME 14290 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 72 /* namelen */)) 14291 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14292 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14293 14294 okquantifier = DTRUE 14295 goto __328 14296 14297 // ---- Callout with numerical or string argument ---- 14298 14299 __344: 14300 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend) { 14301 goto __391 14302 } 14303 goto UNCLOSED_PARENTHESIS 14304 __391: 14305 ; 14306 14307 // If the previous item was a condition starting (?(? an assertion, 14308 // optionally preceded by a callout, is expected. This is checked later on, 14309 // during actual compilation. However we need to identify this kind of 14310 // assertion in this pass because it must not be qualified. The value of 14311 // expect_cond_assert is set to 2 after (?(? is processed. We decrement it 14312 // for a callout - still leaving a positive value that identifies the 14313 // assertion. Multiple callouts or any other items will make it zero or 14314 // less, which doesn't matter because they will cause an error later. 14315 14316 expect_cond_assert = prev_expect_cond_assert - 1 14317 14318 // If previous_callout is not NULL, it means this follows a previous 14319 // callout. If it was a manual callout, do nothing; this means its "length 14320 // of next pattern item" field will remain zero. If it was an automatic 14321 // callout, abolish it. 14322 14323 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)) { 14324 goto __392 14325 } 14326 parsed_pattern = *(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) 14327 __392: 14328 ; 14329 14330 // Save for updating next pattern item length, and skip one item before 14331 // completing. 14332 14333 *(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) = parsed_pattern 14334 after_manual_callout = 1 14335 14336 // Handle a string argument; specific delimiter is required. 14337 14338 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051' && !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071')) { 14339 goto __393 14340 } 14341 14342 startptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 14343 14344 delimiter = Tuint32_t(0) 14345 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 0 14346 __395: 14347 if !(X_pcre2_callout_start_delims_8[*(*int32)(unsafe.Pointer(bp + 48))] != Tuint32_t(0)) { 14348 goto __397 14349 } 14350 14351 if !(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == X_pcre2_callout_start_delims_8[*(*int32)(unsafe.Pointer(bp + 48))]) { 14352 goto __398 14353 } 14354 14355 delimiter = X_pcre2_callout_end_delims_8[*(*int32)(unsafe.Pointer(bp + 48 /* i */))] 14356 goto __397 14357 __398: 14358 ; 14359 goto __396 14360 __396: 14361 *(*int32)(unsafe.Pointer(bp + 48 /* i */))++ 14362 goto __395 14363 goto __397 14364 __397: 14365 ; 14366 if !(delimiter == Tuint32_t(0)) { 14367 goto __399 14368 } 14369 14370 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR82 14371 goto FAILED 14372 __399: 14373 ; 14374 14375 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_CALLOUT_STRING 14376 parsed_pattern += 4 * uintptr(3) // Skip pattern info 14377 14378 __400: 14379 14380 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend) { 14381 goto __403 14382 } 14383 14384 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR81 14385 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) = startptr // To give a more useful message 14386 goto FAILED 14387 __403: 14388 ; 14389 if !(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == delimiter && (libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend || Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != delimiter)) { 14390 goto __404 14391 } 14392 goto __402 14393 __404: 14394 ; 14395 goto __401 14396 __401: 14397 goto __400 14398 goto __402 14399 __402: 14400 ; 14401 14402 calloutlength = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))) - int64(startptr)) / 1) 14403 if !(calloutlength > uint64(4294967295)) { 14404 goto __405 14405 } 14406 14407 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR72 14408 goto FAILED 14409 __405: 14410 ; 14411 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(calloutlength) 14412 *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) = Tsize_t((int64(startptr) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 14413 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14414 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14415 14416 goto __394 14417 __393: 14418 14419 n = 0 14420 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_CALLOUT_NUMBER // Numerical callout 14421 parsed_pattern += 4 * uintptr(3) // Skip pattern info 14422 __406: 14423 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071')) { 14424 goto __407 14425 } 14426 14427 n = n*10 + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) - '\060' 14428 if !(n > 255) { 14429 goto __408 14430 } 14431 14432 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR38 14433 goto FAILED 14434 __408: 14435 ; 14436 goto __406 14437 __407: 14438 ; 14439 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(n) 14440 __394: 14441 ; 14442 14443 // Both formats must have a closing parenthesis 14444 14445 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 14446 goto __409 14447 } 14448 14449 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR39 14450 goto FAILED 14451 __409: 14452 ; 14453 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14454 14455 // Remember the offset to the next item in the pattern, and set a default 14456 // length. This should get updated after the next item is read. 14457 14458 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) + 1*4)) = Tuint32_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 14459 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) + 2*4)) = Tuint32_t(0) 14460 goto __328 // End callout 14461 14462 // ---- Conditional group ---- 14463 14464 // A condition can be an assertion, a number (referring to a numbered 14465 // group's having been set), a name (referring to a named group), or 'R', 14466 // referring to overall recursion. R<digits> and R&name are also permitted 14467 // for recursion state tests. Numbers may be preceded by + or - to specify a 14468 // relative group number. 14469 // 14470 // There are several syntaxes for testing a named group: (?(name)) is used 14471 // by Python; Perl 5.10 onwards uses (?(<name>) or (?('name')). 14472 // 14473 // There are two unfortunate ambiguities. 'R' can be the recursive thing or 14474 // the name 'R' (and similarly for 'R' followed by digits). 'DEFINE' can be 14475 // the Perl DEFINE feature or the Python named test. We look for a name 14476 // first; if not found, we try the other case. 14477 // 14478 // For compatibility with auto-callouts, we allow a callout to be specified 14479 // before a condition that is an assertion. 14480 14481 __345: 14482 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend) { 14483 goto __410 14484 } 14485 goto UNCLOSED_PARENTHESIS 14486 __410: 14487 ; 14488 nest_depth++ 14489 14490 // If the next character is ? or * there must be an assertion next 14491 // (optionally preceded by a callout). We do not check this here, but 14492 // instead we set expect_cond_assert to 2. If this is still greater than 14493 // zero (callouts decrement it) when the next assertion is read, it will be 14494 // marked as a condition that must not be repeated. A value greater than 14495 // zero also causes checking that an assertion (possibly with callout) 14496 // follows. 14497 14498 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\077' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\052') { 14499 goto __411 14500 } 14501 14502 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_COND_ASSERT 14503 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Pull pointer back to the opening parenthesis. 14504 expect_cond_assert = 2 14505 goto __328 // End of conditional 14506 __411: 14507 ; 14508 14509 // Handle (?([+-]number)... 14510 14511 if !(read_number(tls, bp+8, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+48, 14512 bp+20) != 0) { 14513 goto __412 14514 } 14515 14516 if !(*(*int32)(unsafe.Pointer(bp + 48)) <= 0) { 14517 goto __414 14518 } 14519 14520 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR15 14521 goto FAILED 14522 __414: 14523 ; 14524 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_COND_NUMBER 14525 *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))-int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1 - int64(2)) 14526 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14527 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14528 14529 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*int32)(unsafe.Pointer(bp + 48 /* i */))) 14530 goto __413 14531 __412: 14532 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 14533 goto __415 14534 } 14535 goto FAILED 14536 goto __416 14537 __415: 14538 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(10) && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ts+615, uint64(7)) == 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 7))) != '\051') { 14539 goto __417 14540 } 14541 14542 ge = Tuint32_t(0) 14543 *(*int32)(unsafe.Pointer(bp + 100 /* major */)) = 0 14544 minor = 0 14545 14546 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(7) 14547 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\076') { 14548 goto __419 14549 } 14550 14551 ge = Tuint32_t(1) 14552 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14553 __419: 14554 ; 14555 14556 // NOTE: cannot write IS_DIGIT(*(++ptr)) here because IS_DIGIT 14557 // references its argument twice. 14558 14559 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\075' || func() bool { 14560 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))++ 14561 return !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071') 14562 }()) { 14563 goto __420 14564 } 14565 goto BAD_VERSION_CONDITION 14566 __420: 14567 ; 14568 14569 if !!(read_number(tls, bp+8, ptrend, -1, uint32(1000), ERR79, bp+100, bp+20) != 0) { 14570 goto __421 14571 } 14572 goto FAILED 14573 __421: 14574 ; 14575 14576 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 14577 goto __422 14578 } 14579 goto BAD_VERSION_CONDITION 14580 __422: 14581 ; 14582 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\056') { 14583 goto __423 14584 } 14585 14586 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend || !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071')) { 14587 goto __424 14588 } 14589 goto BAD_VERSION_CONDITION 14590 __424: 14591 ; 14592 minor = (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) - '\060') * 10 14593 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 14594 goto __425 14595 } 14596 goto BAD_VERSION_CONDITION 14597 __425: 14598 ; 14599 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071') { 14600 goto __426 14601 } 14602 minor = minor + (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) - '\060') 14603 __426: 14604 ; 14605 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 14606 goto __427 14607 } 14608 goto BAD_VERSION_CONDITION 14609 __427: 14610 ; 14611 __423: 14612 ; 14613 14614 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_COND_VERSION 14615 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = ge 14616 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*int32)(unsafe.Pointer(bp + 100 /* major */))) 14617 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(minor) 14618 goto __418 14619 __417: 14620 14621 was_r_ampersand = DFALSE 14622 14623 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\122' && (int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 > int64(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) == '\046') { 14624 goto __428 14625 } 14626 14627 terminator = Tuint32_t('\051') 14628 was_r_ampersand = DTRUE 14629 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14630 goto __429 14631 __428: 14632 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\074') { 14633 goto __430 14634 } 14635 terminator = Tuint32_t('\076') 14636 goto __431 14637 __430: 14638 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\047') { 14639 goto __432 14640 } 14641 terminator = Tuint32_t('\047') 14642 goto __433 14643 __432: 14644 14645 terminator = Tuint32_t('\051') 14646 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Point to char before name 14647 __433: 14648 ; 14649 __431: 14650 ; 14651 __429: 14652 ; 14653 if !!(read_name(tls, bp+8, ptrend, utf, terminator, bp+56, bp+64, bp+72, 14654 bp+20, cb) != 0) { 14655 goto __434 14656 } 14657 goto FAILED 14658 __434: 14659 ; 14660 14661 // Handle (?(R&name) 14662 14663 if !(was_r_ampersand != 0) { 14664 goto __435 14665 } 14666 14667 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_COND_RNAME 14668 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Back to closing parens 14669 goto __436 14670 __435: 14671 if !(terminator == Tuint32_t('\051')) { 14672 goto __437 14673 } 14674 14675 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 72)) == Tuint32_t(6) && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)), ts+623, uint64(6)) == 0) { 14676 goto __439 14677 } 14678 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_COND_DEFINE 14679 goto __440 14680 __439: 14681 14682 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 1 14683 __441: 14684 if !(*(*int32)(unsafe.Pointer(bp + 48)) < int32(*(*Tuint32_t)(unsafe.Pointer(bp + 72)))) { 14685 goto __443 14686 } 14687 if !!(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)) + uintptr(*(*int32)(unsafe.Pointer(bp + 48)))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)) + uintptr(*(*int32)(unsafe.Pointer(bp + 48)))))) <= '\071') { 14688 goto __444 14689 } 14690 goto __443 14691 __444: 14692 ; 14693 goto __442 14694 __442: 14695 *(*int32)(unsafe.Pointer(bp + 48 /* i */))++ 14696 goto __441 14697 goto __443 14698 __443: 14699 ; 14700 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = func() uint32 { 14701 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64))))) == '\122' && *(*int32)(unsafe.Pointer(bp + 48)) >= int32(*(*Tuint32_t)(unsafe.Pointer(bp + 72))) { 14702 return DMETA_COND_RNUMBER 14703 } 14704 return DMETA_COND_NAME 14705 }() 14706 __440: 14707 ; 14708 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Back to closing parens 14709 goto __438 14710 __437: 14711 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_COND_NAME 14712 __438: 14713 ; 14714 __436: 14715 ; 14716 14717 // All these cases except DEFINE end with the name length and offset; 14718 // DEFINE just has an offset (for the "too many branches" error). 14719 14720 if !(*(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) != DMETA_COND_DEFINE) { 14721 goto __445 14722 } 14723 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 72 /* namelen */)) 14724 __445: 14725 ; 14726 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14727 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14728 14729 __418: 14730 ; 14731 __416: 14732 ; 14733 __413: 14734 ; // End cases that read a name 14735 14736 // Check the closing parenthesis of the condition 14737 14738 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 14739 goto __446 14740 } 14741 14742 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR24 14743 goto FAILED 14744 __446: 14745 ; 14746 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14747 goto __328 // End of condition processing 14748 14749 // ---- Atomic group ---- 14750 14751 __346: 14752 ATOMIC_GROUP: // Come from (*atomic: 14753 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ATOMIC 14754 nest_depth++ 14755 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14756 goto __328 14757 14758 // ---- Lookahead assertions ---- 14759 14760 __347: 14761 POSITIVE_LOOK_AHEAD: // Come from (*pla: 14762 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEAD 14763 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14764 goto POST_ASSERTION 14765 14766 __348: 14767 POSITIVE_NONATOMIC_LOOK_AHEAD: // Come from (?* 14768 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEAD_NA 14769 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14770 goto POST_ASSERTION 14771 14772 __349: 14773 NEGATIVE_LOOK_AHEAD: // Come from (*nla: 14774 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEADNOT 14775 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14776 goto POST_ASSERTION 14777 14778 // ---- Lookbehind assertions ---- 14779 14780 // (?< followed by = or ! or * is a lookbehind assertion. Otherwise (?< 14781 // is the start of the name of a capturing group. 14782 14783 __350: 14784 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 <= int64(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) != '\075' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) != '\041' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) != '\052') { 14785 goto __447 14786 } 14787 14788 terminator = Tuint32_t('\076') 14789 goto DEFINE_NAME 14790 __447: 14791 ; 14792 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 14793 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) == '\075' { 14794 return DMETA_LOOKBEHIND 14795 } 14796 return func() uint32 { 14797 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) == '\041' { 14798 return DMETA_LOOKBEHINDNOT 14799 } 14800 return DMETA_LOOKBEHIND_NA 14801 }() 14802 }() 14803 14804 POST_LOOKBEHIND: // Come from (*plb: (*naplb: and (*nlb: 14805 *(*TBOOL)(unsafe.Pointer(has_lookbehind)) = DTRUE 14806 *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))-int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1 - int64(2)) 14807 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14808 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14809 14810 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 14811 // Fall through 14812 14813 // If the previous item was a condition starting (?(? an assertion, 14814 // optionally preceded by a callout, is expected. This is checked later on, 14815 // during actual compilation. However we need to identify this kind of 14816 // assertion in this pass because it must not be qualified. The value of 14817 // expect_cond_assert is set to 2 after (?(? is processed. We decrement it 14818 // for a callout - still leaving a positive value that identifies the 14819 // assertion. Multiple callouts or any other items will make it zero or 14820 // less, which doesn't matter because they will cause an error later. 14821 14822 POST_ASSERTION: 14823 nest_depth++ 14824 if !(prev_expect_cond_assert > 0) { 14825 goto __448 14826 } 14827 14828 if !(top_nest == uintptr(0)) { 14829 goto __449 14830 } 14831 top_nest = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace 14832 goto __450 14833 __449: 14834 if !(libc.PreIncUintptr(&top_nest, 12) >= end_nests) { 14835 goto __451 14836 } 14837 14838 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR84 14839 goto FAILED 14840 __451: 14841 ; 14842 __450: 14843 ; 14844 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 14845 (*Tnest_save)(unsafe.Pointer(top_nest)).Fflags = uint16(DNSF_CONDASSERT) 14846 (*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) 14847 __448: 14848 ; 14849 goto __328 14850 14851 // ---- Define a named group ---- 14852 14853 // A named group may be defined as (?'name') or (?<name>). In the latter 14854 // case we jump to DEFINE_NAME from the disambiguation of (?< above with the 14855 // terminator set to '>'. 14856 14857 __351: 14858 terminator = Tuint32_t('\047') // Terminator 14859 14860 DEFINE_NAME: 14861 if !!(read_name(tls, bp+8, ptrend, utf, terminator, bp+56, bp+64, bp+72, 14862 bp+20, cb) != 0) { 14863 goto __452 14864 } 14865 goto FAILED 14866 __452: 14867 ; 14868 14869 // We have a name for this capturing group. It is also assigned a number, 14870 // which is its primary means of identification. 14871 14872 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount >= DMAX_GROUP_NUMBER) { 14873 goto __453 14874 } 14875 14876 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR97 14877 goto FAILED 14878 __453: 14879 ; 14880 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount++ 14881 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CAPTURE | (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount 14882 nest_depth++ 14883 14884 // Check not too many names 14885 14886 if !(int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) >= DMAX_NAME_COUNT) { 14887 goto __454 14888 } 14889 14890 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR49 14891 goto FAILED 14892 __454: 14893 ; 14894 14895 // Adjust the entry size to accommodate the longest name found. 14896 14897 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 72))+Tuint32_t(DIMM2_SIZE)+Tuint32_t(1) > Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size)) { 14898 goto __455 14899 } 14900 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size = Tuint16_t(*(*Tuint32_t)(unsafe.Pointer(bp + 72)) + Tuint32_t(DIMM2_SIZE) + Tuint32_t(1)) 14901 __455: 14902 ; 14903 14904 // Scan the list to check for duplicates. For duplicate names, if the 14905 // number is the same, break the loop, which causes the name to be 14906 // discarded; otherwise, if DUPNAMES is not set, give an error. 14907 // If it is set, allow the name with a different number, but continue 14908 // scanning in case this is a duplicate with the same number. For 14909 // non-duplicate names, give an error if the number is duplicated. 14910 14911 isdupname = DFALSE 14912 ng = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 14913 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 0 14914 __456: 14915 if !(*(*int32)(unsafe.Pointer(bp + 48)) < int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 14916 goto __458 14917 } 14918 14919 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 72)) == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength) && X_pcre2_strncmp_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)), (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, Tsize_t(*(*Tuint32_t)(unsafe.Pointer(bp + 72)))) == 0) { 14920 goto __459 14921 } 14922 14923 if !((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber == (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 14924 goto __461 14925 } 14926 goto __458 14927 __461: 14928 ; 14929 if !(options&DPCRE2_DUPNAMES == Tuint32_t(0)) { 14930 goto __462 14931 } 14932 14933 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR43 14934 goto FAILED 14935 __462: 14936 ; 14937 isdupname = TBOOL(libc.AssignPtrUint16(ng+14, Tuint16_t(DTRUE))) // Mark as a duplicate 14938 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fdupnames = DTRUE // Duplicate names exist 14939 goto __460 14940 __459: 14941 if !((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber == (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 14942 goto __463 14943 } 14944 14945 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR65 14946 goto FAILED 14947 __463: 14948 ; 14949 __460: 14950 ; 14951 goto __457 14952 __457: 14953 *(*int32)(unsafe.Pointer(bp + 48 /* i */))++ 14954 ng += 16 14955 goto __456 14956 goto __458 14957 __458: 14958 ; 14959 14960 if !(*(*int32)(unsafe.Pointer(bp + 48)) < int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 14961 goto __464 14962 } 14963 goto __328 14964 __464: 14965 ; // Ignore duplicate with same number 14966 14967 // Increase the list size if necessary 14968 14969 if !(Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size) { 14970 goto __465 14971 } 14972 14973 newsize = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size * Tuint32_t(2) 14974 newspace = 14975 (*struct { 14976 f func(*libc.TLS, Tsize_t, uintptr) uintptr 14977 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Fmalloc})).f(tls, uint64(newsize)*uint64(unsafe.Sizeof(Tnamed_group_8{})), 14978 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Fmemory_data) 14979 if !(newspace == uintptr(0)) { 14980 goto __466 14981 } 14982 14983 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR21 14984 goto FAILED 14985 __466: 14986 ; 14987 14988 libc.Xmemcpy(tls, newspace, (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups, 14989 uint64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size)*uint64(unsafe.Sizeof(Tnamed_group_8{}))) 14990 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size > Tuint32_t(DNAMED_GROUP_LIST_SIZE)) { 14991 goto __467 14992 } 14993 (*struct { 14994 f func(*libc.TLS, uintptr, uintptr) 14995 })(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, 14996 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Fmemory_data) 14997 __467: 14998 ; 14999 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups = newspace 15000 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size = newsize 15001 __465: 15002 ; 15003 15004 // Add this name to the list 15005 15006 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*16)).Fname = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64 /* name */)) 15007 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*16)).Flength = Tuint16_t(*(*Tuint32_t)(unsafe.Pointer(bp + 72 /* namelen */))) 15008 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*16)).Fnumber = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount 15009 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*16)).Fisdup = Tuint16_t(isdupname) 15010 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found++ 15011 goto __328 15012 __328: 15013 ; // End of (? switch 15014 goto __84 // End of ( handling 15015 15016 // ---- Branch terminators ---- 15017 15018 // Alternation: reset the capture count if we are in a (?| group. 15019 15020 __96: 15021 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)) { 15022 goto __468 15023 } 15024 15025 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount > Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group)) { 15026 goto __469 15027 } 15028 (*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 15029 __469: 15030 ; 15031 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount = Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Freset_group) 15032 __468: 15033 ; 15034 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ALT 15035 goto __84 15036 15037 // End of group; reset the capture count to the maximum if we are in a (?| 15038 // group and/or reset the options that are tracked during parsing. Disallow 15039 // quantifier for a condition that is an assertion. 15040 15041 __97: 15042 okquantifier = DTRUE 15043 if !(top_nest != uintptr(0) && int32((*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth) == int32(nest_depth)) { 15044 goto __470 15045 } 15046 15047 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 15048 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) { 15049 goto __471 15050 } 15051 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount = Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group) 15052 __471: 15053 ; 15054 if !(uint32((*Tnest_save)(unsafe.Pointer(top_nest)).Fflags)&DNSF_CONDASSERT != uint32(0)) { 15055 goto __472 15056 } 15057 okquantifier = DFALSE 15058 __472: 15059 ; 15060 15061 if !(uint32((*Tnest_save)(unsafe.Pointer(top_nest)).Fflags)&DNSF_ATOMICSR != uint32(0)) { 15062 goto __473 15063 } 15064 15065 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15066 __473: 15067 ; 15068 15069 if !(top_nest == (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace) { 15070 goto __474 15071 } 15072 top_nest = uintptr(0) 15073 goto __475 15074 __474: 15075 top_nest -= 12 15076 __475: 15077 ; 15078 __470: 15079 ; 15080 if !(int32(nest_depth) == 0) { 15081 goto __476 15082 } /* Unmatched closing parenthesis */ 15083 15084 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR22 15085 goto FAILED_BACK 15086 __476: 15087 ; 15088 nest_depth-- 15089 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15090 goto __84 15091 __84: 15092 ; // End of switch on pattern character 15093 goto __19 15094 __20: 15095 ; // End of main character scan loop 15096 15097 // End of pattern reached. Check for missing ) at the end of a verb name. 15098 15099 if !(inverbname != 0 && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 15100 goto __477 15101 } 15102 15103 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR60 15104 goto FAILED 15105 __477: 15106 ; 15107 15108 // Manage callout for the final item 15109 15110 PARSED_END: 15111 parsed_pattern = manage_callouts(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), bp, auto_callout, 15112 parsed_pattern, cb) 15113 15114 // Insert trailing items for word and line matching (features provided for the 15115 // benefit of pcre2grep). 15116 15117 if !(extra_options&DPCRE2_EXTRA_MATCH_LINE != Tuint32_t(0)) { 15118 goto __478 15119 } 15120 15121 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15122 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_DOLLAR 15123 goto __479 15124 __478: 15125 if !(extra_options&DPCRE2_EXTRA_MATCH_WORD != Tuint32_t(0)) { 15126 goto __480 15127 } 15128 15129 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15130 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_b 15131 __480: 15132 ; 15133 __479: 15134 ; 15135 15136 // Terminate the parsed pattern, then return success if all groups are closed. 15137 // Otherwise we have unclosed parentheses. 15138 15139 if !(parsed_pattern >= parsed_pattern_end) { 15140 goto __481 15141 } 15142 15143 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR63 // Internal error (parsed pattern overflow) 15144 goto FAILED 15145 __481: 15146 ; 15147 15148 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_END 15149 if !(int32(nest_depth) == 0) { 15150 goto __482 15151 } 15152 return 0 15153 __482: 15154 ; 15155 15156 UNCLOSED_PARENTHESIS: 15157 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR14 15158 15159 // Come here for all failures. 15160 15161 FAILED: 15162 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 15163 return *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) 15164 15165 // Some errors need to indicate the previous character. 15166 15167 FAILED_BACK: 15168 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- 15169 goto FAILED 15170 15171 // This failure happens several times. 15172 15173 BAD_VERSION_CONDITION: 15174 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR79 15175 goto FAILED 15176 return int32(0) 15177 } 15178 15179 // ************************************************ 15180 // 15181 // Find first significant opcode * 15182 // 15183 15184 // This is called by several functions that scan a compiled expression looking 15185 // for a fixed first character, or an anchoring opcode etc. It skips over things 15186 // that do not influence this. For some calls, it makes sense to skip negative 15187 // forward and all backward assertions, and also the \b assertion; for others it 15188 // does not. 15189 // 15190 // Arguments: 15191 // code pointer to the start of the group 15192 // skipassert TRUE if certain assertions are to be skipped 15193 // 15194 // Returns: pointer to the first significant opcode 15195 15196 func first_significant_code(tls *libc.TLS, code TPCRE2_SPTR8, skipassert TBOOL) uintptr { /* pcre2_compile.c:4845:25: */ 15197 for { 15198 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) { 15199 case OP_ASSERT_NOT: 15200 fallthrough 15201 case OP_ASSERTBACK: 15202 fallthrough 15203 case OP_ASSERTBACK_NOT: 15204 fallthrough 15205 case OP_ASSERTBACK_NA: 15206 if !(skipassert != 0) { 15207 return code 15208 } 15209 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 15210 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 15211 } 15212 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]) 15213 break 15214 15215 case OP_WORD_BOUNDARY: 15216 fallthrough 15217 case OP_NOT_WORD_BOUNDARY: 15218 if !(skipassert != 0) { 15219 return code 15220 } 15221 fallthrough 15222 // Fall through 15223 15224 case OP_CALLOUT: 15225 fallthrough 15226 case OP_CREF: 15227 fallthrough 15228 case OP_DNCREF: 15229 fallthrough 15230 case OP_RREF: 15231 fallthrough 15232 case OP_DNRREF: 15233 fallthrough 15234 case OP_FALSE: 15235 fallthrough 15236 case OP_TRUE: 15237 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]) 15238 break 15239 15240 case OP_CALLOUT_STR: 15241 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 15242 break 15243 15244 case OP_SKIPZERO: 15245 code += TPCRE2_SPTR8(uint32(2) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) + uint32(DLINK_SIZE)) 15246 break 15247 15248 case OP_COND: 15249 fallthrough 15250 case OP_SCOND: 15251 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 15252 return code 15253 } 15254 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) + uint32(1) + uint32(DLINK_SIZE)) 15255 break 15256 15257 case OP_MARK: 15258 fallthrough 15259 case OP_COMMIT_ARG: 15260 fallthrough 15261 case OP_PRUNE_ARG: 15262 fallthrough 15263 case OP_SKIP_ARG: 15264 fallthrough 15265 case OP_THEN_ARG: 15266 code += TPCRE2_SPTR8(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) + int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))])) 15267 break 15268 15269 default: 15270 return code 15271 } 15272 } 15273 return uintptr(0) 15274 // Control never reaches here 15275 } 15276 15277 // ************************************************ 15278 // 15279 // Get othercase range * 15280 // 15281 15282 // This function is passed the start and end of a class range in UCP mode. It 15283 // searches up the characters, looking for ranges of characters in the "other" 15284 // case. Each call returns the next one, updating the start address. A character 15285 // with multiple other cases is returned on its own with a special return value. 15286 // 15287 // Arguments: 15288 // cptr points to starting character value; updated 15289 // d end value 15290 // ocptr where to put start of othercase range 15291 // odptr where to put end of othercase range 15292 // 15293 // Yield: -1 when no more 15294 // 0 when a range is returned 15295 // >0 the CASESET offset for char with multiple other cases 15296 // in this case, ocptr contains the original 15297 15298 func get_othercase_range(tls *libc.TLS, cptr uintptr, d Tuint32_t, ocptr uintptr, odptr uintptr) int32 { /* pcre2_compile.c:4932:1: */ 15299 var c Tuint32_t 15300 var othercase Tuint32_t 15301 var next Tuint32_t 15302 var co uint32 15303 15304 // Find the first character that has an other case. If it has multiple other 15305 // cases, return its case offset value. 15306 15307 for c = *(*Tuint32_t)(unsafe.Pointer(cptr)); c <= d; c++ { 15308 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) { 15309 *(*Tuint32_t)(unsafe.Pointer(ocptr)) = libc.PostIncUint32(&c, 1) // Character that has the set 15310 *(*Tuint32_t)(unsafe.Pointer(cptr)) = c // Rest of input range 15311 return int32(co) 15312 } 15313 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 { 15314 break 15315 } 15316 } 15317 15318 if c > d { 15319 return -1 15320 } // Reached end of range 15321 15322 // Found a character that has a single other case. Search for the end of the 15323 // range, which is either the end of the input range, or a character that has zero 15324 // or more than one other cases. 15325 15326 *(*Tuint32_t)(unsafe.Pointer(ocptr)) = othercase 15327 next = othercase + Tuint32_t(1) 15328 15329 for c++; c <= d; c++ { 15330 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 { 15331 break 15332 } 15333 next++ 15334 } 15335 15336 *(*Tuint32_t)(unsafe.Pointer(odptr)) = next - Tuint32_t(1) // End of othercase range 15337 *(*Tuint32_t)(unsafe.Pointer(cptr)) = c // Rest of input range 15338 return 0 15339 } 15340 15341 // ************************************************ 15342 // 15343 // Add a character or range to a class (internal) * 15344 // 15345 15346 // This function packages up the logic of adding a character or range of 15347 // characters to a class. The character values in the arguments will be within the 15348 // valid values for the current mode (8-bit, 16-bit, UTF, etc). This function is 15349 // called only from within the "add to class" group of functions, some of which 15350 // are recursive and mutually recursive. The external entry point is 15351 // add_to_class(). 15352 // 15353 // Arguments: 15354 // classbits the bit map for characters < 256 15355 // uchardptr points to the pointer for extra data 15356 // options the options word 15357 // cb compile data 15358 // start start of range character 15359 // end end of range character 15360 // 15361 // Returns: the number of < 256 characters added 15362 // the pointer to extra data is updated 15363 15364 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: */ 15365 bp := tls.Alloc(12) 15366 defer tls.Free(12) 15367 15368 // var c Tuint32_t at bp, 4 15369 15370 var classbits_end Tuint32_t = func() uint32 { 15371 if end <= Tuint32_t(0xff) { 15372 return end 15373 } 15374 return uint32(0xff) 15375 }() 15376 var n8 uint32 = uint32(0) 15377 15378 // If caseless matching is required, scan the range and process alternate 15379 // cases. In Unicode, there are 8-bit characters that have alternate cases that 15380 // are greater than 255 and vice-versa. Sometimes we can just extend the original 15381 // range. 15382 15383 if options&DPCRE2_CASELESS != Tuint32_t(0) { 15384 if options&(DPCRE2_UTF|DPCRE2_UCP) != Tuint32_t(0) { 15385 var rc int32 15386 // var oc Tuint32_t at bp+4, 4 15387 15388 // var od Tuint32_t at bp+8, 4 15389 15390 options = options & libc.CplUint32(DPCRE2_CASELESS) // Remove for recursive calls 15391 *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) = start 15392 15393 for libc.AssignInt32(&rc, get_othercase_range(tls, bp, end, bp+4, bp+8)) >= 0 { 15394 // Handle a single character that has more than one other case. 15395 15396 if rc > 0 { 15397 n8 = n8 + add_list_to_class_internal(tls, classbits, uchardptr, options, cb, 15398 uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8))+uintptr(rc)*4, *(*Tuint32_t)(unsafe.Pointer(bp + 4))) 15399 } 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 { 15400 continue 15401 } else if *(*Tuint32_t)(unsafe.Pointer(bp + 4)) < start && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) >= start-Tuint32_t(1) { 15402 start = *(*Tuint32_t)(unsafe.Pointer(bp + 4 /* oc */)) 15403 } else if *(*Tuint32_t)(unsafe.Pointer(bp + 8)) > end && *(*Tuint32_t)(unsafe.Pointer(bp + 4)) <= end+Tuint32_t(1) { 15404 end = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* od */)) // Extend upwards 15405 if end > classbits_end { 15406 classbits_end = func() uint32 { 15407 if end <= Tuint32_t(0xff) { 15408 return end 15409 } 15410 return uint32(0xff) 15411 }() 15412 } 15413 } else { 15414 n8 = n8 + add_to_class_internal(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(bp + 4)), *(*Tuint32_t)(unsafe.Pointer(bp + 8))) 15415 } 15416 } 15417 } else { 15418 15419 // Not UTF mode 15420 15421 for *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) = start; *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) <= classbits_end; *(*Tuint32_t)(unsafe.Pointer(bp /* c */))++ { 15422 *(*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)) 15423 n8++ 15424 } 15425 } 15426 } 15427 15428 // Now handle the originally supplied range. Adjust the final value according 15429 // to the bit length - this means that the same lists of (e.g.) horizontal spaces 15430 // can be used in all cases. 15431 15432 if options&DPCRE2_UTF == Tuint32_t(0) && end > uint32(0xffffffff)>>(32-DPCRE2_CODE_UNIT_WIDTH) { 15433 end = uint32(0xffffffff) >> (32 - DPCRE2_CODE_UNIT_WIDTH) 15434 } 15435 15436 if start > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start && end < (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end { 15437 return n8 15438 } 15439 15440 // Use the bitmap for characters < 256. Otherwise use extra data. 15441 15442 for *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) = start; *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) <= classbits_end; *(*Tuint32_t)(unsafe.Pointer(bp /* c */))++ { 15443 // Regardless of start, c will always be <= 255. 15444 *(*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))) 15445 n8++ 15446 } 15447 15448 if start <= Tuint32_t(0xff) { 15449 start = Tuint32_t(0xff + 1) 15450 } 15451 15452 if end >= start { 15453 var uchardata uintptr = *(*uintptr)(unsafe.Pointer(uchardptr)) 15454 15455 if options&DPCRE2_UTF != Tuint32_t(0) { 15456 if start < end { 15457 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&uchardata, 1))) = TPCRE2_UCHAR8(DXCL_RANGE) 15458 uchardata += uintptr(X_pcre2_ord2utf_8(tls, start, uchardata)) 15459 uchardata += uintptr(X_pcre2_ord2utf_8(tls, end, uchardata)) 15460 } else if start == end { 15461 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&uchardata, 1))) = TPCRE2_UCHAR8(DXCL_SINGLE) 15462 uchardata += uintptr(X_pcre2_ord2utf_8(tls, start, uchardata)) 15463 } 15464 } else { 15465 } 15466 *(*uintptr)(unsafe.Pointer(uchardptr)) = uchardata // Updata extra data pointer 15467 } 15468 15469 return n8 // Number of 8-bit characters 15470 } 15471 15472 // ************************************************ 15473 // 15474 // Add a list of characters to a class (internal) * 15475 // 15476 15477 // This function is used for adding a list of case-equivalent characters to a 15478 // class when in UTF mode. This function is called only from within 15479 // add_to_class_internal(), with which it is mutually recursive. 15480 // 15481 // Arguments: 15482 // classbits the bit map for characters < 256 15483 // uchardptr points to the pointer for extra data 15484 // options the options word 15485 // cb contains pointers to tables etc. 15486 // p points to row of 32-bit values, terminated by NOTACHAR 15487 // except character to omit; this is used when adding lists of 15488 // case-equivalent characters to avoid including the one we 15489 // already know about 15490 // 15491 // Returns: the number of < 256 characters added 15492 // the pointer to extra data is updated 15493 15494 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: */ 15495 var n8 uint32 = uint32(0) 15496 for *(*Tuint32_t)(unsafe.Pointer(p)) < DNOTACHAR { 15497 var n uint32 = uint32(0) 15498 if *(*Tuint32_t)(unsafe.Pointer(p)) != except { 15499 for *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n+uint32(1))*4)) == *(*Tuint32_t)(unsafe.Pointer(p))+n+Tuint32_t(1) { 15500 n++ 15501 } 15502 n8 = n8 + add_to_class_internal(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(p)), *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n)*4))) 15503 } 15504 p += 4 * uintptr(n+uint32(1)) 15505 } 15506 return n8 15507 } 15508 15509 // ************************************************ 15510 // 15511 // External entry point for add range to class * 15512 // 15513 15514 // This function sets the overall range so that the internal functions can try 15515 // to avoid duplication when handling case-independence. 15516 // 15517 // Arguments: 15518 // classbits the bit map for characters < 256 15519 // uchardptr points to the pointer for extra data 15520 // options the options word 15521 // cb compile data 15522 // start start of range character 15523 // end end of range character 15524 // 15525 // Returns: the number of < 256 characters added 15526 // the pointer to extra data is updated 15527 15528 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: */ 15529 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start = start 15530 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end = end 15531 return add_to_class_internal(tls, classbits, uchardptr, options, cb, start, end) 15532 } 15533 15534 // ************************************************ 15535 // 15536 // External entry point for add list to class * 15537 // 15538 15539 // This function is used for adding a list of horizontal or vertical whitespace 15540 // characters to a class. The list must be in order so that ranges of characters 15541 // can be detected and handled appropriately. This function sets the overall range 15542 // so that the internal functions can try to avoid duplication when handling 15543 // case-independence. 15544 // 15545 // Arguments: 15546 // classbits the bit map for characters < 256 15547 // uchardptr points to the pointer for extra data 15548 // options the options word 15549 // cb contains pointers to tables etc. 15550 // p points to row of 32-bit values, terminated by NOTACHAR 15551 // except character to omit; this is used when adding lists of 15552 // case-equivalent characters to avoid including the one we 15553 // already know about 15554 // 15555 // Returns: the number of < 256 characters added 15556 // the pointer to extra data is updated 15557 15558 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: */ 15559 var n8 uint32 = uint32(0) 15560 for *(*Tuint32_t)(unsafe.Pointer(p)) < DNOTACHAR { 15561 var n uint32 = uint32(0) 15562 if *(*Tuint32_t)(unsafe.Pointer(p)) != except { 15563 for *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n+uint32(1))*4)) == *(*Tuint32_t)(unsafe.Pointer(p))+n+Tuint32_t(1) { 15564 n++ 15565 } 15566 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start = *(*Tuint32_t)(unsafe.Pointer(p)) 15567 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end = *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n)*4)) 15568 n8 = n8 + add_to_class_internal(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(p)), *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n)*4))) 15569 } 15570 p += 4 * uintptr(n+uint32(1)) 15571 } 15572 return n8 15573 } 15574 15575 // ************************************************ 15576 // 15577 // Add characters not in a list to a class * 15578 // 15579 15580 // This function is used for adding the complement of a list of horizontal or 15581 // vertical whitespace to a class. The list must be in order. 15582 // 15583 // Arguments: 15584 // classbits the bit map for characters < 256 15585 // uchardptr points to the pointer for extra data 15586 // options the options word 15587 // cb contains pointers to tables etc. 15588 // p points to row of 32-bit values, terminated by NOTACHAR 15589 // 15590 // Returns: the number of < 256 characters added 15591 // the pointer to extra data is updated 15592 15593 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: */ 15594 var utf TBOOL = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 15595 var n8 uint32 = uint32(0) 15596 if *(*Tuint32_t)(unsafe.Pointer(p)) > Tuint32_t(0) { 15597 n8 = n8 + add_to_class(tls, classbits, uchardptr, options, cb, uint32(0), *(*Tuint32_t)(unsafe.Pointer(p))-Tuint32_t(1)) 15598 } 15599 for *(*Tuint32_t)(unsafe.Pointer(p)) < DNOTACHAR { 15600 for *(*Tuint32_t)(unsafe.Pointer(p + 1*4)) == *(*Tuint32_t)(unsafe.Pointer(p))+Tuint32_t(1) { 15601 p += 4 15602 } 15603 n8 = n8 + add_to_class(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(p))+Tuint32_t(1), 15604 func() uint32 { 15605 if *(*Tuint32_t)(unsafe.Pointer(p + 1*4)) == DNOTACHAR { 15606 return func() uint32 { 15607 if utf != 0 { 15608 return 0x10ffff 15609 } 15610 return 0xffffffff 15611 }() 15612 } 15613 return *(*Tuint32_t)(unsafe.Pointer(p + 1*4)) - Tuint32_t(1) 15614 }()) 15615 p += 4 15616 } 15617 return n8 15618 } 15619 15620 // ************************************************ 15621 // 15622 // Find details of duplicate group names * 15623 // 15624 15625 // This is called from compile_branch() when it needs to know the index and 15626 // count of duplicates in the names table when processing named backreferences, 15627 // either directly, or as conditions. 15628 // 15629 // Arguments: 15630 // name points to the name 15631 // length the length of the name 15632 // indexptr where to put the index 15633 // countptr where to put the count of duplicates 15634 // errorcodeptr where to put an error code 15635 // cb the compile block 15636 // 15637 // Returns: TRUE if OK, FALSE if not, error code set 15638 15639 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: */ 15640 var i Tuint32_t 15641 var groupnumber Tuint32_t 15642 var count int32 15643 var slot uintptr = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_table 15644 15645 // Find the first entry in the table 15646 15647 for i = Tuint32_t(0); i < Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found); i++ { 15648 if X_pcre2_strncmp_8(tls, name, slot+uintptr(DIMM2_SIZE), uint64(length)) == 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + uintptr(Tuint32_t(DIMM2_SIZE)+length)))) == 0 { 15649 break 15650 } 15651 slot += uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size) 15652 } 15653 15654 // This should not occur, because this function is called only when we know we 15655 // have duplicate names. Give an internal error. 15656 15657 if i >= Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) { 15658 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR53 15659 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = Tsize_t((int64(name) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 15660 return DFALSE 15661 } 15662 15663 // Record the index and then see how many duplicates there are, updating the 15664 // backref map and maximum back reference as we do. 15665 15666 *(*int32)(unsafe.Pointer(indexptr)) = int32(i) 15667 count = 0 15668 15669 for { 15670 count++ 15671 groupnumber = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1)))) 15672 *(*Tuint32_t)(unsafe.Pointer(cb + 252)) |= func() uint32 { 15673 if groupnumber < Tuint32_t(32) { 15674 return uint32(1) << groupnumber 15675 } 15676 return uint32(1) 15677 }() 15678 if groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref { 15679 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = groupnumber 15680 } 15681 if libc.PreIncUint32(&i, 1) >= Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) { 15682 break 15683 } 15684 slot += uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size) 15685 if X_pcre2_strncmp_8(tls, name, slot+uintptr(DIMM2_SIZE), uint64(length)) != 0 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + uintptr(DIMM2_SIZE) + uintptr(length)))) != 0 { 15686 break 15687 } 15688 } 15689 15690 *(*int32)(unsafe.Pointer(countptr)) = count 15691 return DTRUE 15692 } 15693 15694 // ************************************************ 15695 // 15696 // Compile one branch * 15697 // 15698 15699 // Scan the parsed pattern, compiling it into the a vector of PCRE2_UCHAR. If 15700 // the options are changed during the branch, the pointer is used to change the 15701 // external options bits. This function is used during the pre-compile phase when 15702 // we are trying to find out the amount of memory needed, as well as during the 15703 // real compile phase. The value of lengthptr distinguishes the two phases. 15704 // 15705 // Arguments: 15706 // optionsptr pointer to the option bits 15707 // codeptr points to the pointer to the current code point 15708 // pptrptr points to the current parsed pattern pointer 15709 // errorcodeptr points to error code variable 15710 // firstcuptr place to put the first required code unit 15711 // firstcuflagsptr place to put the first code unit flags 15712 // reqcuptr place to put the last required code unit 15713 // reqcuflagsptr place to put the last required code unit flags 15714 // bcptr points to current branch chain 15715 // cb contains pointers to tables etc. 15716 // lengthptr NULL during the real compile phase 15717 // points to length accumulator during pre-compile phase 15718 // 15719 // Returns: 0 There's been an error, *errorcodeptr is non-zero 15720 // +1 Success, this branch must match at least one character 15721 // -1 Success, this branch may match an empty string 15722 15723 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: */ 15724 bp := tls.Alloc(136) 15725 defer tls.Free(136) 15726 15727 var bravalue int32 15728 var okreturn int32 15729 var group_return int32 15730 var repeat_min Tuint32_t 15731 var repeat_max Tuint32_t // To please picky compilers 15732 var greedy_default Tuint32_t 15733 var greedy_non_default Tuint32_t 15734 var repeat_type Tuint32_t 15735 var op_type Tuint32_t 15736 var options Tuint32_t // May change dynamically 15737 var firstcu Tuint32_t 15738 var reqcu Tuint32_t 15739 var zeroreqcu Tuint32_t 15740 var zerofirstcu Tuint32_t 15741 var escape Tuint32_t 15742 // var pptr uintptr at bp+96, 8 15743 15744 var meta Tuint32_t 15745 var meta_arg Tuint32_t 15746 var firstcuflags Tuint32_t 15747 var reqcuflags Tuint32_t 15748 var zeroreqcuflags Tuint32_t 15749 var zerofirstcuflags Tuint32_t 15750 var req_caseopt Tuint32_t 15751 var reqvary Tuint32_t 15752 var tempreqvary Tuint32_t 15753 var offset Tsize_t 15754 // var length_prevgroup Tsize_t at bp+120, 8 15755 15756 var code uintptr 15757 var last_code uintptr 15758 var orig_code uintptr 15759 // var tempcode uintptr at bp+88, 8 15760 15761 var previous uintptr 15762 var op_previous TPCRE2_UCHAR8 15763 var groupsetfirstcu TBOOL 15764 var had_accept TBOOL 15765 var matched_char TBOOL 15766 var previous_matched_char TBOOL 15767 var reset_caseful TBOOL 15768 var cbits uintptr 15769 // var classbits [32]Tuint8_t at bp, 32 15770 15771 // We can fish out the UTF setting once and for all into a BOOL, but we must 15772 // not do this for other options (e.g. PCRE2_EXTENDED) because they may change 15773 // dynamically as we process the pattern. 15774 15775 var utf TBOOL 15776 var ucp TBOOL 15777 15778 // Helper variables for OP_XCLASS opcode (for characters > 255). We define 15779 // class_uchardata always so that it can be passed to add_to_class() always, 15780 // though it will not be used in non-UTF 8-bit cases. This avoids having to supply 15781 // alternative calls for the different cases. 15782 15783 // var class_uchardata uintptr at bp+64, 8 15784 15785 var xclass TBOOL 15786 var class_uchardata_base uintptr 15787 var d Tuint32_t 15788 var c Tuint32_t 15789 var d1 Tuint32_t 15790 var c1 Tuint32_t 15791 var i int32 15792 var i1 int32 15793 var local_negate TBOOL 15794 var posix_class int32 15795 var taboffset int32 15796 var tabopt int32 15797 // var pbits [32]Tuint8_t at bp+32, 32 15798 15799 var i2 int32 15800 var i3 int32 15801 var ptype Tuint32_t 15802 var pdata Tuint32_t 15803 var i4 int32 15804 var i5 int32 15805 var i6 int32 15806 var i7 int32 15807 var i8 int32 15808 var i9 int32 15809 var c2 Tuint32_t 15810 var d2 Tuint32_t 15811 var i10 int32 15812 var i11 int32 15813 // var count int32 at bp+84, 4 15814 15815 // var index int32 at bp+80, 4 15816 15817 var i12 uint32 15818 var name TPCRE2_SPTR8 15819 var ng uintptr 15820 var length Tuint32_t 15821 var tc uintptr 15822 var condcount int32 15823 // var count1 int32 at bp+132, 4 15824 15825 // var index1 int32 at bp+128, 4 15826 15827 var name1 TPCRE2_SPTR8 15828 var is_dupname TBOOL 15829 var ng1 uintptr 15830 var length1 Tuint32_t 15831 var i13 uint32 15832 var pp TPCRE2_SPTR8 15833 var delimiter Tuint32_t 15834 var length2 Tuint32_t 15835 var callout_string uintptr 15836 var lastchar uintptr 15837 var delta Tsize_t 15838 var replicate int32 15839 var i14 int32 15840 var linkoffset int32 15841 var delta1 Tsize_t 15842 var i15 Tuint32_t 15843 var delta2 Tsize_t 15844 var linkoffset1 int32 15845 var oldlinkoffset int32 15846 var linkoffset2 int32 15847 var bra uintptr 15848 var i16 Tuint32_t 15849 var nlen int32 15850 var ketcode uintptr 15851 var bracode uintptr 15852 var len int32 15853 var bralink uintptr 15854 var brazeroptr uintptr 15855 var prop_type int32 15856 var prop_value int32 15857 var oldcode uintptr 15858 var repcode uint32 15859 var len1 int32 15860 var ptype1 Tuint32_t 15861 var pdata1 Tuint32_t 15862 var caseset Tuint32_t 15863 var i17 int32 15864 var xclass_has_prop TBOOL 15865 var negate_class TBOOL 15866 var should_flip_negation TBOOL 15867 var match_all_or_no_wide_chars TBOOL 15868 var possessive_quantifier TBOOL 15869 var note_group_empty TBOOL 15870 var class_has_8bitchar int32 15871 var mclength Tuint32_t 15872 var skipunits Tuint32_t 15873 // var subreqcu Tuint32_t at bp+112, 4 15874 15875 // var subfirstcu Tuint32_t at bp+104, 4 15876 15877 var groupnumber Tuint32_t 15878 var verbarglen Tuint32_t 15879 var verbculen Tuint32_t 15880 // var subreqcuflags Tuint32_t at bp+116, 4 15881 15882 // var subfirstcuflags Tuint32_t at bp+108, 4 15883 15884 var oc uintptr 15885 // var mcbuffer [8]TPCRE2_UCHAR8 at bp+72, 8 15886 bravalue = 0 15887 okreturn = -1 15888 group_return = 0 15889 repeat_min = Tuint32_t(0) 15890 repeat_max = Tuint32_t(0) 15891 options = *(*Tuint32_t)(unsafe.Pointer(optionsptr)) 15892 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) = *(*uintptr)(unsafe.Pointer(pptrptr)) 15893 offset = uint64(0) 15894 *(*Tsize_t)(unsafe.Pointer(bp + 120 /* length_prevgroup */)) = uint64(0) 15895 code = *(*uintptr)(unsafe.Pointer(codeptr)) 15896 last_code = code 15897 orig_code = code 15898 previous = uintptr(0) 15899 groupsetfirstcu = DFALSE 15900 had_accept = DFALSE 15901 matched_char = DFALSE 15902 previous_matched_char = DFALSE 15903 reset_caseful = DFALSE 15904 cbits = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits 15905 utf = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 15906 ucp = libc.Bool32(options&DPCRE2_UCP != Tuint32_t(0)) 15907 15908 // Set up the default and non-default settings for greediness 15909 15910 greedy_default = Tuint32_t(libc.Bool32(options&DPCRE2_UNGREEDY != Tuint32_t(0))) 15911 greedy_non_default = greedy_default ^ Tuint32_t(1) 15912 15913 // Initialize no first unit, no required unit. REQ_UNSET means "no char 15914 // matching encountered yet". It gets changed to REQ_NONE if we hit something that 15915 // matches a non-fixed first unit; reqcu just remains unset if we never find one. 15916 // 15917 // When we hit a repeat whose minimum is zero, we may have to adjust these values 15918 // to take the zero repeat into account. This is implemented by setting them to 15919 // zerofirstcu and zeroreqcu when such a repeat is encountered. The individual 15920 // item types that can be repeated set these backoff variables appropriately. 15921 15922 firstcu = libc.AssignUint32(&reqcu, libc.AssignUint32(&zerofirstcu, libc.AssignUint32(&zeroreqcu, Tuint32_t(0)))) 15923 firstcuflags = libc.AssignUint32(&reqcuflags, libc.AssignUint32(&zerofirstcuflags, libc.AssignUint32(&zeroreqcuflags, DREQ_UNSET))) 15924 15925 // The variable req_caseopt contains either the REQ_CASELESS bit or zero, 15926 // according to the current setting of the caseless flag. The REQ_CASELESS value 15927 // leaves the lower 28 bit empty. It is added into the firstcu or reqcu variables 15928 // to record the case status of the value. This is used only for ASCII characters. 15929 15930 if options&DPCRE2_CASELESS != Tuint32_t(0) { 15931 req_caseopt = DREQ_CASELESS 15932 } else { 15933 req_caseopt = uint32(0) 15934 } 15935 15936 // Switch on next META item until the end of the branch 15937 15938 __1: 15939 ; 15940 15941 // Get next META item in the pattern and its potential argument. 15942 15943 meta = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))) & 0xffff0000 15944 meta_arg = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))) & 0x0000ffff 15945 15946 // If we are in the pre-compile phase, accumulate the length used for the 15947 // previous cycle of this loop, unless the next item is a quantifier. 15948 15949 if !(lengthptr != uintptr(0)) { 15950 goto __4 15951 } 15952 15953 if !(code > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace+uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size)-uintptr(100)) { 15954 goto __5 15955 } /* Check for overrun */ 15956 15957 *(*int32)(unsafe.Pointer(errorcodeptr)) = func() int32 { 15958 if code >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace+uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size) { 15959 return ERR52 15960 } 15961 return ERR86 15962 }() 15963 return 0 15964 __5: 15965 ; 15966 15967 // There is at least one situation where code goes backwards: this is the 15968 // case of a zero quantifier after a class (e.g. [ab]{0}). When the quantifier 15969 // is processed, the whole class is eliminated. However, it is created first, 15970 // so we have to allow memory for it. Therefore, don't ever reduce the length 15971 // at this point. 15972 15973 if !(code < last_code) { 15974 goto __6 15975 } 15976 code = last_code 15977 __6: 15978 ; 15979 15980 // If the next thing is not a quantifier, we add the length of the previous 15981 // item into the total, and reset the code pointer to the start of the 15982 // workspace. Otherwise leave the previous item available to be quantified. 15983 15984 if !(meta < DMETA_ASTERISK || meta > DMETA_MINMAX_QUERY) { 15985 goto __7 15986 } 15987 15988 if !(uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < Tsize_t((int64(code)-int64(orig_code))/1)) { 15989 goto __8 15990 } 15991 15992 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 // Integer overflow 15993 return 0 15994 __8: 15995 ; 15996 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t((int64(code) - int64(orig_code)) / 1) 15997 if !(*(*Tsize_t)(unsafe.Pointer(lengthptr)) > uint64(int32(1)<<16)) { 15998 goto __9 15999 } 16000 16001 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 // Pattern is too large 16002 return 0 16003 __9: 16004 ; 16005 code = orig_code 16006 __7: 16007 ; 16008 16009 // Remember where this code item starts so we can catch the "backwards" 16010 // case above next time round. 16011 16012 last_code = code 16013 __4: 16014 ; 16015 16016 // Process the next parsed pattern item. If it is not a quantifier, remember 16017 // where it starts so that it can be quantified when a quantifier follows. 16018 // Checking for the legality of quantifiers happens in parse_regex(), except for 16019 // a quantifier after an assertion that is a condition. 16020 16021 if !(meta < DMETA_ASTERISK || meta > DMETA_MINMAX_QUERY) { 16022 goto __10 16023 } 16024 16025 previous = code 16026 if !(matched_char != 0 && !(had_accept != 0)) { 16027 goto __11 16028 } 16029 okreturn = 1 16030 __11: 16031 ; 16032 __10: 16033 ; 16034 16035 previous_matched_char = matched_char 16036 matched_char = DFALSE 16037 note_group_empty = DFALSE 16038 skipunits = Tuint32_t(0) // Default value for most subgroups 16039 16040 switch meta { 16041 // =================================================================== 16042 // The branch terminates at pattern end or | or ) 16043 16044 case DMETA_END: 16045 goto __13 16046 case DMETA_ALT: 16047 goto __14 16048 case DMETA_KET: 16049 goto __15 16050 16051 // =================================================================== 16052 // Handle single-character metacharacters. In multiline mode, ^ disables 16053 // the setting of any following char as a first character. 16054 16055 case DMETA_CIRCUMFLEX: 16056 goto __16 16057 16058 case DMETA_DOLLAR: 16059 goto __17 16060 16061 // There can never be a first char if '.' is first, whatever happens about 16062 // repeats. The value of reqcu doesn't change either. 16063 16064 case DMETA_DOT: 16065 goto __18 16066 16067 // =================================================================== 16068 // Empty character classes are allowed if PCRE2_ALLOW_EMPTY_CLASS is set. 16069 // Otherwise, an initial ']' is taken as a data character. When empty classes 16070 // are allowed, [] must always fail, so generate OP_FAIL, whereas [^] must 16071 // match any character, so generate OP_ALLANY. 16072 16073 case DMETA_CLASS_EMPTY: 16074 goto __19 16075 case DMETA_CLASS_EMPTY_NOT: 16076 goto __20 16077 16078 // =================================================================== 16079 // Non-empty character class. If the included characters are all < 256, we 16080 // build a 32-byte bitmap of the permitted characters, except in the special 16081 // case where there is only one such character. For negated classes, we build 16082 // the map as usual, then invert it at the end. However, we use a different 16083 // opcode so that data characters > 255 can be handled correctly. 16084 // 16085 // If the class contains characters outside the 0-255 range, a different 16086 // opcode is compiled. It may optionally have a bit map for characters < 256, 16087 // but those above are are explicitly listed afterwards. A flag code unit 16088 // tells whether the bitmap is present, and whether this is a negated class or 16089 // not. 16090 16091 case DMETA_CLASS_NOT: 16092 goto __21 16093 case DMETA_CLASS: 16094 goto __22 // End of class processing 16095 16096 // =================================================================== 16097 // Deal with (*VERB)s. 16098 16099 // Check for open captures before ACCEPT and close those that are within 16100 // the same assertion level, also converting ACCEPT to ASSERT_ACCEPT in an 16101 // assertion. In the first pass, just accumulate the length required; 16102 // otherwise hitting (*ACCEPT) inside many nested parentheses can cause 16103 // workspace overflow. Do not set firstcu after *ACCEPT. 16104 16105 case DMETA_ACCEPT: 16106 goto __23 16107 16108 case DMETA_PRUNE: 16109 goto __24 16110 case DMETA_SKIP: 16111 goto __25 16112 // Fall through 16113 case DMETA_COMMIT: 16114 goto __26 16115 case DMETA_FAIL: 16116 goto __27 16117 16118 case DMETA_THEN: 16119 goto __28 16120 16121 // Handle verbs with arguments. Arguments can be very long, especially in 16122 // 16- and 32-bit modes, and can overflow the workspace in the first pass. 16123 // However, the argument length is constrained to be small enough to fit in 16124 // one code unit. This check happens in parse_regex(). In the first pass, 16125 // instead of putting the argument into memory, we just update the length 16126 // counter and set up an empty argument. 16127 16128 case DMETA_THEN_ARG: 16129 goto __29 16130 16131 case DMETA_PRUNE_ARG: 16132 goto __30 16133 case DMETA_SKIP_ARG: 16134 goto __31 16135 // Fall through 16136 case DMETA_MARK: 16137 goto __32 16138 case DMETA_COMMIT_ARG: 16139 goto __33 16140 16141 // =================================================================== 16142 // Handle options change. The new setting must be passed back for use in 16143 // subsequent branches. Reset the greedy defaults and the case value for 16144 // firstcu and reqcu. 16145 16146 case DMETA_OPTIONS: 16147 goto __34 16148 16149 // =================================================================== 16150 // Handle conditional subpatterns. The case of (?(Rdigits) is ambiguous 16151 // because it could be a numerical check on recursion, or a name check on a 16152 // group's being set. The pre-pass sets up META_COND_RNUMBER as a name so that 16153 // we can handle it either way. We first try for a name; if not found, process 16154 // the number. 16155 16156 case DMETA_COND_RNUMBER: 16157 goto __35 // (?(Rdigits) 16158 case DMETA_COND_NAME: 16159 goto __36 // (?(name) or (?'name') or ?(<name>) 16160 case DMETA_COND_RNAME: 16161 goto __37 16162 16163 // The DEFINE condition is always false. Its internal groups may never 16164 // be called, so matched_char must remain false, hence the jump to 16165 // GROUP_PROCESS rather than GROUP_PROCESS_NOTE_EMPTY. 16166 16167 case DMETA_COND_DEFINE: 16168 goto __38 16169 16170 // Conditional test of a group's being set. 16171 16172 case DMETA_COND_NUMBER: 16173 goto __39 16174 16175 // Test for the PCRE2 version. 16176 16177 case DMETA_COND_VERSION: 16178 goto __40 16179 16180 // The condition is an assertion, possibly preceded by a callout. 16181 16182 case DMETA_COND_ASSERT: 16183 goto __41 16184 16185 // =================================================================== 16186 // Handle all kinds of nested bracketed groups. The non-capturing, 16187 // non-conditional cases are here; others come to GROUP_PROCESS via goto. 16188 16189 case DMETA_LOOKAHEAD: 16190 goto __42 16191 16192 case DMETA_LOOKAHEAD_NA: 16193 goto __43 16194 16195 // Optimize (?!) to (*FAIL) unless it is quantified - which is a weird 16196 // thing to do, but Perl allows all assertions to be quantified, and when 16197 // they contain capturing parentheses there may be a potential use for 16198 // this feature. Not that that applies to a quantified (?!) but we allow 16199 // it for uniformity. 16200 16201 case DMETA_LOOKAHEADNOT: 16202 goto __44 16203 16204 case DMETA_LOOKBEHIND: 16205 goto __45 16206 16207 case DMETA_LOOKBEHINDNOT: 16208 goto __46 16209 16210 case DMETA_LOOKBEHIND_NA: 16211 goto __47 16212 16213 case DMETA_ATOMIC: 16214 goto __48 16215 16216 case DMETA_SCRIPT_RUN: 16217 goto __49 16218 16219 case DMETA_NOCAPTURE: 16220 goto __50 // End of nested group handling 16221 16222 // =================================================================== 16223 // Handle named backreferences and recursions. 16224 16225 case DMETA_BACKREF_BYNAME: 16226 goto __51 16227 case DMETA_RECURSE_BYNAME: 16228 goto __52 16229 16230 // =================================================================== 16231 // Handle a numerical callout. 16232 16233 case DMETA_CALLOUT_NUMBER: 16234 goto __53 16235 16236 // =================================================================== 16237 // Handle a callout with a string argument. In the pre-pass we just compute 16238 // the length without generating anything. The length in pptr[3] includes both 16239 // delimiters; in the actual compile only the first one is copied, but a 16240 // terminating zero is added. Any doubled delimiters within the string make 16241 // this an overestimate, but it is not worth bothering about. 16242 16243 case DMETA_CALLOUT_STRING: 16244 goto __54 16245 16246 // =================================================================== 16247 // Handle repetition. The different types are all sorted out in the parsing 16248 // pass. 16249 16250 case DMETA_MINMAX_PLUS: 16251 goto __55 16252 case DMETA_MINMAX_QUERY: 16253 goto __56 16254 case DMETA_MINMAX: 16255 goto __57 16256 16257 case DMETA_ASTERISK: 16258 goto __58 16259 case DMETA_ASTERISK_PLUS: 16260 goto __59 16261 case DMETA_ASTERISK_QUERY: 16262 goto __60 16263 16264 case DMETA_PLUS: 16265 goto __61 16266 case DMETA_PLUS_PLUS: 16267 goto __62 16268 case DMETA_PLUS_QUERY: 16269 goto __63 16270 16271 case DMETA_QUERY: 16272 goto __64 16273 case DMETA_QUERY_PLUS: 16274 goto __65 16275 case DMETA_QUERY_QUERY: 16276 goto __66 16277 16278 // =================================================================== 16279 // Handle a 32-bit data character with a value greater than META_END. 16280 16281 case DMETA_BIGVALUE: 16282 goto __67 16283 16284 // =============================================================== 16285 // Handle a back reference by number, which is the meta argument. The 16286 // pattern offsets for back references to group numbers less than 10 are held 16287 // in a special vector, to avoid using more than two parsed pattern elements 16288 // in 64-bit environments. We only need the offset to the first occurrence, 16289 // because if that doesn't fail, subsequent ones will also be OK. 16290 16291 case DMETA_BACKREF: 16292 goto __68 16293 16294 // =============================================================== 16295 // Handle recursion by inserting the number of the called group (which is 16296 // the meta argument) after OP_RECURSE. At the end of compiling the pattern is 16297 // scanned and these numbers are replaced by offsets within the pattern. It is 16298 // done like this to avoid problems with forward references and adjusting 16299 // offsets when groups are duplicated and moved (as discovered in previous 16300 // implementations). Note that a recursion does not have a set first 16301 // character. 16302 16303 case DMETA_RECURSE: 16304 goto __69 16305 16306 // =============================================================== 16307 // Handle capturing parentheses; the number is the meta argument. 16308 16309 case DMETA_CAPTURE: 16310 goto __70 16311 16312 // =============================================================== 16313 // Handle escape sequence items. For ones like \d, the ESC_values are 16314 // arranged to be the same as the corresponding OP_values in the default case 16315 // when PCRE2_UCP is not set (which is the only case in which they will appear 16316 // here). 16317 // 16318 // Note: \Q and \E are never seen here, as they were dealt with in 16319 // parse_pattern(). Neither are numerical back references or recursions, which 16320 // were turned into META_BACKREF or META_RECURSE items, respectively. \k and 16321 // \g, when followed by names, are turned into META_BACKREF_BYNAME or 16322 // META_RECURSE_BYNAME. 16323 16324 case DMETA_ESCAPE: 16325 goto __71 // End META_ESCAPE 16326 16327 // =================================================================== 16328 // Handle an unrecognized meta value. A parsed pattern value less than 16329 // META_END is a literal. Otherwise we have a problem. 16330 16331 default: 16332 goto __72 16333 } 16334 goto __12 16335 16336 // =================================================================== 16337 // The branch terminates at pattern end or | or ) 16338 16339 __13: 16340 __14: 16341 __15: 16342 *(*Tuint32_t)(unsafe.Pointer(firstcuptr)) = firstcu 16343 *(*Tuint32_t)(unsafe.Pointer(firstcuflagsptr)) = firstcuflags 16344 *(*Tuint32_t)(unsafe.Pointer(reqcuptr)) = reqcu 16345 *(*Tuint32_t)(unsafe.Pointer(reqcuflagsptr)) = reqcuflags 16346 *(*uintptr)(unsafe.Pointer(codeptr)) = code 16347 *(*uintptr)(unsafe.Pointer(pptrptr)) = *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) 16348 return okreturn 16349 16350 // =================================================================== 16351 // Handle single-character metacharacters. In multiline mode, ^ disables 16352 // the setting of any following char as a first character. 16353 16354 __16: 16355 if !(options&DPCRE2_MULTILINE != Tuint32_t(0)) { 16356 goto __73 16357 } 16358 16359 if !(firstcuflags == DREQ_UNSET) { 16360 goto __75 16361 } 16362 zerofirstcuflags = libc.AssignUint32(&firstcuflags, DREQ_NONE) 16363 __75: 16364 ; 16365 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_CIRCM 16366 goto __74 16367 __73: 16368 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_CIRC 16369 __74: 16370 ; 16371 goto __12 16372 16373 __17: 16374 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16375 if options&DPCRE2_MULTILINE != Tuint32_t(0) { 16376 return OP_DOLLM 16377 } 16378 return OP_DOLL 16379 }() 16380 goto __12 16381 16382 // There can never be a first char if '.' is first, whatever happens about 16383 // repeats. The value of reqcu doesn't change either. 16384 16385 __18: 16386 matched_char = DTRUE 16387 if !(firstcuflags == DREQ_UNSET) { 16388 goto __76 16389 } 16390 firstcuflags = DREQ_NONE 16391 __76: 16392 ; 16393 zerofirstcu = firstcu 16394 zerofirstcuflags = firstcuflags 16395 zeroreqcu = reqcu 16396 zeroreqcuflags = reqcuflags 16397 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16398 if options&DPCRE2_DOTALL != Tuint32_t(0) { 16399 return OP_ALLANY 16400 } 16401 return OP_ANY 16402 }() 16403 goto __12 16404 16405 // =================================================================== 16406 // Empty character classes are allowed if PCRE2_ALLOW_EMPTY_CLASS is set. 16407 // Otherwise, an initial ']' is taken as a data character. When empty classes 16408 // are allowed, [] must always fail, so generate OP_FAIL, whereas [^] must 16409 // match any character, so generate OP_ALLANY. 16410 16411 __19: 16412 __20: 16413 matched_char = DTRUE 16414 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16415 if meta == DMETA_CLASS_EMPTY_NOT { 16416 return OP_ALLANY 16417 } 16418 return OP_FAIL 16419 }() 16420 if !(firstcuflags == DREQ_UNSET) { 16421 goto __77 16422 } 16423 firstcuflags = DREQ_NONE 16424 __77: 16425 ; 16426 zerofirstcu = firstcu 16427 zerofirstcuflags = firstcuflags 16428 goto __12 16429 16430 // =================================================================== 16431 // Non-empty character class. If the included characters are all < 256, we 16432 // build a 32-byte bitmap of the permitted characters, except in the special 16433 // case where there is only one such character. For negated classes, we build 16434 // the map as usual, then invert it at the end. However, we use a different 16435 // opcode so that data characters > 255 can be handled correctly. 16436 // 16437 // If the class contains characters outside the 0-255 range, a different 16438 // opcode is compiled. It may optionally have a bit map for characters < 256, 16439 // but those above are are explicitly listed afterwards. A flag code unit 16440 // tells whether the bitmap is present, and whether this is a negated class or 16441 // not. 16442 16443 __21: 16444 __22: 16445 matched_char = DTRUE 16446 negate_class = libc.Bool32(meta == DMETA_CLASS_NOT) 16447 16448 // We can optimize the case of a single character in a class by generating 16449 // OP_CHAR or OP_CHARI if it's positive, or OP_NOT or OP_NOTI if it's 16450 // negative. In the negative case there can be no first char if this item is 16451 // first, whatever repeat count may follow. In the case of reqcu, save the 16452 // previous value for reinstating. 16453 16454 // NOTE: at present this optimization is not effective if the only 16455 // character in a class in 32-bit, non-UCP mode has its top bit set. 16456 16457 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) < DMETA_END && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) == DMETA_CLASS_END) { 16458 goto __78 16459 } 16460 16461 c = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) + 1*4)) 16462 16463 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) // Move on to class end 16464 if !(meta == DMETA_CLASS) { 16465 goto __79 16466 } /* A positive one-char class can be */ 16467 // handled as a normal literal character. 16468 meta = c // Set up the character 16469 goto NORMAL_CHAR_SET 16470 __79: 16471 ; 16472 16473 // Handle a negative one-character class 16474 16475 zeroreqcu = reqcu 16476 zeroreqcuflags = reqcuflags 16477 if !(firstcuflags == DREQ_UNSET) { 16478 goto __80 16479 } 16480 firstcuflags = DREQ_NONE 16481 __80: 16482 ; 16483 zerofirstcu = firstcu 16484 zerofirstcuflags = firstcuflags 16485 16486 // For caseless UTF or UCP mode, check whether this character has more 16487 // than one other case. If so, generate a special OP_NOTPROP item instead of 16488 // OP_NOTI. 16489 16490 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)) { 16491 goto __81 16492 } 16493 16494 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_NOTPROP 16495 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(DPT_CLIST) 16496 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(d) 16497 goto __12 // We are finished with this class 16498 __81: 16499 ; 16500 // Char has only one other case, or UCP not available 16501 16502 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16503 if options&DPCRE2_CASELESS != Tuint32_t(0) { 16504 return OP_NOTI 16505 } 16506 return OP_NOT 16507 }() 16508 code += func() uintptr { 16509 if utf != 0 && c > Tuint32_t(DMAX_UTF_SINGLE_CU) { 16510 return uintptr(X_pcre2_ord2utf_8(tls, c, code)) 16511 } 16512 return uintptr(func() int32 { *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(c); return 1 }()) 16513 }() 16514 goto __12 // We are finished with this class 16515 __78: 16516 ; // End of 1-char optimization 16517 16518 // Handle character classes that contain more than just one literal 16519 // character. If there are exactly two characters in a positive class, see if 16520 // they are case partners. This can be optimized to generate a caseless single 16521 // character match (which also sets first/required code units if relevant). 16522 16523 if !(meta == DMETA_CLASS && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) < DMETA_END && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) < DMETA_END && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 3*4)) == DMETA_CLASS_END) { 16524 goto __82 16525 } 16526 16527 c1 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) + 1*4)) 16528 16529 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) { 16530 goto __83 16531 } 16532 16533 if !((utf != 0 || ucp != 0) && c1 > Tuint32_t(127)) { 16534 goto __84 16535 } 16536 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) 16537 goto __85 16538 __84: 16539 16540 d1 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc + uintptr(c1)))) 16541 __85: 16542 ; 16543 16544 if !(c1 != d1 && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) == d1) { 16545 goto __86 16546 } 16547 16548 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(3) // Move on to class end 16549 meta = c1 16550 if !(options&DPCRE2_CASELESS == Tuint32_t(0)) { 16551 goto __87 16552 } 16553 16554 reset_caseful = DTRUE 16555 options = options | DPCRE2_CASELESS 16556 req_caseopt = DREQ_CASELESS 16557 __87: 16558 ; 16559 goto CLASS_CASELESS_CHAR 16560 __86: 16561 ; 16562 __83: 16563 ; 16564 __82: 16565 ; 16566 16567 // If a non-extended class contains a negative special such as \S, we need 16568 // to flip the negation flag at the end, so that support for characters > 255 16569 // works correctly (they are all included in the class). An extended class may 16570 // need to insert specific matching or non-matching code for wide characters. 16571 // 16572 16573 should_flip_negation = libc.AssignInt32(&match_all_or_no_wide_chars, DFALSE) 16574 16575 // Extended class (xclass) will be used when characters > 255 16576 // might match. 16577 16578 xclass = DFALSE 16579 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) = code + uintptr(DLINK_SIZE) + uintptr(2) // For XCLASS items 16580 class_uchardata_base = *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) // Save the start 16581 16582 // For optimization purposes, we track some properties of the class: 16583 // class_has_8bitchar will be non-zero if the class contains at least one 16584 // character with a code point less than 256; xclass_has_prop will be TRUE if 16585 // Unicode property checks are present in the class. 16586 16587 class_has_8bitchar = 0 16588 xclass_has_prop = DFALSE 16589 16590 // Initialize the 256-bit (32-byte) bit map to all zeros. We build the map 16591 // in a temporary bit of memory, in case the class contains fewer than two 16592 // 8-bit characters because in that case the compiled code doesn't use the bit 16593 // map. 16594 16595 libc.Xmemset(tls, bp, 0, uint64(32)*uint64(unsafe.Sizeof(Tuint8_t(0)))) 16596 16597 // Process items until META_CLASS_END is reached. 16598 16599 __88: 16600 if !(libc.AssignUint32(&meta, *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4)))) != DMETA_CLASS_END) { 16601 goto __89 16602 } 16603 16604 // Handle POSIX classes such as [:alpha:] etc. 16605 16606 if !(meta == DMETA_POSIX || meta == DMETA_POSIX_NEG) { 16607 goto __90 16608 } 16609 16610 local_negate = libc.Bool32(meta == DMETA_POSIX_NEG) 16611 posix_class = int32(*(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4)))) 16612 16613 should_flip_negation = local_negate // Note negative special 16614 16615 // If matching is caseless, upper and lower are converted to alpha. 16616 // This relies on the fact that the class table starts with alpha, 16617 // lower, upper as the first 3 entries. 16618 16619 if !(options&DPCRE2_CASELESS != Tuint32_t(0) && posix_class <= 2) { 16620 goto __91 16621 } 16622 posix_class = 0 16623 __91: 16624 ; 16625 16626 // When PCRE2_UCP is set, some of the POSIX classes are converted to 16627 // different escape sequences that use Unicode properties \p or \P. 16628 // Others that are not available via \p or \P have to generate 16629 // XCL_PROP/XCL_NOTPROP directly, which is done here. 16630 16631 if !(options&DPCRE2_UCP != Tuint32_t(0)) { 16632 goto __92 16633 } 16634 switch posix_class { 16635 case DPC_GRAPH: 16636 goto __94 16637 case DPC_PRINT: 16638 goto __95 16639 case DPC_PUNCT: 16640 goto __96 16641 16642 // For the other POSIX classes (ascii, xdigit) we are going to 16643 // fall through to the non-UCP case and build a bit map for 16644 // characters with code points less than 256. However, if we are in 16645 // a negated POSIX class, characters with code points greater than 16646 // 255 must either all match or all not match, depending on whether 16647 // the whole class is not or is negated. For example, for 16648 // [[:^ascii:]... they must all match, whereas for [^[:^xdigit:]... 16649 // they must not. 16650 // 16651 // In the special case where there are no xclass items, this is 16652 // automatically handled by the use of OP_CLASS or OP_NCLASS, but an 16653 // explicit range is needed for OP_XCLASS. Setting a flag here 16654 // causes the range to be generated later when it is known that 16655 // OP_XCLASS is required. In the 8-bit library this is relevant only in 16656 // utf mode, since no wide characters can exist otherwise. 16657 16658 default: 16659 goto __97 16660 } 16661 goto __93 16662 16663 __94: 16664 __95: 16665 __96: 16666 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = func() uint8 { 16667 if local_negate != 0 { 16668 return uint8(DXCL_NOTPROP) 16669 } 16670 return uint8(DXCL_PROP) 16671 }() 16672 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = func() uint8 { 16673 if posix_class == DPC_GRAPH { 16674 return uint8(DPT_PXGRAPH) 16675 } 16676 return func() uint8 { 16677 if posix_class == DPC_PRINT { 16678 return uint8(DPT_PXPRINT) 16679 } 16680 return uint8(DPT_PXPUNCT) 16681 }() 16682 }() 16683 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(0) 16684 xclass_has_prop = DTRUE 16685 goto CONTINUE_CLASS 16686 16687 // For the other POSIX classes (ascii, xdigit) we are going to 16688 // fall through to the non-UCP case and build a bit map for 16689 // characters with code points less than 256. However, if we are in 16690 // a negated POSIX class, characters with code points greater than 16691 // 255 must either all match or all not match, depending on whether 16692 // the whole class is not or is negated. For example, for 16693 // [[:^ascii:]... they must all match, whereas for [^[:^xdigit:]... 16694 // they must not. 16695 // 16696 // In the special case where there are no xclass items, this is 16697 // automatically handled by the use of OP_CLASS or OP_NCLASS, but an 16698 // explicit range is needed for OP_XCLASS. Setting a flag here 16699 // causes the range to be generated later when it is known that 16700 // OP_XCLASS is required. In the 8-bit library this is relevant only in 16701 // utf mode, since no wide characters can exist otherwise. 16702 16703 __97: 16704 if !(utf != 0) { 16705 goto __98 16706 } 16707 match_all_or_no_wide_chars = match_all_or_no_wide_chars | local_negate 16708 __98: 16709 ; 16710 goto __93 16711 __93: 16712 ; 16713 __92: 16714 ; 16715 16716 // In the non-UCP case, or when UCP makes no difference, we build the 16717 // bit map for the POSIX class in a chunk of local store because we may 16718 // be adding and subtracting from it, and we don't want to subtract bits 16719 // that may be in the main map already. At the end we or the result into 16720 // the bit map that is being built. 16721 16722 posix_class = posix_class * 3 16723 16724 // Copy in the first table (always present) 16725 16726 libc.Xmemcpy(tls, bp+32, cbits+uintptr(posix_class_maps[posix_class]), 16727 uint64(32)*uint64(unsafe.Sizeof(Tuint8_t(0)))) 16728 16729 // If there is a second table, add or remove it as required. 16730 16731 taboffset = posix_class_maps[posix_class+1] 16732 tabopt = posix_class_maps[posix_class+2] 16733 16734 if !(taboffset >= 0) { 16735 goto __99 16736 } 16737 16738 if !(tabopt >= 0) { 16739 goto __100 16740 } 16741 { 16742 i = 0 16743 __102: 16744 if !(i < 32) { 16745 goto __104 16746 } 16747 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i+taboffset))))) 16748 goto __103 16749 __103: 16750 i++ 16751 goto __102 16752 goto __104 16753 __104: 16754 } 16755 goto __101 16756 __100: 16757 { 16758 i1 = 0 16759 __105: 16760 if !(i1 < 32) { 16761 goto __107 16762 } 16763 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i1))) &= Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i1+taboffset))))) 16764 goto __106 16765 __106: 16766 i1++ 16767 goto __105 16768 goto __107 16769 __107: 16770 } 16771 __101: 16772 ; 16773 __99: 16774 ; 16775 16776 // Now see if we need to remove any special characters. An option 16777 // value of 1 removes vertical space and 2 removes underscore. 16778 16779 if !(tabopt < 0) { 16780 goto __108 16781 } 16782 tabopt = -tabopt 16783 __108: 16784 ; 16785 if !(tabopt == 1) { 16786 goto __109 16787 } 16788 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + 1)) &= libc.Uint8FromInt32(libc.CplInt32(0x3c)) 16789 goto __110 16790 __109: 16791 if !(tabopt == 2) { 16792 goto __111 16793 } 16794 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + 11)) &= Tuint8_t(0x7f) 16795 __111: 16796 ; 16797 __110: 16798 ; 16799 16800 // Add the POSIX table or its complement into the main table that is 16801 // being built and we are done. 16802 16803 if !(local_negate != 0) { 16804 goto __112 16805 } 16806 { 16807 i2 = 0 16808 __114: 16809 if !(i2 < 32) { 16810 goto __116 16811 } 16812 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i2))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i2))))))) 16813 goto __115 16814 __115: 16815 i2++ 16816 goto __114 16817 goto __116 16818 __116: 16819 } 16820 goto __113 16821 __112: 16822 { 16823 i3 = 0 16824 __117: 16825 if !(i3 < 32) { 16826 goto __119 16827 } 16828 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i3))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i3))))) 16829 goto __118 16830 __118: 16831 i3++ 16832 goto __117 16833 goto __119 16834 __119: 16835 } 16836 __113: 16837 ; 16838 16839 // Every class contains at least one < 256 character. 16840 16841 class_has_8bitchar = 1 16842 goto CONTINUE_CLASS // End of POSIX handling 16843 __90: 16844 ; 16845 16846 // Other than POSIX classes, the only items we should encounter are 16847 // \d-type escapes and literal characters (possibly as ranges). 16848 16849 if !(meta == DMETA_BIGVALUE) { 16850 goto __120 16851 } 16852 16853 meta = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 16854 goto CLASS_LITERAL 16855 __120: 16856 ; 16857 16858 // Any other non-literal must be an escape 16859 16860 if !(meta >= DMETA_END) { 16861 goto __121 16862 } 16863 16864 if !(meta&0xffff0000 != DMETA_ESCAPE) { 16865 goto __123 16866 } 16867 16868 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR89 // Internal error - unrecognized. 16869 return 0 16870 __123: 16871 ; 16872 escape = meta & 0x0000ffff 16873 16874 // Every class contains at least one < 256 character. 16875 16876 class_has_8bitchar++ 16877 16878 switch escape { 16879 case ESC_d: 16880 goto __125 16881 16882 case ESC_D: 16883 goto __126 16884 16885 case ESC_w: 16886 goto __127 16887 16888 case ESC_W: 16889 goto __128 16890 16891 // Perl 5.004 onwards omitted VT from \s, but restored it at Perl 16892 // 5.18. Before PCRE 8.34, we had to preserve the VT bit if it was 16893 // previously set by something earlier in the character class. 16894 // Luckily, the value of CHAR_VT is 0x0b in both ASCII and EBCDIC, so 16895 // we could just adjust the appropriate bit. From PCRE 8.34 we no 16896 // longer treat \s and \S specially. 16897 16898 case ESC_s: 16899 goto __129 16900 16901 case ESC_S: 16902 goto __130 16903 16904 // When adding the horizontal or vertical space lists to a class, or 16905 // their complements, disable PCRE2_CASELESS, because it justs wastes 16906 // time, and in the "not-x" UTF cases can create unwanted duplicates in 16907 // the XCLASS list (provoked by characters that have more than one other 16908 // case and by both cases being in the same "not-x" sublist). 16909 16910 case ESC_h: 16911 goto __131 16912 16913 case ESC_H: 16914 goto __132 16915 16916 case ESC_v: 16917 goto __133 16918 16919 case ESC_V: 16920 goto __134 16921 16922 // If Unicode is not supported, \P and \p are not allowed and are 16923 // faulted at parse time, so will never appear here. 16924 16925 case ESC_p: 16926 goto __135 16927 case ESC_P: 16928 goto __136 16929 } 16930 goto __124 16931 16932 __125: 16933 { 16934 i4 = 0 16935 __137: 16936 if !(i4 < 32) { 16937 goto __139 16938 } 16939 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i4))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i4+Dcbit_digit))))) 16940 goto __138 16941 __138: 16942 i4++ 16943 goto __137 16944 goto __139 16945 __139: 16946 } 16947 goto __124 16948 16949 __126: 16950 should_flip_negation = DTRUE 16951 { 16952 i5 = 0 16953 __140: 16954 if !(i5 < 32) { 16955 goto __142 16956 } 16957 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i5))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i5+Dcbit_digit))))))) 16958 goto __141 16959 __141: 16960 i5++ 16961 goto __140 16962 goto __142 16963 __142: 16964 } 16965 goto __124 16966 16967 __127: 16968 { 16969 i6 = 0 16970 __143: 16971 if !(i6 < 32) { 16972 goto __145 16973 } 16974 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i6))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i6+Dcbit_word))))) 16975 goto __144 16976 __144: 16977 i6++ 16978 goto __143 16979 goto __145 16980 __145: 16981 } 16982 goto __124 16983 16984 __128: 16985 should_flip_negation = DTRUE 16986 { 16987 i7 = 0 16988 __146: 16989 if !(i7 < 32) { 16990 goto __148 16991 } 16992 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i7))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i7+Dcbit_word))))))) 16993 goto __147 16994 __147: 16995 i7++ 16996 goto __146 16997 goto __148 16998 __148: 16999 } 17000 goto __124 17001 17002 // Perl 5.004 onwards omitted VT from \s, but restored it at Perl 17003 // 5.18. Before PCRE 8.34, we had to preserve the VT bit if it was 17004 // previously set by something earlier in the character class. 17005 // Luckily, the value of CHAR_VT is 0x0b in both ASCII and EBCDIC, so 17006 // we could just adjust the appropriate bit. From PCRE 8.34 we no 17007 // longer treat \s and \S specially. 17008 17009 __129: 17010 { 17011 i8 = 0 17012 __149: 17013 if !(i8 < 32) { 17014 goto __151 17015 } 17016 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i8))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i8+Dcbit_space))))) 17017 goto __150 17018 __150: 17019 i8++ 17020 goto __149 17021 goto __151 17022 __151: 17023 } 17024 goto __124 17025 17026 __130: 17027 should_flip_negation = DTRUE 17028 { 17029 i9 = 0 17030 __152: 17031 if !(i9 < 32) { 17032 goto __154 17033 } 17034 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i9))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i9+Dcbit_space))))))) 17035 goto __153 17036 __153: 17037 i9++ 17038 goto __152 17039 goto __154 17040 __154: 17041 } 17042 goto __124 17043 17044 // When adding the horizontal or vertical space lists to a class, or 17045 // their complements, disable PCRE2_CASELESS, because it justs wastes 17046 // time, and in the "not-x" UTF cases can create unwanted duplicates in 17047 // the XCLASS list (provoked by characters that have more than one other 17048 // case and by both cases being in the same "not-x" sublist). 17049 17050 __131: 17051 add_list_to_class(tls, bp, bp+64, 17052 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_hspace_list_8)), DNOTACHAR) 17053 goto __124 17054 17055 __132: 17056 add_not_list_to_class(tls, bp, bp+64, 17057 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_hspace_list_8))) 17058 goto __124 17059 17060 __133: 17061 add_list_to_class(tls, bp, bp+64, 17062 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_vspace_list_8)), DNOTACHAR) 17063 goto __124 17064 17065 __134: 17066 add_not_list_to_class(tls, bp, bp+64, 17067 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_vspace_list_8))) 17068 goto __124 17069 17070 // If Unicode is not supported, \P and \p are not allowed and are 17071 // faulted at parse time, so will never appear here. 17072 17073 __135: 17074 __136: 17075 17076 ptype = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) >> 16 17077 pdata = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))) & Tuint32_t(0xffff) 17078 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = func() uint8 { 17079 if escape == ESC_p { 17080 return uint8(DXCL_PROP) 17081 } 17082 return uint8(DXCL_NOTPROP) 17083 }() 17084 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(ptype) 17085 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(pdata) 17086 xclass_has_prop = DTRUE 17087 class_has_8bitchar-- // Undo! 17088 17089 goto __124 17090 __124: 17091 ; 17092 17093 goto CONTINUE_CLASS 17094 goto __122 17095 __121: 17096 17097 CLASS_LITERAL: 17098 c2 = libc.AssignUint32(&d2, meta) 17099 17100 // Remember if \r or \n were explicitly used 17101 17102 if !(c2 == Tuint32_t('\015') || c2 == Tuint32_t('\012')) { 17103 goto __155 17104 } 17105 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASCRORLF) 17106 __155: 17107 ; 17108 17109 // Process a character range 17110 17111 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) == DMETA_RANGE_LITERAL || *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) == DMETA_RANGE_ESCAPED) { 17112 goto __156 17113 } 17114 17115 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 17116 d2 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)))) 17117 if !(d2 == DMETA_BIGVALUE) { 17118 goto __157 17119 } 17120 d2 = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 17121 __157: 17122 ; 17123 17124 // Remember an explicit \r or \n, and add the range to the class. 17125 17126 if !(d2 == Tuint32_t('\015') || d2 == Tuint32_t('\012')) { 17127 goto __158 17128 } 17129 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASCRORLF) 17130 __158: 17131 ; 17132 17133 // In an EBCDIC environment, Perl treats alphabetic ranges specially 17134 // because there are holes in the encoding, and simply using the range 17135 // A-Z (for example) would include the characters in the holes. This 17136 // applies only to literal ranges; [\xC1-\xE9] is different to [A-Z]. 17137 17138 // Not an EBCDIC special range 17139 17140 class_has_8bitchar = int32(uint32(class_has_8bitchar) + add_to_class(tls, bp, bp+64, options, cb, c2, d2)) 17141 goto CONTINUE_CLASS // Go get the next char in the class 17142 __156: 17143 ; // End of range handling 17144 17145 // Handle a single character. 17146 17147 class_has_8bitchar = int32(uint32(class_has_8bitchar) + add_to_class(tls, bp, bp+64, options, cb, meta, meta)) 17148 __122: 17149 ; 17150 17151 // Continue to the next item in the class. 17152 17153 CONTINUE_CLASS: 17154 17155 // If any wide characters or Unicode properties have been encountered, 17156 // set xclass = TRUE. Then, in the pre-compile phase, accumulate the length 17157 // of the extra data and reset the pointer. This is so that very large 17158 // classes that contain a zillion wide characters or Unicode property tests 17159 // do not overwrite the workspace (which is on the stack). 17160 17161 if !(*(*uintptr)(unsafe.Pointer(bp + 64)) > class_uchardata_base) { 17162 goto __159 17163 } 17164 17165 xclass = DTRUE 17166 if !(lengthptr != uintptr(0)) { 17167 goto __160 17168 } 17169 17170 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t((int64(*(*uintptr)(unsafe.Pointer(bp + 64))) - int64(class_uchardata_base)) / 1) 17171 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) = class_uchardata_base 17172 __160: 17173 ; 17174 __159: 17175 ; 17176 17177 goto __88 // Needed to avoid error when not supporting wide chars 17178 goto __88 17179 __89: 17180 ; // End of main class-processing loop 17181 17182 // If this class is the first thing in the branch, there can be no first 17183 // char setting, whatever the repeat count. Any reqcu setting must remain 17184 // unchanged after any kind of repeat. 17185 17186 if !(firstcuflags == DREQ_UNSET) { 17187 goto __161 17188 } 17189 firstcuflags = DREQ_NONE 17190 __161: 17191 ; 17192 zerofirstcu = firstcu 17193 zerofirstcuflags = firstcuflags 17194 zeroreqcu = reqcu 17195 zeroreqcuflags = reqcuflags 17196 17197 // If there are characters with values > 255, or Unicode property settings 17198 // (\p or \P), we have to compile an extended class, with its own opcode, 17199 // unless there were no property settings and there was a negated special such 17200 // as \S in the class, and PCRE2_UCP is not set, because in that case all 17201 // characters > 255 are in or not in the class, so any that were explicitly 17202 // given as well can be ignored. 17203 // 17204 // In the UCP case, if certain negated POSIX classes ([:^ascii:] or 17205 // [^:xdigit:]) were present in a class, we either have to match or not match 17206 // all wide characters (depending on whether the whole class is or is not 17207 // negated). This requirement is indicated by match_all_or_no_wide_chars being 17208 // true. We do this by including an explicit range, which works in both cases. 17209 // This applies only in UTF and 16-bit and 32-bit non-UTF modes, since there 17210 // cannot be any wide characters in 8-bit non-UTF mode. 17211 // 17212 // When there *are* properties in a positive UTF-8 or any 16-bit or 32_bit 17213 // class where \S etc is present without PCRE2_UCP, causing an extended class 17214 // to be compiled, we make sure that all characters > 255 are included by 17215 // forcing match_all_or_no_wide_chars to be true. 17216 // 17217 // If, when generating an xclass, there are no characters < 256, we can omit 17218 // the bitmap in the actual compiled code. 17219 17220 if !(xclass != 0 && (options&DPCRE2_UCP != Tuint32_t(0) || xclass_has_prop != 0 || !(should_flip_negation != 0))) { 17221 goto __162 17222 } 17223 17224 if !(match_all_or_no_wide_chars != 0 || utf != 0 && should_flip_negation != 0 && !(negate_class != 0) && options&DPCRE2_UCP == Tuint32_t(0)) { 17225 goto __163 17226 } 17227 17228 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(DXCL_RANGE) 17229 if !(utf != 0) { 17230 goto __164 17231 } /* Will always be utf in the 8-bit library */ 17232 17233 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) += uintptr(X_pcre2_ord2utf_8(tls, uint32(0x100), *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)))) 17234 *(*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 */)))) 17235 goto __165 17236 __164: /* Can only happen for the 16-bit & 32-bit libraries */ 17237 17238 ; 17239 __165: 17240 ; 17241 __163: 17242 ; 17243 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(DXCL_END) // Marks the end of extra data 17244 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_XCLASS 17245 code += uintptr(DLINK_SIZE) 17246 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = func() uint8 { 17247 if negate_class != 0 { 17248 return uint8(DXCL_NOT) 17249 } 17250 return uint8(0) 17251 }() 17252 if !(xclass_has_prop != 0) { 17253 goto __166 17254 } 17255 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) |= TPCRE2_UCHAR8(DXCL_HASPROP) 17256 __166: 17257 ; 17258 17259 // If the map is required, move up the extra data to make room for it; 17260 // otherwise just move the code pointer to the end of the extra data. 17261 17262 if !(class_has_8bitchar > 0) { 17263 goto __167 17264 } 17265 17266 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) |= TPCRE2_UCHAR8(DXCL_MAP) 17267 libc.Xmemmove(tls, code+uintptr(uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))), code, 17268 uint64((int64(*(*uintptr)(unsafe.Pointer(bp + 64)))-int64(code))/1*int64(DPCRE2_CODE_UNIT_WIDTH/8))) 17269 if !(negate_class != 0 && !(xclass_has_prop != 0)) { 17270 goto __169 17271 } 17272 17273 // Using 255 ^ instead of ~ avoids clang sanitize warning. 17274 { 17275 i10 = 0 17276 __170: 17277 if !(i10 < 32) { 17278 goto __172 17279 } 17280 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i10))) = Tuint8_t(255 ^ int32(*(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i10))))) 17281 goto __171 17282 __171: 17283 i10++ 17284 goto __170 17285 goto __172 17286 __172: 17287 } 17288 __169: 17289 ; 17290 libc.Xmemcpy(tls, code, bp, uint64(32)) 17291 code = *(*uintptr)(unsafe.Pointer(bp + 64)) + uintptr(uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 17292 goto __168 17293 __167: 17294 code = *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) 17295 __168: 17296 ; 17297 17298 // Now fill in the complete length of the item 17299 17300 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)) = TPCRE2_UCHAR8(int32((int64(code)-int64(previous))/1) >> 8) 17301 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2)) = TPCRE2_UCHAR8(int32((int64(code)-int64(previous))/1) & 255) 17302 goto __12 // End of class handling 17303 __162: 17304 ; 17305 17306 // If there are no characters > 255, or they are all to be included or 17307 // excluded, set the opcode to OP_CLASS or OP_NCLASS, depending on whether the 17308 // whole class was negated and whether there were negative specials such as \S 17309 // (non-UCP) in the class. Then copy the 32-byte map into the code vector, 17310 // negating it if necessary. 17311 17312 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 17313 if negate_class == should_flip_negation { 17314 return OP_CLASS 17315 } 17316 return OP_NCLASS 17317 }() 17318 if !(lengthptr == uintptr(0)) { 17319 goto __173 17320 } /* Save time in the pre-compile phase */ 17321 17322 if !(negate_class != 0) { 17323 goto __174 17324 } 17325 17326 // Using 255 ^ instead of ~ avoids clang sanitize warning. 17327 { 17328 i11 = 0 17329 __175: 17330 if !(i11 < 32) { 17331 goto __177 17332 } 17333 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i11))) = Tuint8_t(255 ^ int32(*(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i11))))) 17334 goto __176 17335 __176: 17336 i11++ 17337 goto __175 17338 goto __177 17339 __177: 17340 } 17341 __174: 17342 ; 17343 libc.Xmemcpy(tls, code, bp, uint64(32)) 17344 __173: 17345 ; 17346 code += uintptr(uint64(32) / uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 17347 goto __12 // End of class processing 17348 17349 // =================================================================== 17350 // Deal with (*VERB)s. 17351 17352 // Check for open captures before ACCEPT and close those that are within 17353 // the same assertion level, also converting ACCEPT to ASSERT_ACCEPT in an 17354 // assertion. In the first pass, just accumulate the length required; 17355 // otherwise hitting (*ACCEPT) inside many nested parentheses can cause 17356 // workspace overflow. Do not set firstcu after *ACCEPT. 17357 17358 __23: 17359 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_accept = libc.AssignInt32(&had_accept, DTRUE) 17360 oc = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps 17361 __178: 17362 if !(oc != uintptr(0) && int32((*Topen_capitem)(unsafe.Pointer(oc)).Fassert_depth) >= int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth)) { 17363 goto __180 17364 } 17365 17366 if !(lengthptr != uintptr(0)) { 17367 goto __181 17368 } 17369 17370 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += uint64(1*(DPCRE2_CODE_UNIT_WIDTH/8) + DIMM2_SIZE) 17371 goto __182 17372 __181: 17373 17374 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_CLOSE 17375 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(int32((*Topen_capitem)(unsafe.Pointer(oc)).Fnumber) >> 8) 17376 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(int32((*Topen_capitem)(unsafe.Pointer(oc)).Fnumber) & 255) 17377 code += uintptr(DIMM2_SIZE) 17378 __182: 17379 ; 17380 goto __179 17381 __179: 17382 oc = (*Topen_capitem)(unsafe.Pointer(oc)).Fnext 17383 goto __178 17384 goto __180 17385 __180: 17386 ; 17387 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 17388 if int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth) > 0 { 17389 return OP_ASSERT_ACCEPT 17390 } 17391 return OP_ACCEPT 17392 }() 17393 if !(firstcuflags == DREQ_UNSET) { 17394 goto __183 17395 } 17396 firstcuflags = DREQ_NONE 17397 __183: 17398 ; 17399 goto __12 17400 17401 __24: 17402 __25: 17403 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_pruneorskip = DTRUE 17404 // Fall through 17405 __26: 17406 __27: 17407 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(verbops[(meta-DMETA_MARK)>>16]) 17408 goto __12 17409 17410 __28: 17411 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASTHEN) 17412 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_THEN 17413 goto __12 17414 17415 // Handle verbs with arguments. Arguments can be very long, especially in 17416 // 16- and 32-bit modes, and can overflow the workspace in the first pass. 17417 // However, the argument length is constrained to be small enough to fit in 17418 // one code unit. This check happens in parse_regex(). In the first pass, 17419 // instead of putting the argument into memory, we just update the length 17420 // counter and set up an empty argument. 17421 17422 __29: 17423 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASTHEN) 17424 goto VERB_ARG 17425 17426 __30: 17427 __31: 17428 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_pruneorskip = DTRUE 17429 // Fall through 17430 __32: 17431 __33: 17432 VERB_ARG: 17433 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(verbops[(meta-DMETA_MARK)>>16]) 17434 // The length is in characters. 17435 verbarglen = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 17436 verbculen = Tuint32_t(0) 17437 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) = libc.PostIncUintptr(&code, 1) 17438 { 17439 i17 = 0 17440 __184: 17441 if !(i17 < int32(verbarglen)) { 17442 goto __186 17443 } 17444 17445 meta = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 17446 if !(utf != 0) { 17447 goto __187 17448 } 17449 mclength = X_pcre2_ord2utf_8(tls, meta, bp+72) 17450 goto __188 17451 __187: 17452 17453 mclength = Tuint32_t(1) 17454 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72)) = TPCRE2_UCHAR8(meta) 17455 __188: 17456 ; 17457 if !(lengthptr != uintptr(0)) { 17458 goto __189 17459 } 17460 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t(mclength) 17461 goto __190 17462 __189: 17463 17464 libc.Xmemcpy(tls, code, bp+72, uint64(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 17465 code += uintptr(mclength) 17466 verbculen = verbculen + mclength 17467 __190: 17468 ; 17469 goto __185 17470 __185: 17471 i17++ 17472 goto __184 17473 goto __186 17474 __186: 17475 } 17476 17477 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)))) = TPCRE2_UCHAR8(verbculen) // Fill in the code unit length 17478 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(0) // Terminating zero 17479 goto __12 17480 17481 // =================================================================== 17482 // Handle options change. The new setting must be passed back for use in 17483 // subsequent branches. Reset the greedy defaults and the case value for 17484 // firstcu and reqcu. 17485 17486 __34: 17487 *(*Tuint32_t)(unsafe.Pointer(optionsptr)) = libc.AssignUint32(&options, *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4)))) 17488 greedy_default = Tuint32_t(libc.Bool32(options&DPCRE2_UNGREEDY != Tuint32_t(0))) 17489 greedy_non_default = greedy_default ^ Tuint32_t(1) 17490 if options&DPCRE2_CASELESS != Tuint32_t(0) { 17491 req_caseopt = DREQ_CASELESS 17492 } else { 17493 req_caseopt = uint32(0) 17494 } 17495 goto __12 17496 17497 // =================================================================== 17498 // Handle conditional subpatterns. The case of (?(Rdigits) is ambiguous 17499 // because it could be a numerical check on recursion, or a name check on a 17500 // group's being set. The pre-pass sets up META_COND_RNUMBER as a name so that 17501 // we can handle it either way. We first try for a name; if not found, process 17502 // the number. 17503 17504 __35: // (?(Rdigits) 17505 __36: // (?(name) or (?'name') or ?(<name>) 17506 __37: // (?(R&name) - test for recursion 17507 bravalue = OP_COND 17508 17509 ng = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 17510 length = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 17511 17512 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 17513 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 17514 17515 name = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 17516 17517 // In the first pass, the names generated in the pre-pass are available, 17518 // but the main name table has not yet been created. Scan the list of names 17519 // generated in the pre-pass in order to get a number and whether or not 17520 // this name is duplicated. If it is not duplicated, we can handle it as a 17521 // numerical group. 17522 17523 i12 = uint32(0) 17524 __191: 17525 if !(i12 < uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 17526 goto __193 17527 } 17528 17529 if !(length == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength) && X_pcre2_strncmp_8(tls, name, (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, uint64(length)) == 0) { 17530 goto __194 17531 } 17532 17533 if !!(int32((*Tnamed_group_8)(unsafe.Pointer(ng)).Fisdup) != 0) { 17534 goto __195 17535 } 17536 17537 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17538 if meta == DMETA_COND_RNAME { 17539 return OP_RREF 17540 } 17541 return OP_CREF 17542 }() 17543 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber >> 8) 17544 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber & Tuint32_t(255)) 17545 if !((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 17546 goto __196 17547 } 17548 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = (*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber 17549 __196: 17550 ; 17551 skipunits = Tuint32_t(1 + DIMM2_SIZE) 17552 goto GROUP_PROCESS_NOTE_EMPTY 17553 __195: 17554 ; 17555 goto __193 // Found a duplicated name 17556 __194: 17557 ; 17558 goto __192 17559 __192: 17560 i12++ 17561 ng += 16 17562 goto __191 17563 goto __193 17564 __193: 17565 ; 17566 17567 // If the name was not found we have a bad reference, unless we are 17568 // dealing with R<digits>, which is treated as a recursion test by number. 17569 // 17570 17571 if !(i12 >= uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 17572 goto __197 17573 } 17574 17575 groupnumber = Tuint32_t(0) 17576 if !(meta == DMETA_COND_RNUMBER) { 17577 goto __198 17578 } 17579 17580 i12 = uint32(1) 17581 __199: 17582 if !(i12 < length) { 17583 goto __201 17584 } 17585 17586 groupnumber = groupnumber*Tuint32_t(10) + Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(name + uintptr(i12)))) - Tuint32_t('\060') 17587 if !(groupnumber > DMAX_GROUP_NUMBER) { 17588 goto __202 17589 } 17590 17591 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR61 17592 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset + Tsize_t(i12) 17593 return 0 17594 __202: 17595 ; 17596 goto __200 17597 __200: 17598 i12++ 17599 goto __199 17600 goto __201 17601 __201: 17602 ; 17603 __198: 17604 ; 17605 17606 if !(meta != DMETA_COND_RNUMBER || groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 17607 goto __203 17608 } 17609 17610 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 17611 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17612 return 0 17613 __203: 17614 ; 17615 17616 // (?Rdigits) treated as a recursion reference by number. A value of 17617 // zero (which is the result of both (?R) and (?R0)) means "any", and is 17618 // translated into RREF_ANY (which is 0xffff). 17619 17620 if !(groupnumber == Tuint32_t(0)) { 17621 goto __204 17622 } 17623 groupnumber = Tuint32_t(DRREF_ANY) 17624 __204: 17625 ; 17626 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_RREF 17627 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(groupnumber >> 8) 17628 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(groupnumber & Tuint32_t(255)) 17629 skipunits = Tuint32_t(1 + DIMM2_SIZE) 17630 goto GROUP_PROCESS_NOTE_EMPTY 17631 __197: 17632 ; 17633 17634 // A duplicated name was found. Note that if an R<digits> name is found 17635 // (META_COND_RNUMBER), it is a reference test, not a recursion test. 17636 17637 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17638 if meta == DMETA_COND_RNAME { 17639 return OP_RREF 17640 } 17641 return OP_CREF 17642 }() 17643 17644 // We have a duplicated name. In the compile pass we have to search the 17645 // main table in order to get the index and count values. 17646 17647 *(*int32)(unsafe.Pointer(bp + 84 /* count */)) = 0 // Values for first pass (avoids compiler warning) 17648 *(*int32)(unsafe.Pointer(bp + 80 /* index */)) = 0 17649 if !(lengthptr == uintptr(0) && !(find_dupname_details(tls, name, length, bp+80, 17650 bp+84, errorcodeptr, cb) != 0)) { 17651 goto __205 17652 } 17653 return 0 17654 __205: 17655 ; 17656 17657 // Add one to the opcode to change CREF/RREF into DNCREF/DNRREF and 17658 // insert appropriate data values. 17659 17660 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))++ 17661 skipunits = Tuint32_t(1 + 2*DIMM2_SIZE) 17662 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 80)) >> 8) 17663 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 80)) & 255) 17664 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 84)) >> 8) 17665 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 7)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 84)) & 255) 17666 17667 goto GROUP_PROCESS_NOTE_EMPTY 17668 17669 // The DEFINE condition is always false. Its internal groups may never 17670 // be called, so matched_char must remain false, hence the jump to 17671 // GROUP_PROCESS rather than GROUP_PROCESS_NOTE_EMPTY. 17672 17673 __38: 17674 bravalue = OP_COND 17675 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 17676 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 17677 17678 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_DEFINE 17679 skipunits = Tuint32_t(1) 17680 goto GROUP_PROCESS 17681 17682 // Conditional test of a group's being set. 17683 17684 __39: 17685 bravalue = OP_COND 17686 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 17687 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 17688 17689 groupnumber = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 17690 if !(groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 17691 goto __206 17692 } 17693 17694 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 17695 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17696 return 0 17697 __206: 17698 ; 17699 if !(groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 17700 goto __207 17701 } 17702 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = groupnumber 17703 __207: 17704 ; 17705 offset = offset - uint64(2) // Point at initial ( for too many branches error 17706 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_CREF 17707 skipunits = Tuint32_t(1 + DIMM2_SIZE) 17708 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(groupnumber >> 8) 17709 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(groupnumber & Tuint32_t(255)) 17710 goto GROUP_PROCESS_NOTE_EMPTY 17711 17712 // Test for the PCRE2 version. 17713 17714 __40: 17715 bravalue = OP_COND 17716 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) > Tuint32_t(0)) { 17717 goto __208 17718 } 17719 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17720 if Tuint32_t(DPCRE2_MAJOR) > *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) || Tuint32_t(DPCRE2_MAJOR) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) && Tuint32_t(DPCRE2_MINOR) >= *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 3*4)) { 17721 return OP_TRUE 17722 } 17723 return OP_FALSE 17724 }() 17725 goto __209 17726 __208: 17727 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17728 if Tuint32_t(DPCRE2_MAJOR) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) && Tuint32_t(DPCRE2_MINOR) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 3*4)) { 17729 return OP_TRUE 17730 } 17731 return OP_FALSE 17732 }() 17733 __209: 17734 ; 17735 skipunits = Tuint32_t(1) 17736 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(3) 17737 goto GROUP_PROCESS_NOTE_EMPTY 17738 17739 // The condition is an assertion, possibly preceded by a callout. 17740 17741 __41: 17742 bravalue = OP_COND 17743 goto GROUP_PROCESS_NOTE_EMPTY 17744 17745 // =================================================================== 17746 // Handle all kinds of nested bracketed groups. The non-capturing, 17747 // non-conditional cases are here; others come to GROUP_PROCESS via goto. 17748 17749 __42: 17750 bravalue = OP_ASSERT 17751 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17752 goto GROUP_PROCESS 17753 17754 __43: 17755 bravalue = OP_ASSERT_NA 17756 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17757 goto GROUP_PROCESS 17758 17759 // Optimize (?!) to (*FAIL) unless it is quantified - which is a weird 17760 // thing to do, but Perl allows all assertions to be quantified, and when 17761 // they contain capturing parentheses there may be a potential use for 17762 // this feature. Not that that applies to a quantified (?!) but we allow 17763 // it for uniformity. 17764 17765 __44: 17766 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) == DMETA_KET && (*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) < DMETA_ASTERISK || *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) > DMETA_MINMAX_QUERY)) { 17767 goto __210 17768 } 17769 17770 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_FAIL 17771 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 17772 goto __211 17773 __210: 17774 17775 bravalue = OP_ASSERT_NOT 17776 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17777 goto GROUP_PROCESS 17778 __211: 17779 ; 17780 goto __12 17781 17782 __45: 17783 bravalue = OP_ASSERTBACK 17784 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17785 goto GROUP_PROCESS 17786 17787 __46: 17788 bravalue = OP_ASSERTBACK_NOT 17789 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17790 goto GROUP_PROCESS 17791 17792 __47: 17793 bravalue = OP_ASSERTBACK_NA 17794 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17795 goto GROUP_PROCESS 17796 17797 __48: 17798 bravalue = OP_ONCE 17799 goto GROUP_PROCESS_NOTE_EMPTY 17800 17801 __49: 17802 bravalue = OP_SCRIPT_RUN 17803 goto GROUP_PROCESS_NOTE_EMPTY 17804 17805 __50: 17806 bravalue = OP_BRA 17807 // Fall through 17808 17809 // Process nested bracketed regex. The nesting depth is maintained for the 17810 // benefit of the stackguard function. The test for too deep nesting is now 17811 // done in parse_regex(). Assertion and DEFINE groups come to GROUP_PROCESS; 17812 // others come to GROUP_PROCESS_NOTE_EMPTY, to indicate that we need to take 17813 // note of whether or not they may match an empty string. 17814 17815 GROUP_PROCESS_NOTE_EMPTY: 17816 note_group_empty = DTRUE 17817 17818 GROUP_PROCESS: 17819 *(*Tuint16_t)(unsafe.Pointer(cb + 180)) += Tuint16_t(1) 17820 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(bravalue) 17821 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 17822 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) = code 17823 tempreqvary = (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt // Save value before group 17824 *(*Tsize_t)(unsafe.Pointer(bp + 120 /* length_prevgroup */)) = uint64(0) // Initialize for pre-compile phase 17825 17826 if !(libc.AssignInt32(&group_return, compile_regex(tls, 17827 options, 17828 bp+88, 17829 bp+96, 17830 errorcodeptr, 17831 skipunits, 17832 bp+104, 17833 bp+108, 17834 bp+112, 17835 bp+116, 17836 bcptr, 17837 cb, 17838 func() uintptr { 17839 if lengthptr == uintptr(0) { 17840 return uintptr(0) 17841 } 17842 return bp + 120 17843 }())) == 0) { 17844 goto __212 17845 } 17846 return 0 17847 __212: 17848 ; // Error 17849 17850 *(*Tuint16_t)(unsafe.Pointer(cb + 180)) -= Tuint16_t(1) 17851 17852 // If that was a non-conditional significant group (not an assertion, not a 17853 // DEFINE) that matches at least one character, then the current item matches 17854 // a character. Conditionals are handled below. 17855 17856 if !(note_group_empty != 0 && bravalue != OP_COND && group_return > 0) { 17857 goto __213 17858 } 17859 matched_char = DTRUE 17860 __213: 17861 ; 17862 17863 // If we've just compiled an assertion, pop the assert depth. 17864 17865 if !(bravalue >= OP_ASSERT && bravalue <= OP_ASSERTBACK_NA) { 17866 goto __214 17867 } 17868 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) -= Tuint16_t(1) 17869 __214: 17870 ; 17871 17872 // At the end of compiling, code is still pointing to the start of the 17873 // group, while tempcode has been updated to point past the end of the group. 17874 // The parsed pattern pointer (pptr) is on the closing META_KET. 17875 // 17876 // If this is a conditional bracket, check that there are no more than 17877 // two branches in the group, or just one if it's a DEFINE group. We do this 17878 // in the real compile phase, not in the pre-pass, where the whole group may 17879 // not be available. 17880 17881 if !(bravalue == OP_COND && lengthptr == uintptr(0)) { 17882 goto __215 17883 } 17884 17885 tc = code 17886 condcount = 0 17887 17888 __216: 17889 condcount++ 17890 tc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tc + 2))))) 17891 goto __217 17892 __217: 17893 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tc))) != OP_KET { 17894 goto __216 17895 } 17896 goto __218 17897 __218: 17898 ; 17899 17900 // A DEFINE group is never obeyed inline (the "condition" is always 17901 // false). It must have only one branch. Having checked this, change the 17902 // opcode to OP_FALSE. 17903 17904 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_DEFINE) { 17905 goto __219 17906 } 17907 17908 if !(condcount > 1) { 17909 goto __221 17910 } 17911 17912 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17913 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR54 17914 return 0 17915 __221: 17916 ; 17917 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_FALSE 17918 bravalue = OP_DEFINE // A flag to suppress char handling below 17919 goto __220 17920 __219: 17921 17922 if !(condcount > 2) { 17923 goto __222 17924 } 17925 17926 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17927 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR27 17928 return 0 17929 __222: 17930 ; 17931 if !(condcount == 1) { 17932 goto __223 17933 } 17934 *(*Tuint32_t)(unsafe.Pointer(bp + 108 /* subfirstcuflags */)) = libc.AssignPtrUint32(bp+116 /* subreqcuflags */, DREQ_NONE) 17935 goto __224 17936 __223: 17937 if !(group_return > 0) { 17938 goto __225 17939 } 17940 matched_char = DTRUE 17941 __225: 17942 ; 17943 __224: 17944 ; 17945 __220: 17946 ; 17947 __215: 17948 ; 17949 17950 // In the pre-compile phase, update the length by the length of the group, 17951 // less the brackets at either end. Then reduce the compiled code to just a 17952 // set of non-capturing brackets so that it doesn't use much memory if it is 17953 // duplicated by a quantifier. 17954 17955 if !(lengthptr != uintptr(0)) { 17956 goto __226 17957 } 17958 17959 if !(uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < *(*Tsize_t)(unsafe.Pointer(bp + 120))-uint64(2)-uint64(2*DLINK_SIZE)) { 17960 goto __227 17961 } 17962 17963 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 17964 return 0 17965 __227: 17966 ; 17967 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += *(*Tsize_t)(unsafe.Pointer(bp + 120)) - uint64(2) - uint64(2*DLINK_SIZE) 17968 code++ // This already contains bravalue 17969 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(int32(1+DLINK_SIZE) >> 8) 17970 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8((1 + DLINK_SIZE) & 255) 17971 code += uintptr(DLINK_SIZE) 17972 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KET 17973 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(int32(1+DLINK_SIZE) >> 8) 17974 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8((1 + DLINK_SIZE) & 255) 17975 code += uintptr(DLINK_SIZE) 17976 goto __12 // No need to waste time with special character handling 17977 __226: 17978 ; 17979 17980 // Otherwise update the main code pointer to the end of the group. 17981 17982 code = *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) 17983 17984 // For a DEFINE group, required and first character settings are not 17985 // relevant. 17986 17987 if !(bravalue == OP_DEFINE) { 17988 goto __228 17989 } 17990 goto __12 17991 __228: 17992 ; 17993 17994 // Handle updating of the required and first code units for other types of 17995 // group. Update for normal brackets of all kinds, and conditions with two 17996 // branches (see code above). If the bracket is followed by a quantifier with 17997 // zero repeat, we have to back off. Hence the definition of zeroreqcu and 17998 // zerofirstcu outside the main loop so that they can be accessed for the back 17999 // off. 18000 18001 zeroreqcu = reqcu 18002 zeroreqcuflags = reqcuflags 18003 zerofirstcu = firstcu 18004 zerofirstcuflags = firstcuflags 18005 groupsetfirstcu = DFALSE 18006 18007 if !(bravalue >= OP_ONCE) { 18008 goto __229 18009 } /* Not an assertion */ 18010 18011 // If we have not yet set a firstcu in this branch, take it from the 18012 // subpattern, remembering that it was set here so that a repeat of more 18013 // than one can replicate it as reqcu if necessary. If the subpattern has 18014 // no firstcu, set "none" for the whole branch. In both cases, a zero 18015 // repeat forces firstcu to "none". 18016 18017 if !(firstcuflags == DREQ_UNSET && *(*Tuint32_t)(unsafe.Pointer(bp + 108)) != DREQ_UNSET) { 18018 goto __231 18019 } 18020 18021 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 108)) < DREQ_NONE) { 18022 goto __233 18023 } 18024 18025 firstcu = *(*Tuint32_t)(unsafe.Pointer(bp + 104 /* subfirstcu */)) 18026 firstcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 108 /* subfirstcuflags */)) 18027 groupsetfirstcu = DTRUE 18028 goto __234 18029 __233: 18030 firstcuflags = DREQ_NONE 18031 __234: 18032 ; 18033 zerofirstcuflags = DREQ_NONE 18034 goto __232 18035 __231: 18036 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 108)) < DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 116)) >= DREQ_NONE) { 18037 goto __235 18038 } 18039 18040 *(*Tuint32_t)(unsafe.Pointer(bp + 112 /* subreqcu */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 104 /* subfirstcu */)) 18041 *(*Tuint32_t)(unsafe.Pointer(bp + 116 /* subreqcuflags */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 108)) | tempreqvary 18042 __235: 18043 ; 18044 __232: 18045 ; 18046 18047 // If the subpattern set a required code unit (or set a first code unit 18048 // that isn't really the first code unit - see above), set it. 18049 18050 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 116)) < DREQ_NONE) { 18051 goto __236 18052 } 18053 18054 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 112 /* subreqcu */)) 18055 reqcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 116 /* subreqcuflags */)) 18056 __236: 18057 ; 18058 goto __230 18059 __229: 18060 if !((bravalue == OP_ASSERT || bravalue == OP_ASSERT_NA) && *(*Tuint32_t)(unsafe.Pointer(bp + 116)) < DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 108)) < DREQ_NONE) { 18061 goto __237 18062 } 18063 18064 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 112 /* subreqcu */)) 18065 reqcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 116 /* subreqcuflags */)) 18066 __237: 18067 ; 18068 __230: 18069 ; 18070 18071 goto __12 // End of nested group handling 18072 18073 // =================================================================== 18074 // Handle named backreferences and recursions. 18075 18076 __51: 18077 __52: 18078 18079 is_dupname = DFALSE 18080 ng1 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 18081 length1 = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 18082 18083 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 18084 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 18085 18086 name1 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 18087 18088 // In the first pass, the names generated in the pre-pass are available, 18089 // but the main name table has not yet been created. Scan the list of names 18090 // generated in the pre-pass in order to get a number and whether or not 18091 // this name is duplicated. 18092 18093 groupnumber = Tuint32_t(0) 18094 { 18095 i13 = uint32(0) 18096 __238: 18097 if !(i13 < uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 18098 goto __240 18099 } 18100 18101 if !(length1 == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng1)).Flength) && X_pcre2_strncmp_8(tls, name1, (*Tnamed_group_8)(unsafe.Pointer(ng1)).Fname, uint64(length1)) == 0) { 18102 goto __241 18103 } 18104 18105 is_dupname = TBOOL((*Tnamed_group_8)(unsafe.Pointer(ng1)).Fisdup) 18106 groupnumber = (*Tnamed_group_8)(unsafe.Pointer(ng1)).Fnumber 18107 18108 // For a recursion, that's all that is needed. We can now go to 18109 // the code that handles numerical recursion, applying it to the first 18110 // group with the given name. 18111 18112 if !(meta == DMETA_RECURSE_BYNAME) { 18113 goto __242 18114 } 18115 18116 meta_arg = groupnumber 18117 goto HANDLE_NUMERICAL_RECURSION 18118 __242: 18119 ; 18120 18121 // For a back reference, update the back reference map and the 18122 // maximum back reference. 18123 18124 *(*Tuint32_t)(unsafe.Pointer(cb + 252)) |= func() uint32 { 18125 if groupnumber < Tuint32_t(32) { 18126 return uint32(1) << groupnumber 18127 } 18128 return uint32(1) 18129 }() 18130 if !(groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 18131 goto __243 18132 } 18133 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = groupnumber 18134 __243: 18135 ; 18136 __241: 18137 ; 18138 goto __239 18139 __239: 18140 i13++ 18141 ng1 += 16 18142 goto __238 18143 goto __240 18144 __240: 18145 } 18146 18147 // If the name was not found we have a bad reference. 18148 18149 if !(groupnumber == Tuint32_t(0)) { 18150 goto __244 18151 } 18152 18153 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 18154 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 18155 return 0 18156 __244: 18157 ; 18158 18159 // If a back reference name is not duplicated, we can handle it as 18160 // a numerical reference. 18161 18162 if !!(is_dupname != 0) { 18163 goto __245 18164 } 18165 18166 meta_arg = groupnumber 18167 goto HANDLE_SINGLE_REFERENCE 18168 __245: 18169 ; 18170 18171 // If a back reference name is duplicated, we generate a different 18172 // opcode to a numerical back reference. In the second pass we must 18173 // search for the index and count in the final name table. 18174 18175 *(*int32)(unsafe.Pointer(bp + 132 /* count1 */)) = 0 // Values for first pass (avoids compiler warning) 18176 *(*int32)(unsafe.Pointer(bp + 128 /* index1 */)) = 0 18177 if !(lengthptr == uintptr(0) && !(find_dupname_details(tls, name1, length1, bp+128, 18178 bp+132, errorcodeptr, cb) != 0)) { 18179 goto __246 18180 } 18181 return 0 18182 __246: 18183 ; 18184 18185 if !(firstcuflags == DREQ_UNSET) { 18186 goto __247 18187 } 18188 firstcuflags = DREQ_NONE 18189 __247: 18190 ; 18191 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 18192 if options&DPCRE2_CASELESS != Tuint32_t(0) { 18193 return OP_DNREFI 18194 } 18195 return OP_DNREF 18196 }() 18197 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 128)) >> 8) 18198 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 128)) & 255) 18199 code += uintptr(DIMM2_SIZE) 18200 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 132)) >> 8) 18201 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 132)) & 255) 18202 code += uintptr(DIMM2_SIZE) 18203 18204 goto __12 18205 18206 // =================================================================== 18207 // Handle a numerical callout. 18208 18209 __53: 18210 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = OP_CALLOUT 18211 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) >> 8) 18212 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) & Tuint32_t(255)) // Offset to next pattern item 18213 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) >> 8) 18214 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) & Tuint32_t(255)) // Length of next pattern item 18215 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) + 3*4))) 18216 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(3) 18217 code += uintptr(X_pcre2_OP_lengths_8[OP_CALLOUT]) 18218 goto __12 18219 18220 // =================================================================== 18221 // Handle a callout with a string argument. In the pre-pass we just compute 18222 // the length without generating anything. The length in pptr[3] includes both 18223 // delimiters; in the actual compile only the first one is copied, but a 18224 // terminating zero is added. Any doubled delimiters within the string make 18225 // this an overestimate, but it is not worth bothering about. 18226 18227 __54: 18228 if !(lengthptr != uintptr(0)) { 18229 goto __248 18230 } 18231 18232 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 3*4)) + Tuint32_t(1+4*DLINK_SIZE)) 18233 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(3) 18234 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 18235 goto __249 18236 __248: 18237 18238 length2 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) + 3*4)) 18239 callout_string = code + uintptr(1+4*DLINK_SIZE) 18240 18241 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = OP_CALLOUT_STR 18242 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) >> 8) 18243 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) & Tuint32_t(255)) // Offset to next pattern item 18244 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) >> 8) 18245 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) & Tuint32_t(255)) // Length of next pattern item 18246 18247 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(3) 18248 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 18249 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 18250 // Offset to string in pattern 18251 pp = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 18252 delimiter = Tuint32_t(libc.AssignPtrUint8(libc.PostIncUintptr(&callout_string, 1), *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pp, 1))))) 18253 if !(delimiter == Tuint32_t('\173')) { 18254 goto __250 18255 } 18256 delimiter = Tuint32_t('\175') 18257 __250: 18258 ; 18259 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 7)) = TPCRE2_UCHAR8(int32(offset+uint64(1)) >> 8) 18260 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 8)) = TPCRE2_UCHAR8(int32(offset+uint64(1)) & 255) // One after delimiter 18261 18262 // The syntax of the pattern was checked in the parsing scan. The length 18263 // includes both delimiters, but we have passed the opening one just above, 18264 // so we reduce length before testing it. The test is for > 1 because we do 18265 // not want to copy the final delimiter. This also ensures that pp[1] is 18266 // accessible. 18267 18268 __251: 18269 if !(libc.PreDecUint32(&length2, 1) > Tuint32_t(1)) { 18270 goto __252 18271 } 18272 18273 if !(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pp))) == delimiter && Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pp + 1))) == delimiter) { 18274 goto __253 18275 } 18276 18277 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&callout_string, 1))) = TPCRE2_UCHAR8(delimiter) 18278 pp += uintptr(2) 18279 length2-- 18280 goto __254 18281 __253: 18282 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&callout_string, 1))) = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pp, 1))) 18283 __254: 18284 ; 18285 goto __251 18286 __252: 18287 ; 18288 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&callout_string, 1))) = TPCRE2_UCHAR8(0) 18289 18290 // Set the length of the entire item, the advance to its end. 18291 18292 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(int32((int64(callout_string)-int64(code))/1) >> 8) 18293 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6)) = TPCRE2_UCHAR8(int32((int64(callout_string)-int64(code))/1) & 255) 18294 code = callout_string 18295 __249: 18296 ; 18297 goto __12 18298 18299 // =================================================================== 18300 // Handle repetition. The different types are all sorted out in the parsing 18301 // pass. 18302 18303 __55: 18304 __56: 18305 __57: 18306 repeat_min = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 18307 repeat_max = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 18308 goto REPEAT 18309 18310 __58: 18311 __59: 18312 __60: 18313 repeat_min = Tuint32_t(0) 18314 repeat_max = DMAX_REPEAT_COUNT + uint32(1) 18315 goto REPEAT 18316 18317 __61: 18318 __62: 18319 __63: 18320 repeat_min = Tuint32_t(1) 18321 repeat_max = DMAX_REPEAT_COUNT + uint32(1) 18322 goto REPEAT 18323 18324 __64: 18325 __65: 18326 __66: 18327 repeat_min = Tuint32_t(0) 18328 repeat_max = Tuint32_t(1) 18329 18330 REPEAT: 18331 if !(previous_matched_char != 0 && repeat_min > Tuint32_t(0)) { 18332 goto __255 18333 } 18334 matched_char = DTRUE 18335 __255: 18336 ; 18337 18338 // Remember whether this is a variable length repeat, and default to 18339 // single-char opcodes. 18340 18341 if repeat_min == repeat_max { 18342 reqvary = uint32(0) 18343 } else { 18344 reqvary = DREQ_VARY 18345 } 18346 op_type = Tuint32_t(0) 18347 18348 // Adjust first and required code units for a zero repeat. 18349 18350 if !(repeat_min == Tuint32_t(0)) { 18351 goto __256 18352 } 18353 18354 firstcu = zerofirstcu 18355 firstcuflags = zerofirstcuflags 18356 reqcu = zeroreqcu 18357 reqcuflags = zeroreqcuflags 18358 __256: 18359 ; 18360 18361 // Note the greediness and possessiveness. 18362 18363 switch meta { 18364 case DMETA_MINMAX_PLUS: 18365 goto __258 18366 case DMETA_ASTERISK_PLUS: 18367 goto __259 18368 case DMETA_PLUS_PLUS: 18369 goto __260 18370 case DMETA_QUERY_PLUS: 18371 goto __261 18372 18373 case DMETA_MINMAX_QUERY: 18374 goto __262 18375 case DMETA_ASTERISK_QUERY: 18376 goto __263 18377 case DMETA_PLUS_QUERY: 18378 goto __264 18379 case DMETA_QUERY_QUERY: 18380 goto __265 18381 18382 default: 18383 goto __266 18384 } 18385 goto __257 18386 18387 __258: 18388 __259: 18389 __260: 18390 __261: 18391 repeat_type = Tuint32_t(0) // Force greedy 18392 possessive_quantifier = DTRUE 18393 goto __257 18394 18395 __262: 18396 __263: 18397 __264: 18398 __265: 18399 repeat_type = greedy_non_default 18400 possessive_quantifier = DFALSE 18401 goto __257 18402 18403 __266: 18404 repeat_type = greedy_default 18405 possessive_quantifier = DFALSE 18406 goto __257 18407 __257: 18408 ; 18409 18410 // Save start of previous item, in case we have to move it up in order to 18411 // insert something before it, and remember what it was. 18412 18413 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) = previous 18414 op_previous = *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous)) 18415 18416 // Now handle repetition for the different types of item. If the repeat 18417 // minimum and the repeat maximum are both 1, we can ignore the quantifier for 18418 // non-parenthesized items, as they have only one alternative. For anything in 18419 // parentheses, we must not ignore if {1} is possessive. 18420 18421 switch int32(op_previous) { 18422 // If previous was a character or negated character match, abolish the 18423 // item and generate a repeat item instead. If a char item has a minimum of 18424 // more than one, ensure that it is set in reqcu - it might not be if a 18425 // sequence such as x{3} is the first thing in a branch because the x will 18426 // have gone into firstcu instead. 18427 18428 case OP_CHAR: 18429 goto __268 18430 case OP_CHARI: 18431 goto __269 18432 case OP_NOT: 18433 goto __270 18434 case OP_NOTI: 18435 goto __271 // Code shared with single character types 18436 18437 // If previous was a character class or a back reference, we put the 18438 // repeat stuff after it, but just skip the item if the repeat was {0,0}. 18439 18440 case OP_XCLASS: 18441 goto __272 18442 case OP_CLASS: 18443 goto __273 18444 case OP_NCLASS: 18445 goto __274 18446 case OP_REF: 18447 goto __275 18448 case OP_REFI: 18449 goto __276 18450 case OP_DNREF: 18451 goto __277 18452 case OP_DNREFI: 18453 goto __278 18454 18455 // If previous is OP_FAIL, it was generated by an empty class [] 18456 // (PCRE2_ALLOW_EMPTY_CLASS is set). The other ways in which OP_FAIL can be 18457 // generated, that is by (*FAIL) or (?!), disallow a quantifier at parse 18458 // time. We can just ignore this repeat. 18459 18460 case OP_FAIL: 18461 goto __279 18462 18463 // Prior to 10.30, repeated recursions were wrapped in OP_ONCE brackets 18464 // because pcre2_match() could not handle backtracking into recursively 18465 // called groups. Now that this backtracking is available, we no longer need 18466 // to do this. However, we still need to replicate recursions as we do for 18467 // groups so as to have independent backtracking points. We can replicate 18468 // for the minimum number of repeats directly. For optional repeats we now 18469 // wrap the recursion in OP_BRA brackets and make use of the bracket 18470 // repetition. 18471 18472 case OP_RECURSE: 18473 goto __280 // Set "may match empty string" 18474 18475 // Now treat as a repeated OP_BRA. 18476 // Fall through 18477 18478 // If previous was a bracket group, we may have to replicate it in 18479 // certain cases. Note that at this point we can encounter only the "basic" 18480 // bracket opcodes such as BRA and CBRA, as this is the place where they get 18481 // converted into the more special varieties such as BRAPOS and SBRA. 18482 // Originally, PCRE did not allow repetition of assertions, but now it does, 18483 // for Perl compatibility. 18484 18485 case OP_ASSERT: 18486 goto __281 18487 case OP_ASSERT_NOT: 18488 goto __282 18489 case OP_ASSERT_NA: 18490 goto __283 18491 case OP_ASSERTBACK: 18492 goto __284 18493 case OP_ASSERTBACK_NOT: 18494 goto __285 18495 case OP_ASSERTBACK_NA: 18496 goto __286 18497 case OP_ONCE: 18498 goto __287 18499 case OP_SCRIPT_RUN: 18500 goto __288 18501 case OP_BRA: 18502 goto __289 18503 case OP_CBRA: 18504 goto __290 18505 case OP_COND: 18506 goto __291 18507 18508 // If previous was a character type match (\d or similar), abolish it and 18509 // create a suitable repeat item. The code is shared with single-character 18510 // repeats by setting op_type to add a suitable offset into repeat_type. 18511 // Note the the Unicode property types will be present only when 18512 // SUPPORT_UNICODE is defined, but we don't wrap the little bits of code 18513 // here because it just makes it horribly messy. 18514 18515 default: 18516 goto __292 18517 } 18518 goto __267 18519 18520 // If previous was a character or negated character match, abolish the 18521 // item and generate a repeat item instead. If a char item has a minimum of 18522 // more than one, ensure that it is set in reqcu - it might not be if a 18523 // sequence such as x{3} is the first thing in a branch because the x will 18524 // have gone into firstcu instead. 18525 18526 __268: 18527 __269: 18528 __270: 18529 __271: 18530 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1)) { 18531 goto __293 18532 } 18533 goto END_REPEAT 18534 __293: 18535 ; 18536 op_type = chartypeoffset[int32(op_previous)-OP_CHAR] 18537 18538 // Deal with UTF characters that take up more than one code unit. 18539 18540 if !(utf != 0 && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0xc0 == 0x80) { 18541 goto __294 18542 } 18543 18544 lastchar = code - uintptr(1) 18545 __296: 18546 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastchar)))&0xc0 == 0x80) { 18547 goto __297 18548 } 18549 lastchar-- 18550 goto __296 18551 __297: 18552 ; 18553 mclength = Tuint32_t((int64(code) - int64(lastchar)) / 1) // Length of UTF character 18554 libc.Xmemcpy(tls, bp+72, lastchar, uint64(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) // Save the char 18555 goto __295 18556 __294: 18557 18558 /* Handle the case of a single code unit - either with no UTF support, or 18559 with UTF disabled, or for a single-code-unit UTF character. In the latter 18560 case, for a repeated positive match, get the caseless flag for the 18561 required code unit from the previous character, because a class like [Aa] 18562 sets a caseless A but by now the req_caseopt flag has been reset. */ 18563 18564 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72)) = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))) 18565 mclength = Tuint32_t(1) 18566 if !(int32(op_previous) <= OP_CHARI && repeat_min > Tuint32_t(1)) { 18567 goto __298 18568 } 18569 18570 reqcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72))) 18571 reqcuflags = (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt 18572 if !(int32(op_previous) == OP_CHARI) { 18573 goto __299 18574 } 18575 reqcuflags = reqcuflags | DREQ_CASELESS 18576 __299: 18577 ; 18578 __298: 18579 ; 18580 __295: 18581 ; 18582 goto OUTPUT_SINGLE_REPEAT // Code shared with single character types 18583 18584 // If previous was a character class or a back reference, we put the 18585 // repeat stuff after it, but just skip the item if the repeat was {0,0}. 18586 18587 __272: 18588 __273: 18589 __274: 18590 __275: 18591 __276: 18592 __277: 18593 __278: 18594 18595 if !(repeat_max == Tuint32_t(0)) { 18596 goto __300 18597 } 18598 18599 code = previous 18600 goto END_REPEAT 18601 __300: 18602 ; 18603 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1)) { 18604 goto __301 18605 } 18606 goto END_REPEAT 18607 __301: 18608 ; 18609 18610 if !(repeat_min == Tuint32_t(0) && repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18611 goto __302 18612 } 18613 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRSTAR + repeat_type) 18614 goto __303 18615 __302: 18616 if !(repeat_min == Tuint32_t(1) && repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18617 goto __304 18618 } 18619 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRPLUS + repeat_type) 18620 goto __305 18621 __304: 18622 if !(repeat_min == Tuint32_t(0) && repeat_max == Tuint32_t(1)) { 18623 goto __306 18624 } 18625 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRQUERY + repeat_type) 18626 goto __307 18627 __306: 18628 18629 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRRANGE + repeat_type) 18630 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_min >> 8) 18631 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_min & Tuint32_t(255)) 18632 code += uintptr(DIMM2_SIZE) 18633 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18634 goto __308 18635 } 18636 repeat_max = Tuint32_t(0) 18637 __308: 18638 ; // 2-byte encoding for max 18639 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_max >> 8) 18640 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_max & Tuint32_t(255)) 18641 code += uintptr(DIMM2_SIZE) 18642 __307: 18643 ; 18644 __305: 18645 ; 18646 __303: 18647 ; 18648 goto __267 18649 18650 // If previous is OP_FAIL, it was generated by an empty class [] 18651 // (PCRE2_ALLOW_EMPTY_CLASS is set). The other ways in which OP_FAIL can be 18652 // generated, that is by (*FAIL) or (?!), disallow a quantifier at parse 18653 // time. We can just ignore this repeat. 18654 18655 __279: 18656 goto END_REPEAT 18657 18658 // Prior to 10.30, repeated recursions were wrapped in OP_ONCE brackets 18659 // because pcre2_match() could not handle backtracking into recursively 18660 // called groups. Now that this backtracking is available, we no longer need 18661 // to do this. However, we still need to replicate recursions as we do for 18662 // groups so as to have independent backtracking points. We can replicate 18663 // for the minimum number of repeats directly. For optional repeats we now 18664 // wrap the recursion in OP_BRA brackets and make use of the bracket 18665 // repetition. 18666 18667 __280: 18668 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1) && !(possessive_quantifier != 0)) { 18669 goto __309 18670 } 18671 goto END_REPEAT 18672 __309: 18673 ; 18674 18675 // Generate unwrapped repeats for a non-zero minimum, except when the 18676 // minimum is 1 and the maximum unlimited, because that can be handled with 18677 // OP_BRA terminated by OP_KETRMAX/MIN. When the maximum is equal to the 18678 // minimum, we just need to generate the appropriate additional copies. 18679 // Otherwise we need to generate one more, to simulate the situation when 18680 // the minimum is zero. 18681 18682 if !(repeat_min > Tuint32_t(0) && (repeat_min != Tuint32_t(1) || repeat_max != DMAX_REPEAT_COUNT+uint32(1))) { 18683 goto __310 18684 } 18685 18686 replicate = int32(repeat_min) 18687 if !(repeat_min == repeat_max) { 18688 goto __311 18689 } 18690 replicate-- 18691 __311: 18692 ; 18693 18694 // In the pre-compile phase, we don't actually do the replication. We 18695 // just adjust the length as if we had. Do some paranoid checks for 18696 // potential integer overflow. The INT64_OR_DOUBLE type is a 64-bit 18697 // integer type when available, otherwise double. 18698 18699 if !(lengthptr != uintptr(0)) { 18700 goto __312 18701 } 18702 18703 delta = Tsize_t(replicate * (1 + DLINK_SIZE)) 18704 if !(Tint64_t(replicate)*int64(1+DLINK_SIZE) > int64(0x7fffffff) || uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < delta) { 18705 goto __314 18706 } 18707 18708 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 18709 return 0 18710 __314: 18711 ; 18712 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += delta 18713 goto __313 18714 __312: 18715 { 18716 i14 = 0 18717 __315: 18718 if !(i14 < replicate) { 18719 goto __317 18720 } 18721 18722 libc.Xmemcpy(tls, code, previous, uint64((1+DLINK_SIZE)*(DPCRE2_CODE_UNIT_WIDTH/8))) 18723 previous = code 18724 code += uintptr(1 + DLINK_SIZE) 18725 goto __316 18726 __316: 18727 i14++ 18728 goto __315 18729 goto __317 18730 __317: 18731 } 18732 __313: 18733 ; 18734 18735 // If the number of repeats is fixed, we are done. Otherwise, adjust 18736 // the counts and fall through. 18737 18738 if !(repeat_min == repeat_max) { 18739 goto __318 18740 } 18741 goto __267 18742 __318: 18743 ; 18744 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18745 goto __319 18746 } 18747 repeat_max = repeat_max - repeat_min 18748 __319: 18749 ; 18750 repeat_min = Tuint32_t(0) 18751 __310: 18752 ; 18753 18754 // Wrap the recursion call in OP_BRA brackets. 18755 18756 libc.Xmemmove(tls, previous+uintptr(1)+uintptr(DLINK_SIZE), previous, uint64((1+DLINK_SIZE)*(DPCRE2_CODE_UNIT_WIDTH/8))) 18757 op_previous = libc.AssignPtrUint8(previous, OP_BRA) 18758 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)) = TPCRE2_UCHAR8(int32(2+2*DLINK_SIZE) >> 8) 18759 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2)) = TPCRE2_UCHAR8((2 + 2*DLINK_SIZE) & 255) 18760 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 6)) = OP_KET 18761 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 7)) = TPCRE2_UCHAR8(int32(2+2*DLINK_SIZE) >> 8) 18762 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 8)) = TPCRE2_UCHAR8((2 + 2*DLINK_SIZE) & 255) 18763 code += uintptr(2 + 2*DLINK_SIZE) 18764 *(*Tsize_t)(unsafe.Pointer(bp + 120 /* length_prevgroup */)) = uint64(3 + 3*DLINK_SIZE) 18765 group_return = -1 // Set "may match empty string" 18766 18767 // Now treat as a repeated OP_BRA. 18768 // Fall through 18769 18770 // If previous was a bracket group, we may have to replicate it in 18771 // certain cases. Note that at this point we can encounter only the "basic" 18772 // bracket opcodes such as BRA and CBRA, as this is the place where they get 18773 // converted into the more special varieties such as BRAPOS and SBRA. 18774 // Originally, PCRE did not allow repetition of assertions, but now it does, 18775 // for Perl compatibility. 18776 18777 __281: 18778 __282: 18779 __283: 18780 __284: 18781 __285: 18782 __286: 18783 __287: 18784 __288: 18785 __289: 18786 __290: 18787 __291: 18788 18789 len = int32((int64(code) - int64(previous)) / 1) 18790 bralink = uintptr(0) 18791 brazeroptr = uintptr(0) 18792 18793 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1) && !(possessive_quantifier != 0)) { 18794 goto __320 18795 } 18796 goto END_REPEAT 18797 __320: 18798 ; 18799 18800 // Repeating a DEFINE group (or any group where the condition is always 18801 // FALSE and there is only one branch) is pointless, but Perl allows the 18802 // syntax, so we just ignore the repeat. 18803 18804 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) { 18805 goto __321 18806 } 18807 goto END_REPEAT 18808 __321: 18809 ; 18810 18811 // Perl allows all assertions to be quantified, and when they contain 18812 // capturing parentheses and/or are optional there are potential uses for 18813 // this feature. PCRE2 used to force the maximum quantifier to 1 on the 18814 // invalid grounds that further repetition was never useful. This was 18815 // always a bit pointless, since an assertion could be wrapped with a 18816 // repeated group to achieve the effect. General repetition is now 18817 // permitted, but if the maximum is unlimited it is set to one more than 18818 // the minimum. 18819 18820 if !(int32(op_previous) < OP_ONCE) { 18821 goto __322 18822 } /* Assertion */ 18823 18824 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18825 goto __323 18826 } 18827 repeat_max = repeat_min + Tuint32_t(1) 18828 __323: 18829 ; 18830 __322: 18831 ; 18832 18833 // The case of a zero minimum is special because of the need to stick 18834 // OP_BRAZERO in front of it, and because the group appears once in the 18835 // data, whereas in other cases it appears the minimum number of times. For 18836 // this reason, it is simplest to treat this case separately, as otherwise 18837 // the code gets far too messy. There are several special subcases when the 18838 // minimum is zero. 18839 18840 if !(repeat_min == Tuint32_t(0)) { 18841 goto __324 18842 } 18843 18844 // If the maximum is also zero, we used to just omit the group from 18845 // the output altogether, like this: 18846 // 18847 // ** if (repeat_max == 0) 18848 // ** { 18849 // ** code = previous; 18850 // ** goto END_REPEAT; 18851 // ** } 18852 // 18853 // However, that fails when a group or a subgroup within it is 18854 // referenced as a subroutine from elsewhere in the pattern, so now we 18855 // stick in OP_SKIPZERO in front of it so that it is skipped on 18856 // execution. As we don't have a list of which groups are referenced, we 18857 // cannot do this selectively. 18858 // 18859 // If the maximum is 1 or unlimited, we just have to stick in the 18860 // BRAZERO and do no more at this point. 18861 18862 if !(repeat_max <= Tuint32_t(1) || repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18863 goto __326 18864 } 18865 18866 libc.Xmemmove(tls, previous+uintptr(1), previous, uint64(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 18867 code++ 18868 if !(repeat_max == Tuint32_t(0)) { 18869 goto __328 18870 } 18871 18872 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = OP_SKIPZERO 18873 goto END_REPEAT 18874 __328: 18875 ; 18876 brazeroptr = previous // Save for possessive optimizing 18877 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = TPCRE2_UCHAR8(OP_BRAZERO + repeat_type) 18878 goto __327 18879 __326: 18880 18881 libc.Xmemmove(tls, previous+uintptr(2)+uintptr(DLINK_SIZE), previous, uint64(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 18882 code += uintptr(2 + DLINK_SIZE) 18883 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = TPCRE2_UCHAR8(OP_BRAZERO + repeat_type) 18884 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = OP_BRA 18885 18886 // We chain together the bracket link offset fields that have to be 18887 // filled in later when the ends of the brackets are reached. 18888 18889 if bralink == uintptr(0) { 18890 linkoffset = 0 18891 } else { 18892 linkoffset = int32((int64(previous) - int64(bralink)) / 1) 18893 } 18894 bralink = previous 18895 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous)) = TPCRE2_UCHAR8(linkoffset >> 8) 18896 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)) = TPCRE2_UCHAR8(linkoffset & 255) 18897 previous += uintptr(DLINK_SIZE) 18898 __327: 18899 ; 18900 18901 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18902 goto __329 18903 } 18904 repeat_max-- 18905 __329: 18906 ; 18907 goto __325 18908 __324: 18909 18910 if !(repeat_min > Tuint32_t(1)) { 18911 goto __330 18912 } 18913 18914 // In the pre-compile phase, we don't actually do the replication. 18915 // We just adjust the length as if we had. Do some paranoid checks for 18916 // potential integer overflow. The INT64_OR_DOUBLE type is a 64-bit 18917 // integer type when available, otherwise double. 18918 18919 if !(lengthptr != uintptr(0)) { 18920 goto __331 18921 } 18922 18923 delta1 = Tsize_t(repeat_min-Tuint32_t(1)) * *(*Tsize_t)(unsafe.Pointer(bp + 120)) 18924 if !(Tint64_t(repeat_min-Tuint32_t(1))*Tint64_t(*(*Tsize_t)(unsafe.Pointer(bp + 120))) > int64(0x7fffffff) || uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < delta1) { 18925 goto __333 18926 } 18927 18928 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 18929 return 0 18930 __333: 18931 ; 18932 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += delta1 18933 goto __332 18934 __331: 18935 18936 if !(groupsetfirstcu != 0 && reqcuflags >= DREQ_NONE) { 18937 goto __334 18938 } 18939 18940 reqcu = firstcu 18941 reqcuflags = firstcuflags 18942 __334: 18943 ; 18944 { 18945 i15 = Tuint32_t(1) 18946 __335: 18947 if !(i15 < repeat_min) { 18948 goto __337 18949 } 18950 18951 libc.Xmemcpy(tls, code, previous, uint64(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 18952 code += uintptr(len) 18953 goto __336 18954 __336: 18955 i15++ 18956 goto __335 18957 goto __337 18958 __337: 18959 } 18960 __332: 18961 ; 18962 __330: 18963 ; 18964 18965 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18966 goto __338 18967 } 18968 repeat_max = repeat_max - repeat_min 18969 __338: 18970 ; 18971 __325: 18972 ; 18973 18974 // This code is common to both the zero and non-zero minimum cases. If 18975 // the maximum is limited, it replicates the group in a nested fashion, 18976 // remembering the bracket starts on a stack. In the case of a zero 18977 // minimum, the first one was set up above. In all cases the repeat_max 18978 // now specifies the number of additional copies needed. Again, we must 18979 // remember to replicate entries on the forward reference list. 18980 18981 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18982 goto __339 18983 } 18984 18985 // In the pre-compile phase, we don't actually do the replication. We 18986 // just adjust the length as if we had. For each repetition we must add 18987 // 1 to the length for BRAZERO and for all but the last repetition we 18988 // must add 2 + 2*LINKSIZE to allow for the nesting that occurs. Do some 18989 // paranoid checks to avoid integer overflow. The INT64_OR_DOUBLE type 18990 // is a 64-bit integer type when available, otherwise double. 18991 18992 if !(lengthptr != uintptr(0) && repeat_max > Tuint32_t(0)) { 18993 goto __341 18994 } 18995 18996 delta2 = Tsize_t(repeat_max)*(*(*Tsize_t)(unsafe.Pointer(bp + 120))+uint64(1)+uint64(2)+uint64(2*DLINK_SIZE)) - uint64(2) - uint64(2*DLINK_SIZE) // Last one doesn't nest 18997 if !(Tint64_t(repeat_max)*Tint64_t(*(*Tsize_t)(unsafe.Pointer(bp + 120))+uint64(1)+uint64(2)+uint64(2*DLINK_SIZE)) > 18998 int64(0x7fffffff) || uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < delta2) { 18999 goto __343 19000 } 19001 19002 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 19003 return 0 19004 __343: 19005 ; 19006 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += delta2 19007 goto __342 19008 __341: 19009 { 19010 i16 = repeat_max 19011 __344: 19012 if !(i16 >= Tuint32_t(1)) { 19013 goto __346 19014 } 19015 19016 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_BRAZERO + repeat_type) 19017 19018 // All but the final copy start a new nesting, maintaining the 19019 // chain of brackets outstanding. 19020 19021 if !(i16 != Tuint32_t(1)) { 19022 goto __347 19023 } 19024 19025 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_BRA 19026 if bralink == uintptr(0) { 19027 linkoffset1 = 0 19028 } else { 19029 linkoffset1 = int32((int64(code) - int64(bralink)) / 1) 19030 } 19031 bralink = code 19032 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(linkoffset1 >> 8) 19033 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(linkoffset1 & 255) 19034 code += uintptr(DLINK_SIZE) 19035 __347: 19036 ; 19037 19038 libc.Xmemcpy(tls, code, previous, uint64(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 19039 code += uintptr(len) 19040 goto __345 19041 __345: 19042 i16-- 19043 goto __344 19044 goto __346 19045 __346: 19046 } 19047 __342: 19048 ; 19049 19050 // Now chain through the pending brackets, and fill in their length 19051 // fields (which are holding the chain links pro tem). 19052 19053 __348: 19054 if !(bralink != uintptr(0)) { 19055 goto __349 19056 } 19057 19058 linkoffset2 = int32((int64(code)-int64(bralink))/1 + int64(1)) 19059 bra = code - uintptr(linkoffset2) 19060 oldlinkoffset = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 2))))) 19061 if oldlinkoffset == 0 { 19062 bralink = uintptr(0) 19063 } else { 19064 bralink = bralink - uintptr(oldlinkoffset) 19065 } 19066 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KET 19067 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(linkoffset2 >> 8) 19068 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(linkoffset2 & 255) 19069 code += uintptr(DLINK_SIZE) 19070 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 1)) = TPCRE2_UCHAR8(linkoffset2 >> 8) 19071 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 2)) = TPCRE2_UCHAR8(linkoffset2 & 255) 19072 goto __348 19073 __349: 19074 ; 19075 goto __340 19076 __339: 19077 19078 ketcode = code - uintptr(1) - uintptr(DLINK_SIZE) 19079 bracode = ketcode - uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode + 2))))) 19080 19081 // Convert possessive ONCE brackets to non-capturing 19082 19083 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_ONCE && possessive_quantifier != 0) { 19084 goto __350 19085 } 19086 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) = OP_BRA 19087 __350: 19088 ; 19089 19090 // For non-possessive ONCE and for SCRIPT_RUN brackets, all we need 19091 // to do is to set the KET. 19092 19093 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_ONCE || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_SCRIPT_RUN) { 19094 goto __351 19095 } 19096 *(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode)) = TPCRE2_UCHAR8(OP_KETRMAX + repeat_type) 19097 goto __352 19098 __351: 19099 19100 // In the compile phase, adjust the opcode if the group can match 19101 // an empty string. For a conditional group with only one branch, the 19102 // value of group_return will not show "could be empty", so we must 19103 // check that separately. 19104 19105 if !(lengthptr == uintptr(0)) { 19106 goto __353 19107 } 19108 19109 if !(group_return < 0) { 19110 goto __354 19111 } 19112 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) += TPCRE2_UCHAR8(OP_SBRA - OP_BRA) 19113 __354: 19114 ; 19115 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) { 19116 goto __355 19117 } 19118 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) = OP_SCOND 19119 __355: 19120 ; 19121 __353: 19122 ; 19123 19124 // Handle possessive quantifiers. 19125 19126 if !(possessive_quantifier != 0) { 19127 goto __356 19128 } 19129 19130 // For COND brackets, we wrap the whole thing in a possessively 19131 // repeated non-capturing bracket, because we have not invented POS 19132 // versions of the COND opcodes. 19133 19134 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_COND || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_SCOND) { 19135 goto __358 19136 } 19137 19138 nlen = int32((int64(code) - int64(bracode)) / 1) 19139 libc.Xmemmove(tls, bracode+uintptr(1)+uintptr(DLINK_SIZE), bracode, uint64(nlen*(DPCRE2_CODE_UNIT_WIDTH/8))) 19140 code += uintptr(1 + DLINK_SIZE) 19141 nlen = nlen + (1 + DLINK_SIZE) 19142 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) = func() uint8 { 19143 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_COND { 19144 return OP_BRAPOS 19145 } 19146 return OP_SBRAPOS 19147 }() 19148 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KETRPOS 19149 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(nlen >> 8) 19150 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(nlen & 255) 19151 code += uintptr(DLINK_SIZE) 19152 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 1)) = TPCRE2_UCHAR8(nlen >> 8) 19153 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 2)) = TPCRE2_UCHAR8(nlen & 255) 19154 goto __359 19155 __358: 19156 19157 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) += TPCRE2_UCHAR8(1) // Switch to xxxPOS opcodes 19158 *(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode)) = OP_KETRPOS 19159 __359: 19160 ; 19161 19162 // If the minimum is zero, mark it as possessive, then unset the 19163 // possessive flag when the minimum is 0 or 1. 19164 19165 if !(brazeroptr != uintptr(0)) { 19166 goto __360 19167 } 19168 *(*TPCRE2_UCHAR8)(unsafe.Pointer(brazeroptr)) = OP_BRAPOSZERO 19169 __360: 19170 ; 19171 if !(repeat_min < Tuint32_t(2)) { 19172 goto __361 19173 } 19174 possessive_quantifier = DFALSE 19175 __361: 19176 ; 19177 goto __357 19178 __356: 19179 *(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode)) = TPCRE2_UCHAR8(OP_KETRMAX + repeat_type) 19180 __357: 19181 ; 19182 __352: 19183 ; 19184 __340: 19185 ; 19186 19187 goto __267 19188 19189 // If previous was a character type match (\d or similar), abolish it and 19190 // create a suitable repeat item. The code is shared with single-character 19191 // repeats by setting op_type to add a suitable offset into repeat_type. 19192 // Note the the Unicode property types will be present only when 19193 // SUPPORT_UNICODE is defined, but we don't wrap the little bits of code 19194 // here because it just makes it horribly messy. 19195 19196 __292: 19197 if !(int32(op_previous) >= OP_EODN) { 19198 goto __362 19199 } /* Not a character type - internal error */ 19200 19201 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR10 19202 return 0 19203 goto __363 19204 __362: 19205 19206 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1)) { 19207 goto __364 19208 } 19209 goto END_REPEAT 19210 __364: 19211 ; 19212 19213 op_type = Tuint32_t(OP_TYPESTAR - OP_STAR) // Use type opcodes 19214 mclength = Tuint32_t(0) // Not a character 19215 19216 if !(int32(op_previous) == OP_PROP || int32(op_previous) == OP_NOTPROP) { 19217 goto __365 19218 } 19219 19220 prop_type = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1))) 19221 prop_value = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2))) 19222 goto __366 19223 __365: 19224 19225 // Come here from just above with a character in mcbuffer/mclength. 19226 OUTPUT_SINGLE_REPEAT: 19227 prop_type = libc.AssignInt32(&prop_value, -1) 19228 __366: 19229 ; 19230 19231 // At this point, if prop_type == prop_value == -1 we either have a 19232 // character in mcbuffer when mclength is greater than zero, or we have 19233 // mclength zero, in which case there is a non-property character type in 19234 // op_previous. If prop_type/value are not negative, we have a property 19235 // character type in op_previous. 19236 19237 oldcode = code // Save where we were 19238 code = previous // Usually overwrite previous item 19239 19240 // If the maximum is zero then the minimum must also be zero; Perl allows 19241 // this case, so we do too - by simply omitting the item altogether. 19242 19243 if !(repeat_max == Tuint32_t(0)) { 19244 goto __367 19245 } 19246 goto END_REPEAT 19247 __367: 19248 ; 19249 19250 // Combine the op_type with the repeat_type 19251 19252 repeat_type = repeat_type + op_type 19253 19254 // A minimum of zero is handled either as the special case * or ?, or as 19255 // an UPTO, with the maximum given. 19256 19257 if !(repeat_min == Tuint32_t(0)) { 19258 goto __368 19259 } 19260 19261 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 19262 goto __370 19263 } 19264 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_STAR + repeat_type) 19265 goto __371 19266 __370: 19267 if !(repeat_max == Tuint32_t(1)) { 19268 goto __372 19269 } 19270 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_QUERY + repeat_type) 19271 goto __373 19272 __372: 19273 19274 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_UPTO + repeat_type) 19275 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_max >> 8) 19276 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_max & Tuint32_t(255)) 19277 code += uintptr(DIMM2_SIZE) 19278 __373: 19279 ; 19280 __371: 19281 ; 19282 goto __369 19283 __368: 19284 if !(repeat_min == Tuint32_t(1)) { 19285 goto __374 19286 } 19287 19288 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 19289 goto __376 19290 } 19291 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_PLUS + repeat_type) 19292 goto __377 19293 __376: 19294 19295 code = oldcode // Leave previous item in place 19296 if !(repeat_max == Tuint32_t(1)) { 19297 goto __378 19298 } 19299 goto END_REPEAT 19300 __378: 19301 ; 19302 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_UPTO + repeat_type) 19303 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8((repeat_max - Tuint32_t(1)) >> 8) 19304 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8((repeat_max - Tuint32_t(1)) & Tuint32_t(255)) 19305 code += uintptr(DIMM2_SIZE) 19306 __377: 19307 ; 19308 goto __375 19309 __374: 19310 19311 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_EXACT + op_type) // NB EXACT doesn't have repeat_type 19312 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_min >> 8) 19313 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_min & Tuint32_t(255)) 19314 code += uintptr(DIMM2_SIZE) 19315 19316 // Unless repeat_max equals repeat_min, fill in the data for EXACT, 19317 // and then generate the second opcode. For a repeated Unicode property 19318 // match, there are two extra values that define the required property, 19319 // and mclength is set zero to indicate this. 19320 19321 if !(repeat_max != repeat_min) { 19322 goto __379 19323 } 19324 19325 if !(mclength > Tuint32_t(0)) { 19326 goto __380 19327 } 19328 19329 libc.Xmemcpy(tls, code, bp+72, uint64(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 19330 code += uintptr(mclength) 19331 goto __381 19332 __380: 19333 19334 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = op_previous 19335 if !(prop_type >= 0) { 19336 goto __382 19337 } 19338 19339 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_type) 19340 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_value) 19341 __382: 19342 ; 19343 __381: 19344 ; 19345 19346 // Now set up the following opcode 19347 19348 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 19349 goto __383 19350 } 19351 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_STAR + repeat_type) 19352 goto __384 19353 __383: 19354 19355 repeat_max = repeat_max - repeat_min 19356 if !(repeat_max == Tuint32_t(1)) { 19357 goto __385 19358 } 19359 19360 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_QUERY + repeat_type) 19361 goto __386 19362 __385: 19363 19364 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_UPTO + repeat_type) 19365 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_max >> 8) 19366 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_max & Tuint32_t(255)) 19367 code += uintptr(DIMM2_SIZE) 19368 __386: 19369 ; 19370 __384: 19371 ; 19372 __379: 19373 ; 19374 __375: 19375 ; 19376 __369: 19377 ; 19378 19379 // Fill in the character or character type for the final opcode. 19380 19381 if !(mclength > Tuint32_t(0)) { 19382 goto __387 19383 } 19384 19385 libc.Xmemcpy(tls, code, bp+72, uint64(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 19386 code += uintptr(mclength) 19387 goto __388 19388 __387: 19389 19390 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = op_previous 19391 if !(prop_type >= 0) { 19392 goto __389 19393 } 19394 19395 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_type) 19396 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_value) 19397 __389: 19398 ; 19399 __388: 19400 ; 19401 __363: 19402 ; 19403 goto __267 19404 __267: 19405 ; // End of switch on different op_previous values 19406 19407 // If the character following a repeat is '+', possessive_quantifier is 19408 // TRUE. For some opcodes, there are special alternative opcodes for this 19409 // case. For anything else, we wrap the entire repeated item inside OP_ONCE 19410 // brackets. Logically, the '+' notation is just syntactic sugar, taken from 19411 // Sun's Java package, but the special opcodes can optimize it. 19412 // 19413 // Some (but not all) possessively repeated subpatterns have already been 19414 // completely handled in the code just above. For them, possessive_quantifier 19415 // is always FALSE at this stage. Note that the repeated item starts at 19416 // tempcode, not at previous, which might be the first part of a string whose 19417 // (former) last char we repeated. 19418 19419 if !(possessive_quantifier != 0) { 19420 goto __390 19421 } 19422 19423 // Possessifying an EXACT quantifier has no effect, so we can ignore it. 19424 // However, QUERY, STAR, or UPTO may follow (for quantifiers such as {5,6}, 19425 // {5,}, or {5,10}). We skip over an EXACT item; if the length of what 19426 // remains is greater than zero, there's a further opcode that can be 19427 // handled. If not, do nothing, leaving the EXACT alone. 19428 19429 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */))))) { 19430 case OP_TYPEEXACT: 19431 goto __392 19432 19433 // CHAR opcodes are used for exacts whose count is 1. 19434 19435 case OP_CHAR: 19436 goto __393 19437 case OP_CHARI: 19438 goto __394 19439 case OP_NOT: 19440 goto __395 19441 case OP_NOTI: 19442 goto __396 19443 case OP_EXACT: 19444 goto __397 19445 case OP_EXACTI: 19446 goto __398 19447 case OP_NOTEXACT: 19448 goto __399 19449 case OP_NOTEXACTI: 19450 goto __400 19451 19452 // For the class opcodes, the repeat operator appears at the end; 19453 // adjust tempcode to point to it. 19454 19455 case OP_CLASS: 19456 goto __401 19457 case OP_NCLASS: 19458 goto __402 19459 19460 case OP_XCLASS: 19461 goto __403 19462 } 19463 goto __391 19464 19465 __392: 19466 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) += uintptr(int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88))))]) + func() int32 { 19467 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 3))) == OP_PROP || 19468 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 3))) == OP_NOTPROP { 19469 return 2 19470 } 19471 return 0 19472 }()) 19473 goto __391 19474 19475 // CHAR opcodes are used for exacts whose count is 1. 19476 19477 __393: 19478 __394: 19479 __395: 19480 __396: 19481 __397: 19482 __398: 19483 __399: 19484 __400: 19485 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) += uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */))))]) 19486 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + libc.UintptrFromInt32(-1)))) >= 0xc0) { 19487 goto __404 19488 } 19489 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + libc.UintptrFromInt32(-1))))&0x3f]) 19490 __404: 19491 ; 19492 goto __391 19493 19494 // For the class opcodes, the repeat operator appears at the end; 19495 // adjust tempcode to point to it. 19496 19497 __401: 19498 __402: 19499 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) += uintptr(uint64(1) + uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 19500 goto __391 19501 19502 __403: 19503 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2))))) 19504 goto __391 19505 __391: 19506 ; 19507 19508 // If tempcode is equal to code (which points to the end of the repeated 19509 // item), it means we have skipped an EXACT item but there is no following 19510 // QUERY, STAR, or UPTO; the value of len will be 0, and we do nothing. In 19511 // all other cases, tempcode will be pointing to the repeat opcode, and will 19512 // be less than code, so the value of len will be greater than 0. 19513 19514 len1 = int32((int64(code) - int64(*(*uintptr)(unsafe.Pointer(bp + 88)))) / 1) 19515 if !(len1 > 0) { 19516 goto __405 19517 } 19518 19519 repcode = uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */))))) 19520 19521 // There is a table for possessifying opcodes, all of which are less 19522 // than OP_CALLOUT. A zero entry means there is no possessified version. 19523 // 19524 19525 if !(repcode < OP_CALLOUT && int32(opcode_possessify[repcode]) > 0) { 19526 goto __406 19527 } 19528 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)))) = opcode_possessify[repcode] 19529 goto __407 19530 __406: 19531 19532 libc.Xmemmove(tls, *(*uintptr)(unsafe.Pointer(bp + 88))+uintptr(1)+uintptr(DLINK_SIZE), *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)), uint64(len1*(DPCRE2_CODE_UNIT_WIDTH/8))) 19533 code += uintptr(1 + DLINK_SIZE) 19534 len1 = len1 + (1 + DLINK_SIZE) 19535 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)))) = OP_ONCE 19536 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KET 19537 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(len1 >> 8) 19538 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(len1 & 255) 19539 code += uintptr(DLINK_SIZE) 19540 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) + 1)) = TPCRE2_UCHAR8(len1 >> 8) 19541 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) + 2)) = TPCRE2_UCHAR8(len1 & 255) 19542 __407: 19543 ; 19544 __405: 19545 ; 19546 __390: 19547 ; 19548 19549 // We set the "follows varying string" flag for subsequently encountered 19550 // reqcus if it isn't already set and we have just passed a varying length 19551 // item. 19552 19553 END_REPEAT: 19554 *(*Tuint32_t)(unsafe.Pointer(cb + 276)) |= reqvary 19555 goto __12 19556 19557 // =================================================================== 19558 // Handle a 32-bit data character with a value greater than META_END. 19559 19560 __67: 19561 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 19562 goto NORMAL_CHAR 19563 19564 // =============================================================== 19565 // Handle a back reference by number, which is the meta argument. The 19566 // pattern offsets for back references to group numbers less than 10 are held 19567 // in a special vector, to avoid using more than two parsed pattern elements 19568 // in 64-bit environments. We only need the offset to the first occurrence, 19569 // because if that doesn't fail, subsequent ones will also be OK. 19570 19571 __68: 19572 if !(meta_arg < Tuint32_t(10)) { 19573 goto __408 19574 } 19575 offset = *(*Tsize_t)(unsafe.Pointer(cb + 88 + uintptr(meta_arg)*8)) 19576 goto __409 19577 __408: 19578 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 19579 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 19580 __409: 19581 ; 19582 19583 if !(meta_arg > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 19584 goto __410 19585 } 19586 19587 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 19588 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 // Non-existent subpattern 19589 return 0 19590 __410: 19591 ; 19592 19593 // Come here from named backref handling when the reference is to a 19594 // single group (that is, not to a duplicated name). The back reference 19595 // data will have already been updated. We must disable firstcu if not 19596 // set, to cope with cases like (?=(\w+))\1: which would otherwise set ':' 19597 // later. 19598 19599 HANDLE_SINGLE_REFERENCE: 19600 if !(firstcuflags == DREQ_UNSET) { 19601 goto __411 19602 } 19603 zerofirstcuflags = libc.AssignUint32(&firstcuflags, DREQ_NONE) 19604 __411: 19605 ; 19606 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19607 if options&DPCRE2_CASELESS != Tuint32_t(0) { 19608 return OP_REFI 19609 } 19610 return OP_REF 19611 }() 19612 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(meta_arg >> 8) 19613 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(meta_arg & Tuint32_t(255)) 19614 code += uintptr(DIMM2_SIZE) 19615 19616 // Update the map of back references, and keep the highest one. We 19617 // could do this in parse_regex() for numerical back references, but not 19618 // for named back references, because we don't know the numbers to which 19619 // named back references refer. So we do it all in this function. 19620 19621 *(*Tuint32_t)(unsafe.Pointer(cb + 252)) |= func() uint32 { 19622 if meta_arg < Tuint32_t(32) { 19623 return uint32(1) << meta_arg 19624 } 19625 return uint32(1) 19626 }() 19627 if !(meta_arg > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 19628 goto __412 19629 } 19630 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = meta_arg 19631 __412: 19632 ; 19633 goto __12 19634 19635 // =============================================================== 19636 // Handle recursion by inserting the number of the called group (which is 19637 // the meta argument) after OP_RECURSE. At the end of compiling the pattern is 19638 // scanned and these numbers are replaced by offsets within the pattern. It is 19639 // done like this to avoid problems with forward references and adjusting 19640 // offsets when groups are duplicated and moved (as discovered in previous 19641 // implementations). Note that a recursion does not have a set first 19642 // character. 19643 19644 __69: 19645 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 19646 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 19647 19648 if !(meta_arg > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 19649 goto __413 19650 } 19651 19652 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 19653 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 // Non-existent subpattern 19654 return 0 19655 __413: 19656 ; 19657 HANDLE_NUMERICAL_RECURSION: 19658 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = OP_RECURSE 19659 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(meta_arg >> 8) 19660 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)) = TPCRE2_UCHAR8(meta_arg & Tuint32_t(255)) 19661 code += uintptr(1 + DLINK_SIZE) 19662 groupsetfirstcu = DFALSE 19663 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_recurse = DTRUE 19664 if !(firstcuflags == DREQ_UNSET) { 19665 goto __414 19666 } 19667 firstcuflags = DREQ_NONE 19668 __414: 19669 ; 19670 zerofirstcu = firstcu 19671 zerofirstcuflags = firstcuflags 19672 goto __12 19673 19674 // =============================================================== 19675 // Handle capturing parentheses; the number is the meta argument. 19676 19677 __70: 19678 bravalue = OP_CBRA 19679 skipunits = Tuint32_t(DIMM2_SIZE) 19680 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = TPCRE2_UCHAR8(meta_arg >> 8) 19681 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(meta_arg & Tuint32_t(255)) 19682 (*Tcompile_block_8)(unsafe.Pointer(cb)).Flastcapture = meta_arg 19683 goto GROUP_PROCESS_NOTE_EMPTY 19684 19685 // =============================================================== 19686 // Handle escape sequence items. For ones like \d, the ESC_values are 19687 // arranged to be the same as the corresponding OP_values in the default case 19688 // when PCRE2_UCP is not set (which is the only case in which they will appear 19689 // here). 19690 // 19691 // Note: \Q and \E are never seen here, as they were dealt with in 19692 // parse_pattern(). Neither are numerical back references or recursions, which 19693 // were turned into META_BACKREF or META_RECURSE items, respectively. \k and 19694 // \g, when followed by names, are turned into META_BACKREF_BYNAME or 19695 // META_RECURSE_BYNAME. 19696 19697 __71: 19698 19699 // We can test for escape sequences that consume a character because their 19700 // values lie between ESC_b and ESC_Z; this may have to change if any new ones 19701 // are ever created. For these sequences, we disable the setting of a first 19702 // character if it hasn't already been set. 19703 19704 if !(meta_arg > ESC_b && meta_arg < ESC_Z) { 19705 goto __415 19706 } 19707 19708 matched_char = DTRUE 19709 if !(firstcuflags == DREQ_UNSET) { 19710 goto __416 19711 } 19712 firstcuflags = DREQ_NONE 19713 __416: 19714 ; 19715 __415: 19716 ; 19717 19718 // Set values to reset to if this is followed by a zero repeat. 19719 19720 zerofirstcu = firstcu 19721 zerofirstcuflags = firstcuflags 19722 zeroreqcu = reqcu 19723 zeroreqcuflags = reqcuflags 19724 19725 // If Unicode is not supported, \P and \p are not allowed and are 19726 // faulted at parse time, so will never appear here. 19727 19728 if !(meta_arg == ESC_P || meta_arg == ESC_p) { 19729 goto __417 19730 } 19731 19732 ptype1 = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) >> 16 19733 pdata1 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))) & Tuint32_t(0xffff) 19734 19735 // The special case of \p{Any} is compiled to OP_ALLANY so as to benefit 19736 // from the auto-anchoring code. 19737 19738 if !(meta_arg == ESC_p && ptype1 == Tuint32_t(DPT_ANY)) { 19739 goto __418 19740 } 19741 19742 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_ALLANY 19743 goto __419 19744 __418: 19745 19746 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19747 if meta_arg == ESC_p { 19748 return OP_PROP 19749 } 19750 return OP_NOTPROP 19751 }() 19752 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(ptype1) 19753 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(pdata1) 19754 __419: 19755 ; 19756 goto __12 // End META_ESCAPE 19757 __417: 19758 ; 19759 19760 // \K is forbidden in lookarounds since 10.38 because that's what Perl has 19761 // done. However, there's an option, in case anyone was relying on it. 19762 19763 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)) { 19764 goto __420 19765 } 19766 19767 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR99 19768 return 0 19769 __420: 19770 ; 19771 19772 // For the rest (including \X when Unicode is supported - if not it's 19773 // faulted at parse time), the OP value is the escape value when PCRE2_UCP is 19774 // not set; if it is set, these escapes do not show up here because they are 19775 // converted into Unicode property tests in parse_regex(). Note that \b and \B 19776 // do a one-character lookbehind, and \A also behaves as if it does. 19777 19778 if !(meta_arg == ESC_C) { 19779 goto __421 19780 } 19781 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASBKC) 19782 __421: 19783 ; // Record 19784 if !((meta_arg == ESC_b || meta_arg == ESC_B || meta_arg == ESC_A) && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind == 0) { 19785 goto __422 19786 } 19787 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind = 1 19788 __422: 19789 ; 19790 19791 // In non-UTF mode, and for both 32-bit modes, we turn \C into OP_ALLANY 19792 // instead of OP_ANYBYTE so that it works in DFA mode and in lookbehinds. 19793 19794 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19795 if !(utf != 0) && meta_arg == ESC_C { 19796 return OP_ALLANY 19797 } 19798 return uint8(meta_arg) 19799 }() 19800 goto __12 // End META_ESCAPE 19801 19802 // =================================================================== 19803 // Handle an unrecognized meta value. A parsed pattern value less than 19804 // META_END is a literal. Otherwise we have a problem. 19805 19806 __72: 19807 if !(meta >= DMETA_END) { 19808 goto __423 19809 } 19810 19811 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR89 // Internal error - unrecognized. 19812 return 0 19813 __423: 19814 ; 19815 19816 // Handle a literal character. We come here by goto in the case of a 19817 // 32-bit, non-UTF character whose value is greater than META_END. 19818 19819 NORMAL_CHAR: 19820 meta = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)))) // Get the full 32 bits 19821 NORMAL_CHAR_SET: // Character is already in meta 19822 matched_char = DTRUE 19823 19824 // For caseless UTF or UCP mode, check whether this character has more than 19825 // one other case. If so, generate a special OP_PROP item instead of OP_CHARI. 19826 // 19827 19828 if !((utf != 0 || ucp != 0) && options&DPCRE2_CASELESS != Tuint32_t(0)) { 19829 goto __424 19830 } 19831 19832 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) 19833 if !(caseset != Tuint32_t(0)) { 19834 goto __425 19835 } 19836 19837 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_PROP 19838 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(DPT_CLIST) 19839 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(caseset) 19840 if !(firstcuflags == DREQ_UNSET) { 19841 goto __426 19842 } 19843 firstcuflags = libc.AssignUint32(&zerofirstcuflags, DREQ_NONE) 19844 __426: 19845 ; 19846 goto __12 // End handling this meta item 19847 __425: 19848 ; 19849 __424: 19850 ; 19851 19852 // Caseful matches, or caseless and not one of the multicase characters. We 19853 // come here by goto in the case of a positive class that contains only 19854 // case-partners of a character with just two cases; matched_char has already 19855 // been set TRUE and options fudged if necessary. 19856 19857 CLASS_CASELESS_CHAR: 19858 19859 // Get the character's code units into mcbuffer, with the length in 19860 // mclength. When not in UTF mode, the length is always 1. 19861 19862 if !(utf != 0) { 19863 goto __427 19864 } 19865 mclength = X_pcre2_ord2utf_8(tls, meta, bp+72) 19866 goto __428 19867 __427: 19868 19869 mclength = Tuint32_t(1) 19870 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72)) = TPCRE2_UCHAR8(meta) 19871 __428: 19872 ; 19873 19874 // Generate the appropriate code 19875 19876 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19877 if options&DPCRE2_CASELESS != Tuint32_t(0) { 19878 return OP_CHARI 19879 } 19880 return OP_CHAR 19881 }() 19882 libc.Xmemcpy(tls, code, bp+72, uint64(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 19883 code += uintptr(mclength) 19884 19885 // Remember if \r or \n were seen 19886 19887 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72))) == '\015' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72))) == '\012') { 19888 goto __429 19889 } 19890 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASCRORLF) 19891 __429: 19892 ; 19893 19894 // Set the first and required code units appropriately. If no previous 19895 // first code unit, set it from this character, but revert to none on a zero 19896 // repeat. Otherwise, leave the firstcu value alone, and don't change it on 19897 // a zero repeat. 19898 19899 if !(firstcuflags == DREQ_UNSET) { 19900 goto __430 19901 } 19902 19903 zerofirstcuflags = DREQ_NONE 19904 zeroreqcu = reqcu 19905 zeroreqcuflags = reqcuflags 19906 19907 // If the character is more than one code unit long, we can set a single 19908 // firstcu only if it is not to be matched caselessly. Multiple possible 19909 // starting code units may be picked up later in the studying code. 19910 19911 if !(mclength == Tuint32_t(1) || req_caseopt == Tuint32_t(0)) { 19912 goto __432 19913 } 19914 19915 firstcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72))) 19916 firstcuflags = req_caseopt 19917 if !(mclength != Tuint32_t(1)) { 19918 goto __434 19919 } 19920 19921 reqcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) 19922 reqcuflags = (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt 19923 __434: 19924 ; 19925 goto __433 19926 __432: 19927 firstcuflags = libc.AssignUint32(&reqcuflags, DREQ_NONE) 19928 __433: 19929 ; 19930 goto __431 19931 __430: 19932 19933 zerofirstcu = firstcu 19934 zerofirstcuflags = firstcuflags 19935 zeroreqcu = reqcu 19936 zeroreqcuflags = reqcuflags 19937 if !(mclength == Tuint32_t(1) || req_caseopt == Tuint32_t(0)) { 19938 goto __435 19939 } 19940 19941 reqcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) 19942 reqcuflags = req_caseopt | (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt 19943 __435: 19944 ; 19945 __431: 19946 ; 19947 19948 // If caselessness was temporarily instated, reset it. 19949 19950 if !(reset_caseful != 0) { 19951 goto __436 19952 } 19953 19954 options = options & libc.CplUint32(DPCRE2_CASELESS) 19955 req_caseopt = Tuint32_t(0) 19956 reset_caseful = DFALSE 19957 __436: 19958 ; 19959 19960 goto __12 // End literal character handling 19961 __12: 19962 ; // End of big switch 19963 goto __2 19964 __2: 19965 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 19966 goto __1 19967 goto __3 19968 __3: 19969 ; 19970 return int32(0) // End of big loop 19971 19972 // Control never reaches here. 19973 } 19974 19975 // ************************************************ 19976 // 19977 // Compile regex: a sequence of alternatives * 19978 // 19979 19980 // On entry, pptr is pointing past the bracket meta, but on return it points to 19981 // the closing bracket or META_END. The code variable is pointing at the code unit 19982 // into which the BRA operator has been stored. This function is used during the 19983 // pre-compile phase when we are trying to find out the amount of memory needed, 19984 // as well as during the real compile phase. The value of lengthptr distinguishes 19985 // the two phases. 19986 // 19987 // Arguments: 19988 // options option bits, including any changes for this subpattern 19989 // codeptr -> the address of the current code pointer 19990 // pptrptr -> the address of the current parsed pattern pointer 19991 // errorcodeptr -> pointer to error code variable 19992 // skipunits skip this many code units at start (for brackets and OP_COND) 19993 // firstcuptr place to put the first required code unit 19994 // firstcuflagsptr place to put the first code unit flags 19995 // reqcuptr place to put the last required code unit 19996 // reqcuflagsptr place to put the last required code unit flags 19997 // bcptr pointer to the chain of currently open branches 19998 // cb points to the data block with tables pointers etc. 19999 // lengthptr NULL during the real compile phase 20000 // points to length accumulator during pre-compile phase 20001 // 20002 // Returns: 0 There has been an error 20003 // +1 Success, this group must match at least one character 20004 // -1 Success, this group may match an empty string 20005 20006 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: */ 20007 bp := tls.Alloc(80) 20008 defer tls.Free(80) 20009 *(*Tuint32_t)(unsafe.Pointer(bp + 16)) = options 20010 20011 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) = *(*uintptr)(unsafe.Pointer(codeptr)) 20012 var last_branch uintptr = *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) 20013 var start_bracket uintptr = *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) 20014 var lookbehind TBOOL 20015 // var capitem Topen_capitem at bp, 16 20016 20017 var capnumber int32 = 0 20018 var okreturn int32 = 1 20019 *(*uintptr)(unsafe.Pointer(bp + 32 /* pptr */)) = *(*uintptr)(unsafe.Pointer(pptrptr)) 20020 var firstcu Tuint32_t 20021 var reqcu Tuint32_t 20022 var lookbehindlength Tuint32_t 20023 var firstcuflags Tuint32_t 20024 var reqcuflags Tuint32_t 20025 // var branchfirstcu Tuint32_t at bp+40, 4 20026 20027 // var branchreqcu Tuint32_t at bp+48, 4 20028 20029 // var branchfirstcuflags Tuint32_t at bp+44, 4 20030 20031 // var branchreqcuflags Tuint32_t at bp+52, 4 20032 20033 // var length Tsize_t at bp+72, 8 20034 20035 // var bc Tbranch_chain_8 at bp+56, 16 20036 20037 // If set, call the external function that checks for stack availability. 20038 20039 if (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fstack_guard != uintptr(0) && (*struct { 20040 f func(*libc.TLS, Tuint32_t, uintptr) int32 20041 })(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 { 20042 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR33 20043 return 0 20044 } 20045 20046 // Miscellaneous initialization 20047 20048 (*Tbranch_chain_8)(unsafe.Pointer(bp + 56 /* &bc */)).Fouter = bcptr 20049 (*Tbranch_chain_8)(unsafe.Pointer(bp + 56 /* &bc */)).Fcurrent_branch = *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) 20050 20051 firstcu = libc.AssignUint32(&reqcu, Tuint32_t(0)) 20052 firstcuflags = libc.AssignUint32(&reqcuflags, DREQ_UNSET) 20053 20054 // Accumulate the length for use in the pre-compile phase. Start with the 20055 // length of the BRA and KET and any extra code units that are required at the 20056 // beginning. We accumulate in a local variable to save frequent testing of 20057 // lengthptr for NULL. We cannot do this by looking at the value of 'code' at the 20058 // start and end of each alternative, because compiled items are discarded during 20059 // the pre-compile phase so that the workspace is not exceeded. 20060 20061 *(*Tsize_t)(unsafe.Pointer(bp + 72 /* length */)) = Tsize_t(Tuint32_t(2+2*DLINK_SIZE) + skipunits) 20062 20063 // Remember if this is a lookbehind assertion, and if it is, save its length 20064 // and skip over the pattern offset. 20065 20066 lookbehind = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24))))) == OP_ASSERTBACK || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24))))) == OP_ASSERTBACK_NOT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24))))) == OP_ASSERTBACK_NA) 20067 20068 if lookbehind != 0 { 20069 lookbehindlength = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)) + libc.UintptrFromInt32(-1)*4)) & 0x0000ffff 20070 *(*uintptr)(unsafe.Pointer(bp + 32 /* pptr */)) += 4 * uintptr(DSIZEOFFSET) 20071 } else { 20072 lookbehindlength = Tuint32_t(0) 20073 } 20074 20075 // If this is a capturing subpattern, add to the chain of open capturing items 20076 // so that we can detect them if (*ACCEPT) is encountered. Note that only OP_CBRA 20077 // need be tested here; changing this opcode to one of its variants, e.g. 20078 // OP_SCBRAPOS, happens later, after the group has been compiled. 20079 20080 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24))))) == OP_CBRA { 20081 capnumber = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)) + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)) + 4))))) 20082 (*Topen_capitem)(unsafe.Pointer(bp /* &capitem */)).Fnumber = Tuint16_t(capnumber) 20083 (*Topen_capitem)(unsafe.Pointer(bp /* &capitem */)).Fnext = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps 20084 (*Topen_capitem)(unsafe.Pointer(bp /* &capitem */)).Fassert_depth = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth 20085 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps = bp /* &capitem */ 20086 } 20087 20088 // Offset is set zero to mark that this bracket is still open 20089 20090 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 1)) = TPCRE2_UCHAR8(int32(0) >> 8) 20091 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 2)) = TPCRE2_UCHAR8(0 & 255) 20092 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) += uintptr(Tuint32_t(1+DLINK_SIZE) + skipunits) 20093 20094 // Loop for each alternative branch 20095 20096 for { 20097 var branch_return int32 20098 20099 // Insert OP_REVERSE if this is as lookbehind assertion. 20100 20101 if lookbehind != 0 && lookbehindlength > Tuint32_t(0) { 20102 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)), 1))) = OP_REVERSE 20103 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)))) = TPCRE2_UCHAR8(lookbehindlength >> 8) 20104 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 1)) = TPCRE2_UCHAR8(lookbehindlength & Tuint32_t(255)) 20105 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) += uintptr(DLINK_SIZE) 20106 *(*Tsize_t)(unsafe.Pointer(bp + 72 /* length */)) += uint64(1 + DLINK_SIZE) 20107 } 20108 20109 // Now compile the branch; in the pre-compile phase its length gets added 20110 // into the length. 20111 20112 if libc.AssignInt32(&branch_return, compile_branch(tls, bp+16, bp+24, bp+32, errorcodeptr, bp+40, 20113 bp+44, bp+48, bp+52, bp+56, 20114 cb, func() uintptr { 20115 if lengthptr == uintptr(0) { 20116 return uintptr(0) 20117 } 20118 return bp + 72 20119 }())) == 0 { 20120 return 0 20121 } 20122 20123 // If a branch can match an empty string, so can the whole group. 20124 20125 if branch_return < 0 { 20126 okreturn = -1 20127 } 20128 20129 // In the real compile phase, there is some post-processing to be done. 20130 20131 if lengthptr == uintptr(0) { 20132 // If this is the first branch, the firstcu and reqcu values for the 20133 // branch become the values for the regex. 20134 20135 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch))) != OP_ALT { 20136 firstcu = *(*Tuint32_t)(unsafe.Pointer(bp + 40 /* branchfirstcu */)) 20137 firstcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 44 /* branchfirstcuflags */)) 20138 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 48 /* branchreqcu */)) 20139 reqcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 52 /* branchreqcuflags */)) 20140 } else { 20141 // If we previously had a firstcu, but it doesn't match the new branch, 20142 // we have to abandon the firstcu for the regex, but if there was 20143 // previously no reqcu, it takes on the value of the old firstcu. 20144 20145 if firstcuflags != *(*Tuint32_t)(unsafe.Pointer(bp + 44)) || firstcu != *(*Tuint32_t)(unsafe.Pointer(bp + 40)) { 20146 if firstcuflags < DREQ_NONE { 20147 if reqcuflags >= DREQ_NONE { 20148 reqcu = firstcu 20149 reqcuflags = firstcuflags 20150 } 20151 } 20152 firstcuflags = DREQ_NONE 20153 } 20154 20155 // If we (now or from before) have no firstcu, a firstcu from the 20156 // branch becomes a reqcu if there isn't a branch reqcu. 20157 20158 if firstcuflags >= DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 44)) < DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 52)) >= DREQ_NONE { 20159 *(*Tuint32_t)(unsafe.Pointer(bp + 48 /* branchreqcu */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 40 /* branchfirstcu */)) 20160 *(*Tuint32_t)(unsafe.Pointer(bp + 52 /* branchreqcuflags */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 44 /* branchfirstcuflags */)) 20161 } 20162 20163 // Now ensure that the reqcus match 20164 20165 if reqcuflags&libc.CplUint32(DREQ_VARY) != *(*Tuint32_t)(unsafe.Pointer(bp + 52))&libc.CplUint32(DREQ_VARY) || reqcu != *(*Tuint32_t)(unsafe.Pointer(bp + 48)) { 20166 reqcuflags = DREQ_NONE 20167 } else { 20168 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 48 /* branchreqcu */)) 20169 reqcuflags = reqcuflags | *(*Tuint32_t)(unsafe.Pointer(bp + 52)) // To "or" REQ_VARY if present 20170 } 20171 } 20172 } 20173 20174 // Handle reaching the end of the expression, either ')' or end of pattern. 20175 // In the real compile phase, go back through the alternative branches and 20176 // reverse the chain of offsets, with the field in the BRA item now becoming an 20177 // offset to the first alternative. If there are no alternatives, it points to 20178 // the end of the group. The length in the terminating ket is always the length 20179 // of the whole bracketed item. Return leaving the pointer at the terminating 20180 // char. 20181 20182 if *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))&0xffff0000 != DMETA_ALT { 20183 if lengthptr == uintptr(0) { 20184 var branch_length Tsize_t = Tsize_t((int64(*(*uintptr)(unsafe.Pointer(bp + 24))) - int64(last_branch)) / 1) 20185 for __ccgo := true; __ccgo; __ccgo = branch_length > uint64(0) { 20186 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))))) 20187 *(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch + 1)) = TPCRE2_UCHAR8(branch_length >> 8) 20188 *(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch + 2)) = TPCRE2_UCHAR8(branch_length & uint64(255)) 20189 branch_length = prev_length 20190 last_branch -= uintptr(branch_length) 20191 } 20192 } 20193 20194 // Fill in the ket 20195 20196 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)))) = OP_KET 20197 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 1)) = TPCRE2_UCHAR8(int32((int64(*(*uintptr)(unsafe.Pointer(bp + 24)))-int64(start_bracket))/1) >> 8) 20198 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 2)) = TPCRE2_UCHAR8(int32((int64(*(*uintptr)(unsafe.Pointer(bp + 24)))-int64(start_bracket))/1) & 255) 20199 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) += uintptr(1 + DLINK_SIZE) 20200 20201 // If it was a capturing subpattern, remove the block from the chain. 20202 20203 if capnumber > 0 { 20204 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps = (*Topen_capitem)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps)).Fnext 20205 } 20206 20207 // Set values to pass back 20208 20209 *(*uintptr)(unsafe.Pointer(codeptr)) = *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) 20210 *(*uintptr)(unsafe.Pointer(pptrptr)) = *(*uintptr)(unsafe.Pointer(bp + 32 /* pptr */)) 20211 *(*Tuint32_t)(unsafe.Pointer(firstcuptr)) = firstcu 20212 *(*Tuint32_t)(unsafe.Pointer(firstcuflagsptr)) = firstcuflags 20213 *(*Tuint32_t)(unsafe.Pointer(reqcuptr)) = reqcu 20214 *(*Tuint32_t)(unsafe.Pointer(reqcuflagsptr)) = reqcuflags 20215 if lengthptr != uintptr(0) { 20216 if uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < *(*Tsize_t)(unsafe.Pointer(bp + 72)) { 20217 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 20218 return 0 20219 } 20220 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += *(*Tsize_t)(unsafe.Pointer(bp + 72)) 20221 } 20222 return okreturn 20223 } 20224 20225 // Another branch follows. In the pre-compile phase, we can move the code 20226 // pointer back to where it was for the start of the first branch. (That is, 20227 // pretend that each branch is the only one.) 20228 // 20229 // In the real compile phase, insert an ALT node. Its length field points back 20230 // to the previous branch while the bracket remains open. At the end the chain 20231 // is reversed. It's done like this so that the start of the bracket has a 20232 // zero offset until it is closed, making it possible to detect recursion. 20233 20234 if lengthptr != uintptr(0) { 20235 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) = *(*uintptr)(unsafe.Pointer(codeptr)) + uintptr(1) + uintptr(DLINK_SIZE) + uintptr(skipunits) 20236 *(*Tsize_t)(unsafe.Pointer(bp + 72 /* length */)) += uint64(1 + DLINK_SIZE) 20237 } else { 20238 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)))) = OP_ALT 20239 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 1)) = TPCRE2_UCHAR8(int32((int64(*(*uintptr)(unsafe.Pointer(bp + 24)))-int64(last_branch))/1) >> 8) 20240 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 2)) = TPCRE2_UCHAR8(int32((int64(*(*uintptr)(unsafe.Pointer(bp + 24)))-int64(last_branch))/1) & 255) 20241 (*Tbranch_chain_8)(unsafe.Pointer(bp + 56 /* &bc */)).Fcurrent_branch = libc.AssignUintptr(&last_branch, *(*uintptr)(unsafe.Pointer(bp + 24 /* code */))) 20242 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) += uintptr(1 + DLINK_SIZE) 20243 } 20244 20245 // Set the lookbehind length (if not in a lookbehind the value will be zero) 20246 // and then advance past the vertical bar. 20247 20248 lookbehindlength = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) & 0x0000ffff 20249 *(*uintptr)(unsafe.Pointer(bp + 32 /* pptr */)) += 4 20250 } 20251 return int32(0) 20252 // Control never reaches here 20253 } 20254 20255 // ************************************************ 20256 // 20257 // Check for anchored pattern * 20258 // 20259 20260 // Try to find out if this is an anchored regular expression. Consider each 20261 // alternative branch. If they all start with OP_SOD or OP_CIRC, or with a bracket 20262 // all of whose alternatives start with OP_SOD or OP_CIRC (recurse ad lib), then 20263 // it's anchored. However, if this is a multiline pattern, then only OP_SOD will 20264 // be found, because ^ generates OP_CIRCM in that mode. 20265 // 20266 // We can also consider a regex to be anchored if OP_SOM starts all its branches. 20267 // This is the code for \G, which means "match at start of match position, taking 20268 // into account the match offset". 20269 // 20270 // A branch is also implicitly anchored if it starts with .* and DOTALL is set, 20271 // because that will try the rest of the pattern at all possible matching points, 20272 // so there is no point trying again.... er .... 20273 // 20274 // .... except when the .* appears inside capturing parentheses, and there is a 20275 // subsequent back reference to those parentheses. We haven't enough information 20276 // to catch that case precisely. 20277 // 20278 // At first, the best we could do was to detect when .* was in capturing brackets 20279 // and the highest back reference was greater than or equal to that level. 20280 // However, by keeping a bitmap of the first 31 back references, we can catch some 20281 // of the more common cases more precisely. 20282 // 20283 // ... A second exception is when the .* appears inside an atomic group, because 20284 // this prevents the number of characters it matches from being adjusted. 20285 // 20286 // Arguments: 20287 // code points to start of the compiled pattern 20288 // bracket_map a bitmap of which brackets we are inside while testing; this 20289 // handles up to substring 31; after that we just have to take 20290 // the less precise approach 20291 // cb points to the compile data block 20292 // atomcount atomic group level 20293 // inassert TRUE if in an assertion 20294 // 20295 // Returns: TRUE or FALSE 20296 20297 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: */ 20298 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 20299 var scode TPCRE2_SPTR8 = first_significant_code(tls, 20300 code+uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]), DFALSE) 20301 var op int32 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) 20302 20303 // Non-capturing brackets 20304 20305 if op == OP_BRA || op == OP_BRAPOS || op == OP_SBRA || op == OP_SBRAPOS { 20306 if !(is_anchored(tls, scode, bracket_map, cb, atomcount, inassert) != 0) { 20307 return DFALSE 20308 } 20309 } else if op == OP_CBRA || op == OP_CBRAPOS || op == OP_SCBRA || op == OP_SCBRAPOS { 20310 var n int32 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 4))))) 20311 var new_map Tuint32_t = bracket_map | func() uint32 { 20312 if n < 32 { 20313 return uint32(1) << n 20314 } 20315 return uint32(1) 20316 }() 20317 if !(is_anchored(tls, scode, new_map, cb, atomcount, inassert) != 0) { 20318 return DFALSE 20319 } 20320 } else if op == OP_ASSERT || op == OP_ASSERT_NA { 20321 if !(is_anchored(tls, scode, bracket_map, cb, atomcount, DTRUE) != 0) { 20322 return DFALSE 20323 } 20324 } else if op == OP_COND || op == OP_SCOND { 20325 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 { 20326 return DFALSE 20327 } 20328 if !(is_anchored(tls, scode, bracket_map, cb, atomcount, inassert) != 0) { 20329 return DFALSE 20330 } 20331 } else if op == OP_ONCE { 20332 if !(is_anchored(tls, scode, bracket_map, cb, atomcount+1, inassert) != 0) { 20333 return DFALSE 20334 } 20335 } else if op == OP_TYPESTAR || op == OP_TYPEMINSTAR || op == OP_TYPEPOSSTAR { 20336 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) { 20337 return DFALSE 20338 } 20339 } else if op != OP_SOD && op != OP_SOM && op != OP_CIRC { 20340 return DFALSE 20341 } 20342 20343 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20344 } // Loop for each alternative 20345 return DTRUE 20346 } 20347 20348 // ************************************************ 20349 // 20350 // Check for starting with ^ or .* * 20351 // 20352 20353 // This is called to find out if every branch starts with ^ or .* so that 20354 // "first char" processing can be done to speed things up in multiline 20355 // matching and for non-DOTALL patterns that start with .* (which must start at 20356 // the beginning or after \n). As in the case of is_anchored() (see above), we 20357 // have to take account of back references to capturing brackets that contain .* 20358 // because in that case we can't make the assumption. Also, the appearance of .* 20359 // inside atomic brackets or in an assertion, or in a pattern that contains *PRUNE 20360 // or *SKIP does not count, because once again the assumption no longer holds. 20361 // 20362 // Arguments: 20363 // code points to start of the compiled pattern or a group 20364 // bracket_map a bitmap of which brackets we are inside while testing; this 20365 // handles up to substring 31; after that we just have to take 20366 // the less precise approach 20367 // cb points to the compile data 20368 // atomcount atomic group level 20369 // inassert TRUE if in an assertion 20370 // 20371 // Returns: TRUE or FALSE 20372 20373 func is_startline(tls *libc.TLS, code TPCRE2_SPTR8, bracket_map uint32, cb uintptr, atomcount int32, inassert TBOOL) TBOOL { /* pcre2_compile.c:8499:1: */ 20374 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 20375 var scode TPCRE2_SPTR8 = first_significant_code(tls, 20376 code+uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]), DFALSE) 20377 var op int32 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) 20378 20379 // If we are at the start of a conditional assertion group, *both* the 20380 // conditional assertion *and* what follows the condition must satisfy the test 20381 // for start of line. Other kinds of condition fail. Note that there may be an 20382 // auto-callout at the start of a condition. 20383 20384 if op == OP_COND { 20385 scode += TPCRE2_SPTR8(1 + DLINK_SIZE) 20386 20387 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) == OP_CALLOUT { 20388 scode += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[OP_CALLOUT]) 20389 } else if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) == OP_CALLOUT_STR { 20390 scode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 6))))) 20391 } 20392 20393 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) { 20394 case OP_CREF: 20395 fallthrough 20396 case OP_DNCREF: 20397 fallthrough 20398 case OP_RREF: 20399 fallthrough 20400 case OP_DNRREF: 20401 fallthrough 20402 case OP_FAIL: 20403 fallthrough 20404 case OP_FALSE: 20405 fallthrough 20406 case OP_TRUE: 20407 return DFALSE 20408 fallthrough 20409 20410 default: // Assertion 20411 if !(is_startline(tls, scode, bracket_map, cb, atomcount, DTRUE) != 0) { 20412 return DFALSE 20413 } 20414 for __ccgo1 := true; __ccgo1; __ccgo1 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) == OP_ALT { 20415 scode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 2))))) 20416 } 20417 scode += TPCRE2_SPTR8(1 + DLINK_SIZE) 20418 break 20419 } 20420 scode = first_significant_code(tls, scode, DFALSE) 20421 op = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) 20422 } 20423 20424 // Non-capturing brackets 20425 20426 if op == OP_BRA || op == OP_BRAPOS || op == OP_SBRA || op == OP_SBRAPOS { 20427 if !(is_startline(tls, scode, bracket_map, cb, atomcount, inassert) != 0) { 20428 return DFALSE 20429 } 20430 } else if op == OP_CBRA || op == OP_CBRAPOS || op == OP_SCBRA || op == OP_SCBRAPOS { 20431 var n int32 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 4))))) 20432 var new_map int32 = int32(bracket_map | func() uint32 { 20433 if n < 32 { 20434 return uint32(1) << n 20435 } 20436 return uint32(1) 20437 }()) 20438 if !(is_startline(tls, scode, uint32(new_map), cb, atomcount, inassert) != 0) { 20439 return DFALSE 20440 } 20441 } else if op == OP_ASSERT || op == OP_ASSERT_NA { 20442 if !(is_startline(tls, scode, bracket_map, cb, atomcount, DTRUE) != 0) { 20443 return DFALSE 20444 } 20445 } else if op == OP_ONCE { 20446 if !(is_startline(tls, scode, bracket_map, cb, atomcount+1, inassert) != 0) { 20447 return DFALSE 20448 } 20449 } else if op == OP_TYPESTAR || op == OP_TYPEMINSTAR || op == OP_TYPEPOSSTAR { 20450 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) { 20451 return DFALSE 20452 } 20453 } else if op != OP_CIRC && op != OP_CIRCM { 20454 return DFALSE 20455 } 20456 20457 // Move on to the next alternative 20458 20459 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20460 } // Loop for each alternative 20461 return DTRUE 20462 } 20463 20464 // ************************************************ 20465 // 20466 // Scan compiled regex for recursion reference * 20467 // 20468 20469 // This function scans through a compiled pattern until it finds an instance of 20470 // OP_RECURSE. 20471 // 20472 // Arguments: 20473 // code points to start of expression 20474 // utf TRUE in UTF mode 20475 // 20476 // Returns: pointer to the opcode for OP_RECURSE, or NULL if not found 20477 20478 func find_recurse(tls *libc.TLS, code TPCRE2_SPTR8, utf TBOOL) TPCRE2_SPTR8 { /* pcre2_compile.c:8621:1: */ 20479 for { 20480 var c TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 20481 if int32(c) == OP_END { 20482 return uintptr(0) 20483 } 20484 if int32(c) == OP_RECURSE { 20485 return code 20486 } 20487 20488 // XCLASS is used for classes that cannot be represented just by a bit map. 20489 // This includes negated single high-valued characters. CALLOUT_STR is used for 20490 // callouts with string arguments. In both cases the length in the table is 20491 // zero; the actual length is stored in the compiled code. 20492 20493 if int32(c) == OP_XCLASS { 20494 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20495 } else if int32(c) == OP_CALLOUT_STR { 20496 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 20497 } else { 20498 switch int32(c) { 20499 case OP_TYPESTAR: 20500 fallthrough 20501 case OP_TYPEMINSTAR: 20502 fallthrough 20503 case OP_TYPEPLUS: 20504 fallthrough 20505 case OP_TYPEMINPLUS: 20506 fallthrough 20507 case OP_TYPEQUERY: 20508 fallthrough 20509 case OP_TYPEMINQUERY: 20510 fallthrough 20511 case OP_TYPEPOSSTAR: 20512 fallthrough 20513 case OP_TYPEPOSPLUS: 20514 fallthrough 20515 case OP_TYPEPOSQUERY: 20516 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_NOTPROP { 20517 code += uintptr(2) 20518 } 20519 break 20520 fallthrough 20521 20522 case OP_TYPEPOSUPTO: 20523 fallthrough 20524 case OP_TYPEUPTO: 20525 fallthrough 20526 case OP_TYPEMINUPTO: 20527 fallthrough 20528 case OP_TYPEEXACT: 20529 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_NOTPROP { 20530 code += uintptr(2) 20531 } 20532 break 20533 fallthrough 20534 20535 case OP_MARK: 20536 fallthrough 20537 case OP_COMMIT_ARG: 20538 fallthrough 20539 case OP_PRUNE_ARG: 20540 fallthrough 20541 case OP_SKIP_ARG: 20542 fallthrough 20543 case OP_THEN_ARG: 20544 code += TPCRE2_SPTR8(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 20545 break 20546 } 20547 20548 // Add in the fixed length from the table 20549 20550 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 20551 20552 // In UTF-8 and UTF-16 modes, opcodes that are followed by a character may 20553 // be followed by a multi-unit character. The length in the table is a 20554 // minimum, so we have to arrange to skip the extra units. 20555 20556 if utf != 0 { 20557 switch int32(c) { 20558 case OP_CHAR: 20559 fallthrough 20560 case OP_CHARI: 20561 fallthrough 20562 case OP_NOT: 20563 fallthrough 20564 case OP_NOTI: 20565 fallthrough 20566 case OP_EXACT: 20567 fallthrough 20568 case OP_EXACTI: 20569 fallthrough 20570 case OP_NOTEXACT: 20571 fallthrough 20572 case OP_NOTEXACTI: 20573 fallthrough 20574 case OP_UPTO: 20575 fallthrough 20576 case OP_UPTOI: 20577 fallthrough 20578 case OP_NOTUPTO: 20579 fallthrough 20580 case OP_NOTUPTOI: 20581 fallthrough 20582 case OP_MINUPTO: 20583 fallthrough 20584 case OP_MINUPTOI: 20585 fallthrough 20586 case OP_NOTMINUPTO: 20587 fallthrough 20588 case OP_NOTMINUPTOI: 20589 fallthrough 20590 case OP_POSUPTO: 20591 fallthrough 20592 case OP_POSUPTOI: 20593 fallthrough 20594 case OP_NOTPOSUPTO: 20595 fallthrough 20596 case OP_NOTPOSUPTOI: 20597 fallthrough 20598 case OP_STAR: 20599 fallthrough 20600 case OP_STARI: 20601 fallthrough 20602 case OP_NOTSTAR: 20603 fallthrough 20604 case OP_NOTSTARI: 20605 fallthrough 20606 case OP_MINSTAR: 20607 fallthrough 20608 case OP_MINSTARI: 20609 fallthrough 20610 case OP_NOTMINSTAR: 20611 fallthrough 20612 case OP_NOTMINSTARI: 20613 fallthrough 20614 case OP_POSSTAR: 20615 fallthrough 20616 case OP_POSSTARI: 20617 fallthrough 20618 case OP_NOTPOSSTAR: 20619 fallthrough 20620 case OP_NOTPOSSTARI: 20621 fallthrough 20622 case OP_PLUS: 20623 fallthrough 20624 case OP_PLUSI: 20625 fallthrough 20626 case OP_NOTPLUS: 20627 fallthrough 20628 case OP_NOTPLUSI: 20629 fallthrough 20630 case OP_MINPLUS: 20631 fallthrough 20632 case OP_MINPLUSI: 20633 fallthrough 20634 case OP_NOTMINPLUS: 20635 fallthrough 20636 case OP_NOTMINPLUSI: 20637 fallthrough 20638 case OP_POSPLUS: 20639 fallthrough 20640 case OP_POSPLUSI: 20641 fallthrough 20642 case OP_NOTPOSPLUS: 20643 fallthrough 20644 case OP_NOTPOSPLUSI: 20645 fallthrough 20646 case OP_QUERY: 20647 fallthrough 20648 case OP_QUERYI: 20649 fallthrough 20650 case OP_NOTQUERY: 20651 fallthrough 20652 case OP_NOTQUERYI: 20653 fallthrough 20654 case OP_MINQUERY: 20655 fallthrough 20656 case OP_MINQUERYI: 20657 fallthrough 20658 case OP_NOTMINQUERY: 20659 fallthrough 20660 case OP_NOTMINQUERYI: 20661 fallthrough 20662 case OP_POSQUERY: 20663 fallthrough 20664 case OP_POSQUERYI: 20665 fallthrough 20666 case OP_NOTPOSQUERY: 20667 fallthrough 20668 case OP_NOTPOSQUERYI: 20669 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) >= 0xc0 { 20670 code += TPCRE2_SPTR8(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0x3f]) 20671 } 20672 break 20673 } 20674 } 20675 } 20676 } 20677 return TPCRE2_SPTR8(0) 20678 } 20679 20680 // ************************************************ 20681 // 20682 // Check for asserted fixed first code unit * 20683 // 20684 20685 // During compilation, the "first code unit" settings from forward assertions 20686 // are discarded, because they can cause conflicts with actual literals that 20687 // follow. However, if we end up without a first code unit setting for an 20688 // unanchored pattern, it is worth scanning the regex to see if there is an 20689 // initial asserted first code unit. If all branches start with the same asserted 20690 // code unit, or with a non-conditional bracket all of whose alternatives start 20691 // with the same asserted code unit (recurse ad lib), then we return that code 20692 // unit, with the flags set to zero or REQ_CASELESS; otherwise return zero with 20693 // REQ_NONE in the flags. 20694 // 20695 // Arguments: 20696 // code points to start of compiled pattern 20697 // flags points to the first code unit flags 20698 // inassert non-zero if in an assertion 20699 // 20700 // Returns: the fixed first code unit, or 0 with REQ_NONE in flags 20701 20702 func find_firstassertedcu(tls *libc.TLS, code TPCRE2_SPTR8, flags uintptr, inassert Tuint32_t) Tuint32_t { /* pcre2_compile.c:8777:1: */ 20703 bp := tls.Alloc(4) 20704 defer tls.Free(4) 20705 20706 var c Tuint32_t = Tuint32_t(0) 20707 var cflags Tuint32_t = DREQ_NONE 20708 20709 *(*Tuint32_t)(unsafe.Pointer(flags)) = DREQ_NONE 20710 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 20711 var d Tuint32_t 20712 // var dflags Tuint32_t at bp, 4 20713 20714 var xl int32 20715 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 { 20716 xl = DIMM2_SIZE 20717 } else { 20718 xl = 0 20719 } 20720 var scode TPCRE2_SPTR8 = first_significant_code(tls, code+uintptr(1)+uintptr(DLINK_SIZE)+uintptr(xl), DTRUE) 20721 var op TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(scode)) 20722 20723 switch int32(op) { 20724 default: 20725 return Tuint32_t(0) 20726 20727 case OP_BRA: 20728 fallthrough 20729 case OP_BRAPOS: 20730 fallthrough 20731 case OP_CBRA: 20732 fallthrough 20733 case OP_SCBRA: 20734 fallthrough 20735 case OP_CBRAPOS: 20736 fallthrough 20737 case OP_SCBRAPOS: 20738 fallthrough 20739 case OP_ASSERT: 20740 fallthrough 20741 case OP_ASSERT_NA: 20742 fallthrough 20743 case OP_ONCE: 20744 fallthrough 20745 case OP_SCRIPT_RUN: 20746 d = find_firstassertedcu(tls, scode, bp, inassert+func() uint32 { 20747 if int32(op) == OP_ASSERT || int32(op) == OP_ASSERT_NA { 20748 return uint32(1) 20749 } 20750 return uint32(0) 20751 }()) 20752 if *(*Tuint32_t)(unsafe.Pointer(bp)) >= DREQ_NONE { 20753 return Tuint32_t(0) 20754 } 20755 if cflags >= DREQ_NONE { 20756 c = d 20757 cflags = *(*Tuint32_t)(unsafe.Pointer(bp /* dflags */)) 20758 } else if c != d || cflags != *(*Tuint32_t)(unsafe.Pointer(bp)) { 20759 return Tuint32_t(0) 20760 } 20761 break 20762 20763 case OP_EXACT: 20764 scode += TPCRE2_SPTR8(DIMM2_SIZE) 20765 fallthrough 20766 // Fall through 20767 20768 case OP_CHAR: 20769 fallthrough 20770 case OP_PLUS: 20771 fallthrough 20772 case OP_MINPLUS: 20773 fallthrough 20774 case OP_POSPLUS: 20775 if inassert == Tuint32_t(0) { 20776 return Tuint32_t(0) 20777 } 20778 if cflags >= DREQ_NONE { 20779 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) 20780 cflags = Tuint32_t(0) 20781 } else if c != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) { 20782 return Tuint32_t(0) 20783 } 20784 break 20785 20786 case OP_EXACTI: 20787 scode += TPCRE2_SPTR8(DIMM2_SIZE) 20788 fallthrough 20789 // Fall through 20790 20791 case OP_CHARI: 20792 fallthrough 20793 case OP_PLUSI: 20794 fallthrough 20795 case OP_MINPLUSI: 20796 fallthrough 20797 case OP_POSPLUSI: 20798 if inassert == Tuint32_t(0) { 20799 return Tuint32_t(0) 20800 } 20801 20802 // If the character is more than one code unit long, we cannot set its 20803 // first code unit when matching caselessly. Later scanning may pick up 20804 // multiple code units. 20805 20806 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) >= 0x80 { 20807 return Tuint32_t(0) 20808 } 20809 20810 if cflags >= DREQ_NONE { 20811 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) 20812 cflags = DREQ_CASELESS 20813 } else if c != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) { 20814 return Tuint32_t(0) 20815 } 20816 break 20817 } 20818 20819 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20820 } 20821 20822 *(*Tuint32_t)(unsafe.Pointer(flags)) = cflags 20823 return c 20824 } 20825 20826 // ************************************************ 20827 // 20828 // Add an entry to the name/number table * 20829 // 20830 20831 // This function is called between compiling passes to add an entry to the 20832 // name/number table, maintaining alphabetical order. Checking for permitted 20833 // and forbidden duplicates has already been done. 20834 // 20835 // Arguments: 20836 // cb the compile data block 20837 // name the name to add 20838 // length the length of the name 20839 // groupno the group number 20840 // tablecount the count of names in the table so far 20841 // 20842 // Returns: nothing 20843 20844 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: */ 20845 var i Tuint32_t 20846 var slot uintptr = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_table 20847 20848 for i = Tuint32_t(0); i < tablecount; i++ { 20849 var crc int32 = libc.Xmemcmp(tls, name, slot+uintptr(DIMM2_SIZE), uint64(length*(DPCRE2_CODE_UNIT_WIDTH/8))) 20850 if crc == 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + uintptr(DIMM2_SIZE+length)))) != 0 { 20851 crc = -1 20852 } // Current name is a substring 20853 20854 // Make space in the table and break the loop for an earlier name. For a 20855 // duplicate or later name, carry on. We do this for duplicates so that in the 20856 // simple case (when ?(| is not used) they are in order of their numbers. In all 20857 // cases they are in the order in which they appear in the pattern. 20858 20859 if crc < 0 { 20860 libc.Xmemmove(tls, slot+uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size), slot, 20861 uint64((tablecount-i)*Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size)*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 20862 break 20863 } 20864 20865 // Continue the loop for a later or duplicate name 20866 20867 slot += uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size) 20868 } 20869 20870 *(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)) = TPCRE2_UCHAR8(groupno >> 8) 20871 *(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1)) = TPCRE2_UCHAR8(groupno & uint32(255)) 20872 libc.Xmemcpy(tls, slot+uintptr(DIMM2_SIZE), name, uint64(length*(DPCRE2_CODE_UNIT_WIDTH/8))) 20873 20874 // Add a terminating zero and fill the rest of the slot with zeroes so that 20875 // the memory is all initialized. Otherwise valgrind moans about uninitialized 20876 // memory when saving serialized compiled patterns. 20877 20878 libc.Xmemset(tls, slot+uintptr(DIMM2_SIZE)+uintptr(length), 0, 20879 uint64((int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size)-length-DIMM2_SIZE)*(DPCRE2_CODE_UNIT_WIDTH/8))) 20880 } 20881 20882 // ************************************************ 20883 // 20884 // Skip in parsed pattern * 20885 // 20886 20887 // This function is called to skip parts of the parsed pattern when finding the 20888 // length of a lookbehind branch. It is called after (*ACCEPT) and (*FAIL) to find 20889 // the end of the branch, it is called to skip over an internal lookaround or 20890 // (DEFINE) group, and it is also called to skip to the end of a class, during 20891 // which it will never encounter nested groups (but there's no need to have 20892 // special code for that). 20893 // 20894 // When called to find the end of a branch or group, pptr must point to the first 20895 // meta code inside the branch, not the branch-starting code. In other cases it 20896 // can point to the item that causes the function to be called. 20897 // 20898 // Arguments: 20899 // pptr current pointer to skip from 20900 // skiptype PSKIP_CLASS when skipping to end of class 20901 // PSKIP_ALT when META_ALT ends the skip 20902 // PSKIP_KET when only META_KET ends the skip 20903 // 20904 // Returns: new value of pptr 20905 // NULL if META_END is reached - should never occur 20906 // or for an unknown meta value - likewise 20907 20908 func parsed_skip(tls *libc.TLS, pptr uintptr, skiptype Tuint32_t) uintptr { /* pcre2_compile.c:8950:17: */ 20909 var nestlevel Tuint32_t = Tuint32_t(0) 20910 20911 for ; ; pptr += 4 { 20912 var meta Tuint32_t = *(*Tuint32_t)(unsafe.Pointer(pptr)) & 0xffff0000 20913 20914 switch meta { 20915 default: // Just skip over most items 20916 if meta < DMETA_END { 20917 continue 20918 } // Literal 20919 break 20920 20921 // This should never occur. 20922 20923 case DMETA_END: 20924 return uintptr(0) 20925 20926 // The data for these items is variable in length. 20927 20928 case DMETA_BACKREF: // Offset is present only if group >= 10 20929 if *(*Tuint32_t)(unsafe.Pointer(pptr))&0x0000ffff >= Tuint32_t(10) { 20930 pptr += 4 * uintptr(DSIZEOFFSET) 20931 } 20932 break 20933 20934 case DMETA_ESCAPE: // A few escapes are followed by data items. 20935 switch *(*Tuint32_t)(unsafe.Pointer(pptr)) & 0x0000ffff { 20936 case ESC_P: 20937 fallthrough 20938 case ESC_p: 20939 pptr += 4 * uintptr(1) 20940 break 20941 20942 case ESC_g: 20943 fallthrough 20944 case ESC_k: 20945 pptr += 4 * uintptr(1+DSIZEOFFSET) 20946 break 20947 } 20948 break 20949 20950 case DMETA_MARK: 20951 fallthrough // Add the length of the name. 20952 case DMETA_COMMIT_ARG: 20953 fallthrough 20954 case DMETA_PRUNE_ARG: 20955 fallthrough 20956 case DMETA_SKIP_ARG: 20957 fallthrough 20958 case DMETA_THEN_ARG: 20959 pptr += 4 * uintptr(*(*Tuint32_t)(unsafe.Pointer(pptr + 1*4))) 20960 break 20961 20962 // These are the "active" items in this loop. 20963 20964 case DMETA_CLASS_END: 20965 if skiptype == PSKIP_CLASS { 20966 return pptr 20967 } 20968 break 20969 20970 case DMETA_ATOMIC: 20971 fallthrough 20972 case DMETA_CAPTURE: 20973 fallthrough 20974 case DMETA_COND_ASSERT: 20975 fallthrough 20976 case DMETA_COND_DEFINE: 20977 fallthrough 20978 case DMETA_COND_NAME: 20979 fallthrough 20980 case DMETA_COND_NUMBER: 20981 fallthrough 20982 case DMETA_COND_RNAME: 20983 fallthrough 20984 case DMETA_COND_RNUMBER: 20985 fallthrough 20986 case DMETA_COND_VERSION: 20987 fallthrough 20988 case DMETA_LOOKAHEAD: 20989 fallthrough 20990 case DMETA_LOOKAHEADNOT: 20991 fallthrough 20992 case DMETA_LOOKAHEAD_NA: 20993 fallthrough 20994 case DMETA_LOOKBEHIND: 20995 fallthrough 20996 case DMETA_LOOKBEHINDNOT: 20997 fallthrough 20998 case DMETA_LOOKBEHIND_NA: 20999 fallthrough 21000 case DMETA_NOCAPTURE: 21001 fallthrough 21002 case DMETA_SCRIPT_RUN: 21003 nestlevel++ 21004 break 21005 21006 case DMETA_ALT: 21007 if nestlevel == Tuint32_t(0) && skiptype == PSKIP_ALT { 21008 return pptr 21009 } 21010 break 21011 21012 case DMETA_KET: 21013 if nestlevel == Tuint32_t(0) { 21014 return pptr 21015 } 21016 nestlevel-- 21017 break 21018 } 21019 21020 // The extra data item length for each meta is in a table. 21021 21022 meta = meta >> 16 & Tuint32_t(0x7fff) 21023 if uint64(meta) >= uint64(unsafe.Sizeof(meta_extra_lengths)) { 21024 return uintptr(0) 21025 } 21026 pptr += 4 * uintptr(meta_extra_lengths[meta]) 21027 } 21028 // Control never reaches here 21029 return pptr 21030 } 21031 21032 // ************************************************ 21033 // 21034 // Find length of a parsed group * 21035 // 21036 21037 // This is called for nested groups within a branch of a lookbehind whose 21038 // length is being computed. If all the branches in the nested group have the same 21039 // length, that is OK. On entry, the pointer must be at the first element after 21040 // the group initializing code. On exit it points to OP_KET. Caching is used to 21041 // improve processing speed when the same capturing group occurs many times. 21042 // 21043 // Arguments: 21044 // pptrptr pointer to pointer in the parsed pattern 21045 // isinline FALSE if a reference or recursion; TRUE for inline group 21046 // errcodeptr pointer to the errorcode 21047 // lcptr pointer to the loop counter 21048 // group number of captured group or -1 for a non-capturing group 21049 // recurses chain of recurse_check to catch mutual recursion 21050 // cb pointer to the compile data 21051 // 21052 // Returns: the group length or a negative number 21053 21054 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: */ 21055 var branchlength int32 21056 var grouplength int32 21057 var groupinfo Tuint32_t 21058 grouplength = -1 21059 21060 // The cache can be used only if there is no possibility of there being two 21061 // groups with the same number. We do not need to set the end pointer for a group 21062 // that is being processed as a back reference or recursion, but we must do so for 21063 // an inline group. 21064 21065 if !(group > 0 && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_flags&Tuint32_t(DPCRE2_DUPCAPUSED) == Tuint32_t(0)) { 21066 goto __1 21067 } 21068 21069 groupinfo = *(*Tuint32_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fgroupinfo + uintptr(group)*4)) 21070 if !(groupinfo&DGI_NOT_FIXED_LENGTH != Tuint32_t(0)) { 21071 goto __2 21072 } 21073 return -1 21074 __2: 21075 ; 21076 if !(groupinfo&DGI_SET_FIXED_LENGTH != Tuint32_t(0)) { 21077 goto __3 21078 } 21079 21080 if !(isinline != 0) { 21081 goto __4 21082 } 21083 *(*uintptr)(unsafe.Pointer(pptrptr)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(pptrptr)), PSKIP_KET) 21084 __4: 21085 ; 21086 return int32(groupinfo & DGI_FIXED_LENGTH_MASK) 21087 __3: 21088 ; 21089 __1: 21090 ; 21091 21092 // Scan the group. In this case we find the end pointer of necessity. 21093 21094 __5: 21095 21096 branchlength = get_branchlength(tls, pptrptr, errcodeptr, lcptr, recurses, cb) 21097 if !(branchlength < 0) { 21098 goto __8 21099 } 21100 goto ISNOTFIXED 21101 __8: 21102 ; 21103 if !(grouplength == -1) { 21104 goto __9 21105 } 21106 grouplength = branchlength 21107 goto __10 21108 __9: 21109 if !(grouplength != branchlength) { 21110 goto __11 21111 } 21112 goto ISNOTFIXED 21113 __11: 21114 ; 21115 __10: 21116 ; 21117 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pptrptr)))) == DMETA_KET) { 21118 goto __12 21119 } 21120 goto __7 21121 __12: 21122 ; 21123 *(*uintptr)(unsafe.Pointer(pptrptr)) += uintptr(1) * 4 // Skip META_ALT 21124 goto __6 21125 __6: 21126 goto __5 21127 goto __7 21128 __7: 21129 ; 21130 21131 if !(group > 0) { 21132 goto __13 21133 } 21134 *(*Tuint32_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fgroupinfo + uintptr(group)*4)) |= DGI_SET_FIXED_LENGTH | uint32(grouplength) 21135 __13: 21136 ; 21137 return grouplength 21138 21139 ISNOTFIXED: 21140 if !(group > 0) { 21141 goto __14 21142 } 21143 *(*Tuint32_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fgroupinfo + uintptr(group)*4)) |= DGI_NOT_FIXED_LENGTH 21144 __14: 21145 ; 21146 return -1 21147 } 21148 21149 // ************************************************ 21150 // 21151 // Find length of a parsed branch * 21152 // 21153 21154 // Return a fixed length for a branch in a lookbehind, giving an error if the 21155 // length is not fixed. On entry, *pptrptr points to the first element inside the 21156 // branch. On exit it is set to point to the ALT or KET. 21157 // 21158 // Arguments: 21159 // pptrptr pointer to pointer in the parsed pattern 21160 // errcodeptr pointer to error code 21161 // lcptr pointer to loop counter 21162 // recurses chain of recurse_check to catch mutual recursion 21163 // cb pointer to compile block 21164 // 21165 // Returns: the length, or a negative value on error 21166 21167 func get_branchlength(tls *libc.TLS, pptrptr uintptr, errcodeptr uintptr, lcptr uintptr, recurses uintptr, cb uintptr) int32 { /* pcre2_compile.c:9134:1: */ 21168 bp := tls.Alloc(32) 21169 defer tls.Free(32) 21170 21171 var branchlength int32 21172 var grouplength int32 21173 var lastitemlength Tuint32_t 21174 // var pptr uintptr at bp, 8 21175 21176 var offset Tsize_t 21177 // var this_recurse Tparsed_recurse_check at bp+16, 16 21178 21179 var i int32 21180 var name TPCRE2_SPTR8 21181 var is_dupname TBOOL 21182 var ng uintptr 21183 var meta_code Tuint32_t 21184 var length Tuint32_t 21185 var r uintptr 21186 // var gptr uintptr at bp+8, 8 21187 21188 var gptrend uintptr 21189 var escape Tuint32_t 21190 var group Tuint32_t 21191 var itemlength Tuint32_t 21192 branchlength = 0 21193 lastitemlength = Tuint32_t(0) 21194 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = *(*uintptr)(unsafe.Pointer(pptrptr)) 21195 21196 // A large and/or complex regex can take too long to process. This can happen 21197 // more often when (?| groups are present in the pattern because their length 21198 // cannot be cached. 21199 21200 if !(libc.PostIncInt32(&*(*int32)(unsafe.Pointer(lcptr)), 1) > 2000) { 21201 goto __1 21202 } 21203 21204 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR35 // Lookbehind is too complicated 21205 return -1 21206 __1: 21207 ; 21208 21209 // Scan the branch, accumulating the length. 21210 21211 __2: 21212 ; 21213 group = Tuint32_t(0) 21214 itemlength = Tuint32_t(0) 21215 21216 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) < DMETA_END) { 21217 goto __5 21218 } 21219 21220 itemlength = Tuint32_t(1) 21221 goto __6 21222 __5: 21223 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0xffff0000 { 21224 case DMETA_KET: 21225 goto __8 21226 case DMETA_ALT: 21227 goto __9 21228 21229 // (*ACCEPT) and (*FAIL) terminate the branch, but we must skip to the 21230 // actual termination. 21231 21232 case DMETA_ACCEPT: 21233 goto __10 21234 case DMETA_FAIL: 21235 goto __11 21236 21237 case DMETA_MARK: 21238 goto __12 21239 case DMETA_COMMIT_ARG: 21240 goto __13 21241 case DMETA_PRUNE_ARG: 21242 goto __14 21243 case DMETA_SKIP_ARG: 21244 goto __15 21245 case DMETA_THEN_ARG: 21246 goto __16 21247 21248 case DMETA_CIRCUMFLEX: 21249 goto __17 21250 case DMETA_COMMIT: 21251 goto __18 21252 case DMETA_DOLLAR: 21253 goto __19 21254 case DMETA_PRUNE: 21255 goto __20 21256 case DMETA_SKIP: 21257 goto __21 21258 case DMETA_THEN: 21259 goto __22 21260 21261 case DMETA_OPTIONS: 21262 goto __23 21263 21264 case DMETA_BIGVALUE: 21265 goto __24 21266 21267 case DMETA_CLASS: 21268 goto __25 21269 case DMETA_CLASS_NOT: 21270 goto __26 21271 21272 case DMETA_CLASS_EMPTY_NOT: 21273 goto __27 21274 case DMETA_DOT: 21275 goto __28 21276 21277 case DMETA_CALLOUT_NUMBER: 21278 goto __29 21279 21280 case DMETA_CALLOUT_STRING: 21281 goto __30 21282 21283 // Only some escapes consume a character. Of those, \R and \X are never 21284 // allowed because they might match more than character. \C is allowed only in 21285 // 32-bit and non-UTF 8/16-bit modes. 21286 21287 case DMETA_ESCAPE: 21288 goto __31 21289 21290 // Lookaheads do not contribute to the length of this branch, but they may 21291 // contain lookbehinds within them whose lengths need to be set. 21292 21293 case DMETA_LOOKAHEAD: 21294 goto __32 21295 case DMETA_LOOKAHEADNOT: 21296 goto __33 21297 case DMETA_LOOKAHEAD_NA: 21298 goto __34 21299 21300 // A nested lookbehind does not contribute any length to this lookbehind, 21301 // but must itself be checked and have its lengths set. 21302 21303 case DMETA_LOOKBEHIND: 21304 goto __35 21305 case DMETA_LOOKBEHINDNOT: 21306 goto __36 21307 case DMETA_LOOKBEHIND_NA: 21308 goto __37 21309 21310 // Back references and recursions are handled by very similar code. At this 21311 // stage, the names generated in the parsing pass are available, but the main 21312 // name table has not yet been created. So for the named varieties, scan the 21313 // list of names in order to get the number of the first one in the pattern, 21314 // and whether or not this name is duplicated. 21315 21316 case DMETA_BACKREF_BYNAME: 21317 goto __38 21318 // Fall through 21319 21320 case DMETA_RECURSE_BYNAME: 21321 goto __39 // Duplicate name or number 21322 21323 // The offset values for back references < 10 are in a separate vector 21324 // because otherwise they would use more than two parsed pattern elements on 21325 // 64-bit systems. 21326 21327 case DMETA_BACKREF: 21328 goto __40 21329 21330 // Fall through 21331 // For groups >= 10 - picking up group twice does no harm. 21332 21333 // A true recursion implies not fixed length, but a subroutine call may 21334 // be OK. Back reference "recursions" are also failed. 21335 21336 case DMETA_RECURSE: 21337 goto __41 21338 21339 // A (DEFINE) group is never obeyed inline and so it does not contribute to 21340 // the length of this branch. Skip from the following item to the next 21341 // unpaired ket. 21342 21343 case DMETA_COND_DEFINE: 21344 goto __42 21345 21346 // Check other nested groups - advance past the initial data for each type 21347 // and then seek a fixed length with get_grouplength(). 21348 21349 case DMETA_COND_NAME: 21350 goto __43 21351 case DMETA_COND_NUMBER: 21352 goto __44 21353 case DMETA_COND_RNAME: 21354 goto __45 21355 case DMETA_COND_RNUMBER: 21356 goto __46 21357 21358 case DMETA_COND_ASSERT: 21359 goto __47 21360 21361 case DMETA_COND_VERSION: 21362 goto __48 21363 21364 case DMETA_CAPTURE: 21365 goto __49 21366 // Fall through 21367 21368 case DMETA_ATOMIC: 21369 goto __50 21370 case DMETA_NOCAPTURE: 21371 goto __51 21372 case DMETA_SCRIPT_RUN: 21373 goto __52 21374 21375 // Exact repetition is OK; variable repetition is not. A repetition of zero 21376 // must subtract the length that has already been added. 21377 21378 case DMETA_MINMAX: 21379 goto __53 21380 case DMETA_MINMAX_PLUS: 21381 goto __54 21382 case DMETA_MINMAX_QUERY: 21383 goto __55 21384 // Fall through 21385 21386 // Any other item means this branch does not have a fixed length. 21387 21388 default: 21389 goto __56 21390 } 21391 goto __7 21392 21393 __8: 21394 __9: 21395 goto EXIT 21396 21397 // (*ACCEPT) and (*FAIL) terminate the branch, but we must skip to the 21398 // actual termination. 21399 21400 __10: 21401 __11: 21402 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp /* pptr */)), PSKIP_ALT) 21403 if !(*(*uintptr)(unsafe.Pointer(bp)) == uintptr(0)) { 21404 goto __57 21405 } 21406 goto PARSED_SKIP_FAILED 21407 __57: 21408 ; 21409 goto EXIT 21410 21411 __12: 21412 __13: 21413 __14: 21414 __15: 21415 __16: 21416 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4))+Tuint32_t(1)) 21417 goto __7 21418 21419 __17: 21420 __18: 21421 __19: 21422 __20: 21423 __21: 21424 __22: 21425 goto __7 21426 21427 __23: 21428 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 21429 goto __7 21430 21431 __24: 21432 itemlength = Tuint32_t(1) 21433 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 21434 goto __7 21435 21436 __25: 21437 __26: 21438 itemlength = Tuint32_t(1) 21439 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp /* pptr */)), PSKIP_CLASS) 21440 if !(*(*uintptr)(unsafe.Pointer(bp)) == uintptr(0)) { 21441 goto __58 21442 } 21443 goto PARSED_SKIP_FAILED 21444 __58: 21445 ; 21446 goto __7 21447 21448 __27: 21449 __28: 21450 itemlength = Tuint32_t(1) 21451 goto __7 21452 21453 __29: 21454 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 21455 goto __7 21456 21457 __30: 21458 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3+DSIZEOFFSET) 21459 goto __7 21460 21461 // Only some escapes consume a character. Of those, \R and \X are never 21462 // allowed because they might match more than character. \C is allowed only in 21463 // 32-bit and non-UTF 8/16-bit modes. 21464 21465 __31: 21466 escape = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21467 if !(escape == ESC_R || escape == ESC_X) { 21468 goto __59 21469 } 21470 return -1 21471 __59: 21472 ; 21473 if !(escape > ESC_b && escape < ESC_Z) { 21474 goto __60 21475 } 21476 21477 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_UTF != Tuint32_t(0) && escape == ESC_C) { 21478 goto __61 21479 } 21480 21481 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR36 21482 return -1 21483 __61: 21484 ; 21485 itemlength = Tuint32_t(1) 21486 if !(escape == ESC_p || escape == ESC_P) { 21487 goto __62 21488 } 21489 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21490 __62: 21491 ; // Skip prop data 21492 __60: 21493 ; 21494 goto __7 21495 21496 // Lookaheads do not contribute to the length of this branch, but they may 21497 // contain lookbehinds within them whose lengths need to be set. 21498 21499 __32: 21500 __33: 21501 __34: 21502 *(*int32)(unsafe.Pointer(errcodeptr)) = check_lookbehinds(tls, *(*uintptr)(unsafe.Pointer(bp))+uintptr(1)*4, bp, recurses, cb, lcptr) 21503 if !(*(*int32)(unsafe.Pointer(errcodeptr)) != 0) { 21504 goto __63 21505 } 21506 return -1 21507 __63: 21508 ; 21509 21510 // Ignore any qualifiers that follow a lookahead assertion. 21511 21512 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pptr */)) + 1*4)) { 21513 case DMETA_ASTERISK: 21514 goto __65 21515 case DMETA_ASTERISK_PLUS: 21516 goto __66 21517 case DMETA_ASTERISK_QUERY: 21518 goto __67 21519 case DMETA_PLUS: 21520 goto __68 21521 case DMETA_PLUS_PLUS: 21522 goto __69 21523 case DMETA_PLUS_QUERY: 21524 goto __70 21525 case DMETA_QUERY: 21526 goto __71 21527 case DMETA_QUERY_PLUS: 21528 goto __72 21529 case DMETA_QUERY_QUERY: 21530 goto __73 21531 21532 case DMETA_MINMAX: 21533 goto __74 21534 case DMETA_MINMAX_PLUS: 21535 goto __75 21536 case DMETA_MINMAX_QUERY: 21537 goto __76 21538 21539 default: 21540 goto __77 21541 } 21542 goto __64 21543 21544 __65: 21545 __66: 21546 __67: 21547 __68: 21548 __69: 21549 __70: 21550 __71: 21551 __72: 21552 __73: 21553 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21554 goto __64 21555 21556 __74: 21557 __75: 21558 __76: 21559 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 21560 goto __64 21561 21562 __77: 21563 goto __64 21564 __64: 21565 ; 21566 goto __7 21567 21568 // A nested lookbehind does not contribute any length to this lookbehind, 21569 // but must itself be checked and have its lengths set. 21570 21571 __35: 21572 __36: 21573 __37: 21574 if !!(set_lookbehind_lengths(tls, bp, errcodeptr, lcptr, recurses, cb) != 0) { 21575 goto __78 21576 } 21577 return -1 21578 __78: 21579 ; 21580 goto __7 21581 21582 // Back references and recursions are handled by very similar code. At this 21583 // stage, the names generated in the parsing pass are available, but the main 21584 // name table has not yet been created. So for the named varieties, scan the 21585 // list of names in order to get the number of the first one in the pattern, 21586 // and whether or not this name is duplicated. 21587 21588 __38: 21589 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0)) { 21590 goto __79 21591 } 21592 goto ISNOTFIXED 21593 __79: 21594 ; 21595 // Fall through 21596 21597 __39: 21598 21599 is_dupname = DFALSE 21600 ng = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 21601 meta_code = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0xffff0000 21602 length = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp)), 4))) 21603 21604 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))) 21605 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 21606 21607 name = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 21608 i = 0 21609 __80: 21610 if !(i < int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 21611 goto __82 21612 } 21613 21614 if !(length == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength) && X_pcre2_strncmp_8(tls, name, (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, uint64(length)) == 0) { 21615 goto __83 21616 } 21617 21618 group = (*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber 21619 is_dupname = TBOOL((*Tnamed_group_8)(unsafe.Pointer(ng)).Fisdup) 21620 goto __82 21621 __83: 21622 ; 21623 goto __81 21624 __81: 21625 i++ 21626 ng += 16 21627 goto __80 21628 goto __82 21629 __82: 21630 ; 21631 21632 if !(group == Tuint32_t(0)) { 21633 goto __84 21634 } 21635 21636 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR15 // Non-existent subpattern 21637 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 21638 return -1 21639 __84: 21640 ; 21641 21642 // A numerical back reference can be fixed length if duplicate capturing 21643 // groups are not being used. A non-duplicate named back reference can also 21644 // be handled. 21645 21646 if !(meta_code == DMETA_RECURSE_BYNAME || !(is_dupname != 0) && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_flags&Tuint32_t(DPCRE2_DUPCAPUSED) == Tuint32_t(0)) { 21647 goto __85 21648 } 21649 goto RECURSE_OR_BACKREF_LENGTH 21650 __85: 21651 ; // Handle as a numbered version. 21652 21653 goto ISNOTFIXED // Duplicate name or number 21654 21655 // The offset values for back references < 10 are in a separate vector 21656 // because otherwise they would use more than two parsed pattern elements on 21657 // 64-bit systems. 21658 21659 __40: 21660 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)) { 21661 goto __86 21662 } 21663 goto ISNOTFIXED 21664 __86: 21665 ; 21666 group = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21667 if !(group < Tuint32_t(10)) { 21668 goto __87 21669 } 21670 21671 offset = *(*Tsize_t)(unsafe.Pointer(cb + 88 + uintptr(group)*8)) 21672 goto RECURSE_OR_BACKREF_LENGTH 21673 __87: 21674 ; 21675 21676 // Fall through 21677 // For groups >= 10 - picking up group twice does no harm. 21678 21679 // A true recursion implies not fixed length, but a subroutine call may 21680 // be OK. Back reference "recursions" are also failed. 21681 21682 __41: 21683 group = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21684 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))) 21685 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 21686 21687 RECURSE_OR_BACKREF_LENGTH: 21688 if !(group > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 21689 goto __88 21690 } 21691 21692 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 21693 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR15 // Non-existent subpattern 21694 return -1 21695 __88: 21696 ; 21697 if !(group == Tuint32_t(0)) { 21698 goto __89 21699 } 21700 goto ISNOTFIXED 21701 __89: 21702 ; // Local recursion 21703 *(*uintptr)(unsafe.Pointer(bp + 8 /* gptr */)) = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fparsed_pattern 21704 __90: 21705 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) != DMETA_END) { 21706 goto __92 21707 } 21708 21709 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8))))&0xffff0000 == DMETA_BIGVALUE) { 21710 goto __93 21711 } 21712 *(*uintptr)(unsafe.Pointer(bp + 8 /* gptr */)) += 4 21713 goto __94 21714 __93: 21715 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) == DMETA_CAPTURE|group) { 21716 goto __95 21717 } 21718 goto __92 21719 __95: 21720 ; 21721 __94: 21722 ; 21723 goto __91 21724 __91: 21725 *(*uintptr)(unsafe.Pointer(bp + 8 /* gptr */)) += 4 21726 goto __90 21727 goto __92 21728 __92: 21729 ; 21730 21731 // We must start the search for the end of the group at the first meta code 21732 // inside the group. Otherwise it will be treated as an enclosed group. 21733 21734 gptrend = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp + 8))+uintptr(1)*4, PSKIP_KET) 21735 if !(gptrend == uintptr(0)) { 21736 goto __96 21737 } 21738 goto PARSED_SKIP_FAILED 21739 __96: 21740 ; 21741 if !(*(*uintptr)(unsafe.Pointer(bp)) > *(*uintptr)(unsafe.Pointer(bp + 8)) && *(*uintptr)(unsafe.Pointer(bp)) < gptrend) { 21742 goto __97 21743 } 21744 goto ISNOTFIXED 21745 __97: 21746 ; // Local recursion 21747 r = recurses 21748 __98: 21749 if !(r != uintptr(0)) { 21750 goto __100 21751 } 21752 if !((*Tparsed_recurse_check)(unsafe.Pointer(r)).Fgroupptr == *(*uintptr)(unsafe.Pointer(bp + 8))) { 21753 goto __101 21754 } 21755 goto __100 21756 __101: 21757 ; 21758 goto __99 21759 __99: 21760 r = (*Tparsed_recurse_check)(unsafe.Pointer(r)).Fprev 21761 goto __98 21762 goto __100 21763 __100: 21764 ; 21765 if !(r != uintptr(0)) { 21766 goto __102 21767 } 21768 goto ISNOTFIXED 21769 __102: 21770 ; // Mutual recursion 21771 (*Tparsed_recurse_check)(unsafe.Pointer(bp + 16 /* &this_recurse */)).Fprev = recurses 21772 (*Tparsed_recurse_check)(unsafe.Pointer(bp + 16 /* &this_recurse */)).Fgroupptr = *(*uintptr)(unsafe.Pointer(bp + 8 /* gptr */)) 21773 21774 // We do not need to know the position of the end of the group, that is, 21775 // gptr is not used after the call to get_grouplength(). Setting the second 21776 // argument FALSE stops it scanning for the end when the length can be found 21777 // in the cache. 21778 21779 *(*uintptr)(unsafe.Pointer(bp + 8 /* gptr */)) += 4 21780 grouplength = get_grouplength(tls, bp+8, DFALSE, errcodeptr, lcptr, int32(group), 21781 bp+16, cb) 21782 if !(grouplength < 0) { 21783 goto __103 21784 } 21785 21786 if !(*(*int32)(unsafe.Pointer(errcodeptr)) == 0) { 21787 goto __104 21788 } 21789 goto ISNOTFIXED 21790 __104: 21791 ; 21792 return -1 // Error already set 21793 __103: 21794 ; 21795 itemlength = Tuint32_t(grouplength) 21796 goto __7 21797 21798 // A (DEFINE) group is never obeyed inline and so it does not contribute to 21799 // the length of this branch. Skip from the following item to the next 21800 // unpaired ket. 21801 21802 __42: 21803 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp))+uintptr(1)*4, PSKIP_KET) 21804 goto __7 21805 21806 // Check other nested groups - advance past the initial data for each type 21807 // and then seek a fixed length with get_grouplength(). 21808 21809 __43: 21810 __44: 21811 __45: 21812 __46: 21813 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2+DSIZEOFFSET) 21814 goto CHECK_GROUP 21815 21816 __47: 21817 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 21818 goto CHECK_GROUP 21819 21820 __48: 21821 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(4) 21822 goto CHECK_GROUP 21823 21824 __49: 21825 group = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21826 // Fall through 21827 21828 __50: 21829 __51: 21830 __52: 21831 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21832 CHECK_GROUP: 21833 grouplength = get_grouplength(tls, bp, DTRUE, errcodeptr, lcptr, int32(group), 21834 recurses, cb) 21835 if !(grouplength < 0) { 21836 goto __105 21837 } 21838 return -1 21839 __105: 21840 ; 21841 itemlength = Tuint32_t(grouplength) 21842 goto __7 21843 21844 // Exact repetition is OK; variable repetition is not. A repetition of zero 21845 // must subtract the length that has already been added. 21846 21847 __53: 21848 __54: 21849 __55: 21850 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4)) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2*4))) { 21851 goto __106 21852 } 21853 21854 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pptr */)) + 1*4)) { 21855 case Tuint32_t(0): 21856 goto __108 21857 21858 case Tuint32_t(1): 21859 goto __109 21860 21861 default: 21862 goto __110 21863 } 21864 goto __107 21865 21866 __108: 21867 branchlength = int32(Tuint32_t(branchlength) - lastitemlength) 21868 goto __107 21869 21870 __109: 21871 itemlength = Tuint32_t(0) 21872 goto __107 21873 21874 __110: // Check for integer overflow 21875 if !(lastitemlength != Tuint32_t(0) && Tuint32_t(0x7fffffff)/lastitemlength < *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4))-Tuint32_t(1)) { 21876 goto __111 21877 } 21878 21879 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR87 // Integer overflow; lookbehind too big 21880 return -1 21881 __111: 21882 ; 21883 itemlength = (*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4)) - Tuint32_t(1)) * lastitemlength 21884 goto __107 21885 __107: 21886 ; 21887 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 21888 goto __7 21889 __106: 21890 ; 21891 // Fall through 21892 21893 // Any other item means this branch does not have a fixed length. 21894 21895 __56: 21896 ISNOTFIXED: 21897 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR25 // Not fixed length 21898 return -1 21899 __7: 21900 ; 21901 __6: 21902 ; 21903 21904 // Add the item length to the branchlength, checking for integer overflow and 21905 // for the branch length exceeding the limit. 21906 21907 if !(0x7fffffff-branchlength < int32(itemlength) || libc.AssignAddInt32(&branchlength, int32(itemlength)) > 65535) { 21908 goto __112 21909 } 21910 21911 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR87 21912 return -1 21913 __112: 21914 ; 21915 21916 // Save this item length for use if the next item is a quantifier. 21917 21918 lastitemlength = itemlength 21919 goto __3 21920 __3: 21921 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21922 goto __2 21923 goto __4 21924 __4: 21925 ; 21926 21927 EXIT: 21928 *(*uintptr)(unsafe.Pointer(pptrptr)) = *(*uintptr)(unsafe.Pointer(bp /* pptr */)) 21929 return branchlength 21930 21931 PARSED_SKIP_FAILED: 21932 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR90 21933 return -1 21934 } 21935 21936 // ************************************************ 21937 // 21938 // Set lengths in a lookbehind * 21939 // 21940 21941 // This function is called for each lookbehind, to set the lengths in its 21942 // branches. An error occurs if any branch does not have a fixed length that is 21943 // less than the maximum (65535). On exit, the pointer must be left on the final 21944 // ket. 21945 // 21946 // The function also maintains the max_lookbehind value. Any lookbehind branch 21947 // that contains a nested lookbehind may actually look further back than the 21948 // length of the branch. The additional amount is passed back from 21949 // get_branchlength() as an "extra" value. 21950 // 21951 // Arguments: 21952 // pptrptr pointer to pointer in the parsed pattern 21953 // errcodeptr pointer to error code 21954 // lcptr pointer to loop counter 21955 // recurses chain of recurse_check to catch mutual recursion 21956 // cb pointer to compile block 21957 // 21958 // Returns: TRUE if all is well 21959 // FALSE otherwise, with error code and offset set 21960 21961 func set_lookbehind_lengths(tls *libc.TLS, pptrptr uintptr, errcodeptr uintptr, lcptr uintptr, recurses uintptr, cb uintptr) TBOOL { /* pcre2_compile.c:9545:1: */ 21962 var offset Tsize_t 21963 var branchlength int32 21964 var bptr uintptr = *(*uintptr)(unsafe.Pointer(pptrptr)) 21965 21966 { 21967 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(bptr + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(bptr + 2*4))) 21968 } 21969 // Offset for error messages 21970 *(*uintptr)(unsafe.Pointer(pptrptr)) += uintptr(DSIZEOFFSET) * 4 21971 21972 for __ccgo := true; __ccgo; __ccgo = *(*Tuint32_t)(unsafe.Pointer(bptr)) == DMETA_ALT { 21973 *(*uintptr)(unsafe.Pointer(pptrptr)) += uintptr(1) * 4 21974 branchlength = get_branchlength(tls, pptrptr, errcodeptr, lcptr, recurses, cb) 21975 if branchlength < 0 { 21976 // The errorcode and offset may already be set from a nested lookbehind. 21977 if *(*int32)(unsafe.Pointer(errcodeptr)) == 0 { 21978 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR25 21979 } 21980 if (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset == libc.CplUint64(uint64(0)) { 21981 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 21982 } 21983 return DFALSE 21984 } 21985 if branchlength > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind { 21986 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind = branchlength 21987 } 21988 *(*Tuint32_t)(unsafe.Pointer(bptr)) |= Tuint32_t(branchlength) // branchlength never more than 65535 21989 bptr = *(*uintptr)(unsafe.Pointer(pptrptr)) 21990 } 21991 21992 return DTRUE 21993 } 21994 21995 // ************************************************ 21996 // 21997 // Check parsed pattern lookbehinds * 21998 // 21999 22000 // This function is called at the end of parsing a pattern if any lookbehinds 22001 // were encountered. It scans the parsed pattern for them, calling 22002 // set_lookbehind_lengths() for each one. At the start, the errorcode is zero and 22003 // the error offset is marked unset. The enables the functions above not to 22004 // override settings from deeper nestings. 22005 // 22006 // This function is called recursively from get_branchlength() for lookaheads in 22007 // order to process any lookbehinds that they may contain. It stops when it hits a 22008 // non-nested closing parenthesis in this case, returning a pointer to it. 22009 // 22010 // Arguments 22011 // pptr points to where to start (start of pattern or start of lookahead) 22012 // retptr if not NULL, return the ket pointer here 22013 // recurses chain of recurse_check to catch mutual recursion 22014 // cb points to the compile block 22015 // lcptr points to loop counter 22016 // 22017 // Returns: 0 on success, or an errorcode (cb->erroroffset will be set) 22018 22019 func check_lookbehinds(tls *libc.TLS, pptr uintptr, retptr uintptr, recurses uintptr, cb uintptr, lcptr uintptr) int32 { /* pcre2_compile.c:9602:1: */ 22020 bp := tls.Alloc(12) 22021 defer tls.Free(12) 22022 *(*uintptr)(unsafe.Pointer(bp)) = pptr 22023 22024 *(*int32)(unsafe.Pointer(bp + 8 /* errorcode */)) = 0 22025 var nestlevel int32 = 0 22026 22027 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = libc.CplUint64(uint64(0)) 22028 22029 for ; *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) != DMETA_END; *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 { 22030 if *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) < DMETA_END { 22031 continue 22032 } // Literal 22033 22034 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0xffff0000 { 22035 default: 22036 return ERR70 // Unrecognized meta code 22037 22038 case DMETA_ESCAPE: 22039 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 { 22040 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 22041 } 22042 break 22043 22044 case DMETA_KET: 22045 if libc.PreDecInt32(&nestlevel, 1) < 0 { 22046 if retptr != uintptr(0) { 22047 *(*uintptr)(unsafe.Pointer(retptr)) = *(*uintptr)(unsafe.Pointer(bp /* pptr */)) 22048 } 22049 return 0 22050 } 22051 break 22052 22053 case DMETA_ATOMIC: 22054 fallthrough 22055 case DMETA_CAPTURE: 22056 fallthrough 22057 case DMETA_COND_ASSERT: 22058 fallthrough 22059 case DMETA_LOOKAHEAD: 22060 fallthrough 22061 case DMETA_LOOKAHEADNOT: 22062 fallthrough 22063 case DMETA_LOOKAHEAD_NA: 22064 fallthrough 22065 case DMETA_NOCAPTURE: 22066 fallthrough 22067 case DMETA_SCRIPT_RUN: 22068 nestlevel++ 22069 break 22070 22071 case DMETA_ACCEPT: 22072 fallthrough 22073 case DMETA_ALT: 22074 fallthrough 22075 case DMETA_ASTERISK: 22076 fallthrough 22077 case DMETA_ASTERISK_PLUS: 22078 fallthrough 22079 case DMETA_ASTERISK_QUERY: 22080 fallthrough 22081 case DMETA_BACKREF: 22082 fallthrough 22083 case DMETA_CIRCUMFLEX: 22084 fallthrough 22085 case DMETA_CLASS: 22086 fallthrough 22087 case DMETA_CLASS_EMPTY: 22088 fallthrough 22089 case DMETA_CLASS_EMPTY_NOT: 22090 fallthrough 22091 case DMETA_CLASS_END: 22092 fallthrough 22093 case DMETA_CLASS_NOT: 22094 fallthrough 22095 case DMETA_COMMIT: 22096 fallthrough 22097 case DMETA_DOLLAR: 22098 fallthrough 22099 case DMETA_DOT: 22100 fallthrough 22101 case DMETA_FAIL: 22102 fallthrough 22103 case DMETA_PLUS: 22104 fallthrough 22105 case DMETA_PLUS_PLUS: 22106 fallthrough 22107 case DMETA_PLUS_QUERY: 22108 fallthrough 22109 case DMETA_PRUNE: 22110 fallthrough 22111 case DMETA_QUERY: 22112 fallthrough 22113 case DMETA_QUERY_PLUS: 22114 fallthrough 22115 case DMETA_QUERY_QUERY: 22116 fallthrough 22117 case DMETA_RANGE_ESCAPED: 22118 fallthrough 22119 case DMETA_RANGE_LITERAL: 22120 fallthrough 22121 case DMETA_SKIP: 22122 fallthrough 22123 case DMETA_THEN: 22124 break 22125 22126 case DMETA_RECURSE: 22127 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(DSIZEOFFSET) 22128 break 22129 22130 case DMETA_BACKREF_BYNAME: 22131 fallthrough 22132 case DMETA_RECURSE_BYNAME: 22133 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1+DSIZEOFFSET) 22134 break 22135 22136 case DMETA_COND_DEFINE: 22137 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(DSIZEOFFSET) 22138 nestlevel++ 22139 break 22140 22141 case DMETA_COND_NAME: 22142 fallthrough 22143 case DMETA_COND_NUMBER: 22144 fallthrough 22145 case DMETA_COND_RNAME: 22146 fallthrough 22147 case DMETA_COND_RNUMBER: 22148 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1+DSIZEOFFSET) 22149 nestlevel++ 22150 break 22151 22152 case DMETA_COND_VERSION: 22153 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 22154 nestlevel++ 22155 break 22156 22157 case DMETA_CALLOUT_STRING: 22158 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3+DSIZEOFFSET) 22159 break 22160 22161 case DMETA_BIGVALUE: 22162 fallthrough 22163 case DMETA_OPTIONS: 22164 fallthrough 22165 case DMETA_POSIX: 22166 fallthrough 22167 case DMETA_POSIX_NEG: 22168 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 22169 break 22170 22171 case DMETA_MINMAX: 22172 fallthrough 22173 case DMETA_MINMAX_QUERY: 22174 fallthrough 22175 case DMETA_MINMAX_PLUS: 22176 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 22177 break 22178 22179 case DMETA_CALLOUT_NUMBER: 22180 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 22181 break 22182 22183 case DMETA_MARK: 22184 fallthrough 22185 case DMETA_COMMIT_ARG: 22186 fallthrough 22187 case DMETA_PRUNE_ARG: 22188 fallthrough 22189 case DMETA_SKIP_ARG: 22190 fallthrough 22191 case DMETA_THEN_ARG: 22192 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(Tuint32_t(1)+*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4))) 22193 break 22194 22195 case DMETA_LOOKBEHIND: 22196 fallthrough 22197 case DMETA_LOOKBEHINDNOT: 22198 fallthrough 22199 case DMETA_LOOKBEHIND_NA: 22200 if !(set_lookbehind_lengths(tls, bp, bp+8, lcptr, recurses, cb) != 0) { 22201 return *(*int32)(unsafe.Pointer(bp + 8 /* errorcode */)) 22202 } 22203 break 22204 } 22205 } 22206 22207 return 0 22208 } 22209 22210 // ************************************************ 22211 // 22212 // External function to compile a pattern * 22213 // 22214 22215 // This function reads a regular expression in the form of a string and returns 22216 // a pointer to a block of store holding a compiled version of the expression. 22217 // 22218 // Arguments: 22219 // pattern the regular expression 22220 // patlen the length of the pattern, or PCRE2_ZERO_TERMINATED 22221 // options option bits 22222 // errorptr pointer to errorcode 22223 // erroroffset pointer to error offset 22224 // ccontext points to a compile context or is NULL 22225 // 22226 // Returns: pointer to compiled data block, or NULL on error, 22227 // with errorcode and erroroffset set 22228 22229 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: */ 22230 bp := tls.Alloc(17928) 22231 defer tls.Free(17928) 22232 22233 var utf TBOOL // Set TRUE for UTF mode 22234 var ucp TBOOL // Set TRUE for UCP mode 22235 // var has_lookbehind TBOOL at bp+17744, 4 22236 // Set TRUE if a lookbehind is found 22237 var zero_terminated TBOOL 22238 _ = zero_terminated // Set TRUE for zero-terminated pattern 22239 var re uintptr // What we will return 22240 // var cb Tcompile_block_8 at bp+17440, 304 22241 // "Static" compile-time data 22242 var tables uintptr // Char tables base pointer 22243 22244 // var code uintptr at bp+17752, 8 22245 // Current pointer in compiled code 22246 var codestart TPCRE2_SPTR8 // Start of compiled code 22247 var ptr TPCRE2_SPTR8 // Current pointer in pattern 22248 // var pptr uintptr at bp+17760, 8 22249 // Current pointer in parsed pattern 22250 22251 // var length Tsize_t at bp+17792, 8 22252 // Allow for final END opcode 22253 var usedlength Tsize_t // Actual length used 22254 var re_blocksize Tsize_t // Size of memory block 22255 var big32count Tsize_t // 32-bit literals >= 0x80000000 22256 var parsed_size_needed Tsize_t // Needed for parsed pattern 22257 22258 // var firstcuflags Tuint32_t at bp+17776, 4 22259 22260 // var reqcuflags Tuint32_t at bp+17784, 4 22261 // Type of first/req code unit 22262 // var firstcu Tuint32_t at bp+17772, 4 22263 22264 // var reqcu Tuint32_t at bp+17780, 4 22265 // Value of first/req code unit 22266 var setflags Tuint32_t // NL and BSR set flags 22267 22268 var skipatstart Tuint32_t // When checking (*UTF) etc 22269 var limit_heap Tuint32_t 22270 var limit_match Tuint32_t // Unset match limits 22271 var limit_depth Tuint32_t 22272 var newline int32 // Unset; can be set by the pattern 22273 var bsr int32 // Unset; can be set by the pattern 22274 // var errorcode int32 at bp+17768, 4 22275 // Initialize to avoid compiler warn 22276 var regexrc int32 // Return from compile 22277 22278 var i Tuint32_t // Local loop counter 22279 22280 // Comments at the head of this file explain about these variables. 22281 22282 // var stack_groupinfo [256]Tuint32_t at bp+12000, 1024 22283 22284 // var stack_parsed_pattern [1024]Tuint32_t at bp+13344, 4096 22285 22286 // var named_groups [20]Tnamed_group_8 at bp+13024, 320 22287 22288 // The workspace is used in different ways in the different compiling phases. 22289 // It needs to be 16-bit aligned for the preliminary parsing scan. 22290 22291 // var c16workspace [3000]Tuint32_t at bp, 12000 22292 22293 var cworkspace uintptr 22294 var c Tuint32_t 22295 var pp Tuint32_t 22296 var p uintptr 22297 var heap_parsed_pattern uintptr 22298 // var loopcount int32 at bp+17748, 4 22299 22300 var ng uintptr 22301 var search_from TPCRE2_SPTR8 22302 var p1 int32 22303 var groupnumber int32 22304 var rcode uintptr 22305 var rgroup TPCRE2_SPTR8 22306 var ccount uint32 22307 var start int32 22308 // var rc [8]Trecurse_cache at bp+17800, 128 22309 22310 var temp uintptr 22311 var minminlength int32 22312 *(*TBOOL)(unsafe.Pointer(bp + 17744 /* has_lookbehind */)) = DFALSE 22313 re = uintptr(0) 22314 *(*Tsize_t)(unsafe.Pointer(bp + 17792 /* length */)) = uint64(1) 22315 big32count = uint64(0) 22316 setflags = Tuint32_t(0) 22317 limit_heap = 4294967295 22318 limit_match = 4294967295 22319 limit_depth = 4294967295 22320 newline = 0 22321 bsr = 0 22322 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = 0 22323 cworkspace = bp /* c16workspace */ 22324 22325 // -------------- Check arguments and set up the pattern ----------------- 22326 22327 // There must be error code and offset pointers. 22328 22329 if !(errorptr == uintptr(0) || erroroffset == uintptr(0)) { 22330 goto __1 22331 } 22332 return uintptr(0) 22333 __1: 22334 ; 22335 *(*int32)(unsafe.Pointer(errorptr)) = ERR0 22336 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = uint64(0) 22337 22338 // There must be a pattern! 22339 22340 if !(pattern == uintptr(0)) { 22341 goto __2 22342 } 22343 22344 *(*int32)(unsafe.Pointer(errorptr)) = ERR16 22345 return uintptr(0) 22346 __2: 22347 ; 22348 22349 // A NULL compile context means "use a default context" 22350 22351 if !(ccontext == uintptr(0)) { 22352 goto __3 22353 } 22354 ccontext = uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) 22355 __3: 22356 ; 22357 22358 // PCRE2_MATCH_INVALID_UTF implies UTF 22359 22360 if !(options&DPCRE2_MATCH_INVALID_UTF != Tuint32_t(0)) { 22361 goto __4 22362 } 22363 options = options | DPCRE2_UTF 22364 __4: 22365 ; 22366 22367 // Check that all undefined public option bits are zero. 22368 22369 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)) { 22370 goto __5 22371 } 22372 22373 *(*int32)(unsafe.Pointer(errorptr)) = ERR17 22374 return uintptr(0) 22375 __5: 22376 ; 22377 22378 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))) { 22379 goto __6 22380 } 22381 22382 *(*int32)(unsafe.Pointer(errorptr)) = ERR92 22383 return uintptr(0) 22384 __6: 22385 ; 22386 22387 // A zero-terminated pattern is indicated by the special length value 22388 // PCRE2_ZERO_TERMINATED. Check for an overlong pattern. 22389 22390 if !(libc.AssignInt32(&zero_terminated, libc.Bool32(patlen == libc.CplUint64(uint64(0)))) != 0) { 22391 goto __7 22392 } 22393 patlen = X_pcre2_strlen_8(tls, pattern) 22394 __7: 22395 ; 22396 22397 if !(patlen > (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmax_pattern_length) { 22398 goto __8 22399 } 22400 22401 *(*int32)(unsafe.Pointer(errorptr)) = ERR88 22402 return uintptr(0) 22403 __8: 22404 ; 22405 22406 // From here on, all returns from this function should end up going via the 22407 // EXIT label. 22408 22409 // ------------ Initialize the "static" compile data -------------- 22410 22411 if (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Ftables != uintptr(0) { 22412 tables = (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Ftables 22413 } else { 22414 tables = uintptr(unsafe.Pointer(&X_pcre2_default_tables_8)) 22415 } 22416 22417 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Flcc = tables + uintptr(Dlcc_offset) // Individual 22418 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ffcc = tables + uintptr(Dfcc_offset) // character 22419 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fcbits = tables + uintptr(Dcbits_offset) // tables 22420 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fctypes = tables + uintptr(Dcbits_offset+Dcbit_length) 22421 22422 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fassert_depth = Tuint16_t(0) 22423 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fbracount = Tuint32_t(0) 22424 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fcx = ccontext 22425 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fdupnames = DFALSE 22426 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fend_pattern = pattern + uintptr(patlen) 22427 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ferroroffset = uint64(0) 22428 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fexternal_flags = Tuint32_t(0) 22429 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fexternal_options = options 22430 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fgroupinfo = bp + 12000 /* &stack_groupinfo[0] */ 22431 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fhad_recurse = DFALSE 22432 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Flastcapture = Tuint32_t(0) 22433 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fmax_lookbehind = 0 22434 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fname_entry_size = Tuint16_t(0) 22435 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fname_table = uintptr(0) 22436 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnamed_groups = bp + 13024 /* &named_groups[0] */ 22437 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnamed_group_list_size = Tuint32_t(DNAMED_GROUP_LIST_SIZE) 22438 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnames_found = Tuint16_t(0) 22439 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fopen_caps = uintptr(0) 22440 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparens_depth = Tuint16_t(0) 22441 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparsed_pattern = bp + 13344 /* &stack_parsed_pattern[0] */ 22442 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Freq_varyopt = Tuint32_t(0) 22443 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fstart_code = cworkspace 22444 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fstart_pattern = pattern 22445 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fstart_workspace = cworkspace 22446 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fworkspace_size = uint64(3000 * DLINK_SIZE) 22447 22448 // Maximum back reference and backref bitmap. The bitmap records up to 31 back 22449 // references to help in deciding whether (.*) can be treated as anchored or not. 22450 22451 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ftop_backref = Tuint32_t(0) 22452 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fbackref_map = Tuint32_t(0) 22453 22454 // Escape sequences \1 to \9 are always back references, but as they are only 22455 // two characters long, only two elements can be used in the parsed_pattern 22456 // vector. The first contains the reference, and we'd like to use the second to 22457 // record the offset in the pattern, so that forward references to non-existent 22458 // groups can be diagnosed later with an offset. However, on 64-bit systems, 22459 // PCRE2_SIZE won't fit. Instead, we have a vector of offsets for the first 22460 // occurrence of \1 to \9, indexed by the second parsed_pattern value. All other 22461 // references have enough space for the offset to be put into the parsed pattern. 22462 22463 i = Tuint32_t(0) 22464 __9: 22465 if !(i < Tuint32_t(10)) { 22466 goto __11 22467 } 22468 *(*Tsize_t)(unsafe.Pointer(bp + 17440 + 88 + uintptr(i)*8)) = libc.CplUint64(uint64(0)) 22469 goto __10 22470 __10: 22471 i++ 22472 goto __9 22473 goto __11 22474 __11: 22475 ; 22476 22477 // --------------- Start looking at the pattern --------------- 22478 22479 // Unless PCRE2_LITERAL is set, check for global one-time option settings at 22480 // the start of the pattern, and remember the offset to the actual regex. With 22481 // valgrind support, make the terminator of a zero-terminated pattern 22482 // inaccessible. This catches bugs that would otherwise only show up for 22483 // non-zero-terminated patterns. 22484 22485 ptr = pattern 22486 skipatstart = Tuint32_t(0) 22487 22488 if !(options&DPCRE2_LITERAL == Tuint32_t(0)) { 22489 goto __12 22490 } 22491 22492 __13: 22493 if !(patlen-Tsize_t(skipatstart) >= uint64(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(skipatstart)))) == '\050' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(skipatstart+Tuint32_t(1))))) == '\052') { 22494 goto __14 22495 } 22496 22497 i = Tuint32_t(0) 22498 __15: 22499 if !(uint64(i) < uint64(unsafe.Sizeof(pso_list))/uint64(unsafe.Sizeof(Tpso{}))) { 22500 goto __17 22501 } 22502 22503 p = uintptr(unsafe.Pointer(&pso_list)) + uintptr(i)*16 22504 22505 if !(patlen-Tsize_t(skipatstart)-uint64(2) >= Tsize_t((*Tpso)(unsafe.Pointer(p)).Flength) && X_pcre2_strncmp_c8_8(tls, ptr+uintptr(skipatstart)+uintptr(2), (*Tpso)(unsafe.Pointer(p)).Fname, 22506 uint64((*Tpso)(unsafe.Pointer(p)).Flength)) == 0) { 22507 goto __18 22508 } 22509 22510 skipatstart = skipatstart + Tuint32_t(int32((*Tpso)(unsafe.Pointer(p)).Flength)+2) 22511 switch int32((*Tpso)(unsafe.Pointer(p)).Ftype) { 22512 case PSO_OPT: 22513 goto __20 22514 22515 case PSO_FLG: 22516 goto __21 22517 22518 case PSO_NL: 22519 goto __22 22520 22521 case PSO_BSR: 22522 goto __23 22523 22524 case PSO_LIMM: 22525 goto __24 22526 case PSO_LIMD: 22527 goto __25 22528 case PSO_LIMH: 22529 goto __26 22530 } 22531 goto __19 22532 22533 __20: 22534 *(*Tuint32_t)(unsafe.Pointer(bp + 17440 + 204)) |= (*Tpso)(unsafe.Pointer(p)).Fvalue 22535 goto __19 22536 22537 __21: 22538 setflags = setflags | (*Tpso)(unsafe.Pointer(p)).Fvalue 22539 goto __19 22540 22541 __22: 22542 newline = int32((*Tpso)(unsafe.Pointer(p)).Fvalue) 22543 setflags = setflags | Tuint32_t(DPCRE2_NL_SET) 22544 goto __19 22545 22546 __23: 22547 bsr = int32((*Tpso)(unsafe.Pointer(p)).Fvalue) 22548 setflags = setflags | Tuint32_t(DPCRE2_BSR_SET) 22549 goto __19 22550 22551 __24: 22552 __25: 22553 __26: 22554 c = Tuint32_t(0) 22555 pp = skipatstart 22556 if !!(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) <= '\071') { 22557 goto __27 22558 } 22559 22560 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR60 22561 ptr += TPCRE2_SPTR8(pp) 22562 goto HAD_EARLY_ERROR 22563 __27: 22564 ; 22565 __28: 22566 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) <= '\071') { 22567 goto __29 22568 } 22569 22570 if !(c > 4294967295/uint32(10)-uint32(1)) { 22571 goto __30 22572 } 22573 goto __29 22574 __30: 22575 ; // Integer overflow 22576 c = c*Tuint32_t(10) + Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(libc.PostIncUint32(&pp, 1)))))-'\060') 22577 goto __28 22578 __29: 22579 ; 22580 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(libc.PostIncUint32(&pp, 1))))) != '\051') { 22581 goto __31 22582 } 22583 22584 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR60 22585 ptr += TPCRE2_SPTR8(pp) 22586 goto HAD_EARLY_ERROR 22587 __31: 22588 ; 22589 if !(int32((*Tpso)(unsafe.Pointer(p)).Ftype) == PSO_LIMH) { 22590 goto __32 22591 } 22592 limit_heap = c 22593 goto __33 22594 __32: 22595 if !(int32((*Tpso)(unsafe.Pointer(p)).Ftype) == PSO_LIMM) { 22596 goto __34 22597 } 22598 limit_match = c 22599 goto __35 22600 __34: 22601 limit_depth = c 22602 __35: 22603 ; 22604 __33: 22605 ; 22606 skipatstart = skipatstart + (pp - skipatstart) 22607 goto __19 22608 __19: 22609 ; 22610 goto __17 // Out of the table scan loop 22611 __18: 22612 ; 22613 goto __16 22614 __16: 22615 i++ 22616 goto __15 22617 goto __17 22618 __17: 22619 ; 22620 if !(uint64(i) >= uint64(unsafe.Sizeof(pso_list))/uint64(unsafe.Sizeof(Tpso{}))) { 22621 goto __36 22622 } 22623 goto __14 22624 __36: 22625 ; // Out of pso loop 22626 goto __13 22627 __14: 22628 ; 22629 __12: 22630 ; 22631 22632 // End of pattern-start options; advance to start of real regex. 22633 22634 ptr += TPCRE2_SPTR8(skipatstart) 22635 22636 // Can't support UTF or UCP if PCRE2 was built without Unicode support. 22637 22638 // Check UTF. We have the original options in 'options', with that value as 22639 // modified by (*UTF) etc in cb->external_options. The extra option 22640 // PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES is not permitted in UTF-16 mode because the 22641 // surrogate code points cannot be represented in UTF-16. 22642 22643 utf = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fexternal_options&DPCRE2_UTF != Tuint32_t(0)) 22644 if !(utf != 0) { 22645 goto __37 22646 } 22647 22648 if !(options&DPCRE2_NEVER_UTF != Tuint32_t(0)) { 22649 goto __38 22650 } 22651 22652 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR74 22653 goto HAD_EARLY_ERROR 22654 __38: 22655 ; 22656 if !(options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0) && libc.AssignPtrInt32(bp+17768, X_pcre2_valid_utf_8(tls, pattern, patlen, erroroffset)) != 0) { 22657 goto __39 22658 } 22659 goto HAD_ERROR 22660 __39: 22661 ; // Offset was set by valid_utf() 22662 22663 __37: 22664 ; 22665 22666 // Check UCP lockout. 22667 22668 ucp = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fexternal_options&DPCRE2_UCP != Tuint32_t(0)) 22669 if !(ucp != 0 && (*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fexternal_options&DPCRE2_NEVER_UCP != Tuint32_t(0)) { 22670 goto __40 22671 } 22672 22673 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR75 22674 goto HAD_EARLY_ERROR 22675 __40: 22676 ; 22677 22678 // Process the BSR setting. 22679 22680 if !(bsr == 0) { 22681 goto __41 22682 } 22683 bsr = int32((*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fbsr_convention) 22684 __41: 22685 ; 22686 22687 // Process the newline setting. 22688 22689 if !(newline == 0) { 22690 goto __42 22691 } 22692 newline = int32((*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fnewline_convention) 22693 __42: 22694 ; 22695 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnltype = Tuint32_t(DNLTYPE_FIXED) 22696 switch newline { 22697 case DPCRE2_NEWLINE_CR: 22698 goto __44 22699 22700 case DPCRE2_NEWLINE_LF: 22701 goto __45 22702 22703 case DPCRE2_NEWLINE_NUL: 22704 goto __46 22705 22706 case DPCRE2_NEWLINE_CRLF: 22707 goto __47 22708 22709 case DPCRE2_NEWLINE_ANY: 22710 goto __48 22711 22712 case DPCRE2_NEWLINE_ANYCRLF: 22713 goto __49 22714 22715 default: 22716 goto __50 22717 } 22718 goto __43 22719 22720 __44: 22721 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnllen = Tuint32_t(1) 22722 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17440 + 272)) = TPCRE2_UCHAR8('\015') 22723 goto __43 22724 22725 __45: 22726 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnllen = Tuint32_t(1) 22727 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17440 + 272)) = TPCRE2_UCHAR8('\012') 22728 goto __43 22729 22730 __46: 22731 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnllen = Tuint32_t(1) 22732 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17440 + 272)) = TPCRE2_UCHAR8(0) 22733 goto __43 22734 22735 __47: 22736 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnllen = Tuint32_t(2) 22737 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17440 + 272)) = TPCRE2_UCHAR8('\015') 22738 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17440 + 272 + 1)) = TPCRE2_UCHAR8('\012') 22739 goto __43 22740 22741 __48: 22742 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnltype = Tuint32_t(DNLTYPE_ANY) 22743 goto __43 22744 22745 __49: 22746 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnltype = Tuint32_t(DNLTYPE_ANYCRLF) 22747 goto __43 22748 22749 __50: 22750 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR56 22751 goto HAD_EARLY_ERROR 22752 __43: 22753 ; 22754 22755 // Pre-scan the pattern to do two things: (1) Discover the named groups and 22756 // their numerical equivalents, so that this information is always available for 22757 // the remaining processing. (2) At the same time, parse the pattern and put a 22758 // processed version into the parsed_pattern vector. This has escapes interpreted 22759 // and comments removed (amongst other things). 22760 // 22761 // In all but one case, when PCRE2_AUTO_CALLOUT is not set, the number of unsigned 22762 // 32-bit ints in the parsed pattern is bounded by the length of the pattern plus 22763 // one (for the terminator) plus four if PCRE2_EXTRA_WORD or PCRE2_EXTRA_LINE is 22764 // set. The exceptional case is when running in 32-bit, non-UTF mode, when literal 22765 // characters greater than META_END (0x80000000) have to be coded as two units. In 22766 // this case, therefore, we scan the pattern to check for such values. 22767 22768 // Ensure that the parsed pattern buffer is big enough. When PCRE2_AUTO_CALLOUT 22769 // is set we have to assume a numerical callout (4 elements) for each character 22770 // plus one at the end. This is overkill, but memory is plentiful these days. For 22771 // many smaller patterns the vector on the stack (which was set up above) can be 22772 // used. 22773 22774 parsed_size_needed = patlen - Tsize_t(skipatstart) + big32count 22775 22776 if !((*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options&(DPCRE2_EXTRA_MATCH_WORD|DPCRE2_EXTRA_MATCH_LINE) != Tuint32_t(0)) { 22777 goto __51 22778 } 22779 parsed_size_needed = parsed_size_needed + uint64(4) 22780 __51: 22781 ; 22782 22783 if !(options&DPCRE2_AUTO_CALLOUT != Tuint32_t(0)) { 22784 goto __52 22785 } 22786 parsed_size_needed = (parsed_size_needed + uint64(1)) * uint64(5) 22787 __52: 22788 ; 22789 22790 if !(parsed_size_needed >= uint64(DPARSED_PATTERN_DEFAULT_SIZE)) { 22791 goto __53 22792 } 22793 22794 heap_parsed_pattern = (*struct { 22795 f func(*libc.TLS, Tsize_t, uintptr) uintptr 22796 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, 22797 (parsed_size_needed+uint64(1))*Tsize_t(unsafe.Sizeof(Tuint32_t(0))), (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 22798 if !(heap_parsed_pattern == uintptr(0)) { 22799 goto __54 22800 } 22801 22802 *(*int32)(unsafe.Pointer(errorptr)) = ERR21 22803 goto EXIT 22804 __54: 22805 ; 22806 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparsed_pattern = heap_parsed_pattern 22807 __53: 22808 ; 22809 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparsed_pattern_end = (*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fparsed_pattern + uintptr(parsed_size_needed)*4 + uintptr(1)*4 22810 22811 // Do the parsing scan. 22812 22813 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = parse_regex(tls, ptr, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fexternal_options, bp+17744, bp+17440) 22814 if !(*(*int32)(unsafe.Pointer(bp + 17768)) != 0) { 22815 goto __55 22816 } 22817 goto HAD_CB_ERROR 22818 __55: 22819 ; 22820 22821 // Workspace is needed to remember information about numbered groups: whether a 22822 // group can match an empty string and what its fixed length is. This is done to 22823 // avoid the possibility of recursive references causing very long compile times 22824 // when checking these features. Unnumbered groups do not have this exposure since 22825 // they cannot be referenced. We use an indexed vector for this purpose. If there 22826 // are sufficiently few groups, the default vector on the stack, as set up above, 22827 // can be used. Otherwise we have to get/free a special vector. The vector must be 22828 // initialized to zero. 22829 22830 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fbracount >= Tuint32_t(DGROUPINFO_DEFAULT_SIZE)) { 22831 goto __56 22832 } 22833 22834 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fgroupinfo = (*struct { 22835 f func(*libc.TLS, Tsize_t, uintptr) uintptr 22836 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, 22837 uint64((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fbracount+Tuint32_t(1))*uint64(unsafe.Sizeof(Tuint32_t(0))), (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 22838 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fgroupinfo == uintptr(0)) { 22839 goto __57 22840 } 22841 22842 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR21 22843 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ferroroffset = uint64(0) 22844 goto HAD_CB_ERROR 22845 __57: 22846 ; 22847 __56: 22848 ; 22849 libc.Xmemset(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fgroupinfo, 0, uint64((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fbracount+Tuint32_t(1))*uint64(unsafe.Sizeof(Tuint32_t(0)))) 22850 22851 // If there were any lookbehinds, scan the parsed pattern to figure out their 22852 // lengths. 22853 22854 if !(*(*TBOOL)(unsafe.Pointer(bp + 17744)) != 0) { 22855 goto __58 22856 } 22857 22858 *(*int32)(unsafe.Pointer(bp + 17748 /* loopcount */)) = 0 22859 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = check_lookbehinds(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fparsed_pattern, uintptr(0), uintptr(0), bp+17440, bp+17748) 22860 if !(*(*int32)(unsafe.Pointer(bp + 17768)) != 0) { 22861 goto __59 22862 } 22863 goto HAD_CB_ERROR 22864 __59: 22865 ; 22866 __58: 22867 ; 22868 22869 // For debugging, there is a function that shows the parsed data vector. 22870 22871 // For debugging capturing information this code can be enabled. 22872 22873 // Pretend to compile the pattern while actually just accumulating the amount 22874 // of memory required in the 'length' variable. This behaviour is triggered by 22875 // passing a non-NULL final argument to compile_regex(). We pass a block of 22876 // workspace (cworkspace) for it to compile parts of the pattern into; the 22877 // compiled code is discarded when it is no longer needed, so hopefully this 22878 // workspace will never overflow, though there is a test for its doing so. 22879 // 22880 // On error, errorcode will be set non-zero, so we don't need to look at the 22881 // result of the function. The initial options have been put into the cb block, 22882 // but we still have to pass a separate options variable (the first argument) 22883 // because the options may change as the pattern is processed. 22884 22885 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ferroroffset = patlen // For any subsequent errors that do not set it 22886 *(*uintptr)(unsafe.Pointer(bp + 17760 /* pptr */)) = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparsed_pattern 22887 *(*uintptr)(unsafe.Pointer(bp + 17752 /* code */)) = cworkspace 22888 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 17752 /* code */)))) = OP_BRA 22889 22890 compile_regex(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fexternal_options, bp+17752, bp+17760, bp+17768, uint32(0), bp+17772, 22891 bp+17776, bp+17780, bp+17784, uintptr(0), bp+17440, bp+17792) 22892 22893 if !(*(*int32)(unsafe.Pointer(bp + 17768)) != 0) { 22894 goto __60 22895 } 22896 goto HAD_CB_ERROR 22897 __60: 22898 ; // Offset is in cb.erroroffset 22899 22900 // This should be caught in compile_regex(), but just in case... 22901 22902 if !(*(*Tsize_t)(unsafe.Pointer(bp + 17792)) > uint64(int32(1)<<16)) { 22903 goto __61 22904 } 22905 22906 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR20 22907 goto HAD_CB_ERROR 22908 __61: 22909 ; 22910 22911 // Compute the size of, and then get and initialize, the data block for storing 22912 // the compiled pattern and names table. Integer overflow should no longer be 22913 // possible because nowadays we limit the maximum value of cb.names_found and 22914 // cb.name_entry_size. 22915 22916 re_blocksize = uint64(unsafe.Sizeof(Tpcre2_real_code_8{})) + (*(*Tsize_t)(unsafe.Pointer(bp + 17792))+Tsize_t((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fnames_found)*Tsize_t((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fname_entry_size))*uint64(DPCRE2_CODE_UNIT_WIDTH/8) 22917 re = (*struct { 22918 f func(*libc.TLS, Tsize_t, uintptr) uintptr 22919 })(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) 22920 if !(re == uintptr(0)) { 22921 goto __62 22922 } 22923 22924 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR21 22925 goto HAD_CB_ERROR 22926 __62: 22927 ; 22928 22929 // The compiler may put padding at the end of the pcre2_real_code structure in 22930 // order to round it up to a multiple of 4 or 8 bytes. This means that when a 22931 // compiled pattern is copied (for example, when serialized) undefined bytes are 22932 // read, and this annoys debuggers such as valgrind. To avoid this, we explicitly 22933 // write to the last 8 bytes of the structure before setting the fields. 22934 22935 libc.Xmemset(tls, re+uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{})))-uintptr(8), 0, uint64(8)) 22936 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmemctl = (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl 22937 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables = tables 22938 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fexecutable_jit = uintptr(0) 22939 libc.Xmemset(tls, re+40, 0, uint64(32)*uint64(unsafe.Sizeof(Tuint8_t(0)))) 22940 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize = re_blocksize 22941 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number = uint32(DMAGIC_NUMBER) 22942 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fcompile_options = options 22943 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fexternal_options 22944 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fextra_options = (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options 22945 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags = Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8) | (*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fexternal_flags | setflags 22946 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap = limit_heap 22947 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match = limit_match 22948 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth = limit_depth 22949 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit = Tuint32_t(0) 22950 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit = Tuint32_t(0) 22951 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention = Tuint16_t(bsr) 22952 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention = Tuint16_t(newline) 22953 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind = Tuint16_t(0) 22954 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength = Tuint16_t(0) 22955 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket = Tuint16_t(0) 22956 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref = Tuint16_t(0) 22957 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fname_entry_size 22958 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnames_found 22959 22960 // The basic block is immediately followed by the name table, and the compiled 22961 // code follows after that. 22962 22963 codestart = re + uintptr(uint64(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)) 22964 22965 // Update the compile data block for the actual compile. The starting points of 22966 // the name/number translation table and of the code are passed around in the 22967 // compile data block. The start/end pattern and initial options are already set 22968 // from the pre-compile phase, as is the name_entry_size field. 22969 22970 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparens_depth = Tuint16_t(0) 22971 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fassert_depth = Tuint16_t(0) 22972 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Flastcapture = Tuint32_t(0) 22973 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fname_table = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) 22974 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fstart_code = codestart 22975 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Freq_varyopt = Tuint32_t(0) 22976 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fhad_accept = DFALSE 22977 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fhad_pruneorskip = DFALSE 22978 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fopen_caps = uintptr(0) 22979 22980 // If any named groups were found, create the name/number table from the list 22981 // created in the pre-pass. 22982 22983 if !(int32((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fnames_found) > 0) { 22984 goto __63 22985 } 22986 22987 ng = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnamed_groups 22988 i = Tuint32_t(0) 22989 __64: 22990 if !(i < Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fnames_found)) { 22991 goto __66 22992 } 22993 add_name_to_table(tls, bp+17440, (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, int32((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength), (*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber, i) 22994 goto __65 22995 __65: 22996 i++ 22997 ng += 16 22998 goto __64 22999 goto __66 23000 __66: 23001 ; 23002 __63: 23003 ; 23004 23005 // Set up a starting, non-extracting bracket, then compile the expression. On 23006 // error, errorcode will be set non-zero, so we don't need to look at the result 23007 // of the function here. 23008 23009 *(*uintptr)(unsafe.Pointer(bp + 17760 /* pptr */)) = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparsed_pattern 23010 *(*uintptr)(unsafe.Pointer(bp + 17752 /* code */)) = codestart 23011 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 17752 /* code */)))) = OP_BRA 23012 regexrc = compile_regex(tls, (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options, bp+17752, bp+17760, bp+17768, uint32(0), 23013 bp+17772, bp+17776, bp+17780, bp+17784, uintptr(0), bp+17440, uintptr(0)) 23014 if !(regexrc < 0) { 23015 goto __67 23016 } 23017 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_MATCH_EMPTY) 23018 __67: 23019 ; 23020 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fbracount) 23021 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ftop_backref) 23022 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fmax_lookbehind) 23023 23024 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fhad_accept != 0) { 23025 goto __68 23026 } 23027 23028 *(*Tuint32_t)(unsafe.Pointer(bp + 17780 /* reqcu */)) = Tuint32_t(0) // Must disable after (*ACCEPT) 23029 *(*Tuint32_t)(unsafe.Pointer(bp + 17784 /* reqcuflags */)) = DREQ_NONE 23030 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_HASACCEPT) // Disables minimum length 23031 __68: 23032 ; 23033 23034 // Fill in the final opcode and check for disastrous overflow. If no overflow, 23035 // but the estimated length exceeds the really used length, adjust the value of 23036 // re->blocksize, and if valgrind support is configured, mark the extra allocated 23037 // memory as unaddressable, so that any out-of-bound reads can be detected. 23038 23039 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 17752 /* code */)), 1))) = OP_END 23040 usedlength = Tsize_t((int64(*(*uintptr)(unsafe.Pointer(bp + 17752))) - int64(codestart)) / 1) 23041 if !(usedlength > *(*Tsize_t)(unsafe.Pointer(bp + 17792))) { 23042 goto __69 23043 } 23044 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR23 23045 goto __70 23046 __69: 23047 23048 *(*Tsize_t)(unsafe.Pointer(re + 72)) -= (*(*Tsize_t)(unsafe.Pointer(bp + 17792)) - usedlength) * uint64(DPCRE2_CODE_UNIT_WIDTH/8) 23049 __70: 23050 ; 23051 23052 // Scan the pattern for recursion/subroutine calls and convert the group 23053 // numbers into offsets. Maintain a small cache so that repeated groups containing 23054 // recursions are efficiently handled. 23055 23056 if !(*(*int32)(unsafe.Pointer(bp + 17768)) == 0 && (*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fhad_recurse != 0) { 23057 goto __71 23058 } 23059 23060 ccount = uint32(0) 23061 start = DRSCAN_CACHE_SIZE 23062 23063 rcode = find_recurse(tls, codestart, utf) 23064 __72: 23065 if !(rcode != uintptr(0)) { 23066 goto __74 23067 } 23068 23069 groupnumber = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 2))))) 23070 if !(groupnumber == 0) { 23071 goto __75 23072 } 23073 rgroup = codestart 23074 goto __76 23075 __75: 23076 23077 search_from = codestart 23078 rgroup = uintptr(0) 23079 i = Tuint32_t(0) 23080 p1 = start 23081 __77: 23082 if !(i < ccount) { 23083 goto __79 23084 } 23085 23086 if !(groupnumber == (*Trecurse_cache)(unsafe.Pointer(bp+17800+uintptr(p1)*16)).Fgroupnumber) { 23087 goto __80 23088 } 23089 23090 rgroup = (*Trecurse_cache)(unsafe.Pointer(bp + 17800 + uintptr(p1)*16)).Fgroup 23091 goto __79 23092 __80: 23093 ; 23094 23095 // Group n+1 must always start to the right of group n, so we can save 23096 // search time below when the new group number is greater than any of the 23097 // previously found groups. 23098 23099 if !(groupnumber > (*Trecurse_cache)(unsafe.Pointer(bp+17800+uintptr(p1)*16)).Fgroupnumber) { 23100 goto __81 23101 } 23102 search_from = (*Trecurse_cache)(unsafe.Pointer(bp + 17800 + uintptr(p1)*16)).Fgroup 23103 __81: 23104 ; 23105 goto __78 23106 __78: 23107 i++ 23108 p1 = (p1 + 1) & 7 23109 goto __77 23110 goto __79 23111 __79: 23112 ; 23113 23114 if !(rgroup == uintptr(0)) { 23115 goto __82 23116 } 23117 23118 rgroup = X_pcre2_find_bracket_8(tls, search_from, utf, groupnumber) 23119 if !(rgroup == uintptr(0)) { 23120 goto __83 23121 } 23122 23123 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR53 23124 goto __74 23125 __83: 23126 ; 23127 if !(libc.PreDecInt32(&start, 1) < 0) { 23128 goto __84 23129 } 23130 start = DRSCAN_CACHE_SIZE - 1 23131 __84: 23132 ; 23133 (*Trecurse_cache)(unsafe.Pointer(bp + 17800 + uintptr(start)*16)).Fgroupnumber = groupnumber 23134 (*Trecurse_cache)(unsafe.Pointer(bp + 17800 + uintptr(start)*16)).Fgroup = rgroup 23135 if !(ccount < uint32(DRSCAN_CACHE_SIZE)) { 23136 goto __85 23137 } 23138 ccount++ 23139 __85: 23140 ; 23141 __82: 23142 ; 23143 __76: 23144 ; 23145 23146 *(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 1)) = TPCRE2_UCHAR8((int64(rgroup) - int64(codestart)) / 1 >> 8) 23147 *(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 2)) = TPCRE2_UCHAR8((int64(rgroup) - int64(codestart)) / 1 & int64(255)) 23148 goto __73 23149 __73: 23150 rcode = find_recurse(tls, rcode+uintptr(1)+uintptr(DLINK_SIZE), utf) 23151 goto __72 23152 goto __74 23153 __74: 23154 ; 23155 __71: 23156 ; 23157 23158 // In rare debugging situations we sometimes need to look at the compiled code 23159 // at this stage. 23160 23161 // Unless disabled, check whether any single character iterators can be 23162 // auto-possessified. The function overwrites the appropriate opcode values, so 23163 // the type of the pointer must be cast. NOTE: the intermediate variable "temp" is 23164 // used in this code because at least one compiler gives a warning about loss of 23165 // "const" attribute if the cast (PCRE2_UCHAR *)codestart is used directly in the 23166 // function call. 23167 23168 if !(*(*int32)(unsafe.Pointer(bp + 17768)) == 0 && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_AUTO_POSSESS == Tuint32_t(0)) { 23169 goto __86 23170 } 23171 23172 temp = codestart 23173 if !(X_pcre2_auto_possessify_8(tls, temp, bp+17440) != 0) { 23174 goto __87 23175 } 23176 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR80 23177 __87: 23178 ; 23179 __86: 23180 ; 23181 23182 // Failed to compile, or error while post-processing. 23183 23184 if !(*(*int32)(unsafe.Pointer(bp + 17768)) != 0) { 23185 goto __88 23186 } 23187 goto HAD_CB_ERROR 23188 __88: 23189 ; 23190 23191 // Successful compile. If the anchored option was not passed, set it if 23192 // we can determine that the pattern is anchored by virtue of ^ characters or \A 23193 // or anything else, such as starting with non-atomic .* when DOTALL is set and 23194 // there are no occurrences of *PRUNE or *SKIP (though there is an option to 23195 // disable this case). 23196 23197 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED == Tuint32_t(0) && is_anchored(tls, codestart, uint32(0), bp+17440, 0, DFALSE) != 0) { 23198 goto __89 23199 } 23200 *(*Tuint32_t)(unsafe.Pointer(re + 88)) |= DPCRE2_ANCHORED 23201 __89: 23202 ; 23203 23204 // Set up the first code unit or startline flag, the required code unit, and 23205 // then study the pattern. This code need not be obeyed if PCRE2_NO_START_OPTIMIZE 23206 // is set, as the data it would create will not be used. Note that a first code 23207 // unit (but not the startline flag) is useful for anchored patterns because it 23208 // can still give a quick "no match" and also avoid searching for a last code 23209 // unit. 23210 23211 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_START_OPTIMIZE == Tuint32_t(0)) { 23212 goto __90 23213 } 23214 23215 minminlength = 0 // For minimal minlength from first/required CU 23216 23217 // If we do not have a first code unit, see if there is one that is asserted 23218 // (these are not saved during the compile because they can cause conflicts with 23219 // actual literals that follow). 23220 23221 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17776)) >= DREQ_NONE) { 23222 goto __91 23223 } 23224 *(*Tuint32_t)(unsafe.Pointer(bp + 17772 /* firstcu */)) = find_firstassertedcu(tls, codestart, bp+17776, uint32(0)) 23225 __91: 23226 ; 23227 23228 // Save the data for a first code unit. The existence of one means the 23229 // minimum length must be at least 1. 23230 23231 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17776)) < DREQ_NONE) { 23232 goto __92 23233 } 23234 23235 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit = *(*Tuint32_t)(unsafe.Pointer(bp + 17772 /* firstcu */)) 23236 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_FIRSTSET) 23237 minminlength++ 23238 23239 // Handle caseless first code units. 23240 23241 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17776))&DREQ_CASELESS != Tuint32_t(0)) { 23242 goto __94 23243 } 23244 23245 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17772)) < Tuint32_t(128) || !(utf != 0) && !(ucp != 0) && *(*Tuint32_t)(unsafe.Pointer(bp + 17772)) < Tuint32_t(255)) { 23246 goto __95 23247 } 23248 23249 if !(Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 17772)))))) != *(*Tuint32_t)(unsafe.Pointer(bp + 17772))) { 23250 goto __97 23251 } 23252 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_FIRSTCASELESS) 23253 __97: 23254 ; 23255 goto __96 23256 __95: 23257 if !(ucp != 0 && !(utf != 0) && Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17772)))+(*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 + 17772)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17772)))%DUCD_BLOCK_SIZE])*12)).Fother_case) != *(*Tuint32_t)(unsafe.Pointer(bp + 17772))) { 23258 goto __98 23259 } 23260 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_FIRSTCASELESS) 23261 __98: 23262 ; 23263 __96: 23264 ; 23265 __94: 23266 ; 23267 goto __93 23268 __92: 23269 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED == Tuint32_t(0) && is_startline(tls, codestart, uint32(0), bp+17440, 0, DFALSE) != 0) { 23270 goto __99 23271 } 23272 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_STARTLINE) 23273 __99: 23274 ; 23275 __93: 23276 ; 23277 23278 // Handle the "required code unit", if one is set. In the UTF case we can 23279 // increment the minimum minimum length only if we are sure this really is a 23280 // different character and not a non-starting code unit of the first character, 23281 // because the minimum length count is in characters, not code units. 23282 23283 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17784)) < DREQ_NONE) { 23284 goto __100 23285 } 23286 23287 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF == Tuint32_t(0) || *(*Tuint32_t)(unsafe.Pointer(bp + 17776)) >= DREQ_NONE || *(*Tuint32_t)(unsafe.Pointer(bp + 17772))&Tuint32_t(0x80) == Tuint32_t(0) || *(*Tuint32_t)(unsafe.Pointer(bp + 17780))&Tuint32_t(0x80) == Tuint32_t(0)) { 23288 goto __101 23289 } /* Req is ASCII */ 23290 23291 minminlength++ 23292 __101: 23293 ; 23294 23295 // In the case of an anchored pattern, set up the value only if it follows 23296 // a variable length item in the pattern. 23297 23298 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED == Tuint32_t(0) || *(*Tuint32_t)(unsafe.Pointer(bp + 17784))&DREQ_VARY != Tuint32_t(0)) { 23299 goto __102 23300 } 23301 23302 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit = *(*Tuint32_t)(unsafe.Pointer(bp + 17780 /* reqcu */)) 23303 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_LASTSET) 23304 23305 // Handle caseless required code units as for first code units (above). 23306 23307 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17784))&DREQ_CASELESS != Tuint32_t(0)) { 23308 goto __103 23309 } 23310 23311 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17780)) < Tuint32_t(128) || !(utf != 0) && !(ucp != 0) && *(*Tuint32_t)(unsafe.Pointer(bp + 17780)) < Tuint32_t(255)) { 23312 goto __104 23313 } 23314 23315 if !(Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 17780)))))) != *(*Tuint32_t)(unsafe.Pointer(bp + 17780))) { 23316 goto __106 23317 } 23318 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_LASTCASELESS) 23319 __106: 23320 ; 23321 goto __105 23322 __104: 23323 if !(ucp != 0 && !(utf != 0) && Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17780)))+(*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 + 17780)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17780)))%DUCD_BLOCK_SIZE])*12)).Fother_case) != *(*Tuint32_t)(unsafe.Pointer(bp + 17780))) { 23324 goto __107 23325 } 23326 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_LASTCASELESS) 23327 __107: 23328 ; 23329 __105: 23330 ; 23331 __103: 23332 ; 23333 __102: 23334 ; 23335 __100: 23336 ; 23337 23338 // Study the compiled pattern to set up information such as a bitmap of 23339 // starting code units and a minimum matching length. 23340 23341 if !(X_pcre2_study_8(tls, re) != 0) { 23342 goto __108 23343 } 23344 23345 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR31 23346 goto HAD_CB_ERROR 23347 __108: 23348 ; 23349 23350 // If study() set a bitmap of starting code units, it implies a minimum 23351 // length of at least one. 23352 23353 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0) && minminlength == 0) { 23354 goto __109 23355 } 23356 minminlength = 1 23357 __109: 23358 ; 23359 23360 // If the minimum length set (or not set) by study() is less than the minimum 23361 // implied by required code units, override it. 23362 23363 if !(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength) < minminlength) { 23364 goto __110 23365 } 23366 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength = Tuint16_t(minminlength) 23367 __110: 23368 ; 23369 __90: 23370 ; // End of start-of-match optimizations. 23371 23372 // Control ends up here in all cases. When running under valgrind, make a 23373 // pattern's terminating zero defined again. If memory was obtained for the parsed 23374 // version of the pattern, free it before returning. Also free the list of named 23375 // groups if a larger one had to be obtained, and likewise the group information 23376 // vector. 23377 23378 EXIT: 23379 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fparsed_pattern != bp+13344) { 23380 goto __111 23381 } 23382 (*struct { 23383 f func(*libc.TLS, uintptr, uintptr) 23384 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fparsed_pattern, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 23385 __111: 23386 ; 23387 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fnamed_group_list_size > Tuint32_t(DNAMED_GROUP_LIST_SIZE)) { 23388 goto __112 23389 } 23390 (*struct { 23391 f func(*libc.TLS, uintptr, uintptr) 23392 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fnamed_groups, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 23393 __112: 23394 ; 23395 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fgroupinfo != bp+12000) { 23396 goto __113 23397 } 23398 (*struct { 23399 f func(*libc.TLS, uintptr, uintptr) 23400 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fgroupinfo, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 23401 __113: 23402 ; 23403 return re // Will be NULL after an error 23404 23405 // Errors discovered in parse_regex() set the offset value in the compile 23406 // block. Errors discovered before it is called must compute it from the ptr 23407 // value. After parse_regex() is called, the offset in the compile block is set to 23408 // the end of the pattern, but certain errors in compile_regex() may reset it if 23409 // an offset is available in the parsed pattern. 23410 23411 HAD_CB_ERROR: 23412 ptr = pattern + uintptr((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Ferroroffset) 23413 23414 HAD_EARLY_ERROR: 23415 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int64(ptr) - int64(pattern)) / 1) 23416 23417 HAD_ERROR: 23418 *(*int32)(unsafe.Pointer(errorptr)) = *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) 23419 Xpcre2_code_free_8(tls, re) 23420 re = uintptr(0) 23421 goto EXIT 23422 return uintptr(0) 23423 } 23424 23425 // End of pcre2_compile.c 23426 23427 // ************************************************ 23428 // 23429 // Perl-Compatible Regular Expressions * 23430 // 23431 23432 // PCRE is a library of functions to support regular expressions whose syntax 23433 // and semantics are as close as possible to those of the Perl 5 language. 23434 // 23435 // Written by Philip Hazel 23436 // Original API code Copyright (c) 1997-2012 University of Cambridge 23437 // New API code Copyright (c) 2016-2020 University of Cambridge 23438 // 23439 // ----------------------------------------------------------------------------- 23440 // Redistribution and use in source and binary forms, with or without 23441 // modification, are permitted provided that the following conditions are met: 23442 // 23443 // * Redistributions of source code must retain the above copyright notice, 23444 // this list of conditions and the following disclaimer. 23445 // 23446 // * Redistributions in binary form must reproduce the above copyright 23447 // notice, this list of conditions and the following disclaimer in the 23448 // documentation and/or other materials provided with the distribution. 23449 // 23450 // * Neither the name of the University of Cambridge nor the names of its 23451 // contributors may be used to endorse or promote products derived from 23452 // this software without specific prior written permission. 23453 // 23454 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23455 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23456 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23457 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 23458 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23459 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23460 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23461 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23462 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23463 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 23464 // POSSIBILITY OF SUCH DAMAGE. 23465 // ----------------------------------------------------------------------------- 23466 23467 // src/config.h. Generated from config.h.in by configure. 23468 // src/config.h.in. Generated from configure.ac by autoheader. 23469 23470 // PCRE2 is written in Standard C, but there are a few non-standard things it 23471 // can cope with, allowing it to run on SunOS4 and other "close to standard" 23472 // systems. 23473 // 23474 // In environments that support the GNU autotools, config.h.in is converted into 23475 // config.h by the "configure" script. In environments that use CMake, 23476 // config-cmake.in is converted into config.h. If you are going to build PCRE2 "by 23477 // hand" without using "configure" or CMake, you should copy the distributed 23478 // config.h.generic to config.h, and edit the macro definitions to be the way you 23479 // need them. You must then add -DHAVE_CONFIG_H to all of your compile commands, 23480 // so that config.h is included at the start of every source. 23481 // 23482 // Alternatively, you can avoid editing by using -D on the compiler command line 23483 // to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H, 23484 // but if you do, default values will be taken from config.h for non-boolean 23485 // macros that are not defined on the command line. 23486 // 23487 // Boolean macros such as HAVE_STDLIB_H and SUPPORT_PCRE2_8 should either be 23488 // defined (conventionally to 1) for TRUE, and not defined at all for FALSE. All 23489 // such macros are listed as a commented #undef in config.h.generic. Macros such 23490 // as MATCH_LIMIT, whose actual value is relevant, have defaults defined, but are 23491 // surrounded by #ifndef/#endif lines so that the value can be overridden by -D. 23492 // 23493 // PCRE2 uses memmove() if HAVE_MEMMOVE is defined; otherwise it uses bcopy() if 23494 // HAVE_BCOPY is defined. If your system has neither bcopy() nor memmove(), make 23495 // sure both macros are undefined; an emulation function will then be used. 23496 23497 // By default, the \R escape sequence matches any Unicode line ending 23498 // character or sequence of characters. If BSR_ANYCRLF is defined (to any 23499 // value), this is changed so that backslash-R matches only CR, LF, or CRLF. 23500 // The build-time default can be overridden by the user of PCRE2 at runtime. 23501 // 23502 // #undef BSR_ANYCRLF 23503 23504 // Define to any value to disable the use of the z and t modifiers in 23505 // formatting settings such as %zu or %td (this is rarely needed). 23506 // #undef DISABLE_PERCENT_ZT 23507 23508 // If you are compiling for a system that uses EBCDIC instead of ASCII 23509 // character codes, define this macro to any value. When EBCDIC is set, PCRE2 23510 // assumes that all input strings are in EBCDIC. If you do not define this 23511 // macro, PCRE2 will assume input strings are ASCII or UTF-8/16/32 Unicode. It 23512 // is not possible to build a version of PCRE2 that supports both EBCDIC and 23513 // UTF-8/16/32. 23514 // #undef EBCDIC 23515 23516 // In an EBCDIC environment, define this macro to any value to arrange for the 23517 // NL character to be 0x25 instead of the default 0x15. NL plays the role that 23518 // LF does in an ASCII/Unicode environment. 23519 // #undef EBCDIC_NL25 23520 23521 // Define this if your compiler supports __attribute__((uninitialized)) 23522 // #undef HAVE_ATTRIBUTE_UNINITIALIZED 23523 23524 // Define to 1 if you have the `bcopy' function. 23525 23526 // Define to 1 if you have the <bzlib.h> header file. 23527 23528 // Define to 1 if you have the <dirent.h> header file. 23529 23530 // Define to 1 if you have the <dlfcn.h> header file. 23531 23532 // Define to 1 if you have the <editline/readline.h> header file. 23533 // #undef HAVE_EDITLINE_READLINE_H 23534 23535 // Define to 1 if you have the <edit/readline/readline.h> header file. 23536 // #undef HAVE_EDIT_READLINE_READLINE_H 23537 23538 // Define to 1 if you have the <inttypes.h> header file. 23539 23540 // Define to 1 if you have the <limits.h> header file. 23541 23542 // Define to 1 if you have the `memfd_create' function. 23543 23544 // Define to 1 if you have the `memmove' function. 23545 23546 // Define to 1 if you have the <minix/config.h> header file. 23547 // #undef HAVE_MINIX_CONFIG_H 23548 23549 // Define to 1 if you have the `mkostemp' function. 23550 23551 // Define if you have POSIX threads libraries and header files. 23552 // #undef HAVE_PTHREAD 23553 23554 // Have PTHREAD_PRIO_INHERIT. 23555 // #undef HAVE_PTHREAD_PRIO_INHERIT 23556 23557 // Define to 1 if you have the <readline.h> header file. 23558 // #undef HAVE_READLINE_H 23559 23560 // Define to 1 if you have the <readline/history.h> header file. 23561 // #undef HAVE_READLINE_HISTORY_H 23562 23563 // Define to 1 if you have the <readline/readline.h> header file. 23564 // #undef HAVE_READLINE_READLINE_H 23565 23566 // Define to 1 if you have the `realpath' function. 23567 23568 // Define to 1 if you have the `secure_getenv' function. 23569 23570 // Define to 1 if you have the <stdint.h> header file. 23571 23572 // Define to 1 if you have the <stdio.h> header file. 23573 23574 // Define to 1 if you have the <stdlib.h> header file. 23575 23576 // Define to 1 if you have the `strerror' function. 23577 23578 // Define to 1 if you have the <strings.h> header file. 23579 23580 // Define to 1 if you have the <string.h> header file. 23581 23582 // Define to 1 if you have the <sys/stat.h> header file. 23583 23584 // Define to 1 if you have the <sys/types.h> header file. 23585 23586 // Define to 1 if you have the <sys/wait.h> header file. 23587 23588 // Define to 1 if you have the <unistd.h> header file. 23589 23590 // Define to 1 if the compiler supports simple visibility declarations. 23591 23592 // Define to 1 if you have the <wchar.h> header file. 23593 23594 // Define to 1 if you have the <windows.h> header file. 23595 // #undef HAVE_WINDOWS_H 23596 23597 // Define to 1 if you have the <zlib.h> header file. 23598 23599 // This limits the amount of memory that may be used while matching a pattern. 23600 // It applies to both pcre2_match() and pcre2_dfa_match(). It does not apply 23601 // to JIT matching. The value is in kibibytes (units of 1024 bytes). 23602 23603 // The value of LINK_SIZE determines the number of bytes used to store links 23604 // as offsets within the compiled regex. The default is 2, which allows for 23605 // compiled patterns up to 65535 code units long. This covers the vast 23606 // majority of cases. However, PCRE2 can also be compiled to use 3 or 4 bytes 23607 // instead. This allows for longer patterns in extreme cases. 23608 23609 // Define to the sub-directory where libtool stores uninstalled libraries. 23610 23611 // The value of MATCH_LIMIT determines the default number of times the 23612 // pcre2_match() function can record a backtrack position during a single 23613 // matching attempt. The value is also used to limit a loop counter in 23614 // pcre2_dfa_match(). There is a runtime interface for setting a different 23615 // limit. The limit exists in order to catch runaway regular expressions that 23616 // take for ever to determine that they do not match. The default is set very 23617 // large so that it does not accidentally catch legitimate cases. 23618 23619 // The above limit applies to all backtracks, whether or not they are nested. 23620 // In some environments it is desirable to limit the nesting of backtracking 23621 // (that is, the depth of tree that is searched) more strictly, in order to 23622 // restrict the maximum amount of heap memory that is used. The value of 23623 // MATCH_LIMIT_DEPTH provides this facility. To have any useful effect, it 23624 // must be less than the value of MATCH_LIMIT. The default is to use the same 23625 // value as MATCH_LIMIT. There is a runtime method for setting a different 23626 // limit. In the case of pcre2_dfa_match(), this limit controls the depth of 23627 // the internal nested function calls that are used for pattern recursions, 23628 // lookarounds, and atomic groups. 23629 23630 // This limit is parameterized just in case anybody ever wants to change it. 23631 // Care must be taken if it is increased, because it guards against integer 23632 // overflow caused by enormously large patterns. 23633 23634 // This limit is parameterized just in case anybody ever wants to change it. 23635 // Care must be taken if it is increased, because it guards against integer 23636 // overflow caused by enormously large patterns. 23637 23638 // Defining NEVER_BACKSLASH_C locks out the use of \C in all patterns. 23639 // #undef NEVER_BACKSLASH_C 23640 23641 // The value of NEWLINE_DEFAULT determines the default newline character 23642 // sequence. PCRE2 client programs can override this by selecting other values 23643 // at run time. The valid values are 1 (CR), 2 (LF), 3 (CRLF), 4 (ANY), 5 23644 // (ANYCRLF), and 6 (NUL). 23645 23646 // Name of package 23647 23648 // Define to the address where bug reports for this package should be sent. 23649 23650 // Define to the full name of this package. 23651 23652 // Define to the full name and version of this package. 23653 23654 // Define to the one symbol short name of this package. 23655 23656 // Define to the home page for this package. 23657 23658 // Define to the version of this package. 23659 23660 // The value of PARENS_NEST_LIMIT specifies the maximum depth of nested 23661 // parentheses (of any kind) in a pattern. This limits the amount of system 23662 // stack that is used while compiling a pattern. 23663 23664 // The value of PCRE2GREP_BUFSIZE is the starting size of the buffer used by 23665 // pcre2grep to hold parts of the file it is searching. The buffer will be 23666 // expanded up to PCRE2GREP_MAX_BUFSIZE if necessary, for files containing 23667 // very long lines. The actual amount of memory used by pcre2grep is three 23668 // times this number, because it allows for the buffering of "before" and 23669 // "after" lines. 23670 23671 // The value of PCRE2GREP_MAX_BUFSIZE specifies the maximum size of the buffer 23672 // used by pcre2grep to hold parts of the file it is searching. The actual 23673 // amount of memory used by pcre2grep is three times this number, because it 23674 // allows for the buffering of "before" and "after" lines. 23675 23676 // to make a symbol visible 23677 23678 // to make a symbol visible 23679 23680 // Define to any value to include debugging code. 23681 // #undef PCRE2_DEBUG 23682 23683 // to make a symbol visible 23684 23685 // If you are compiling for a system other than a Unix-like system or 23686 // Win32, and it needs some magic to be inserted before the definition 23687 // of a function that is exported by the library, define this macro to 23688 // contain the relevant magic. If you do not define this macro, a suitable 23689 // __declspec value is used for Windows systems; in other environments 23690 // "extern" is used for a C compiler and "extern C" for a C++ compiler. 23691 // This macro apears at the start of every exported function that is part 23692 // of the external API. It does not appear on functions that are "external" 23693 // in the C sense, but which are internal to the library. 23694 23695 // Define to any value if linking statically (TODO: make nice with Libtool) 23696 23697 // Define to necessary symbol if this constant uses a non-standard name on 23698 // your system. 23699 // #undef PTHREAD_CREATE_JOINABLE 23700 23701 // Define to any non-zero number to enable support for SELinux compatible 23702 // executable memory allocator in JIT. Note that this will have no effect 23703 // unless SUPPORT_JIT is also defined. 23704 // #undef SLJIT_PROT_EXECUTABLE_ALLOCATOR 23705 23706 // Define to 1 if all of the C90 standard headers exist (not just the ones 23707 // required in a freestanding environment). This macro is provided for 23708 // backward compatibility; new code need not use it. 23709 23710 // Define to any value to enable support for Just-In-Time compiling. 23711 // #undef SUPPORT_JIT 23712 23713 // Define to any value to allow pcre2grep to be linked with libbz2, so that it 23714 // is able to handle .bz2 files. 23715 // #undef SUPPORT_LIBBZ2 23716 23717 // Define to any value to allow pcre2test to be linked with libedit. 23718 // #undef SUPPORT_LIBEDIT 23719 23720 // Define to any value to allow pcre2test to be linked with libreadline. 23721 // #undef SUPPORT_LIBREADLINE 23722 23723 // Define to any value to allow pcre2grep to be linked with libz, so that it 23724 // is able to handle .gz files. 23725 // #undef SUPPORT_LIBZ 23726 23727 // Define to any value to enable callout script support in pcre2grep. 23728 23729 // Define to any value to enable fork support in pcre2grep callout scripts. 23730 // This will have no effect unless SUPPORT_PCRE2GREP_CALLOUT is also defined. 23731 // 23732 23733 // Define to any value to enable JIT support in pcre2grep. Note that this will 23734 // have no effect unless SUPPORT_JIT is also defined. 23735 // #undef SUPPORT_PCRE2GREP_JIT 23736 23737 // Define to any value to enable the 16 bit PCRE2 library. 23738 // #undef SUPPORT_PCRE2_16 23739 23740 // Define to any value to enable the 32 bit PCRE2 library. 23741 // #undef SUPPORT_PCRE2_32 23742 23743 // Define to any value to enable the 8 bit PCRE2 library. 23744 23745 // Define to any value to enable support for Unicode and UTF encoding. This 23746 // will work even in an EBCDIC environment, but it is incompatible with the 23747 // EBCDIC macro. That is, PCRE2 can support *either* EBCDIC code *or* 23748 // ASCII/Unicode, but not both at once. 23749 23750 // Define to any value for valgrind support to find invalid memory reads. 23751 // #undef SUPPORT_VALGRIND 23752 23753 // Enable extensions on AIX 3, Interix. 23754 // Enable general extensions on macOS. 23755 // Enable general extensions on Solaris. 23756 // Enable GNU extensions on systems that have them. 23757 // Enable X/Open compliant socket functions that do not require linking 23758 // with -lxnet on HP-UX 11.11. 23759 // Identify the host operating system as Minix. 23760 // This macro does not affect the system headers' behavior. 23761 // A future release of Autoconf may stop defining this macro. 23762 // # undef _MINIX 23763 // Enable general extensions on NetBSD. 23764 // Enable NetBSD compatibility extensions on Minix. 23765 // Enable OpenBSD compatibility extensions on NetBSD. 23766 // Oddly enough, this does nothing on OpenBSD. 23767 // Define to 1 if needed for POSIX-compatible behavior. 23768 // # undef _POSIX_SOURCE 23769 // Define to 2 if needed for POSIX-compatible behavior. 23770 // # undef _POSIX_1_SOURCE 23771 // Enable POSIX-compatible threading on Solaris. 23772 // Enable extensions specified by ISO/IEC TS 18661-5:2014. 23773 // Enable extensions specified by ISO/IEC TS 18661-1:2014. 23774 // Enable extensions specified by ISO/IEC TS 18661-2:2015. 23775 // Enable extensions specified by ISO/IEC TS 18661-4:2015. 23776 // Enable extensions specified by ISO/IEC TS 18661-3:2015. 23777 // Enable extensions specified by ISO/IEC TR 24731-2:2010. 23778 // Enable extensions specified by ISO/IEC 24747:2009. 23779 // Enable extensions on HP NonStop. 23780 // Enable X/Open extensions. Define to 500 only if necessary 23781 // to make mbstate_t available. 23782 // # undef _XOPEN_SOURCE 23783 23784 // Version number of package 23785 23786 // Define to empty if `const' does not conform to ANSI C. 23787 // #undef const 23788 23789 // Define to the type of a signed integer type of width exactly 64 bits if 23790 // such a type exists and the standard includes do not define it. 23791 // #undef int64_t 23792 23793 // Define to `unsigned int' if <sys/types.h> does not define. 23794 // #undef size_t 23795 23796 // Save the configured link size, which is in bytes. In 16-bit and 32-bit modes 23797 // its value gets changed by pcre2_intmodedep.h (included by pcre2_internal.h) to 23798 // be in code units. 23799 23800 var configured_link_size int32 = DLINK_SIZE /* pcre2_config.c:49:12 */ 23801 23802 // This function is needed only when memmove() is not available. 23803 23804 // End of pcre2_internal.h 23805 23806 // These macros are the standard way of turning unquoted text into C strings. 23807 // They allow macros like PCRE2_MAJOR to be defined without quotes, which is 23808 // convenient for user programs that want to test their values. 23809 23810 // ************************************************ 23811 // 23812 // Return info about what features are configured * 23813 // 23814 23815 // If where is NULL, the length of memory required is returned. 23816 // 23817 // Arguments: 23818 // what what information is required 23819 // where where to put the information 23820 // 23821 // Returns: 0 if a numerical value is returned 23822 // >= 0 if a string value 23823 // PCRE2_ERROR_BADOPTION if "where" not recognized 23824 // or JIT target requested when JIT not enabled 23825 23826 func Xpcre2_config_8(tls *libc.TLS, what Tuint32_t, where uintptr) int32 { /* pcre2_config.c:78:1: */ 23827 if where == uintptr(0) { 23828 switch what { 23829 default: 23830 return -34 23831 fallthrough 23832 23833 case Tuint32_t(DPCRE2_CONFIG_BSR): 23834 fallthrough 23835 case Tuint32_t(DPCRE2_CONFIG_COMPILED_WIDTHS): 23836 fallthrough 23837 case Tuint32_t(DPCRE2_CONFIG_DEPTHLIMIT): 23838 fallthrough 23839 case Tuint32_t(DPCRE2_CONFIG_HEAPLIMIT): 23840 fallthrough 23841 case Tuint32_t(DPCRE2_CONFIG_JIT): 23842 fallthrough 23843 case Tuint32_t(DPCRE2_CONFIG_LINKSIZE): 23844 fallthrough 23845 case Tuint32_t(DPCRE2_CONFIG_MATCHLIMIT): 23846 fallthrough 23847 case Tuint32_t(DPCRE2_CONFIG_NEVER_BACKSLASH_C): 23848 fallthrough 23849 case Tuint32_t(DPCRE2_CONFIG_NEWLINE): 23850 fallthrough 23851 case Tuint32_t(DPCRE2_CONFIG_PARENSLIMIT): 23852 fallthrough 23853 case Tuint32_t(DPCRE2_CONFIG_STACKRECURSE): 23854 fallthrough // Obsolete 23855 case Tuint32_t(DPCRE2_CONFIG_TABLES_LENGTH): 23856 fallthrough 23857 case Tuint32_t(DPCRE2_CONFIG_UNICODE): 23858 return int32(unsafe.Sizeof(Tuint32_t(0))) 23859 fallthrough 23860 23861 // These are handled below 23862 23863 case Tuint32_t(DPCRE2_CONFIG_JITTARGET): 23864 fallthrough 23865 case Tuint32_t(DPCRE2_CONFIG_UNICODE_VERSION): 23866 fallthrough 23867 case Tuint32_t(DPCRE2_CONFIG_VERSION): 23868 break 23869 } 23870 } 23871 23872 switch what { 23873 default: 23874 return -34 23875 23876 case Tuint32_t(DPCRE2_CONFIG_BSR): 23877 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DPCRE2_BSR_UNICODE) 23878 break 23879 23880 case Tuint32_t(DPCRE2_CONFIG_COMPILED_WIDTHS): 23881 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0 + 23882 1) 23883 break 23884 23885 case Tuint32_t(DPCRE2_CONFIG_DEPTHLIMIT): 23886 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DMATCH_LIMIT) 23887 break 23888 23889 case Tuint32_t(DPCRE2_CONFIG_HEAPLIMIT): 23890 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DHEAP_LIMIT) 23891 break 23892 23893 case Tuint32_t(DPCRE2_CONFIG_JIT): 23894 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0) 23895 break 23896 23897 case Tuint32_t(DPCRE2_CONFIG_JITTARGET): 23898 return -34 23899 23900 case Tuint32_t(DPCRE2_CONFIG_LINKSIZE): 23901 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(configured_link_size) 23902 break 23903 23904 case Tuint32_t(DPCRE2_CONFIG_MATCHLIMIT): 23905 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DMATCH_LIMIT) 23906 break 23907 23908 case Tuint32_t(DPCRE2_CONFIG_NEWLINE): 23909 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DNEWLINE_DEFAULT) 23910 break 23911 23912 case Tuint32_t(DPCRE2_CONFIG_NEVER_BACKSLASH_C): 23913 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0) 23914 break 23915 23916 case Tuint32_t(DPCRE2_CONFIG_PARENSLIMIT): 23917 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DPARENS_NEST_LIMIT) 23918 break 23919 23920 // This is now obsolete. The stack is no longer used via recursion for 23921 // handling backtracking in pcre2_match(). 23922 23923 case Tuint32_t(DPCRE2_CONFIG_STACKRECURSE): 23924 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0) 23925 break 23926 23927 case Tuint32_t(DPCRE2_CONFIG_TABLES_LENGTH): 23928 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(Dcbits_offset + Dcbit_length + 256) 23929 break 23930 23931 case Tuint32_t(DPCRE2_CONFIG_UNICODE_VERSION): 23932 { 23933 var v uintptr = X_pcre2_unicode_version_8 23934 return int32(uint64(1) + func() uint64 { 23935 if where == uintptr(0) { 23936 return libc.Xstrlen(tls, v) 23937 } 23938 return X_pcre2_strcpy_c8_8(tls, where, v) 23939 }()) 23940 23941 } 23942 break 23943 23944 case Tuint32_t(DPCRE2_CONFIG_UNICODE): 23945 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(1) 23946 break 23947 23948 // The hackery in setting "v" below is to cope with the case when 23949 // PCRE2_PRERELEASE is set to an empty string (which it is for real releases). 23950 // If the second alternative is used in this case, it does not leave a space 23951 // before the date. On the other hand, if all four macros are put into a single 23952 // XSTRING when PCRE2_PRERELEASE is not empty, an unwanted space is inserted. 23953 // There are problems using an "obvious" approach like this: 23954 // 23955 // XSTRING(PCRE2_MAJOR) "." XSTRING(PCRE_MINOR) 23956 // XSTRING(PCRE2_PRERELEASE) " " XSTRING(PCRE_DATE) 23957 // 23958 // because, when PCRE2_PRERELEASE is empty, this leads to an attempted expansion 23959 // of STRING(). The C standard states: "If (before argument substitution) any 23960 // argument consists of no preprocessing tokens, the behavior is undefined." It 23961 // turns out the gcc treats this case as a single empty string - which is what 23962 // we really want - but Visual C grumbles about the lack of an argument for the 23963 // macro. Unfortunately, both are within their rights. As there seems to be no 23964 // way to test for a macro's value being empty at compile time, we have to 23965 // resort to a runtime test. 23966 23967 case Tuint32_t(DPCRE2_CONFIG_VERSION): 23968 { 23969 var v uintptr 23970 if int32(*(*uint8)(unsafe.Pointer(ts + 630 + 1))) == 0 { 23971 v = ts + 632 /* "10.40 2022-04-14" */ 23972 } else { 23973 v = ts + 649 /* "10.402022-04-14" */ 23974 } 23975 return int32(uint64(1) + func() uint64 { 23976 if where == uintptr(0) { 23977 return libc.Xstrlen(tls, v) 23978 } 23979 return X_pcre2_strcpy_c8_8(tls, where, v) 23980 }()) 23981 23982 } 23983 } 23984 23985 return 0 23986 } 23987 23988 // End of pcre2_config.c 23989 23990 // This function is needed only when memmove() is not available. 23991 23992 // End of pcre2_internal.h 23993 23994 // ************************************************ 23995 // 23996 // Default malloc/free functions * 23997 // 23998 23999 // Ignore the "user data" argument in each case. 24000 24001 func default_malloc(tls *libc.TLS, size Tsize_t, data uintptr) uintptr { /* pcre2_context.c:56:13: */ 24002 _ = data 24003 return libc.Xmalloc(tls, size) 24004 } 24005 24006 func default_free(tls *libc.TLS, block uintptr, data uintptr) { /* pcre2_context.c:63:13: */ 24007 _ = data 24008 libc.Xfree(tls, block) 24009 } 24010 24011 // ************************************************ 24012 // 24013 // Get a block and save memory control * 24014 // 24015 24016 // This internal function is called to get a block of memory in which the 24017 // memory control data is to be stored at the start for future use. 24018 // 24019 // Arguments: 24020 // size amount of memory required 24021 // memctl pointer to a memctl block or NULL 24022 // 24023 // Returns: pointer to memory or NULL on failure 24024 24025 func X_pcre2_memctl_malloc_8(tls *libc.TLS, size Tsize_t, memctl uintptr) uintptr { /* pcre2_context.c:85:13: */ 24026 var newmemctl uintptr 24027 var yield uintptr 24028 if memctl == uintptr(0) { 24029 yield = libc.Xmalloc(tls, size) 24030 } else { 24031 yield = (*struct { 24032 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24033 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmalloc})).f(tls, size, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 24034 } 24035 if yield == uintptr(0) { 24036 return uintptr(0) 24037 } 24038 newmemctl = yield 24039 if memctl == uintptr(0) { 24040 (*Tpcre2_memctl)(unsafe.Pointer(newmemctl)).Fmalloc = *(*uintptr)(unsafe.Pointer(&struct { 24041 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24042 }{default_malloc})) 24043 (*Tpcre2_memctl)(unsafe.Pointer(newmemctl)).Ffree = *(*uintptr)(unsafe.Pointer(&struct { 24044 f func(*libc.TLS, uintptr, uintptr) 24045 }{default_free})) 24046 (*Tpcre2_memctl)(unsafe.Pointer(newmemctl)).Fmemory_data = uintptr(0) 24047 } else { 24048 *(*Tpcre2_memctl)(unsafe.Pointer(newmemctl)) = *(*Tpcre2_memctl)(unsafe.Pointer(memctl)) 24049 } 24050 return yield 24051 } 24052 24053 // ************************************************ 24054 // 24055 // Create and initialize contexts * 24056 // 24057 24058 // Initializing for compile and match contexts is done in separate, private 24059 // functions so that these can be called from functions such as pcre2_compile() 24060 // when an external context is not supplied. The initializing functions have an 24061 // option to set up default memory management. 24062 24063 func Xpcre2_general_context_create_8(tls *libc.TLS, private_malloc uintptr, private_free uintptr, memory_data uintptr) uintptr { /* pcre2_context.c:114:38: */ 24064 var gcontext uintptr 24065 if private_malloc == uintptr(0) { 24066 private_malloc = *(*uintptr)(unsafe.Pointer(&struct { 24067 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24068 }{default_malloc})) 24069 } 24070 if private_free == uintptr(0) { 24071 private_free = *(*uintptr)(unsafe.Pointer(&struct { 24072 f func(*libc.TLS, uintptr, uintptr) 24073 }{default_free})) 24074 } 24075 gcontext = (*struct { 24076 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24077 })(unsafe.Pointer(&struct{ uintptr }{private_malloc})).f(tls, uint64(unsafe.Sizeof(Tpcre2_real_general_context_8{})), memory_data) 24078 if gcontext == uintptr(0) { 24079 return uintptr(0) 24080 } 24081 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmalloc = private_malloc 24082 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Ffree = private_free 24083 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data = memory_data 24084 return gcontext 24085 } 24086 24087 // A default compile context is set up to save having to initialize at run time 24088 // when no context is supplied to the compile function. 24089 24090 var X_pcre2_default_compile_context_8 = Tpcre2_compile_context_8{ 24091 Fmemctl: Tpcre2_memctl{Fmalloc: 0, Ffree: 0}, // Stack guard data 24092 Ftables: 0, // Character tables 24093 Fmax_pattern_length: libc.CplUint64(uint64(0)), 24094 Fbsr_convention: Tuint16_t(DPCRE2_BSR_UNICODE), // Backslash R default 24095 Fnewline_convention: Tuint16_t(DNEWLINE_DEFAULT), // Newline convention 24096 Fparens_nest_limit: Tuint32_t(DPARENS_NEST_LIMIT)} /* pcre2_context.c:133:29 */ 24097 24098 // Extra options 24099 24100 // The create function copies the default into the new memory, but must 24101 // override the default memory handling functions if a gcontext was provided. 24102 24103 func Xpcre2_compile_context_create_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:147:38: */ 24104 var ccontext uintptr = X_pcre2_memctl_malloc_8(tls, 24105 uint64(unsafe.Sizeof(Tpcre2_real_compile_context_8{})), gcontext) 24106 if ccontext == uintptr(0) { 24107 return uintptr(0) 24108 } 24109 *(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)) = X_pcre2_default_compile_context_8 24110 if gcontext != uintptr(0) { 24111 *(*Tpcre2_memctl)(unsafe.Pointer(ccontext)) = *(*Tpcre2_memctl)(unsafe.Pointer(gcontext)) 24112 } 24113 return ccontext 24114 } 24115 24116 // A default match context is set up to save having to initialize at run time 24117 // when no context is supplied to a match function. 24118 24119 var X_pcre2_default_match_context_8 = Tpcre2_match_context_8{ 24120 Fmemctl: Tpcre2_memctl{Fmalloc: 0, Ffree: 0}, // Substitute callout data 24121 Foffset_limit: libc.CplUint64(uint64(0)), 24122 Fheap_limit: Tuint32_t(DHEAP_LIMIT), 24123 Fmatch_limit: Tuint32_t(DMATCH_LIMIT), 24124 Fdepth_limit: Tuint32_t(DMATCH_LIMIT)} /* pcre2_context.c:163:27 */ 24125 24126 // The create function copies the default into the new memory, but must 24127 // override the default memory handling functions if a gcontext was provided. 24128 24129 func Xpcre2_match_context_create_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:181:36: */ 24130 var mcontext uintptr = X_pcre2_memctl_malloc_8(tls, 24131 uint64(unsafe.Sizeof(Tpcre2_real_match_context_8{})), gcontext) 24132 if mcontext == uintptr(0) { 24133 return uintptr(0) 24134 } 24135 *(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)) = X_pcre2_default_match_context_8 24136 if gcontext != uintptr(0) { 24137 *(*Tpcre2_memctl)(unsafe.Pointer(mcontext)) = *(*Tpcre2_memctl)(unsafe.Pointer(gcontext)) 24138 } 24139 return mcontext 24140 } 24141 24142 // A default convert context is set up to save having to initialize at run time 24143 // when no context is supplied to the convert function. 24144 24145 var X_pcre2_default_convert_context_8 = Tpcre2_convert_context_8{ 24146 Fmemctl: Tpcre2_memctl{Fmalloc: 0, Ffree: 0}, // Default memory handling 24147 Fglob_separator: Tuint32_t('\057'), // Default path separator 24148 Fglob_escape: Tuint32_t('\134'), // Default escape character 24149 } /* pcre2_context.c:197:29 */ 24150 24151 // The create function copies the default into the new memory, but must 24152 // override the default memory handling functions if a gcontext was provided. 24153 24154 func Xpcre2_convert_context_create_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:211:38: */ 24155 var ccontext uintptr = X_pcre2_memctl_malloc_8(tls, 24156 uint64(unsafe.Sizeof(Tpcre2_real_convert_context_8{})), gcontext) 24157 if ccontext == uintptr(0) { 24158 return uintptr(0) 24159 } 24160 *(*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)) = X_pcre2_default_convert_context_8 24161 if gcontext != uintptr(0) { 24162 *(*Tpcre2_memctl)(unsafe.Pointer(ccontext)) = *(*Tpcre2_memctl)(unsafe.Pointer(gcontext)) 24163 } 24164 return ccontext 24165 } 24166 24167 // ************************************************ 24168 // 24169 // Context copy functions * 24170 // 24171 24172 func Xpcre2_general_context_copy_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:228:38: */ 24173 var new uintptr = (*struct { 24174 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24175 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmalloc})).f(tls, uint64(unsafe.Sizeof(Tpcre2_real_general_context_8{})), 24176 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data) 24177 if new == uintptr(0) { 24178 return uintptr(0) 24179 } 24180 libc.Xmemcpy(tls, new, gcontext, uint64(unsafe.Sizeof(Tpcre2_real_general_context_8{}))) 24181 return new 24182 } 24183 24184 func Xpcre2_compile_context_copy_8(tls *libc.TLS, ccontext uintptr) uintptr { /* pcre2_context.c:240:38: */ 24185 var new uintptr = (*struct { 24186 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24187 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, uint64(unsafe.Sizeof(Tpcre2_real_compile_context_8{})), 24188 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 24189 if new == uintptr(0) { 24190 return uintptr(0) 24191 } 24192 libc.Xmemcpy(tls, new, ccontext, uint64(unsafe.Sizeof(Tpcre2_real_compile_context_8{}))) 24193 return new 24194 } 24195 24196 func Xpcre2_match_context_copy_8(tls *libc.TLS, mcontext uintptr) uintptr { /* pcre2_context.c:252:36: */ 24197 var new uintptr = (*struct { 24198 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24199 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl.Fmalloc})).f(tls, uint64(unsafe.Sizeof(Tpcre2_real_match_context_8{})), 24200 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl.Fmemory_data) 24201 if new == uintptr(0) { 24202 return uintptr(0) 24203 } 24204 libc.Xmemcpy(tls, new, mcontext, uint64(unsafe.Sizeof(Tpcre2_real_match_context_8{}))) 24205 return new 24206 } 24207 24208 func Xpcre2_convert_context_copy_8(tls *libc.TLS, ccontext uintptr) uintptr { /* pcre2_context.c:265:38: */ 24209 var new uintptr = (*struct { 24210 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24211 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, uint64(unsafe.Sizeof(Tpcre2_real_convert_context_8{})), 24212 (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 24213 if new == uintptr(0) { 24214 return uintptr(0) 24215 } 24216 libc.Xmemcpy(tls, new, ccontext, uint64(unsafe.Sizeof(Tpcre2_real_convert_context_8{}))) 24217 return new 24218 } 24219 24220 // ************************************************ 24221 // 24222 // Context free functions * 24223 // 24224 24225 func Xpcre2_general_context_free_8(tls *libc.TLS, gcontext uintptr) { /* pcre2_context.c:282:1: */ 24226 if gcontext != uintptr(0) { 24227 (*struct { 24228 f func(*libc.TLS, uintptr, uintptr) 24229 })(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) 24230 } 24231 } 24232 24233 func Xpcre2_compile_context_free_8(tls *libc.TLS, ccontext uintptr) { /* pcre2_context.c:290:1: */ 24234 if ccontext != uintptr(0) { 24235 (*struct { 24236 f func(*libc.TLS, uintptr, uintptr) 24237 })(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) 24238 } 24239 } 24240 24241 func Xpcre2_match_context_free_8(tls *libc.TLS, mcontext uintptr) { /* pcre2_context.c:298:1: */ 24242 if mcontext != uintptr(0) { 24243 (*struct { 24244 f func(*libc.TLS, uintptr, uintptr) 24245 })(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) 24246 } 24247 } 24248 24249 func Xpcre2_convert_context_free_8(tls *libc.TLS, ccontext uintptr) { /* pcre2_context.c:306:1: */ 24250 if ccontext != uintptr(0) { 24251 (*struct { 24252 f func(*libc.TLS, uintptr, uintptr) 24253 })(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) 24254 } 24255 } 24256 24257 // ************************************************ 24258 // 24259 // Set values in contexts * 24260 // 24261 24262 // All these functions return 0 for success or PCRE2_ERROR_BADDATA if invalid 24263 // data is given. Only some of the functions are able to test the validity of the 24264 // data. 24265 24266 // ------------ Compile context ------------ 24267 24268 func Xpcre2_set_character_tables_8(tls *libc.TLS, ccontext uintptr, tables uintptr) int32 { /* pcre2_context.c:325:1: */ 24269 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Ftables = tables 24270 return 0 24271 } 24272 24273 func Xpcre2_set_bsr_8(tls *libc.TLS, ccontext uintptr, value Tuint32_t) int32 { /* pcre2_context.c:333:1: */ 24274 switch value { 24275 case Tuint32_t(DPCRE2_BSR_ANYCRLF): 24276 fallthrough 24277 case Tuint32_t(DPCRE2_BSR_UNICODE): 24278 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fbsr_convention = Tuint16_t(value) 24279 return 0 24280 24281 default: 24282 return -29 24283 } 24284 return int32(0) 24285 } 24286 24287 func Xpcre2_set_max_pattern_length_8(tls *libc.TLS, ccontext uintptr, length Tsize_t) int32 { /* pcre2_context.c:348:1: */ 24288 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmax_pattern_length = length 24289 return 0 24290 } 24291 24292 func Xpcre2_set_newline_8(tls *libc.TLS, ccontext uintptr, newline Tuint32_t) int32 { /* pcre2_context.c:355:1: */ 24293 switch newline { 24294 case Tuint32_t(DPCRE2_NEWLINE_CR): 24295 fallthrough 24296 case Tuint32_t(DPCRE2_NEWLINE_LF): 24297 fallthrough 24298 case Tuint32_t(DPCRE2_NEWLINE_CRLF): 24299 fallthrough 24300 case Tuint32_t(DPCRE2_NEWLINE_ANY): 24301 fallthrough 24302 case Tuint32_t(DPCRE2_NEWLINE_ANYCRLF): 24303 fallthrough 24304 case Tuint32_t(DPCRE2_NEWLINE_NUL): 24305 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fnewline_convention = Tuint16_t(newline) 24306 return 0 24307 24308 default: 24309 return -29 24310 } 24311 return int32(0) 24312 } 24313 24314 func Xpcre2_set_parens_nest_limit_8(tls *libc.TLS, ccontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:374:1: */ 24315 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fparens_nest_limit = limit 24316 return 0 24317 } 24318 24319 func Xpcre2_set_compile_extra_options_8(tls *libc.TLS, ccontext uintptr, options Tuint32_t) int32 { /* pcre2_context.c:381:1: */ 24320 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options = options 24321 return 0 24322 } 24323 24324 func Xpcre2_set_compile_recursion_guard_8(tls *libc.TLS, ccontext uintptr, guard uintptr, user_data uintptr) int32 { /* pcre2_context.c:388:1: */ 24325 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fstack_guard = guard 24326 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fstack_guard_data = user_data 24327 return 0 24328 } 24329 24330 // ------------ Match context ------------ 24331 24332 func Xpcre2_set_callout_8(tls *libc.TLS, mcontext uintptr, callout uintptr, callout_data uintptr) int32 { /* pcre2_context.c:400:1: */ 24333 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout = callout 24334 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout_data = callout_data 24335 return 0 24336 } 24337 24338 func Xpcre2_set_substitute_callout_8(tls *libc.TLS, mcontext uintptr, substitute_callout uintptr, substitute_callout_data uintptr) int32 { /* pcre2_context.c:409:1: */ 24339 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout = substitute_callout 24340 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout_data = substitute_callout_data 24341 return 0 24342 } 24343 24344 func Xpcre2_set_heap_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:419:1: */ 24345 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit = limit 24346 return 0 24347 } 24348 24349 func Xpcre2_set_match_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:426:1: */ 24350 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit = limit 24351 return 0 24352 } 24353 24354 func Xpcre2_set_depth_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:433:1: */ 24355 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit = limit 24356 return 0 24357 } 24358 24359 func Xpcre2_set_offset_limit_8(tls *libc.TLS, mcontext uintptr, limit Tsize_t) int32 { /* pcre2_context.c:440:1: */ 24360 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit = limit 24361 return 0 24362 } 24363 24364 // This function became obsolete at release 10.30. It is kept as a synonym for 24365 // backwards compatibility. 24366 24367 func Xpcre2_set_recursion_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:450:1: */ 24368 return Xpcre2_set_depth_limit_8(tls, mcontext, limit) 24369 } 24370 24371 func Xpcre2_set_recursion_memory_management_8(tls *libc.TLS, mcontext uintptr, mymalloc uintptr, myfree uintptr, mydata uintptr) int32 { /* pcre2_context.c:456:1: */ 24372 _ = mcontext 24373 _ = mymalloc 24374 _ = myfree 24375 _ = mydata 24376 return 0 24377 } 24378 24379 // ------------ Convert context ------------ 24380 24381 func Xpcre2_set_glob_separator_8(tls *libc.TLS, ccontext uintptr, separator Tuint32_t) int32 { /* pcre2_context.c:470:1: */ 24382 if separator != Tuint32_t('\057') && separator != Tuint32_t('\134') && separator != Tuint32_t('\056') { 24383 return -29 24384 } 24385 (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_separator = separator 24386 return 0 24387 } 24388 24389 func Xpcre2_set_glob_escape_8(tls *libc.TLS, ccontext uintptr, escape Tuint32_t) int32 { /* pcre2_context.c:479:1: */ 24390 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) { 24391 return -29 24392 } 24393 (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_escape = escape 24394 return 0 24395 } 24396 24397 // End of pcre2_context.c 24398 24399 // Macro to add a character string to the output buffer, checking for overflow. 24400 24401 // Literals that must be escaped: \ ? * + | . ^ $ { } [ ] ( ) 24402 24403 var pcre2_escaped_literals uintptr = ts + 665 /* "\\?*+|.^${}[]()" */ /* pcre2_convert.c:87:19 */ 24404 24405 // Recognized escaped metacharacters in POSIX basic patterns. 24406 24407 var posix_meta_escapes uintptr = ts + 680 /* "(){}123456789" */ /* pcre2_convert.c:96:19 */ 24408 24409 // ************************************************ 24410 // 24411 // Convert a POSIX pattern * 24412 // 24413 24414 // This function handles both basic and extended POSIX patterns. 24415 // 24416 // Arguments: 24417 // pattype the pattern type 24418 // pattern the pattern 24419 // plength length in code units 24420 // utf TRUE if UTF 24421 // use_buffer where to put the output 24422 // use_length length of use_buffer 24423 // bufflenptr where to put the used length 24424 // dummyrun TRUE if a dummy run 24425 // ccontext the convert context 24426 // 24427 // Returns: 0 => success 24428 // !0 => error code 24429 24430 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: */ 24431 var s uintptr 24432 var posix TPCRE2_SPTR8 24433 var p uintptr 24434 var pp uintptr 24435 var endp uintptr // Allow for trailing zero 24436 var convlength Tsize_t 24437 var bracount Tuint32_t 24438 var posix_state Tuint32_t 24439 var lastspecial Tuint32_t 24440 var extended TBOOL 24441 var nextisliteral TBOOL 24442 var c Tuint32_t 24443 var sc Tuint32_t 24444 var clength int32 24445 posix = pattern 24446 p = use_buffer 24447 pp = p 24448 endp = p + uintptr(use_length) - uintptr(1) 24449 convlength = uint64(0) 24450 bracount = Tuint32_t(0) 24451 posix_state = POSIX_START_REGEX 24452 lastspecial = Tuint32_t(0) 24453 extended = libc.Bool32(pattype&DPCRE2_CONVERT_POSIX_EXTENDED != Tuint32_t(0)) 24454 nextisliteral = DFALSE 24455 24456 _ = utf // Not used when Unicode not supported 24457 _ = ccontext // Not currently used 24458 24459 // Initialize default for error offset as end of input. 24460 24461 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = plength 24462 s = ts + 694 24463 __1: 24464 if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) { 24465 goto __3 24466 } 24467 if !(p >= endp) { 24468 goto __4 24469 } 24470 return -48 24471 __4: 24472 ; 24473 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(s))) 24474 goto __2 24475 __2: 24476 s++ 24477 goto __1 24478 goto __3 24479 __3: 24480 ; 24481 24482 // Now scan the input. 24483 24484 __5: 24485 if !(plength > uint64(0)) { 24486 goto __6 24487 } 24488 clength = 1 24489 24490 // Add in the length of the last item, then, if in the dummy run, pull the 24491 // pointer back to the start of the (temporary) buffer and then remember the 24492 // start of the next item. 24493 24494 convlength = convlength + Tsize_t((int64(p)-int64(pp))/1) 24495 if !(dummyrun != 0) { 24496 goto __7 24497 } 24498 p = use_buffer 24499 __7: 24500 ; 24501 pp = p 24502 24503 // Pick up the next character 24504 24505 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) 24506 if !(utf != 0 && c >= 0xc0) { 24507 goto __8 24508 } 24509 if !(c&0x20 == Tuint32_t(0)) { 24510 goto __9 24511 } 24512 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f 24513 clength++ 24514 goto __10 24515 __9: 24516 if !(c&0x10 == Tuint32_t(0)) { 24517 goto __11 24518 } 24519 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 2)))&0x3f 24520 clength = clength + 2 24521 goto __12 24522 __11: 24523 if !(c&0x08 == Tuint32_t(0)) { 24524 goto __13 24525 } 24526 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 24527 clength = clength + 3 24528 goto __14 24529 __13: 24530 if !(c&0x04 == Tuint32_t(0)) { 24531 goto __15 24532 } 24533 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 24534 clength = clength + 4 24535 goto __16 24536 __15: 24537 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 24538 clength = clength + 5 24539 __16: 24540 ; 24541 __14: 24542 ; 24543 __12: 24544 ; 24545 __10: 24546 ; 24547 __8: 24548 ; 24549 24550 posix += TPCRE2_SPTR8(clength) 24551 plength = plength - Tsize_t(clength) 24552 24553 if nextisliteral != 0 { 24554 sc = uint32(0) 24555 } else { 24556 sc = c 24557 } 24558 nextisliteral = DFALSE 24559 24560 // Handle a character within a class. 24561 24562 if !(posix_state >= POSIX_CLASS_NOT_STARTED) { 24563 goto __17 24564 } 24565 24566 if !(c == Tuint32_t('\135')) { 24567 goto __19 24568 } 24569 24570 s = ts + 701 24571 __21: 24572 if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) { 24573 goto __23 24574 } 24575 if !(p >= endp) { 24576 goto __24 24577 } 24578 return -48 24579 __24: 24580 ; 24581 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(s))) 24582 goto __22 24583 __22: 24584 s++ 24585 goto __21 24586 goto __23 24587 __23: 24588 ; 24589 24590 posix_state = POSIX_NOT_BRACKET 24591 goto __20 24592 __19: 24593 24594 switch posix_state { 24595 case POSIX_CLASS_STARTED: 24596 goto __26 24597 // Fall through 24598 24599 case POSIX_CLASS_NOT_STARTED: 24600 goto __27 24601 24602 case POSIX_CLASS_STARTING: 24603 goto __28 24604 } 24605 goto __25 24606 24607 __26: 24608 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) { 24609 goto __29 24610 } 24611 goto __25 24612 __29: 24613 ; // Remain in started state 24614 posix_state = POSIX_CLASS_NOT_STARTED 24615 if !(c == Tuint32_t('\072') && plength > uint64(0) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) == '\135') { 24616 goto __30 24617 } 24618 24619 s = ts + 703 24620 __31: 24621 if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) { 24622 goto __33 24623 } 24624 if !(p >= endp) { 24625 goto __34 24626 } 24627 return -48 24628 __34: 24629 ; 24630 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(s))) 24631 goto __32 24632 __32: 24633 s++ 24634 goto __31 24635 goto __33 24636 __33: 24637 ; 24638 24639 plength-- 24640 posix++ 24641 goto __5 // With next character after :] 24642 __30: 24643 ; 24644 // Fall through 24645 24646 __27: 24647 if !(c == Tuint32_t('\133')) { 24648 goto __35 24649 } 24650 posix_state = POSIX_CLASS_STARTING 24651 __35: 24652 ; 24653 goto __25 24654 24655 __28: 24656 if !(c == Tuint32_t('\072')) { 24657 goto __36 24658 } 24659 posix_state = POSIX_CLASS_STARTED 24660 __36: 24661 ; 24662 goto __25 24663 __25: 24664 ; 24665 24666 if !(c == Tuint32_t('\134')) { 24667 goto __37 24668 } 24669 s = ts + 706 24670 __38: 24671 if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) { 24672 goto __40 24673 } 24674 if !(p >= endp) { 24675 goto __41 24676 } 24677 return -48 24678 __41: 24679 ; 24680 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(s))) 24681 goto __39 24682 __39: 24683 s++ 24684 goto __38 24685 goto __40 24686 __40: 24687 ; 24688 __37: 24689 ; 24690 24691 if !(p+uintptr(clength) > endp) { 24692 goto __42 24693 } 24694 return -48 24695 __42: 24696 ; 24697 libc.Xmemcpy(tls, p, posix-uintptr(clength), uint64(clength*(DPCRE2_CODE_UNIT_WIDTH/8))) 24698 p += uintptr(clength) 24699 __20: 24700 ; 24701 goto __18 24702 __17: 24703 switch sc { 24704 case Tuint32_t('\133'): 24705 goto __44 24706 24707 case Tuint32_t('\134'): 24708 goto __45 24709 24710 case Tuint32_t('\051'): 24711 goto __46 24712 24713 case Tuint32_t('\050'): 24714 goto __47 24715 // Fall through 24716 24717 case Tuint32_t('\077'): 24718 goto __48 24719 case Tuint32_t('\053'): 24720 goto __49 24721 case Tuint32_t('\173'): 24722 goto __50 24723 case Tuint32_t('\175'): 24724 goto __51 24725 case Tuint32_t('\174'): 24726 goto __52 24727 // Fall through 24728 24729 case Tuint32_t('\056'): 24730 goto __53 24731 case Tuint32_t('\044'): 24732 goto __54 24733 24734 case Tuint32_t('\052'): 24735 goto __55 // Ignore second and subsequent asterisks 24736 24737 case Tuint32_t('\136'): 24738 goto __56 24739 // Fall through 24740 24741 default: 24742 goto __57 24743 } 24744 goto __43 24745 24746 __44: 24747 s = ts + 708 24748 __58: 24749 if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) { 24750 goto __60 24751 } 24752 if !(p >= endp) { 24753 goto __61 24754 } 24755 return -48 24756 __61: 24757 ; 24758 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(s))) 24759 goto __59 24760 __59: 24761 s++ 24762 goto __58 24763 goto __60 24764 __60: 24765 ; 24766 24767 // Handle start of "normal" character classes 24768 24769 posix_state = POSIX_CLASS_NOT_STARTED 24770 24771 // Handle ^ and ] as first characters 24772 24773 if !(plength > uint64(0)) { 24774 goto __62 24775 } 24776 24777 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) == '\136') { 24778 goto __63 24779 } 24780 24781 posix++ 24782 plength-- 24783 s = ts + 710 24784 __64: 24785 if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) { 24786 goto __66 24787 } 24788 if !(p >= endp) { 24789 goto __67 24790 } 24791 return -48 24792 __67: 24793 ; 24794 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(s))) 24795 goto __65 24796 __65: 24797 s++ 24798 goto __64 24799 goto __66 24800 __66: 24801 ; 24802 24803 __63: 24804 ; 24805 if !(plength > uint64(0) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) == '\135') { 24806 goto __68 24807 } 24808 24809 posix++ 24810 plength-- 24811 s = ts + 701 24812 __69: 24813 if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) { 24814 goto __71 24815 } 24816 if !(p >= endp) { 24817 goto __72 24818 } 24819 return -48 24820 __72: 24821 ; 24822 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(s))) 24823 goto __70 24824 __70: 24825 s++ 24826 goto __69 24827 goto __71 24828 __71: 24829 ; 24830 24831 __68: 24832 ; 24833 __62: 24834 ; 24835 goto __43 24836 24837 __45: 24838 if !(plength == uint64(0)) { 24839 goto __73 24840 } 24841 return DPCRE2_ERROR_END_BACKSLASH 24842 __73: 24843 ; 24844 if !(extended != 0) { 24845 goto __74 24846 } 24847 nextisliteral = DTRUE 24848 goto __75 24849 __74: 24850 24851 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) < 127 && libc.Xstrchr(tls, posix_meta_escapes, int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix)))) != uintptr(0)) { 24852 goto __76 24853 } 24854 24855 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) { 24856 goto __78 24857 } 24858 s = ts + 706 24859 __79: 24860 if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) { 24861 goto __81 24862 } 24863 if !(p >= endp) { 24864 goto __82 24865 } 24866 return -48 24867 __82: 24868 ; 24869 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(s))) 24870 goto __80 24871 __80: 24872 s++ 24873 goto __79 24874 goto __81 24875 __81: 24876 ; 24877 __78: 24878 ; 24879 24880 if !(p+uintptr(1) > endp) { 24881 goto __83 24882 } 24883 return -48 24884 __83: 24885 ; 24886 lastspecial = Tuint32_t(libc.AssignPtrUint8(libc.PostIncUintptr(&p, 1), *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&posix, 1))))) 24887 plength-- 24888 goto __77 24889 __76: 24890 nextisliteral = DTRUE 24891 __77: 24892 ; 24893 __75: 24894 ; 24895 goto __43 24896 24897 __46: 24898 if !(!(extended != 0) || bracount == Tuint32_t(0)) { 24899 goto __84 24900 } 24901 goto ESCAPE_LITERAL 24902 __84: 24903 ; 24904 bracount-- 24905 goto COPY_SPECIAL 24906 24907 __47: 24908 bracount++ 24909 // Fall through 24910 24911 __48: 24912 __49: 24913 __50: 24914 __51: 24915 __52: 24916 if !!(extended != 0) { 24917 goto __85 24918 } 24919 goto ESCAPE_LITERAL 24920 __85: 24921 ; 24922 // Fall through 24923 24924 __53: 24925 __54: 24926 posix_state = POSIX_NOT_BRACKET 24927 COPY_SPECIAL: 24928 lastspecial = c 24929 if !(p+uintptr(1) > endp) { 24930 goto __86 24931 } 24932 return -48 24933 __86: 24934 ; 24935 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(c) 24936 goto __43 24937 24938 __55: 24939 if !(lastspecial != Tuint32_t('\052')) { 24940 goto __87 24941 } 24942 24943 if !(!(extended != 0) && (posix_state < POSIX_NOT_BRACKET || lastspecial == Tuint32_t('\050'))) { 24944 goto __88 24945 } 24946 goto ESCAPE_LITERAL 24947 __88: 24948 ; 24949 goto COPY_SPECIAL 24950 __87: 24951 ; 24952 goto __43 // Ignore second and subsequent asterisks 24953 24954 __56: 24955 if !(extended != 0) { 24956 goto __89 24957 } 24958 goto COPY_SPECIAL 24959 __89: 24960 ; 24961 if !(posix_state == POSIX_START_REGEX || lastspecial == Tuint32_t('\050')) { 24962 goto __90 24963 } 24964 24965 posix_state = POSIX_ANCHORED 24966 goto COPY_SPECIAL 24967 __90: 24968 ; 24969 // Fall through 24970 24971 __57: 24972 if !(c < Tuint32_t(128) && libc.Xstrchr(tls, pcre2_escaped_literals, int32(c)) != uintptr(0)) { 24973 goto __91 24974 } 24975 24976 ESCAPE_LITERAL: 24977 s = ts + 706 24978 __92: 24979 if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) { 24980 goto __94 24981 } 24982 if !(p >= endp) { 24983 goto __95 24984 } 24985 return -48 24986 __95: 24987 ; 24988 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(s))) 24989 goto __93 24990 __93: 24991 s++ 24992 goto __92 24993 goto __94 24994 __94: 24995 ; 24996 24997 __91: 24998 ; 24999 lastspecial = Tuint32_t(0xff) // Indicates nothing special 25000 if !(p+uintptr(clength) > endp) { 25001 goto __96 25002 } 25003 return -48 25004 __96: 25005 ; 25006 libc.Xmemcpy(tls, p, posix-uintptr(clength), uint64(clength*(DPCRE2_CODE_UNIT_WIDTH/8))) 25007 p += uintptr(clength) 25008 posix_state = POSIX_NOT_BRACKET 25009 goto __43 25010 __43: 25011 ; 25012 __18: 25013 ; 25014 goto __5 25015 __6: 25016 ; 25017 25018 if !(posix_state >= POSIX_CLASS_NOT_STARTED) { 25019 goto __97 25020 } 25021 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25022 __97: 25023 ; 25024 convlength = convlength + Tsize_t((int64(p)-int64(pp))/1) // Final segment 25025 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = convlength 25026 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(0) 25027 return 0 25028 } 25029 25030 // ************************************************ 25031 // 25032 // Convert a glob pattern * 25033 // 25034 25035 // Context for writing the output into a buffer. 25036 25037 type Spcre2_output_context = struct { 25038 Foutput uintptr 25039 Foutput_end TPCRE2_SPTR8 25040 Foutput_size Tsize_t 25041 Fout_str [8]Tuint8_t 25042 } /* pcre2_convert.c:369:9 */ 25043 25044 // ************************************************ 25045 // 25046 // Convert a glob pattern * 25047 // 25048 25049 // Context for writing the output into a buffer. 25050 25051 type Tpcre2_output_context = Spcre2_output_context /* pcre2_convert.c:374:3 */ 25052 25053 // Write a character into the output. 25054 // 25055 // Arguments: 25056 // out output context 25057 // chr the next character 25058 25059 func convert_glob_write(tls *libc.TLS, out uintptr, chr TPCRE2_UCHAR8) { /* pcre2_convert.c:385:1: */ 25060 (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_size++ 25061 25062 if (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput < (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_end { 25063 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput, 1))) = chr 25064 } 25065 } 25066 25067 // Write a string into the output. 25068 // 25069 // Arguments: 25070 // out output context 25071 // length length of out->out_str 25072 25073 func convert_glob_write_str(tls *libc.TLS, out uintptr, length Tsize_t) { /* pcre2_convert.c:402:1: */ 25074 var out_str uintptr = out + 24 /* &.out_str */ 25075 var output uintptr = (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput 25076 var output_end TPCRE2_SPTR8 = (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_end 25077 var output_size Tsize_t = (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_size 25078 25079 for __ccgo := true; __ccgo; __ccgo = libc.PreDecUint64(&length, 1) != uint64(0) { 25080 output_size++ 25081 25082 if output < output_end { 25083 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&output, 1))) = *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&out_str, 1))) 25084 } 25085 } 25086 25087 (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput = output 25088 (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_size = output_size 25089 } 25090 25091 // Prints the separator into the output. 25092 // 25093 // Arguments: 25094 // out output context 25095 // separator glob separator 25096 // with_escape backslash is needed before separator 25097 25098 func convert_glob_print_separator(tls *libc.TLS, out uintptr, separator TPCRE2_UCHAR8, with_escape TBOOL) { /* pcre2_convert.c:432:1: */ 25099 if with_escape != 0 { 25100 convert_glob_write(tls, out, uint8('\134')) 25101 } 25102 25103 convert_glob_write(tls, out, separator) 25104 } 25105 25106 // Prints a wildcard into the output. 25107 // 25108 // Arguments: 25109 // out output context 25110 // separator glob separator 25111 // with_escape backslash is needed before separator 25112 25113 func convert_glob_print_wildcard(tls *libc.TLS, out uintptr, separator TPCRE2_UCHAR8, with_escape TBOOL) { /* pcre2_convert.c:451:1: */ 25114 *(*Tuint8_t)(unsafe.Pointer(out + 24)) = Tuint8_t('\133') 25115 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 1)) = Tuint8_t('\136') 25116 convert_glob_write_str(tls, out, uint64(2)) 25117 25118 convert_glob_print_separator(tls, out, separator, with_escape) 25119 25120 convert_glob_write(tls, out, uint8('\135')) 25121 } 25122 25123 // Parse a posix class. 25124 // 25125 // Arguments: 25126 // from starting point of scanning the range 25127 // pattern_end end of pattern 25128 // out output context 25129 // 25130 // Returns: >0 => class index 25131 // 0 => malformed class 25132 25133 func convert_glob_parse_class(tls *libc.TLS, from uintptr, pattern_end TPCRE2_SPTR8, out uintptr) int32 { /* pcre2_convert.c:476:1: */ 25134 var start TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) + uintptr(1) 25135 var pattern TPCRE2_SPTR8 = start 25136 var class_ptr uintptr 25137 var c TPCRE2_UCHAR8 25138 var class_index int32 25139 25140 for 1 != 0 { 25141 if pattern >= pattern_end { 25142 return 0 25143 } 25144 25145 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))) 25146 25147 if int32(c) < '\141' || int32(c) > '\172' { 25148 break 25149 } 25150 } 25151 25152 if int32(c) != '\072' || pattern >= pattern_end || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) != '\135' { 25153 return 0 25154 } 25155 25156 class_ptr = posix_classes 25157 class_index = 1 25158 25159 for 1 != 0 { 25160 if int32(*(*uint8)(unsafe.Pointer(class_ptr))) == 0 { 25161 return 0 25162 } 25163 25164 pattern = start 25165 25166 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == int32(TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(class_ptr)))) { 25167 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\072' { 25168 pattern += uintptr(2) 25169 start -= uintptr(2) 25170 25171 for __ccgo := true; __ccgo; __ccgo = start < pattern { 25172 convert_glob_write(tls, out, *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&start, 1)))) 25173 } 25174 25175 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25176 return class_index 25177 } 25178 pattern++ 25179 class_ptr++ 25180 } 25181 25182 for int32(*(*uint8)(unsafe.Pointer(class_ptr))) != '\072' { 25183 class_ptr++ 25184 } 25185 class_ptr++ 25186 class_index++ 25187 } 25188 return int32(0) 25189 } 25190 25191 var posix_classes uintptr = ts + 712 /* "alnum:alpha:asci..." */ /* pcre2_convert.c:479:19 */ 25192 25193 // Checks whether the character is in the class. 25194 // 25195 // Arguments: 25196 // class_index class index 25197 // c character 25198 // 25199 // Returns: !0 => character is found in the class 25200 // 0 => otherwise 25201 25202 func convert_glob_char_in_class(tls *libc.TLS, class_index int32, c TPCRE2_UCHAR8) TBOOL { /* pcre2_convert.c:542:1: */ 25203 switch class_index { 25204 case 1: 25205 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISalnum) 25206 case 2: 25207 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISalpha) 25208 case 3: 25209 return 1 25210 case 4: 25211 return libc.Bool32(int32(c) == '\011' || int32(c) == '\040') 25212 case 5: 25213 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_IScntrl) 25214 case 6: 25215 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISdigit) 25216 case 7: 25217 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISgraph) 25218 case 8: 25219 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISlower) 25220 case 9: 25221 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISprint) 25222 case 10: 25223 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISpunct) 25224 case 11: 25225 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISspace) 25226 case 12: 25227 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISupper) 25228 case 13: 25229 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') 25230 default: 25231 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISxdigit) 25232 } 25233 return TBOOL(0) 25234 } 25235 25236 // Parse a range of characters. 25237 // 25238 // Arguments: 25239 // from starting point of scanning the range 25240 // pattern_end end of pattern 25241 // out output context 25242 // separator glob separator 25243 // with_escape backslash is needed before separator 25244 // 25245 // Returns: 0 => success 25246 // !0 => error code 25247 25248 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: */ 25249 var is_negative TBOOL = DFALSE 25250 var separator_seen TBOOL = DFALSE 25251 var has_prev_c TBOOL 25252 var pattern TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) 25253 var char_start TPCRE2_SPTR8 = uintptr(0) 25254 var c Tuint32_t 25255 var prev_c Tuint32_t 25256 var len int32 25257 var class_index int32 25258 25259 _ = utf // Avoid compiler warning. 25260 25261 if pattern >= pattern_end { 25262 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25263 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25264 } 25265 25266 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\041' || 25267 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\136' { 25268 pattern++ 25269 25270 if pattern >= pattern_end { 25271 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25272 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25273 } 25274 25275 is_negative = DTRUE 25276 25277 *(*Tuint8_t)(unsafe.Pointer(out + 24)) = Tuint8_t('\133') 25278 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 1)) = Tuint8_t('\136') 25279 len = 2 25280 25281 if !(no_wildsep != 0) { 25282 if with_escape != 0 { 25283 *(*Tuint8_t)(unsafe.Pointer(out + 24 + uintptr(len))) = Tuint8_t('\134') 25284 len++ 25285 } 25286 *(*Tuint8_t)(unsafe.Pointer(out + 24 + uintptr(len))) = separator 25287 } 25288 25289 convert_glob_write_str(tls, out, uint64(len+1)) 25290 } else { 25291 convert_glob_write(tls, out, uint8('\133')) 25292 } 25293 25294 has_prev_c = DFALSE 25295 prev_c = Tuint32_t(0) 25296 25297 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\135' { 25298 *(*Tuint8_t)(unsafe.Pointer(out + 24)) = Tuint8_t('\134') 25299 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 1)) = Tuint8_t('\135') 25300 convert_glob_write_str(tls, out, uint64(2)) 25301 has_prev_c = DTRUE 25302 prev_c = Tuint32_t('\135') 25303 pattern++ 25304 } 25305 25306 for pattern < pattern_end { 25307 char_start = pattern 25308 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25309 if utf != 0 && c >= 0xc0 { 25310 if c&0x20 == Tuint32_t(0) { 25311 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25312 } else if c&0x10 == Tuint32_t(0) { 25313 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25314 pattern += uintptr(2) 25315 } else if c&0x08 == Tuint32_t(0) { 25316 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 25317 pattern += uintptr(3) 25318 } else if c&0x04 == Tuint32_t(0) { 25319 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 25320 pattern += uintptr(4) 25321 } else { 25322 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 25323 pattern += uintptr(5) 25324 } 25325 } 25326 25327 if c == Tuint32_t('\135') { 25328 convert_glob_write(tls, out, uint8(c)) 25329 25330 if !(is_negative != 0) && !(no_wildsep != 0) && separator_seen != 0 { 25331 *(*Tuint8_t)(unsafe.Pointer(out + 24)) = Tuint8_t('\050') 25332 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 1)) = Tuint8_t('\077') 25333 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 2)) = Tuint8_t('\074') 25334 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 3)) = Tuint8_t('\041') 25335 convert_glob_write_str(tls, out, uint64(4)) 25336 25337 convert_glob_print_separator(tls, out, separator, with_escape) 25338 convert_glob_write(tls, out, uint8('\051')) 25339 } 25340 25341 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25342 return 0 25343 } 25344 25345 if pattern >= pattern_end { 25346 break 25347 } 25348 25349 if c == Tuint32_t('\133') && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\072' { 25350 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25351 class_index = convert_glob_parse_class(tls, from, pattern_end, out) 25352 25353 if class_index != 0 { 25354 pattern = *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) 25355 25356 has_prev_c = DFALSE 25357 prev_c = Tuint32_t(0) 25358 25359 if !(is_negative != 0) && convert_glob_char_in_class(tls, class_index, separator) != 0 { 25360 separator_seen = DTRUE 25361 } 25362 continue 25363 } 25364 } else if c == Tuint32_t('\055') && has_prev_c != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) != '\135' { 25365 convert_glob_write(tls, out, uint8('\055')) 25366 25367 char_start = pattern 25368 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25369 if utf != 0 && c >= 0xc0 { 25370 if c&0x20 == Tuint32_t(0) { 25371 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25372 } else if c&0x10 == Tuint32_t(0) { 25373 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25374 pattern += uintptr(2) 25375 } else if c&0x08 == Tuint32_t(0) { 25376 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 25377 pattern += uintptr(3) 25378 } else if c&0x04 == Tuint32_t(0) { 25379 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 25380 pattern += uintptr(4) 25381 } else { 25382 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 25383 pattern += uintptr(5) 25384 } 25385 } 25386 25387 if pattern >= pattern_end { 25388 break 25389 } 25390 25391 if int32(escape) != 0 && c == Tuint32_t(escape) { 25392 char_start = pattern 25393 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25394 if utf != 0 && c >= 0xc0 { 25395 if c&0x20 == Tuint32_t(0) { 25396 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25397 } else if c&0x10 == Tuint32_t(0) { 25398 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25399 pattern += uintptr(2) 25400 } else if c&0x08 == Tuint32_t(0) { 25401 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 25402 pattern += uintptr(3) 25403 } else if c&0x04 == Tuint32_t(0) { 25404 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 25405 pattern += uintptr(4) 25406 } else { 25407 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 25408 pattern += uintptr(5) 25409 } 25410 } 25411 25412 } else if c == Tuint32_t('\133') && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\072' { 25413 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25414 return -64 25415 } 25416 25417 if prev_c > c { 25418 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25419 return -64 25420 } 25421 25422 if prev_c < Tuint32_t(separator) && Tuint32_t(separator) < c { 25423 separator_seen = DTRUE 25424 } 25425 25426 has_prev_c = DFALSE 25427 prev_c = Tuint32_t(0) 25428 } else { 25429 if int32(escape) != 0 && c == Tuint32_t(escape) { 25430 char_start = pattern 25431 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25432 if utf != 0 && c >= 0xc0 { 25433 if c&0x20 == Tuint32_t(0) { 25434 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25435 } else if c&0x10 == Tuint32_t(0) { 25436 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25437 pattern += uintptr(2) 25438 } else if c&0x08 == Tuint32_t(0) { 25439 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 25440 pattern += uintptr(3) 25441 } else if c&0x04 == Tuint32_t(0) { 25442 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 25443 pattern += uintptr(4) 25444 } else { 25445 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 25446 pattern += uintptr(5) 25447 } 25448 } 25449 25450 if pattern >= pattern_end { 25451 break 25452 } 25453 } 25454 25455 has_prev_c = DTRUE 25456 prev_c = c 25457 } 25458 25459 if c == Tuint32_t('\133') || c == Tuint32_t('\135') || c == Tuint32_t('\134') || c == Tuint32_t('\055') { 25460 convert_glob_write(tls, out, uint8('\134')) 25461 } 25462 25463 if c == Tuint32_t(separator) { 25464 separator_seen = DTRUE 25465 } 25466 25467 for __ccgo := true; __ccgo; __ccgo = char_start < pattern { 25468 convert_glob_write(tls, out, *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&char_start, 1)))) 25469 } 25470 } 25471 25472 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25473 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25474 } 25475 25476 // Prints a (*COMMIT) into the output. 25477 // 25478 // Arguments: 25479 // out output context 25480 25481 func convert_glob_print_commit(tls *libc.TLS, out uintptr) { /* pcre2_convert.c:754:1: */ 25482 *(*Tuint8_t)(unsafe.Pointer(out + 24)) = Tuint8_t('\050') 25483 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 1)) = Tuint8_t('\052') 25484 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 2)) = Tuint8_t('\103') 25485 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 3)) = Tuint8_t('\117') 25486 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 4)) = Tuint8_t('\115') 25487 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 5)) = Tuint8_t('\115') 25488 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 6)) = Tuint8_t('\111') 25489 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 7)) = Tuint8_t('\124') 25490 convert_glob_write_str(tls, out, uint64(8)) 25491 convert_glob_write(tls, out, uint8('\051')) 25492 } 25493 25494 // Bash glob converter. 25495 // 25496 // Arguments: 25497 // pattype the pattern type 25498 // pattern the pattern 25499 // plength length in code units 25500 // utf TRUE if UTF 25501 // use_buffer where to put the output 25502 // use_length length of use_buffer 25503 // bufflenptr where to put the used length 25504 // dummyrun TRUE if a dummy run 25505 // ccontext the convert context 25506 // 25507 // Returns: 0 => success 25508 // !0 => error code 25509 25510 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: */ 25511 bp := tls.Alloc(40) 25512 defer tls.Free(40) 25513 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) = pattern 25514 25515 // var out Tpcre2_output_context at bp, 32 25516 25517 var pattern_start TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */)) 25518 var pattern_end TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) + uintptr(plength) 25519 var separator TPCRE2_UCHAR8 = TPCRE2_UCHAR8((*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_separator) 25520 var escape TPCRE2_UCHAR8 = TPCRE2_UCHAR8((*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_escape) 25521 var c TPCRE2_UCHAR8 25522 var no_wildsep TBOOL = libc.Bool32(options&DPCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR != Tuint32_t(0)) 25523 var no_starstar TBOOL = libc.Bool32(options&DPCRE2_CONVERT_GLOB_NO_STARSTAR != Tuint32_t(0)) 25524 var in_atomic TBOOL = DFALSE 25525 var after_starstar TBOOL = DFALSE 25526 var no_slash_z TBOOL = DFALSE 25527 var with_escape TBOOL 25528 var is_start TBOOL 25529 var after_separator TBOOL 25530 var result int32 = 0 25531 25532 _ = utf // Avoid compiler warning. 25533 25534 if utf != 0 && (int32(separator) >= 128 || int32(escape) >= 128) { 25535 // Currently only ASCII characters are supported. 25536 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = uint64(0) 25537 return -64 25538 } 25539 25540 with_escape = libc.Bool32(libc.Xstrchr(tls, pcre2_escaped_literals, int32(separator)) != uintptr(0)) 25541 25542 // Initialize default for error offset as end of input. 25543 (*Tpcre2_output_context)(unsafe.Pointer(bp /* &out */)).Foutput = use_buffer 25544 (*Tpcre2_output_context)(unsafe.Pointer(bp /* &out */)).Foutput_end = use_buffer + uintptr(use_length) 25545 (*Tpcre2_output_context)(unsafe.Pointer(bp /* &out */)).Foutput_size = uint64(0) 25546 25547 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\050') 25548 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25549 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\163') 25550 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 3)) = Tuint8_t('\051') 25551 convert_glob_write_str(tls, bp, uint64(4)) 25552 25553 is_start = DTRUE 25554 25555 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == '\052' { 25556 if no_wildsep != 0 { 25557 is_start = DFALSE 25558 } else if !(no_starstar != 0) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))+uintptr(1) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) + 1))) == '\052' { 25559 is_start = DFALSE 25560 } 25561 } 25562 25563 if is_start != 0 { 25564 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\134') 25565 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\101') 25566 convert_glob_write_str(tls, bp, uint64(2)) 25567 } 25568 25569 for *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end { 25570 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */)), 1))) 25571 25572 if int32(c) == '\052' { 25573 is_start = libc.Bool32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) == pattern_start+uintptr(1)) 25574 25575 if in_atomic != 0 { 25576 convert_glob_write(tls, bp, uint8('\051')) 25577 in_atomic = DFALSE 25578 } 25579 25580 if !(no_starstar != 0) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == '\052' { 25581 after_separator = libc.Bool32(is_start != 0 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) + libc.UintptrFromInt32(-2)))) == int32(separator)) 25582 25583 for __ccgo := true; __ccgo; __ccgo = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == '\052' { 25584 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */))++ 25585 } 25586 25587 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) >= pattern_end { 25588 no_slash_z = DTRUE 25589 break 25590 } 25591 25592 after_starstar = DTRUE 25593 25594 if after_separator != 0 && int32(escape) != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == int32(escape) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))+uintptr(1) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) + 1))) == int32(separator) { 25595 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */))++ 25596 } 25597 25598 if is_start != 0 { 25599 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) != int32(separator) { 25600 continue 25601 } 25602 25603 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\050') 25604 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25605 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\072') 25606 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 3)) = Tuint8_t('\134') 25607 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 4)) = Tuint8_t('\101') 25608 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 5)) = Tuint8_t('\174') 25609 convert_glob_write_str(tls, bp, uint64(6)) 25610 25611 convert_glob_print_separator(tls, bp, separator, with_escape) 25612 convert_glob_write(tls, bp, uint8('\051')) 25613 25614 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */))++ 25615 continue 25616 } 25617 25618 convert_glob_print_commit(tls, bp) 25619 25620 if !(after_separator != 0) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) != int32(separator) { 25621 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\056') 25622 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\052') 25623 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\077') 25624 convert_glob_write_str(tls, bp, uint64(3)) 25625 continue 25626 } 25627 25628 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\050') 25629 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25630 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\072') 25631 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 3)) = Tuint8_t('\056') 25632 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 4)) = Tuint8_t('\052') 25633 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 5)) = Tuint8_t('\077') 25634 25635 convert_glob_write_str(tls, bp, uint64(6)) 25636 25637 convert_glob_print_separator(tls, bp, separator, with_escape) 25638 25639 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\051') 25640 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25641 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\077') 25642 convert_glob_write_str(tls, bp, uint64(3)) 25643 25644 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */))++ 25645 continue 25646 } 25647 25648 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == '\052' { 25649 for __ccgo1 := true; __ccgo1; __ccgo1 = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == '\052' { 25650 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */))++ 25651 } 25652 } 25653 25654 if no_wildsep != 0 { 25655 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) >= pattern_end { 25656 no_slash_z = DTRUE 25657 break 25658 } 25659 25660 // Start check must be after the end check. 25661 if is_start != 0 { 25662 continue 25663 } 25664 } 25665 25666 if !(is_start != 0) { 25667 if after_starstar != 0 { 25668 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\050') 25669 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25670 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\076') 25671 convert_glob_write_str(tls, bp, uint64(3)) 25672 in_atomic = DTRUE 25673 } else { 25674 convert_glob_print_commit(tls, bp) 25675 } 25676 } 25677 25678 if no_wildsep != 0 { 25679 convert_glob_write(tls, bp, uint8('\056')) 25680 } else { 25681 convert_glob_print_wildcard(tls, bp, separator, with_escape) 25682 } 25683 25684 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\052') 25685 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25686 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) >= pattern_end { 25687 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\053') 25688 } 25689 convert_glob_write_str(tls, bp, uint64(2)) 25690 continue 25691 } 25692 25693 if int32(c) == '\077' { 25694 if no_wildsep != 0 { 25695 convert_glob_write(tls, bp, uint8('\056')) 25696 } else { 25697 convert_glob_print_wildcard(tls, bp, separator, with_escape) 25698 } 25699 continue 25700 } 25701 25702 if int32(c) == '\133' { 25703 result = convert_glob_parse_range(tls, bp+32, pattern_end, 25704 bp, utf, separator, with_escape, escape, no_wildsep) 25705 if result != 0 { 25706 break 25707 } 25708 continue 25709 } 25710 25711 if int32(escape) != 0 && int32(c) == int32(escape) { 25712 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) >= pattern_end { 25713 result = -64 25714 break 25715 } 25716 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */)), 1))) 25717 } 25718 25719 if int32(c) < 128 && libc.Xstrchr(tls, pcre2_escaped_literals, int32(c)) != uintptr(0) { 25720 convert_glob_write(tls, bp, uint8('\134')) 25721 } 25722 25723 convert_glob_write(tls, bp, c) 25724 } 25725 25726 if result == 0 { 25727 if !(no_slash_z != 0) { 25728 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\134') 25729 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\172') 25730 convert_glob_write_str(tls, bp, uint64(2)) 25731 } 25732 25733 if in_atomic != 0 { 25734 convert_glob_write(tls, bp, uint8('\051')) 25735 } 25736 25737 convert_glob_write(tls, bp, uint8(0)) 25738 25739 if !(dummyrun != 0) && (*Tpcre2_output_context)(unsafe.Pointer(bp)).Foutput_size != Tsize_t((int64((*Tpcre2_output_context)(unsafe.Pointer(bp)).Foutput)-int64(use_buffer))/1) { 25740 result = -48 25741 } 25742 } 25743 25744 if result != 0 { 25745 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))) - int64(pattern_start)) / 1) 25746 return result 25747 } 25748 25749 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = (*Tpcre2_output_context)(unsafe.Pointer(bp)).Foutput_size - uint64(1) 25750 return 0 25751 } 25752 25753 // ************************************************ 25754 // 25755 // Convert pattern * 25756 // 25757 25758 // This is the external-facing function for converting other forms of pattern 25759 // into PCRE2 regular expression patterns. On error, the bufflenptr argument is 25760 // used to return an offset in the original pattern. 25761 // 25762 // Arguments: 25763 // pattern the input pattern 25764 // plength length of input, or PCRE2_ZERO_TERMINATED 25765 // options options bits 25766 // buffptr pointer to pointer to output buffer 25767 // bufflenptr pointer to length of output buffer 25768 // ccontext convert context or NULL 25769 // 25770 // Returns: 0 for success, else an error code (+ve or -ve) 25771 25772 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: */ 25773 bp := tls.Alloc(112) 25774 defer tls.Free(112) 25775 25776 var i int32 25777 var rc int32 25778 // var dummy_buffer [100]TPCRE2_UCHAR8 at bp, 100 25779 25780 var use_buffer uintptr = bp /* dummy_buffer */ 25781 var use_length Tsize_t = uint64(DDUMMY_BUFFER_SIZE) 25782 var utf TBOOL = libc.Bool32(options&DPCRE2_CONVERT_UTF != Tuint32_t(0)) 25783 var pattype Tuint32_t = options & (DPCRE2_CONVERT_GLOB | DPCRE2_CONVERT_POSIX_BASIC | DPCRE2_CONVERT_POSIX_EXTENDED) 25784 25785 if pattern == uintptr(0) || bufflenptr == uintptr(0) { 25786 return -51 25787 } 25788 25789 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) { 25790 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = uint64(0) // Error offset 25791 return -34 25792 } 25793 25794 if plength == libc.CplUint64(uint64(0)) { 25795 plength = X_pcre2_strlen_8(tls, pattern) 25796 } 25797 if ccontext == uintptr(0) { 25798 ccontext = uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) 25799 } 25800 25801 // Check UTF if required. 25802 25803 if utf != 0 && options&DPCRE2_CONVERT_NO_UTF_CHECK == Tuint32_t(0) { 25804 // var erroroffset Tsize_t at bp+104, 8 25805 25806 rc = X_pcre2_valid_utf_8(tls, pattern, plength, bp+104) 25807 if rc != 0 { 25808 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = *(*Tsize_t)(unsafe.Pointer(bp + 104 /* erroroffset */)) 25809 return rc 25810 } 25811 } 25812 25813 // If buffptr is not NULL, and what it points to is not NULL, we are being 25814 // provided with a buffer and a length, so set them as the buffer to use. 25815 25816 if buffptr != uintptr(0) && *(*uintptr)(unsafe.Pointer(buffptr)) != uintptr(0) { 25817 use_buffer = *(*uintptr)(unsafe.Pointer(buffptr)) 25818 use_length = *(*Tsize_t)(unsafe.Pointer(bufflenptr)) 25819 } 25820 25821 // Call an individual converter, either just once (if a buffer was provided or 25822 // just the length is needed), or twice (if a memory allocation is required). 25823 25824 for i = 0; i < 2; i++ { 25825 var allocated uintptr 25826 var dummyrun TBOOL = libc.Bool32(buffptr == uintptr(0) || *(*uintptr)(unsafe.Pointer(buffptr)) == uintptr(0)) 25827 25828 switch pattype { 25829 case DPCRE2_CONVERT_GLOB: 25830 rc = convert_glob(tls, options&libc.CplUint32(DPCRE2_CONVERT_GLOB), pattern, plength, utf, 25831 use_buffer, use_length, bufflenptr, dummyrun, ccontext) 25832 break 25833 25834 case DPCRE2_CONVERT_POSIX_BASIC: 25835 fallthrough 25836 case DPCRE2_CONVERT_POSIX_EXTENDED: 25837 rc = convert_posix(tls, pattype, pattern, plength, utf, use_buffer, use_length, 25838 bufflenptr, dummyrun, ccontext) 25839 break 25840 25841 default: 25842 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = uint64(0) // Error offset 25843 return -44 25844 } 25845 25846 if rc != 0 || buffptr == uintptr(0) || *(*uintptr)(unsafe.Pointer(buffptr)) != uintptr(0) { // Buffer was provided or allocated 25847 return rc 25848 } 25849 25850 // Allocate memory for the buffer, with hidden space for an allocator at 25851 // the start. The next time round the loop runs the conversion for real. 25852 25853 allocated = X_pcre2_memctl_malloc_8(tls, uint64(unsafe.Sizeof(Tpcre2_memctl{}))+(*(*Tsize_t)(unsafe.Pointer(bufflenptr))+uint64(1))*uint64(DPCRE2_CODE_UNIT_WIDTH), ccontext) 25854 if allocated == uintptr(0) { 25855 return -48 25856 } 25857 *(*uintptr)(unsafe.Pointer(buffptr)) = allocated + uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 25858 25859 use_buffer = *(*uintptr)(unsafe.Pointer(buffptr)) 25860 use_length = *(*Tsize_t)(unsafe.Pointer(bufflenptr)) + uint64(1) 25861 } 25862 25863 // Control should never get here. 25864 25865 return -44 25866 } 25867 25868 // ************************************************ 25869 // 25870 // Free converted pattern * 25871 // 25872 25873 // This frees a converted pattern that was put in newly-allocated memory. 25874 // 25875 // Argument: the converted pattern 25876 // Returns: nothing 25877 25878 func Xpcre2_converted_pattern_free_8(tls *libc.TLS, converted uintptr) { /* pcre2_convert.c:1172:1: */ 25879 if converted != uintptr(0) { 25880 var memctl uintptr = converted - uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 25881 (*struct { 25882 f func(*libc.TLS, uintptr, uintptr) 25883 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 25884 } 25885 } 25886 25887 // End of pcre2_convert.c 25888 25889 // This function is needed only when memmove() is not available. 25890 25891 // End of pcre2_internal.h 25892 25893 // ************************************************ 25894 // 25895 // Code parameters and static tables * 25896 // 25897 25898 // These are offsets that are used to turn the OP_TYPESTAR and friends opcodes 25899 // into others, under special conditions. A gap of 20 between the blocks should be 25900 // enough. The resulting opcodes don't have to be less than 256 because they are 25901 // never stored, so we push them well clear of the normal opcodes. 25902 25903 // This table identifies those opcodes that are followed immediately by a 25904 // character that is to be tested in some way. This makes it possible to 25905 // centralize the loading of these characters. In the case of Type * etc, the 25906 // "character" is the opcode for \D, \d, \S, \s, \W, or \w, which will always be a 25907 // small value. Non-zero values in the table are the offsets from the opcode where 25908 // the character is to be found. ***NOTE*** If the start of this table is 25909 // modified, the three tables that follow must also be modified. 25910 25911 var coptable = [168]Tuint8_t{ 25912 Tuint8_t(0), // End 25913 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \A, \G, \K, \B, \b 25914 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \D, \d, \S, \s, \W, \w 25915 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // Any, AllAny, Anybyte 25916 Tuint8_t(0), Tuint8_t(0), // \P, \p 25917 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \R, \H, \h, \V, \v 25918 Tuint8_t(0), // \X 25919 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \Z, \z, $, $M, ^, ^M 25920 Tuint8_t(1), // Char 25921 Tuint8_t(1), // Chari 25922 Tuint8_t(1), // not 25923 Tuint8_t(1), // noti 25924 // Positive single-char repeats 25925 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *, *?, +, +?, ?, ?? 25926 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25927 Tuint8_t(1 + DIMM2_SIZE), 25928 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25929 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *I, *?I, +I, +?I, ?I, ??I 25930 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25931 Tuint8_t(1 + DIMM2_SIZE), 25932 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25933 // Negative single-char repeats - only for chars < 256 25934 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *, *?, +, +?, ?, ?? 25935 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25936 Tuint8_t(1 + DIMM2_SIZE), 25937 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25938 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 25939 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25940 Tuint8_t(1 + DIMM2_SIZE), 25941 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25942 // Positive type repeats 25943 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type *, *?, +, +?, ?, ?? 25944 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25945 Tuint8_t(1 + DIMM2_SIZE), 25946 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25947 // Character class & ref repeats 25948 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // *, *?, +, +?, ?, ?? 25949 Tuint8_t(0), Tuint8_t(0), // CRRANGE, CRMINRANGE 25950 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // Possessive *+, ++, ?+, CRPOSRANGE 25951 Tuint8_t(0), // CLASS 25952 Tuint8_t(0), // NCLASS 25953 Tuint8_t(0), // XCLASS - variable length 25954 Tuint8_t(0), // REF 25955 Tuint8_t(0), // REFI 25956 Tuint8_t(0), // DNREF 25957 Tuint8_t(0), // DNREFI 25958 Tuint8_t(0), // RECURSE 25959 Tuint8_t(0), // CALLOUT 25960 Tuint8_t(0), // CALLOUT_STR 25961 Tuint8_t(0), // Alt 25962 Tuint8_t(0), // Ket 25963 Tuint8_t(0), // KetRmax 25964 Tuint8_t(0), // KetRmin 25965 Tuint8_t(0), // KetRpos 25966 Tuint8_t(0), // Reverse 25967 Tuint8_t(0), // Assert 25968 Tuint8_t(0), // Assert not 25969 Tuint8_t(0), // Assert behind 25970 Tuint8_t(0), // Assert behind not 25971 Tuint8_t(0), // NA assert 25972 Tuint8_t(0), // NA assert behind 25973 Tuint8_t(0), // ONCE 25974 Tuint8_t(0), // SCRIPT_RUN 25975 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRA, BRAPOS, CBRA, CBRAPOS, COND 25976 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SBRA, SBRAPOS, SCBRA, SCBRAPOS, SCOND 25977 Tuint8_t(0), Tuint8_t(0), // CREF, DNCREF 25978 Tuint8_t(0), Tuint8_t(0), // RREF, DNRREF 25979 Tuint8_t(0), Tuint8_t(0), // FALSE, TRUE 25980 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRAZERO, BRAMINZERO, BRAPOSZERO 25981 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // MARK, PRUNE, PRUNE_ARG 25982 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SKIP, SKIP_ARG, THEN, THEN_ARG 25983 Tuint8_t(0), Tuint8_t(0), // COMMIT, COMMIT_ARG 25984 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // FAIL, ACCEPT, ASSERT_ACCEPT 25985 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CLOSE, SKIPZERO, DEFINE 25986 } /* pcre2_dfa_match.c:116:22 */ 25987 25988 // This table identifies those opcodes that inspect a character. It is used to 25989 // remember the fact that a character could have been inspected when the end of 25990 // the subject is reached. ***NOTE*** If the start of this table is modified, the 25991 // two tables that follow must also be modified. 25992 25993 var poptable = [168]Tuint8_t{ 25994 Tuint8_t(0), // End 25995 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), // \A, \G, \K, \B, \b 25996 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // \D, \d, \S, \s, \W, \w 25997 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Any, AllAny, Anybyte 25998 Tuint8_t(1), Tuint8_t(1), // \P, \p 25999 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // \R, \H, \h, \V, \v 26000 Tuint8_t(1), // \X 26001 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \Z, \z, $, $M, ^, ^M 26002 Tuint8_t(1), // Char 26003 Tuint8_t(1), // Chari 26004 Tuint8_t(1), // not 26005 Tuint8_t(1), // noti 26006 // Positive single-char repeats 26007 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *, *?, +, +?, ?, ?? 26008 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // upto, minupto, exact 26009 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *+, ++, ?+, upto+ 26010 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *I, *?I, +I, +?I, ?I, ??I 26011 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // upto I, minupto I, exact I 26012 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *+I, ++I, ?+I, upto+I 26013 // Negative single-char repeats - only for chars < 256 26014 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *, *?, +, +?, ?, ?? 26015 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT upto, minupto, exact 26016 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *+, ++, ?+, upto+ 26017 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 26018 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT upto I, minupto I, exact I 26019 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *+I, ++I, ?+I, upto+I 26020 // Positive type repeats 26021 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type *, *?, +, +?, ?, ?? 26022 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type upto, minupto, exact 26023 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type *+, ++, ?+, upto+ 26024 // Character class & ref repeats 26025 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *, *?, +, +?, ?, ?? 26026 Tuint8_t(1), Tuint8_t(1), // CRRANGE, CRMINRANGE 26027 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Possessive *+, ++, ?+, CRPOSRANGE 26028 Tuint8_t(1), // CLASS 26029 Tuint8_t(1), // NCLASS 26030 Tuint8_t(1), // XCLASS - variable length 26031 Tuint8_t(0), // REF 26032 Tuint8_t(0), // REFI 26033 Tuint8_t(0), // DNREF 26034 Tuint8_t(0), // DNREFI 26035 Tuint8_t(0), // RECURSE 26036 Tuint8_t(0), // CALLOUT 26037 Tuint8_t(0), // CALLOUT_STR 26038 Tuint8_t(0), // Alt 26039 Tuint8_t(0), // Ket 26040 Tuint8_t(0), // KetRmax 26041 Tuint8_t(0), // KetRmin 26042 Tuint8_t(0), // KetRpos 26043 Tuint8_t(0), // Reverse 26044 Tuint8_t(0), // Assert 26045 Tuint8_t(0), // Assert not 26046 Tuint8_t(0), // Assert behind 26047 Tuint8_t(0), // Assert behind not 26048 Tuint8_t(0), // NA assert 26049 Tuint8_t(0), // NA assert behind 26050 Tuint8_t(0), // ONCE 26051 Tuint8_t(0), // SCRIPT_RUN 26052 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRA, BRAPOS, CBRA, CBRAPOS, COND 26053 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SBRA, SBRAPOS, SCBRA, SCBRAPOS, SCOND 26054 Tuint8_t(0), Tuint8_t(0), // CREF, DNCREF 26055 Tuint8_t(0), Tuint8_t(0), // RREF, DNRREF 26056 Tuint8_t(0), Tuint8_t(0), // FALSE, TRUE 26057 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRAZERO, BRAMINZERO, BRAPOSZERO 26058 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // MARK, PRUNE, PRUNE_ARG 26059 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SKIP, SKIP_ARG, THEN, THEN_ARG 26060 Tuint8_t(0), Tuint8_t(0), // COMMIT, COMMIT_ARG 26061 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // FAIL, ACCEPT, ASSERT_ACCEPT 26062 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CLOSE, SKIPZERO, DEFINE 26063 } /* pcre2_dfa_match.c:198:22 */ 26064 26065 // These 2 tables allow for compact code for testing for \D, \d, \S, \s, \W, 26066 // and \w 26067 26068 var toptable1 = [14]Tuint8_t{ 26069 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), 26070 Tuint8_t(Dctype_digit), Tuint8_t(Dctype_digit), 26071 Tuint8_t(Dctype_space), Tuint8_t(Dctype_space), 26072 Tuint8_t(Dctype_word), Tuint8_t(Dctype_word), 26073 Tuint8_t(0), Tuint8_t(0), // OP_ANY, OP_ALLANY 26074 } /* pcre2_dfa_match.c:273:22 */ 26075 26076 var toptable2 = [14]Tuint8_t{ 26077 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), 26078 Tuint8_t(Dctype_digit), Tuint8_t(0), 26079 Tuint8_t(Dctype_space), Tuint8_t(0), 26080 Tuint8_t(Dctype_word), Tuint8_t(0), 26081 Tuint8_t(1), Tuint8_t(1), // OP_ANY, OP_ALLANY 26082 } /* pcre2_dfa_match.c:281:22 */ 26083 26084 // Structure for holding data about a particular state, which is in effect the 26085 // current data for an active path through the match tree. It must consist 26086 // entirely of ints because the working vector we are passed, and which we put 26087 // these structures in, is a vector of ints. 26088 26089 type Sstateblock = struct { 26090 Foffset int32 26091 Fcount int32 26092 Fdata int32 26093 } /* pcre2_dfa_match.c:295:9 */ 26094 26095 // Structure for holding data about a particular state, which is in effect the 26096 // current data for an active path through the match tree. It must consist 26097 // entirely of ints because the working vector we are passed, and which we put 26098 // these structures in, is a vector of ints. 26099 26100 type Tstateblock = Sstateblock /* pcre2_dfa_match.c:299:3 */ 26101 26102 // Before version 10.32 the recursive calls of internal_dfa_match() were passed 26103 // local working space and output vectors that were created on the stack. This has 26104 // caused issues for some patterns, especially in small-stack environments such as 26105 // Windows. A new scheme is now in use which sets up a vector on the stack, but if 26106 // this is too small, heap memory is used, up to the heap_limit. The main 26107 // parameters are all numbers of ints because the workspace is a vector of ints. 26108 // 26109 // The size of the starting stack vector, DFA_START_RWS_SIZE, is in bytes, and is 26110 // defined in pcre2_internal.h so as to be available to pcre2test when it is 26111 // finding the minimum heap requirement for a match. 26112 26113 // This structure is at the start of each workspace block. 26114 26115 type SRWS_anchor = struct { 26116 Fnext uintptr 26117 Fsize Tuint32_t 26118 Ffree Tuint32_t 26119 } /* pcre2_dfa_match.c:324:9 */ 26120 26121 // Before version 10.32 the recursive calls of internal_dfa_match() were passed 26122 // local working space and output vectors that were created on the stack. This has 26123 // caused issues for some patterns, especially in small-stack environments such as 26124 // Windows. A new scheme is now in use which sets up a vector on the stack, but if 26125 // this is too small, heap memory is used, up to the heap_limit. The main 26126 // parameters are all numbers of ints because the workspace is a vector of ints. 26127 // 26128 // The size of the starting stack vector, DFA_START_RWS_SIZE, is in bytes, and is 26129 // defined in pcre2_internal.h so as to be available to pcre2test when it is 26130 // finding the minimum heap requirement for a match. 26131 26132 // This structure is at the start of each workspace block. 26133 26134 type TRWS_anchor = SRWS_anchor /* pcre2_dfa_match.c:328:3 */ 26135 26136 // ************************************************ 26137 // 26138 // Process a callout * 26139 // 26140 26141 // This function is called to perform a callout. 26142 // 26143 // Arguments: 26144 // code current code pointer 26145 // offsets points to current capture offsets 26146 // current_subject start of current subject match 26147 // ptr current position in subject 26148 // mb the match block 26149 // extracode extra code offset when called from condition 26150 // lengthptr where to return the callout length 26151 // 26152 // Returns: the return from the callout 26153 26154 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: */ 26155 var cb uintptr = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcb 26156 26157 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = func() uint64 { 26158 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(extracode)))) == OP_CALLOUT { 26159 return Tsize_t(X_pcre2_OP_lengths_8[OP_CALLOUT]) 26160 } 26161 return Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+2*DLINK_SIZE)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+2*DLINK_SIZE)+extracode+uint64(1))))))) 26162 }() 26163 26164 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout == uintptr(0) { 26165 return 0 26166 } // No callout provided 26167 26168 // Fixed fields in the callout block are set once and for all at the start of 26169 // matching. 26170 26171 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Foffset_vector = offsets 26172 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fstart_match = Tsize_t((int64(current_subject) - int64((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 26173 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcurrent_position = Tsize_t((int64(ptr) - int64((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 26174 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fpattern_position = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1)+extracode+uint64(1))))))) 26175 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fnext_item_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+DLINK_SIZE)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+DLINK_SIZE)+extracode+uint64(1))))))) 26176 26177 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(extracode)))) == OP_CALLOUT { 26178 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+2*DLINK_SIZE)+extracode)))) 26179 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = uint64(0) 26180 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = uintptr(0) 26181 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = uint64(0) 26182 } else { 26183 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(0) 26184 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+3*DLINK_SIZE)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+3*DLINK_SIZE)+extracode+uint64(1))))))) 26185 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = code + uintptr(uint64(1+4*DLINK_SIZE)+extracode) + uintptr(1) 26186 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = *(*Tsize_t)(unsafe.Pointer(lengthptr)) - uint64(1+4*DLINK_SIZE) - uint64(2) 26187 } 26188 26189 return (*struct { 26190 f func(*libc.TLS, uintptr, uintptr) int32 26191 })(unsafe.Pointer(&struct{ uintptr }{(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout})).f(tls, cb, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout_data) 26192 } 26193 26194 // ************************************************ 26195 // 26196 // Expand local workspace memory * 26197 // 26198 26199 // This function is called when internal_dfa_match() is about to be called 26200 // recursively and there is insufficient working space left in the current 26201 // workspace block. If there's an existing next block, use it; otherwise get a new 26202 // block unless the heap limit is reached. 26203 // 26204 // Arguments: 26205 // rwsptr pointer to block pointer (updated) 26206 // ovecsize space needed for an ovector 26207 // mb the match block 26208 // 26209 // Returns: 0 rwsptr has been updated 26210 // !0 an error code 26211 26212 func more_workspace(tls *libc.TLS, rwsptr uintptr, ovecsize uint32, mb uintptr) int32 { /* pcre2_dfa_match.c:413:1: */ 26213 var rws uintptr = *(*uintptr)(unsafe.Pointer(rwsptr)) 26214 var new uintptr 26215 26216 if (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext != uintptr(0) { 26217 new = (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext 26218 } else { 26219 var newsize Tuint32_t 26220 if (*TRWS_anchor)(unsafe.Pointer(rws)).Fsize >= 4294967295/uint32(2) { 26221 newsize = 4294967295 / uint32(2) 26222 } else { 26223 newsize = (*TRWS_anchor)(unsafe.Pointer(rws)).Fsize * Tuint32_t(2) 26224 } 26225 var newsizeK Tuint32_t = Tuint32_t(uint64(newsize) / (uint64(1024) / uint64(unsafe.Sizeof(int32(0))))) 26226 26227 if Tsize_t(newsizeK)+(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_used > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit { 26228 newsizeK = Tuint32_t((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit - (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_used) 26229 } 26230 newsize = Tuint32_t(uint64(newsizeK) * (uint64(1024) / uint64(unsafe.Sizeof(int32(0))))) 26231 26232 if uint64(newsize) < uint64(uint32(DRWS_RSIZE)+ovecsize)+uint64(unsafe.Sizeof(TRWS_anchor{}))/uint64(unsafe.Sizeof(int32(0))) { 26233 return -63 26234 } 26235 new = (*struct { 26236 f func(*libc.TLS, Tsize_t, uintptr) uintptr 26237 })(unsafe.Pointer(&struct{ uintptr }{(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmalloc})).f(tls, uint64(newsize)*uint64(unsafe.Sizeof(int32(0))), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 26238 if new == uintptr(0) { 26239 return -48 26240 } 26241 *(*Tsize_t)(unsafe.Pointer(mb + 88)) += Tsize_t(newsizeK) 26242 (*TRWS_anchor)(unsafe.Pointer(new)).Fnext = uintptr(0) 26243 (*TRWS_anchor)(unsafe.Pointer(new)).Fsize = newsize 26244 (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext = new 26245 } 26246 26247 (*TRWS_anchor)(unsafe.Pointer(new)).Ffree = Tuint32_t(uint64((*TRWS_anchor)(unsafe.Pointer(new)).Fsize) - uint64(unsafe.Sizeof(TRWS_anchor{}))/uint64(unsafe.Sizeof(int32(0)))) 26248 *(*uintptr)(unsafe.Pointer(rwsptr)) = new 26249 return 0 26250 } 26251 26252 // ************************************************ 26253 // 26254 // Match a Regular Expression - DFA engine * 26255 // 26256 26257 // This internal function applies a compiled pattern to a subject string, 26258 // starting at a given point, using a DFA engine. This function is called from the 26259 // external one, possibly multiple times if the pattern is not anchored. The 26260 // function calls itself recursively for some kinds of subpattern. 26261 // 26262 // Arguments: 26263 // mb the match_data block with fixed information 26264 // this_start_code the opening bracket of this subexpression's code 26265 // current_subject where we currently are in the subject string 26266 // start_offset start offset in the subject string 26267 // offsets vector to contain the matching string offsets 26268 // offsetcount size of same 26269 // workspace vector of workspace 26270 // wscount size of same 26271 // rlevel function call recursion level 26272 // 26273 // Returns: > 0 => number of match offset pairs placed in offsets 26274 // = 0 => offsets overflowed; longest matches are present 26275 // -1 => failed to match 26276 // < -1 => some kind of unexpected problem 26277 // 26278 // The following macros are used for adding states to the two state vectors (one 26279 // for the current character, one for the following character). 26280 26281 // And now, here is the code 26282 26283 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: */ 26284 bp := tls.Alloc(96) 26285 defer tls.Free(96) 26286 26287 var active_states uintptr 26288 var new_states uintptr 26289 var temp_states uintptr 26290 var next_active_state uintptr 26291 var next_new_state uintptr 26292 var ctypes uintptr 26293 var lcc uintptr 26294 var fcc uintptr 26295 var ptr TPCRE2_SPTR8 26296 var end_code TPCRE2_SPTR8 26297 // var new_recursive Tdfa_recursion_info at bp+48, 24 26298 26299 var active_count int32 26300 var new_count int32 26301 var match_count int32 26302 26303 // Some fields in the mb block are frequently referenced, so we load them into 26304 // independent variables in the hope that this will perform better. 26305 26306 var start_subject TPCRE2_SPTR8 26307 var end_subject TPCRE2_SPTR8 26308 var start_code TPCRE2_SPTR8 26309 var utf TBOOL 26310 var utf_or_ucp TBOOL 26311 var reset_could_continue TBOOL 26312 var back Tsize_t 26313 var current_offset Tsize_t 26314 var bstate int32 26315 var revlen Tuint32_t 26316 var back1 Tsize_t 26317 var max_back Tsize_t 26318 var gone_back Tsize_t 26319 var length int32 26320 var cat Tuint32_t 26321 var temp TPCRE2_SPTR8 26322 var temp1 TPCRE2_SPTR8 26323 var cat1 Tuint32_t 26324 var left_word int32 26325 var right_word int32 26326 var OK TBOOL 26327 var cp uintptr 26328 var prop uintptr 26329 var OK1 TBOOL 26330 var cp1 uintptr 26331 var prop1 uintptr 26332 // var ncount int32 at bp, 4 26333 26334 var ncount1 int32 26335 var OK2 TBOOL 26336 var OK3 TBOOL 26337 var OK4 TBOOL 26338 var cp2 uintptr 26339 var prop2 uintptr 26340 // var ncount2 int32 at bp+4, 4 26341 26342 var ncount3 int32 26343 var OK5 TBOOL 26344 var OK6 TBOOL 26345 var OK7 TBOOL 26346 var cp3 uintptr 26347 var prop3 uintptr 26348 var nptr TPCRE2_SPTR8 26349 // var ncount4 int32 at bp+8, 4 26350 26351 var ncount5 int32 26352 var OK8 TBOOL 26353 var OK9 TBOOL 26354 var othercase uint32 26355 // var ncount6 int32 at bp+12, 4 26356 26357 var nptr1 TPCRE2_SPTR8 26358 var otherd Tuint32_t 26359 var otherd1 Tuint32_t 26360 var otherd2 Tuint32_t 26361 var otherd3 Tuint32_t 26362 var otherd4 Tuint32_t 26363 var otherd5 Tuint32_t 26364 var max int32 26365 var isinclass TBOOL 26366 var next_state_offset int32 26367 var ecode TPCRE2_SPTR8 26368 var rc int32 26369 var local_workspace uintptr 26370 var local_offsets uintptr 26371 var endasscode TPCRE2_SPTR8 26372 // var rws uintptr at bp+16, 8 26373 26374 // var callout_length Tsize_t at bp+24, 8 26375 26376 var value uint32 26377 var rc1 int32 26378 var local_workspace1 uintptr 26379 var local_offsets1 uintptr 26380 var asscode TPCRE2_SPTR8 26381 var endasscode1 TPCRE2_SPTR8 26382 // var rws1 uintptr at bp+32, 8 26383 26384 var codelink int32 26385 var condcode TPCRE2_UCHAR8 26386 var p TPCRE2_SPTR8 26387 var pp TPCRE2_SPTR8 26388 var charcount Tsize_t 26389 var rc2 int32 26390 var local_workspace2 uintptr 26391 var local_offsets2 uintptr 26392 // var rws2 uintptr at bp+40, 8 26393 26394 var ri uintptr 26395 var callpat TPCRE2_SPTR8 26396 var recno Tuint32_t 26397 var p1 TPCRE2_SPTR8 26398 var pp1 TPCRE2_SPTR8 26399 var end_subpattern TPCRE2_SPTR8 26400 var next_state_offset1 int32 26401 var rc3 int32 26402 var local_workspace3 uintptr 26403 var local_offsets3 uintptr 26404 var charcount1 Tsize_t 26405 var matched_count Tsize_t 26406 var local_ptr TPCRE2_SPTR8 26407 // var rws3 uintptr at bp+72, 8 26408 26409 var allow_zero TBOOL 26410 var p2 TPCRE2_SPTR8 26411 var pp2 TPCRE2_SPTR8 26412 var end_subpattern1 TPCRE2_SPTR8 26413 var charcount2 Tsize_t 26414 var next_state_offset2 int32 26415 var repeat_state_offset int32 26416 var rc4 int32 26417 var local_workspace4 uintptr 26418 var local_offsets4 uintptr 26419 // var rws4 uintptr at bp+80, 8 26420 26421 // var callout_length1 Tsize_t at bp+88, 8 26422 26423 var current_state uintptr 26424 var caseless TBOOL 26425 var code TPCRE2_SPTR8 26426 var codevalue Tuint32_t 26427 var state_offset int32 26428 var rrc int32 26429 var count int32 26430 var i int32 26431 var j int32 26432 var clen int32 26433 var dlen int32 26434 var c Tuint32_t 26435 var d Tuint32_t 26436 var forced_fail int32 26437 var partial_newline TBOOL 26438 var could_continue TBOOL 26439 start_subject = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject 26440 end_subject = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject 26441 start_code = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code 26442 utf = libc.Bool32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UTF != Tuint32_t(0)) 26443 utf_or_ucp = libc.Bool32(utf != 0 || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) 26444 reset_could_continue = DFALSE 26445 26446 if !(libc.PostIncUint32(&(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_call_count, 1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit) { 26447 goto __1 26448 } 26449 return -47 26450 __1: 26451 ; 26452 if !(libc.PostIncUint32(&rlevel, 1) > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth) { 26453 goto __2 26454 } 26455 return -53 26456 __2: 26457 ; 26458 offsetcount = offsetcount & libc.Uint32(libc.Uint32FromInt32(-2)) // Round down 26459 26460 wscount = wscount - 2 26461 wscount = (wscount - wscount%(int32(uint64(unsafe.Sizeof(Tstateblock{}))/uint64(unsafe.Sizeof(int32(0))))*2)) / (2 * int32(uint64(unsafe.Sizeof(Tstateblock{}))/uint64(unsafe.Sizeof(int32(0))))) 26462 26463 ctypes = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dcbits_offset+Dcbit_length) 26464 lcc = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dlcc_offset) 26465 fcc = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dfcc_offset) 26466 26467 match_count = -1 // A negative number 26468 26469 active_states = workspace + uintptr(2)*4 26470 next_new_state = libc.AssignUintptr(&new_states, active_states+uintptr(wscount)*12) 26471 new_count = 0 26472 26473 // The first thing in any (sub) pattern is a bracket of some sort. Push all 26474 // the alternative states onto the list, and find out where the end is. This 26475 // makes is possible to use this function recursively, when we want to stop at a 26476 // matching internal ket rather than at the end. 26477 // 26478 // If we are dealing with a backward assertion we have to find out the maximum 26479 // amount to move back, and set up each alternative appropriately. 26480 26481 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_ASSERTBACK || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_ASSERTBACK_NOT) { 26482 goto __3 26483 } 26484 26485 max_back = uint64(0) 26486 26487 end_code = this_start_code 26488 __5: 26489 26490 back = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 4)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 5))))) 26491 if !(back > max_back) { 26492 goto __8 26493 } 26494 max_back = back 26495 __8: 26496 ; 26497 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26498 goto __6 26499 __6: 26500 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26501 goto __5 26502 } 26503 goto __7 26504 __7: 26505 ; 26506 26507 // If we can't go back the amount required for the longest lookbehind 26508 // pattern, go back as far as we can; some alternatives may still be viable. 26509 26510 // In character mode we have to step back character by character 26511 26512 if !(utf != 0) { 26513 goto __9 26514 } 26515 26516 gone_back = uint64(0) 26517 __11: 26518 if !(gone_back < max_back) { 26519 goto __13 26520 } 26521 26522 if !(current_subject <= start_subject) { 26523 goto __14 26524 } 26525 goto __13 26526 __14: 26527 ; 26528 current_subject-- 26529 __15: 26530 if !(current_subject > start_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(current_subject)))&0xc0 == 0x80) { 26531 goto __16 26532 } 26533 current_subject-- 26534 goto __15 26535 __16: 26536 ; 26537 goto __12 26538 __12: 26539 gone_back++ 26540 goto __11 26541 goto __13 26542 __13: 26543 ; 26544 goto __10 26545 __9: 26546 26547 /* In byte-mode we can do this quickly. */ 26548 26549 current_offset = Tsize_t((int64(current_subject) - int64(start_subject)) / 1) 26550 if current_offset < max_back { 26551 gone_back = current_offset 26552 } else { 26553 gone_back = max_back 26554 } 26555 current_subject -= TPCRE2_SPTR8(gone_back) 26556 __10: 26557 ; 26558 26559 // Save the earliest consulted character 26560 26561 if !(current_subject < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 26562 goto __17 26563 } 26564 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = current_subject 26565 __17: 26566 ; 26567 26568 // Now we can process the individual branches. There will be an OP_REVERSE at 26569 // the start of each branch, except when the length of the branch is zero. 26570 26571 end_code = this_start_code 26572 __18: 26573 26574 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 3))) == OP_REVERSE { 26575 revlen = uint32(1 + DLINK_SIZE) 26576 } else { 26577 revlen = uint32(0) 26578 } 26579 if revlen == Tuint32_t(0) { 26580 back1 = uint64(0) 26581 } else { 26582 back1 = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 4)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 5))))) 26583 } 26584 if !(back1 <= gone_back) { 26585 goto __21 26586 } 26587 26588 bstate = int32((int64(end_code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE) + int64(revlen)) 26589 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 26590 goto __22 26591 } 26592 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -bstate 26593 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 26594 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(gone_back - back1) 26595 next_new_state += 12 26596 goto __23 26597 __22: 26598 return -43 26599 __23: 26600 ; 26601 __21: 26602 ; 26603 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26604 goto __19 26605 __19: 26606 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26607 goto __18 26608 } 26609 goto __20 26610 __20: 26611 ; 26612 goto __4 26613 __3: 26614 26615 end_code = this_start_code 26616 26617 // Restarting 26618 26619 if !(rlevel == Tuint32_t(1) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_DFA_RESTART != Tuint32_t(0)) { 26620 goto __24 26621 } 26622 26623 __26: 26624 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26625 goto __27 26626 __27: 26627 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26628 goto __26 26629 } 26630 goto __28 26631 __28: 26632 ; 26633 new_count = *(*int32)(unsafe.Pointer(workspace + 1*4)) 26634 if !!(*(*int32)(unsafe.Pointer(workspace)) != 0) { 26635 goto __29 26636 } 26637 libc.Xmemcpy(tls, new_states, active_states, Tsize_t(new_count)*Tsize_t(unsafe.Sizeof(Tstateblock{}))) 26638 __29: 26639 ; 26640 goto __25 26641 __24: 26642 26643 length = 1 + DLINK_SIZE + func() int32 { 26644 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 { 26645 return DIMM2_SIZE 26646 } 26647 return 0 26648 }() 26649 __30: 26650 26651 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 26652 goto __33 26653 } 26654 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = int32((int64(end_code)-int64(start_code))/1 + int64(length)) 26655 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 26656 next_new_state += 12 26657 goto __34 26658 __33: 26659 return -43 26660 __34: 26661 ; 26662 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26663 length = 1 + DLINK_SIZE 26664 goto __31 26665 __31: 26666 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26667 goto __30 26668 } 26669 goto __32 26670 __32: 26671 ; 26672 __25: 26673 ; 26674 __4: 26675 ; 26676 26677 *(*int32)(unsafe.Pointer(workspace)) = 0 // Bit indicating which vector is current 26678 26679 // Loop for scanning the subject 26680 26681 ptr = current_subject 26682 __35: 26683 forced_fail = 0 26684 partial_newline = DFALSE 26685 could_continue = reset_could_continue 26686 reset_could_continue = DFALSE 26687 26688 if !(ptr > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 26689 goto __38 26690 } 26691 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = ptr 26692 __38: 26693 ; 26694 26695 // Make the new state list into the active state list and empty the 26696 // new state list. 26697 26698 temp_states = active_states 26699 active_states = new_states 26700 new_states = temp_states 26701 active_count = new_count 26702 new_count = 0 26703 26704 *(*int32)(unsafe.Pointer(workspace)) ^= 1 // Remember for the restarting feature 26705 *(*int32)(unsafe.Pointer(workspace + 1*4)) = active_count 26706 26707 // Set the pointers for adding new states 26708 26709 next_active_state = active_states + uintptr(active_count)*12 26710 next_new_state = new_states 26711 26712 // Load the current character from the subject outside the loop, as many 26713 // different states may want to look at it, and we assume that at least one 26714 // will. 26715 26716 if !(ptr < end_subject) { 26717 goto __39 26718 } 26719 26720 clen = 1 // Number of data items in the character 26721 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 26722 if !(utf != 0 && c >= 0xc0) { 26723 goto __41 26724 } 26725 if !(c&0x20 == Tuint32_t(0)) { 26726 goto __42 26727 } 26728 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 26729 clen++ 26730 goto __43 26731 __42: 26732 if !(c&0x10 == Tuint32_t(0)) { 26733 goto __44 26734 } 26735 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 26736 clen = clen + 2 26737 goto __45 26738 __44: 26739 if !(c&0x08 == Tuint32_t(0)) { 26740 goto __46 26741 } 26742 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 26743 clen = clen + 3 26744 goto __47 26745 __46: 26746 if !(c&0x04 == Tuint32_t(0)) { 26747 goto __48 26748 } 26749 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 26750 clen = clen + 4 26751 goto __49 26752 __48: 26753 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 26754 clen = clen + 5 26755 __49: 26756 ; 26757 __47: 26758 ; 26759 __45: 26760 ; 26761 __43: 26762 ; 26763 __41: 26764 ; 26765 26766 goto __40 26767 __39: 26768 26769 clen = 0 // This indicates the end of the subject 26770 c = DNOTACHAR // This value should never actually be used 26771 __40: 26772 ; 26773 26774 // Scan up the active states and act on each one. The result of an action 26775 // may be to add more states to the currently active list (e.g. on hitting a 26776 // parenthesis) or it may be to put states on the new list, for considering 26777 // when we move the character pointer on. 26778 26779 i = 0 26780 __50: 26781 if !(i < active_count) { 26782 goto __52 26783 } 26784 current_state = active_states + uintptr(i)*12 26785 caseless = DFALSE 26786 state_offset = (*Tstateblock)(unsafe.Pointer(current_state)).Foffset 26787 26788 // A negative offset is a special case meaning "hold off going to this 26789 // (negated) state until the number of characters in the data field have 26790 // been skipped". If the could_continue flag was passed over from a previous 26791 // state, arrange for it to passed on. 26792 26793 if !(state_offset < 0) { 26794 goto __53 26795 } 26796 26797 if !((*Tstateblock)(unsafe.Pointer(current_state)).Fdata > 0) { 26798 goto __54 26799 } 26800 26801 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 26802 goto __56 26803 } 26804 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 26805 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount 26806 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = (*Tstateblock)(unsafe.Pointer(current_state)).Fdata - 1 26807 next_new_state += 12 26808 goto __57 26809 __56: 26810 return -43 26811 __57: 26812 ; 26813 if !(could_continue != 0) { 26814 goto __58 26815 } 26816 reset_could_continue = DTRUE 26817 __58: 26818 ; 26819 goto __51 26820 goto __55 26821 __54: 26822 26823 (*Tstateblock)(unsafe.Pointer(current_state)).Foffset = libc.AssignInt32(&state_offset, -state_offset) 26824 __55: 26825 ; 26826 __53: 26827 ; 26828 26829 // Check for a duplicate state with the same count, and skip if found. 26830 // See the note at the head of this module about the possibility of improving 26831 // performance here. 26832 26833 j = 0 26834 __59: 26835 if !(j < i) { 26836 goto __61 26837 } 26838 26839 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) { 26840 goto __62 26841 } 26842 goto NEXT_ACTIVE_STATE 26843 __62: 26844 ; 26845 goto __60 26846 __60: 26847 j++ 26848 goto __59 26849 goto __61 26850 __61: 26851 ; 26852 26853 // The state offset is the offset to the opcode 26854 26855 code = start_code + uintptr(state_offset) 26856 codevalue = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 26857 26858 // If this opcode inspects a character, but we are at the end of the 26859 // subject, remember the fact for use when testing for a partial match. 26860 26861 if !(clen == 0 && int32(poptable[codevalue]) != 0) { 26862 goto __63 26863 } 26864 could_continue = DTRUE 26865 __63: 26866 ; 26867 26868 // If this opcode is followed by an inline character, load it. It is 26869 // tempting to test for the presence of a subject character here, but that 26870 // is wrong, because sometimes zero repetitions of the subject are 26871 // permitted. 26872 // 26873 // We also use this mechanism for opcodes such as OP_TYPEPLUS that take an 26874 // argument that is not a data character - but is always one byte long because 26875 // the values are small. We have to take special action to deal with \P, \p, 26876 // \H, \h, \V, \v and \X in this case. To keep the other cases fast, convert 26877 // these ones to new opcodes. 26878 26879 if !(int32(coptable[codevalue]) > 0) { 26880 goto __64 26881 } 26882 26883 dlen = 1 26884 if !(utf != 0) { 26885 goto __66 26886 } 26887 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue])))) 26888 if !(d >= 0xc0) { 26889 goto __68 26890 } 26891 if !(d&0x20 == Tuint32_t(0)) { 26892 goto __69 26893 } 26894 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f 26895 dlen++ 26896 goto __70 26897 __69: 26898 if !(d&0x10 == Tuint32_t(0)) { 26899 goto __71 26900 } 26901 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 26902 dlen = dlen + 2 26903 goto __72 26904 __71: 26905 if !(d&0x08 == Tuint32_t(0)) { 26906 goto __73 26907 } 26908 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 26909 dlen = dlen + 3 26910 goto __74 26911 __73: 26912 if !(d&0x04 == Tuint32_t(0)) { 26913 goto __75 26914 } 26915 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 26916 dlen = dlen + 4 26917 goto __76 26918 __75: 26919 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 26920 dlen = dlen + 5 26921 __76: 26922 ; 26923 __74: 26924 ; 26925 __72: 26926 ; 26927 __70: 26928 ; 26929 __68: 26930 ; 26931 26932 goto __67 26933 __66: 26934 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue])))) 26935 __67: 26936 ; 26937 if !(codevalue >= OP_TYPESTAR) { 26938 goto __77 26939 } 26940 26941 switch d { 26942 case OP_ANYBYTE: 26943 goto __79 26944 case OP_NOTPROP: 26945 goto __80 26946 case OP_PROP: 26947 goto __81 26948 case OP_ANYNL: 26949 goto __82 26950 case OP_EXTUNI: 26951 goto __83 26952 case OP_NOT_HSPACE: 26953 goto __84 26954 case OP_HSPACE: 26955 goto __85 26956 case OP_NOT_VSPACE: 26957 goto __86 26958 case OP_VSPACE: 26959 goto __87 26960 default: 26961 goto __88 26962 } 26963 goto __78 26964 26965 __79: 26966 return -42 26967 __80: 26968 __81: 26969 codevalue = codevalue + Tuint32_t(DOP_PROP_EXTRA) 26970 goto __78 26971 __82: 26972 codevalue = codevalue + Tuint32_t(DOP_ANYNL_EXTRA) 26973 goto __78 26974 __83: 26975 codevalue = codevalue + Tuint32_t(DOP_EXTUNI_EXTRA) 26976 goto __78 26977 __84: 26978 __85: 26979 codevalue = codevalue + Tuint32_t(DOP_HSPACE_EXTRA) 26980 goto __78 26981 __86: 26982 __87: 26983 codevalue = codevalue + Tuint32_t(DOP_VSPACE_EXTRA) 26984 goto __78 26985 __88: 26986 goto __78 26987 __78: 26988 ; 26989 __77: 26990 ; 26991 goto __65 26992 __64: 26993 26994 dlen = 0 // Not strictly necessary, but compilers moan 26995 d = DNOTACHAR // if these variables are not set. 26996 __65: 26997 ; 26998 26999 // Now process the individual opcodes 27000 27001 switch codevalue { 27002 // ========================================================================== 27003 // These cases are never obeyed. This is a fudge that causes a compile- 27004 // time error if the vectors coptable or poptable, which are indexed by 27005 // opcode, are not the correct length. It seems to be the only way to do 27006 // such a check at compile time, as the sizeof() operator does not work 27007 // in the C preprocessor. 27008 27009 case OP_TABLE_LENGTH: 27010 goto __90 27011 case Tuint32_t(OP_TABLE_LENGTH + libc.Bool32(uint64(unsafe.Sizeof(coptable)) == OP_TABLE_LENGTH && uint64(unsafe.Sizeof(poptable)) == OP_TABLE_LENGTH)): 27012 goto __91 27013 27014 // ========================================================================== 27015 // Reached a closing bracket. If not at the end of the pattern, carry 27016 // on with the next opcode. For repeating opcodes, also add the repeat 27017 // state. Note that KETRPOS will always be encountered at the end of the 27018 // subpattern, because the possessive subpattern repeats are always handled 27019 // using recursive calls. Thus, it never adds any new states. 27020 // 27021 // At the end of the (sub)pattern, unless we have an empty string and 27022 // PCRE2_NOTEMPTY is set, or PCRE2_NOTEMPTY_ATSTART is set and we are at the 27023 // start of the subject, save the match data, shifting up all previous 27024 // matches so we always have the longest first. 27025 27026 case OP_KET: 27027 goto __92 27028 case OP_KETRMIN: 27029 goto __93 27030 case OP_KETRMAX: 27031 goto __94 27032 case OP_KETRPOS: 27033 goto __95 27034 27035 // ========================================================================== 27036 // These opcodes add to the current list of states without looking 27037 // at the current character. 27038 27039 //----------------------------------------------------------------- 27040 case OP_ALT: 27041 goto __96 27042 27043 //----------------------------------------------------------------- 27044 case OP_BRA: 27045 goto __97 27046 case OP_SBRA: 27047 goto __98 27048 27049 //----------------------------------------------------------------- 27050 case OP_CBRA: 27051 goto __99 27052 case OP_SCBRA: 27053 goto __100 27054 27055 //----------------------------------------------------------------- 27056 case OP_BRAZERO: 27057 goto __101 27058 case OP_BRAMINZERO: 27059 goto __102 27060 27061 //----------------------------------------------------------------- 27062 case OP_SKIPZERO: 27063 goto __103 27064 27065 //----------------------------------------------------------------- 27066 case OP_CIRC: 27067 goto __104 27068 27069 //----------------------------------------------------------------- 27070 case OP_CIRCM: 27071 goto __105 27072 27073 //----------------------------------------------------------------- 27074 case OP_EOD: 27075 goto __106 27076 27077 //----------------------------------------------------------------- 27078 case OP_SOD: 27079 goto __107 27080 27081 //----------------------------------------------------------------- 27082 case OP_SOM: 27083 goto __108 27084 27085 // ========================================================================== 27086 // These opcodes inspect the next subject character, and sometimes 27087 // the previous one as well, but do not have an argument. The variable 27088 // clen contains the length of the current character and is zero if we are 27089 // at the end of the subject. 27090 27091 //----------------------------------------------------------------- 27092 case OP_ANY: 27093 goto __109 27094 27095 //----------------------------------------------------------------- 27096 case OP_ALLANY: 27097 goto __110 27098 27099 //----------------------------------------------------------------- 27100 case OP_EODN: 27101 goto __111 27102 27103 //----------------------------------------------------------------- 27104 case OP_DOLL: 27105 goto __112 27106 27107 //----------------------------------------------------------------- 27108 case OP_DOLLM: 27109 goto __113 27110 27111 //----------------------------------------------------------------- 27112 27113 case OP_DIGIT: 27114 goto __114 27115 case OP_WHITESPACE: 27116 goto __115 27117 case OP_WORDCHAR: 27118 goto __116 27119 27120 //----------------------------------------------------------------- 27121 case OP_NOT_DIGIT: 27122 goto __117 27123 case OP_NOT_WHITESPACE: 27124 goto __118 27125 case OP_NOT_WORDCHAR: 27126 goto __119 27127 27128 //----------------------------------------------------------------- 27129 case OP_WORD_BOUNDARY: 27130 goto __120 27131 case OP_NOT_WORD_BOUNDARY: 27132 goto __121 27133 27134 //----------------------------------------------------------------- 27135 // Check the next character by Unicode property. We will get here only 27136 // if the support is in the binary; otherwise a compile-time error occurs. 27137 // 27138 27139 case OP_PROP: 27140 goto __122 27141 case OP_NOTPROP: 27142 goto __123 27143 27144 // ========================================================================== 27145 // These opcodes likewise inspect the subject character, but have an 27146 // argument that is not a data character. It is one of these opcodes: 27147 // OP_ANY, OP_ALLANY, OP_DIGIT, OP_NOT_DIGIT, OP_WHITESPACE, OP_NOT_SPACE, 27148 // OP_WORDCHAR, OP_NOT_WORDCHAR. The value is loaded into d. 27149 27150 case OP_TYPEPLUS: 27151 goto __124 27152 case OP_TYPEMINPLUS: 27153 goto __125 27154 case OP_TYPEPOSPLUS: 27155 goto __126 27156 27157 //----------------------------------------------------------------- 27158 case OP_TYPEQUERY: 27159 goto __127 27160 case OP_TYPEMINQUERY: 27161 goto __128 27162 case OP_TYPEPOSQUERY: 27163 goto __129 27164 27165 //----------------------------------------------------------------- 27166 case OP_TYPESTAR: 27167 goto __130 27168 case OP_TYPEMINSTAR: 27169 goto __131 27170 case OP_TYPEPOSSTAR: 27171 goto __132 27172 27173 //----------------------------------------------------------------- 27174 case OP_TYPEEXACT: 27175 goto __133 27176 27177 //----------------------------------------------------------------- 27178 case OP_TYPEUPTO: 27179 goto __134 27180 case OP_TYPEMINUPTO: 27181 goto __135 27182 case OP_TYPEPOSUPTO: 27183 goto __136 27184 27185 // ========================================================================== 27186 // These are virtual opcodes that are used when something like 27187 // OP_TYPEPLUS has OP_PROP, OP_NOTPROP, OP_ANYNL, or OP_EXTUNI as its 27188 // argument. It keeps the code above fast for the other cases. The argument 27189 // is in the d variable. 27190 27191 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPLUS): 27192 goto __137 27193 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINPLUS): 27194 goto __138 27195 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSPLUS): 27196 goto __139 27197 27198 //----------------------------------------------------------------- 27199 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPLUS): 27200 goto __140 27201 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINPLUS): 27202 goto __141 27203 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSPLUS): 27204 goto __142 27205 27206 //----------------------------------------------------------------- 27207 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPLUS): 27208 goto __143 27209 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINPLUS): 27210 goto __144 27211 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSPLUS): 27212 goto __145 27213 27214 //----------------------------------------------------------------- 27215 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPLUS): 27216 goto __146 27217 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINPLUS): 27218 goto __147 27219 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSPLUS): 27220 goto __148 27221 27222 //----------------------------------------------------------------- 27223 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPLUS): 27224 goto __149 27225 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINPLUS): 27226 goto __150 27227 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSPLUS): 27228 goto __151 27229 27230 //----------------------------------------------------------------- 27231 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEQUERY): 27232 goto __152 27233 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINQUERY): 27234 goto __153 27235 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSQUERY): 27236 goto __154 27237 27238 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPESTAR): 27239 goto __155 27240 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINSTAR): 27241 goto __156 27242 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSSTAR): 27243 goto __157 27244 27245 //----------------------------------------------------------------- 27246 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEQUERY): 27247 goto __158 27248 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINQUERY): 27249 goto __159 27250 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSQUERY): 27251 goto __160 27252 27253 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPESTAR): 27254 goto __161 27255 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINSTAR): 27256 goto __162 27257 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSSTAR): 27258 goto __163 27259 27260 //----------------------------------------------------------------- 27261 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEQUERY): 27262 goto __164 27263 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINQUERY): 27264 goto __165 27265 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSQUERY): 27266 goto __166 27267 27268 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPESTAR): 27269 goto __167 27270 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINSTAR): 27271 goto __168 27272 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSSTAR): 27273 goto __169 27274 27275 //----------------------------------------------------------------- 27276 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEQUERY): 27277 goto __170 27278 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINQUERY): 27279 goto __171 27280 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSQUERY): 27281 goto __172 27282 27283 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPESTAR): 27284 goto __173 27285 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINSTAR): 27286 goto __174 27287 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSSTAR): 27288 goto __175 27289 27290 //----------------------------------------------------------------- 27291 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEQUERY): 27292 goto __176 27293 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINQUERY): 27294 goto __177 27295 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSQUERY): 27296 goto __178 27297 27298 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPESTAR): 27299 goto __179 27300 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINSTAR): 27301 goto __180 27302 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSSTAR): 27303 goto __181 27304 27305 //----------------------------------------------------------------- 27306 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEEXACT): 27307 goto __182 27308 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEUPTO): 27309 goto __183 27310 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINUPTO): 27311 goto __184 27312 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSUPTO): 27313 goto __185 27314 27315 //----------------------------------------------------------------- 27316 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEEXACT): 27317 goto __186 27318 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEUPTO): 27319 goto __187 27320 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINUPTO): 27321 goto __188 27322 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSUPTO): 27323 goto __189 27324 27325 //----------------------------------------------------------------- 27326 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEEXACT): 27327 goto __190 27328 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEUPTO): 27329 goto __191 27330 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINUPTO): 27331 goto __192 27332 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSUPTO): 27333 goto __193 27334 27335 //----------------------------------------------------------------- 27336 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEEXACT): 27337 goto __194 27338 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEUPTO): 27339 goto __195 27340 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINUPTO): 27341 goto __196 27342 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSUPTO): 27343 goto __197 27344 27345 //----------------------------------------------------------------- 27346 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEEXACT): 27347 goto __198 27348 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEUPTO): 27349 goto __199 27350 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINUPTO): 27351 goto __200 27352 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSUPTO): 27353 goto __201 27354 27355 // ========================================================================== 27356 // These opcodes are followed by a character that is usually compared 27357 // to the current subject character; it is loaded into d. We still get 27358 // here even if there is no subject character, because in some cases zero 27359 // repetitions are permitted. 27360 27361 //----------------------------------------------------------------- 27362 case OP_CHAR: 27363 goto __202 27364 27365 //----------------------------------------------------------------- 27366 case OP_CHARI: 27367 goto __203 27368 27369 //----------------------------------------------------------------- 27370 // This is a tricky one because it can match more than one character. 27371 // Find out how many characters to skip, and then set up a negative state 27372 // to wait for them to pass before continuing. 27373 27374 case OP_EXTUNI: 27375 goto __204 27376 27377 //----------------------------------------------------------------- 27378 // This is a tricky like EXTUNI because it too can match more than one 27379 // character (when CR is followed by LF). In this case, set up a negative 27380 // state to wait for one character to pass before continuing. 27381 27382 case OP_ANYNL: 27383 goto __205 27384 27385 //----------------------------------------------------------------- 27386 case OP_NOT_VSPACE: 27387 goto __206 27388 27389 //----------------------------------------------------------------- 27390 case OP_VSPACE: 27391 goto __207 27392 27393 //----------------------------------------------------------------- 27394 case OP_NOT_HSPACE: 27395 goto __208 27396 27397 //----------------------------------------------------------------- 27398 case OP_HSPACE: 27399 goto __209 27400 27401 //----------------------------------------------------------------- 27402 // Match a negated single character casefully. 27403 27404 case OP_NOT: 27405 goto __210 27406 27407 //----------------------------------------------------------------- 27408 // Match a negated single character caselessly. 27409 27410 case OP_NOTI: 27411 goto __211 27412 27413 //----------------------------------------------------------------- 27414 case OP_PLUSI: 27415 goto __212 27416 case OP_MINPLUSI: 27417 goto __213 27418 case OP_POSPLUSI: 27419 goto __214 27420 case OP_NOTPLUSI: 27421 goto __215 27422 case OP_NOTMINPLUSI: 27423 goto __216 27424 case OP_NOTPOSPLUSI: 27425 goto __217 27426 27427 // Fall through 27428 case OP_PLUS: 27429 goto __218 27430 case OP_MINPLUS: 27431 goto __219 27432 case OP_POSPLUS: 27433 goto __220 27434 case OP_NOTPLUS: 27435 goto __221 27436 case OP_NOTMINPLUS: 27437 goto __222 27438 case OP_NOTPOSPLUS: 27439 goto __223 27440 27441 //----------------------------------------------------------------- 27442 case OP_QUERYI: 27443 goto __224 27444 case OP_MINQUERYI: 27445 goto __225 27446 case OP_POSQUERYI: 27447 goto __226 27448 case OP_NOTQUERYI: 27449 goto __227 27450 case OP_NOTMINQUERYI: 27451 goto __228 27452 case OP_NOTPOSQUERYI: 27453 goto __229 27454 // Fall through 27455 case OP_QUERY: 27456 goto __230 27457 case OP_MINQUERY: 27458 goto __231 27459 case OP_POSQUERY: 27460 goto __232 27461 case OP_NOTQUERY: 27462 goto __233 27463 case OP_NOTMINQUERY: 27464 goto __234 27465 case OP_NOTPOSQUERY: 27466 goto __235 27467 27468 //----------------------------------------------------------------- 27469 case OP_STARI: 27470 goto __236 27471 case OP_MINSTARI: 27472 goto __237 27473 case OP_POSSTARI: 27474 goto __238 27475 case OP_NOTSTARI: 27476 goto __239 27477 case OP_NOTMINSTARI: 27478 goto __240 27479 case OP_NOTPOSSTARI: 27480 goto __241 27481 // Fall through 27482 case OP_STAR: 27483 goto __242 27484 case OP_MINSTAR: 27485 goto __243 27486 case OP_POSSTAR: 27487 goto __244 27488 case OP_NOTSTAR: 27489 goto __245 27490 case OP_NOTMINSTAR: 27491 goto __246 27492 case OP_NOTPOSSTAR: 27493 goto __247 27494 27495 //----------------------------------------------------------------- 27496 case OP_EXACTI: 27497 goto __248 27498 case OP_NOTEXACTI: 27499 goto __249 27500 // Fall through 27501 case OP_EXACT: 27502 goto __250 27503 case OP_NOTEXACT: 27504 goto __251 27505 27506 //----------------------------------------------------------------- 27507 case OP_UPTOI: 27508 goto __252 27509 case OP_MINUPTOI: 27510 goto __253 27511 case OP_POSUPTOI: 27512 goto __254 27513 case OP_NOTUPTOI: 27514 goto __255 27515 case OP_NOTMINUPTOI: 27516 goto __256 27517 case OP_NOTPOSUPTOI: 27518 goto __257 27519 // Fall through 27520 case OP_UPTO: 27521 goto __258 27522 case OP_MINUPTO: 27523 goto __259 27524 case OP_POSUPTO: 27525 goto __260 27526 case OP_NOTUPTO: 27527 goto __261 27528 case OP_NOTMINUPTO: 27529 goto __262 27530 case OP_NOTPOSUPTO: 27531 goto __263 27532 27533 // ========================================================================== 27534 // These are the class-handling opcodes 27535 27536 case OP_CLASS: 27537 goto __264 27538 case OP_NCLASS: 27539 goto __265 27540 case OP_XCLASS: 27541 goto __266 27542 27543 // ========================================================================== 27544 // These are the opcodes for fancy brackets of various kinds. We have 27545 // to use recursion in order to handle them. The "always failing" assertion 27546 // (?!) is optimised to OP_FAIL when compiling, so we have to support that, 27547 // though the other "backtracking verbs" are not supported. 27548 27549 case OP_FAIL: 27550 goto __267 27551 27552 case OP_ASSERT: 27553 goto __268 27554 case OP_ASSERT_NOT: 27555 goto __269 27556 case OP_ASSERTBACK: 27557 goto __270 27558 case OP_ASSERTBACK_NOT: 27559 goto __271 27560 27561 //----------------------------------------------------------------- 27562 case OP_COND: 27563 goto __272 27564 case OP_SCOND: 27565 goto __273 27566 27567 //----------------------------------------------------------------- 27568 case OP_RECURSE: 27569 goto __274 27570 27571 //----------------------------------------------------------------- 27572 case OP_BRAPOS: 27573 goto __275 27574 case OP_SBRAPOS: 27575 goto __276 27576 case OP_CBRAPOS: 27577 goto __277 27578 case OP_SCBRAPOS: 27579 goto __278 27580 case OP_BRAPOSZERO: 27581 goto __279 27582 27583 //----------------------------------------------------------------- 27584 case OP_ONCE: 27585 goto __280 27586 27587 // ========================================================================== 27588 // Handle callouts 27589 27590 case OP_CALLOUT: 27591 goto __281 27592 case OP_CALLOUT_STR: 27593 goto __282 27594 27595 // ========================================================================== 27596 default: 27597 goto __283 27598 } 27599 goto __89 27600 27601 // ========================================================================== 27602 // These cases are never obeyed. This is a fudge that causes a compile- 27603 // time error if the vectors coptable or poptable, which are indexed by 27604 // opcode, are not the correct length. It seems to be the only way to do 27605 // such a check at compile time, as the sizeof() operator does not work 27606 // in the C preprocessor. 27607 27608 __90: 27609 __91: 27610 return 0 27611 27612 // ========================================================================== 27613 // Reached a closing bracket. If not at the end of the pattern, carry 27614 // on with the next opcode. For repeating opcodes, also add the repeat 27615 // state. Note that KETRPOS will always be encountered at the end of the 27616 // subpattern, because the possessive subpattern repeats are always handled 27617 // using recursive calls. Thus, it never adds any new states. 27618 // 27619 // At the end of the (sub)pattern, unless we have an empty string and 27620 // PCRE2_NOTEMPTY is set, or PCRE2_NOTEMPTY_ATSTART is set and we are at the 27621 // start of the subject, save the match data, shifting up all previous 27622 // matches so we always have the longest first. 27623 27624 __92: 27625 __93: 27626 __94: 27627 __95: 27628 if !(code != end_code) { 27629 goto __284 27630 } 27631 27632 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27633 goto __286 27634 } 27635 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 + DLINK_SIZE 27636 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27637 next_active_state += 12 27638 goto __287 27639 __286: 27640 return -43 27641 __287: 27642 ; 27643 if !(codevalue != OP_KET) { 27644 goto __288 27645 } 27646 27647 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27648 goto __289 27649 } 27650 (*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))))) 27651 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27652 next_active_state += 12 27653 goto __290 27654 __289: 27655 return -43 27656 __290: 27657 ; 27658 __288: 27659 ; 27660 goto __285 27661 __284: 27662 27663 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))) { 27664 goto __291 27665 } 27666 27667 if !(match_count < 0) { 27668 goto __292 27669 } 27670 if offsetcount >= Tuint32_t(2) { 27671 match_count = 1 27672 } else { 27673 match_count = 0 27674 } 27675 goto __293 27676 __292: 27677 if !(match_count > 0 && libc.PreIncInt32(&match_count, 1)*2 > int32(offsetcount)) { 27678 goto __294 27679 } 27680 match_count = 0 27681 __294: 27682 ; 27683 __293: 27684 ; 27685 count = func() int32 { 27686 if match_count == 0 { 27687 return int32(offsetcount) 27688 } 27689 return match_count * 2 27690 }() - 2 27691 if !(count > 0) { 27692 goto __295 27693 } 27694 libc.Xmemmove(tls, offsets+uintptr(2)*8, offsets, 27695 Tsize_t(count)*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 27696 __295: 27697 ; 27698 if !(offsetcount >= Tuint32_t(2)) { 27699 goto __296 27700 } 27701 27702 *(*Tsize_t)(unsafe.Pointer(offsets)) = Tsize_t((int64(current_subject) - int64(start_subject)) / 1) 27703 *(*Tsize_t)(unsafe.Pointer(offsets + 1*8)) = Tsize_t((int64(ptr) - int64(start_subject)) / 1) 27704 __296: 27705 ; 27706 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_DFA_SHORTEST != Tuint32_t(0)) { 27707 goto __297 27708 } 27709 return match_count 27710 __297: 27711 ; 27712 __291: 27713 ; 27714 __285: 27715 ; 27716 goto __89 27717 27718 // ========================================================================== 27719 // These opcodes add to the current list of states without looking 27720 // at the current character. 27721 27722 //----------------------------------------------------------------- 27723 __96: 27724 __298: 27725 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27726 goto __299 27727 __299: 27728 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 27729 goto __298 27730 } 27731 goto __300 27732 __300: 27733 ; 27734 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27735 goto __301 27736 } 27737 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code) - int64(start_code)) / 1) 27738 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27739 next_active_state += 12 27740 goto __302 27741 __301: 27742 return -43 27743 __302: 27744 ; 27745 goto __89 27746 27747 //----------------------------------------------------------------- 27748 __97: 27749 __98: 27750 __303: 27751 27752 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27753 goto __306 27754 } 27755 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE)) 27756 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27757 next_active_state += 12 27758 goto __307 27759 __306: 27760 return -43 27761 __307: 27762 ; 27763 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27764 goto __304 27765 __304: 27766 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 27767 goto __303 27768 } 27769 goto __305 27770 __305: 27771 ; 27772 goto __89 27773 27774 //----------------------------------------------------------------- 27775 __99: 27776 __100: 27777 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27778 goto __308 27779 } 27780 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE) + int64(DIMM2_SIZE)) 27781 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27782 next_active_state += 12 27783 goto __309 27784 __308: 27785 return -43 27786 __309: 27787 ; 27788 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27789 __310: 27790 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT) { 27791 goto __311 27792 } 27793 27794 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27795 goto __312 27796 } 27797 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE)) 27798 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27799 next_active_state += 12 27800 goto __313 27801 __312: 27802 return -43 27803 __313: 27804 ; 27805 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27806 goto __310 27807 __311: 27808 ; 27809 goto __89 27810 27811 //----------------------------------------------------------------- 27812 __101: 27813 __102: 27814 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27815 goto __314 27816 } 27817 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27818 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27819 next_active_state += 12 27820 goto __315 27821 __314: 27822 return -43 27823 __315: 27824 ; 27825 code += TPCRE2_SPTR8(uint32(1) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))))) 27826 __316: 27827 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT) { 27828 goto __317 27829 } 27830 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27831 goto __316 27832 __317: 27833 ; 27834 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27835 goto __318 27836 } 27837 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE)) 27838 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27839 next_active_state += 12 27840 goto __319 27841 __318: 27842 return -43 27843 __319: 27844 ; 27845 goto __89 27846 27847 //----------------------------------------------------------------- 27848 __103: 27849 code += TPCRE2_SPTR8(uint32(1) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))))) 27850 __320: 27851 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT) { 27852 goto __321 27853 } 27854 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27855 goto __320 27856 __321: 27857 ; 27858 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27859 goto __322 27860 } 27861 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE)) 27862 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27863 next_active_state += 12 27864 goto __323 27865 __322: 27866 return -43 27867 __323: 27868 ; 27869 goto __89 27870 27871 //----------------------------------------------------------------- 27872 __104: 27873 if !(ptr == start_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTBOL == Tuint32_t(0)) { 27874 goto __324 27875 } 27876 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27877 goto __325 27878 } 27879 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27880 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27881 next_active_state += 12 27882 goto __326 27883 __325: 27884 return -43 27885 __326: 27886 ; 27887 __324: 27888 ; 27889 goto __89 27890 27891 //----------------------------------------------------------------- 27892 __105: 27893 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)) && 27894 func() int32 { 27895 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 27896 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+120, utf) != 0) 27897 } 27898 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 + 128))) && ((*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 + 128 + 1))))) 27899 }() != 0) { 27900 goto __327 27901 } 27902 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27903 goto __328 27904 } 27905 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27906 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27907 next_active_state += 12 27908 goto __329 27909 __328: 27910 return -43 27911 __329: 27912 ; 27913 __327: 27914 ; 27915 goto __89 27916 27917 //----------------------------------------------------------------- 27918 __106: 27919 if !(ptr >= end_subject) { 27920 goto __330 27921 } 27922 27923 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 27924 goto __331 27925 } 27926 return -2 27927 goto __332 27928 __331: 27929 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27930 goto __333 27931 } 27932 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27933 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27934 next_active_state += 12 27935 goto __334 27936 __333: 27937 return -43 27938 __334: 27939 ; 27940 __332: 27941 ; 27942 __330: 27943 ; 27944 goto __89 27945 27946 //----------------------------------------------------------------- 27947 __107: 27948 if !(ptr == start_subject) { 27949 goto __335 27950 } 27951 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27952 goto __336 27953 } 27954 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27955 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27956 next_active_state += 12 27957 goto __337 27958 __336: 27959 return -43 27960 __337: 27961 ; 27962 __335: 27963 ; 27964 goto __89 27965 27966 //----------------------------------------------------------------- 27967 __108: 27968 if !(ptr == start_subject+uintptr(start_offset)) { 27969 goto __338 27970 } 27971 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27972 goto __339 27973 } 27974 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27975 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27976 next_active_state += 12 27977 goto __340 27978 __339: 27979 return -43 27980 __340: 27981 ; 27982 __338: 27983 ; 27984 goto __89 27985 27986 // ========================================================================== 27987 // These opcodes inspect the next subject character, and sometimes 27988 // the previous one as well, but do not have an argument. The variable 27989 // clen contains the length of the current character and is zero if we are 27990 // at the end of the subject. 27991 27992 //----------------------------------------------------------------- 27993 __109: 27994 if !(clen > 0 && !(func() int32 { 27995 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 27996 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+120, utf) != 0) 27997 } 27998 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 + 128))) && ((*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 + 128 + 1))))) 27999 }() != 0)) { 28000 goto __341 28001 } 28002 28003 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 + 128)))) { 28004 goto __342 28005 } 28006 28007 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28008 goto __343 28009 __342: 28010 28011 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28012 goto __344 28013 } 28014 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28015 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28016 next_new_state += 12 28017 goto __345 28018 __344: 28019 return -43 28020 __345: 28021 ; 28022 __343: 28023 ; 28024 __341: 28025 ; 28026 goto __89 28027 28028 //----------------------------------------------------------------- 28029 __110: 28030 if !(clen > 0) { 28031 goto __346 28032 } 28033 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28034 goto __347 28035 } 28036 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28037 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28038 next_new_state += 12 28039 goto __348 28040 __347: 28041 return -43 28042 __348: 28043 ; 28044 __346: 28045 ; 28046 goto __89 28047 28048 //----------------------------------------------------------------- 28049 __111: 28050 if !(clen == 0 || func() int32 { 28051 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28052 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+120, utf) != 0) 28053 } 28054 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 + 128))) && ((*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 + 128 + 1))))) 28055 }() != 0 && ptr == end_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)) { 28056 goto __349 28057 } 28058 28059 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28060 goto __350 28061 } 28062 return -2 28063 __350: 28064 ; 28065 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28066 goto __351 28067 } 28068 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28069 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28070 next_active_state += 12 28071 goto __352 28072 __351: 28073 return -43 28074 __352: 28075 ; 28076 __349: 28077 ; 28078 goto __89 28079 28080 //----------------------------------------------------------------- 28081 __112: 28082 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL == Tuint32_t(0)) { 28083 goto __353 28084 } 28085 28086 if !(clen == 0 && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28087 goto __354 28088 } 28089 could_continue = DTRUE 28090 goto __355 28091 __354: 28092 if !(clen == 0 || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_DOLLAR_ENDONLY == Tuint32_t(0) && func() int32 { 28093 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28094 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+120, utf) != 0) 28095 } 28096 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 + 128))) && ((*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 + 128 + 1))))) 28097 }() != 0 && ptr == end_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)) { 28098 goto __356 28099 } 28100 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28101 goto __358 28102 } 28103 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28104 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28105 next_active_state += 12 28106 goto __359 28107 __358: 28108 return -43 28109 __359: 28110 ; 28111 goto __357 28112 __356: 28113 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 + 128)))) { 28114 goto __360 28115 } 28116 28117 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28118 goto __361 28119 } 28120 28121 reset_could_continue = DTRUE 28122 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28123 goto __363 28124 } 28125 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 28126 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28127 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 1 28128 next_new_state += 12 28129 goto __364 28130 __363: 28131 return -43 28132 __364: 28133 ; 28134 goto __362 28135 __361: 28136 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28137 __362: 28138 ; 28139 __360: 28140 ; 28141 __357: 28142 ; 28143 __355: 28144 ; 28145 __353: 28146 ; 28147 goto __89 28148 28149 //----------------------------------------------------------------- 28150 __113: 28151 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL == Tuint32_t(0)) { 28152 goto __365 28153 } 28154 28155 if !(clen == 0 && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28156 goto __367 28157 } 28158 could_continue = DTRUE 28159 goto __368 28160 __367: 28161 if !(clen == 0 || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_DOLLAR_ENDONLY == Tuint32_t(0) && func() int32 { 28162 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28163 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+120, utf) != 0) 28164 } 28165 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 + 128))) && ((*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 + 128 + 1))))) 28166 }() != 0) { 28167 goto __369 28168 } 28169 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28170 goto __371 28171 } 28172 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28173 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28174 next_active_state += 12 28175 goto __372 28176 __371: 28177 return -43 28178 __372: 28179 ; 28180 goto __370 28181 __369: 28182 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 + 128)))) { 28183 goto __373 28184 } 28185 28186 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28187 goto __374 28188 } 28189 28190 reset_could_continue = DTRUE 28191 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28192 goto __376 28193 } 28194 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 28195 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28196 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 1 28197 next_new_state += 12 28198 goto __377 28199 __376: 28200 return -43 28201 __377: 28202 ; 28203 goto __375 28204 __374: 28205 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28206 __375: 28207 ; 28208 __373: 28209 ; 28210 __370: 28211 ; 28212 __368: 28213 ; 28214 goto __366 28215 __365: 28216 if !(func() int32 { 28217 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28218 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+120, utf) != 0) 28219 } 28220 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 + 128))) && ((*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 + 128 + 1))))) 28221 }() != 0) { 28222 goto __378 28223 } 28224 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28225 goto __379 28226 } 28227 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28228 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28229 next_active_state += 12 28230 goto __380 28231 __379: 28232 return -43 28233 __380: 28234 ; 28235 __378: 28236 ; 28237 __366: 28238 ; 28239 goto __89 28240 28241 //----------------------------------------------------------------- 28242 28243 __114: 28244 __115: 28245 __116: 28246 if !(clen > 0 && c < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[codevalue])^int32(toptable2[codevalue]) != 0) { 28247 goto __381 28248 } 28249 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28250 goto __382 28251 } 28252 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28253 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28254 next_new_state += 12 28255 goto __383 28256 __382: 28257 return -43 28258 __383: 28259 ; 28260 __381: 28261 ; 28262 goto __89 28263 28264 //----------------------------------------------------------------- 28265 __117: 28266 __118: 28267 __119: 28268 if !(clen > 0 && (c >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[codevalue])^int32(toptable2[codevalue]) != 0)) { 28269 goto __384 28270 } 28271 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28272 goto __385 28273 } 28274 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28275 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28276 next_new_state += 12 28277 goto __386 28278 __385: 28279 return -43 28280 __386: 28281 ; 28282 __384: 28283 ; 28284 goto __89 28285 28286 //----------------------------------------------------------------- 28287 __120: 28288 __121: 28289 28290 if !(ptr > start_subject) { 28291 goto __387 28292 } 28293 28294 temp = ptr - uintptr(1) 28295 if !(temp < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 28296 goto __389 28297 } 28298 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = temp 28299 __389: 28300 ; 28301 if !(utf != 0) { 28302 goto __390 28303 } 28304 __391: 28305 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp)))&0xc0 == 0x80) { 28306 goto __392 28307 } 28308 temp-- 28309 goto __391 28310 __392: 28311 ; 28312 __390: 28313 ; 28314 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp))) 28315 if !(utf != 0 && d >= 0xc0) { 28316 goto __393 28317 } 28318 if !(d&0x20 == Tuint32_t(0)) { 28319 goto __394 28320 } 28321 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f 28322 goto __395 28323 __394: 28324 if !(d&0x10 == Tuint32_t(0)) { 28325 goto __396 28326 } 28327 d = d&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 2)))&0x3f 28328 goto __397 28329 __396: 28330 if !(d&0x08 == Tuint32_t(0)) { 28331 goto __398 28332 } 28333 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 28334 goto __399 28335 __398: 28336 if !(d&0x04 == Tuint32_t(0)) { 28337 goto __400 28338 } 28339 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 28340 goto __401 28341 __400: 28342 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 28343 __401: 28344 ; 28345 __399: 28346 ; 28347 __397: 28348 ; 28349 __395: 28350 ; 28351 __393: 28352 ; 28353 28354 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 28355 goto __402 28356 } 28357 28358 if !(d == Tuint32_t('_')) { 28359 goto __404 28360 } 28361 left_word = DTRUE 28362 goto __405 28363 __404: 28364 28365 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] 28366 left_word = libc.Bool32(cat == ucp_L || cat == ucp_N) 28367 __405: 28368 ; 28369 goto __403 28370 __402: 28371 left_word = libc.Bool32(d < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(d))))&Dctype_word != 0) 28372 __403: 28373 ; 28374 goto __388 28375 __387: 28376 left_word = DFALSE 28377 __388: 28378 ; 28379 28380 if !(clen > 0) { 28381 goto __406 28382 } 28383 28384 if !(ptr >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 28385 goto __408 28386 } 28387 28388 temp1 = ptr + uintptr(1) 28389 if !(utf != 0) { 28390 goto __409 28391 } 28392 __410: 28393 if !(temp1 < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp1)))&0xc0 == 0x80) { 28394 goto __411 28395 } 28396 temp1++ 28397 goto __410 28398 __411: 28399 ; 28400 __409: 28401 ; 28402 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = temp1 28403 __408: 28404 ; 28405 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 28406 goto __412 28407 } 28408 28409 if !(c == Tuint32_t('_')) { 28410 goto __414 28411 } 28412 right_word = DTRUE 28413 goto __415 28414 __414: 28415 28416 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] 28417 right_word = libc.Bool32(cat1 == ucp_L || cat1 == ucp_N) 28418 __415: 28419 ; 28420 goto __413 28421 __412: 28422 right_word = libc.Bool32(c < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&Dctype_word != 0) 28423 __413: 28424 ; 28425 goto __407 28426 __406: 28427 right_word = DFALSE 28428 __407: 28429 ; 28430 28431 if !(libc.Bool32(left_word == right_word) == libc.Bool32(codevalue == OP_NOT_WORD_BOUNDARY)) { 28432 goto __416 28433 } 28434 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28435 goto __417 28436 } 28437 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28438 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28439 next_active_state += 12 28440 goto __418 28441 __417: 28442 return -43 28443 __418: 28444 ; 28445 __416: 28446 ; 28447 28448 goto __89 28449 28450 //----------------------------------------------------------------- 28451 // Check the next character by Unicode property. We will get here only 28452 // if the support is in the binary; otherwise a compile-time error occurs. 28453 // 28454 28455 __122: 28456 __123: 28457 if !(clen > 0) { 28458 goto __419 28459 } 28460 28461 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 28462 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) { 28463 case DPT_ANY: 28464 goto __421 28465 28466 case DPT_LAMP: 28467 goto __422 28468 28469 case DPT_GC: 28470 goto __423 28471 28472 case DPT_PC: 28473 goto __424 28474 28475 case DPT_SC: 28476 goto __425 28477 28478 case DPT_SCX: 28479 goto __426 28480 28481 // These are specials for combination cases. 28482 28483 case DPT_ALNUM: 28484 goto __427 28485 28486 // Perl space used to exclude VT, but from Perl 5.18 it is included, 28487 // which means that Perl space and POSIX space are now identical. PCRE 28488 // was changed at release 8.34. 28489 28490 case DPT_SPACE: 28491 goto __428 // Perl space 28492 case DPT_PXSPACE: 28493 goto __429 28494 28495 case DPT_WORD: 28496 goto __430 28497 28498 case DPT_CLIST: 28499 goto __431 28500 28501 case DPT_UCNC: 28502 goto __432 28503 28504 case DPT_BIDICL: 28505 goto __433 28506 28507 case DPT_BOOL: 28508 goto __434 28509 28510 // Should never occur, but keep compilers from grumbling. 28511 28512 default: 28513 goto __435 28514 } 28515 goto __420 28516 28517 __421: 28518 OK = DTRUE 28519 goto __420 28520 28521 __422: 28522 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) 28523 goto __420 28524 28525 __423: 28526 OK = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28527 goto __420 28528 28529 __424: 28530 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28531 goto __420 28532 28533 __425: 28534 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28535 goto __420 28536 28537 __426: 28538 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)) 28539 goto __420 28540 28541 // These are specials for combination cases. 28542 28543 __427: 28544 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) 28545 goto __420 28546 28547 // Perl space used to exclude VT, but from Perl 5.18 it is included, 28548 // which means that Perl space and POSIX space are now identical. PCRE 28549 // was changed at release 8.34. 28550 28551 __428: // Perl space 28552 __429: // POSIX space 28553 switch c { 28554 case Tuint32_t('\011'): 28555 goto __437 28556 case Tuint32_t('\040'): 28557 goto __438 28558 case Tuint32_t(uint8('\xa0')): 28559 goto __439 28560 case Tuint32_t(0x1680): 28561 goto __440 /* OGHAM SPACE MARK */ 28562 case Tuint32_t(0x180e): 28563 goto __441 /* MONGOLIAN VOWEL SEPARATOR */ 28564 case Tuint32_t(0x2000): 28565 goto __442 /* EN QUAD */ 28566 case Tuint32_t(0x2001): 28567 goto __443 /* EM QUAD */ 28568 case Tuint32_t(0x2002): 28569 goto __444 /* EN SPACE */ 28570 case Tuint32_t(0x2003): 28571 goto __445 /* EM SPACE */ 28572 case Tuint32_t(0x2004): 28573 goto __446 /* THREE-PER-EM SPACE */ 28574 case Tuint32_t(0x2005): 28575 goto __447 /* FOUR-PER-EM SPACE */ 28576 case Tuint32_t(0x2006): 28577 goto __448 /* SIX-PER-EM SPACE */ 28578 case Tuint32_t(0x2007): 28579 goto __449 /* FIGURE SPACE */ 28580 case Tuint32_t(0x2008): 28581 goto __450 /* PUNCTUATION SPACE */ 28582 case Tuint32_t(0x2009): 28583 goto __451 /* THIN SPACE */ 28584 case Tuint32_t(0x200A): 28585 goto __452 /* HAIR SPACE */ 28586 case Tuint32_t(0x202f): 28587 goto __453 /* NARROW NO-BREAK SPACE */ 28588 case Tuint32_t(0x205f): 28589 goto __454 /* MEDIUM MATHEMATICAL SPACE */ 28590 case Tuint32_t(0x3000): 28591 goto __455 28592 case Tuint32_t('\012'): 28593 goto __456 28594 case Tuint32_t('\013'): 28595 goto __457 28596 case Tuint32_t('\014'): 28597 goto __458 28598 case Tuint32_t('\015'): 28599 goto __459 28600 case Tuint32_t(uint8('\x85')): 28601 goto __460 28602 case Tuint32_t(0x2028): 28603 goto __461 /* LINE SEPARATOR */ 28604 case Tuint32_t(0x2029): 28605 goto __462 28606 28607 default: 28608 goto __463 28609 } 28610 goto __436 28611 28612 __437: 28613 __438: 28614 __439: 28615 __440: /* OGHAM SPACE MARK */ 28616 __441: /* MONGOLIAN VOWEL SEPARATOR */ 28617 __442: /* EN QUAD */ 28618 __443: /* EM QUAD */ 28619 __444: /* EN SPACE */ 28620 __445: /* EM SPACE */ 28621 __446: /* THREE-PER-EM SPACE */ 28622 __447: /* FOUR-PER-EM SPACE */ 28623 __448: /* SIX-PER-EM SPACE */ 28624 __449: /* FIGURE SPACE */ 28625 __450: /* PUNCTUATION SPACE */ 28626 __451: /* THIN SPACE */ 28627 __452: /* HAIR SPACE */ 28628 __453: /* NARROW NO-BREAK SPACE */ 28629 __454: /* MEDIUM MATHEMATICAL SPACE */ 28630 __455: 28631 __456: 28632 __457: 28633 __458: 28634 __459: 28635 __460: 28636 __461: /* LINE SEPARATOR */ 28637 __462: 28638 OK = DTRUE 28639 goto __436 28640 28641 __463: 28642 OK = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) 28643 goto __436 28644 __436: 28645 ; 28646 goto __420 28647 28648 __430: 28649 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')) 28650 goto __420 28651 28652 __431: 28653 cp = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))*4 28654 __464: 28655 28656 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp))) { 28657 goto __467 28658 } 28659 OK = DFALSE 28660 goto __466 28661 __467: 28662 ; 28663 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp, 4)))) { 28664 goto __468 28665 } 28666 OK = DTRUE 28667 goto __466 28668 __468: 28669 ; 28670 goto __465 28671 __465: 28672 goto __464 28673 goto __466 28674 __466: 28675 ; 28676 goto __420 28677 28678 __432: 28679 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)) 28680 goto __420 28681 28682 __433: 28683 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)))) 28684 goto __420 28685 28686 __434: 28687 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)) 28688 goto __420 28689 28690 // Should never occur, but keep compilers from grumbling. 28691 28692 __435: 28693 OK = libc.Bool32(codevalue != OP_PROP) 28694 goto __420 28695 __420: 28696 ; 28697 28698 if !(OK == libc.Bool32(codevalue == OP_PROP)) { 28699 goto __469 28700 } 28701 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28702 goto __470 28703 } 28704 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 3 28705 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28706 next_new_state += 12 28707 goto __471 28708 __470: 28709 return -43 28710 __471: 28711 ; 28712 __469: 28713 ; 28714 __419: 28715 ; 28716 goto __89 28717 28718 // ========================================================================== 28719 // These opcodes likewise inspect the subject character, but have an 28720 // argument that is not a data character. It is one of these opcodes: 28721 // OP_ANY, OP_ALLANY, OP_DIGIT, OP_NOT_DIGIT, OP_WHITESPACE, OP_NOT_SPACE, 28722 // OP_WORDCHAR, OP_NOT_WORDCHAR. The value is loaded into d. 28723 28724 __124: 28725 __125: 28726 __126: 28727 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 28728 if !(count > 0) { 28729 goto __472 28730 } 28731 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28732 goto __473 28733 } 28734 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 28735 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28736 next_active_state += 12 28737 goto __474 28738 __473: 28739 return -43 28740 __474: 28741 ; 28742 __472: 28743 ; 28744 if !(clen > 0) { 28745 goto __475 28746 } 28747 28748 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 + 128)))) { 28749 goto __476 28750 } 28751 28752 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28753 goto __477 28754 __476: 28755 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28756 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28757 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+120, utf) != 0) 28758 } 28759 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 + 128))) && ((*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 + 128 + 1))))) 28760 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28761 goto __478 28762 } 28763 28764 if !(count > 0 && codevalue == OP_TYPEPOSPLUS) { 28765 goto __479 28766 } 28767 28768 active_count-- // Remove non-match possibility 28769 next_active_state -= 12 28770 __479: 28771 ; 28772 count++ 28773 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28774 goto __480 28775 } 28776 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 28777 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 28778 next_new_state += 12 28779 goto __481 28780 __480: 28781 return -43 28782 __481: 28783 ; 28784 __478: 28785 ; 28786 __477: 28787 ; 28788 __475: 28789 ; 28790 goto __89 28791 28792 //----------------------------------------------------------------- 28793 __127: 28794 __128: 28795 __129: 28796 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28797 goto __482 28798 } 28799 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 28800 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28801 next_active_state += 12 28802 goto __483 28803 __482: 28804 return -43 28805 __483: 28806 ; 28807 if !(clen > 0) { 28808 goto __484 28809 } 28810 28811 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 + 128)))) { 28812 goto __485 28813 } 28814 28815 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28816 goto __486 28817 __485: 28818 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28819 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28820 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+120, utf) != 0) 28821 } 28822 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 + 128))) && ((*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 + 128 + 1))))) 28823 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28824 goto __487 28825 } 28826 28827 if !(codevalue == OP_TYPEPOSQUERY) { 28828 goto __488 28829 } 28830 28831 active_count-- // Remove non-match possibility 28832 next_active_state -= 12 28833 __488: 28834 ; 28835 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28836 goto __489 28837 } 28838 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 2 28839 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28840 next_new_state += 12 28841 goto __490 28842 __489: 28843 return -43 28844 __490: 28845 ; 28846 __487: 28847 ; 28848 __486: 28849 ; 28850 __484: 28851 ; 28852 goto __89 28853 28854 //----------------------------------------------------------------- 28855 __130: 28856 __131: 28857 __132: 28858 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28859 goto __491 28860 } 28861 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 28862 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28863 next_active_state += 12 28864 goto __492 28865 __491: 28866 return -43 28867 __492: 28868 ; 28869 if !(clen > 0) { 28870 goto __493 28871 } 28872 28873 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 + 128)))) { 28874 goto __494 28875 } 28876 28877 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28878 goto __495 28879 __494: 28880 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28881 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28882 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+120, utf) != 0) 28883 } 28884 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 + 128))) && ((*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 + 128 + 1))))) 28885 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28886 goto __496 28887 } 28888 28889 if !(codevalue == OP_TYPEPOSSTAR) { 28890 goto __497 28891 } 28892 28893 active_count-- // Remove non-match possibility 28894 next_active_state -= 12 28895 __497: 28896 ; 28897 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28898 goto __498 28899 } 28900 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 28901 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28902 next_new_state += 12 28903 goto __499 28904 __498: 28905 return -43 28906 __499: 28907 ; 28908 __496: 28909 ; 28910 __495: 28911 ; 28912 __493: 28913 ; 28914 goto __89 28915 28916 //----------------------------------------------------------------- 28917 __133: 28918 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 28919 if !(clen > 0) { 28920 goto __500 28921 } 28922 28923 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 + 128)))) { 28924 goto __501 28925 } 28926 28927 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28928 goto __502 28929 __501: 28930 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28931 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28932 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+120, utf) != 0) 28933 } 28934 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 + 128))) && ((*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 + 128 + 1))))) 28935 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28936 goto __503 28937 } 28938 28939 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 28940 goto __504 28941 } 28942 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28943 goto __506 28944 } 28945 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 + DIMM2_SIZE + 1 28946 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28947 next_new_state += 12 28948 goto __507 28949 __506: 28950 return -43 28951 __507: 28952 ; 28953 goto __505 28954 __504: 28955 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28956 goto __508 28957 } 28958 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 28959 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 28960 next_new_state += 12 28961 goto __509 28962 __508: 28963 return -43 28964 __509: 28965 ; 28966 __505: 28967 ; 28968 __503: 28969 ; 28970 __502: 28971 ; 28972 __500: 28973 ; 28974 goto __89 28975 28976 //----------------------------------------------------------------- 28977 __134: 28978 __135: 28979 __136: 28980 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28981 goto __510 28982 } 28983 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 28984 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28985 next_active_state += 12 28986 goto __511 28987 __510: 28988 return -43 28989 __511: 28990 ; 28991 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 28992 if !(clen > 0) { 28993 goto __512 28994 } 28995 28996 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 + 128)))) { 28997 goto __513 28998 } 28999 29000 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 29001 goto __514 29002 __513: 29003 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 29004 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 29005 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+120, utf) != 0) 29006 } 29007 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 + 128))) && ((*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 + 128 + 1))))) 29008 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 29009 goto __515 29010 } 29011 29012 if !(codevalue == OP_TYPEPOSUPTO) { 29013 goto __516 29014 } 29015 29016 active_count-- // Remove non-match possibility 29017 next_active_state -= 12 29018 __516: 29019 ; 29020 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 29021 goto __517 29022 } 29023 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29024 goto __519 29025 } 29026 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 2 + DIMM2_SIZE 29027 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 29028 next_new_state += 12 29029 goto __520 29030 __519: 29031 return -43 29032 __520: 29033 ; 29034 goto __518 29035 __517: 29036 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29037 goto __521 29038 } 29039 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 29040 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29041 next_new_state += 12 29042 goto __522 29043 __521: 29044 return -43 29045 __522: 29046 ; 29047 __518: 29048 ; 29049 __515: 29050 ; 29051 __514: 29052 ; 29053 __512: 29054 ; 29055 goto __89 29056 29057 // ========================================================================== 29058 // These are virtual opcodes that are used when something like 29059 // OP_TYPEPLUS has OP_PROP, OP_NOTPROP, OP_ANYNL, or OP_EXTUNI as its 29060 // argument. It keeps the code above fast for the other cases. The argument 29061 // is in the d variable. 29062 29063 __137: 29064 __138: 29065 __139: 29066 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29067 if !(count > 0) { 29068 goto __523 29069 } 29070 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29071 goto __524 29072 } 29073 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 4 29074 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29075 next_active_state += 12 29076 goto __525 29077 __524: 29078 return -43 29079 __525: 29080 ; 29081 __523: 29082 ; 29083 if !(clen > 0) { 29084 goto __526 29085 } 29086 29087 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 29088 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))) { 29089 case DPT_ANY: 29090 goto __528 29091 29092 case DPT_LAMP: 29093 goto __529 29094 29095 case DPT_GC: 29096 goto __530 29097 29098 case DPT_PC: 29099 goto __531 29100 29101 case DPT_SC: 29102 goto __532 29103 29104 case DPT_SCX: 29105 goto __533 29106 29107 // These are specials for combination cases. 29108 29109 case DPT_ALNUM: 29110 goto __534 29111 29112 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29113 // which means that Perl space and POSIX space are now identical. PCRE 29114 // was changed at release 8.34. 29115 29116 case DPT_SPACE: 29117 goto __535 // Perl space 29118 case DPT_PXSPACE: 29119 goto __536 29120 29121 case DPT_WORD: 29122 goto __537 29123 29124 case DPT_CLIST: 29125 goto __538 29126 29127 case DPT_UCNC: 29128 goto __539 29129 29130 case DPT_BIDICL: 29131 goto __540 29132 29133 case DPT_BOOL: 29134 goto __541 29135 29136 // Should never occur, but keep compilers from grumbling. 29137 29138 default: 29139 goto __542 29140 } 29141 goto __527 29142 29143 __528: 29144 OK1 = DTRUE 29145 goto __527 29146 29147 __529: 29148 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) 29149 goto __527 29150 29151 __530: 29152 OK1 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29153 goto __527 29154 29155 __531: 29156 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29157 goto __527 29158 29159 __532: 29160 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29161 goto __527 29162 29163 __533: 29164 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)) 29165 goto __527 29166 29167 // These are specials for combination cases. 29168 29169 __534: 29170 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) 29171 goto __527 29172 29173 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29174 // which means that Perl space and POSIX space are now identical. PCRE 29175 // was changed at release 8.34. 29176 29177 __535: // Perl space 29178 __536: // POSIX space 29179 switch c { 29180 case Tuint32_t('\011'): 29181 goto __544 29182 case Tuint32_t('\040'): 29183 goto __545 29184 case Tuint32_t(uint8('\xa0')): 29185 goto __546 29186 case Tuint32_t(0x1680): 29187 goto __547 /* OGHAM SPACE MARK */ 29188 case Tuint32_t(0x180e): 29189 goto __548 /* MONGOLIAN VOWEL SEPARATOR */ 29190 case Tuint32_t(0x2000): 29191 goto __549 /* EN QUAD */ 29192 case Tuint32_t(0x2001): 29193 goto __550 /* EM QUAD */ 29194 case Tuint32_t(0x2002): 29195 goto __551 /* EN SPACE */ 29196 case Tuint32_t(0x2003): 29197 goto __552 /* EM SPACE */ 29198 case Tuint32_t(0x2004): 29199 goto __553 /* THREE-PER-EM SPACE */ 29200 case Tuint32_t(0x2005): 29201 goto __554 /* FOUR-PER-EM SPACE */ 29202 case Tuint32_t(0x2006): 29203 goto __555 /* SIX-PER-EM SPACE */ 29204 case Tuint32_t(0x2007): 29205 goto __556 /* FIGURE SPACE */ 29206 case Tuint32_t(0x2008): 29207 goto __557 /* PUNCTUATION SPACE */ 29208 case Tuint32_t(0x2009): 29209 goto __558 /* THIN SPACE */ 29210 case Tuint32_t(0x200A): 29211 goto __559 /* HAIR SPACE */ 29212 case Tuint32_t(0x202f): 29213 goto __560 /* NARROW NO-BREAK SPACE */ 29214 case Tuint32_t(0x205f): 29215 goto __561 /* MEDIUM MATHEMATICAL SPACE */ 29216 case Tuint32_t(0x3000): 29217 goto __562 29218 case Tuint32_t('\012'): 29219 goto __563 29220 case Tuint32_t('\013'): 29221 goto __564 29222 case Tuint32_t('\014'): 29223 goto __565 29224 case Tuint32_t('\015'): 29225 goto __566 29226 case Tuint32_t(uint8('\x85')): 29227 goto __567 29228 case Tuint32_t(0x2028): 29229 goto __568 /* LINE SEPARATOR */ 29230 case Tuint32_t(0x2029): 29231 goto __569 29232 29233 default: 29234 goto __570 29235 } 29236 goto __543 29237 29238 __544: 29239 __545: 29240 __546: 29241 __547: /* OGHAM SPACE MARK */ 29242 __548: /* MONGOLIAN VOWEL SEPARATOR */ 29243 __549: /* EN QUAD */ 29244 __550: /* EM QUAD */ 29245 __551: /* EN SPACE */ 29246 __552: /* EM SPACE */ 29247 __553: /* THREE-PER-EM SPACE */ 29248 __554: /* FOUR-PER-EM SPACE */ 29249 __555: /* SIX-PER-EM SPACE */ 29250 __556: /* FIGURE SPACE */ 29251 __557: /* PUNCTUATION SPACE */ 29252 __558: /* THIN SPACE */ 29253 __559: /* HAIR SPACE */ 29254 __560: /* NARROW NO-BREAK SPACE */ 29255 __561: /* MEDIUM MATHEMATICAL SPACE */ 29256 __562: 29257 __563: 29258 __564: 29259 __565: 29260 __566: 29261 __567: 29262 __568: /* LINE SEPARATOR */ 29263 __569: 29264 OK1 = DTRUE 29265 goto __543 29266 29267 __570: 29268 OK1 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_Z) 29269 goto __543 29270 __543: 29271 ; 29272 goto __527 29273 29274 __537: 29275 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')) 29276 goto __527 29277 29278 __538: 29279 cp1 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))*4 29280 __571: 29281 29282 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp1))) { 29283 goto __574 29284 } 29285 OK1 = DFALSE 29286 goto __573 29287 __574: 29288 ; 29289 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp1, 4)))) { 29290 goto __575 29291 } 29292 OK1 = DTRUE 29293 goto __573 29294 __575: 29295 ; 29296 goto __572 29297 __572: 29298 goto __571 29299 goto __573 29300 __573: 29301 ; 29302 goto __527 29303 29304 __539: 29305 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)) 29306 goto __527 29307 29308 __540: 29309 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)))) 29310 goto __527 29311 29312 __541: 29313 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)) 29314 goto __527 29315 29316 // Should never occur, but keep compilers from grumbling. 29317 29318 __542: 29319 OK1 = libc.Bool32(codevalue != OP_PROP) 29320 goto __527 29321 __527: 29322 ; 29323 29324 if !(OK1 == libc.Bool32(d == OP_PROP)) { 29325 goto __576 29326 } 29327 29328 if !(count > 0 && codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSPLUS)) { 29329 goto __577 29330 } 29331 29332 active_count-- // Remove non-match possibility 29333 next_active_state -= 12 29334 __577: 29335 ; 29336 count++ 29337 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29338 goto __578 29339 } 29340 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 29341 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29342 next_new_state += 12 29343 goto __579 29344 __578: 29345 return -43 29346 __579: 29347 ; 29348 __576: 29349 ; 29350 __526: 29351 ; 29352 goto __89 29353 29354 //----------------------------------------------------------------- 29355 __140: 29356 __141: 29357 __142: 29358 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29359 if !(count > 0) { 29360 goto __580 29361 } 29362 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29363 goto __581 29364 } 29365 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29366 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29367 next_active_state += 12 29368 goto __582 29369 __581: 29370 return -43 29371 __582: 29372 ; 29373 __580: 29374 ; 29375 if !(clen > 0) { 29376 goto __583 29377 } 29378 29379 *(*int32)(unsafe.Pointer(bp /* ncount */)) = 0 29380 if !(count > 0 && codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSPLUS)) { 29381 goto __584 29382 } 29383 29384 active_count-- // Remove non-match possibility 29385 next_active_state -= 12 29386 __584: 29387 ; 29388 X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, end_subject, utf, 29389 bp) 29390 count++ 29391 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29392 goto __585 29393 } 29394 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29395 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29396 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp)) 29397 next_new_state += 12 29398 goto __586 29399 __585: 29400 return -43 29401 __586: 29402 ; 29403 __583: 29404 ; 29405 goto __89 29406 29407 //----------------------------------------------------------------- 29408 __143: 29409 __144: 29410 __145: 29411 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29412 if !(count > 0) { 29413 goto __587 29414 } 29415 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29416 goto __588 29417 } 29418 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29419 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29420 next_active_state += 12 29421 goto __589 29422 __588: 29423 return -43 29424 __589: 29425 ; 29426 __587: 29427 ; 29428 if !(clen > 0) { 29429 goto __590 29430 } 29431 ncount1 = 0 29432 switch c { 29433 case Tuint32_t('\013'): 29434 goto __592 29435 case Tuint32_t('\014'): 29436 goto __593 29437 case Tuint32_t(uint8('\x85')): 29438 goto __594 29439 case Tuint32_t(0x2028): 29440 goto __595 29441 case Tuint32_t(0x2029): 29442 goto __596 29443 29444 case Tuint32_t('\015'): 29445 goto __597 29446 case Tuint32_t('\012'): 29447 goto __598 29448 29449 default: 29450 goto __599 29451 } 29452 goto __591 29453 29454 __592: 29455 __593: 29456 __594: 29457 __595: 29458 __596: 29459 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 29460 goto __600 29461 } 29462 goto __591 29463 __600: 29464 ; 29465 goto ANYNL01 29466 29467 __597: 29468 if !(ptr+uintptr(1) < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 29469 goto __601 29470 } 29471 ncount1 = 1 29472 __601: 29473 ; 29474 // Fall through 29475 29476 ANYNL01: 29477 __598: 29478 if !(count > 0 && codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSPLUS)) { 29479 goto __602 29480 } 29481 29482 active_count-- // Remove non-match possibility 29483 next_active_state -= 12 29484 __602: 29485 ; 29486 count++ 29487 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29488 goto __603 29489 } 29490 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29491 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29492 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount1 29493 next_new_state += 12 29494 goto __604 29495 __603: 29496 return -43 29497 __604: 29498 ; 29499 goto __591 29500 29501 __599: 29502 goto __591 29503 __591: 29504 ; 29505 __590: 29506 ; 29507 goto __89 29508 29509 //----------------------------------------------------------------- 29510 __146: 29511 __147: 29512 __148: 29513 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29514 if !(count > 0) { 29515 goto __605 29516 } 29517 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29518 goto __606 29519 } 29520 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29521 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29522 next_active_state += 12 29523 goto __607 29524 __606: 29525 return -43 29526 __607: 29527 ; 29528 __605: 29529 ; 29530 if !(clen > 0) { 29531 goto __608 29532 } 29533 29534 switch c { 29535 case Tuint32_t('\012'): 29536 goto __610 29537 case Tuint32_t('\013'): 29538 goto __611 29539 case Tuint32_t('\014'): 29540 goto __612 29541 case Tuint32_t('\015'): 29542 goto __613 29543 case Tuint32_t(uint8('\x85')): 29544 goto __614 29545 case Tuint32_t(0x2028): 29546 goto __615 /* LINE SEPARATOR */ 29547 case Tuint32_t(0x2029): 29548 goto __616 29549 29550 default: 29551 goto __617 29552 } 29553 goto __609 29554 29555 __610: 29556 __611: 29557 __612: 29558 __613: 29559 __614: 29560 __615: /* LINE SEPARATOR */ 29561 __616: 29562 OK2 = DTRUE 29563 goto __609 29564 29565 __617: 29566 OK2 = DFALSE 29567 goto __609 29568 __609: 29569 ; 29570 29571 if !(OK2 == libc.Bool32(d == OP_VSPACE)) { 29572 goto __618 29573 } 29574 29575 if !(count > 0 && codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSPLUS)) { 29576 goto __619 29577 } 29578 29579 active_count-- // Remove non-match possibility 29580 next_active_state -= 12 29581 __619: 29582 ; 29583 count++ 29584 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29585 goto __620 29586 } 29587 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29588 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29589 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 29590 next_new_state += 12 29591 goto __621 29592 __620: 29593 return -43 29594 __621: 29595 ; 29596 __618: 29597 ; 29598 __608: 29599 ; 29600 goto __89 29601 29602 //----------------------------------------------------------------- 29603 __149: 29604 __150: 29605 __151: 29606 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29607 if !(count > 0) { 29608 goto __622 29609 } 29610 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29611 goto __623 29612 } 29613 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29614 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29615 next_active_state += 12 29616 goto __624 29617 __623: 29618 return -43 29619 __624: 29620 ; 29621 __622: 29622 ; 29623 if !(clen > 0) { 29624 goto __625 29625 } 29626 29627 switch c { 29628 case Tuint32_t('\011'): 29629 goto __627 29630 case Tuint32_t('\040'): 29631 goto __628 29632 case Tuint32_t(uint8('\xa0')): 29633 goto __629 29634 case Tuint32_t(0x1680): 29635 goto __630 /* OGHAM SPACE MARK */ 29636 case Tuint32_t(0x180e): 29637 goto __631 /* MONGOLIAN VOWEL SEPARATOR */ 29638 case Tuint32_t(0x2000): 29639 goto __632 /* EN QUAD */ 29640 case Tuint32_t(0x2001): 29641 goto __633 /* EM QUAD */ 29642 case Tuint32_t(0x2002): 29643 goto __634 /* EN SPACE */ 29644 case Tuint32_t(0x2003): 29645 goto __635 /* EM SPACE */ 29646 case Tuint32_t(0x2004): 29647 goto __636 /* THREE-PER-EM SPACE */ 29648 case Tuint32_t(0x2005): 29649 goto __637 /* FOUR-PER-EM SPACE */ 29650 case Tuint32_t(0x2006): 29651 goto __638 /* SIX-PER-EM SPACE */ 29652 case Tuint32_t(0x2007): 29653 goto __639 /* FIGURE SPACE */ 29654 case Tuint32_t(0x2008): 29655 goto __640 /* PUNCTUATION SPACE */ 29656 case Tuint32_t(0x2009): 29657 goto __641 /* THIN SPACE */ 29658 case Tuint32_t(0x200A): 29659 goto __642 /* HAIR SPACE */ 29660 case Tuint32_t(0x202f): 29661 goto __643 /* NARROW NO-BREAK SPACE */ 29662 case Tuint32_t(0x205f): 29663 goto __644 /* MEDIUM MATHEMATICAL SPACE */ 29664 case Tuint32_t(0x3000): 29665 goto __645 29666 29667 default: 29668 goto __646 29669 } 29670 goto __626 29671 29672 __627: 29673 __628: 29674 __629: 29675 __630: /* OGHAM SPACE MARK */ 29676 __631: /* MONGOLIAN VOWEL SEPARATOR */ 29677 __632: /* EN QUAD */ 29678 __633: /* EM QUAD */ 29679 __634: /* EN SPACE */ 29680 __635: /* EM SPACE */ 29681 __636: /* THREE-PER-EM SPACE */ 29682 __637: /* FOUR-PER-EM SPACE */ 29683 __638: /* SIX-PER-EM SPACE */ 29684 __639: /* FIGURE SPACE */ 29685 __640: /* PUNCTUATION SPACE */ 29686 __641: /* THIN SPACE */ 29687 __642: /* HAIR SPACE */ 29688 __643: /* NARROW NO-BREAK SPACE */ 29689 __644: /* MEDIUM MATHEMATICAL SPACE */ 29690 __645: 29691 OK3 = DTRUE 29692 goto __626 29693 29694 __646: 29695 OK3 = DFALSE 29696 goto __626 29697 __626: 29698 ; 29699 29700 if !(OK3 == libc.Bool32(d == OP_HSPACE)) { 29701 goto __647 29702 } 29703 29704 if !(count > 0 && codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSPLUS)) { 29705 goto __648 29706 } 29707 29708 active_count-- // Remove non-match possibility 29709 next_active_state -= 12 29710 __648: 29711 ; 29712 count++ 29713 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29714 goto __649 29715 } 29716 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29717 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29718 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 29719 next_new_state += 12 29720 goto __650 29721 __649: 29722 return -43 29723 __650: 29724 ; 29725 __647: 29726 ; 29727 __625: 29728 ; 29729 goto __89 29730 29731 //----------------------------------------------------------------- 29732 __152: 29733 __153: 29734 __154: 29735 count = 4 29736 goto QS1 29737 29738 __155: 29739 __156: 29740 __157: 29741 count = 0 29742 29743 QS1: 29744 29745 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29746 goto __651 29747 } 29748 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 4 29749 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29750 next_active_state += 12 29751 goto __652 29752 __651: 29753 return -43 29754 __652: 29755 ; 29756 if !(clen > 0) { 29757 goto __653 29758 } 29759 29760 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 29761 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))) { 29762 case DPT_ANY: 29763 goto __655 29764 29765 case DPT_LAMP: 29766 goto __656 29767 29768 case DPT_GC: 29769 goto __657 29770 29771 case DPT_PC: 29772 goto __658 29773 29774 case DPT_SC: 29775 goto __659 29776 29777 case DPT_SCX: 29778 goto __660 29779 29780 // These are specials for combination cases. 29781 29782 case DPT_ALNUM: 29783 goto __661 29784 29785 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29786 // which means that Perl space and POSIX space are now identical. PCRE 29787 // was changed at release 8.34. 29788 29789 case DPT_SPACE: 29790 goto __662 // Perl space 29791 case DPT_PXSPACE: 29792 goto __663 29793 29794 case DPT_WORD: 29795 goto __664 29796 29797 case DPT_CLIST: 29798 goto __665 29799 29800 case DPT_UCNC: 29801 goto __666 29802 29803 case DPT_BIDICL: 29804 goto __667 29805 29806 case DPT_BOOL: 29807 goto __668 29808 29809 // Should never occur, but keep compilers from grumbling. 29810 29811 default: 29812 goto __669 29813 } 29814 goto __654 29815 29816 __655: 29817 OK4 = DTRUE 29818 goto __654 29819 29820 __656: 29821 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) 29822 goto __654 29823 29824 __657: 29825 OK4 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29826 goto __654 29827 29828 __658: 29829 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29830 goto __654 29831 29832 __659: 29833 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29834 goto __654 29835 29836 __660: 29837 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)) 29838 goto __654 29839 29840 // These are specials for combination cases. 29841 29842 __661: 29843 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) 29844 goto __654 29845 29846 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29847 // which means that Perl space and POSIX space are now identical. PCRE 29848 // was changed at release 8.34. 29849 29850 __662: // Perl space 29851 __663: // POSIX space 29852 switch c { 29853 case Tuint32_t('\011'): 29854 goto __671 29855 case Tuint32_t('\040'): 29856 goto __672 29857 case Tuint32_t(uint8('\xa0')): 29858 goto __673 29859 case Tuint32_t(0x1680): 29860 goto __674 /* OGHAM SPACE MARK */ 29861 case Tuint32_t(0x180e): 29862 goto __675 /* MONGOLIAN VOWEL SEPARATOR */ 29863 case Tuint32_t(0x2000): 29864 goto __676 /* EN QUAD */ 29865 case Tuint32_t(0x2001): 29866 goto __677 /* EM QUAD */ 29867 case Tuint32_t(0x2002): 29868 goto __678 /* EN SPACE */ 29869 case Tuint32_t(0x2003): 29870 goto __679 /* EM SPACE */ 29871 case Tuint32_t(0x2004): 29872 goto __680 /* THREE-PER-EM SPACE */ 29873 case Tuint32_t(0x2005): 29874 goto __681 /* FOUR-PER-EM SPACE */ 29875 case Tuint32_t(0x2006): 29876 goto __682 /* SIX-PER-EM SPACE */ 29877 case Tuint32_t(0x2007): 29878 goto __683 /* FIGURE SPACE */ 29879 case Tuint32_t(0x2008): 29880 goto __684 /* PUNCTUATION SPACE */ 29881 case Tuint32_t(0x2009): 29882 goto __685 /* THIN SPACE */ 29883 case Tuint32_t(0x200A): 29884 goto __686 /* HAIR SPACE */ 29885 case Tuint32_t(0x202f): 29886 goto __687 /* NARROW NO-BREAK SPACE */ 29887 case Tuint32_t(0x205f): 29888 goto __688 /* MEDIUM MATHEMATICAL SPACE */ 29889 case Tuint32_t(0x3000): 29890 goto __689 29891 case Tuint32_t('\012'): 29892 goto __690 29893 case Tuint32_t('\013'): 29894 goto __691 29895 case Tuint32_t('\014'): 29896 goto __692 29897 case Tuint32_t('\015'): 29898 goto __693 29899 case Tuint32_t(uint8('\x85')): 29900 goto __694 29901 case Tuint32_t(0x2028): 29902 goto __695 /* LINE SEPARATOR */ 29903 case Tuint32_t(0x2029): 29904 goto __696 29905 29906 default: 29907 goto __697 29908 } 29909 goto __670 29910 29911 __671: 29912 __672: 29913 __673: 29914 __674: /* OGHAM SPACE MARK */ 29915 __675: /* MONGOLIAN VOWEL SEPARATOR */ 29916 __676: /* EN QUAD */ 29917 __677: /* EM QUAD */ 29918 __678: /* EN SPACE */ 29919 __679: /* EM SPACE */ 29920 __680: /* THREE-PER-EM SPACE */ 29921 __681: /* FOUR-PER-EM SPACE */ 29922 __682: /* SIX-PER-EM SPACE */ 29923 __683: /* FIGURE SPACE */ 29924 __684: /* PUNCTUATION SPACE */ 29925 __685: /* THIN SPACE */ 29926 __686: /* HAIR SPACE */ 29927 __687: /* NARROW NO-BREAK SPACE */ 29928 __688: /* MEDIUM MATHEMATICAL SPACE */ 29929 __689: 29930 __690: 29931 __691: 29932 __692: 29933 __693: 29934 __694: 29935 __695: /* LINE SEPARATOR */ 29936 __696: 29937 OK4 = DTRUE 29938 goto __670 29939 29940 __697: 29941 OK4 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_Z) 29942 goto __670 29943 __670: 29944 ; 29945 goto __654 29946 29947 __664: 29948 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')) 29949 goto __654 29950 29951 __665: 29952 cp2 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))*4 29953 __698: 29954 29955 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp2))) { 29956 goto __701 29957 } 29958 OK4 = DFALSE 29959 goto __700 29960 __701: 29961 ; 29962 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp2, 4)))) { 29963 goto __702 29964 } 29965 OK4 = DTRUE 29966 goto __700 29967 __702: 29968 ; 29969 goto __699 29970 __699: 29971 goto __698 29972 goto __700 29973 __700: 29974 ; 29975 goto __654 29976 29977 __666: 29978 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)) 29979 goto __654 29980 29981 __667: 29982 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)))) 29983 goto __654 29984 29985 __668: 29986 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)) 29987 goto __654 29988 29989 // Should never occur, but keep compilers from grumbling. 29990 29991 __669: 29992 OK4 = libc.Bool32(codevalue != OP_PROP) 29993 goto __654 29994 __654: 29995 ; 29996 29997 if !(OK4 == libc.Bool32(d == OP_PROP)) { 29998 goto __703 29999 } 30000 30001 if !(codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSQUERY)) { 30002 goto __704 30003 } 30004 30005 active_count-- // Remove non-match possibility 30006 next_active_state -= 12 30007 __704: 30008 ; 30009 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30010 goto __705 30011 } 30012 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + count 30013 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30014 next_new_state += 12 30015 goto __706 30016 __705: 30017 return -43 30018 __706: 30019 ; 30020 __703: 30021 ; 30022 __653: 30023 ; 30024 goto __89 30025 30026 //----------------------------------------------------------------- 30027 __158: 30028 __159: 30029 __160: 30030 count = 2 30031 goto QS2 30032 30033 __161: 30034 __162: 30035 __163: 30036 count = 0 30037 30038 QS2: 30039 30040 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30041 goto __707 30042 } 30043 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30044 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30045 next_active_state += 12 30046 goto __708 30047 __707: 30048 return -43 30049 __708: 30050 ; 30051 if !(clen > 0) { 30052 goto __709 30053 } 30054 30055 *(*int32)(unsafe.Pointer(bp + 4 /* ncount2 */)) = 0 30056 if !(codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSQUERY)) { 30057 goto __710 30058 } 30059 30060 active_count-- // Remove non-match possibility 30061 next_active_state -= 12 30062 __710: 30063 ; 30064 X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, end_subject, utf, 30065 bp+4) 30066 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30067 goto __711 30068 } 30069 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30070 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30071 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 4)) 30072 next_new_state += 12 30073 goto __712 30074 __711: 30075 return -43 30076 __712: 30077 ; 30078 __709: 30079 ; 30080 goto __89 30081 30082 //----------------------------------------------------------------- 30083 __164: 30084 __165: 30085 __166: 30086 count = 2 30087 goto QS3 30088 30089 __167: 30090 __168: 30091 __169: 30092 count = 0 30093 30094 QS3: 30095 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30096 goto __713 30097 } 30098 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30099 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30100 next_active_state += 12 30101 goto __714 30102 __713: 30103 return -43 30104 __714: 30105 ; 30106 if !(clen > 0) { 30107 goto __715 30108 } 30109 ncount3 = 0 30110 switch c { 30111 case Tuint32_t('\013'): 30112 goto __717 30113 case Tuint32_t('\014'): 30114 goto __718 30115 case Tuint32_t(uint8('\x85')): 30116 goto __719 30117 case Tuint32_t(0x2028): 30118 goto __720 30119 case Tuint32_t(0x2029): 30120 goto __721 30121 30122 case Tuint32_t('\015'): 30123 goto __722 30124 case Tuint32_t('\012'): 30125 goto __723 30126 30127 default: 30128 goto __724 30129 } 30130 goto __716 30131 30132 __717: 30133 __718: 30134 __719: 30135 __720: 30136 __721: 30137 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 30138 goto __725 30139 } 30140 goto __716 30141 __725: 30142 ; 30143 goto ANYNL02 30144 30145 __722: 30146 if !(ptr+uintptr(1) < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 30147 goto __726 30148 } 30149 ncount3 = 1 30150 __726: 30151 ; 30152 // Fall through 30153 30154 ANYNL02: 30155 __723: 30156 if !(codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSQUERY)) { 30157 goto __727 30158 } 30159 30160 active_count-- // Remove non-match possibility 30161 next_active_state -= 12 30162 __727: 30163 ; 30164 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30165 goto __728 30166 } 30167 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30168 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30169 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount3 30170 next_new_state += 12 30171 goto __729 30172 __728: 30173 return -43 30174 __729: 30175 ; 30176 goto __716 30177 30178 __724: 30179 goto __716 30180 __716: 30181 ; 30182 __715: 30183 ; 30184 goto __89 30185 30186 //----------------------------------------------------------------- 30187 __170: 30188 __171: 30189 __172: 30190 count = 2 30191 goto QS4 30192 30193 __173: 30194 __174: 30195 __175: 30196 count = 0 30197 30198 QS4: 30199 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30200 goto __730 30201 } 30202 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30203 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30204 next_active_state += 12 30205 goto __731 30206 __730: 30207 return -43 30208 __731: 30209 ; 30210 if !(clen > 0) { 30211 goto __732 30212 } 30213 30214 switch c { 30215 case Tuint32_t('\012'): 30216 goto __734 30217 case Tuint32_t('\013'): 30218 goto __735 30219 case Tuint32_t('\014'): 30220 goto __736 30221 case Tuint32_t('\015'): 30222 goto __737 30223 case Tuint32_t(uint8('\x85')): 30224 goto __738 30225 case Tuint32_t(0x2028): 30226 goto __739 /* LINE SEPARATOR */ 30227 case Tuint32_t(0x2029): 30228 goto __740 30229 30230 default: 30231 goto __741 30232 } 30233 goto __733 30234 30235 __734: 30236 __735: 30237 __736: 30238 __737: 30239 __738: 30240 __739: /* LINE SEPARATOR */ 30241 __740: 30242 OK5 = DTRUE 30243 goto __733 30244 30245 __741: 30246 OK5 = DFALSE 30247 goto __733 30248 __733: 30249 ; 30250 if !(OK5 == libc.Bool32(d == OP_VSPACE)) { 30251 goto __742 30252 } 30253 30254 if !(codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSQUERY)) { 30255 goto __743 30256 } 30257 30258 active_count-- // Remove non-match possibility 30259 next_active_state -= 12 30260 __743: 30261 ; 30262 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30263 goto __744 30264 } 30265 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30266 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30267 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 30268 next_new_state += 12 30269 goto __745 30270 __744: 30271 return -43 30272 __745: 30273 ; 30274 __742: 30275 ; 30276 __732: 30277 ; 30278 goto __89 30279 30280 //----------------------------------------------------------------- 30281 __176: 30282 __177: 30283 __178: 30284 count = 2 30285 goto QS5 30286 30287 __179: 30288 __180: 30289 __181: 30290 count = 0 30291 30292 QS5: 30293 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30294 goto __746 30295 } 30296 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30297 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30298 next_active_state += 12 30299 goto __747 30300 __746: 30301 return -43 30302 __747: 30303 ; 30304 if !(clen > 0) { 30305 goto __748 30306 } 30307 30308 switch c { 30309 case Tuint32_t('\011'): 30310 goto __750 30311 case Tuint32_t('\040'): 30312 goto __751 30313 case Tuint32_t(uint8('\xa0')): 30314 goto __752 30315 case Tuint32_t(0x1680): 30316 goto __753 /* OGHAM SPACE MARK */ 30317 case Tuint32_t(0x180e): 30318 goto __754 /* MONGOLIAN VOWEL SEPARATOR */ 30319 case Tuint32_t(0x2000): 30320 goto __755 /* EN QUAD */ 30321 case Tuint32_t(0x2001): 30322 goto __756 /* EM QUAD */ 30323 case Tuint32_t(0x2002): 30324 goto __757 /* EN SPACE */ 30325 case Tuint32_t(0x2003): 30326 goto __758 /* EM SPACE */ 30327 case Tuint32_t(0x2004): 30328 goto __759 /* THREE-PER-EM SPACE */ 30329 case Tuint32_t(0x2005): 30330 goto __760 /* FOUR-PER-EM SPACE */ 30331 case Tuint32_t(0x2006): 30332 goto __761 /* SIX-PER-EM SPACE */ 30333 case Tuint32_t(0x2007): 30334 goto __762 /* FIGURE SPACE */ 30335 case Tuint32_t(0x2008): 30336 goto __763 /* PUNCTUATION SPACE */ 30337 case Tuint32_t(0x2009): 30338 goto __764 /* THIN SPACE */ 30339 case Tuint32_t(0x200A): 30340 goto __765 /* HAIR SPACE */ 30341 case Tuint32_t(0x202f): 30342 goto __766 /* NARROW NO-BREAK SPACE */ 30343 case Tuint32_t(0x205f): 30344 goto __767 /* MEDIUM MATHEMATICAL SPACE */ 30345 case Tuint32_t(0x3000): 30346 goto __768 30347 30348 default: 30349 goto __769 30350 } 30351 goto __749 30352 30353 __750: 30354 __751: 30355 __752: 30356 __753: /* OGHAM SPACE MARK */ 30357 __754: /* MONGOLIAN VOWEL SEPARATOR */ 30358 __755: /* EN QUAD */ 30359 __756: /* EM QUAD */ 30360 __757: /* EN SPACE */ 30361 __758: /* EM SPACE */ 30362 __759: /* THREE-PER-EM SPACE */ 30363 __760: /* FOUR-PER-EM SPACE */ 30364 __761: /* SIX-PER-EM SPACE */ 30365 __762: /* FIGURE SPACE */ 30366 __763: /* PUNCTUATION SPACE */ 30367 __764: /* THIN SPACE */ 30368 __765: /* HAIR SPACE */ 30369 __766: /* NARROW NO-BREAK SPACE */ 30370 __767: /* MEDIUM MATHEMATICAL SPACE */ 30371 __768: 30372 OK6 = DTRUE 30373 goto __749 30374 30375 __769: 30376 OK6 = DFALSE 30377 goto __749 30378 __749: 30379 ; 30380 30381 if !(OK6 == libc.Bool32(d == OP_HSPACE)) { 30382 goto __770 30383 } 30384 30385 if !(codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSQUERY)) { 30386 goto __771 30387 } 30388 30389 active_count-- // Remove non-match possibility 30390 next_active_state -= 12 30391 __771: 30392 ; 30393 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30394 goto __772 30395 } 30396 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30397 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30398 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 30399 next_new_state += 12 30400 goto __773 30401 __772: 30402 return -43 30403 __773: 30404 ; 30405 __770: 30406 ; 30407 __748: 30408 ; 30409 goto __89 30410 30411 //----------------------------------------------------------------- 30412 __182: 30413 __183: 30414 __184: 30415 __185: 30416 if !(codevalue != Tuint32_t(DOP_PROP_EXTRA+OP_TYPEEXACT)) { 30417 goto __774 30418 } 30419 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30420 goto __775 30421 } 30422 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 + DIMM2_SIZE + 3 30423 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30424 next_active_state += 12 30425 goto __776 30426 __775: 30427 return -43 30428 __776: 30429 ; 30430 __774: 30431 ; 30432 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30433 if !(clen > 0) { 30434 goto __777 30435 } 30436 30437 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 30438 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4))) { 30439 case DPT_ANY: 30440 goto __779 30441 30442 case DPT_LAMP: 30443 goto __780 30444 30445 case DPT_GC: 30446 goto __781 30447 30448 case DPT_PC: 30449 goto __782 30450 30451 case DPT_SC: 30452 goto __783 30453 30454 case DPT_SCX: 30455 goto __784 30456 30457 // These are specials for combination cases. 30458 30459 case DPT_ALNUM: 30460 goto __785 30461 30462 // Perl space used to exclude VT, but from Perl 5.18 it is included, 30463 // which means that Perl space and POSIX space are now identical. PCRE 30464 // was changed at release 8.34. 30465 30466 case DPT_SPACE: 30467 goto __786 // Perl space 30468 case DPT_PXSPACE: 30469 goto __787 30470 30471 case DPT_WORD: 30472 goto __788 30473 30474 case DPT_CLIST: 30475 goto __789 30476 30477 case DPT_UCNC: 30478 goto __790 30479 30480 case DPT_BIDICL: 30481 goto __791 30482 30483 case DPT_BOOL: 30484 goto __792 30485 30486 // Should never occur, but keep compilers from grumbling. 30487 30488 default: 30489 goto __793 30490 } 30491 goto __778 30492 30493 __779: 30494 OK7 = DTRUE 30495 goto __778 30496 30497 __780: 30498 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) 30499 goto __778 30500 30501 __781: 30502 OK7 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30503 goto __778 30504 30505 __782: 30506 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30507 goto __778 30508 30509 __783: 30510 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30511 goto __778 30512 30513 __784: 30514 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)) 30515 goto __778 30516 30517 // These are specials for combination cases. 30518 30519 __785: 30520 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) 30521 goto __778 30522 30523 // Perl space used to exclude VT, but from Perl 5.18 it is included, 30524 // which means that Perl space and POSIX space are now identical. PCRE 30525 // was changed at release 8.34. 30526 30527 __786: // Perl space 30528 __787: // POSIX space 30529 switch c { 30530 case Tuint32_t('\011'): 30531 goto __795 30532 case Tuint32_t('\040'): 30533 goto __796 30534 case Tuint32_t(uint8('\xa0')): 30535 goto __797 30536 case Tuint32_t(0x1680): 30537 goto __798 /* OGHAM SPACE MARK */ 30538 case Tuint32_t(0x180e): 30539 goto __799 /* MONGOLIAN VOWEL SEPARATOR */ 30540 case Tuint32_t(0x2000): 30541 goto __800 /* EN QUAD */ 30542 case Tuint32_t(0x2001): 30543 goto __801 /* EM QUAD */ 30544 case Tuint32_t(0x2002): 30545 goto __802 /* EN SPACE */ 30546 case Tuint32_t(0x2003): 30547 goto __803 /* EM SPACE */ 30548 case Tuint32_t(0x2004): 30549 goto __804 /* THREE-PER-EM SPACE */ 30550 case Tuint32_t(0x2005): 30551 goto __805 /* FOUR-PER-EM SPACE */ 30552 case Tuint32_t(0x2006): 30553 goto __806 /* SIX-PER-EM SPACE */ 30554 case Tuint32_t(0x2007): 30555 goto __807 /* FIGURE SPACE */ 30556 case Tuint32_t(0x2008): 30557 goto __808 /* PUNCTUATION SPACE */ 30558 case Tuint32_t(0x2009): 30559 goto __809 /* THIN SPACE */ 30560 case Tuint32_t(0x200A): 30561 goto __810 /* HAIR SPACE */ 30562 case Tuint32_t(0x202f): 30563 goto __811 /* NARROW NO-BREAK SPACE */ 30564 case Tuint32_t(0x205f): 30565 goto __812 /* MEDIUM MATHEMATICAL SPACE */ 30566 case Tuint32_t(0x3000): 30567 goto __813 30568 case Tuint32_t('\012'): 30569 goto __814 30570 case Tuint32_t('\013'): 30571 goto __815 30572 case Tuint32_t('\014'): 30573 goto __816 30574 case Tuint32_t('\015'): 30575 goto __817 30576 case Tuint32_t(uint8('\x85')): 30577 goto __818 30578 case Tuint32_t(0x2028): 30579 goto __819 /* LINE SEPARATOR */ 30580 case Tuint32_t(0x2029): 30581 goto __820 30582 30583 default: 30584 goto __821 30585 } 30586 goto __794 30587 30588 __795: 30589 __796: 30590 __797: 30591 __798: /* OGHAM SPACE MARK */ 30592 __799: /* MONGOLIAN VOWEL SEPARATOR */ 30593 __800: /* EN QUAD */ 30594 __801: /* EM QUAD */ 30595 __802: /* EN SPACE */ 30596 __803: /* EM SPACE */ 30597 __804: /* THREE-PER-EM SPACE */ 30598 __805: /* FOUR-PER-EM SPACE */ 30599 __806: /* SIX-PER-EM SPACE */ 30600 __807: /* FIGURE SPACE */ 30601 __808: /* PUNCTUATION SPACE */ 30602 __809: /* THIN SPACE */ 30603 __810: /* HAIR SPACE */ 30604 __811: /* NARROW NO-BREAK SPACE */ 30605 __812: /* MEDIUM MATHEMATICAL SPACE */ 30606 __813: 30607 __814: 30608 __815: 30609 __816: 30610 __817: 30611 __818: 30612 __819: /* LINE SEPARATOR */ 30613 __820: 30614 OK7 = DTRUE 30615 goto __794 30616 30617 __821: 30618 OK7 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_Z) 30619 goto __794 30620 __794: 30621 ; 30622 goto __778 30623 30624 __788: 30625 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')) 30626 goto __778 30627 30628 __789: 30629 cp3 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))*4 30630 __822: 30631 30632 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp3))) { 30633 goto __825 30634 } 30635 OK7 = DFALSE 30636 goto __824 30637 __825: 30638 ; 30639 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp3, 4)))) { 30640 goto __826 30641 } 30642 OK7 = DTRUE 30643 goto __824 30644 __826: 30645 ; 30646 goto __823 30647 __823: 30648 goto __822 30649 goto __824 30650 __824: 30651 ; 30652 goto __778 30653 30654 __790: 30655 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)) 30656 goto __778 30657 30658 __791: 30659 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)))) 30660 goto __778 30661 30662 __792: 30663 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)) 30664 goto __778 30665 30666 // Should never occur, but keep compilers from grumbling. 30667 30668 __793: 30669 OK7 = libc.Bool32(codevalue != OP_PROP) 30670 goto __778 30671 __778: 30672 ; 30673 30674 if !(OK7 == libc.Bool32(d == OP_PROP)) { 30675 goto __827 30676 } 30677 30678 if !(codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSUPTO)) { 30679 goto __828 30680 } 30681 30682 active_count-- // Remove non-match possibility 30683 next_active_state -= 12 30684 __828: 30685 ; 30686 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30687 goto __829 30688 } 30689 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30690 goto __831 30691 } 30692 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 + DIMM2_SIZE + 3 30693 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30694 next_new_state += 12 30695 goto __832 30696 __831: 30697 return -43 30698 __832: 30699 ; 30700 goto __830 30701 __829: 30702 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30703 goto __833 30704 } 30705 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 30706 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 30707 next_new_state += 12 30708 goto __834 30709 __833: 30710 return -43 30711 __834: 30712 ; 30713 __830: 30714 ; 30715 __827: 30716 ; 30717 __777: 30718 ; 30719 goto __89 30720 30721 //----------------------------------------------------------------- 30722 __186: 30723 __187: 30724 __188: 30725 __189: 30726 if !(codevalue != Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEEXACT)) { 30727 goto __835 30728 } 30729 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30730 goto __836 30731 } 30732 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 30733 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30734 next_active_state += 12 30735 goto __837 30736 __836: 30737 return -43 30738 __837: 30739 ; 30740 __835: 30741 ; 30742 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30743 if !(clen > 0) { 30744 goto __838 30745 } 30746 30747 *(*int32)(unsafe.Pointer(bp + 8 /* ncount4 */)) = 0 30748 if !(codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSUPTO)) { 30749 goto __839 30750 } 30751 30752 active_count-- // Remove non-match possibility 30753 next_active_state -= 12 30754 __839: 30755 ; 30756 nptr = X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, end_subject, utf, 30757 bp+8) 30758 if !(nptr >= end_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 30759 goto __840 30760 } 30761 reset_could_continue = DTRUE 30762 __840: 30763 ; 30764 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30765 goto __841 30766 } 30767 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30768 goto __843 30769 } 30770 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 30771 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30772 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 8)) 30773 next_new_state += 12 30774 goto __844 30775 __843: 30776 return -43 30777 __844: 30778 ; 30779 goto __842 30780 __841: 30781 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30782 goto __845 30783 } 30784 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 30785 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 30786 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 8)) 30787 next_new_state += 12 30788 goto __846 30789 __845: 30790 return -43 30791 __846: 30792 ; 30793 __842: 30794 ; 30795 __838: 30796 ; 30797 goto __89 30798 30799 //----------------------------------------------------------------- 30800 __190: 30801 __191: 30802 __192: 30803 __193: 30804 if !(codevalue != Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEEXACT)) { 30805 goto __847 30806 } 30807 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30808 goto __848 30809 } 30810 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 30811 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30812 next_active_state += 12 30813 goto __849 30814 __848: 30815 return -43 30816 __849: 30817 ; 30818 __847: 30819 ; 30820 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30821 if !(clen > 0) { 30822 goto __850 30823 } 30824 ncount5 = 0 30825 switch c { 30826 case Tuint32_t('\013'): 30827 goto __852 30828 case Tuint32_t('\014'): 30829 goto __853 30830 case Tuint32_t(uint8('\x85')): 30831 goto __854 30832 case Tuint32_t(0x2028): 30833 goto __855 30834 case Tuint32_t(0x2029): 30835 goto __856 30836 30837 case Tuint32_t('\015'): 30838 goto __857 30839 case Tuint32_t('\012'): 30840 goto __858 30841 30842 default: 30843 goto __859 30844 } 30845 goto __851 30846 30847 __852: 30848 __853: 30849 __854: 30850 __855: 30851 __856: 30852 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 30853 goto __860 30854 } 30855 goto __851 30856 __860: 30857 ; 30858 goto ANYNL03 30859 30860 __857: 30861 if !(ptr+uintptr(1) < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 30862 goto __861 30863 } 30864 ncount5 = 1 30865 __861: 30866 ; 30867 // Fall through 30868 30869 ANYNL03: 30870 __858: 30871 if !(codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSUPTO)) { 30872 goto __862 30873 } 30874 30875 active_count-- // Remove non-match possibility 30876 next_active_state -= 12 30877 __862: 30878 ; 30879 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30880 goto __863 30881 } 30882 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30883 goto __865 30884 } 30885 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 30886 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30887 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount5 30888 next_new_state += 12 30889 goto __866 30890 __865: 30891 return -43 30892 __866: 30893 ; 30894 goto __864 30895 __863: 30896 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30897 goto __867 30898 } 30899 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 30900 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 30901 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount5 30902 next_new_state += 12 30903 goto __868 30904 __867: 30905 return -43 30906 __868: 30907 ; 30908 __864: 30909 ; 30910 goto __851 30911 30912 __859: 30913 goto __851 30914 __851: 30915 ; 30916 __850: 30917 ; 30918 goto __89 30919 30920 //----------------------------------------------------------------- 30921 __194: 30922 __195: 30923 __196: 30924 __197: 30925 if !(codevalue != Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEEXACT)) { 30926 goto __869 30927 } 30928 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30929 goto __870 30930 } 30931 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 30932 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30933 next_active_state += 12 30934 goto __871 30935 __870: 30936 return -43 30937 __871: 30938 ; 30939 __869: 30940 ; 30941 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30942 if !(clen > 0) { 30943 goto __872 30944 } 30945 30946 switch c { 30947 case Tuint32_t('\012'): 30948 goto __874 30949 case Tuint32_t('\013'): 30950 goto __875 30951 case Tuint32_t('\014'): 30952 goto __876 30953 case Tuint32_t('\015'): 30954 goto __877 30955 case Tuint32_t(uint8('\x85')): 30956 goto __878 30957 case Tuint32_t(0x2028): 30958 goto __879 /* LINE SEPARATOR */ 30959 case Tuint32_t(0x2029): 30960 goto __880 30961 30962 default: 30963 goto __881 30964 } 30965 goto __873 30966 30967 __874: 30968 __875: 30969 __876: 30970 __877: 30971 __878: 30972 __879: /* LINE SEPARATOR */ 30973 __880: 30974 OK8 = DTRUE 30975 goto __873 30976 30977 __881: 30978 OK8 = DFALSE 30979 __873: 30980 ; 30981 30982 if !(OK8 == libc.Bool32(d == OP_VSPACE)) { 30983 goto __882 30984 } 30985 30986 if !(codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSUPTO)) { 30987 goto __883 30988 } 30989 30990 active_count-- // Remove non-match possibility 30991 next_active_state -= 12 30992 __883: 30993 ; 30994 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30995 goto __884 30996 } 30997 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30998 goto __886 30999 } 31000 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 31001 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31002 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31003 next_new_state += 12 31004 goto __887 31005 __886: 31006 return -43 31007 __887: 31008 ; 31009 goto __885 31010 __884: 31011 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31012 goto __888 31013 } 31014 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 31015 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 31016 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31017 next_new_state += 12 31018 goto __889 31019 __888: 31020 return -43 31021 __889: 31022 ; 31023 __885: 31024 ; 31025 __882: 31026 ; 31027 __872: 31028 ; 31029 goto __89 31030 31031 //----------------------------------------------------------------- 31032 __198: 31033 __199: 31034 __200: 31035 __201: 31036 if !(codevalue != Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEEXACT)) { 31037 goto __890 31038 } 31039 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31040 goto __891 31041 } 31042 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 31043 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31044 next_active_state += 12 31045 goto __892 31046 __891: 31047 return -43 31048 __892: 31049 ; 31050 __890: 31051 ; 31052 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 31053 if !(clen > 0) { 31054 goto __893 31055 } 31056 31057 switch c { 31058 case Tuint32_t('\011'): 31059 goto __895 31060 case Tuint32_t('\040'): 31061 goto __896 31062 case Tuint32_t(uint8('\xa0')): 31063 goto __897 31064 case Tuint32_t(0x1680): 31065 goto __898 /* OGHAM SPACE MARK */ 31066 case Tuint32_t(0x180e): 31067 goto __899 /* MONGOLIAN VOWEL SEPARATOR */ 31068 case Tuint32_t(0x2000): 31069 goto __900 /* EN QUAD */ 31070 case Tuint32_t(0x2001): 31071 goto __901 /* EM QUAD */ 31072 case Tuint32_t(0x2002): 31073 goto __902 /* EN SPACE */ 31074 case Tuint32_t(0x2003): 31075 goto __903 /* EM SPACE */ 31076 case Tuint32_t(0x2004): 31077 goto __904 /* THREE-PER-EM SPACE */ 31078 case Tuint32_t(0x2005): 31079 goto __905 /* FOUR-PER-EM SPACE */ 31080 case Tuint32_t(0x2006): 31081 goto __906 /* SIX-PER-EM SPACE */ 31082 case Tuint32_t(0x2007): 31083 goto __907 /* FIGURE SPACE */ 31084 case Tuint32_t(0x2008): 31085 goto __908 /* PUNCTUATION SPACE */ 31086 case Tuint32_t(0x2009): 31087 goto __909 /* THIN SPACE */ 31088 case Tuint32_t(0x200A): 31089 goto __910 /* HAIR SPACE */ 31090 case Tuint32_t(0x202f): 31091 goto __911 /* NARROW NO-BREAK SPACE */ 31092 case Tuint32_t(0x205f): 31093 goto __912 /* MEDIUM MATHEMATICAL SPACE */ 31094 case Tuint32_t(0x3000): 31095 goto __913 31096 31097 default: 31098 goto __914 31099 } 31100 goto __894 31101 31102 __895: 31103 __896: 31104 __897: 31105 __898: /* OGHAM SPACE MARK */ 31106 __899: /* MONGOLIAN VOWEL SEPARATOR */ 31107 __900: /* EN QUAD */ 31108 __901: /* EM QUAD */ 31109 __902: /* EN SPACE */ 31110 __903: /* EM SPACE */ 31111 __904: /* THREE-PER-EM SPACE */ 31112 __905: /* FOUR-PER-EM SPACE */ 31113 __906: /* SIX-PER-EM SPACE */ 31114 __907: /* FIGURE SPACE */ 31115 __908: /* PUNCTUATION SPACE */ 31116 __909: /* THIN SPACE */ 31117 __910: /* HAIR SPACE */ 31118 __911: /* NARROW NO-BREAK SPACE */ 31119 __912: /* MEDIUM MATHEMATICAL SPACE */ 31120 __913: 31121 OK9 = DTRUE 31122 goto __894 31123 31124 __914: 31125 OK9 = DFALSE 31126 goto __894 31127 __894: 31128 ; 31129 31130 if !(OK9 == libc.Bool32(d == OP_HSPACE)) { 31131 goto __915 31132 } 31133 31134 if !(codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSUPTO)) { 31135 goto __916 31136 } 31137 31138 active_count-- // Remove non-match possibility 31139 next_active_state -= 12 31140 __916: 31141 ; 31142 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 31143 goto __917 31144 } 31145 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31146 goto __919 31147 } 31148 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 31149 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31150 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31151 next_new_state += 12 31152 goto __920 31153 __919: 31154 return -43 31155 __920: 31156 ; 31157 goto __918 31158 __917: 31159 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31160 goto __921 31161 } 31162 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 31163 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 31164 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31165 next_new_state += 12 31166 goto __922 31167 __921: 31168 return -43 31169 __922: 31170 ; 31171 __918: 31172 ; 31173 __915: 31174 ; 31175 __893: 31176 ; 31177 goto __89 31178 31179 // ========================================================================== 31180 // These opcodes are followed by a character that is usually compared 31181 // to the current subject character; it is loaded into d. We still get 31182 // here even if there is no subject character, because in some cases zero 31183 // repetitions are permitted. 31184 31185 //----------------------------------------------------------------- 31186 __202: 31187 if !(clen > 0 && c == d) { 31188 goto __923 31189 } 31190 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31191 goto __924 31192 } 31193 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31194 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31195 next_new_state += 12 31196 goto __925 31197 __924: 31198 return -43 31199 __925: 31200 ; 31201 __923: 31202 ; 31203 goto __89 31204 31205 //----------------------------------------------------------------- 31206 __203: 31207 if !(clen == 0) { 31208 goto __926 31209 } 31210 goto __89 31211 __926: 31212 ; 31213 31214 if !(utf_or_ucp != 0) { 31215 goto __927 31216 } 31217 31218 if !(c == d) { 31219 goto __929 31220 } 31221 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31222 goto __931 31223 } 31224 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31225 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31226 next_new_state += 12 31227 goto __932 31228 __931: 31229 return -43 31230 __932: 31231 ; 31232 goto __930 31233 __929: 31234 31235 if !(c < Tuint32_t(128)) { 31236 goto __933 31237 } 31238 othercase = uint32(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(c)))) 31239 goto __934 31240 __933: 31241 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) 31242 __934: 31243 ; 31244 if !(d == othercase) { 31245 goto __935 31246 } 31247 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31248 goto __936 31249 } 31250 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31251 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31252 next_new_state += 12 31253 goto __937 31254 __936: 31255 return -43 31256 __937: 31257 ; 31258 __935: 31259 ; 31260 __930: 31261 ; 31262 goto __928 31263 __927: 31264 /* Not UTF or UCP mode */ 31265 31266 if !(int32(*(*Tuint8_t)(unsafe.Pointer(lcc + uintptr(c)))) == int32(*(*Tuint8_t)(unsafe.Pointer(lcc + uintptr(d))))) { 31267 goto __938 31268 } 31269 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31270 goto __939 31271 } 31272 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 2 31273 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31274 next_new_state += 12 31275 goto __940 31276 __939: 31277 return -43 31278 __940: 31279 ; 31280 __938: 31281 ; 31282 __928: 31283 ; 31284 goto __89 31285 31286 //----------------------------------------------------------------- 31287 // This is a tricky one because it can match more than one character. 31288 // Find out how many characters to skip, and then set up a negative state 31289 // to wait for them to pass before continuing. 31290 31291 __204: 31292 if !(clen > 0) { 31293 goto __941 31294 } 31295 31296 *(*int32)(unsafe.Pointer(bp + 12 /* ncount6 */)) = 0 31297 nptr1 = X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, 31298 end_subject, utf, bp+12) 31299 if !(nptr1 >= end_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 31300 goto __942 31301 } 31302 reset_could_continue = DTRUE 31303 __942: 31304 ; 31305 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31306 goto __943 31307 } 31308 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 31309 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31310 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 12)) 31311 next_new_state += 12 31312 goto __944 31313 __943: 31314 return -43 31315 __944: 31316 ; 31317 __941: 31318 ; 31319 goto __89 31320 31321 //----------------------------------------------------------------- 31322 // This is a tricky like EXTUNI because it too can match more than one 31323 // character (when CR is followed by LF). In this case, set up a negative 31324 // state to wait for one character to pass before continuing. 31325 31326 __205: 31327 if !(clen > 0) { 31328 goto __945 31329 } 31330 switch c { 31331 case Tuint32_t('\013'): 31332 goto __947 31333 case Tuint32_t('\014'): 31334 goto __948 31335 case Tuint32_t(uint8('\x85')): 31336 goto __949 31337 case Tuint32_t(0x2028): 31338 goto __950 31339 case Tuint32_t(0x2029): 31340 goto __951 31341 // Fall through 31342 31343 case Tuint32_t('\012'): 31344 goto __952 31345 31346 case Tuint32_t('\015'): 31347 goto __953 31348 } 31349 goto __946 31350 31351 __947: 31352 __948: 31353 __949: 31354 __950: 31355 __951: 31356 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 31357 goto __954 31358 } 31359 goto __946 31360 __954: 31361 ; 31362 // Fall through 31363 31364 __952: 31365 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31366 goto __955 31367 } 31368 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31369 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31370 next_new_state += 12 31371 goto __956 31372 __955: 31373 return -43 31374 __956: 31375 ; 31376 goto __946 31377 31378 __953: 31379 if !(ptr+uintptr(1) >= end_subject) { 31380 goto __957 31381 } 31382 31383 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31384 goto __959 31385 } 31386 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31387 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31388 next_new_state += 12 31389 goto __960 31390 __959: 31391 return -43 31392 __960: 31393 ; 31394 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 31395 goto __961 31396 } 31397 reset_could_continue = DTRUE 31398 __961: 31399 ; 31400 goto __958 31401 __957: 31402 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 31403 goto __962 31404 } 31405 31406 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31407 goto __964 31408 } 31409 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 31410 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31411 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 1 31412 next_new_state += 12 31413 goto __965 31414 __964: 31415 return -43 31416 __965: 31417 ; 31418 goto __963 31419 __962: 31420 31421 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31422 goto __966 31423 } 31424 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31425 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31426 next_new_state += 12 31427 goto __967 31428 __966: 31429 return -43 31430 __967: 31431 ; 31432 __963: 31433 ; 31434 __958: 31435 ; 31436 goto __946 31437 __946: 31438 ; 31439 __945: 31440 ; 31441 goto __89 31442 31443 //----------------------------------------------------------------- 31444 __206: 31445 if !(clen > 0) { 31446 goto __968 31447 } 31448 switch c { 31449 case Tuint32_t('\012'): 31450 goto __970 31451 case Tuint32_t('\013'): 31452 goto __971 31453 case Tuint32_t('\014'): 31454 goto __972 31455 case Tuint32_t('\015'): 31456 goto __973 31457 case Tuint32_t(uint8('\x85')): 31458 goto __974 31459 case Tuint32_t(0x2028): 31460 goto __975 /* LINE SEPARATOR */ 31461 case Tuint32_t(0x2029): 31462 goto __976 31463 31464 default: 31465 goto __977 31466 } 31467 goto __969 31468 31469 __970: 31470 __971: 31471 __972: 31472 __973: 31473 __974: 31474 __975: /* LINE SEPARATOR */ 31475 __976: 31476 goto __969 31477 31478 __977: 31479 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31480 goto __978 31481 } 31482 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31483 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31484 next_new_state += 12 31485 goto __979 31486 __978: 31487 return -43 31488 __979: 31489 ; 31490 goto __969 31491 __969: 31492 ; 31493 __968: 31494 ; 31495 goto __89 31496 31497 //----------------------------------------------------------------- 31498 __207: 31499 if !(clen > 0) { 31500 goto __980 31501 } 31502 switch c { 31503 case Tuint32_t('\012'): 31504 goto __982 31505 case Tuint32_t('\013'): 31506 goto __983 31507 case Tuint32_t('\014'): 31508 goto __984 31509 case Tuint32_t('\015'): 31510 goto __985 31511 case Tuint32_t(uint8('\x85')): 31512 goto __986 31513 case Tuint32_t(0x2028): 31514 goto __987 /* LINE SEPARATOR */ 31515 case Tuint32_t(0x2029): 31516 goto __988 31517 31518 default: 31519 goto __989 31520 } 31521 goto __981 31522 31523 __982: 31524 __983: 31525 __984: 31526 __985: 31527 __986: 31528 __987: /* LINE SEPARATOR */ 31529 __988: 31530 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31531 goto __990 31532 } 31533 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31534 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31535 next_new_state += 12 31536 goto __991 31537 __990: 31538 return -43 31539 __991: 31540 ; 31541 goto __981 31542 31543 __989: 31544 goto __981 31545 __981: 31546 ; 31547 __980: 31548 ; 31549 goto __89 31550 31551 //----------------------------------------------------------------- 31552 __208: 31553 if !(clen > 0) { 31554 goto __992 31555 } 31556 switch c { 31557 case Tuint32_t('\011'): 31558 goto __994 31559 case Tuint32_t('\040'): 31560 goto __995 31561 case Tuint32_t(uint8('\xa0')): 31562 goto __996 31563 case Tuint32_t(0x1680): 31564 goto __997 /* OGHAM SPACE MARK */ 31565 case Tuint32_t(0x180e): 31566 goto __998 /* MONGOLIAN VOWEL SEPARATOR */ 31567 case Tuint32_t(0x2000): 31568 goto __999 /* EN QUAD */ 31569 case Tuint32_t(0x2001): 31570 goto __1000 /* EM QUAD */ 31571 case Tuint32_t(0x2002): 31572 goto __1001 /* EN SPACE */ 31573 case Tuint32_t(0x2003): 31574 goto __1002 /* EM SPACE */ 31575 case Tuint32_t(0x2004): 31576 goto __1003 /* THREE-PER-EM SPACE */ 31577 case Tuint32_t(0x2005): 31578 goto __1004 /* FOUR-PER-EM SPACE */ 31579 case Tuint32_t(0x2006): 31580 goto __1005 /* SIX-PER-EM SPACE */ 31581 case Tuint32_t(0x2007): 31582 goto __1006 /* FIGURE SPACE */ 31583 case Tuint32_t(0x2008): 31584 goto __1007 /* PUNCTUATION SPACE */ 31585 case Tuint32_t(0x2009): 31586 goto __1008 /* THIN SPACE */ 31587 case Tuint32_t(0x200A): 31588 goto __1009 /* HAIR SPACE */ 31589 case Tuint32_t(0x202f): 31590 goto __1010 /* NARROW NO-BREAK SPACE */ 31591 case Tuint32_t(0x205f): 31592 goto __1011 /* MEDIUM MATHEMATICAL SPACE */ 31593 case Tuint32_t(0x3000): 31594 goto __1012 31595 31596 default: 31597 goto __1013 31598 } 31599 goto __993 31600 31601 __994: 31602 __995: 31603 __996: 31604 __997: /* OGHAM SPACE MARK */ 31605 __998: /* MONGOLIAN VOWEL SEPARATOR */ 31606 __999: /* EN QUAD */ 31607 __1000: /* EM QUAD */ 31608 __1001: /* EN SPACE */ 31609 __1002: /* EM SPACE */ 31610 __1003: /* THREE-PER-EM SPACE */ 31611 __1004: /* FOUR-PER-EM SPACE */ 31612 __1005: /* SIX-PER-EM SPACE */ 31613 __1006: /* FIGURE SPACE */ 31614 __1007: /* PUNCTUATION SPACE */ 31615 __1008: /* THIN SPACE */ 31616 __1009: /* HAIR SPACE */ 31617 __1010: /* NARROW NO-BREAK SPACE */ 31618 __1011: /* MEDIUM MATHEMATICAL SPACE */ 31619 __1012: 31620 goto __993 31621 31622 __1013: 31623 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31624 goto __1014 31625 } 31626 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31627 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31628 next_new_state += 12 31629 goto __1015 31630 __1014: 31631 return -43 31632 __1015: 31633 ; 31634 goto __993 31635 __993: 31636 ; 31637 __992: 31638 ; 31639 goto __89 31640 31641 //----------------------------------------------------------------- 31642 __209: 31643 if !(clen > 0) { 31644 goto __1016 31645 } 31646 switch c { 31647 case Tuint32_t('\011'): 31648 goto __1018 31649 case Tuint32_t('\040'): 31650 goto __1019 31651 case Tuint32_t(uint8('\xa0')): 31652 goto __1020 31653 case Tuint32_t(0x1680): 31654 goto __1021 /* OGHAM SPACE MARK */ 31655 case Tuint32_t(0x180e): 31656 goto __1022 /* MONGOLIAN VOWEL SEPARATOR */ 31657 case Tuint32_t(0x2000): 31658 goto __1023 /* EN QUAD */ 31659 case Tuint32_t(0x2001): 31660 goto __1024 /* EM QUAD */ 31661 case Tuint32_t(0x2002): 31662 goto __1025 /* EN SPACE */ 31663 case Tuint32_t(0x2003): 31664 goto __1026 /* EM SPACE */ 31665 case Tuint32_t(0x2004): 31666 goto __1027 /* THREE-PER-EM SPACE */ 31667 case Tuint32_t(0x2005): 31668 goto __1028 /* FOUR-PER-EM SPACE */ 31669 case Tuint32_t(0x2006): 31670 goto __1029 /* SIX-PER-EM SPACE */ 31671 case Tuint32_t(0x2007): 31672 goto __1030 /* FIGURE SPACE */ 31673 case Tuint32_t(0x2008): 31674 goto __1031 /* PUNCTUATION SPACE */ 31675 case Tuint32_t(0x2009): 31676 goto __1032 /* THIN SPACE */ 31677 case Tuint32_t(0x200A): 31678 goto __1033 /* HAIR SPACE */ 31679 case Tuint32_t(0x202f): 31680 goto __1034 /* NARROW NO-BREAK SPACE */ 31681 case Tuint32_t(0x205f): 31682 goto __1035 /* MEDIUM MATHEMATICAL SPACE */ 31683 case Tuint32_t(0x3000): 31684 goto __1036 31685 31686 default: 31687 goto __1037 31688 } 31689 goto __1017 31690 31691 __1018: 31692 __1019: 31693 __1020: 31694 __1021: /* OGHAM SPACE MARK */ 31695 __1022: /* MONGOLIAN VOWEL SEPARATOR */ 31696 __1023: /* EN QUAD */ 31697 __1024: /* EM QUAD */ 31698 __1025: /* EN SPACE */ 31699 __1026: /* EM SPACE */ 31700 __1027: /* THREE-PER-EM SPACE */ 31701 __1028: /* FOUR-PER-EM SPACE */ 31702 __1029: /* SIX-PER-EM SPACE */ 31703 __1030: /* FIGURE SPACE */ 31704 __1031: /* PUNCTUATION SPACE */ 31705 __1032: /* THIN SPACE */ 31706 __1033: /* HAIR SPACE */ 31707 __1034: /* NARROW NO-BREAK SPACE */ 31708 __1035: /* MEDIUM MATHEMATICAL SPACE */ 31709 __1036: 31710 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31711 goto __1038 31712 } 31713 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31714 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31715 next_new_state += 12 31716 goto __1039 31717 __1038: 31718 return -43 31719 __1039: 31720 ; 31721 goto __1017 31722 31723 __1037: 31724 goto __1017 31725 __1017: 31726 ; 31727 __1016: 31728 ; 31729 goto __89 31730 31731 //----------------------------------------------------------------- 31732 // Match a negated single character casefully. 31733 31734 __210: 31735 if !(clen > 0 && c != d) { 31736 goto __1040 31737 } 31738 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31739 goto __1041 31740 } 31741 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31742 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31743 next_new_state += 12 31744 goto __1042 31745 __1041: 31746 return -43 31747 __1042: 31748 ; 31749 __1040: 31750 ; 31751 goto __89 31752 31753 //----------------------------------------------------------------- 31754 // Match a negated single character caselessly. 31755 31756 __211: 31757 if !(clen > 0) { 31758 goto __1043 31759 } 31760 31761 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31762 goto __1044 31763 } 31764 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) 31765 goto __1045 31766 __1044: 31767 otherd = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31768 __1045: 31769 ; 31770 if !(c != d && c != otherd) { 31771 goto __1046 31772 } 31773 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31774 goto __1047 31775 } 31776 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31777 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31778 next_new_state += 12 31779 goto __1048 31780 __1047: 31781 return -43 31782 __1048: 31783 ; 31784 __1046: 31785 ; 31786 __1043: 31787 ; 31788 goto __89 31789 31790 //----------------------------------------------------------------- 31791 __212: 31792 __213: 31793 __214: 31794 __215: 31795 __216: 31796 __217: 31797 caseless = DTRUE 31798 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 31799 31800 // Fall through 31801 __218: 31802 __219: 31803 __220: 31804 __221: 31805 __222: 31806 __223: 31807 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 31808 if !(count > 0) { 31809 goto __1049 31810 } 31811 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31812 goto __1050 31813 } 31814 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 31815 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31816 next_active_state += 12 31817 goto __1051 31818 __1050: 31819 return -43 31820 __1051: 31821 ; 31822 __1049: 31823 ; 31824 if !(clen > 0) { 31825 goto __1052 31826 } 31827 31828 otherd1 = DNOTACHAR 31829 if !(caseless != 0) { 31830 goto __1053 31831 } 31832 31833 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31834 goto __1054 31835 } 31836 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) 31837 goto __1055 31838 __1054: 31839 otherd1 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31840 __1055: 31841 ; 31842 __1053: 31843 ; 31844 if !(libc.Bool32(c == d || c == otherd1) == libc.Bool32(codevalue < OP_NOTSTAR)) { 31845 goto __1056 31846 } 31847 31848 if !(count > 0 && (codevalue == OP_POSPLUS || codevalue == OP_NOTPOSPLUS)) { 31849 goto __1057 31850 } 31851 31852 active_count-- // Remove non-match possibility 31853 next_active_state -= 12 31854 __1057: 31855 ; 31856 count++ 31857 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31858 goto __1058 31859 } 31860 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 31861 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 31862 next_new_state += 12 31863 goto __1059 31864 __1058: 31865 return -43 31866 __1059: 31867 ; 31868 __1056: 31869 ; 31870 __1052: 31871 ; 31872 goto __89 31873 31874 //----------------------------------------------------------------- 31875 __224: 31876 __225: 31877 __226: 31878 __227: 31879 __228: 31880 __229: 31881 caseless = DTRUE 31882 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 31883 // Fall through 31884 __230: 31885 __231: 31886 __232: 31887 __233: 31888 __234: 31889 __235: 31890 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31891 goto __1060 31892 } 31893 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 31894 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31895 next_active_state += 12 31896 goto __1061 31897 __1060: 31898 return -43 31899 __1061: 31900 ; 31901 if !(clen > 0) { 31902 goto __1062 31903 } 31904 31905 otherd2 = DNOTACHAR 31906 if !(caseless != 0) { 31907 goto __1063 31908 } 31909 31910 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31911 goto __1064 31912 } 31913 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) 31914 goto __1065 31915 __1064: 31916 otherd2 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31917 __1065: 31918 ; 31919 __1063: 31920 ; 31921 if !(libc.Bool32(c == d || c == otherd2) == libc.Bool32(codevalue < OP_NOTSTAR)) { 31922 goto __1066 31923 } 31924 31925 if !(codevalue == OP_POSQUERY || codevalue == OP_NOTPOSQUERY) { 31926 goto __1067 31927 } 31928 31929 active_count-- // Remove non-match possibility 31930 next_active_state -= 12 31931 __1067: 31932 ; 31933 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31934 goto __1068 31935 } 31936 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31937 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31938 next_new_state += 12 31939 goto __1069 31940 __1068: 31941 return -43 31942 __1069: 31943 ; 31944 __1066: 31945 ; 31946 __1062: 31947 ; 31948 goto __89 31949 31950 //----------------------------------------------------------------- 31951 __236: 31952 __237: 31953 __238: 31954 __239: 31955 __240: 31956 __241: 31957 caseless = DTRUE 31958 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 31959 // Fall through 31960 __242: 31961 __243: 31962 __244: 31963 __245: 31964 __246: 31965 __247: 31966 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31967 goto __1070 31968 } 31969 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 31970 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31971 next_active_state += 12 31972 goto __1071 31973 __1070: 31974 return -43 31975 __1071: 31976 ; 31977 if !(clen > 0) { 31978 goto __1072 31979 } 31980 31981 otherd3 = DNOTACHAR 31982 if !(caseless != 0) { 31983 goto __1073 31984 } 31985 31986 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31987 goto __1074 31988 } 31989 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) 31990 goto __1075 31991 __1074: 31992 otherd3 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31993 __1075: 31994 ; 31995 __1073: 31996 ; 31997 if !(libc.Bool32(c == d || c == otherd3) == libc.Bool32(codevalue < OP_NOTSTAR)) { 31998 goto __1076 31999 } 32000 32001 if !(codevalue == OP_POSSTAR || codevalue == OP_NOTPOSSTAR) { 32002 goto __1077 32003 } 32004 32005 active_count-- // Remove non-match possibility 32006 next_active_state -= 12 32007 __1077: 32008 ; 32009 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32010 goto __1078 32011 } 32012 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32013 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32014 next_new_state += 12 32015 goto __1079 32016 __1078: 32017 return -43 32018 __1079: 32019 ; 32020 __1076: 32021 ; 32022 __1072: 32023 ; 32024 goto __89 32025 32026 //----------------------------------------------------------------- 32027 __248: 32028 __249: 32029 caseless = DTRUE 32030 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 32031 // Fall through 32032 __250: 32033 __251: 32034 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 32035 if !(clen > 0) { 32036 goto __1080 32037 } 32038 32039 otherd4 = DNOTACHAR 32040 if !(caseless != 0) { 32041 goto __1081 32042 } 32043 32044 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 32045 goto __1082 32046 } 32047 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) 32048 goto __1083 32049 __1082: 32050 otherd4 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 32051 __1083: 32052 ; 32053 __1081: 32054 ; 32055 if !(libc.Bool32(c == d || c == otherd4) == libc.Bool32(codevalue < OP_NOTSTAR)) { 32056 goto __1084 32057 } 32058 32059 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 32060 goto __1085 32061 } 32062 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32063 goto __1087 32064 } 32065 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 + DIMM2_SIZE 32066 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32067 next_new_state += 12 32068 goto __1088 32069 __1087: 32070 return -43 32071 __1088: 32072 ; 32073 goto __1086 32074 __1085: 32075 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32076 goto __1089 32077 } 32078 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32079 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32080 next_new_state += 12 32081 goto __1090 32082 __1089: 32083 return -43 32084 __1090: 32085 ; 32086 __1086: 32087 ; 32088 __1084: 32089 ; 32090 __1080: 32091 ; 32092 goto __89 32093 32094 //----------------------------------------------------------------- 32095 __252: 32096 __253: 32097 __254: 32098 __255: 32099 __256: 32100 __257: 32101 caseless = DTRUE 32102 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 32103 // Fall through 32104 __258: 32105 __259: 32106 __260: 32107 __261: 32108 __262: 32109 __263: 32110 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32111 goto __1091 32112 } 32113 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 + DIMM2_SIZE 32114 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32115 next_active_state += 12 32116 goto __1092 32117 __1091: 32118 return -43 32119 __1092: 32120 ; 32121 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 32122 if !(clen > 0) { 32123 goto __1093 32124 } 32125 32126 otherd5 = DNOTACHAR 32127 if !(caseless != 0) { 32128 goto __1094 32129 } 32130 32131 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 32132 goto __1095 32133 } 32134 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) 32135 goto __1096 32136 __1095: 32137 otherd5 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 32138 __1096: 32139 ; 32140 __1094: 32141 ; 32142 if !(libc.Bool32(c == d || c == otherd5) == libc.Bool32(codevalue < OP_NOTSTAR)) { 32143 goto __1097 32144 } 32145 32146 if !(codevalue == OP_POSUPTO || codevalue == OP_NOTPOSUPTO) { 32147 goto __1098 32148 } 32149 32150 active_count-- // Remove non-match possibility 32151 next_active_state -= 12 32152 __1098: 32153 ; 32154 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 32155 goto __1099 32156 } 32157 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32158 goto __1101 32159 } 32160 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 + DIMM2_SIZE 32161 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32162 next_new_state += 12 32163 goto __1102 32164 __1101: 32165 return -43 32166 __1102: 32167 ; 32168 goto __1100 32169 __1099: 32170 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32171 goto __1103 32172 } 32173 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32174 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32175 next_new_state += 12 32176 goto __1104 32177 __1103: 32178 return -43 32179 __1104: 32180 ; 32181 __1100: 32182 ; 32183 __1097: 32184 ; 32185 __1093: 32186 ; 32187 goto __89 32188 32189 // ========================================================================== 32190 // These are the class-handling opcodes 32191 32192 __264: 32193 __265: 32194 __266: 32195 32196 isinclass = DFALSE 32197 32198 // For a simple class, there is always just a 32-byte table, and we 32199 // can set isinclass from it. 32200 32201 if !(codevalue != OP_XCLASS) { 32202 goto __1105 32203 } 32204 32205 ecode = code + uintptr(1) + uintptr(uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 32206 if !(clen > 0) { 32207 goto __1107 32208 } 32209 32210 if c > Tuint32_t(255) { 32211 isinclass = libc.Bool32(codevalue == OP_NCLASS) 32212 } else { 32213 isinclass = libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(code + uintptr(1) + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0)) 32214 } 32215 __1107: 32216 ; 32217 goto __1106 32218 __1105: 32219 32220 ecode = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32221 if !(clen > 0) { 32222 goto __1108 32223 } 32224 isinclass = X_pcre2_xclass_8(tls, c, code+uintptr(1)+uintptr(DLINK_SIZE), utf) 32225 __1108: 32226 ; 32227 __1106: 32228 ; 32229 32230 // At this point, isinclass is set for all kinds of class, and ecode 32231 // points to the byte after the end of the class. If there is a 32232 // quantifier, this is where it will be. 32233 32234 next_state_offset = int32((int64(ecode) - int64(start_code)) / 1) 32235 32236 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) { 32237 case OP_CRSTAR: 32238 goto __1110 32239 case OP_CRMINSTAR: 32240 goto __1111 32241 case OP_CRPOSSTAR: 32242 goto __1112 32243 32244 case OP_CRPLUS: 32245 goto __1113 32246 case OP_CRMINPLUS: 32247 goto __1114 32248 case OP_CRPOSPLUS: 32249 goto __1115 32250 32251 case OP_CRQUERY: 32252 goto __1116 32253 case OP_CRMINQUERY: 32254 goto __1117 32255 case OP_CRPOSQUERY: 32256 goto __1118 32257 32258 case OP_CRRANGE: 32259 goto __1119 32260 case OP_CRMINRANGE: 32261 goto __1120 32262 case OP_CRPOSRANGE: 32263 goto __1121 32264 32265 default: 32266 goto __1122 32267 } 32268 goto __1109 32269 32270 __1110: 32271 __1111: 32272 __1112: 32273 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32274 goto __1123 32275 } 32276 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 32277 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32278 next_active_state += 12 32279 goto __1124 32280 __1123: 32281 return -43 32282 __1124: 32283 ; 32284 if !(isinclass != 0) { 32285 goto __1125 32286 } 32287 32288 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSSTAR) { 32289 goto __1126 32290 } 32291 32292 active_count-- // Remove non-match possibility 32293 next_active_state -= 12 32294 __1126: 32295 ; 32296 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32297 goto __1127 32298 } 32299 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32300 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32301 next_new_state += 12 32302 goto __1128 32303 __1127: 32304 return -43 32305 __1128: 32306 ; 32307 __1125: 32308 ; 32309 goto __1109 32310 32311 __1113: 32312 __1114: 32313 __1115: 32314 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 32315 if !(count > 0) { 32316 goto __1129 32317 } 32318 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32319 goto __1130 32320 } 32321 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 32322 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32323 next_active_state += 12 32324 goto __1131 32325 __1130: 32326 return -43 32327 __1131: 32328 ; 32329 __1129: 32330 ; 32331 if !(isinclass != 0) { 32332 goto __1132 32333 } 32334 32335 if !(count > 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSPLUS) { 32336 goto __1133 32337 } 32338 32339 active_count-- // Remove non-match possibility 32340 next_active_state -= 12 32341 __1133: 32342 ; 32343 count++ 32344 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32345 goto __1134 32346 } 32347 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32348 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32349 next_new_state += 12 32350 goto __1135 32351 __1134: 32352 return -43 32353 __1135: 32354 ; 32355 __1132: 32356 ; 32357 goto __1109 32358 32359 __1116: 32360 __1117: 32361 __1118: 32362 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32363 goto __1136 32364 } 32365 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 32366 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32367 next_active_state += 12 32368 goto __1137 32369 __1136: 32370 return -43 32371 __1137: 32372 ; 32373 if !(isinclass != 0) { 32374 goto __1138 32375 } 32376 32377 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSQUERY) { 32378 goto __1139 32379 } 32380 32381 active_count-- // Remove non-match possibility 32382 next_active_state -= 12 32383 __1139: 32384 ; 32385 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32386 goto __1140 32387 } 32388 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset + 1 32389 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32390 next_new_state += 12 32391 goto __1141 32392 __1140: 32393 return -43 32394 __1141: 32395 ; 32396 __1138: 32397 ; 32398 goto __1109 32399 32400 __1119: 32401 __1120: 32402 __1121: 32403 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 32404 if !(count >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 2)))))) { 32405 goto __1142 32406 } 32407 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32408 goto __1143 32409 } 32410 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 + 2*DIMM2_SIZE 32411 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32412 next_active_state += 12 32413 goto __1144 32414 __1143: 32415 return -43 32416 __1144: 32417 ; 32418 __1142: 32419 ; 32420 if !(isinclass != 0) { 32421 goto __1145 32422 } 32423 32424 max = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 4))))) 32425 32426 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)))))) { 32427 goto __1146 32428 } 32429 32430 active_count-- // Remove non-match possibility 32431 next_active_state -= 12 32432 __1146: 32433 ; 32434 32435 if !(libc.PreIncInt32(&count, 1) >= max && max != 0) { 32436 goto __1147 32437 } /* Max 0 => no limit */ 32438 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32439 goto __1149 32440 } 32441 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset + 1 + 2*DIMM2_SIZE 32442 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32443 next_new_state += 12 32444 goto __1150 32445 __1149: 32446 return -43 32447 __1150: 32448 ; 32449 goto __1148 32450 __1147: 32451 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32452 goto __1151 32453 } 32454 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32455 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32456 next_new_state += 12 32457 goto __1152 32458 __1151: 32459 return -43 32460 __1152: 32461 ; 32462 __1148: 32463 ; 32464 __1145: 32465 ; 32466 goto __1109 32467 32468 __1122: 32469 if !(isinclass != 0) { 32470 goto __1153 32471 } 32472 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32473 goto __1154 32474 } 32475 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset 32476 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32477 next_new_state += 12 32478 goto __1155 32479 __1154: 32480 return -43 32481 __1155: 32482 ; 32483 __1153: 32484 ; 32485 goto __1109 32486 __1109: 32487 ; 32488 32489 goto __89 32490 32491 // ========================================================================== 32492 // These are the opcodes for fancy brackets of various kinds. We have 32493 // to use recursion in order to handle them. The "always failing" assertion 32494 // (?!) is optimised to OP_FAIL when compiling, so we have to support that, 32495 // though the other "backtracking verbs" are not supported. 32496 32497 __267: 32498 forced_fail++ // Count FAILs for multiple states 32499 goto __89 32500 32501 __268: 32502 __269: 32503 __270: 32504 __271: 32505 32506 endasscode = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32507 *(*uintptr)(unsafe.Pointer(bp + 16 /* rws */)) = RWS 32508 32509 if !(uint64((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Ffree) < uint64(DRWS_RSIZE)+uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) { 32510 goto __1156 32511 } 32512 32513 rc = more_workspace(tls, bp+16, uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), mb) 32514 if !(rc != 0) { 32515 goto __1157 32516 } 32517 return rc 32518 __1157: 32519 ; 32520 RWS = *(*uintptr)(unsafe.Pointer(bp + 16 /* rws */)) 32521 __1156: 32522 ; 32523 32524 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 32525 local_workspace = local_offsets + uintptr(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0)))))*4 32526 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + 12)) -= uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32527 32528 __1158: 32529 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode))) == OP_ALT) { 32530 goto __1159 32531 } 32532 endasscode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode + 2))))) 32533 goto __1158 32534 __1159: 32535 ; 32536 32537 rc = internal_dfa_match(tls, 32538 mb, // static match data 32539 code, // this subexpression's code 32540 ptr, // where we currently are 32541 Tsize_t((int64(ptr)-int64(start_subject))/1), 32542 local_offsets, // offset vector 32543 uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))/(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), 32544 local_workspace, // workspace vector 32545 DRWS_RSIZE, // size of same 32546 rlevel, // function recursion level 32547 RWS) // recursion workspace 32548 32549 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + 12)) += uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32550 32551 if !(rc < 0 && rc != -1) { 32552 goto __1160 32553 } 32554 return rc 32555 __1160: 32556 ; 32557 if !(libc.Bool32(rc >= 0) == libc.Bool32(codevalue == OP_ASSERT || codevalue == OP_ASSERTBACK)) { 32558 goto __1161 32559 } 32560 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32561 goto __1162 32562 } 32563 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(endasscode+uintptr(DLINK_SIZE)+uintptr(1)) - int64(start_code)) / 1) 32564 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32565 next_active_state += 12 32566 goto __1163 32567 __1162: 32568 return -43 32569 __1163: 32570 ; 32571 __1161: 32572 ; 32573 32574 goto __89 32575 32576 //----------------------------------------------------------------- 32577 __272: 32578 __273: 32579 32580 codelink = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32581 32582 // Because of the way auto-callout works during compile, a callout item 32583 // is inserted between OP_COND and an assertion condition. This does not 32584 // happen for the other conditions. 32585 32586 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_CALLOUT || 32587 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_CALLOUT_STR) { 32588 goto __1164 32589 } 32590 32591 rrc = do_callout(tls, code, offsets, current_subject, ptr, mb, 32592 uint64(1+DLINK_SIZE), bp+24) 32593 if !(rrc < 0) { 32594 goto __1165 32595 } 32596 return rrc 32597 __1165: 32598 ; // Abandon 32599 if !(rrc > 0) { 32600 goto __1166 32601 } 32602 goto __89 32603 __1166: 32604 ; // Fail this thread 32605 code += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 24 /* callout_length */))) // Skip callout data 32606 __1164: 32607 ; 32608 32609 condcode = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) 32610 32611 // Back reference conditions and duplicate named recursion conditions 32612 // are not supported 32613 32614 if !(int32(condcode) == OP_CREF || int32(condcode) == OP_DNCREF || int32(condcode) == OP_DNRREF) { 32615 goto __1167 32616 } 32617 return -40 32618 __1167: 32619 ; 32620 32621 // The DEFINE condition is always false, and the assertion (?!) is 32622 // converted to OP_FAIL. 32623 32624 if !(int32(condcode) == OP_FALSE || int32(condcode) == OP_FAIL) { 32625 goto __1168 32626 } 32627 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32628 goto __1170 32629 } 32630 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + codelink + DLINK_SIZE + 1 32631 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32632 next_active_state += 12 32633 goto __1171 32634 __1170: 32635 return -43 32636 __1171: 32637 ; 32638 goto __1169 32639 __1168: 32640 if !(int32(condcode) == OP_TRUE) { 32641 goto __1172 32642 } 32643 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32644 goto __1174 32645 } 32646 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + DLINK_SIZE + 2 32647 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32648 next_active_state += 12 32649 goto __1175 32650 __1174: 32651 return -43 32652 __1175: 32653 ; 32654 goto __1173 32655 __1172: 32656 if !(int32(condcode) == OP_RREF) { 32657 goto __1176 32658 } 32659 32660 value = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 32661 if !(value != uint32(DRREF_ANY)) { 32662 goto __1178 32663 } 32664 return -40 32665 __1178: 32666 ; 32667 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive != uintptr(0)) { 32668 goto __1179 32669 } 32670 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32671 goto __1181 32672 } 32673 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + DLINK_SIZE + 2 + DIMM2_SIZE 32674 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32675 next_active_state += 12 32676 goto __1182 32677 __1181: 32678 return -43 32679 __1182: 32680 ; 32681 goto __1180 32682 __1179: 32683 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32684 goto __1183 32685 } 32686 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + codelink + DLINK_SIZE + 1 32687 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32688 next_active_state += 12 32689 goto __1184 32690 __1183: 32691 return -43 32692 __1184: 32693 ; 32694 __1180: 32695 ; 32696 goto __1177 32697 __1176: 32698 32699 asscode = code + uintptr(DLINK_SIZE) + uintptr(1) 32700 endasscode1 = asscode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(asscode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(asscode + 2))))) 32701 *(*uintptr)(unsafe.Pointer(bp + 32 /* rws1 */)) = RWS 32702 32703 if !(uint64((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).Ffree) < uint64(DRWS_RSIZE)+uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) { 32704 goto __1185 32705 } 32706 32707 rc1 = more_workspace(tls, bp+32, uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), mb) 32708 if !(rc1 != 0) { 32709 goto __1186 32710 } 32711 return rc1 32712 __1186: 32713 ; 32714 RWS = *(*uintptr)(unsafe.Pointer(bp + 32 /* rws1 */)) 32715 __1185: 32716 ; 32717 32718 local_offsets1 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).Ffree)*4 32719 local_workspace1 = local_offsets1 + uintptr(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0)))))*4 32720 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)) + 12)) -= uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32721 32722 __1187: 32723 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode1))) == OP_ALT) { 32724 goto __1188 32725 } 32726 endasscode1 += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode1 + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode1 + 2))))) 32727 goto __1187 32728 __1188: 32729 ; 32730 32731 rc1 = internal_dfa_match(tls, 32732 mb, // fixed match data 32733 asscode, // this subexpression's code 32734 ptr, // where we currently are 32735 Tsize_t((int64(ptr)-int64(start_subject))/1), 32736 local_offsets1, // offset vector 32737 uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))/(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), 32738 local_workspace1, // workspace vector 32739 DRWS_RSIZE, // size of same 32740 rlevel, // function recursion level 32741 RWS) // recursion workspace 32742 32743 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)) + 12)) += uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32744 32745 if !(rc1 < 0 && rc1 != -1) { 32746 goto __1189 32747 } 32748 return rc1 32749 __1189: 32750 ; 32751 if !(libc.Bool32(rc1 >= 0) == libc.Bool32(int32(condcode) == OP_ASSERT || int32(condcode) == OP_ASSERTBACK)) { 32752 goto __1190 32753 } 32754 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32755 goto __1192 32756 } 32757 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(endasscode1+uintptr(DLINK_SIZE)+uintptr(1)) - int64(start_code)) / 1) 32758 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32759 next_active_state += 12 32760 goto __1193 32761 __1192: 32762 return -43 32763 __1193: 32764 ; 32765 goto __1191 32766 __1190: 32767 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32768 goto __1194 32769 } 32770 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + codelink + DLINK_SIZE + 1 32771 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32772 next_active_state += 12 32773 goto __1195 32774 __1194: 32775 return -43 32776 __1195: 32777 ; 32778 __1191: 32779 ; 32780 __1177: 32781 ; 32782 __1173: 32783 ; 32784 __1169: 32785 ; 32786 32787 goto __89 32788 32789 //----------------------------------------------------------------- 32790 __274: 32791 32792 *(*uintptr)(unsafe.Pointer(bp + 40 /* rws2 */)) = RWS 32793 callpat = start_code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32794 if callpat == (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code { 32795 recno = uint32(0) 32796 } else { 32797 recno = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(callpat + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(callpat + 4)))) 32798 } 32799 32800 if !(uint64((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)))).Ffree) < uint64(DRWS_RSIZE)+uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) { 32801 goto __1196 32802 } 32803 32804 rc2 = more_workspace(tls, bp+40, uint32(uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), mb) 32805 if !(rc2 != 0) { 32806 goto __1197 32807 } 32808 return rc2 32809 __1197: 32810 ; 32811 RWS = *(*uintptr)(unsafe.Pointer(bp + 40 /* rws2 */)) 32812 __1196: 32813 ; 32814 32815 local_offsets2 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)))).Ffree)*4 32816 local_workspace2 = local_offsets2 + uintptr(uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0)))))*4 32817 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)) + 12)) -= uint32(uint64(DRWS_RSIZE) + uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32818 32819 // Check for repeating a recursion without advancing the subject 32820 // pointer. This should catch convoluted mutual recursions. (Some simple 32821 // cases are caught at compile time.) 32822 32823 ri = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive 32824 __1198: 32825 if !(ri != uintptr(0)) { 32826 goto __1200 32827 } 32828 if !(recno == (*Tdfa_recursion_info)(unsafe.Pointer(ri)).Fgroup_num && ptr == (*Tdfa_recursion_info)(unsafe.Pointer(ri)).Fsubject_position) { 32829 goto __1201 32830 } 32831 return -52 32832 __1201: 32833 ; 32834 goto __1199 32835 __1199: 32836 ri = (*Tdfa_recursion_info)(unsafe.Pointer(ri)).Fprevrec 32837 goto __1198 32838 goto __1200 32839 __1200: 32840 ; 32841 32842 // Remember this recursion and where we started it so as to 32843 // catch infinite loops. 32844 32845 (*Tdfa_recursion_info)(unsafe.Pointer(bp + 48 /* &new_recursive */)).Fgroup_num = recno 32846 (*Tdfa_recursion_info)(unsafe.Pointer(bp + 48 /* &new_recursive */)).Fsubject_position = ptr 32847 (*Tdfa_recursion_info)(unsafe.Pointer(bp + 48 /* &new_recursive */)).Fprevrec = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive 32848 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive = bp + 48 /* &new_recursive */ 32849 32850 rc2 = internal_dfa_match(tls, 32851 mb, // fixed match data 32852 callpat, // this subexpression's code 32853 ptr, // where we currently are 32854 Tsize_t((int64(ptr)-int64(start_subject))/1), 32855 local_offsets2, // offset vector 32856 uint32(uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))/(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), 32857 local_workspace2, // workspace vector 32858 DRWS_RSIZE, // size of same 32859 rlevel, // function recursion level 32860 RWS) // recursion workspace 32861 32862 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)) + 12)) += uint32(uint64(DRWS_RSIZE) + uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32863 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive = (*Tdfa_recursion_info)(unsafe.Pointer(bp + 48 /* &new_recursive */)).Fprevrec // Done this recursion 32864 32865 // Ran out of internal offsets 32866 32867 if !(rc2 == 0) { 32868 goto __1202 32869 } 32870 return -39 32871 __1202: 32872 ; 32873 32874 // For each successful matched substring, set up the next state with a 32875 // count of characters to skip before trying it. Note that the count is in 32876 // characters, not bytes. 32877 32878 if !(rc2 > 0) { 32879 goto __1203 32880 } 32881 32882 rc2 = rc2*2 - 2 32883 __1205: 32884 if !(rc2 >= 0) { 32885 goto __1207 32886 } 32887 32888 charcount = *(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2+1)*8)) - *(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2)*8)) 32889 if !(utf != 0) { 32890 goto __1208 32891 } 32892 32893 p = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2)*8))) 32894 pp = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2+1)*8))) 32895 __1209: 32896 if !(p < pp) { 32897 goto __1210 32898 } 32899 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))&0xc0 == 0x80) { 32900 goto __1211 32901 } 32902 charcount-- 32903 __1211: 32904 ; 32905 goto __1209 32906 __1210: 32907 ; 32908 __1208: 32909 ; 32910 if !(charcount > uint64(0)) { 32911 goto __1212 32912 } 32913 32914 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32915 goto __1214 32916 } 32917 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + DLINK_SIZE + 1) 32918 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32919 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount - uint64(1)) 32920 next_new_state += 12 32921 goto __1215 32922 __1214: 32923 return -43 32924 __1215: 32925 ; 32926 goto __1213 32927 __1212: 32928 32929 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32930 goto __1216 32931 } 32932 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + DLINK_SIZE + 1 32933 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32934 next_active_state += 12 32935 goto __1217 32936 __1216: 32937 return -43 32938 __1217: 32939 ; 32940 __1213: 32941 ; 32942 goto __1206 32943 __1206: 32944 rc2 = rc2 - 2 32945 goto __1205 32946 goto __1207 32947 __1207: 32948 ; 32949 goto __1204 32950 __1203: 32951 if !(rc2 != -1) { 32952 goto __1218 32953 } 32954 return rc2 32955 __1218: 32956 ; 32957 __1204: 32958 ; 32959 32960 goto __89 32961 32962 //----------------------------------------------------------------- 32963 __275: 32964 __276: 32965 __277: 32966 __278: 32967 __279: 32968 32969 local_ptr = ptr 32970 *(*uintptr)(unsafe.Pointer(bp + 72 /* rws3 */)) = RWS 32971 32972 if !(uint64((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 72)))).Ffree) < uint64(DRWS_RSIZE)+uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) { 32973 goto __1219 32974 } 32975 32976 rc3 = more_workspace(tls, bp+72, uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), mb) 32977 if !(rc3 != 0) { 32978 goto __1220 32979 } 32980 return rc3 32981 __1220: 32982 ; 32983 RWS = *(*uintptr)(unsafe.Pointer(bp + 72 /* rws3 */)) 32984 __1219: 32985 ; 32986 32987 local_offsets3 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 72)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 72)))).Ffree)*4 32988 local_workspace3 = local_offsets3 + uintptr(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0)))))*4 32989 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 72)) + 12)) -= uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32990 32991 if !(codevalue == OP_BRAPOSZERO) { 32992 goto __1221 32993 } 32994 32995 allow_zero = DTRUE 32996 codevalue = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&code, 1)))) // Codevalue will be one of above BRAs 32997 goto __1222 32998 __1221: 32999 allow_zero = DFALSE 33000 __1222: 33001 ; 33002 33003 // Loop to match the subpattern as many times as possible as if it were 33004 // a complete pattern. 33005 33006 matched_count = uint64(0) 33007 __1223: 33008 ; 33009 33010 rc3 = internal_dfa_match(tls, 33011 mb, // fixed match data 33012 code, // this subexpression's code 33013 local_ptr, // where we currently are 33014 Tsize_t((int64(ptr)-int64(start_subject))/1), 33015 local_offsets3, // offset vector 33016 uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))/(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), 33017 local_workspace3, // workspace vector 33018 DRWS_RSIZE, // size of same 33019 rlevel, // function recursion level 33020 RWS) // recursion workspace 33021 33022 // Failed to match 33023 33024 if !(rc3 < 0) { 33025 goto __1226 33026 } 33027 33028 if !(rc3 != -1) { 33029 goto __1227 33030 } 33031 return rc3 33032 __1227: 33033 ; 33034 goto __1225 33035 __1226: 33036 ; 33037 33038 // Matched: break the loop if zero characters matched. 33039 33040 charcount1 = *(*Tsize_t)(unsafe.Pointer(local_offsets3 + 1*8)) - *(*Tsize_t)(unsafe.Pointer(local_offsets3)) 33041 if !(charcount1 == uint64(0)) { 33042 goto __1228 33043 } 33044 goto __1225 33045 __1228: 33046 ; 33047 local_ptr += TPCRE2_SPTR8(charcount1) // Advance temporary position ptr 33048 goto __1224 33049 __1224: 33050 matched_count++ 33051 goto __1223 33052 goto __1225 33053 __1225: 33054 ; 33055 33056 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 72)) + 12)) += uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 33057 33058 // At this point we have matched the subpattern matched_count 33059 // times, and local_ptr is pointing to the character after the end of the 33060 // last match. 33061 33062 if !(matched_count > uint64(0) || allow_zero != 0) { 33063 goto __1229 33064 } 33065 33066 end_subpattern = code 33067 33068 __1230: 33069 end_subpattern += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern + 2))))) 33070 goto __1231 33071 __1231: 33072 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern))) == OP_ALT { 33073 goto __1230 33074 } 33075 goto __1232 33076 __1232: 33077 ; 33078 next_state_offset1 = int32((int64(end_subpattern)-int64(start_code))/1 + int64(DLINK_SIZE) + int64(1)) 33079 33080 // Optimization: if there are no more active states, and there 33081 // are no new states yet set up, then skip over the subject string 33082 // right here, to save looping. Otherwise, set up the new state to swing 33083 // into action when the end of the matched substring is reached. 33084 33085 if !(i+1 >= active_count && new_count == 0) { 33086 goto __1233 33087 } 33088 33089 ptr = local_ptr 33090 clen = 0 33091 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33092 goto __1235 33093 } 33094 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset1 33095 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33096 next_new_state += 12 33097 goto __1236 33098 __1235: 33099 return -43 33100 __1236: 33101 ; 33102 goto __1234 33103 __1233: 33104 33105 p1 = ptr 33106 pp1 = local_ptr 33107 charcount1 = Tsize_t((int64(pp1) - int64(p1)) / 1) 33108 if !(utf != 0) { 33109 goto __1237 33110 } 33111 __1238: 33112 if !(p1 < pp1) { 33113 goto __1239 33114 } 33115 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))))&0xc0 == 0x80) { 33116 goto __1240 33117 } 33118 charcount1-- 33119 __1240: 33120 ; 33121 goto __1238 33122 __1239: 33123 ; 33124 __1237: 33125 ; 33126 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33127 goto __1241 33128 } 33129 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -next_state_offset1 33130 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33131 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount1 - uint64(1)) 33132 next_new_state += 12 33133 goto __1242 33134 __1241: 33135 return -43 33136 __1242: 33137 ; 33138 __1234: 33139 ; 33140 __1229: 33141 ; 33142 33143 goto __89 33144 33145 //----------------------------------------------------------------- 33146 __280: 33147 33148 *(*uintptr)(unsafe.Pointer(bp + 80 /* rws4 */)) = RWS 33149 33150 if !(uint64((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 80)))).Ffree) < uint64(DRWS_RSIZE)+uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) { 33151 goto __1243 33152 } 33153 33154 rc4 = more_workspace(tls, bp+80, uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), mb) 33155 if !(rc4 != 0) { 33156 goto __1244 33157 } 33158 return rc4 33159 __1244: 33160 ; 33161 RWS = *(*uintptr)(unsafe.Pointer(bp + 80 /* rws4 */)) 33162 __1243: 33163 ; 33164 33165 local_offsets4 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 80)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 80)))).Ffree)*4 33166 local_workspace4 = local_offsets4 + uintptr(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0)))))*4 33167 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 80)) + 12)) -= uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 33168 33169 rc4 = internal_dfa_match(tls, 33170 mb, // fixed match data 33171 code, // this subexpression's code 33172 ptr, // where we currently are 33173 Tsize_t((int64(ptr)-int64(start_subject))/1), 33174 local_offsets4, // offset vector 33175 uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))/(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), 33176 local_workspace4, // workspace vector 33177 DRWS_RSIZE, // size of same 33178 rlevel, // function recursion level 33179 RWS) // recursion workspace 33180 33181 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 80)) + 12)) += uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 33182 33183 if !(rc4 >= 0) { 33184 goto __1245 33185 } 33186 33187 end_subpattern1 = code 33188 charcount2 = *(*Tsize_t)(unsafe.Pointer(local_offsets4 + 1*8)) - *(*Tsize_t)(unsafe.Pointer(local_offsets4)) 33189 33190 __1247: 33191 end_subpattern1 += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 2))))) 33192 goto __1248 33193 __1248: 33194 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1))) == OP_ALT { 33195 goto __1247 33196 } 33197 goto __1249 33198 __1249: 33199 ; 33200 next_state_offset2 = int32((int64(end_subpattern1)-int64(start_code))/1 + int64(DLINK_SIZE) + int64(1)) 33201 33202 // If the end of this subpattern is KETRMAX or KETRMIN, we must 33203 // arrange for the repeat state also to be added to the relevant list. 33204 // Calculate the offset, or set -1 for no repeat. 33205 33206 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1))) == OP_KETRMAX || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1))) == OP_KETRMIN { 33207 repeat_state_offset = int32((int64(end_subpattern1)-int64(start_code))/1 - int64(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 2)))))) 33208 } else { 33209 repeat_state_offset = -1 33210 } 33211 33212 // If we have matched an empty string, add the next state at the 33213 // current character pointer. This is important so that the duplicate 33214 // checking kicks in, which is what breaks infinite loops that match an 33215 // empty string. 33216 33217 if !(charcount2 == uint64(0)) { 33218 goto __1250 33219 } 33220 33221 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 33222 goto __1252 33223 } 33224 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset2 33225 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 33226 next_active_state += 12 33227 goto __1253 33228 __1252: 33229 return -43 33230 __1253: 33231 ; 33232 goto __1251 33233 __1250: 33234 if !(i+1 >= active_count && new_count == 0) { 33235 goto __1254 33236 } 33237 33238 ptr += TPCRE2_SPTR8(charcount2) 33239 clen = 0 33240 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33241 goto __1256 33242 } 33243 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset2 33244 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33245 next_new_state += 12 33246 goto __1257 33247 __1256: 33248 return -43 33249 __1257: 33250 ; 33251 33252 // If we are adding a repeat state at the new character position, 33253 // we must fudge things so that it is the only current state. 33254 // Otherwise, it might be a duplicate of one we processed before, and 33255 // that would cause it to be skipped. 33256 33257 if !(repeat_state_offset >= 0) { 33258 goto __1258 33259 } 33260 33261 next_active_state = active_states 33262 active_count = 0 33263 i = -1 33264 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 33265 goto __1259 33266 } 33267 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = repeat_state_offset 33268 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 33269 next_active_state += 12 33270 goto __1260 33271 __1259: 33272 return -43 33273 __1260: 33274 ; 33275 __1258: 33276 ; 33277 goto __1255 33278 __1254: 33279 33280 if !(utf != 0) { 33281 goto __1261 33282 } 33283 33284 p2 = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets4))) 33285 pp2 = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets4 + 1*8))) 33286 __1262: 33287 if !(p2 < pp2) { 33288 goto __1263 33289 } 33290 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p2, 1))))&0xc0 == 0x80) { 33291 goto __1264 33292 } 33293 charcount2-- 33294 __1264: 33295 ; 33296 goto __1262 33297 __1263: 33298 ; 33299 __1261: 33300 ; 33301 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33302 goto __1265 33303 } 33304 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -next_state_offset2 33305 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33306 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount2 - uint64(1)) 33307 next_new_state += 12 33308 goto __1266 33309 __1265: 33310 return -43 33311 __1266: 33312 ; 33313 if !(repeat_state_offset >= 0) { 33314 goto __1267 33315 } 33316 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33317 goto __1268 33318 } 33319 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -repeat_state_offset 33320 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33321 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount2 - uint64(1)) 33322 next_new_state += 12 33323 goto __1269 33324 __1268: 33325 return -43 33326 __1269: 33327 ; 33328 __1267: 33329 ; 33330 __1255: 33331 ; 33332 __1251: 33333 ; 33334 goto __1246 33335 __1245: 33336 if !(rc4 != -1) { 33337 goto __1270 33338 } 33339 return rc4 33340 __1270: 33341 ; 33342 __1246: 33343 ; 33344 33345 goto __89 33346 33347 // ========================================================================== 33348 // Handle callouts 33349 33350 __281: 33351 __282: 33352 33353 rrc = do_callout(tls, code, offsets, current_subject, ptr, mb, uint64(0), 33354 bp+88) 33355 if !(rrc < 0) { 33356 goto __1271 33357 } 33358 return rrc 33359 __1271: 33360 ; // Abandon 33361 if !(rrc == 0) { 33362 goto __1272 33363 } 33364 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 33365 goto __1273 33366 } 33367 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + int32(*(*Tsize_t)(unsafe.Pointer(bp + 88))) 33368 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 33369 next_active_state += 12 33370 goto __1274 33371 __1273: 33372 return -43 33373 __1274: 33374 ; 33375 __1272: 33376 ; 33377 33378 goto __89 33379 33380 // ========================================================================== 33381 __283: // Unsupported opcode 33382 return -42 33383 __89: 33384 ; 33385 33386 NEXT_ACTIVE_STATE: 33387 goto __51 33388 33389 goto __51 33390 __51: 33391 i++ 33392 goto __50 33393 goto __52 33394 __52: 33395 ; // End of loop scanning active states 33396 33397 // We have finished the processing at the current subject character. If no 33398 // new states have been set for the next character, we have found all the 33399 // matches that we are going to find. If partial matching has been requested, 33400 // check for appropriate conditions. 33401 // 33402 // The "forced_ fail" variable counts the number of (*F) encountered for the 33403 // character. If it is equal to the original active_count (saved in 33404 // workspace[1]) it means that (*F) was found on every active state. In this 33405 // case we don't want to give a partial match. 33406 // 33407 // The "could_continue" variable is true if a state could have continued but 33408 // for the fact that the end of the subject was reached. 33409 33410 if !(new_count <= 0) { 33411 goto __1275 33412 } 33413 33414 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) || 33415 (*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))) { 33416 goto __1276 33417 } 33418 match_count = -2 33419 __1276: 33420 ; 33421 goto __37 // Exit from loop along the subject string 33422 __1275: 33423 ; 33424 33425 // One or more states are active for the next character. 33426 33427 ptr += TPCRE2_SPTR8(clen) // Advance to next subject character 33428 goto __36 33429 __36: 33430 goto __35 33431 goto __37 33432 __37: 33433 ; // Loop to move along the subject string 33434 33435 // Control gets here from "break" a few lines above. If we have a match and 33436 // PCRE2_ENDANCHORED is set, the match fails. 33437 33438 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) { 33439 goto __1277 33440 } 33441 match_count = -1 33442 __1277: 33443 ; 33444 33445 return match_count 33446 } 33447 33448 // ************************************************ 33449 // 33450 // Match a pattern using the DFA algorithm * 33451 // 33452 33453 // This function matches a compiled pattern to a subject string, using the 33454 // alternate matching algorithm that finds all matches at once. 33455 // 33456 // Arguments: 33457 // code points to the compiled pattern 33458 // subject subject string 33459 // length length of subject string 33460 // startoffset where to start matching in the subject 33461 // options option bits 33462 // match_data points to a match data structure 33463 // gcontext points to a match context 33464 // workspace pointer to workspace 33465 // wscount size of workspace 33466 // 33467 // Returns: > 0 => number of match offset pairs placed in offsets 33468 // = 0 => offsets overflowed; longest matches are present 33469 // -1 => failed to match 33470 // < -1 => some kind of unexpected problem 33471 33472 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: */ 33473 bp := tls.Alloc(31000) 33474 defer tls.Free(31000) 33475 33476 var rc int32 33477 var was_zero_terminated int32 33478 var re uintptr 33479 var start_match TPCRE2_SPTR8 33480 var end_subject TPCRE2_SPTR8 33481 var bumpalong_limit TPCRE2_SPTR8 33482 var req_cu_ptr TPCRE2_SPTR8 33483 var utf TBOOL 33484 var anchored TBOOL 33485 var startline TBOOL 33486 var firstline TBOOL 33487 var has_first_cu TBOOL 33488 var has_req_cu TBOOL 33489 var memchr_found_first_cu TPCRE2_SPTR8 33490 var memchr_found_first_cu2 TPCRE2_SPTR8 33491 var first_cu TPCRE2_UCHAR8 33492 var first_cu2 TPCRE2_UCHAR8 33493 var req_cu TPCRE2_UCHAR8 33494 var req_cu2 TPCRE2_UCHAR8 33495 var start_bits uintptr 33496 33497 // We need to have mb pointing to a match block, because the IS_NEWLINE macro 33498 // is used below, and it expects NLBLOCK to be defined as a pointer. 33499 33500 // var cb Tpcre2_callout_block_8 at bp+30888, 112 33501 33502 // var actual_match_block Tdfa_match_block_8 at bp, 168 33503 33504 var mb uintptr 33505 33506 // Set up a starting block of memory for use during recursive calls to 33507 // internal_dfa_match(). By putting this on the stack, it minimizes resource use 33508 // in the case when it is not needed. If this is too small, more memory is 33509 // obtained from the heap. At the start of each block is an anchor structure. 33510 33511 // var base_recursion_workspace [7680]int32 at bp+168, 30720 33512 33513 var rws uintptr 33514 var i uint32 33515 var check_subject TPCRE2_SPTR8 33516 var t TPCRE2_SPTR8 33517 var c TPCRE2_UCHAR8 33518 var ok TBOOL 33519 // In 16-bit and 32_bit modes we have to do our own search, so can 33520 // look for both cases at once. 33521 33522 // In 8-bit mode, the use of memchr() gives a big speed up, even 33523 // though we have to call it twice in order to find the earliest 33524 // occurrence of the code unit in either of its cases. Caching is used 33525 // to remember the positions of previously found code units. This can 33526 // make a huge difference when the strings are very long and only one 33527 // case is actually present. 33528 33529 var pp1 TPCRE2_SPTR8 33530 var pp2 TPCRE2_SPTR8 33531 var searchlength Tsize_t 33532 var c1 Tuint32_t 33533 var pp TPCRE2_SPTR8 33534 var check_length Tsize_t 33535 var p TPCRE2_SPTR8 33536 var next uintptr 33537 was_zero_terminated = 0 33538 re = code 33539 has_first_cu = DFALSE 33540 has_req_cu = DFALSE 33541 memchr_found_first_cu = uintptr(0) 33542 memchr_found_first_cu2 = uintptr(0) 33543 first_cu = TPCRE2_UCHAR8(0) 33544 first_cu2 = TPCRE2_UCHAR8(0) 33545 req_cu = TPCRE2_UCHAR8(0) 33546 req_cu2 = TPCRE2_UCHAR8(0) 33547 start_bits = uintptr(0) 33548 mb = bp /* &actual_match_block */ 33549 rws = bp + 168 /* base_recursion_workspace */ 33550 (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext = uintptr(0) 33551 (*TRWS_anchor)(unsafe.Pointer(rws)).Fsize = uint32(uint64(DDFA_START_RWS_SIZE) / uint64(unsafe.Sizeof(int32(0)))) 33552 (*TRWS_anchor)(unsafe.Pointer(rws)).Ffree = uint32(uint64(DDFA_START_RWS_SIZE)/uint64(unsafe.Sizeof(int32(0))) - uint64(unsafe.Sizeof(TRWS_anchor{}))/uint64(unsafe.Sizeof(int32(0)))) 33553 33554 // Recognize NULL, length 0 as an empty string. 33555 33556 if !(subject == uintptr(0) && length == uint64(0)) { 33557 goto __1 33558 } 33559 subject = ts + 797 /* "" */ 33560 __1: 33561 ; 33562 33563 // Plausibility checks 33564 33565 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)) { 33566 goto __2 33567 } 33568 return -34 33569 __2: 33570 ; 33571 if !(re == uintptr(0) || subject == uintptr(0) || workspace == uintptr(0) || match_data == uintptr(0)) { 33572 goto __3 33573 } 33574 return -51 33575 __3: 33576 ; 33577 33578 if !(length == libc.CplUint64(uint64(0))) { 33579 goto __4 33580 } 33581 33582 length = X_pcre2_strlen_8(tls, subject) 33583 was_zero_terminated = 1 33584 __4: 33585 ; 33586 33587 if !(wscount < uint64(20)) { 33588 goto __5 33589 } 33590 return -43 33591 __5: 33592 ; 33593 if !(start_offset > length) { 33594 goto __6 33595 } 33596 return -33 33597 __6: 33598 ; 33599 33600 // Partial matching and PCRE2_ENDANCHORED are currently not allowed at the same 33601 // time. 33602 33603 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)) { 33604 goto __7 33605 } 33606 return -34 33607 __7: 33608 ; 33609 33610 // Invalid UTF support is not available for DFA matching. 33611 33612 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_INVALID_UTF != Tuint32_t(0)) { 33613 goto __8 33614 } 33615 return -66 33616 __8: 33617 ; 33618 33619 // Check that the first field in the block is the magic number. If it is not, 33620 // return with PCRE2_ERROR_BADMAGIC. 33621 33622 if !(uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER) { 33623 goto __9 33624 } 33625 return -31 33626 __9: 33627 ; 33628 33629 // Check the code unit width. 33630 33631 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MODE8|DPCRE2_MODE16|DPCRE2_MODE32) != Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8)) { 33632 goto __10 33633 } 33634 return -32 33635 __10: 33636 ; 33637 33638 // PCRE2_NOTEMPTY and PCRE2_NOTEMPTY_ATSTART are match-time flags in the 33639 // options variable for this function. Users of PCRE2 who are not calling the 33640 // function directly would like to have a way of setting these flags, in the same 33641 // way that they can set pcre2_compile() flags like PCRE2_NO_AUTOPOSSESS with 33642 // constructions like (*NO_AUTOPOSSESS). To enable this, (*NOTEMPTY) and 33643 // (*NOTEMPTY_ATSTART) set bits in the pattern's "flag" function which can now be 33644 // transferred to the options for this function. The bits are guaranteed to be 33645 // adjacent, but do not have the same values. This bit of Boolean trickery assumes 33646 // that the match-time bits are not more significant than the flag bits. If by 33647 // accident this is not the case, a compile-time division by zero error will 33648 // occur. 33649 33650 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)))) 33651 33652 // If restarting after a partial match, do some sanity checks on the contents 33653 // of the workspace. 33654 33655 if !(options&DPCRE2_DFA_RESTART != Tuint32_t(0)) { 33656 goto __11 33657 } 33658 33659 if !(*(*int32)(unsafe.Pointer(workspace))&-2 != 0 || *(*int32)(unsafe.Pointer(workspace + 1*4)) < 1 || *(*int32)(unsafe.Pointer(workspace + 1*4)) > int32((wscount-uint64(2))/Tsize_t(int32(uint64(unsafe.Sizeof(Tstateblock{}))/uint64(unsafe.Sizeof(int32(0))))))) { 33660 goto __12 33661 } 33662 return -38 33663 __12: 33664 ; 33665 __11: 33666 ; 33667 33668 // Set some local values 33669 33670 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 33671 start_match = subject + uintptr(start_offset) 33672 end_subject = subject + uintptr(length) 33673 req_cu_ptr = start_match - uintptr(1) 33674 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)) 33675 33676 // The "must be at the start of a line" flags are used in a loop when finding 33677 // where to start. 33678 33679 startline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_STARTLINE) != Tuint32_t(0)) 33680 firstline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_FIRSTLINE != Tuint32_t(0)) 33681 bumpalong_limit = end_subject 33682 33683 // Initialize and set up the fixed fields in the callout block, with a pointer 33684 // in the match block. 33685 33686 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcb = bp + 30888 /* &cb */ 33687 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fversion = Tuint32_t(2) 33688 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fsubject = subject 33689 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fsubject_length = Tsize_t((int64(end_subject) - int64(subject)) / 1) 33690 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fcallout_flags = Tuint32_t(0) 33691 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fcapture_top = Tuint32_t(1) // No capture support 33692 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fcapture_last = Tuint32_t(0) 33693 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fmark = uintptr(0) // No (*MARK) support 33694 33695 // Get data from the match context, if present, and fill in the remaining 33696 // fields in the match block. It is an error to set an offset limit without 33697 // setting the flag at compile time. 33698 33699 if !(mcontext == uintptr(0)) { 33700 goto __13 33701 } 33702 33703 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout = uintptr(0) 33704 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmemctl 33705 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit = X_pcre2_default_match_context_8.Fmatch_limit 33706 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = X_pcre2_default_match_context_8.Fdepth_limit 33707 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit = Tsize_t(X_pcre2_default_match_context_8.Fheap_limit) 33708 goto __14 33709 __13: 33710 33711 if !((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit != libc.CplUint64(uint64(0))) { 33712 goto __15 33713 } 33714 33715 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_USE_OFFSET_LIMIT == Tuint32_t(0)) { 33716 goto __16 33717 } 33718 return -56 33719 __16: 33720 ; 33721 bumpalong_limit = subject + uintptr((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit) 33722 __15: 33723 ; 33724 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout 33725 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout_data = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout_data 33726 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl 33727 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit 33728 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit 33729 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit = Tsize_t((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit) 33730 __14: 33731 ; 33732 33733 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit > (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match) { 33734 goto __17 33735 } 33736 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match 33737 __17: 33738 ; 33739 33740 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth > (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth) { 33741 goto __18 33742 } 33743 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth 33744 __18: 33745 ; 33746 33747 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit > Tsize_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap)) { 33748 goto __19 33749 } 33750 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit = Tsize_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap) 33751 __19: 33752 ; 33753 33754 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code = re + uintptr(uint64(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)) 33755 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables 33756 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject = subject 33757 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject = end_subject 33758 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_offset = start_offset 33759 (*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)) 33760 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions = options 33761 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options 33762 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_call_count = Tuint32_t(0) 33763 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_used = uint64(0) 33764 33765 // Process the \R and newline settings. 33766 33767 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention 33768 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_FIXED) 33769 switch int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention) { 33770 case DPCRE2_NEWLINE_CR: 33771 goto __21 33772 33773 case DPCRE2_NEWLINE_LF: 33774 goto __22 33775 33776 case DPCRE2_NEWLINE_NUL: 33777 goto __23 33778 33779 case DPCRE2_NEWLINE_CRLF: 33780 goto __24 33781 33782 case DPCRE2_NEWLINE_ANY: 33783 goto __25 33784 33785 case DPCRE2_NEWLINE_ANYCRLF: 33786 goto __26 33787 33788 default: 33789 goto __27 33790 } 33791 goto __20 33792 33793 __21: 33794 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 33795 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)) = TPCRE2_UCHAR8('\015') 33796 goto __20 33797 33798 __22: 33799 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 33800 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)) = TPCRE2_UCHAR8('\012') 33801 goto __20 33802 33803 __23: 33804 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 33805 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)) = TPCRE2_UCHAR8(0) 33806 goto __20 33807 33808 __24: 33809 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(2) 33810 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)) = TPCRE2_UCHAR8('\015') 33811 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1)) = TPCRE2_UCHAR8('\012') 33812 goto __20 33813 33814 __25: 33815 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANY) 33816 goto __20 33817 33818 __26: 33819 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANYCRLF) 33820 goto __20 33821 33822 __27: 33823 return -44 33824 __20: 33825 ; 33826 33827 // Check a UTF string for validity if required. For 8-bit and 16-bit strings, 33828 // we must also check that a starting offset does not point into the middle of a 33829 // multiunit character. We check only the portion of the subject that is going to 33830 // be inspected during matching - from the offset minus the maximum back reference 33831 // to the given length. This saves time when a small part of a large subject is 33832 // being matched by the use of a starting offset. Note that the maximum lookbehind 33833 // is a number of characters, not code units. 33834 33835 if !(utf != 0 && options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0)) { 33836 goto __28 33837 } 33838 33839 check_subject = start_match // start_match includes offset 33840 33841 if !(start_offset > uint64(0)) { 33842 goto __29 33843 } 33844 33845 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 33846 goto __30 33847 } 33848 return -36 33849 __30: 33850 ; 33851 i = uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) 33852 __31: 33853 if !(i > uint32(0) && check_subject > subject) { 33854 goto __33 33855 } 33856 33857 check_subject-- 33858 __34: 33859 if !(check_subject > subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(check_subject)))&0xc0 == 0x80) { 33860 goto __35 33861 } 33862 check_subject-- 33863 goto __34 33864 __35: 33865 ; 33866 goto __32 33867 __32: 33868 i-- 33869 goto __31 33870 goto __33 33871 __33: 33872 ; 33873 __29: 33874 ; 33875 33876 // Validate the relevant portion of the subject. After an error, adjust the 33877 // offset to be an absolute offset in the whole string. 33878 33879 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = X_pcre2_valid_utf_8(tls, check_subject, 33880 length-Tsize_t((int64(check_subject)-int64(subject))/1), match_data+64) 33881 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc != 0) { 33882 goto __36 33883 } 33884 33885 *(*Tsize_t)(unsafe.Pointer(match_data + 64)) += Tsize_t((int64(check_subject) - int64(subject)) / 1) 33886 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 33887 __36: 33888 ; 33889 __28: 33890 ; 33891 33892 // Set up the first code unit to match, if available. If there's no first code 33893 // unit there may be a bitmap of possible first characters. 33894 33895 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0)) { 33896 goto __37 33897 } 33898 33899 has_first_cu = DTRUE 33900 first_cu = libc.AssignUint8(&first_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit)) 33901 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTCASELESS) != Tuint32_t(0)) { 33902 goto __39 33903 } 33904 33905 first_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dfcc_offset) + uintptr(first_cu))) 33906 if !(int32(first_cu) > 127 && !(utf != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) { 33907 goto __40 33908 } 33909 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)) 33910 __40: 33911 ; 33912 __39: 33913 ; 33914 goto __38 33915 __37: 33916 if !(!(startline != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0)) { 33917 goto __41 33918 } 33919 start_bits = re + 40 /* &.start_bitmap */ 33920 __41: 33921 ; 33922 __38: 33923 ; 33924 33925 // There may be a "last known required code unit" set. 33926 33927 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0)) { 33928 goto __42 33929 } 33930 33931 has_req_cu = DTRUE 33932 req_cu = libc.AssignUint8(&req_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit)) 33933 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTCASELESS) != Tuint32_t(0)) { 33934 goto __43 33935 } 33936 33937 req_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dfcc_offset) + uintptr(req_cu))) 33938 if !(int32(req_cu) > 127 && !(utf != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) { 33939 goto __44 33940 } 33941 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)) 33942 __44: 33943 ; 33944 __43: 33945 ; 33946 __42: 33947 ; 33948 33949 // If the match data block was previously used with PCRE2_COPY_MATCHED_SUBJECT, 33950 // free the memory that was obtained. 33951 33952 if !(uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fflags)&DPCRE2_MD_COPIED_SUBJECT != uint32(0)) { 33953 goto __45 33954 } 33955 33956 (*struct { 33957 f func(*libc.TLS, uintptr, uintptr) 33958 })(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, 33959 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 33960 *(*Tuint8_t)(unsafe.Pointer(match_data + 73)) &= libc.Uint8FromUint32(libc.CplUint32(DPCRE2_MD_COPIED_SUBJECT)) 33961 __45: 33962 ; 33963 33964 // Fill in fields that are always returned in the match data. 33965 33966 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode = re 33967 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = uintptr(0) // Default for no match 33968 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark = uintptr(0) 33969 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby = PCRE2_MATCHEDBY_DFA_INTERPRETER 33970 33971 // Call the main matching function, looping for a non-anchored regex after a 33972 // failed match. If not restarting, perform certain optimizations at the start of 33973 // a match. 33974 33975 __46: 33976 33977 // ----------------- Start of match optimizations ---------------- 33978 33979 // There are some optimizations that avoid running the match if a known 33980 // starting point is not found, or if a known later code unit is not present. 33981 // However, there is an option (settable at compile time) that disables 33982 // these, for testing and for ensuring that all callouts do actually occur. 33983 // The optimizations must also be avoided when restarting a DFA match. 33984 33985 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_START_OPTIMIZE == Tuint32_t(0) && options&DPCRE2_DFA_RESTART == Tuint32_t(0)) { 33986 goto __49 33987 } 33988 33989 // If firstline is TRUE, the start of the match is constrained to the first 33990 // line of a multiline string. That is, the match must be before or at the 33991 // first newline following the start of matching. Temporarily adjust 33992 // end_subject so that we stop the optimization scans for a first code unit 33993 // immediately after the first character of a newline (the first code unit can 33994 // legitimately be a newline). If the match fails at the newline, later code 33995 // breaks this loop. 33996 33997 if !(firstline != 0) { 33998 goto __50 33999 } 34000 34001 t = start_match 34002 if !(utf != 0) { 34003 goto __51 34004 } 34005 34006 __53: 34007 if !(t < end_subject && !(func() int32 { 34008 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34009 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+120, utf) != 0) 34010 } 34011 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 + 128))) && ((*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 + 128 + 1))))) 34012 }() != 0)) { 34013 goto __54 34014 } 34015 34016 t++ 34017 __55: 34018 if !(t < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t)))&0xc0 == 0x80) { 34019 goto __56 34020 } 34021 t++ 34022 goto __55 34023 __56: 34024 ; 34025 goto __53 34026 __54: 34027 ; 34028 goto __52 34029 __51: 34030 __57: 34031 if !(t < end_subject && !(func() int32 { 34032 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34033 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+120, utf) != 0) 34034 } 34035 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 + 128))) && ((*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 + 128 + 1))))) 34036 }() != 0)) { 34037 goto __58 34038 } 34039 t++ 34040 goto __57 34041 __58: 34042 ; 34043 __52: 34044 ; 34045 end_subject = t 34046 __50: 34047 ; 34048 34049 // Anchored: check the first code unit if one is recorded. This may seem 34050 // pointless but it can help in detecting a no match case without scanning for 34051 // the required code unit. 34052 34053 if !(anchored != 0) { 34054 goto __59 34055 } 34056 34057 if !(has_first_cu != 0 || start_bits != uintptr(0)) { 34058 goto __61 34059 } 34060 34061 ok = libc.Bool32(start_match < end_subject) 34062 if !(ok != 0) { 34063 goto __62 34064 } 34065 34066 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)) 34067 ok = libc.Bool32(has_first_cu != 0 && (int32(c) == int32(first_cu) || int32(c) == int32(first_cu2))) 34068 if !(!(ok != 0) && start_bits != uintptr(0)) { 34069 goto __63 34070 } 34071 34072 ok = libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(int32(c)/8))))&(uint32(1)<<(int32(c)&7)) != uint32(0)) 34073 __63: 34074 ; 34075 __62: 34076 ; 34077 if !!(ok != 0) { 34078 goto __64 34079 } 34080 goto __48 34081 __64: 34082 ; 34083 __61: 34084 ; 34085 goto __60 34086 __59: 34087 34088 if !(has_first_cu != 0) { 34089 goto __65 34090 } 34091 34092 if !(int32(first_cu) != int32(first_cu2)) { 34093 goto __67 34094 } /* Caseless */ 34095 34096 // In 16-bit and 32_bit modes we have to do our own search, so can 34097 // look for both cases at once. 34098 34099 // In 8-bit mode, the use of memchr() gives a big speed up, even 34100 // though we have to call it twice in order to find the earliest 34101 // occurrence of the code unit in either of its cases. Caching is used 34102 // to remember the positions of previously found code units. This can 34103 // make a huge difference when the strings are very long and only one 34104 // case is actually present. 34105 34106 pp1 = uintptr(0) 34107 pp2 = uintptr(0) 34108 searchlength = Tsize_t((int64(end_subject) - int64(start_match)) / 1) 34109 34110 // If we haven't got a previously found position for first_cu, or if 34111 // the current starting position is later, we need to do a search. If 34112 // the code unit is not found, set it to the end. 34113 34114 if !(memchr_found_first_cu == uintptr(0) || start_match > memchr_found_first_cu) { 34115 goto __69 34116 } 34117 34118 pp1 = libc.Xmemchr(tls, start_match, int32(first_cu), searchlength) 34119 if pp1 == uintptr(0) { 34120 memchr_found_first_cu = end_subject 34121 } else { 34122 memchr_found_first_cu = pp1 34123 } 34124 goto __70 34125 __69: 34126 if memchr_found_first_cu == end_subject { 34127 pp1 = uintptr(0) 34128 } else { 34129 pp1 = memchr_found_first_cu 34130 } 34131 __70: 34132 ; 34133 34134 // Do the same thing for the other case. 34135 34136 if !(memchr_found_first_cu2 == uintptr(0) || start_match > memchr_found_first_cu2) { 34137 goto __71 34138 } 34139 34140 pp2 = libc.Xmemchr(tls, start_match, int32(first_cu2), searchlength) 34141 if pp2 == uintptr(0) { 34142 memchr_found_first_cu2 = end_subject 34143 } else { 34144 memchr_found_first_cu2 = pp2 34145 } 34146 goto __72 34147 __71: 34148 if memchr_found_first_cu2 == end_subject { 34149 pp2 = uintptr(0) 34150 } else { 34151 pp2 = memchr_found_first_cu2 34152 } 34153 __72: 34154 ; 34155 34156 // Set the start to the end of the subject if neither case was found. 34157 // Otherwise, use the earlier found point. 34158 34159 if !(pp1 == uintptr(0)) { 34160 goto __73 34161 } 34162 if pp2 == uintptr(0) { 34163 start_match = end_subject 34164 } else { 34165 start_match = pp2 34166 } 34167 goto __74 34168 __73: 34169 if pp2 == uintptr(0) || pp1 < pp2 { 34170 start_match = pp1 34171 } else { 34172 start_match = pp2 34173 } 34174 __74: 34175 ; 34176 34177 goto __68 34178 __67: 34179 34180 start_match = libc.Xmemchr(tls, start_match, int32(first_cu), uint64((int64(end_subject)-int64(start_match))/1)) 34181 if !(start_match == uintptr(0)) { 34182 goto __75 34183 } 34184 start_match = end_subject 34185 __75: 34186 ; 34187 __68: 34188 ; 34189 34190 // If we can't find the required code unit, having reached the true end 34191 // of the subject, break the bumpalong loop, to force a match failure, 34192 // except when doing partial matching, when we let the next cycle run at 34193 // the end of the subject. To see why, consider the pattern /(?<=abc)def/, 34194 // which partially matches "abc", even though the string does not contain 34195 // the starting character "d". If we have not reached the true end of the 34196 // subject (PCRE2_FIRSTLINE caused end_subject to be temporarily modified) 34197 // we also let the cycle run, because the matching string is legitimately 34198 // allowed to start with the first code unit of a newline. 34199 34200 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) { 34201 goto __76 34202 } 34203 goto __48 34204 __76: 34205 ; 34206 goto __66 34207 __65: 34208 if !(startline != 0) { 34209 goto __77 34210 } 34211 34212 if !(start_match > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr(start_offset)) { 34213 goto __79 34214 } 34215 34216 if !(utf != 0) { 34217 goto __80 34218 } 34219 34220 __82: 34221 if !(start_match < end_subject && !(func() int32 { 34222 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34223 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+120, utf) != 0) 34224 } 34225 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 + 128))) && ((*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 + 128 + 1))))) 34226 }() != 0)) { 34227 goto __83 34228 } 34229 34230 start_match++ 34231 __84: 34232 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 34233 goto __85 34234 } 34235 start_match++ 34236 goto __84 34237 __85: 34238 ; 34239 goto __82 34240 __83: 34241 ; 34242 goto __81 34243 __80: 34244 __86: 34245 if !(start_match < end_subject && !(func() int32 { 34246 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34247 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+120, utf) != 0) 34248 } 34249 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 + 128))) && ((*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 + 128 + 1))))) 34250 }() != 0)) { 34251 goto __87 34252 } 34253 start_match++ 34254 goto __86 34255 __87: 34256 ; 34257 __81: 34258 ; 34259 34260 // If we have just passed a CR and the newline option is ANY or 34261 // ANYCRLF, and we are now at a LF, advance the match position by one 34262 // more code unit. 34263 34264 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') { 34265 goto __88 34266 } 34267 start_match++ 34268 __88: 34269 ; 34270 __79: 34271 ; 34272 goto __78 34273 __77: 34274 if !(start_bits != uintptr(0)) { 34275 goto __89 34276 } 34277 34278 __90: 34279 if !(start_match < end_subject) { 34280 goto __91 34281 } 34282 34283 c1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) 34284 if !(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(c1/Tuint32_t(8)))))&(uint32(1)<<(c1&Tuint32_t(7))) != uint32(0)) { 34285 goto __92 34286 } 34287 goto __91 34288 __92: 34289 ; 34290 start_match++ 34291 goto __90 34292 __91: 34293 ; 34294 34295 // See comment above in first_cu checking about the next line. 34296 34297 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) { 34298 goto __93 34299 } 34300 goto __48 34301 __93: 34302 ; 34303 __89: 34304 ; 34305 __78: 34306 ; 34307 __66: 34308 ; 34309 __60: 34310 ; // End of first code unit handling 34311 34312 // Restore fudged end_subject 34313 34314 end_subject = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject 34315 34316 // The following two optimizations are disabled for partial matching. 34317 34318 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) == Tuint32_t(0)) { 34319 goto __94 34320 } 34321 34322 // The minimum matching length is a lower bound; no actual string of that 34323 // length may actually match the pattern. Although the value is, strictly, 34324 // in characters, we treat it as code units to avoid spending too much time 34325 // in this optimization. 34326 34327 if !((int64(end_subject)-int64(start_match))/1 < int64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength)) { 34328 goto __95 34329 } 34330 goto NOMATCH_EXIT 34331 __95: 34332 ; 34333 34334 // If req_cu is set, we know that that code unit must appear in the 34335 // subject for the match to succeed. If the first code unit is set, req_cu 34336 // must be later in the subject; otherwise the test starts at the match 34337 // point. This optimization can save a huge amount of backtracking in 34338 // patterns with nested unlimited repeats that aren't going to match. 34339 // Writing separate code for cased/caseless versions makes it go faster, as 34340 // does using an autoincrement and backing off on a match. As in the case of 34341 // the first code unit, using memchr() in the 8-bit library gives a big 34342 // speed up. Unlike the first_cu check above, we do not need to call 34343 // memchr() twice in the caseless case because we only need to check for the 34344 // presence of the character in either case, not find the first occurrence. 34345 // 34346 // The search can be skipped if the code unit was found later than the 34347 // current starting point in a previous iteration of the bumpalong loop. 34348 // 34349 // HOWEVER: when the subject string is very, very long, searching to its end 34350 // can take a long time, and give bad performance on quite ordinary 34351 // patterns. This showed up when somebody was matching something like 34352 // /^\d+C/ on a 32-megabyte string... so we don't do this when the string is 34353 // sufficiently long, but it's worth searching a lot more for unanchored 34354 // patterns. 34355 34356 p = start_match + uintptr(func() int32 { 34357 if has_first_cu != 0 { 34358 return 1 34359 } 34360 return 0 34361 }()) 34362 if !(has_req_cu != 0 && p > req_cu_ptr) { 34363 goto __96 34364 } 34365 34366 check_length = Tsize_t((int64(end_subject) - int64(start_match)) / 1) 34367 34368 if !(check_length < uint64(DREQ_CU_MAX) || !(anchored != 0) && check_length < uint64(DREQ_CU_MAX*1000)) { 34369 goto __97 34370 } 34371 34372 if !(int32(req_cu) != int32(req_cu2)) { 34373 goto __98 34374 } /* Caseless */ 34375 34376 pp = p 34377 p = libc.Xmemchr(tls, pp, int32(req_cu), uint64((int64(end_subject)-int64(pp))/1)) 34378 if !(p == uintptr(0)) { 34379 goto __100 34380 } 34381 34382 p = libc.Xmemchr(tls, pp, int32(req_cu2), uint64((int64(end_subject)-int64(pp))/1)) 34383 if !(p == uintptr(0)) { 34384 goto __101 34385 } 34386 p = end_subject 34387 __101: 34388 ; 34389 __100: 34390 ; 34391 goto __99 34392 __98: 34393 34394 p = libc.Xmemchr(tls, p, int32(req_cu), uint64((int64(end_subject)-int64(p))/1)) 34395 if !(p == uintptr(0)) { 34396 goto __102 34397 } 34398 p = end_subject 34399 __102: 34400 ; 34401 __99: 34402 ; 34403 34404 // If we can't find the required code unit, break the matching loop, 34405 // forcing a match failure. 34406 34407 if !(p >= end_subject) { 34408 goto __103 34409 } 34410 goto __48 34411 __103: 34412 ; 34413 34414 // If we have found the required code unit, save the point where we 34415 // found it, so that we don't search again next time round the loop if 34416 // the start hasn't passed this code unit yet. 34417 34418 req_cu_ptr = p 34419 __97: 34420 ; 34421 __96: 34422 ; 34423 __94: 34424 ; 34425 __49: 34426 ; 34427 34428 // ------------ End of start of match optimizations ------------ 34429 34430 // Give no match if we have passed the bumpalong limit. 34431 34432 if !(start_match > bumpalong_limit) { 34433 goto __104 34434 } 34435 goto __48 34436 __104: 34437 ; 34438 34439 // OK, now we can do the business 34440 34441 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = start_match 34442 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = start_match 34443 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive = uintptr(0) 34444 34445 rc = internal_dfa_match(tls, 34446 mb, // fixed match data 34447 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code, // this subexpression's code 34448 start_match, // where we currently are 34449 start_offset, // start offset in subject 34450 match_data+80, 34451 Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount)*Tuint32_t(2), 34452 workspace, // workspace vector 34453 int32(wscount), // size of same 34454 uint32(0), // function recurse level 34455 bp+168) // initial workspace for recursion 34456 34457 // Anything other than "no match" means we are done, always; otherwise, carry 34458 // on only if not anchored. 34459 34460 if !(rc != -1 || anchored != 0) { 34461 goto __105 34462 } 34463 34464 if !(rc == -2 && int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) > 0) { 34465 goto __106 34466 } 34467 34468 *(*Tsize_t)(unsafe.Pointer(match_data + 80)) = Tsize_t((int64(start_match) - int64(subject)) / 1) 34469 *(*Tsize_t)(unsafe.Pointer(match_data + 80 + 1*8)) = Tsize_t((int64(end_subject) - int64(subject)) / 1) 34470 __106: 34471 ; 34472 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t((int64((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) - int64(subject)) / 1) 34473 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frightchar = Tsize_t((int64((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) - int64(subject)) / 1) 34474 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = Tsize_t((int64(start_match) - int64(subject)) / 1) 34475 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = rc 34476 34477 if !(rc >= 0 && options&DPCRE2_COPY_MATCHED_SUBJECT != Tuint32_t(0)) { 34478 goto __107 34479 } 34480 34481 length = (length + Tsize_t(was_zero_terminated)) * uint64(DPCRE2_CODE_UNIT_WIDTH/8) 34482 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = (*struct { 34483 f func(*libc.TLS, Tsize_t, uintptr) uintptr 34484 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmalloc})).f(tls, length, 34485 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 34486 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject == uintptr(0)) { 34487 goto __109 34488 } 34489 return -48 34490 __109: 34491 ; 34492 libc.Xmemcpy(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, subject, length) 34493 *(*Tuint8_t)(unsafe.Pointer(match_data + 73)) |= uint8(DPCRE2_MD_COPIED_SUBJECT) 34494 goto __108 34495 __107: 34496 34497 if !(rc >= 0 || rc == -2) { 34498 goto __110 34499 } 34500 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = subject 34501 __110: 34502 ; 34503 __108: 34504 ; 34505 goto EXIT 34506 __105: 34507 ; 34508 34509 // Advance to the next subject character unless we are at the end of a line 34510 // and firstline is set. 34511 34512 if !(firstline != 0 && func() int32 { 34513 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34514 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+120, utf) != 0) 34515 } 34516 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 + 128))) && ((*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 + 128 + 1))))) 34517 }() != 0) { 34518 goto __111 34519 } 34520 goto __48 34521 __111: 34522 ; 34523 start_match++ 34524 if !(utf != 0) { 34525 goto __112 34526 } 34527 34528 __113: 34529 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 34530 goto __114 34531 } 34532 start_match++ 34533 goto __113 34534 __114: 34535 ; 34536 __112: 34537 ; 34538 if !(start_match > end_subject) { 34539 goto __115 34540 } 34541 goto __48 34542 __115: 34543 ; 34544 34545 // If we have just passed a CR and we are now at a LF, and the pattern does 34546 // not contain any explicit matches for \r or \n, and the newline option is CRLF 34547 // or ANY or ANYCRLF, advance the match position by one more character. 34548 34549 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))) { 34550 goto __116 34551 } 34552 start_match++ 34553 __116: 34554 ; 34555 34556 goto __47 34557 __47: 34558 goto __46 34559 goto __48 34560 __48: 34561 ; // "Bumpalong" loop 34562 34563 NOMATCH_EXIT: 34564 rc = -1 34565 34566 EXIT: 34567 __117: 34568 if !((*TRWS_anchor)(unsafe.Pointer(rws)).Fnext != uintptr(0)) { 34569 goto __118 34570 } 34571 34572 next = (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext 34573 (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext = (*TRWS_anchor)(unsafe.Pointer(next)).Fnext 34574 (*struct { 34575 f func(*libc.TLS, uintptr, uintptr) 34576 })(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) 34577 goto __117 34578 __118: 34579 ; 34580 34581 return rc 34582 } 34583 34584 // End of pcre2_dfa_match.c 34585 34586 // This function is needed only when memmove() is not available. 34587 34588 // End of pcre2_internal.h 34589 34590 // The texts of compile-time error messages. Compile-time error numbers start 34591 // at COMPILE_ERROR_BASE (100). 34592 // 34593 // This used to be a table of strings, but in order to reduce the number of 34594 // relocations needed when a shared library is loaded dynamically, it is now one 34595 // long string. We cannot use a table of offsets, because the lengths of inserts 34596 // such as XSTRING(MAX_NAME_SIZE) are not known. Instead, 34597 // pcre2_get_error_message() counts through to the one it wants - this isn't a 34598 // performance issue because these strings are used only when there is an error. 34599 // 34600 // Each substring ends with \0 to insert a null character. This includes the final 34601 // substring, so that the whole string ends with \0\0, which can be detected when 34602 // counting through. 34603 34604 var compile_error_texts = 34605 34606 // 5 34607 34608 // 10 34609 34610 // 15 34611 34612 // 20 34613 34614 // 25 34615 34616 // 30 34617 34618 // 35 34619 34620 // 40 34621 34622 // 45 34623 34624 // 50 34625 34626 // 55 34627 34628 // "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)\0" 34629 // Was the above 34630 // 60 34631 34632 // 65 34633 34634 // 70 34635 34636 // 75 34637 34638 // 80 34639 34640 // 85 34641 34642 // 90 34643 34644 // 95 34645 34646 *(*[4381]uint8)(unsafe.Pointer(ts + 798)) /* pcre2_error.c:65:28 */ 34647 34648 // Match-time and UTF error texts are in the same format. 34649 34650 var match_error_texts = 34651 34652 // 5 34653 34654 // 10 34655 34656 // 15 34657 34658 // 20 34659 34660 // 25 34661 34662 // 30 34663 34664 // 35 34665 34666 // Never returned by PCRE2 itself 34667 34668 // 40 34669 34670 // 45 34671 34672 // 50 34673 34674 // 55 34675 34676 // 60 34677 34678 // 65 34679 34680 *(*[2476]uint8)(unsafe.Pointer(ts + 5179)) /* pcre2_error.c:194:28 */ 34681 34682 // ************************************************ 34683 // 34684 // Return error message * 34685 // 34686 34687 // This function copies an error message into a buffer whose units are of an 34688 // appropriate width. Error numbers are positive for compile-time errors, and 34689 // negative for match-time errors (except for UTF errors), but the numbers are all 34690 // distinct. 34691 // 34692 // Arguments: 34693 // enumber error number 34694 // buffer where to put the message (zero terminated) 34695 // size size of the buffer in code units 34696 // 34697 // Returns: length of message if all is well 34698 // negative on error 34699 34700 func Xpcre2_get_error_message_8(tls *libc.TLS, enumber int32, buffer uintptr, size Tsize_t) int32 { /* pcre2_error.c:297:1: */ 34701 var message uintptr 34702 var i Tsize_t 34703 var n int32 34704 34705 if size == uint64(0) { 34706 return -48 34707 } 34708 34709 if enumber >= DCOMPILE_ERROR_BASE { 34710 message = uintptr(unsafe.Pointer(&compile_error_texts)) 34711 n = enumber - DCOMPILE_ERROR_BASE 34712 } else if enumber < 0 { 34713 message = uintptr(unsafe.Pointer(&match_error_texts)) 34714 n = -enumber 34715 } else { 34716 message = ts + 7655 /* "\x00" */ // Empty message list 34717 n = 1 34718 } 34719 34720 for ; n > 0; n-- { 34721 for int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&message, 1)))) != 0 { 34722 } 34723 34724 if int32(*(*uint8)(unsafe.Pointer(message))) == 0 { 34725 return -29 34726 } 34727 } 34728 34729 for i = uint64(0); int32(*(*uint8)(unsafe.Pointer(message))) != 0; i++ { 34730 if i >= size-uint64(1) { 34731 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(i))) = TPCRE2_UCHAR8(0) // Terminate partial message 34732 return -48 34733 } 34734 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(i))) = *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&message, 1))) 34735 } 34736 34737 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(i))) = TPCRE2_UCHAR8(0) 34738 return int32(i) 34739 } 34740 34741 // End of pcre2_error.c 34742 34743 // This function is needed only when memmove() is not available. 34744 34745 // End of pcre2_internal.h 34746 34747 // Dummy function 34748 34749 // ************************************************ 34750 // 34751 // Match an extended grapheme sequence * 34752 // 34753 34754 // 34755 // Arguments: 34756 // c the first character 34757 // eptr pointer to next character 34758 // start_subject pointer to start of subject 34759 // end_subject pointer to end of subject 34760 // utf TRUE if in UTF mode 34761 // xcount pointer to count of additional characters, 34762 // or NULL if count not needed 34763 // 34764 // Returns: pointer after the end of the sequence 34765 34766 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: */ 34767 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) 34768 34769 for eptr < end_subject { 34770 var rgb int32 34771 var len int32 = 1 34772 if !(utf != 0) { 34773 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr))) 34774 } else { 34775 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr))) 34776 if c >= 0xc0 { 34777 if c&0x20 == Tuint32_t(0) { 34778 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f 34779 len++ 34780 } else if c&0x10 == Tuint32_t(0) { 34781 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f 34782 len = len + 2 34783 } else if c&0x08 == Tuint32_t(0) { 34784 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 34785 len = len + 3 34786 } else if c&0x04 == Tuint32_t(0) { 34787 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 34788 len = len + 4 34789 } else { 34790 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 34791 len = len + 5 34792 } 34793 } 34794 34795 } 34796 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) 34797 if X_pcre2_ucp_gbtable_8[lgb]&(uint32(1)<<rgb) == Tuint32_t(0) { 34798 break 34799 } 34800 34801 // Not breaking between Regional Indicators is allowed only if there 34802 // are an even number of preceding RIs. 34803 34804 if lgb == ucp_gbRegional_Indicator && rgb == ucp_gbRegional_Indicator { 34805 var ricount int32 = 0 34806 var bptr TPCRE2_SPTR8 = eptr - uintptr(1) 34807 if utf != 0 { 34808 for uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr)))&0xc0 == 0x80 { 34809 bptr-- 34810 } 34811 } 34812 34813 // bptr is pointing to the left-hand character 34814 34815 for bptr > start_subject { 34816 bptr-- 34817 if utf != 0 { 34818 for uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr)))&0xc0 == 0x80 { 34819 bptr-- 34820 } 34821 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr))) 34822 if c >= 0xc0 { 34823 if c&0x20 == Tuint32_t(0) { 34824 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f 34825 } else if c&0x10 == Tuint32_t(0) { 34826 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 2)))&0x3f 34827 } else if c&0x08 == Tuint32_t(0) { 34828 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 34829 } else if c&0x04 == Tuint32_t(0) { 34830 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 34831 } else { 34832 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 34833 } 34834 } 34835 34836 } else { 34837 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr))) 34838 } 34839 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 { 34840 break 34841 } 34842 ricount++ 34843 } 34844 if ricount&1 != 0 { 34845 break 34846 } // Grapheme break required 34847 } 34848 34849 // If Extend or ZWJ follows Extended_Pictographic, do not update lgb; this 34850 // allows any number of them before a following Extended_Pictographic. 34851 34852 if rgb != ucp_gbExtend && rgb != ucp_gbZWJ || lgb != ucp_gbExtended_Pictographic { 34853 lgb = rgb 34854 } 34855 34856 eptr += TPCRE2_SPTR8(len) 34857 if xcount != uintptr(0) { 34858 *(*int32)(unsafe.Pointer(xcount)) += 1 34859 } 34860 } 34861 34862 return eptr 34863 } 34864 34865 // End of pcre2_extuni.c 34866 34867 // This function is needed only when memmove() is not available. 34868 34869 // End of pcre2_internal.h 34870 34871 // ************************************************ 34872 // 34873 // Scan compiled regex for specific bracket * 34874 // 34875 34876 // 34877 // Arguments: 34878 // code points to start of expression 34879 // utf TRUE in UTF mode 34880 // number the required bracket number or negative to find a lookbehind 34881 // 34882 // Returns: pointer to the opcode for the bracket, or NULL if not found 34883 34884 func X_pcre2_find_bracket_8(tls *libc.TLS, code TPCRE2_SPTR8, utf TBOOL, number int32) TPCRE2_SPTR8 { /* pcre2_find_bracket.c:70:1: */ 34885 for { 34886 var c TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 34887 34888 if int32(c) == OP_END { 34889 return uintptr(0) 34890 } 34891 34892 // XCLASS is used for classes that cannot be represented just by a bit map. 34893 // This includes negated single high-valued characters. CALLOUT_STR is used for 34894 // callouts with string arguments. In both cases the length in the table is 34895 // zero; the actual length is stored in the compiled code. 34896 34897 if int32(c) == OP_XCLASS { 34898 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 34899 } else if int32(c) == OP_CALLOUT_STR { 34900 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 34901 } else if int32(c) == OP_REVERSE { 34902 if number < 0 { 34903 return code 34904 } 34905 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 34906 } else if int32(c) == OP_CBRA || int32(c) == OP_SCBRA || int32(c) == OP_CBRAPOS || int32(c) == OP_SCBRAPOS { 34907 var n int32 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4))))) 34908 if n == number { 34909 return code 34910 } 34911 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 34912 } else { 34913 switch int32(c) { 34914 case OP_TYPESTAR: 34915 fallthrough 34916 case OP_TYPEMINSTAR: 34917 fallthrough 34918 case OP_TYPEPLUS: 34919 fallthrough 34920 case OP_TYPEMINPLUS: 34921 fallthrough 34922 case OP_TYPEQUERY: 34923 fallthrough 34924 case OP_TYPEMINQUERY: 34925 fallthrough 34926 case OP_TYPEPOSSTAR: 34927 fallthrough 34928 case OP_TYPEPOSPLUS: 34929 fallthrough 34930 case OP_TYPEPOSQUERY: 34931 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_NOTPROP { 34932 code += uintptr(2) 34933 } 34934 break 34935 fallthrough 34936 34937 case OP_TYPEUPTO: 34938 fallthrough 34939 case OP_TYPEMINUPTO: 34940 fallthrough 34941 case OP_TYPEEXACT: 34942 fallthrough 34943 case OP_TYPEPOSUPTO: 34944 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_NOTPROP { 34945 code += uintptr(2) 34946 } 34947 break 34948 fallthrough 34949 34950 case OP_MARK: 34951 fallthrough 34952 case OP_COMMIT_ARG: 34953 fallthrough 34954 case OP_PRUNE_ARG: 34955 fallthrough 34956 case OP_SKIP_ARG: 34957 fallthrough 34958 case OP_THEN_ARG: 34959 code += TPCRE2_SPTR8(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 34960 break 34961 } 34962 34963 // Add in the fixed length from the table 34964 34965 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 34966 34967 // In UTF-8 and UTF-16 modes, opcodes that are followed by a character may be 34968 // followed by a multi-byte character. The length in the table is a minimum, so 34969 // we have to arrange to skip the extra bytes. 34970 34971 if utf != 0 { 34972 switch int32(c) { 34973 case OP_CHAR: 34974 fallthrough 34975 case OP_CHARI: 34976 fallthrough 34977 case OP_NOT: 34978 fallthrough 34979 case OP_NOTI: 34980 fallthrough 34981 case OP_EXACT: 34982 fallthrough 34983 case OP_EXACTI: 34984 fallthrough 34985 case OP_NOTEXACT: 34986 fallthrough 34987 case OP_NOTEXACTI: 34988 fallthrough 34989 case OP_UPTO: 34990 fallthrough 34991 case OP_UPTOI: 34992 fallthrough 34993 case OP_NOTUPTO: 34994 fallthrough 34995 case OP_NOTUPTOI: 34996 fallthrough 34997 case OP_MINUPTO: 34998 fallthrough 34999 case OP_MINUPTOI: 35000 fallthrough 35001 case OP_NOTMINUPTO: 35002 fallthrough 35003 case OP_NOTMINUPTOI: 35004 fallthrough 35005 case OP_POSUPTO: 35006 fallthrough 35007 case OP_POSUPTOI: 35008 fallthrough 35009 case OP_NOTPOSUPTO: 35010 fallthrough 35011 case OP_NOTPOSUPTOI: 35012 fallthrough 35013 case OP_STAR: 35014 fallthrough 35015 case OP_STARI: 35016 fallthrough 35017 case OP_NOTSTAR: 35018 fallthrough 35019 case OP_NOTSTARI: 35020 fallthrough 35021 case OP_MINSTAR: 35022 fallthrough 35023 case OP_MINSTARI: 35024 fallthrough 35025 case OP_NOTMINSTAR: 35026 fallthrough 35027 case OP_NOTMINSTARI: 35028 fallthrough 35029 case OP_POSSTAR: 35030 fallthrough 35031 case OP_POSSTARI: 35032 fallthrough 35033 case OP_NOTPOSSTAR: 35034 fallthrough 35035 case OP_NOTPOSSTARI: 35036 fallthrough 35037 case OP_PLUS: 35038 fallthrough 35039 case OP_PLUSI: 35040 fallthrough 35041 case OP_NOTPLUS: 35042 fallthrough 35043 case OP_NOTPLUSI: 35044 fallthrough 35045 case OP_MINPLUS: 35046 fallthrough 35047 case OP_MINPLUSI: 35048 fallthrough 35049 case OP_NOTMINPLUS: 35050 fallthrough 35051 case OP_NOTMINPLUSI: 35052 fallthrough 35053 case OP_POSPLUS: 35054 fallthrough 35055 case OP_POSPLUSI: 35056 fallthrough 35057 case OP_NOTPOSPLUS: 35058 fallthrough 35059 case OP_NOTPOSPLUSI: 35060 fallthrough 35061 case OP_QUERY: 35062 fallthrough 35063 case OP_QUERYI: 35064 fallthrough 35065 case OP_NOTQUERY: 35066 fallthrough 35067 case OP_NOTQUERYI: 35068 fallthrough 35069 case OP_MINQUERY: 35070 fallthrough 35071 case OP_MINQUERYI: 35072 fallthrough 35073 case OP_NOTMINQUERY: 35074 fallthrough 35075 case OP_NOTMINQUERYI: 35076 fallthrough 35077 case OP_POSQUERY: 35078 fallthrough 35079 case OP_POSQUERYI: 35080 fallthrough 35081 case OP_NOTPOSQUERY: 35082 fallthrough 35083 case OP_NOTPOSQUERYI: 35084 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) >= 0xc0 { 35085 code += TPCRE2_SPTR8(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0x3f]) 35086 } 35087 break 35088 } 35089 } 35090 } 35091 } 35092 return TPCRE2_SPTR8(0) 35093 } 35094 35095 // End of pcre2_find_bracket.c 35096 35097 // This function is needed only when memmove() is not available. 35098 35099 // End of pcre2_internal.h 35100 35101 // ************************************************ 35102 // 35103 // JIT compile a Regular Expression * 35104 // 35105 35106 // This function used JIT to convert a previously-compiled pattern into machine 35107 // code. 35108 // 35109 // Arguments: 35110 // code a compiled pattern 35111 // options JIT option bits 35112 // 35113 // Returns: 0: success or (*NOJIT) was used 35114 // <0: an error code 35115 35116 func Xpcre2_jit_compile_8(tls *libc.TLS, code uintptr, options Tuint32_t) int32 { /* pcre2_jit_compile.c:14382:1: */ 35117 var re uintptr = code 35118 35119 if code == uintptr(0) { 35120 return -51 35121 } 35122 35123 if options&libc.CplUint32(DPCRE2_JIT_COMPLETE|DPCRE2_JIT_PARTIAL_SOFT|DPCRE2_JIT_PARTIAL_HARD|DPCRE2_JIT_INVALID_UTF) != Tuint32_t(0) { 35124 return -45 35125 } 35126 35127 // Support for invalid UTF was first introduced in JIT, with the option 35128 // PCRE2_JIT_INVALID_UTF. Later, support was added to the interpreter, and the 35129 // compile-time option PCRE2_MATCH_INVALID_UTF was created. This is now the 35130 // preferred feature, with the earlier option deprecated. However, for backward 35131 // compatibility, if the earlier option is set, it forces the new option so that 35132 // if JIT matching falls back to the interpreter, there is still support for 35133 // invalid UTF. However, if this function has already been successfully called 35134 // without PCRE2_JIT_INVALID_UTF and without PCRE2_MATCH_INVALID_UTF (meaning that 35135 // non-invalid-supporting JIT code was compiled), give an error. 35136 // 35137 // If in the future support for PCRE2_JIT_INVALID_UTF is withdrawn, the following 35138 // actions are needed: 35139 // 35140 // 1. Remove the definition from pcre2.h.in and from the list in 35141 // PUBLIC_JIT_COMPILE_OPTIONS above. 35142 // 35143 // 2. Replace PCRE2_JIT_INVALID_UTF with a local flag in this module. 35144 // 35145 // 3. Replace PCRE2_JIT_INVALID_UTF in pcre2_jit_test.c. 35146 // 35147 // 4. Delete the following short block of code. The setting of "re" and 35148 // "functions" can be moved into the JIT-only block below, but if that is 35149 // done, (void)re and (void)functions will be needed in the non-JIT case, to 35150 // avoid compiler warnings. 35151 35152 if options&DPCRE2_JIT_INVALID_UTF != Tuint32_t(0) { 35153 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_INVALID_UTF == Tuint32_t(0) { 35154 *(*Tuint32_t)(unsafe.Pointer(re + 88)) |= DPCRE2_MATCH_INVALID_UTF 35155 } 35156 } 35157 35158 // The above tests are run with and without JIT support. This means that 35159 // PCRE2_JIT_INVALID_UTF propagates back into the regex options (ensuring 35160 // interpreter support) even in the absence of JIT. But now, if there is no JIT 35161 // support, give an error return. 35162 35163 return -45 35164 } 35165 35166 // JIT compiler uses an all-in-one approach. This improves security, 35167 // since the code generator functions are not exported. 35168 35169 // ************************************************ 35170 // 35171 // Perl-Compatible Regular Expressions * 35172 // 35173 35174 // PCRE is a library of functions to support regular expressions whose syntax 35175 // and semantics are as close as possible to those of the Perl 5 language. 35176 // 35177 // Written by Philip Hazel 35178 // Original API code Copyright (c) 1997-2012 University of Cambridge 35179 // New API code Copyright (c) 2016-2018 University of Cambridge 35180 // 35181 // ----------------------------------------------------------------------------- 35182 // Redistribution and use in source and binary forms, with or without 35183 // modification, are permitted provided that the following conditions are met: 35184 // 35185 // * Redistributions of source code must retain the above copyright notice, 35186 // this list of conditions and the following disclaimer. 35187 // 35188 // * Redistributions in binary form must reproduce the above copyright 35189 // notice, this list of conditions and the following disclaimer in the 35190 // documentation and/or other materials provided with the distribution. 35191 // 35192 // * Neither the name of the University of Cambridge nor the names of its 35193 // contributors may be used to endorse or promote products derived from 35194 // this software without specific prior written permission. 35195 // 35196 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 35197 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 35198 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 35199 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 35200 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 35201 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 35202 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35203 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 35204 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35205 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35206 // POSSIBILITY OF SUCH DAMAGE. 35207 // ----------------------------------------------------------------------------- 35208 35209 // ************************************************ 35210 // 35211 // Do a JIT pattern match * 35212 // 35213 35214 // This function runs a JIT pattern match. 35215 // 35216 // Arguments: 35217 // code points to the compiled expression 35218 // subject points to the subject string 35219 // length length of subject string (may contain binary zeros) 35220 // start_offset where to start in the subject string 35221 // options option bits 35222 // match_data points to a match_data block 35223 // mcontext points to a match context 35224 // 35225 // Returns: > 0 => success; value is the number of ovector pairs filled 35226 // = 0 => success, but ovector is not big enough 35227 // -1 => failed to match (PCRE_ERROR_NOMATCH) 35228 // < -1 => some kind of unexpected problem 35229 35230 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: */ 35231 35232 _ = code 35233 _ = subject 35234 _ = length 35235 _ = start_offset 35236 _ = options 35237 _ = match_data 35238 _ = mcontext 35239 return -45 35240 35241 } 35242 35243 // End of pcre2_jit_match.c 35244 // ************************************************ 35245 // 35246 // Perl-Compatible Regular Expressions * 35247 // 35248 35249 // PCRE is a library of functions to support regular expressions whose syntax 35250 // and semantics are as close as possible to those of the Perl 5 language. 35251 // 35252 // Written by Philip Hazel 35253 // Original API code Copyright (c) 1997-2012 University of Cambridge 35254 // New API code Copyright (c) 2016 University of Cambridge 35255 // 35256 // ----------------------------------------------------------------------------- 35257 // Redistribution and use in source and binary forms, with or without 35258 // modification, are permitted provided that the following conditions are met: 35259 // 35260 // * Redistributions of source code must retain the above copyright notice, 35261 // this list of conditions and the following disclaimer. 35262 // 35263 // * Redistributions in binary form must reproduce the above copyright 35264 // notice, this list of conditions and the following disclaimer in the 35265 // documentation and/or other materials provided with the distribution. 35266 // 35267 // * Neither the name of the University of Cambridge nor the names of its 35268 // contributors may be used to endorse or promote products derived from 35269 // this software without specific prior written permission. 35270 // 35271 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 35272 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 35273 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 35274 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 35275 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 35276 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 35277 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35278 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 35279 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35280 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35281 // POSSIBILITY OF SUCH DAMAGE. 35282 // ----------------------------------------------------------------------------- 35283 35284 // ************************************************ 35285 // 35286 // Free JIT read-only data * 35287 // 35288 35289 func X_pcre2_jit_free_rodata_8(tls *libc.TLS, current uintptr, allocator_data uintptr) { /* pcre2_jit_misc.c:53:1: */ 35290 _ = current 35291 _ = allocator_data 35292 } 35293 35294 // ************************************************ 35295 // 35296 // Free JIT compiled code * 35297 // 35298 35299 func X_pcre2_jit_free_8(tls *libc.TLS, executable_jit uintptr, memctl uintptr) { /* pcre2_jit_misc.c:78:1: */ 35300 _ = executable_jit 35301 _ = memctl 35302 } 35303 35304 // ************************************************ 35305 // 35306 // Free unused JIT memory * 35307 // 35308 35309 func Xpcre2_jit_free_unused_memory_8(tls *libc.TLS, gcontext uintptr) { /* pcre2_jit_misc.c:107:1: */ 35310 _ = gcontext // Suppress warning 35311 } 35312 35313 // ************************************************ 35314 // 35315 // Allocate a JIT stack * 35316 // 35317 35318 func Xpcre2_jit_stack_create_8(tls *libc.TLS, startsize Tsize_t, maxsize Tsize_t, gcontext uintptr) uintptr { /* pcre2_jit_misc.c:123:32: */ 35319 35320 _ = gcontext 35321 _ = startsize 35322 _ = maxsize 35323 return uintptr(0) 35324 35325 } 35326 35327 // ************************************************ 35328 // 35329 // Assign a JIT stack to a pattern * 35330 // 35331 35332 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: */ 35333 _ = mcontext 35334 _ = callback 35335 _ = callback_data 35336 } 35337 35338 // ************************************************ 35339 // 35340 // Free a JIT stack * 35341 // 35342 35343 func Xpcre2_jit_stack_free_8(tls *libc.TLS, jit_stack uintptr) { /* pcre2_jit_misc.c:186:1: */ 35344 _ = jit_stack 35345 } 35346 35347 // ************************************************ 35348 // 35349 // Get target CPU type * 35350 // 35351 35352 func X_pcre2_jit_get_target_8(tls *libc.TLS) uintptr { /* pcre2_jit_misc.c:204:11: */ 35353 return ts + 7657 /* "JIT is not suppo..." */ 35354 } 35355 35356 // ************************************************ 35357 // 35358 // Get size of JIT code * 35359 // 35360 35361 func X_pcre2_jit_get_size_8(tls *libc.TLS, executable_jit uintptr) Tsize_t { /* pcre2_jit_misc.c:220:1: */ 35362 _ = executable_jit 35363 return uint64(0) 35364 } 35365 35366 // End of pcre2_jit_misc.c 35367 35368 // End of pcre2_jit_compile.c 35369 35370 // This function is needed only when memmove() is not available. 35371 35372 // End of pcre2_internal.h 35373 35374 // ************************************************ 35375 // 35376 // Create PCRE2 character tables * 35377 // 35378 35379 // This function builds a set of character tables for use by PCRE2 and returns 35380 // a pointer to them. They are build using the ctype functions, and consequently 35381 // their contents will depend upon the current locale setting. When compiled as 35382 // part of the library, the store is obtained via a general context malloc, if 35383 // supplied, but when PCRE2_DFTABLES is defined (when compiling the pcre2_dftables 35384 // freestanding auxiliary program) malloc() is used, and the function has a 35385 // different name so as not to clash with the prototype in pcre2.h. 35386 // 35387 // Arguments: none when PCRE2_DFTABLES is defined 35388 // else a PCRE2 general context or NULL 35389 // Returns: pointer to the contiguous block of data 35390 // else NULL if memory allocation failed 35391 35392 func Xpcre2_maketables_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_maketables.c:81:30: */ 35393 var yield uintptr = func() uintptr { 35394 if gcontext != uintptr(0) { 35395 return (*struct { 35396 f func(*libc.TLS, Tsize_t, uintptr) uintptr 35397 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmalloc})).f(tls, uint64(Dcbits_offset+Dcbit_length+256), (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data) 35398 } 35399 return libc.Xmalloc(tls, uint64(Dcbits_offset+Dcbit_length+256)) 35400 }() 35401 var i int32 35402 var p uintptr 35403 35404 if yield == uintptr(0) { 35405 return uintptr(0) 35406 } 35407 p = yield 35408 35409 // First comes the lower casing table 35410 35411 for i = 0; i < 256; i++ { 35412 *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = Tuint8_t(libc.Xtolower(tls, i)) 35413 } 35414 35415 // Next the case-flipping table 35416 35417 for i = 0; i < 256; i++ { 35418 *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = func() uint8 { 35419 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISlower) != 0 { 35420 return uint8(libc.Xtoupper(tls, i)) 35421 } 35422 return uint8(libc.Xtolower(tls, i)) 35423 }() 35424 } 35425 35426 // Then the character class tables. Don't try to be clever and save effort on 35427 // exclusive ones - in some locales things may be different. 35428 // 35429 // Note that the table for "space" includes everything "isspace" gives, including 35430 // VT in the default locale. This makes it work for the POSIX class [:space:]. 35431 // From PCRE1 release 8.34 and for all PCRE2 releases it is also correct for Perl 35432 // space, because Perl added VT at release 5.18. 35433 // 35434 // Note also that it is possible for a character to be alnum or alpha without 35435 // being lower or upper, such as "male and female ordinals" (\xAA and \xBA) in the 35436 // fr_FR locale (at least under Debian Linux's locales as of 12/2005). So we must 35437 // test for alnum specially. 35438 35439 libc.Xmemset(tls, p, 0, uint64(Dcbit_length)) 35440 for i = 0; i < 256; i++ { 35441 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISdigit) != 0 { 35442 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_digit+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35443 } 35444 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISupper) != 0 { 35445 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_upper+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35446 } 35447 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISlower) != 0 { 35448 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_lower+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35449 } 35450 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISalnum) != 0 { 35451 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_word+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35452 } 35453 if i == '_' { 35454 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_word+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35455 } 35456 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISspace) != 0 { 35457 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_space+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35458 } 35459 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISxdigit) != 0 { 35460 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_xdigit+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35461 } 35462 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISgraph) != 0 { 35463 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_graph+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35464 } 35465 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISprint) != 0 { 35466 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_print+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35467 } 35468 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISpunct) != 0 { 35469 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_punct+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35470 } 35471 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_IScntrl) != 0 { 35472 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_cntrl+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35473 } 35474 } 35475 p += uintptr(Dcbit_length) 35476 35477 // Finally, the character type table. In this, we used to exclude VT from the 35478 // white space chars, because Perl didn't recognize it as such for \s and for 35479 // comments within regexes. However, Perl changed at release 5.18, so PCRE1 35480 // changed at release 8.34 and it's always been this way for PCRE2. 35481 35482 for i = 0; i < 256; i++ { 35483 var x int32 = 0 35484 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISspace) != 0 { 35485 x = x + Dctype_space 35486 } 35487 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISalpha) != 0 { 35488 x = x + Dctype_letter 35489 } 35490 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISlower) != 0 { 35491 x = x + Dctype_lcletter 35492 } 35493 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISdigit) != 0 { 35494 x = x + Dctype_digit 35495 } 35496 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISalnum) != 0 || i == '_' { 35497 x = x + Dctype_word 35498 } 35499 *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = Tuint8_t(x) 35500 } 35501 35502 return yield 35503 } 35504 35505 func Xpcre2_maketables_free_8(tls *libc.TLS, gcontext uintptr, tables uintptr) { /* pcre2_maketables.c:154:1: */ 35506 if gcontext != 0 { 35507 (*struct { 35508 f func(*libc.TLS, uintptr, uintptr) 35509 })(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) 35510 } else { 35511 libc.Xfree(tls, tables) 35512 } 35513 } 35514 35515 // End of pcre2_maketables.c 35516 35517 // Min and max values for the common repeats; a maximum of UINT32_MAX => 35518 // infinity. 35519 35520 var rep_min = [11]Tuint32_t{ 35521 Tuint32_t(0), Tuint32_t(0), // * and *? 35522 Tuint32_t(1), Tuint32_t(1), // + and +? 35523 Tuint32_t(0), Tuint32_t(0), // ? and ?? 35524 Tuint32_t(0), Tuint32_t(0), // dummy placefillers for OP_CR[MIN]RANGE 35525 Tuint32_t(0), Tuint32_t(1), Tuint32_t(0)} /* pcre2_match.c:123:23 */ // OP_CRPOS{STAR, PLUS, QUERY} 35526 35527 var rep_max = [11]Tuint32_t{ 35528 4294967295, 4294967295, 35529 4294967295, 4294967295, 35530 Tuint32_t(1), Tuint32_t(1), // ? and ?? 35531 Tuint32_t(0), Tuint32_t(0), // dummy placefillers for OP_CR[MIN]RANGE 35532 4294967295, 4294967295, Tuint32_t(1)} /* pcre2_match.c:130:23 */ // OP_CRPOS{STAR, PLUS, QUERY} 35533 35534 // Repetition types - must include OP_CRPOSRANGE (not needed above) 35535 35536 var rep_typ = [12]Tuint32_t{ 35537 REPTYPE_MAX, REPTYPE_MIN, // * and *? 35538 REPTYPE_MAX, REPTYPE_MIN, // + and +? 35539 REPTYPE_MAX, REPTYPE_MIN, // ? and ?? 35540 REPTYPE_MAX, REPTYPE_MIN, // OP_CRRANGE and OP_CRMINRANGE 35541 REPTYPE_POS, REPTYPE_POS, // OP_CRPOSSTAR, OP_CRPOSPLUS 35542 REPTYPE_POS, REPTYPE_POS} /* pcre2_match.c:139:23 */ 35543 35544 // Define short names for general fields in the current backtrack frame, which 35545 // is always pointed to by the F variable. Occasional references to fields in 35546 // other frames are written out explicitly. There are also some fields in the 35547 // current frame whose names start with "temp" that are used for short-term, 35548 // localised backtracking memory. These are #defined with Lxxx names at the point 35549 // of use and undefined afterwards. 35550 35551 // ************************************************ 35552 // 35553 // Process a callout * 35554 // 35555 35556 // This function is called for all callouts, whether "standalone" or at the 35557 // start of a conditional group. Feptr will be pointing to either OP_CALLOUT or 35558 // OP_CALLOUT_STR. A callout block is allocated in pcre2_match() and initialized 35559 // with fixed values. 35560 // 35561 // Arguments: 35562 // F points to the current backtracking frame 35563 // mb points to the match block 35564 // lengthptr where to return the length of the callout item 35565 // 35566 // Returns: the return from the callout 35567 // or 0 if no callout function exists 35568 35569 func do_callout1(tls *libc.TLS, F uintptr, mb uintptr, lengthptr uintptr) int32 { /* pcre2_match.c:267:1: */ 35570 var rc int32 35571 var save0 Tsize_t 35572 var save1 Tsize_t 35573 var callout_ovector uintptr 35574 var cb uintptr 35575 35576 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = func() uint64 { 35577 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CALLOUT { 35578 return uint64(X_pcre2_OP_lengths_8[OP_CALLOUT]) 35579 } 35580 return uint64(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 6))))) 35581 }() 35582 35583 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout == uintptr(0) { 35584 return 0 35585 } // No callout function provided 35586 35587 // The original matching code (pre 10.30) worked directly with the ovector 35588 // passed by the user, and this was passed to callouts. Now that the working 35589 // ovector is in the backtracking frame, it no longer needs to reserve space for 35590 // the overall match offsets (which would waste space in the frame). For backward 35591 // compatibility, however, we pass capture_top and offset_vector to the callout as 35592 // if for the extended ovector, and we ensure that the first two slots are unset 35593 // by preserving and restoring their current contents. Picky compilers complain if 35594 // references such as Fovector[-2] are use directly, so we set up a separate 35595 // pointer. 35596 35597 callout_ovector = F + 128 - uintptr(2)*8 35598 35599 // The cb->version, cb->subject, cb->subject_length, and cb->start_match fields 35600 // are set externally. The first 3 never change; the last is updated for each 35601 // bumpalong. 35602 35603 cb = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcb 35604 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcapture_top = Tuint32_t((*Theapframe)(unsafe.Pointer(F)).Foffset_top)/Tuint32_t(2) + Tuint32_t(1) 35605 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcapture_last = (*Theapframe)(unsafe.Pointer(F)).Fcapture_last 35606 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Foffset_vector = callout_ovector 35607 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fmark = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnomatch_mark 35608 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcurrent_position = Tsize_t((int64((*Theapframe)(unsafe.Pointer(F)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 35609 (*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))))) 35610 (*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))))) 35611 35612 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CALLOUT { 35613 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5))) 35614 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = uint64(0) 35615 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = uintptr(0) 35616 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = uint64(0) 35617 } else { 35618 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(0) 35619 (*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))))) 35620 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1+4*DLINK_SIZE) + uintptr(1) 35621 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = *(*Tsize_t)(unsafe.Pointer(lengthptr)) - uint64(1+4*DLINK_SIZE) - uint64(2) 35622 } 35623 35624 save0 = *(*Tsize_t)(unsafe.Pointer(callout_ovector)) 35625 save1 = *(*Tsize_t)(unsafe.Pointer(callout_ovector + 1*8)) 35626 *(*Tsize_t)(unsafe.Pointer(callout_ovector)) = libc.AssignPtrUint64(callout_ovector+1*8, libc.CplUint64(uint64(0))) 35627 rc = (*struct { 35628 f func(*libc.TLS, uintptr, uintptr) int32 35629 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout})).f(tls, cb, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout_data) 35630 *(*Tsize_t)(unsafe.Pointer(callout_ovector)) = save0 35631 *(*Tsize_t)(unsafe.Pointer(callout_ovector + 1*8)) = save1 35632 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_flags = Tuint32_t(0) 35633 return rc 35634 } 35635 35636 // ************************************************ 35637 // 35638 // Match a back-reference * 35639 // 35640 35641 // This function is called only when it is known that the offset lies within 35642 // the offsets that have so far been used in the match. Note that in caseless 35643 // UTF-8 mode, the number of subject bytes matched may be different to the number 35644 // of reference bytes. (In theory this could also happen in UTF-16 mode, but it 35645 // seems unlikely.) 35646 // 35647 // Arguments: 35648 // offset index into the offset vector 35649 // caseless TRUE if caseless 35650 // F the current backtracking frame pointer 35651 // mb points to match block 35652 // lengthptr pointer for returning the length matched 35653 // 35654 // Returns: = 0 sucessful match; number of code units matched is set 35655 // < 0 no match 35656 // > 0 partial match 35657 35658 func match_ref(tls *libc.TLS, offset Tsize_t, caseless TBOOL, F uintptr, mb uintptr, lengthptr uintptr) int32 { /* pcre2_match.c:355:1: */ 35659 var p TPCRE2_SPTR8 35660 var length Tsize_t 35661 var eptr TPCRE2_SPTR8 35662 var eptr_start TPCRE2_SPTR8 35663 35664 // Deal with an unset group. The default is no match, but there is an option to 35665 // match an empty string. 35666 35667 if offset >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top || *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) == libc.CplUint64(uint64(0)) { 35668 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0) { 35669 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = uint64(0) 35670 return 0 // Match 35671 } else { 35672 return -1 35673 } // No match 35674 } 35675 35676 // Separate the caseless and UTF cases for speed. 35677 35678 eptr = libc.AssignUintptr(&eptr_start, (*Theapframe)(unsafe.Pointer(F)).Feptr) 35679 p = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8))) 35680 length = *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset+uint64(1))*8)) - *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) 35681 35682 if caseless != 0 { 35683 var utf TBOOL = libc.Bool32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UTF != Tuint32_t(0)) 35684 35685 if utf != 0 || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0) { 35686 var endptr TPCRE2_SPTR8 = p + uintptr(length) 35687 35688 // Match characters up to the end of the reference. NOTE: the number of 35689 // code units matched may differ, because in UTF-8 there are some characters 35690 // whose upper and lower case codes have different numbers of bytes. For 35691 // example, U+023A (2 bytes in UTF-8) is the upper case version of U+2C65 (3 35692 // bytes in UTF-8); a sequence of 3 of the former uses 6 bytes, as does a 35693 // sequence of two of the latter. It is important, therefore, to check the 35694 // length along the reference, not along the subject (earlier code did this 35695 // wrong). UCP without uses Unicode properties but without UTF encoding. 35696 35697 for p < endptr { 35698 var c Tuint32_t 35699 var d Tuint32_t 35700 var ur uintptr 35701 if eptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject { 35702 return 1 35703 } // Partial match 35704 35705 if utf != 0 { 35706 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1)))) 35707 if c >= 0xc0 { 35708 if c&0x20 == Tuint32_t(0) { 35709 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1))))&0x3f 35710 } else if c&0x10 == Tuint32_t(0) { 35711 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f 35712 eptr += uintptr(2) 35713 } else if c&0x08 == Tuint32_t(0) { 35714 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 35715 eptr += uintptr(3) 35716 } else if c&0x04 == Tuint32_t(0) { 35717 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 35718 eptr += uintptr(4) 35719 } else { 35720 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 35721 eptr += uintptr(5) 35722 } 35723 } 35724 35725 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) 35726 if d >= 0xc0 { 35727 if d&0x20 == Tuint32_t(0) { 35728 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))&0x3f 35729 } else if d&0x10 == Tuint32_t(0) { 35730 d = d&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f 35731 p += uintptr(2) 35732 } else if d&0x08 == Tuint32_t(0) { 35733 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 35734 p += uintptr(3) 35735 } else if d&0x04 == Tuint32_t(0) { 35736 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 35737 p += uintptr(4) 35738 } else { 35739 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 35740 p += uintptr(5) 35741 } 35742 } 35743 35744 } else { 35745 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1)))) 35746 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) 35747 } 35748 35749 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 35750 if c != d && c != Tuint32_t(int32(d)+(*Tucd_record)(unsafe.Pointer(ur)).Fother_case) { 35751 var pp uintptr = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr((*Tucd_record)(unsafe.Pointer(ur)).Fcaseset)*4 35752 for { 35753 if c < *(*Tuint32_t)(unsafe.Pointer(pp)) { 35754 return -1 35755 } // No match 35756 if c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&pp, 4))) { 35757 break 35758 } 35759 } 35760 } 35761 } 35762 } else { 35763 for ; length > uint64(0); length-- { 35764 var cc Tuint32_t 35765 var cp Tuint32_t 35766 if eptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject { 35767 return 1 35768 } // Partial match 35769 cc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr))) 35770 cp = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p))) 35771 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)))) { 35772 return -1 35773 } // No match 35774 p++ 35775 eptr++ 35776 } 35777 } 35778 } else { 35779 if int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 { 35780 for ; length > uint64(0); length-- { 35781 if eptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject { 35782 return 1 35783 } // Partial match 35784 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) != int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1)))) { 35785 return -1 35786 } // No match 35787 } 35788 } else { 35789 if Tsize_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int64(eptr))/1) < length { 35790 return 1 35791 } // Partial 35792 if libc.Xmemcmp(tls, p, eptr, length*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) != 0 { 35793 return -1 35794 } // No match 35795 eptr += TPCRE2_SPTR8(length) 35796 } 35797 } 35798 35799 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = Tsize_t((int64(eptr) - int64(eptr_start)) / 1) 35800 return 0 // Match 35801 } 35802 35803 //***************************************************************************** 35804 // 35805 // "Recursion" in the match() function 35806 // 35807 // The original match() function was highly recursive, but this proved to be the 35808 // source of a number of problems over the years, mostly because of the relatively 35809 // small system stacks that are commonly found. As new features were added to 35810 // patterns, various kludges were invented to reduce the amount of stack used, 35811 // making the code hard to understand in places. 35812 // 35813 // A version did exist that used individual frames on the heap instead of calling 35814 // match() recursively, but this ran substantially slower. The current version is 35815 // a refactoring that uses a vector of frames to remember backtracking points. 35816 // This runs no slower, and possibly even a bit faster than the original recursive 35817 // implementation. An initial vector of size START_FRAMES_SIZE (enough for maybe 35818 // 50 frames) is allocated on the system stack. If this is not big enough, the 35819 // heap is used for a larger vector. 35820 // 35821 // ******************************************************************************* 35822 // ***************************************************************************** 35823 35824 // ************************************************ 35825 // 35826 // Macros for the match() function * 35827 // 35828 35829 // These macros pack up tests that are used for partial matching several times 35830 // in the code. The second one is used when we already know we are past the end of 35831 // the subject. We set the "hit end" flag if the pointer is at the end of the 35832 // subject and either (a) the pointer is past the earliest inspected character 35833 // (i.e. something has been matched, even if not part of the actual matched 35834 // string), or (b) the pattern contains a lookbehind. These are the conditions for 35835 // which adding more characters may allow the current match to continue. 35836 // 35837 // For hard partial matching, we immediately return a partial match. Otherwise, 35838 // carrying on means that a complete match on the current subject will be sought. 35839 // A partial match is returned only if no complete match can be found. 35840 35841 // These macros are used to implement backtracking. They simulate a recursive 35842 // call to the match() function by means of a local vector of frames which 35843 // remember the backtracking points. 35844 35845 // ************************************************ 35846 // 35847 // Match from current position * 35848 // 35849 35850 // This function is called to run one match attempt at a single starting point 35851 // in the subject. 35852 // 35853 // Performance note: It might be tempting to extract commonly used fields from the 35854 // mb structure (e.g. end_subject) into individual variables to improve 35855 // performance. Tests using gcc on a SPARC disproved this; in the first case, it 35856 // made performance worse. 35857 // 35858 // Arguments: 35859 // start_eptr starting character in subject 35860 // start_ecode starting position in compiled code 35861 // ovector pointer to the final output vector 35862 // oveccount number of pairs in ovector 35863 // top_bracket number of capturing parentheses in the pattern 35864 // frame_size size of each backtracking frame 35865 // mb pointer to "static" variables block 35866 // 35867 // Returns: MATCH_MATCH if matched ) these values are >= 0 35868 // MATCH_NOMATCH if failed to match ) 35869 // negative MATCH_xxx value for PRUNE, SKIP, etc 35870 // negative PCRE2_ERROR_xxx value if aborted by an error condition 35871 // (e.g. stopped by repeated call or depth limit) 35872 35873 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: */ 35874 bp := tls.Alloc(40) 35875 defer tls.Free(40) 35876 35877 // Frame-handling variables 35878 35879 var F uintptr // Current frame pointer 35880 var N uintptr // Temporary frame pointers 35881 var P uintptr 35882 var assert_accept_frame uintptr // For passing back a frame with captures 35883 var frame_copy_size Tsize_t // Amount to copy when creating a new frame 35884 35885 // Local variables that do not need to be preserved over calls to RRMATCH(). 35886 35887 var bracode TPCRE2_SPTR8 // Temp pointer to start of group 35888 var offset Tsize_t // Used for group offsets 35889 // var length Tsize_t at bp, 8 35890 // Used for various length calculations 35891 35892 var rrc int32 // Return from functions & backtracking "recursions" 35893 var proptype int32 // Type of character property 35894 35895 var i Tuint32_t // Used for local loops 35896 var fc Tuint32_t // Character values 35897 var number Tuint32_t // Used for group and other numbers 35898 var reptype Tuint32_t // Type of repetition (0 to avoid compiler warning) 35899 var group_frame_type Tuint32_t // Specifies type for new group frames 35900 35901 var condition TBOOL // Used in conditional groups 35902 var cur_is_word TBOOL // Used in "word" tests 35903 var prev_is_word TBOOL // Used in "word" tests 35904 35905 // UTF and UCP flags 35906 35907 var utf TBOOL 35908 var ucp TBOOL 35909 var maxsize Tsize_t 35910 var newsize Tsize_t 35911 var new uintptr 35912 var cc Tuint32_t 35913 var dc Tuint32_t 35914 var cc1 Tuint32_t 35915 var ch Tuint32_t 35916 var ch1 Tuint32_t 35917 var ch2 Tuint32_t 35918 var othercase Tuint32_t 35919 var cc2 Tuint32_t 35920 var cc3 Tuint32_t 35921 var cc4 Tuint32_t 35922 var d Tuint32_t 35923 var d1 Tuint32_t 35924 var len int32 35925 var d2 Tuint32_t 35926 var d3 Tuint32_t 35927 var d4 Tuint32_t 35928 var len1 int32 35929 var d5 Tuint32_t 35930 var len2 int32 35931 var len3 int32 35932 var ok TBOOL 35933 var ok1 TBOOL 35934 var cp uintptr 35935 var prop uintptr 35936 var notmatch TBOOL 35937 var chartype int32 35938 var ok2 TBOOL 35939 var prop1 uintptr 35940 var category int32 35941 var category1 int32 35942 var cp1 uintptr 35943 var ok3 TBOOL 35944 var prop2 uintptr 35945 var notmatch1 TBOOL 35946 var cc5 Tuint32_t 35947 var cc6 Tuint32_t 35948 var cc7 Tuint32_t 35949 var cc8 Tuint32_t 35950 var cc9 Tuint32_t 35951 var chartype1 int32 35952 var ok4 TBOOL 35953 var prop3 uintptr 35954 var category2 int32 35955 var category3 int32 35956 var cp2 uintptr 35957 var ok5 TBOOL 35958 var prop4 uintptr 35959 var len4 int32 35960 var chartype2 int32 35961 var len5 int32 35962 var len6 int32 35963 var len7 int32 35964 var len8 int32 35965 var ok6 TBOOL 35966 var prop5 uintptr 35967 var len9 int32 35968 var category4 int32 35969 var len10 int32 35970 var len11 int32 35971 var category5 int32 35972 var len12 int32 35973 var cp3 uintptr 35974 var len13 int32 35975 var len14 int32 35976 var len15 int32 35977 var ok7 TBOOL 35978 var prop6 uintptr 35979 var len16 int32 35980 var notmatch2 TBOOL 35981 var lgb int32 35982 var rgb int32 35983 var fptr TPCRE2_SPTR8 35984 var len17 int32 35985 var gotspace TBOOL 35986 var len18 int32 35987 var gotspace1 TBOOL 35988 var len19 int32 35989 var len20 int32 35990 var len21 int32 35991 var len22 int32 35992 var len23 int32 35993 var len24 int32 35994 var len25 int32 35995 var count int32 35996 var slot TPCRE2_SPTR8 35997 // var slength Tsize_t at bp+8, 8 35998 35999 // var slength1 Tsize_t at bp+16, 8 36000 36001 // var slength2 Tsize_t at bp+24, 8 36002 36003 // var slength3 Tsize_t at bp+32, 8 36004 36005 var samelengths TBOOL 36006 var next_ecode TPCRE2_SPTR8 36007 var next_ecode1 TPCRE2_SPTR8 36008 var next_ecode2 TPCRE2_SPTR8 36009 var count1 int32 36010 var slot1 TPCRE2_SPTR8 36011 var count2 int32 36012 var slot2 TPCRE2_SPTR8 36013 var y Tuint32_t 36014 var cat int32 36015 var lastptr TPCRE2_SPTR8 36016 var cat1 int32 36017 var nextptr TPCRE2_SPTR8 36018 N = uintptr(0) 36019 P = uintptr(0) 36020 assert_accept_frame = uintptr(0) 36021 reptype = Tuint32_t(0) 36022 utf = libc.Bool32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UTF != Tuint32_t(0)) 36023 ucp = libc.Bool32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) 36024 36025 // This is the length of the last part of a backtracking frame that must be 36026 // copied when a new frame is created. 36027 36028 frame_copy_size = frame_size - Tsize_t(uintptr(0)+80) 36029 36030 // Set up the first current frame at the start of the vector, and initialize 36031 // fields that are not reset for new frames. 36032 36033 F = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames 36034 (*Theapframe)(unsafe.Pointer(F)).Frdepth = Tuint32_t(0) // "Recursion" depth 36035 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = Tuint32_t(0) // Number of most recent capture 36036 (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse = DRECURSE_UNSET // Not pattern recursing. 36037 (*Theapframe)(unsafe.Pointer(F)).Fstart_match = libc.AssignPtrUintptr(F+80, start_eptr) // Current data pointer and start match 36038 (*Theapframe)(unsafe.Pointer(F)).Fmark = uintptr(0) // Most recent mark 36039 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = uint64(0) // End of captures within the frame 36040 (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset = libc.CplUint64(uint64(0)) // Saved frame of most recent group 36041 group_frame_type = Tuint32_t(0) // Not a start of group frame 36042 goto NEW_FRAME // Start processing with this frame 36043 36044 // Come back here when we want to create a new frame for remembering a 36045 // backtracking point. 36046 36047 MATCH_RECURSE: 36048 36049 // Set up a new backtracking frame. If the vector is full, get a new one 36050 // on the heap, doubling the size, but constrained by the heap limit. 36051 36052 N = F + uintptr(frame_size) 36053 if !(N >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames_top) { 36054 goto __1 36055 } 36056 36057 newsize = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size * uint64(2) 36058 36059 if !(newsize/uint64(1024) > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit) { 36060 goto __2 36061 } 36062 36063 maxsize = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit * uint64(1024) / frame_size * frame_size 36064 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size >= maxsize) { 36065 goto __3 36066 } 36067 return -63 36068 __3: 36069 ; 36070 newsize = maxsize 36071 __2: 36072 ; 36073 36074 new = (*struct { 36075 f func(*libc.TLS, Tsize_t, uintptr) uintptr 36076 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmalloc})).f(tls, newsize, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 36077 if !(new == uintptr(0)) { 36078 goto __4 36079 } 36080 return -48 36081 __4: 36082 ; 36083 libc.Xmemcpy(tls, new, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size) 36084 36085 F = new + uintptr((int64(F)-int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames))/1) 36086 N = F + uintptr(frame_size) 36087 36088 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames) { 36089 goto __5 36090 } 36091 (*struct { 36092 f func(*libc.TLS, uintptr, uintptr) 36093 })(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) 36094 __5: 36095 ; 36096 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames = new 36097 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames_top = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(newsize) 36098 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = newsize 36099 __1: 36100 ; 36101 36102 // Copy those fields that must be copied into the new frame, increase the 36103 // "recursion" depth (i.e. the new frame's index) and then make the new frame 36104 // current. 36105 36106 libc.Xmemcpy(tls, N+uintptr(uint64(uintptr(0)+80)), 36107 F+uintptr(uint64(uintptr(0)+80)), 36108 frame_copy_size) 36109 36110 (*Theapframe)(unsafe.Pointer(N)).Frdepth = (*Theapframe)(unsafe.Pointer(F)).Frdepth + Tuint32_t(1) 36111 F = N 36112 36113 // Carry on processing with a new frame. 36114 36115 NEW_FRAME: 36116 (*Theapframe)(unsafe.Pointer(F)).Fgroup_frame_type = group_frame_type 36117 (*Theapframe)(unsafe.Pointer(F)).Fecode = start_ecode // Starting code pointer 36118 (*Theapframe)(unsafe.Pointer(F)).Fback_frame = frame_size // Default is go back one frame 36119 36120 // If this is a special type of group frame, remember its offset for quick 36121 // access at the end of the group. If this is a recursion, set a new current 36122 // recursion value. 36123 36124 if !(group_frame_type != Tuint32_t(0)) { 36125 goto __6 36126 } 36127 36128 (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset = Tsize_t((int64(F) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames)) / 1) 36129 if !(group_frame_type&0xffff0000 == DGF_RECURSE) { 36130 goto __7 36131 } 36132 (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse = group_frame_type & 0x0000ffff 36133 __7: 36134 ; 36135 group_frame_type = Tuint32_t(0) 36136 __6: 36137 ; 36138 36139 // ========================================================================= 36140 // This is the main processing loop. First check that we haven't recorded too 36141 // many backtracks (search tree is too large), or that we haven't exceeded the 36142 // recursive depth limit (used too many backtracking frames). If not, process the 36143 // opcodes. 36144 36145 if !(libc.PostIncUint32(&(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_call_count, 1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit) { 36146 goto __8 36147 } 36148 return -47 36149 __8: 36150 ; 36151 if !((*Theapframe)(unsafe.Pointer(F)).Frdepth >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth) { 36152 goto __9 36153 } 36154 return -53 36155 __9: 36156 ; 36157 36158 __10: 36159 36160 (*Theapframe)(unsafe.Pointer(F)).Fop = *(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)) // Cast needed for 16-bit and 32-bit modes 36161 switch int32((*Theapframe)(unsafe.Pointer(F)).Fop) { 36162 // ===================================================================== 36163 // Before OP_ACCEPT there may be any number of OP_CLOSE opcodes, to close 36164 // any currently open capturing brackets. Unlike reaching the end of a group, 36165 // where we know the starting frame is at the top of the chained frames, in 36166 // this case we have to search back for the relevant frame in case other types 36167 // of group that use chained frames have intervened. Multiple OP_CLOSEs always 36168 // come innermost first, which matches the chain order. We can ignore this in 36169 // a recursion, because captures are not passed out of recursions. 36170 36171 case OP_CLOSE: 36172 goto __14 36173 36174 // ===================================================================== 36175 // Real or forced end of the pattern, assertion, or recursion. In an 36176 // assertion ACCEPT, update the last used pointer and remember the current 36177 // frame so that the captures and mark can be fished out of it. 36178 36179 case OP_ASSERT_ACCEPT: 36180 goto __15 36181 36182 // If recursing, we have to find the most recent recursion. 36183 36184 case OP_ACCEPT: 36185 goto __16 36186 case OP_END: 36187 goto __17 // Note: NOT RRETURN 36188 36189 //===================================================================== 36190 // Match any single character type except newline; have to take care with 36191 // CRLF newlines and partial matching. 36192 36193 case OP_ANY: 36194 goto __18 36195 // Fall through 36196 36197 // Match any single character whatsoever. 36198 36199 case OP_ALLANY: 36200 goto __19 36201 36202 // ===================================================================== 36203 // Match a single code unit, even in UTF mode. This opcode really does 36204 // match any code unit, even newline. (It really should be called ANYCODEUNIT, 36205 // of course - the byte name is from pre-16 bit days.) 36206 36207 case OP_ANYBYTE: 36208 goto __20 36209 36210 // ===================================================================== 36211 // Match a single character, casefully 36212 36213 case OP_CHAR: 36214 goto __21 36215 36216 // ===================================================================== 36217 // Match a single character, caselessly. If we are at the end of the 36218 // subject, give up immediately. We get here only when the pattern character 36219 // has at most one other case. Characters with more than two cases are coded 36220 // as OP_PROP with the pseudo-property PT_CLIST. 36221 36222 case OP_CHARI: 36223 goto __22 36224 36225 // ===================================================================== 36226 // Match not a single character. 36227 36228 case OP_NOT: 36229 goto __23 36230 case OP_NOTI: 36231 goto __24 36232 36233 // ===================================================================== 36234 // Match a single character repeatedly. 36235 36236 case OP_EXACT: 36237 goto __25 36238 case OP_EXACTI: 36239 goto __26 36240 36241 case OP_POSUPTO: 36242 goto __27 36243 case OP_POSUPTOI: 36244 goto __28 36245 36246 case OP_UPTO: 36247 goto __29 36248 case OP_UPTOI: 36249 goto __30 36250 36251 case OP_MINUPTO: 36252 goto __31 36253 case OP_MINUPTOI: 36254 goto __32 36255 36256 case OP_POSSTAR: 36257 goto __33 36258 case OP_POSSTARI: 36259 goto __34 36260 36261 case OP_POSPLUS: 36262 goto __35 36263 case OP_POSPLUSI: 36264 goto __36 36265 36266 case OP_POSQUERY: 36267 goto __37 36268 case OP_POSQUERYI: 36269 goto __38 36270 36271 case OP_STAR: 36272 goto __39 36273 case OP_STARI: 36274 goto __40 36275 case OP_MINSTAR: 36276 goto __41 36277 case OP_MINSTARI: 36278 goto __42 36279 case OP_PLUS: 36280 goto __43 36281 case OP_PLUSI: 36282 goto __44 36283 case OP_MINPLUS: 36284 goto __45 36285 case OP_MINPLUSI: 36286 goto __46 36287 case OP_QUERY: 36288 goto __47 36289 case OP_QUERYI: 36290 goto __48 36291 case OP_MINQUERY: 36292 goto __49 36293 case OP_MINQUERYI: 36294 goto __50 36295 36296 // ===================================================================== 36297 // Match a negated single one-byte character repeatedly. This is almost a 36298 // repeat of the code for a repeated single character, but I haven't found a 36299 // nice way of commoning these up that doesn't require a test of the 36300 // positive/negative option for each character match. Maybe that wouldn't add 36301 // very much to the time taken, but character matching *is* what this is all 36302 // about... 36303 36304 case OP_NOTEXACT: 36305 goto __51 36306 case OP_NOTEXACTI: 36307 goto __52 36308 36309 case OP_NOTUPTO: 36310 goto __53 36311 case OP_NOTUPTOI: 36312 goto __54 36313 36314 case OP_NOTMINUPTO: 36315 goto __55 36316 case OP_NOTMINUPTOI: 36317 goto __56 36318 36319 case OP_NOTPOSSTAR: 36320 goto __57 36321 case OP_NOTPOSSTARI: 36322 goto __58 36323 36324 case OP_NOTPOSPLUS: 36325 goto __59 36326 case OP_NOTPOSPLUSI: 36327 goto __60 36328 36329 case OP_NOTPOSQUERY: 36330 goto __61 36331 case OP_NOTPOSQUERYI: 36332 goto __62 36333 36334 case OP_NOTPOSUPTO: 36335 goto __63 36336 case OP_NOTPOSUPTOI: 36337 goto __64 36338 36339 case OP_NOTSTAR: 36340 goto __65 36341 case OP_NOTSTARI: 36342 goto __66 36343 case OP_NOTMINSTAR: 36344 goto __67 36345 case OP_NOTMINSTARI: 36346 goto __68 36347 case OP_NOTPLUS: 36348 goto __69 36349 case OP_NOTPLUSI: 36350 goto __70 36351 case OP_NOTMINPLUS: 36352 goto __71 36353 case OP_NOTMINPLUSI: 36354 goto __72 36355 case OP_NOTQUERY: 36356 goto __73 36357 case OP_NOTQUERYI: 36358 goto __74 36359 case OP_NOTMINQUERY: 36360 goto __75 36361 case OP_NOTMINQUERYI: 36362 goto __76 36363 36364 // ===================================================================== 36365 // Match a bit-mapped character class, possibly repeatedly. These opcodes 36366 // are used when all the characters in the class have values in the range 36367 // 0-255, and either the matching is caseful, or the characters are in the 36368 // range 0-127 when UTF processing is enabled. The only difference between 36369 // OP_CLASS and OP_NCLASS occurs when a data character outside the range is 36370 // encountered. 36371 36372 case OP_NCLASS: 36373 goto __77 36374 case OP_CLASS: 36375 goto __78 36376 // Control never gets here 36377 36378 // ===================================================================== 36379 // Match an extended character class. In the 8-bit library, this opcode is 36380 // encountered only when UTF-8 mode mode is supported. In the 16-bit and 36381 // 32-bit libraries, codepoints greater than 255 may be encountered even when 36382 // UTF is not supported. 36383 36384 case OP_XCLASS: 36385 goto __79 36386 36387 // ===================================================================== 36388 // Match various character types when PCRE2_UCP is not set. These opcodes 36389 // are not generated when PCRE2_UCP is set - instead appropriate property 36390 // tests are compiled. 36391 36392 case OP_NOT_DIGIT: 36393 goto __80 36394 36395 case OP_DIGIT: 36396 goto __81 36397 36398 case OP_NOT_WHITESPACE: 36399 goto __82 36400 36401 case OP_WHITESPACE: 36402 goto __83 36403 36404 case OP_NOT_WORDCHAR: 36405 goto __84 36406 36407 case OP_WORDCHAR: 36408 goto __85 36409 36410 case OP_ANYNL: 36411 goto __86 36412 36413 case OP_NOT_HSPACE: 36414 goto __87 36415 36416 case OP_HSPACE: 36417 goto __88 36418 36419 case OP_NOT_VSPACE: 36420 goto __89 36421 36422 case OP_VSPACE: 36423 goto __90 36424 36425 // ===================================================================== 36426 // Check the next character by Unicode property. We will get here only 36427 // if the support is in the binary; otherwise a compile-time error occurs. 36428 36429 case OP_PROP: 36430 goto __91 36431 case OP_NOTPROP: 36432 goto __92 36433 36434 // ===================================================================== 36435 // Match an extended Unicode sequence. We will get here only if the support 36436 // is in the binary; otherwise a compile-time error occurs. 36437 36438 case OP_EXTUNI: 36439 goto __93 36440 36441 // ===================================================================== 36442 // Match a single character type repeatedly. Note that the property type 36443 // does not need to be in a stack frame as it is not used within an RMATCH() 36444 // loop. 36445 36446 case OP_TYPEEXACT: 36447 goto __94 36448 36449 case OP_TYPEUPTO: 36450 goto __95 36451 case OP_TYPEMINUPTO: 36452 goto __96 36453 36454 case OP_TYPEPOSSTAR: 36455 goto __97 36456 36457 case OP_TYPEPOSPLUS: 36458 goto __98 36459 36460 case OP_TYPEPOSQUERY: 36461 goto __99 36462 36463 case OP_TYPEPOSUPTO: 36464 goto __100 36465 36466 case OP_TYPESTAR: 36467 goto __101 36468 case OP_TYPEMINSTAR: 36469 goto __102 36470 case OP_TYPEPLUS: 36471 goto __103 36472 case OP_TYPEMINPLUS: 36473 goto __104 36474 case OP_TYPEQUERY: 36475 goto __105 36476 case OP_TYPEMINQUERY: 36477 goto __106 // End of repeat character type processing 36478 36479 // ===================================================================== 36480 // Match a back reference, possibly repeatedly. Look past the end of the 36481 // item to see if there is repeat information following. The OP_REF and 36482 // OP_REFI opcodes are used for a reference to a numbered group or to a 36483 // non-duplicated named group. For a duplicated named group, OP_DNREF and 36484 // OP_DNREFI are used. In this case we must scan the list of groups to which 36485 // the name refers, and use the first one that is set. 36486 36487 case OP_DNREF: 36488 goto __107 36489 case OP_DNREFI: 36490 goto __108 36491 36492 case OP_REF: 36493 goto __109 36494 case OP_REFI: 36495 goto __110 36496 // Control never gets here 36497 36498 // ========================================================================= 36499 // Opcodes for the start of various parenthesized items 36500 // ========================================================================= 36501 36502 // In all cases, if the result of RMATCH() is MATCH_THEN, check whether the 36503 // (*THEN) is within the current branch by comparing the address of OP_THEN 36504 // that is passed back with the end of the branch. If (*THEN) is within the 36505 // current branch, and the branch is one of two or more alternatives (it 36506 // either starts or ends with OP_ALT), we have reached the limit of THEN's 36507 // action, so convert the return code to NOMATCH, which will cause normal 36508 // backtracking to happen from now on. Otherwise, THEN is passed back to an 36509 // outer alternative. This implements Perl's treatment of parenthesized 36510 // groups, where a group not containing | does not affect the current 36511 // alternative, that is, (X) is NOT the same as (X|(*F)). 36512 36513 // ===================================================================== 36514 // BRAZERO, BRAMINZERO and SKIPZERO occur just before a non-possessive 36515 // bracket group, indicating that it may occur zero times. It may repeat 36516 // infinitely, or not at all - i.e. it could be ()* or ()? or even (){0} in 36517 // the pattern. Brackets with fixed upper repeat limits are compiled as a 36518 // number of copies, with the optional ones preceded by BRAZERO or BRAMINZERO. 36519 // Possessive groups with possible zero repeats are preceded by BRAPOSZERO. 36520 36521 case OP_BRAZERO: 36522 goto __111 36523 36524 case OP_BRAMINZERO: 36525 goto __112 36526 36527 case OP_SKIPZERO: 36528 goto __113 36529 36530 // ===================================================================== 36531 // Handle possessive brackets with an unlimited repeat. The end of these 36532 // brackets will always be OP_KETRPOS, which returns MATCH_KETRPOS without 36533 // going further in the pattern. 36534 36535 case OP_BRAPOSZERO: 36536 goto __114 36537 36538 case OP_BRAPOS: 36539 goto __115 36540 case OP_SBRAPOS: 36541 goto __116 36542 36543 case OP_CBRAPOS: 36544 goto __117 36545 case OP_SCBRAPOS: 36546 goto __118 36547 36548 // ===================================================================== 36549 // Handle non-capturing brackets that cannot match an empty string. When we 36550 // get to the final alternative within the brackets, as long as there are no 36551 // THEN's in the pattern, we can optimize by not recording a new backtracking 36552 // point. (Ideally we should test for a THEN within this group, but we don't 36553 // have that information.) Don't do this if we are at the very top level, 36554 // however, because that would make handling assertions and once-only brackets 36555 // messier when there is nothing to go back to. 36556 36557 case OP_BRA: 36558 goto __119 36559 36560 // ===================================================================== 36561 // Handle a capturing bracket, other than those that are possessive with an 36562 // unlimited repeat. 36563 36564 case OP_CBRA: 36565 goto __120 36566 case OP_SCBRA: 36567 goto __121 36568 36569 // ===================================================================== 36570 // Atomic groups and non-capturing brackets that can match an empty string 36571 // must record a backtracking point and also set up a chained frame. 36572 36573 case OP_ONCE: 36574 goto __122 36575 case OP_SCRIPT_RUN: 36576 goto __123 36577 case OP_SBRA: 36578 goto __124 36579 // Control never reaches here. 36580 36581 // ===================================================================== 36582 // Recursion either matches the current regex, or some subexpression. The 36583 // offset data is the offset to the starting bracket from the start of the 36584 // whole pattern. (This is so that it works from duplicated subpatterns.) 36585 36586 case OP_RECURSE: 36587 goto __125 36588 // Control never reaches here. 36589 36590 // ===================================================================== 36591 // Positive assertions are like other groups except that PCRE doesn't allow 36592 // the effect of (*THEN) to escape beyond an assertion; it is therefore 36593 // treated as NOMATCH. (*ACCEPT) is treated as successful assertion, with its 36594 // captures and mark retained. Any other return is an error. 36595 36596 case OP_ASSERT: 36597 goto __126 36598 case OP_ASSERTBACK: 36599 goto __127 36600 case OP_ASSERT_NA: 36601 goto __128 36602 case OP_ASSERTBACK_NA: 36603 goto __129 36604 36605 // ===================================================================== 36606 // Handle negative assertions. Loop for each non-matching branch as for 36607 // positive assertions. 36608 36609 case OP_ASSERT_NOT: 36610 goto __130 36611 case OP_ASSERTBACK_NOT: 36612 goto __131 36613 36614 // ===================================================================== 36615 // The callout item calls an external function, if one is provided, passing 36616 // details of the match so far. This is mainly for debugging, though the 36617 // function is able to force a failure. 36618 36619 case OP_CALLOUT: 36620 goto __132 36621 case OP_CALLOUT_STR: 36622 goto __133 36623 36624 // ===================================================================== 36625 // Conditional group: compilation checked that there are no more than two 36626 // branches. If the condition is false, skipping the first branch takes us 36627 // past the end of the item if there is only one branch, but that's exactly 36628 // what we want. 36629 36630 case OP_COND: 36631 goto __134 36632 case OP_SCOND: 36633 goto __135 36634 36635 // ========================================================================= 36636 // End of start of parenthesis opcodes 36637 // ========================================================================= 36638 36639 // ===================================================================== 36640 // Move the subject pointer back. This occurs only at the start of each 36641 // branch of a lookbehind assertion. If we are too close to the start to move 36642 // back, fail. When working with UTF-8 we move back a number of characters, 36643 // not bytes. 36644 36645 case OP_REVERSE: 36646 goto __136 36647 36648 // ===================================================================== 36649 // An alternation is the end of a branch; scan along to find the end of the 36650 // bracketed group. 36651 36652 case OP_ALT: 36653 goto __137 36654 36655 // ===================================================================== 36656 // The end of a parenthesized group. For all but OP_BRA and OP_COND, the 36657 // starting frame was added to the chained frames in order to remember the 36658 // starting subject position for the group. 36659 36660 case OP_KET: 36661 goto __138 36662 case OP_KETRMIN: 36663 goto __139 36664 case OP_KETRMAX: 36665 goto __140 36666 case OP_KETRPOS: 36667 goto __141 36668 36669 // ===================================================================== 36670 // Start and end of line assertions, not multiline mode. 36671 36672 case OP_CIRC: 36673 goto __142 36674 36675 case OP_SOD: 36676 goto __143 36677 36678 // When PCRE2_NOTEOL is unset, assert before the subject end, or a 36679 // terminating newline unless PCRE2_DOLLAR_ENDONLY is set. 36680 36681 case OP_DOLL: 36682 goto __144 36683 36684 // Fall through 36685 // Unconditional end of subject assertion (\z) 36686 36687 case OP_EOD: 36688 goto __145 36689 36690 // End of subject or ending \n assertion (\Z) 36691 36692 case OP_EODN: 36693 goto __146 36694 36695 // ===================================================================== 36696 // Start and end of line assertions, multiline mode. 36697 36698 // Start of subject unless notbol, or after any newline except for one at 36699 // the very end, unless PCRE2_ALT_CIRCUMFLEX is set. 36700 36701 case OP_CIRCM: 36702 goto __147 36703 36704 // Assert before any newline, or before end of subject unless noteol is 36705 // set. 36706 36707 case OP_DOLLM: 36708 goto __148 36709 36710 // ===================================================================== 36711 // Start of match assertion 36712 36713 case OP_SOM: 36714 goto __149 36715 36716 // ===================================================================== 36717 // Reset the start of match point 36718 36719 case OP_SET_SOM: 36720 goto __150 36721 36722 // ===================================================================== 36723 // Word boundary assertions. Find out if the previous and current 36724 // characters are "word" characters. It takes a bit more work in UTF mode. 36725 // Characters > 255 are assumed to be "non-word" characters when PCRE2_UCP is 36726 // not set. When it is set, use Unicode properties if available, even when not 36727 // in UTF mode. Remember the earliest and latest consulted characters. 36728 36729 case OP_NOT_WORD_BOUNDARY: 36730 goto __151 36731 case OP_WORD_BOUNDARY: 36732 goto __152 36733 36734 // ===================================================================== 36735 // Backtracking (*VERB)s, with and without arguments. Note that if the 36736 // pattern is successfully matched, we do not come back from RMATCH. 36737 36738 case OP_MARK: 36739 goto __153 36740 36741 case OP_FAIL: 36742 goto __154 36743 36744 // Record the current recursing group number in mb->verb_current_recurse 36745 // when a backtracking return such as MATCH_COMMIT is given. This enables the 36746 // recurse processing to catch verbs from within the recursion. 36747 36748 case OP_COMMIT: 36749 goto __155 36750 36751 case OP_COMMIT_ARG: 36752 goto __156 36753 36754 case OP_PRUNE: 36755 goto __157 36756 36757 case OP_PRUNE_ARG: 36758 goto __158 36759 36760 case OP_SKIP: 36761 goto __159 36762 36763 // Note that, for Perl compatibility, SKIP with an argument does NOT set 36764 // nomatch_mark. When a pattern match ends with a SKIP_ARG for which there was 36765 // not a matching mark, we have to re-run the match, ignoring the SKIP_ARG 36766 // that failed and any that precede it (either they also failed, or were not 36767 // triggered). To do this, we maintain a count of executed SKIP_ARGs. If a 36768 // SKIP_ARG gets to top level, the match is re-run with mb->ignore_skip_arg 36769 // set to the count of the one that failed. 36770 36771 case OP_SKIP_ARG: 36772 goto __160 36773 36774 // For THEN (and THEN_ARG) we pass back the address of the opcode, so that 36775 // the branch in which it occurs can be determined. 36776 36777 case OP_THEN: 36778 goto __161 36779 36780 case OP_THEN_ARG: 36781 goto __162 36782 36783 // ===================================================================== 36784 // There's been some horrible disaster. Arrival here can only mean there is 36785 // something seriously wrong in the code above or the OP_xxx definitions. 36786 36787 default: 36788 goto __163 36789 } 36790 goto __13 36791 36792 // ===================================================================== 36793 // Before OP_ACCEPT there may be any number of OP_CLOSE opcodes, to close 36794 // any currently open capturing brackets. Unlike reaching the end of a group, 36795 // where we know the starting frame is at the top of the chained frames, in 36796 // this case we have to search back for the relevant frame in case other types 36797 // of group that use chained frames have intervened. Multiple OP_CLOSEs always 36798 // come innermost first, which matches the chain order. We can ignore this in 36799 // a recursion, because captures are not passed out of recursions. 36800 36801 __14: 36802 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse == DRECURSE_UNSET) { 36803 goto __164 36804 } 36805 36806 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)))) 36807 offset = (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset 36808 __165: 36809 36810 if !(offset == libc.CplUint64(uint64(0))) { 36811 goto __168 36812 } 36813 return -44 36814 __168: 36815 ; 36816 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(offset) 36817 P = N - uintptr(frame_size) 36818 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type == DGF_CAPTURE|number) { 36819 goto __169 36820 } 36821 goto __167 36822 __169: 36823 ; 36824 offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 36825 goto __166 36826 __166: 36827 goto __165 36828 goto __167 36829 __167: 36830 ; 36831 offset = Tsize_t(number<<1 - Tuint32_t(2)) 36832 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = number 36833 *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(P)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36834 *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset+uint64(1))*8)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(F)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36835 if !(offset >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top) { 36836 goto __170 36837 } 36838 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = offset + uint64(2) 36839 __170: 36840 ; 36841 __164: 36842 ; 36843 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 36844 goto __13 36845 36846 // ===================================================================== 36847 // Real or forced end of the pattern, assertion, or recursion. In an 36848 // assertion ACCEPT, update the last used pointer and remember the current 36849 // frame so that the captures and mark can be fished out of it. 36850 36851 __15: 36852 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 36853 goto __171 36854 } 36855 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 36856 __171: 36857 ; 36858 assert_accept_frame = F 36859 rrc = -999 36860 goto RETURN_SWITCH 36861 36862 // If recursing, we have to find the most recent recursion. 36863 36864 __16: 36865 __17: 36866 36867 // Handle end of a recursion. 36868 36869 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 36870 goto __172 36871 } 36872 36873 offset = (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset 36874 __173: 36875 36876 if !(offset == libc.CplUint64(uint64(0))) { 36877 goto __176 36878 } 36879 return -44 36880 __176: 36881 ; 36882 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(offset) 36883 P = N - uintptr(frame_size) 36884 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type&0xffff0000 == DGF_RECURSE) { 36885 goto __177 36886 } 36887 goto __175 36888 __177: 36889 ; 36890 offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 36891 goto __174 36892 __174: 36893 goto __173 36894 goto __175 36895 __175: 36896 ; 36897 36898 // N is now the frame of the recursion; the previous frame is at the 36899 // OP_RECURSE position. Go back there, copying the current subject position 36900 // and mark, and the start_match position (\K might have changed it), and 36901 // then move on past the OP_RECURSE. 36902 36903 (*Theapframe)(unsafe.Pointer(P)).Feptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 36904 (*Theapframe)(unsafe.Pointer(P)).Fmark = (*Theapframe)(unsafe.Pointer(F)).Fmark 36905 (*Theapframe)(unsafe.Pointer(P)).Fstart_match = (*Theapframe)(unsafe.Pointer(F)).Fstart_match 36906 F = P 36907 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 36908 goto __11 36909 __172: 36910 ; 36911 36912 // Not a recursion. Fail for an empty string match if either PCRE2_NOTEMPTY 36913 // is set, or if PCRE2_NOTEMPTY_ATSTART is set and we have matched at the 36914 // start of the subject. In both cases, backtracking will then try other 36915 // alternatives, if any. 36916 36917 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))) { 36918 goto __178 36919 } 36920 rrc = DMATCH_NOMATCH 36921 goto RETURN_SWITCH 36922 __178: 36923 ; 36924 36925 // Also fail if PCRE2_ENDANCHORED is set and the end of the match is not 36926 // the end of the subject. After (*ACCEPT) we fail the entire match (at this 36927 // position) but backtrack on reaching the end of the pattern. 36928 36929 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)) { 36930 goto __179 36931 } 36932 36933 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_END) { 36934 goto __180 36935 } 36936 rrc = DMATCH_NOMATCH 36937 goto RETURN_SWITCH 36938 __180: 36939 ; 36940 36941 return DMATCH_NOMATCH 36942 __179: 36943 ; 36944 36945 // We have a successful match of the whole pattern. Record the result and 36946 // then do a direct return from the function. If there is space in the offset 36947 // vector, set any pairs that follow the highest-numbered captured string but 36948 // are less than the number of capturing groups in the pattern to PCRE2_UNSET. 36949 // It is documented that this happens. "Gaps" are set to PCRE2_UNSET 36950 // dynamically. It is only those at the end that need setting here. 36951 36952 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_match_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr // Record where we ended 36953 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top = (*Theapframe)(unsafe.Pointer(F)).Foffset_top // and how many extracts were taken 36954 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark = (*Theapframe)(unsafe.Pointer(F)).Fmark // and the last success mark 36955 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 36956 goto __181 36957 } 36958 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 36959 __181: 36960 ; 36961 36962 *(*Tsize_t)(unsafe.Pointer(ovector)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(F)).Fstart_match) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36963 *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(F)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36964 36965 // Set i to the smaller of the sizes of the external and frame ovectors. 36966 36967 i = Tuint32_t(2 * func() int32 { 36968 if int32(top_bracket)+1 > int32(oveccount) { 36969 return int32(oveccount) 36970 } 36971 return int32(top_bracket) + 1 36972 }()) 36973 libc.Xmemcpy(tls, ovector+uintptr(2)*8, F+128, uint64(i-Tuint32_t(2))*uint64(unsafe.Sizeof(Tsize_t(0)))) 36974 __182: 36975 if !(Tsize_t(libc.PreDecUint32(&i, 1)) >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top+uint64(2)) { 36976 goto __183 36977 } 36978 *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8)) = libc.CplUint64(uint64(0)) 36979 goto __182 36980 __183: 36981 ; 36982 return DMATCH_MATCH // Note: NOT RRETURN 36983 36984 //===================================================================== 36985 // Match any single character type except newline; have to take care with 36986 // CRLF newlines and partial matching. 36987 36988 __18: 36989 if !(func() int32 { 36990 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 36991 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+256, utf) != 0) 36992 } 36993 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 + 260))) && ((*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 + 260 + 1))))) 36994 }() != 0) { 36995 goto __184 36996 } 36997 rrc = DMATCH_NOMATCH 36998 goto RETURN_SWITCH 36999 __184: 37000 ; 37001 37002 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 + 260)))) { 37003 goto __185 37004 } 37005 37006 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37007 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37008 goto __186 37009 } 37010 return -2 37011 __186: 37012 ; 37013 __185: 37014 ; 37015 // Fall through 37016 37017 // Match any single character whatsoever. 37018 37019 __19: 37020 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37021 goto __187 37022 } /* DO NOT merge the Feptr++ here; it must */ 37023 // not be updated before SCHECK_PARTIAL. 37024 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)) { 37025 goto __188 37026 } 37027 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37028 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37029 goto __189 37030 } 37031 return -2 37032 __189: 37033 ; 37034 __188: 37035 ; 37036 37037 rrc = DMATCH_NOMATCH 37038 goto RETURN_SWITCH 37039 37040 __187: 37041 ; 37042 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37043 if !(utf != 0) { 37044 goto __190 37045 } 37046 __191: 37047 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) { 37048 goto __192 37049 } 37050 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37051 goto __191 37052 __192: 37053 ; 37054 __190: 37055 ; 37056 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37057 goto __13 37058 37059 // ===================================================================== 37060 // Match a single code unit, even in UTF mode. This opcode really does 37061 // match any code unit, even newline. (It really should be called ANYCODEUNIT, 37062 // of course - the byte name is from pre-16 bit days.) 37063 37064 __20: 37065 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37066 goto __193 37067 } /* DO NOT merge the Feptr++ here; it must */ 37068 // not be updated before SCHECK_PARTIAL. 37069 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)) { 37070 goto __194 37071 } 37072 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37073 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37074 goto __195 37075 } 37076 return -2 37077 __195: 37078 ; 37079 __194: 37080 ; 37081 37082 rrc = DMATCH_NOMATCH 37083 goto RETURN_SWITCH 37084 37085 __193: 37086 ; 37087 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37088 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37089 goto __13 37090 37091 // ===================================================================== 37092 // Match a single character, casefully 37093 37094 __21: 37095 if !(utf != 0) { 37096 goto __196 37097 } 37098 37099 (*Theapframe)(unsafe.Pointer(F)).Flength = uint64(1) 37100 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37101 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 37102 if !(fc >= 0xc0) { 37103 goto __198 37104 } 37105 if !(fc&0x20 == Tuint32_t(0)) { 37106 goto __199 37107 } 37108 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37109 (*Theapframe)(unsafe.Pointer(F)).Flength++ 37110 goto __200 37111 __199: 37112 if !(fc&0x10 == Tuint32_t(0)) { 37113 goto __201 37114 } 37115 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 37116 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(2) 37117 goto __202 37118 __201: 37119 if !(fc&0x08 == Tuint32_t(0)) { 37120 goto __203 37121 } 37122 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 37123 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(3) 37124 goto __204 37125 __203: 37126 if !(fc&0x04 == Tuint32_t(0)) { 37127 goto __205 37128 } 37129 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 37130 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(4) 37131 goto __206 37132 __205: 37133 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 37134 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(5) 37135 __206: 37136 ; 37137 __204: 37138 ; 37139 __202: 37140 ; 37141 __200: 37142 ; 37143 __198: 37144 ; 37145 37146 if !((*Theapframe)(unsafe.Pointer(F)).Flength > Tsize_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int64((*Theapframe)(unsafe.Pointer(F)).Feptr))/1)) { 37147 goto __207 37148 } 37149 37150 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37151 goto __208 37152 } 37153 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)) { 37154 goto __209 37155 } 37156 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37157 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37158 goto __210 37159 } 37160 return -2 37161 __210: 37162 ; 37163 __209: 37164 ; 37165 __208: 37166 ; 37167 /* Not SCHECK_PARTIAL() */ 37168 rrc = DMATCH_NOMATCH 37169 goto RETURN_SWITCH 37170 37171 __207: 37172 ; 37173 __211: 37174 if !((*Theapframe)(unsafe.Pointer(F)).Flength > uint64(0)) { 37175 goto __213 37176 } 37177 37178 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))))) { 37179 goto __214 37180 } 37181 rrc = DMATCH_NOMATCH 37182 goto RETURN_SWITCH 37183 __214: 37184 ; 37185 37186 goto __212 37187 __212: 37188 (*Theapframe)(unsafe.Pointer(F)).Flength-- 37189 goto __211 37190 goto __213 37191 __213: 37192 ; 37193 goto __197 37194 __196: 37195 37196 /* Not UTF mode */ 37197 37198 if !((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int64((*Theapframe)(unsafe.Pointer(F)).Feptr))/1 < int64(1)) { 37199 goto __215 37200 } 37201 37202 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)) { 37203 goto __216 37204 } 37205 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37206 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37207 goto __217 37208 } 37209 return -2 37210 __217: 37211 ; 37212 __216: 37213 ; 37214 /* This one can use SCHECK_PARTIAL() */ 37215 rrc = DMATCH_NOMATCH 37216 goto RETURN_SWITCH 37217 37218 __215: 37219 ; 37220 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))))) { 37221 goto __218 37222 } 37223 rrc = DMATCH_NOMATCH 37224 goto RETURN_SWITCH 37225 __218: 37226 ; 37227 37228 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37229 __197: 37230 ; 37231 goto __13 37232 37233 // ===================================================================== 37234 // Match a single character, caselessly. If we are at the end of the 37235 // subject, give up immediately. We get here only when the pattern character 37236 // has at most one other case. Characters with more than two cases are coded 37237 // as OP_PROP with the pseudo-property PT_CLIST. 37238 37239 __22: 37240 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37241 goto __219 37242 } 37243 37244 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)) { 37245 goto __220 37246 } 37247 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37248 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37249 goto __221 37250 } 37251 return -2 37252 __221: 37253 ; 37254 __220: 37255 ; 37256 37257 rrc = DMATCH_NOMATCH 37258 goto RETURN_SWITCH 37259 37260 __219: 37261 ; 37262 37263 if !(utf != 0) { 37264 goto __222 37265 } 37266 37267 (*Theapframe)(unsafe.Pointer(F)).Flength = uint64(1) 37268 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37269 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 37270 if !(fc >= 0xc0) { 37271 goto __224 37272 } 37273 if !(fc&0x20 == Tuint32_t(0)) { 37274 goto __225 37275 } 37276 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37277 (*Theapframe)(unsafe.Pointer(F)).Flength++ 37278 goto __226 37279 __225: 37280 if !(fc&0x10 == Tuint32_t(0)) { 37281 goto __227 37282 } 37283 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 37284 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(2) 37285 goto __228 37286 __227: 37287 if !(fc&0x08 == Tuint32_t(0)) { 37288 goto __229 37289 } 37290 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 37291 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(3) 37292 goto __230 37293 __229: 37294 if !(fc&0x04 == Tuint32_t(0)) { 37295 goto __231 37296 } 37297 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 37298 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(4) 37299 goto __232 37300 __231: 37301 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 37302 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(5) 37303 __232: 37304 ; 37305 __230: 37306 ; 37307 __228: 37308 ; 37309 __226: 37310 ; 37311 __224: 37312 ; 37313 37314 // If the pattern character's value is < 128, we know that its other case 37315 // (if any) is also < 128 (and therefore only one code unit long in all 37316 // code-unit widths), so we can use the fast lookup table. We checked above 37317 // that there is at least one character left in the subject. 37318 37319 if !(fc < Tuint32_t(128)) { 37320 goto __233 37321 } 37322 37323 cc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 37324 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))))) { 37325 goto __235 37326 } 37327 rrc = DMATCH_NOMATCH 37328 goto RETURN_SWITCH 37329 __235: 37330 ; 37331 37332 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37333 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37334 goto __234 37335 __233: 37336 37337 dc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37338 if !(dc >= 0xc0) { 37339 goto __236 37340 } 37341 if !(dc&0x20 == Tuint32_t(0)) { 37342 goto __237 37343 } 37344 dc = dc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 37345 goto __238 37346 __237: 37347 if !(dc&0x10 == Tuint32_t(0)) { 37348 goto __239 37349 } 37350 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 37351 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 37352 goto __240 37353 __239: 37354 if !(dc&0x08 == Tuint32_t(0)) { 37355 goto __241 37356 } 37357 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 37358 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 37359 goto __242 37360 __241: 37361 if !(dc&0x04 == Tuint32_t(0)) { 37362 goto __243 37363 } 37364 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 37365 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 37366 goto __244 37367 __243: 37368 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 37369 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 37370 __244: 37371 ; 37372 __242: 37373 ; 37374 __240: 37375 ; 37376 __238: 37377 ; 37378 __236: 37379 ; 37380 37381 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37382 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)) { 37383 goto __245 37384 } 37385 rrc = DMATCH_NOMATCH 37386 goto RETURN_SWITCH 37387 __245: 37388 ; 37389 37390 __234: 37391 ; 37392 goto __223 37393 __222: 37394 if !(ucp != 0) { 37395 goto __246 37396 } 37397 37398 cc1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 37399 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 37400 if !(fc < Tuint32_t(128)) { 37401 goto __248 37402 } 37403 37404 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))))) { 37405 goto __250 37406 } 37407 rrc = DMATCH_NOMATCH 37408 goto RETURN_SWITCH 37409 __250: 37410 ; 37411 37412 goto __249 37413 __248: 37414 37415 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)) { 37416 goto __251 37417 } 37418 rrc = DMATCH_NOMATCH 37419 goto RETURN_SWITCH 37420 __251: 37421 ; 37422 37423 __249: 37424 ; 37425 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37426 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37427 goto __247 37428 __246: 37429 37430 /* Not UTF or UCP mode; use the table for characters < 256. */ 37431 37432 if !(int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))))) != 37433 int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))) { 37434 goto __252 37435 } 37436 rrc = DMATCH_NOMATCH 37437 goto RETURN_SWITCH 37438 __252: 37439 ; 37440 37441 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37442 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37443 __247: 37444 ; 37445 __223: 37446 ; 37447 goto __13 37448 37449 // ===================================================================== 37450 // Match not a single character. 37451 37452 __23: 37453 __24: 37454 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37455 goto __253 37456 } 37457 37458 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)) { 37459 goto __254 37460 } 37461 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37462 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37463 goto __255 37464 } 37465 return -2 37466 __255: 37467 ; 37468 __254: 37469 ; 37470 37471 rrc = DMATCH_NOMATCH 37472 goto RETURN_SWITCH 37473 37474 __253: 37475 ; 37476 37477 if !(utf != 0) { 37478 goto __256 37479 } 37480 37481 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37482 ch = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 37483 if !(ch >= 0xc0) { 37484 goto __258 37485 } 37486 if !(ch&0x20 == Tuint32_t(0)) { 37487 goto __259 37488 } 37489 ch = ch&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1))))&0x3f 37490 goto __260 37491 __259: 37492 if !(ch&0x10 == Tuint32_t(0)) { 37493 goto __261 37494 } 37495 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 37496 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37497 goto __262 37498 __261: 37499 if !(ch&0x08 == Tuint32_t(0)) { 37500 goto __263 37501 } 37502 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 37503 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(3) 37504 goto __264 37505 __263: 37506 if !(ch&0x04 == Tuint32_t(0)) { 37507 goto __265 37508 } 37509 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 37510 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(4) 37511 goto __266 37512 __265: 37513 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 37514 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(5) 37515 __266: 37516 ; 37517 __264: 37518 ; 37519 __262: 37520 ; 37521 __260: 37522 ; 37523 __258: 37524 ; 37525 37526 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37527 if !(fc >= 0xc0) { 37528 goto __267 37529 } 37530 if !(fc&0x20 == Tuint32_t(0)) { 37531 goto __268 37532 } 37533 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 37534 goto __269 37535 __268: 37536 if !(fc&0x10 == Tuint32_t(0)) { 37537 goto __270 37538 } 37539 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 37540 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 37541 goto __271 37542 __270: 37543 if !(fc&0x08 == Tuint32_t(0)) { 37544 goto __272 37545 } 37546 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 37547 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 37548 goto __273 37549 __272: 37550 if !(fc&0x04 == Tuint32_t(0)) { 37551 goto __274 37552 } 37553 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 37554 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 37555 goto __275 37556 __274: 37557 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 37558 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 37559 __275: 37560 ; 37561 __273: 37562 ; 37563 __271: 37564 ; 37565 __269: 37566 ; 37567 __267: 37568 ; 37569 37570 if !(ch == fc) { 37571 goto __276 37572 } 37573 37574 rrc = DMATCH_NOMATCH 37575 goto RETURN_SWITCH 37576 // Caseful match 37577 goto __277 37578 __276: 37579 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTI) { 37580 goto __278 37581 } /* If caseless */ 37582 37583 if !(ch > Tuint32_t(127)) { 37584 goto __279 37585 } 37586 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) 37587 goto __280 37588 __279: 37589 ch = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(ch)))) 37590 __280: 37591 ; 37592 if !(ch == fc) { 37593 goto __281 37594 } 37595 rrc = DMATCH_NOMATCH 37596 goto RETURN_SWITCH 37597 __281: 37598 ; 37599 37600 __278: 37601 ; 37602 __277: 37603 ; 37604 goto __257 37605 __256: 37606 if !(ucp != 0) { 37607 goto __282 37608 } 37609 37610 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37611 ch1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 37612 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37613 37614 if !(ch1 == fc) { 37615 goto __284 37616 } 37617 37618 rrc = DMATCH_NOMATCH 37619 goto RETURN_SWITCH 37620 // Caseful match 37621 goto __285 37622 __284: 37623 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTI) { 37624 goto __286 37625 } /* If caseless */ 37626 37627 if !(ch1 > Tuint32_t(127)) { 37628 goto __287 37629 } 37630 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) 37631 goto __288 37632 __287: 37633 ch1 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(ch1)))) 37634 __288: 37635 ; 37636 if !(ch1 == fc) { 37637 goto __289 37638 } 37639 rrc = DMATCH_NOMATCH 37640 goto RETURN_SWITCH 37641 __289: 37642 ; 37643 37644 __286: 37645 ; 37646 __285: 37647 ; 37648 goto __283 37649 __282: 37650 37651 /* Neither UTF nor UCP is set */ 37652 37653 ch2 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 37654 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37655 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) { 37656 goto __290 37657 } 37658 rrc = DMATCH_NOMATCH 37659 goto RETURN_SWITCH 37660 __290: 37661 ; 37662 37663 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37664 __283: 37665 ; 37666 __257: 37667 ; 37668 goto __13 37669 37670 // ===================================================================== 37671 // Match a single character repeatedly. 37672 37673 __25: 37674 __26: 37675 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = libc.AssignPtrUint32(F+56+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))))) 37676 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37677 goto REPEATCHAR 37678 37679 __27: 37680 __28: 37681 reptype = REPTYPE_POS 37682 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 37683 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 37684 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37685 goto REPEATCHAR 37686 37687 __29: 37688 __30: 37689 reptype = REPTYPE_MAX 37690 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 37691 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 37692 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37693 goto REPEATCHAR 37694 37695 __31: 37696 __32: 37697 reptype = REPTYPE_MIN 37698 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 37699 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 37700 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37701 goto REPEATCHAR 37702 37703 __33: 37704 __34: 37705 reptype = REPTYPE_POS 37706 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 37707 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 37708 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37709 goto REPEATCHAR 37710 37711 __35: 37712 __36: 37713 reptype = REPTYPE_POS 37714 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(1) 37715 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 37716 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37717 goto REPEATCHAR 37718 37719 __37: 37720 __38: 37721 reptype = REPTYPE_POS 37722 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 37723 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = Tuint32_t(1) 37724 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37725 goto REPEATCHAR 37726 37727 __39: 37728 __40: 37729 __41: 37730 __42: 37731 __43: 37732 __44: 37733 __45: 37734 __46: 37735 __47: 37736 __48: 37737 __49: 37738 __50: 37739 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - func() int32 { 37740 if int32((*Theapframe)(unsafe.Pointer(F)).Fop) < OP_STARI { 37741 return OP_STAR 37742 } 37743 return OP_STARI 37744 }()) 37745 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 37746 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 37747 reptype = rep_typ[fc] 37748 37749 // Common code for all repeated single-character matches. We first check 37750 // for the minimum number of characters. If the minimum equals the maximum, we 37751 // are done. Otherwise, if minimizing, check the rest of the pattern for a 37752 // match; if there isn't one, advance up to the maximum, one character at a 37753 // time. 37754 // 37755 // If maximizing, advance up to the maximum number of matching characters, 37756 // until Feptr is past the end of the maximum run. If possessive, we are 37757 // then done (no backing up). Otherwise, match at this position; anything 37758 // other than no match is immediately returned. For nomatch, back up one 37759 // character, unless we are matching \R and the last thing matched was 37760 // \r\n, in which case, back up two code units until we reach the first 37761 // optional character position. 37762 // 37763 // The various UTF/non-UTF and caseful/caseless cases are handled separately, 37764 // for speed. 37765 37766 REPEATCHAR: 37767 if !(utf != 0) { 37768 goto __291 37769 } 37770 37771 (*Theapframe)(unsafe.Pointer(F)).Flength = uint64(1) 37772 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode 37773 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 37774 if !(fc >= 0xc0) { 37775 goto __293 37776 } 37777 if !(fc&0x20 == Tuint32_t(0)) { 37778 goto __294 37779 } 37780 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37781 (*Theapframe)(unsafe.Pointer(F)).Flength++ 37782 goto __295 37783 __294: 37784 if !(fc&0x10 == Tuint32_t(0)) { 37785 goto __296 37786 } 37787 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 37788 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(2) 37789 goto __297 37790 __296: 37791 if !(fc&0x08 == Tuint32_t(0)) { 37792 goto __298 37793 } 37794 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 37795 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(3) 37796 goto __299 37797 __298: 37798 if !(fc&0x04 == Tuint32_t(0)) { 37799 goto __300 37800 } 37801 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 37802 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(4) 37803 goto __301 37804 __300: 37805 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 37806 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(5) 37807 __301: 37808 ; 37809 __299: 37810 ; 37811 __297: 37812 ; 37813 __295: 37814 ; 37815 __293: 37816 ; 37817 37818 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37819 37820 // Handle multi-code-unit character matching, caseful and caseless. 37821 37822 if !((*Theapframe)(unsafe.Pointer(F)).Flength > uint64(1)) { 37823 goto __302 37824 } 37825 37826 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) { 37827 goto __303 37828 } 37829 (*Theapframe)(unsafe.Pointer(F)).Ftemp_size = Tsize_t(X_pcre2_ord2utf_8(tls, othercase, F+74)) 37830 goto __304 37831 __303: 37832 (*Theapframe)(unsafe.Pointer(F)).Ftemp_size = uint64(0) 37833 __304: 37834 ; 37835 37836 i = Tuint32_t(1) 37837 __305: 37838 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 37839 goto __307 37840 } 37841 37842 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 + 8 + 1*8)), (*Theapframe)(unsafe.Pointer(F)).Flength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37843 goto __308 37844 } 37845 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37846 goto __309 37847 __308: 37848 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size > uint64(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+74, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37849 goto __310 37850 } 37851 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) 37852 goto __311 37853 __310: 37854 37855 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37856 goto __312 37857 } 37858 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)) { 37859 goto __313 37860 } 37861 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37862 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37863 goto __314 37864 } 37865 return -2 37866 __314: 37867 ; 37868 __313: 37869 ; 37870 __312: 37871 ; 37872 37873 rrc = DMATCH_NOMATCH 37874 goto RETURN_SWITCH 37875 37876 __311: 37877 ; 37878 __309: 37879 ; 37880 goto __306 37881 __306: 37882 i++ 37883 goto __305 37884 goto __307 37885 __307: 37886 ; 37887 37888 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 37889 goto __315 37890 } 37891 goto __11 37892 __315: 37893 ; 37894 37895 if !(reptype == REPTYPE_MIN) { 37896 goto __316 37897 } 37898 37899 __318: 37900 37901 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 37902 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM202 37903 goto MATCH_RECURSE 37904 L_RM202: 37905 ; 37906 37907 if !(rrc != DMATCH_NOMATCH) { 37908 goto __321 37909 } 37910 rrc = rrc 37911 goto RETURN_SWITCH 37912 __321: 37913 ; 37914 37915 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 37916 goto __322 37917 } 37918 rrc = DMATCH_NOMATCH 37919 goto RETURN_SWITCH 37920 __322: 37921 ; 37922 37923 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 + 8 + 1*8)), (*Theapframe)(unsafe.Pointer(F)).Flength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37924 goto __323 37925 } 37926 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37927 goto __324 37928 __323: 37929 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size > uint64(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+74, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37930 goto __325 37931 } 37932 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) 37933 goto __326 37934 __325: 37935 37936 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37937 goto __327 37938 } 37939 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)) { 37940 goto __328 37941 } 37942 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37943 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37944 goto __329 37945 } 37946 return -2 37947 __329: 37948 ; 37949 __328: 37950 ; 37951 __327: 37952 ; 37953 37954 rrc = DMATCH_NOMATCH 37955 goto RETURN_SWITCH 37956 37957 __326: 37958 ; 37959 __324: 37960 ; 37961 goto __319 37962 __319: 37963 goto __318 37964 goto __320 37965 __320: 37966 ; 37967 // Control never gets here 37968 goto __317 37969 __316: /* Maximize */ 37970 37971 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 37972 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 37973 __330: 37974 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 37975 goto __332 37976 } 37977 37978 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 + 8 + 1*8)), (*Theapframe)(unsafe.Pointer(F)).Flength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37979 goto __333 37980 } 37981 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37982 goto __334 37983 __333: 37984 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size > uint64(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+74, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37985 goto __335 37986 } 37987 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) 37988 goto __336 37989 __335: 37990 37991 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37992 goto __337 37993 } 37994 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)) { 37995 goto __338 37996 } 37997 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37998 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37999 goto __339 38000 } 38001 return -2 38002 __339: 38003 ; 38004 __338: 38005 ; 38006 __337: 38007 ; 38008 38009 goto __332 38010 __336: 38011 ; 38012 __334: 38013 ; 38014 goto __331 38015 __331: 38016 i++ 38017 goto __330 38018 goto __332 38019 __332: 38020 ; 38021 38022 // After \C in UTF mode, Lstart_eptr might be in the middle of a 38023 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 38024 // go too far. 38025 38026 if !(reptype != REPTYPE_POS) { 38027 goto __340 38028 } 38029 __341: 38030 38031 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 38032 goto __344 38033 } 38034 goto __343 38035 __344: 38036 ; 38037 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38038 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM203 38039 goto MATCH_RECURSE 38040 L_RM203: 38041 ; 38042 38043 if !(rrc != DMATCH_NOMATCH) { 38044 goto __345 38045 } 38046 rrc = rrc 38047 goto RETURN_SWITCH 38048 __345: 38049 ; 38050 38051 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38052 __346: 38053 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 38054 goto __347 38055 } 38056 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38057 goto __346 38058 __347: 38059 ; 38060 goto __342 38061 __342: 38062 goto __341 38063 goto __343 38064 __343: 38065 ; 38066 __340: 38067 ; 38068 __317: 38069 ; 38070 goto __13 // End of repeated wide character handling 38071 __302: 38072 ; 38073 38074 // Length of UTF character is 1. Put it into the preserved variable and 38075 // fall through to the non-UTF code. 38076 38077 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = fc 38078 goto __292 38079 __291: 38080 38081 // When not in UTF mode, load a single-code-unit character. Then proceed as 38082 // above, using Unicode casing if either UTF or UCP is set. 38083 38084 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 38085 __292: 38086 ; 38087 38088 // Caseless comparison 38089 38090 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_STARI) { 38091 goto __348 38092 } 38093 38094 if !(ucp != 0 && !(utf != 0) && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) > Tuint32_t(127)) { 38095 goto __350 38096 } 38097 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 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 + 56 + 2*4)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 38098 goto __351 38099 __350: 38100 // Lc will be < 128 in UTF-8 mode. 38101 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)))))) 38102 __351: 38103 ; 38104 38105 i = Tuint32_t(1) 38106 __352: 38107 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 38108 goto __354 38109 } 38110 // Faster than PCRE2_UCHAR 38111 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38112 goto __355 38113 } 38114 38115 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)) { 38116 goto __356 38117 } 38118 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38119 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38120 goto __357 38121 } 38122 return -2 38123 __357: 38124 ; 38125 __356: 38126 ; 38127 38128 rrc = DMATCH_NOMATCH 38129 goto RETURN_SWITCH 38130 38131 __355: 38132 ; 38133 cc2 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 38134 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != cc2 && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) != cc2) { 38135 goto __358 38136 } 38137 rrc = DMATCH_NOMATCH 38138 goto RETURN_SWITCH 38139 __358: 38140 ; 38141 38142 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38143 goto __353 38144 __353: 38145 i++ 38146 goto __352 38147 goto __354 38148 __354: 38149 ; 38150 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38151 goto __359 38152 } 38153 goto __11 38154 __359: 38155 ; 38156 38157 if !(reptype == REPTYPE_MIN) { 38158 goto __360 38159 } 38160 38161 __362: 38162 /* Faster than PCRE2_UCHAR */ 38163 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38164 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM25 38165 goto MATCH_RECURSE 38166 L_RM25: 38167 ; 38168 38169 if !(rrc != DMATCH_NOMATCH) { 38170 goto __365 38171 } 38172 rrc = rrc 38173 goto RETURN_SWITCH 38174 __365: 38175 ; 38176 38177 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38178 goto __366 38179 } 38180 rrc = DMATCH_NOMATCH 38181 goto RETURN_SWITCH 38182 __366: 38183 ; 38184 38185 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38186 goto __367 38187 } 38188 38189 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)) { 38190 goto __368 38191 } 38192 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38193 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38194 goto __369 38195 } 38196 return -2 38197 __369: 38198 ; 38199 __368: 38200 ; 38201 38202 rrc = DMATCH_NOMATCH 38203 goto RETURN_SWITCH 38204 38205 __367: 38206 ; 38207 cc3 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 38208 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != cc3 && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) != cc3) { 38209 goto __370 38210 } 38211 rrc = DMATCH_NOMATCH 38212 goto RETURN_SWITCH 38213 __370: 38214 ; 38215 38216 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38217 goto __363 38218 __363: 38219 goto __362 38220 goto __364 38221 __364: 38222 ; 38223 // Control never gets here 38224 goto __361 38225 __360: /* Maximize */ 38226 38227 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 38228 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 38229 __371: 38230 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38231 goto __373 38232 } 38233 // Faster than PCRE2_UCHAR 38234 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38235 goto __374 38236 } 38237 38238 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)) { 38239 goto __375 38240 } 38241 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38242 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38243 goto __376 38244 } 38245 return -2 38246 __376: 38247 ; 38248 __375: 38249 ; 38250 38251 goto __373 38252 __374: 38253 ; 38254 cc4 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 38255 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != cc4 && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) != cc4) { 38256 goto __377 38257 } 38258 goto __373 38259 __377: 38260 ; 38261 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38262 goto __372 38263 __372: 38264 i++ 38265 goto __371 38266 goto __373 38267 __373: 38268 ; 38269 if !(reptype != REPTYPE_POS) { 38270 goto __378 38271 } 38272 __379: 38273 38274 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 38275 goto __382 38276 } 38277 goto __381 38278 __382: 38279 ; 38280 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38281 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM26 38282 goto MATCH_RECURSE 38283 L_RM26: 38284 ; 38285 38286 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38287 if !(rrc != DMATCH_NOMATCH) { 38288 goto __383 38289 } 38290 rrc = rrc 38291 goto RETURN_SWITCH 38292 __383: 38293 ; 38294 38295 goto __380 38296 __380: 38297 goto __379 38298 goto __381 38299 __381: 38300 ; 38301 __378: 38302 ; 38303 __361: 38304 ; 38305 goto __349 38306 __348: 38307 38308 i = Tuint32_t(1) 38309 __384: 38310 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 38311 goto __386 38312 } 38313 38314 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38315 goto __387 38316 } 38317 38318 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)) { 38319 goto __388 38320 } 38321 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38322 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38323 goto __389 38324 } 38325 return -2 38326 __389: 38327 ; 38328 __388: 38329 ; 38330 38331 rrc = DMATCH_NOMATCH 38332 goto RETURN_SWITCH 38333 38334 __387: 38335 ; 38336 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 38337 goto __390 38338 } 38339 rrc = DMATCH_NOMATCH 38340 goto RETURN_SWITCH 38341 __390: 38342 ; 38343 38344 goto __385 38345 __385: 38346 i++ 38347 goto __384 38348 goto __386 38349 __386: 38350 ; 38351 38352 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38353 goto __391 38354 } 38355 goto __11 38356 __391: 38357 ; 38358 38359 if !(reptype == REPTYPE_MIN) { 38360 goto __392 38361 } 38362 38363 __394: 38364 38365 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38366 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM27 38367 goto MATCH_RECURSE 38368 L_RM27: 38369 ; 38370 38371 if !(rrc != DMATCH_NOMATCH) { 38372 goto __397 38373 } 38374 rrc = rrc 38375 goto RETURN_SWITCH 38376 __397: 38377 ; 38378 38379 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38380 goto __398 38381 } 38382 rrc = DMATCH_NOMATCH 38383 goto RETURN_SWITCH 38384 __398: 38385 ; 38386 38387 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38388 goto __399 38389 } 38390 38391 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)) { 38392 goto __400 38393 } 38394 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38395 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38396 goto __401 38397 } 38398 return -2 38399 __401: 38400 ; 38401 __400: 38402 ; 38403 38404 rrc = DMATCH_NOMATCH 38405 goto RETURN_SWITCH 38406 38407 __399: 38408 ; 38409 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 38410 goto __402 38411 } 38412 rrc = DMATCH_NOMATCH 38413 goto RETURN_SWITCH 38414 __402: 38415 ; 38416 38417 goto __395 38418 __395: 38419 goto __394 38420 goto __396 38421 __396: 38422 ; 38423 // Control never gets here 38424 goto __393 38425 __392: /* Maximize */ 38426 38427 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 38428 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 38429 __403: 38430 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38431 goto __405 38432 } 38433 38434 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38435 goto __406 38436 } 38437 38438 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)) { 38439 goto __407 38440 } 38441 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38442 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38443 goto __408 38444 } 38445 return -2 38446 __408: 38447 ; 38448 __407: 38449 ; 38450 38451 goto __405 38452 __406: 38453 ; 38454 38455 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 38456 goto __409 38457 } 38458 goto __405 38459 __409: 38460 ; 38461 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38462 goto __404 38463 __404: 38464 i++ 38465 goto __403 38466 goto __405 38467 __405: 38468 ; 38469 38470 if !(reptype != REPTYPE_POS) { 38471 goto __410 38472 } 38473 __411: 38474 38475 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 38476 goto __414 38477 } 38478 goto __413 38479 __414: 38480 ; 38481 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38482 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM28 38483 goto MATCH_RECURSE 38484 L_RM28: 38485 ; 38486 38487 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38488 if !(rrc != DMATCH_NOMATCH) { 38489 goto __415 38490 } 38491 rrc = rrc 38492 goto RETURN_SWITCH 38493 __415: 38494 ; 38495 38496 goto __412 38497 __412: 38498 goto __411 38499 goto __413 38500 __413: 38501 ; 38502 __410: 38503 ; 38504 __393: 38505 ; 38506 __349: 38507 ; 38508 goto __13 38509 38510 // ===================================================================== 38511 // Match a negated single one-byte character repeatedly. This is almost a 38512 // repeat of the code for a repeated single character, but I haven't found a 38513 // nice way of commoning these up that doesn't require a test of the 38514 // positive/negative option for each character match. Maybe that wouldn't add 38515 // very much to the time taken, but character matching *is* what this is all 38516 // about... 38517 38518 __51: 38519 __52: 38520 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = libc.AssignPtrUint32(F+56+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))))) 38521 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38522 goto REPEATNOTCHAR 38523 38524 __53: 38525 __54: 38526 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 38527 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 38528 reptype = REPTYPE_MAX 38529 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38530 goto REPEATNOTCHAR 38531 38532 __55: 38533 __56: 38534 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 38535 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 38536 reptype = REPTYPE_MIN 38537 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38538 goto REPEATNOTCHAR 38539 38540 __57: 38541 __58: 38542 reptype = REPTYPE_POS 38543 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 38544 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 38545 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 38546 goto REPEATNOTCHAR 38547 38548 __59: 38549 __60: 38550 reptype = REPTYPE_POS 38551 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(1) 38552 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 38553 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 38554 goto REPEATNOTCHAR 38555 38556 __61: 38557 __62: 38558 reptype = REPTYPE_POS 38559 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 38560 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = Tuint32_t(1) 38561 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 38562 goto REPEATNOTCHAR 38563 38564 __63: 38565 __64: 38566 reptype = REPTYPE_POS 38567 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 38568 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 38569 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38570 goto REPEATNOTCHAR 38571 38572 __65: 38573 __66: 38574 __67: 38575 __68: 38576 __69: 38577 __70: 38578 __71: 38579 __72: 38580 __73: 38581 __74: 38582 __75: 38583 __76: 38584 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - func() int32 { 38585 if int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_NOTSTARI { 38586 return OP_NOTSTARI 38587 } 38588 return OP_NOTSTAR 38589 }()) 38590 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 38591 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 38592 reptype = rep_typ[fc] 38593 38594 // Common code for all repeated single-character non-matches. 38595 38596 REPEATNOTCHAR: 38597 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 38598 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) >= 0xc0) { 38599 goto __416 38600 } 38601 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x20 == Tuint32_t(0)) { 38602 goto __417 38603 } 38604 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1))))&0x3f 38605 goto __418 38606 __417: 38607 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x10 == Tuint32_t(0)) { 38608 goto __419 38609 } 38610 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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 38611 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 38612 goto __420 38613 __419: 38614 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x08 == Tuint32_t(0)) { 38615 goto __421 38616 } 38617 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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 38618 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(3) 38619 goto __422 38620 __421: 38621 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x04 == Tuint32_t(0)) { 38622 goto __423 38623 } 38624 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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 38625 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(4) 38626 goto __424 38627 __423: 38628 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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 38629 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(5) 38630 __424: 38631 ; 38632 __422: 38633 ; 38634 __420: 38635 ; 38636 __418: 38637 ; 38638 __416: 38639 ; 38640 38641 // The code is duplicated for the caseless and caseful cases, for speed, 38642 // since matching characters is likely to be quite common. First, ensure the 38643 // minimum number of matches are present. If Lmin = Lmax, we are done. 38644 // Otherwise, if minimizing, keep trying the rest of the expression and 38645 // advancing one matching character if failing, up to the maximum. 38646 // Alternatively, if maximizing, find the maximum number of characters and 38647 // work backwards. 38648 38649 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_NOTSTARI) { 38650 goto __425 38651 } /* Caseless */ 38652 38653 if !((utf != 0 || ucp != 0) && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) > Tuint32_t(127)) { 38654 goto __427 38655 } 38656 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 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 + 56 + 2*4)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 38657 goto __428 38658 __427: 38659 38660 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)))))) 38661 __428: 38662 ; // Other case from table 38663 38664 if !(utf != 0) { 38665 goto __429 38666 } 38667 38668 i = Tuint32_t(1) 38669 __431: 38670 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 38671 goto __433 38672 } 38673 38674 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38675 goto __434 38676 } 38677 38678 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)) { 38679 goto __435 38680 } 38681 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38682 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38683 goto __436 38684 } 38685 return -2 38686 __436: 38687 ; 38688 __435: 38689 ; 38690 38691 rrc = DMATCH_NOMATCH 38692 goto RETURN_SWITCH 38693 38694 __434: 38695 ; 38696 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 38697 if !(d >= 0xc0) { 38698 goto __437 38699 } 38700 if !(d&0x20 == Tuint32_t(0)) { 38701 goto __438 38702 } 38703 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 38704 goto __439 38705 __438: 38706 if !(d&0x10 == Tuint32_t(0)) { 38707 goto __440 38708 } 38709 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 38710 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 38711 goto __441 38712 __440: 38713 if !(d&0x08 == Tuint32_t(0)) { 38714 goto __442 38715 } 38716 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 38717 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 38718 goto __443 38719 __442: 38720 if !(d&0x04 == Tuint32_t(0)) { 38721 goto __444 38722 } 38723 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 38724 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 38725 goto __445 38726 __444: 38727 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 38728 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 38729 __445: 38730 ; 38731 __443: 38732 ; 38733 __441: 38734 ; 38735 __439: 38736 ; 38737 __437: 38738 ; 38739 38740 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == d) { 38741 goto __446 38742 } 38743 rrc = DMATCH_NOMATCH 38744 goto RETURN_SWITCH 38745 __446: 38746 ; 38747 38748 goto __432 38749 __432: 38750 i++ 38751 goto __431 38752 goto __433 38753 __433: 38754 ; 38755 goto __430 38756 __429: 38757 38758 /* Not UTF mode */ 38759 38760 i = Tuint32_t(1) 38761 __447: 38762 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 38763 goto __449 38764 } 38765 38766 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38767 goto __450 38768 } 38769 38770 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)) { 38771 goto __451 38772 } 38773 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38774 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38775 goto __452 38776 } 38777 return -2 38778 __452: 38779 ; 38780 __451: 38781 ; 38782 38783 rrc = DMATCH_NOMATCH 38784 goto RETURN_SWITCH 38785 38786 __450: 38787 ; 38788 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 38789 goto __453 38790 } 38791 rrc = DMATCH_NOMATCH 38792 goto RETURN_SWITCH 38793 __453: 38794 ; 38795 38796 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38797 goto __448 38798 __448: 38799 i++ 38800 goto __447 38801 goto __449 38802 __449: 38803 ; 38804 __430: 38805 ; 38806 38807 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38808 goto __454 38809 } 38810 goto __11 38811 __454: 38812 ; // Finished for exact count 38813 38814 if !(reptype == REPTYPE_MIN) { 38815 goto __455 38816 } 38817 38818 if !(utf != 0) { 38819 goto __457 38820 } 38821 38822 __459: 38823 38824 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38825 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM204 38826 goto MATCH_RECURSE 38827 L_RM204: 38828 ; 38829 38830 if !(rrc != DMATCH_NOMATCH) { 38831 goto __462 38832 } 38833 rrc = rrc 38834 goto RETURN_SWITCH 38835 __462: 38836 ; 38837 38838 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38839 goto __463 38840 } 38841 rrc = DMATCH_NOMATCH 38842 goto RETURN_SWITCH 38843 __463: 38844 ; 38845 38846 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38847 goto __464 38848 } 38849 38850 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)) { 38851 goto __465 38852 } 38853 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38854 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38855 goto __466 38856 } 38857 return -2 38858 __466: 38859 ; 38860 __465: 38861 ; 38862 38863 rrc = DMATCH_NOMATCH 38864 goto RETURN_SWITCH 38865 38866 __464: 38867 ; 38868 d1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 38869 if !(d1 >= 0xc0) { 38870 goto __467 38871 } 38872 if !(d1&0x20 == Tuint32_t(0)) { 38873 goto __468 38874 } 38875 d1 = d1&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 38876 goto __469 38877 __468: 38878 if !(d1&0x10 == Tuint32_t(0)) { 38879 goto __470 38880 } 38881 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 38882 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 38883 goto __471 38884 __470: 38885 if !(d1&0x08 == Tuint32_t(0)) { 38886 goto __472 38887 } 38888 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 38889 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 38890 goto __473 38891 __472: 38892 if !(d1&0x04 == Tuint32_t(0)) { 38893 goto __474 38894 } 38895 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 38896 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 38897 goto __475 38898 __474: 38899 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 38900 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 38901 __475: 38902 ; 38903 __473: 38904 ; 38905 __471: 38906 ; 38907 __469: 38908 ; 38909 __467: 38910 ; 38911 38912 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d1 || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == d1) { 38913 goto __476 38914 } 38915 rrc = DMATCH_NOMATCH 38916 goto RETURN_SWITCH 38917 __476: 38918 ; 38919 38920 goto __460 38921 __460: 38922 goto __459 38923 goto __461 38924 __461: 38925 ; 38926 goto __458 38927 __457: 38928 38929 /* Not UTF mode */ 38930 38931 __477: 38932 38933 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38934 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM29 38935 goto MATCH_RECURSE 38936 L_RM29: 38937 ; 38938 38939 if !(rrc != DMATCH_NOMATCH) { 38940 goto __480 38941 } 38942 rrc = rrc 38943 goto RETURN_SWITCH 38944 __480: 38945 ; 38946 38947 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38948 goto __481 38949 } 38950 rrc = DMATCH_NOMATCH 38951 goto RETURN_SWITCH 38952 __481: 38953 ; 38954 38955 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38956 goto __482 38957 } 38958 38959 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)) { 38960 goto __483 38961 } 38962 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38963 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38964 goto __484 38965 } 38966 return -2 38967 __484: 38968 ; 38969 __483: 38970 ; 38971 38972 rrc = DMATCH_NOMATCH 38973 goto RETURN_SWITCH 38974 38975 __482: 38976 ; 38977 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 38978 goto __485 38979 } 38980 rrc = DMATCH_NOMATCH 38981 goto RETURN_SWITCH 38982 __485: 38983 ; 38984 38985 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38986 goto __478 38987 __478: 38988 goto __477 38989 goto __479 38990 __479: 38991 ; 38992 __458: 38993 ; 38994 // Control never gets here 38995 goto __456 38996 __455: 38997 38998 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 38999 39000 if !(utf != 0) { 39001 goto __486 39002 } 39003 39004 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 39005 __488: 39006 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39007 goto __490 39008 } 39009 39010 len = 1 39011 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39012 goto __491 39013 } 39014 39015 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)) { 39016 goto __492 39017 } 39018 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39019 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39020 goto __493 39021 } 39022 return -2 39023 __493: 39024 ; 39025 __492: 39026 ; 39027 39028 goto __490 39029 __491: 39030 ; 39031 d2 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 39032 if !(d2 >= 0xc0) { 39033 goto __494 39034 } 39035 if !(d2&0x20 == Tuint32_t(0)) { 39036 goto __495 39037 } 39038 d2 = d2&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39039 len++ 39040 goto __496 39041 __495: 39042 if !(d2&0x10 == Tuint32_t(0)) { 39043 goto __497 39044 } 39045 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 39046 len = len + 2 39047 goto __498 39048 __497: 39049 if !(d2&0x08 == Tuint32_t(0)) { 39050 goto __499 39051 } 39052 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 39053 len = len + 3 39054 goto __500 39055 __499: 39056 if !(d2&0x04 == Tuint32_t(0)) { 39057 goto __501 39058 } 39059 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 39060 len = len + 4 39061 goto __502 39062 __501: 39063 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 39064 len = len + 5 39065 __502: 39066 ; 39067 __500: 39068 ; 39069 __498: 39070 ; 39071 __496: 39072 ; 39073 __494: 39074 ; 39075 39076 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d2 || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == d2) { 39077 goto __503 39078 } 39079 goto __490 39080 __503: 39081 ; 39082 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len) 39083 goto __489 39084 __489: 39085 i++ 39086 goto __488 39087 goto __490 39088 __490: 39089 ; 39090 39091 // After \C in UTF mode, Lstart_eptr might be in the middle of a 39092 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 39093 // go too far. 39094 39095 if !(reptype != REPTYPE_POS) { 39096 goto __504 39097 } 39098 __505: 39099 39100 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 39101 goto __508 39102 } 39103 goto __507 39104 __508: 39105 ; 39106 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39107 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM205 39108 goto MATCH_RECURSE 39109 L_RM205: 39110 ; 39111 39112 if !(rrc != DMATCH_NOMATCH) { 39113 goto __509 39114 } 39115 rrc = rrc 39116 goto RETURN_SWITCH 39117 __509: 39118 ; 39119 39120 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39121 __510: 39122 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 39123 goto __511 39124 } 39125 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39126 goto __510 39127 __511: 39128 ; 39129 goto __506 39130 __506: 39131 goto __505 39132 goto __507 39133 __507: 39134 ; 39135 __504: 39136 ; 39137 goto __487 39138 __486: 39139 39140 /* Not UTF mode */ 39141 39142 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 39143 __512: 39144 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39145 goto __514 39146 } 39147 39148 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39149 goto __515 39150 } 39151 39152 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)) { 39153 goto __516 39154 } 39155 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39156 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39157 goto __517 39158 } 39159 return -2 39160 __517: 39161 ; 39162 __516: 39163 ; 39164 39165 goto __514 39166 __515: 39167 ; 39168 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 39169 goto __518 39170 } 39171 goto __514 39172 __518: 39173 ; 39174 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 39175 goto __513 39176 __513: 39177 i++ 39178 goto __512 39179 goto __514 39180 __514: 39181 ; 39182 if !(reptype != REPTYPE_POS) { 39183 goto __519 39184 } 39185 __520: 39186 39187 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 39188 goto __523 39189 } 39190 goto __522 39191 __523: 39192 ; 39193 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39194 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM30 39195 goto MATCH_RECURSE 39196 L_RM30: 39197 ; 39198 39199 if !(rrc != DMATCH_NOMATCH) { 39200 goto __524 39201 } 39202 rrc = rrc 39203 goto RETURN_SWITCH 39204 __524: 39205 ; 39206 39207 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39208 goto __521 39209 __521: 39210 goto __520 39211 goto __522 39212 __522: 39213 ; 39214 __519: 39215 ; 39216 __487: 39217 ; 39218 __456: 39219 ; 39220 goto __426 39221 __425: 39222 39223 if !(utf != 0) { 39224 goto __525 39225 } 39226 39227 i = Tuint32_t(1) 39228 __527: 39229 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 39230 goto __529 39231 } 39232 39233 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39234 goto __530 39235 } 39236 39237 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)) { 39238 goto __531 39239 } 39240 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39241 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39242 goto __532 39243 } 39244 return -2 39245 __532: 39246 ; 39247 __531: 39248 ; 39249 39250 rrc = DMATCH_NOMATCH 39251 goto RETURN_SWITCH 39252 39253 __530: 39254 ; 39255 d3 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 39256 if !(d3 >= 0xc0) { 39257 goto __533 39258 } 39259 if !(d3&0x20 == Tuint32_t(0)) { 39260 goto __534 39261 } 39262 d3 = d3&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 39263 goto __535 39264 __534: 39265 if !(d3&0x10 == Tuint32_t(0)) { 39266 goto __536 39267 } 39268 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 39269 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 39270 goto __537 39271 __536: 39272 if !(d3&0x08 == Tuint32_t(0)) { 39273 goto __538 39274 } 39275 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 39276 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 39277 goto __539 39278 __538: 39279 if !(d3&0x04 == Tuint32_t(0)) { 39280 goto __540 39281 } 39282 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 39283 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 39284 goto __541 39285 __540: 39286 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 39287 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 39288 __541: 39289 ; 39290 __539: 39291 ; 39292 __537: 39293 ; 39294 __535: 39295 ; 39296 __533: 39297 ; 39298 39299 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d3) { 39300 goto __542 39301 } 39302 rrc = DMATCH_NOMATCH 39303 goto RETURN_SWITCH 39304 __542: 39305 ; 39306 39307 goto __528 39308 __528: 39309 i++ 39310 goto __527 39311 goto __529 39312 __529: 39313 ; 39314 goto __526 39315 __525: 39316 /* Not UTF mode */ 39317 39318 i = Tuint32_t(1) 39319 __543: 39320 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 39321 goto __545 39322 } 39323 39324 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39325 goto __546 39326 } 39327 39328 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)) { 39329 goto __547 39330 } 39331 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39332 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39333 goto __548 39334 } 39335 return -2 39336 __548: 39337 ; 39338 __547: 39339 ; 39340 39341 rrc = DMATCH_NOMATCH 39342 goto RETURN_SWITCH 39343 39344 __546: 39345 ; 39346 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 39347 goto __549 39348 } 39349 rrc = DMATCH_NOMATCH 39350 goto RETURN_SWITCH 39351 __549: 39352 ; 39353 39354 goto __544 39355 __544: 39356 i++ 39357 goto __543 39358 goto __545 39359 __545: 39360 ; 39361 __526: 39362 ; 39363 39364 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39365 goto __550 39366 } 39367 goto __11 39368 __550: 39369 ; 39370 39371 if !(reptype == REPTYPE_MIN) { 39372 goto __551 39373 } 39374 39375 if !(utf != 0) { 39376 goto __553 39377 } 39378 39379 __555: 39380 39381 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39382 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM206 39383 goto MATCH_RECURSE 39384 L_RM206: 39385 ; 39386 39387 if !(rrc != DMATCH_NOMATCH) { 39388 goto __558 39389 } 39390 rrc = rrc 39391 goto RETURN_SWITCH 39392 __558: 39393 ; 39394 39395 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39396 goto __559 39397 } 39398 rrc = DMATCH_NOMATCH 39399 goto RETURN_SWITCH 39400 __559: 39401 ; 39402 39403 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39404 goto __560 39405 } 39406 39407 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)) { 39408 goto __561 39409 } 39410 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39411 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39412 goto __562 39413 } 39414 return -2 39415 __562: 39416 ; 39417 __561: 39418 ; 39419 39420 rrc = DMATCH_NOMATCH 39421 goto RETURN_SWITCH 39422 39423 __560: 39424 ; 39425 d4 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 39426 if !(d4 >= 0xc0) { 39427 goto __563 39428 } 39429 if !(d4&0x20 == Tuint32_t(0)) { 39430 goto __564 39431 } 39432 d4 = d4&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 39433 goto __565 39434 __564: 39435 if !(d4&0x10 == Tuint32_t(0)) { 39436 goto __566 39437 } 39438 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 39439 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 39440 goto __567 39441 __566: 39442 if !(d4&0x08 == Tuint32_t(0)) { 39443 goto __568 39444 } 39445 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 39446 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 39447 goto __569 39448 __568: 39449 if !(d4&0x04 == Tuint32_t(0)) { 39450 goto __570 39451 } 39452 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 39453 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 39454 goto __571 39455 __570: 39456 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 39457 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 39458 __571: 39459 ; 39460 __569: 39461 ; 39462 __567: 39463 ; 39464 __565: 39465 ; 39466 __563: 39467 ; 39468 39469 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d4) { 39470 goto __572 39471 } 39472 rrc = DMATCH_NOMATCH 39473 goto RETURN_SWITCH 39474 __572: 39475 ; 39476 39477 goto __556 39478 __556: 39479 goto __555 39480 goto __557 39481 __557: 39482 ; 39483 goto __554 39484 __553: 39485 /* Not UTF mode */ 39486 39487 __573: 39488 39489 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39490 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM31 39491 goto MATCH_RECURSE 39492 L_RM31: 39493 ; 39494 39495 if !(rrc != DMATCH_NOMATCH) { 39496 goto __576 39497 } 39498 rrc = rrc 39499 goto RETURN_SWITCH 39500 __576: 39501 ; 39502 39503 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39504 goto __577 39505 } 39506 rrc = DMATCH_NOMATCH 39507 goto RETURN_SWITCH 39508 __577: 39509 ; 39510 39511 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39512 goto __578 39513 } 39514 39515 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)) { 39516 goto __579 39517 } 39518 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39519 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39520 goto __580 39521 } 39522 return -2 39523 __580: 39524 ; 39525 __579: 39526 ; 39527 39528 rrc = DMATCH_NOMATCH 39529 goto RETURN_SWITCH 39530 39531 __578: 39532 ; 39533 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 39534 goto __581 39535 } 39536 rrc = DMATCH_NOMATCH 39537 goto RETURN_SWITCH 39538 __581: 39539 ; 39540 39541 goto __574 39542 __574: 39543 goto __573 39544 goto __575 39545 __575: 39546 ; 39547 __554: 39548 ; 39549 // Control never gets here 39550 goto __552 39551 __551: 39552 39553 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 39554 39555 if !(utf != 0) { 39556 goto __582 39557 } 39558 39559 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 39560 __584: 39561 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39562 goto __586 39563 } 39564 39565 len1 = 1 39566 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39567 goto __587 39568 } 39569 39570 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)) { 39571 goto __588 39572 } 39573 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39574 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39575 goto __589 39576 } 39577 return -2 39578 __589: 39579 ; 39580 __588: 39581 ; 39582 39583 goto __586 39584 __587: 39585 ; 39586 d5 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 39587 if !(d5 >= 0xc0) { 39588 goto __590 39589 } 39590 if !(d5&0x20 == Tuint32_t(0)) { 39591 goto __591 39592 } 39593 d5 = d5&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39594 len1++ 39595 goto __592 39596 __591: 39597 if !(d5&0x10 == Tuint32_t(0)) { 39598 goto __593 39599 } 39600 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 39601 len1 = len1 + 2 39602 goto __594 39603 __593: 39604 if !(d5&0x08 == Tuint32_t(0)) { 39605 goto __595 39606 } 39607 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 39608 len1 = len1 + 3 39609 goto __596 39610 __595: 39611 if !(d5&0x04 == Tuint32_t(0)) { 39612 goto __597 39613 } 39614 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 39615 len1 = len1 + 4 39616 goto __598 39617 __597: 39618 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 39619 len1 = len1 + 5 39620 __598: 39621 ; 39622 __596: 39623 ; 39624 __594: 39625 ; 39626 __592: 39627 ; 39628 __590: 39629 ; 39630 39631 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d5) { 39632 goto __599 39633 } 39634 goto __586 39635 __599: 39636 ; 39637 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len1) 39638 goto __585 39639 __585: 39640 i++ 39641 goto __584 39642 goto __586 39643 __586: 39644 ; 39645 39646 // After \C in UTF mode, Lstart_eptr might be in the middle of a 39647 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 39648 // go too far. 39649 39650 if !(reptype != REPTYPE_POS) { 39651 goto __600 39652 } 39653 __601: 39654 39655 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 39656 goto __604 39657 } 39658 goto __603 39659 __604: 39660 ; 39661 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39662 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM207 39663 goto MATCH_RECURSE 39664 L_RM207: 39665 ; 39666 39667 if !(rrc != DMATCH_NOMATCH) { 39668 goto __605 39669 } 39670 rrc = rrc 39671 goto RETURN_SWITCH 39672 __605: 39673 ; 39674 39675 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39676 __606: 39677 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 39678 goto __607 39679 } 39680 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39681 goto __606 39682 __607: 39683 ; 39684 goto __602 39685 __602: 39686 goto __601 39687 goto __603 39688 __603: 39689 ; 39690 __600: 39691 ; 39692 goto __583 39693 __582: 39694 /* Not UTF mode */ 39695 39696 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 39697 __608: 39698 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39699 goto __610 39700 } 39701 39702 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39703 goto __611 39704 } 39705 39706 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)) { 39707 goto __612 39708 } 39709 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39710 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39711 goto __613 39712 } 39713 return -2 39714 __613: 39715 ; 39716 __612: 39717 ; 39718 39719 goto __610 39720 __611: 39721 ; 39722 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 39723 goto __614 39724 } 39725 goto __610 39726 __614: 39727 ; 39728 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 39729 goto __609 39730 __609: 39731 i++ 39732 goto __608 39733 goto __610 39734 __610: 39735 ; 39736 if !(reptype != REPTYPE_POS) { 39737 goto __615 39738 } 39739 __616: 39740 39741 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 39742 goto __619 39743 } 39744 goto __618 39745 __619: 39746 ; 39747 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39748 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM32 39749 goto MATCH_RECURSE 39750 L_RM32: 39751 ; 39752 39753 if !(rrc != DMATCH_NOMATCH) { 39754 goto __620 39755 } 39756 rrc = rrc 39757 goto RETURN_SWITCH 39758 __620: 39759 ; 39760 39761 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39762 goto __617 39763 __617: 39764 goto __616 39765 goto __618 39766 __618: 39767 ; 39768 __615: 39769 ; 39770 __583: 39771 ; 39772 __552: 39773 ; 39774 __426: 39775 ; 39776 goto __13 39777 39778 // ===================================================================== 39779 // Match a bit-mapped character class, possibly repeatedly. These opcodes 39780 // are used when all the characters in the class have values in the range 39781 // 0-255, and either the matching is caseful, or the characters are in the 39782 // range 0-127 when UTF processing is enabled. The only difference between 39783 // OP_CLASS and OP_NCLASS occurs when a data character outside the range is 39784 // encountered. 39785 39786 __77: 39787 __78: 39788 39789 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) // Save for matching 39790 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint64(1) + uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) // Advance past the item 39791 39792 // Look past the end of the item to see if there is repeat information 39793 // following. Then obey similar code to character type repeats. 39794 39795 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 39796 case OP_CRSTAR: 39797 goto __622 39798 case OP_CRMINSTAR: 39799 goto __623 39800 case OP_CRPLUS: 39801 goto __624 39802 case OP_CRMINPLUS: 39803 goto __625 39804 case OP_CRQUERY: 39805 goto __626 39806 case OP_CRMINQUERY: 39807 goto __627 39808 case OP_CRPOSSTAR: 39809 goto __628 39810 case OP_CRPOSPLUS: 39811 goto __629 39812 case OP_CRPOSQUERY: 39813 goto __630 39814 39815 case OP_CRRANGE: 39816 goto __631 39817 case OP_CRMINRANGE: 39818 goto __632 39819 case OP_CRPOSRANGE: 39820 goto __633 39821 39822 default: 39823 goto __634 39824 } 39825 goto __621 39826 39827 __622: 39828 __623: 39829 __624: 39830 __625: 39831 __626: 39832 __627: 39833 __628: 39834 __629: 39835 __630: 39836 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_CRSTAR) 39837 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 39838 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 39839 reptype = rep_typ[fc] 39840 goto __621 39841 39842 __631: 39843 __632: 39844 __633: 39845 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 39846 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 39847 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) == Tuint32_t(0)) { 39848 goto __635 39849 } 39850 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 39851 __635: 39852 ; // Max 0 => infinity 39853 reptype = rep_typ[int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))-OP_CRSTAR] 39854 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 39855 goto __621 39856 39857 __634: // No repeat follows 39858 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = libc.AssignPtrUint32(F+56+1*4, Tuint32_t(1)) 39859 goto __621 39860 __621: 39861 ; 39862 39863 // First, ensure the minimum number of matches are present. 39864 39865 if !(utf != 0) { 39866 goto __636 39867 } 39868 39869 i = Tuint32_t(1) 39870 __638: 39871 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 39872 goto __640 39873 } 39874 39875 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39876 goto __641 39877 } 39878 39879 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)) { 39880 goto __642 39881 } 39882 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39883 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39884 goto __643 39885 } 39886 return -2 39887 __643: 39888 ; 39889 __642: 39890 ; 39891 39892 rrc = DMATCH_NOMATCH 39893 goto RETURN_SWITCH 39894 39895 __641: 39896 ; 39897 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 39898 if !(fc >= 0xc0) { 39899 goto __644 39900 } 39901 if !(fc&0x20 == Tuint32_t(0)) { 39902 goto __645 39903 } 39904 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 39905 goto __646 39906 __645: 39907 if !(fc&0x10 == Tuint32_t(0)) { 39908 goto __647 39909 } 39910 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 39911 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 39912 goto __648 39913 __647: 39914 if !(fc&0x08 == Tuint32_t(0)) { 39915 goto __649 39916 } 39917 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 39918 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 39919 goto __650 39920 __649: 39921 if !(fc&0x04 == Tuint32_t(0)) { 39922 goto __651 39923 } 39924 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 39925 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 39926 goto __652 39927 __651: 39928 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 39929 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 39930 __652: 39931 ; 39932 __650: 39933 ; 39934 __648: 39935 ; 39936 __646: 39937 ; 39938 __644: 39939 ; 39940 39941 if !(fc > Tuint32_t(255)) { 39942 goto __653 39943 } 39944 39945 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_CLASS) { 39946 goto __655 39947 } 39948 rrc = DMATCH_NOMATCH 39949 goto RETURN_SWITCH 39950 __655: 39951 ; 39952 39953 goto __654 39954 __653: 39955 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 39956 goto __656 39957 } 39958 rrc = DMATCH_NOMATCH 39959 goto RETURN_SWITCH 39960 __656: 39961 ; 39962 __654: 39963 ; 39964 39965 goto __639 39966 __639: 39967 i++ 39968 goto __638 39969 goto __640 39970 __640: 39971 ; 39972 goto __637 39973 __636: 39974 /* Not UTF mode */ 39975 39976 i = Tuint32_t(1) 39977 __657: 39978 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 39979 goto __659 39980 } 39981 39982 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39983 goto __660 39984 } 39985 39986 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)) { 39987 goto __661 39988 } 39989 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39990 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39991 goto __662 39992 } 39993 return -2 39994 __662: 39995 ; 39996 __661: 39997 ; 39998 39999 rrc = DMATCH_NOMATCH 40000 goto RETURN_SWITCH 40001 40002 __660: 40003 ; 40004 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40005 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40006 goto __663 40007 } 40008 rrc = DMATCH_NOMATCH 40009 goto RETURN_SWITCH 40010 __663: 40011 ; 40012 40013 goto __658 40014 __658: 40015 i++ 40016 goto __657 40017 goto __659 40018 __659: 40019 ; 40020 __637: 40021 ; 40022 40023 // If Lmax == Lmin we are done. Continue with main loop. 40024 40025 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40026 goto __664 40027 } 40028 goto __11 40029 __664: 40030 ; 40031 40032 // If minimizing, keep testing the rest of the expression and advancing 40033 // the pointer while it matches the class. 40034 40035 if !(reptype == REPTYPE_MIN) { 40036 goto __665 40037 } 40038 40039 if !(utf != 0) { 40040 goto __667 40041 } 40042 40043 __669: 40044 40045 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40046 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM200 40047 goto MATCH_RECURSE 40048 L_RM200: 40049 ; 40050 40051 if !(rrc != DMATCH_NOMATCH) { 40052 goto __672 40053 } 40054 rrc = rrc 40055 goto RETURN_SWITCH 40056 __672: 40057 ; 40058 40059 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40060 goto __673 40061 } 40062 rrc = DMATCH_NOMATCH 40063 goto RETURN_SWITCH 40064 __673: 40065 ; 40066 40067 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40068 goto __674 40069 } 40070 40071 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)) { 40072 goto __675 40073 } 40074 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40075 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40076 goto __676 40077 } 40078 return -2 40079 __676: 40080 ; 40081 __675: 40082 ; 40083 40084 rrc = DMATCH_NOMATCH 40085 goto RETURN_SWITCH 40086 40087 __674: 40088 ; 40089 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40090 if !(fc >= 0xc0) { 40091 goto __677 40092 } 40093 if !(fc&0x20 == Tuint32_t(0)) { 40094 goto __678 40095 } 40096 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40097 goto __679 40098 __678: 40099 if !(fc&0x10 == Tuint32_t(0)) { 40100 goto __680 40101 } 40102 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 40103 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 40104 goto __681 40105 __680: 40106 if !(fc&0x08 == Tuint32_t(0)) { 40107 goto __682 40108 } 40109 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 40110 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 40111 goto __683 40112 __682: 40113 if !(fc&0x04 == Tuint32_t(0)) { 40114 goto __684 40115 } 40116 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 40117 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 40118 goto __685 40119 __684: 40120 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 40121 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 40122 __685: 40123 ; 40124 __683: 40125 ; 40126 __681: 40127 ; 40128 __679: 40129 ; 40130 __677: 40131 ; 40132 40133 if !(fc > Tuint32_t(255)) { 40134 goto __686 40135 } 40136 40137 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_CLASS) { 40138 goto __688 40139 } 40140 rrc = DMATCH_NOMATCH 40141 goto RETURN_SWITCH 40142 __688: 40143 ; 40144 40145 goto __687 40146 __686: 40147 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40148 goto __689 40149 } 40150 rrc = DMATCH_NOMATCH 40151 goto RETURN_SWITCH 40152 __689: 40153 ; 40154 __687: 40155 ; 40156 40157 goto __670 40158 __670: 40159 goto __669 40160 goto __671 40161 __671: 40162 ; 40163 goto __668 40164 __667: 40165 /* Not UTF mode */ 40166 40167 __690: 40168 40169 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40170 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM23 40171 goto MATCH_RECURSE 40172 L_RM23: 40173 ; 40174 40175 if !(rrc != DMATCH_NOMATCH) { 40176 goto __693 40177 } 40178 rrc = rrc 40179 goto RETURN_SWITCH 40180 __693: 40181 ; 40182 40183 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40184 goto __694 40185 } 40186 rrc = DMATCH_NOMATCH 40187 goto RETURN_SWITCH 40188 __694: 40189 ; 40190 40191 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40192 goto __695 40193 } 40194 40195 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)) { 40196 goto __696 40197 } 40198 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40199 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40200 goto __697 40201 } 40202 return -2 40203 __697: 40204 ; 40205 __696: 40206 ; 40207 40208 rrc = DMATCH_NOMATCH 40209 goto RETURN_SWITCH 40210 40211 __695: 40212 ; 40213 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40214 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40215 goto __698 40216 } 40217 rrc = DMATCH_NOMATCH 40218 goto RETURN_SWITCH 40219 __698: 40220 ; 40221 40222 goto __691 40223 __691: 40224 goto __690 40225 goto __692 40226 __692: 40227 ; 40228 __668: 40229 ; 40230 // Control never gets here 40231 goto __666 40232 __665: 40233 40234 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 40235 40236 if !(utf != 0) { 40237 goto __699 40238 } 40239 40240 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 40241 __701: 40242 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40243 goto __703 40244 } 40245 40246 len2 = 1 40247 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40248 goto __704 40249 } 40250 40251 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)) { 40252 goto __705 40253 } 40254 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40255 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40256 goto __706 40257 } 40258 return -2 40259 __706: 40260 ; 40261 __705: 40262 ; 40263 40264 goto __703 40265 __704: 40266 ; 40267 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 40268 if !(fc >= 0xc0) { 40269 goto __707 40270 } 40271 if !(fc&0x20 == Tuint32_t(0)) { 40272 goto __708 40273 } 40274 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40275 len2++ 40276 goto __709 40277 __708: 40278 if !(fc&0x10 == Tuint32_t(0)) { 40279 goto __710 40280 } 40281 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 40282 len2 = len2 + 2 40283 goto __711 40284 __710: 40285 if !(fc&0x08 == Tuint32_t(0)) { 40286 goto __712 40287 } 40288 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 40289 len2 = len2 + 3 40290 goto __713 40291 __712: 40292 if !(fc&0x04 == Tuint32_t(0)) { 40293 goto __714 40294 } 40295 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 40296 len2 = len2 + 4 40297 goto __715 40298 __714: 40299 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 40300 len2 = len2 + 5 40301 __715: 40302 ; 40303 __713: 40304 ; 40305 __711: 40306 ; 40307 __709: 40308 ; 40309 __707: 40310 ; 40311 40312 if !(fc > Tuint32_t(255)) { 40313 goto __716 40314 } 40315 40316 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_CLASS) { 40317 goto __718 40318 } 40319 goto __703 40320 __718: 40321 ; 40322 goto __717 40323 __716: 40324 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40325 goto __719 40326 } 40327 goto __703 40328 __719: 40329 ; 40330 __717: 40331 ; 40332 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len2) 40333 goto __702 40334 __702: 40335 i++ 40336 goto __701 40337 goto __703 40338 __703: 40339 ; 40340 40341 if !(reptype == REPTYPE_POS) { 40342 goto __720 40343 } 40344 goto __11 40345 __720: 40346 ; // No backtracking 40347 40348 // After \C in UTF mode, Lstart_eptr might be in the middle of a 40349 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 40350 // go too far. 40351 40352 __721: 40353 40354 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40355 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM201 40356 goto MATCH_RECURSE 40357 L_RM201: 40358 ; 40359 40360 if !(rrc != DMATCH_NOMATCH) { 40361 goto __724 40362 } 40363 rrc = rrc 40364 goto RETURN_SWITCH 40365 __724: 40366 ; 40367 40368 if !(libc.PostDecUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 40369 goto __725 40370 } 40371 goto __723 40372 __725: 40373 ; // Tried at original position 40374 __726: 40375 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 40376 goto __727 40377 } 40378 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 40379 goto __726 40380 __727: 40381 ; 40382 goto __722 40383 __722: 40384 goto __721 40385 goto __723 40386 __723: 40387 ; 40388 goto __700 40389 __699: 40390 /* Not UTF mode */ 40391 40392 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 40393 __728: 40394 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40395 goto __730 40396 } 40397 40398 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40399 goto __731 40400 } 40401 40402 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)) { 40403 goto __732 40404 } 40405 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40406 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40407 goto __733 40408 } 40409 return -2 40410 __733: 40411 ; 40412 __732: 40413 ; 40414 40415 goto __730 40416 __731: 40417 ; 40418 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 40419 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40420 goto __734 40421 } 40422 goto __730 40423 __734: 40424 ; 40425 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 40426 goto __729 40427 __729: 40428 i++ 40429 goto __728 40430 goto __730 40431 __730: 40432 ; 40433 40434 if !(reptype == REPTYPE_POS) { 40435 goto __735 40436 } 40437 goto __11 40438 __735: 40439 ; // No backtracking 40440 40441 __736: 40442 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 40443 goto __737 40444 } 40445 40446 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40447 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM24 40448 goto MATCH_RECURSE 40449 L_RM24: 40450 ; 40451 40452 if !(rrc != DMATCH_NOMATCH) { 40453 goto __738 40454 } 40455 rrc = rrc 40456 goto RETURN_SWITCH 40457 __738: 40458 ; 40459 40460 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 40461 goto __736 40462 __737: 40463 ; 40464 __700: 40465 ; 40466 40467 rrc = DMATCH_NOMATCH 40468 goto RETURN_SWITCH 40469 40470 __666: 40471 ; 40472 40473 // Control never gets here 40474 40475 // ===================================================================== 40476 // Match an extended character class. In the 8-bit library, this opcode is 40477 // encountered only when UTF-8 mode mode is supported. In the 16-bit and 40478 // 32-bit libraries, codepoints greater than 255 may be encountered even when 40479 // UTF is not supported. 40480 40481 __79: 40482 40483 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) + uintptr(DLINK_SIZE) // Save for matching 40484 *(*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 40485 40486 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 40487 case OP_CRSTAR: 40488 goto __740 40489 case OP_CRMINSTAR: 40490 goto __741 40491 case OP_CRPLUS: 40492 goto __742 40493 case OP_CRMINPLUS: 40494 goto __743 40495 case OP_CRQUERY: 40496 goto __744 40497 case OP_CRMINQUERY: 40498 goto __745 40499 case OP_CRPOSSTAR: 40500 goto __746 40501 case OP_CRPOSPLUS: 40502 goto __747 40503 case OP_CRPOSQUERY: 40504 goto __748 40505 40506 case OP_CRRANGE: 40507 goto __749 40508 case OP_CRMINRANGE: 40509 goto __750 40510 case OP_CRPOSRANGE: 40511 goto __751 40512 40513 default: 40514 goto __752 40515 } 40516 goto __739 40517 40518 __740: 40519 __741: 40520 __742: 40521 __743: 40522 __744: 40523 __745: 40524 __746: 40525 __747: 40526 __748: 40527 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_CRSTAR) 40528 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 40529 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 40530 reptype = rep_typ[fc] 40531 goto __739 40532 40533 __749: 40534 __750: 40535 __751: 40536 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 40537 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 40538 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) == Tuint32_t(0)) { 40539 goto __753 40540 } 40541 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 40542 __753: 40543 ; // Max 0 => infinity 40544 reptype = rep_typ[int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))-OP_CRSTAR] 40545 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 40546 goto __739 40547 40548 __752: // No repeat follows 40549 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = libc.AssignPtrUint32(F+56+1*4, Tuint32_t(1)) 40550 goto __739 40551 __739: 40552 ; 40553 40554 // First, ensure the minimum number of matches are present. 40555 40556 i = Tuint32_t(1) 40557 __754: 40558 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 40559 goto __756 40560 } 40561 40562 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40563 goto __757 40564 } 40565 40566 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)) { 40567 goto __758 40568 } 40569 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40570 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40571 goto __759 40572 } 40573 return -2 40574 __759: 40575 ; 40576 __758: 40577 ; 40578 40579 rrc = DMATCH_NOMATCH 40580 goto RETURN_SWITCH 40581 40582 __757: 40583 ; 40584 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40585 if !(utf != 0 && fc >= 0xc0) { 40586 goto __760 40587 } 40588 if !(fc&0x20 == Tuint32_t(0)) { 40589 goto __761 40590 } 40591 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40592 goto __762 40593 __761: 40594 if !(fc&0x10 == Tuint32_t(0)) { 40595 goto __763 40596 } 40597 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 40598 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 40599 goto __764 40600 __763: 40601 if !(fc&0x08 == Tuint32_t(0)) { 40602 goto __765 40603 } 40604 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 40605 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 40606 goto __766 40607 __765: 40608 if !(fc&0x04 == Tuint32_t(0)) { 40609 goto __767 40610 } 40611 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 40612 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 40613 goto __768 40614 __767: 40615 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 40616 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 40617 __768: 40618 ; 40619 __766: 40620 ; 40621 __764: 40622 ; 40623 __762: 40624 ; 40625 __760: 40626 ; 40627 40628 if !!(X_pcre2_xclass_8(tls, fc, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)), utf) != 0) { 40629 goto __769 40630 } 40631 rrc = DMATCH_NOMATCH 40632 goto RETURN_SWITCH 40633 __769: 40634 ; 40635 40636 goto __755 40637 __755: 40638 i++ 40639 goto __754 40640 goto __756 40641 __756: 40642 ; 40643 40644 // If Lmax == Lmin we can just continue with the main loop. 40645 40646 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40647 goto __770 40648 } 40649 goto __11 40650 __770: 40651 ; 40652 40653 // If minimizing, keep testing the rest of the expression and advancing 40654 // the pointer while it matches the class. 40655 40656 if !(reptype == REPTYPE_MIN) { 40657 goto __771 40658 } 40659 40660 __773: 40661 40662 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40663 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM100 40664 goto MATCH_RECURSE 40665 L_RM100: 40666 ; 40667 40668 if !(rrc != DMATCH_NOMATCH) { 40669 goto __776 40670 } 40671 rrc = rrc 40672 goto RETURN_SWITCH 40673 __776: 40674 ; 40675 40676 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40677 goto __777 40678 } 40679 rrc = DMATCH_NOMATCH 40680 goto RETURN_SWITCH 40681 __777: 40682 ; 40683 40684 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40685 goto __778 40686 } 40687 40688 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)) { 40689 goto __779 40690 } 40691 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40692 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40693 goto __780 40694 } 40695 return -2 40696 __780: 40697 ; 40698 __779: 40699 ; 40700 40701 rrc = DMATCH_NOMATCH 40702 goto RETURN_SWITCH 40703 40704 __778: 40705 ; 40706 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40707 if !(utf != 0 && fc >= 0xc0) { 40708 goto __781 40709 } 40710 if !(fc&0x20 == Tuint32_t(0)) { 40711 goto __782 40712 } 40713 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40714 goto __783 40715 __782: 40716 if !(fc&0x10 == Tuint32_t(0)) { 40717 goto __784 40718 } 40719 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 40720 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 40721 goto __785 40722 __784: 40723 if !(fc&0x08 == Tuint32_t(0)) { 40724 goto __786 40725 } 40726 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 40727 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 40728 goto __787 40729 __786: 40730 if !(fc&0x04 == Tuint32_t(0)) { 40731 goto __788 40732 } 40733 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 40734 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 40735 goto __789 40736 __788: 40737 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 40738 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 40739 __789: 40740 ; 40741 __787: 40742 ; 40743 __785: 40744 ; 40745 __783: 40746 ; 40747 __781: 40748 ; 40749 40750 if !!(X_pcre2_xclass_8(tls, fc, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)), utf) != 0) { 40751 goto __790 40752 } 40753 rrc = DMATCH_NOMATCH 40754 goto RETURN_SWITCH 40755 __790: 40756 ; 40757 40758 goto __774 40759 __774: 40760 goto __773 40761 goto __775 40762 __775: 40763 ; 40764 // Control never gets here 40765 goto __772 40766 __771: 40767 40768 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 40769 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 40770 __791: 40771 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40772 goto __793 40773 } 40774 40775 len3 = 1 40776 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40777 goto __794 40778 } 40779 40780 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)) { 40781 goto __795 40782 } 40783 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40784 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40785 goto __796 40786 } 40787 return -2 40788 __796: 40789 ; 40790 __795: 40791 ; 40792 40793 goto __793 40794 __794: 40795 ; 40796 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 40797 if !(utf != 0 && fc >= 0xc0) { 40798 goto __797 40799 } 40800 if !(fc&0x20 == Tuint32_t(0)) { 40801 goto __798 40802 } 40803 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40804 len3++ 40805 goto __799 40806 __798: 40807 if !(fc&0x10 == Tuint32_t(0)) { 40808 goto __800 40809 } 40810 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 40811 len3 = len3 + 2 40812 goto __801 40813 __800: 40814 if !(fc&0x08 == Tuint32_t(0)) { 40815 goto __802 40816 } 40817 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 40818 len3 = len3 + 3 40819 goto __803 40820 __802: 40821 if !(fc&0x04 == Tuint32_t(0)) { 40822 goto __804 40823 } 40824 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 40825 len3 = len3 + 4 40826 goto __805 40827 __804: 40828 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 40829 len3 = len3 + 5 40830 __805: 40831 ; 40832 __803: 40833 ; 40834 __801: 40835 ; 40836 __799: 40837 ; 40838 __797: 40839 ; 40840 40841 if !!(X_pcre2_xclass_8(tls, fc, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)), utf) != 0) { 40842 goto __806 40843 } 40844 goto __793 40845 __806: 40846 ; 40847 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len3) 40848 goto __792 40849 __792: 40850 i++ 40851 goto __791 40852 goto __793 40853 __793: 40854 ; 40855 40856 if !(reptype == REPTYPE_POS) { 40857 goto __807 40858 } 40859 goto __11 40860 __807: 40861 ; // No backtracking 40862 40863 // After \C in UTF mode, Lstart_eptr might be in the middle of a 40864 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 40865 // go too far. 40866 40867 __808: 40868 40869 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40870 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM101 40871 goto MATCH_RECURSE 40872 L_RM101: 40873 ; 40874 40875 if !(rrc != DMATCH_NOMATCH) { 40876 goto __811 40877 } 40878 rrc = rrc 40879 goto RETURN_SWITCH 40880 __811: 40881 ; 40882 40883 if !(libc.PostDecUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 40884 goto __812 40885 } 40886 goto __810 40887 __812: 40888 ; // Tried at original position 40889 if !(utf != 0) { 40890 goto __813 40891 } 40892 __814: 40893 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 40894 goto __815 40895 } 40896 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 40897 goto __814 40898 __815: 40899 ; 40900 __813: 40901 ; 40902 goto __809 40903 __809: 40904 goto __808 40905 goto __810 40906 __810: 40907 ; 40908 rrc = DMATCH_NOMATCH 40909 goto RETURN_SWITCH 40910 40911 __772: 40912 ; 40913 40914 // Control never gets here 40915 40916 // ===================================================================== 40917 // Match various character types when PCRE2_UCP is not set. These opcodes 40918 // are not generated when PCRE2_UCP is set - instead appropriate property 40919 // tests are compiled. 40920 40921 __80: 40922 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40923 goto __816 40924 } 40925 40926 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)) { 40927 goto __817 40928 } 40929 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40930 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40931 goto __818 40932 } 40933 return -2 40934 __818: 40935 ; 40936 __817: 40937 ; 40938 40939 rrc = DMATCH_NOMATCH 40940 goto RETURN_SWITCH 40941 40942 __816: 40943 ; 40944 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40945 if !(utf != 0 && fc >= 0xc0) { 40946 goto __819 40947 } 40948 if !(fc&0x20 == Tuint32_t(0)) { 40949 goto __820 40950 } 40951 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40952 goto __821 40953 __820: 40954 if !(fc&0x10 == Tuint32_t(0)) { 40955 goto __822 40956 } 40957 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 40958 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 40959 goto __823 40960 __822: 40961 if !(fc&0x08 == Tuint32_t(0)) { 40962 goto __824 40963 } 40964 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 40965 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 40966 goto __825 40967 __824: 40968 if !(fc&0x04 == Tuint32_t(0)) { 40969 goto __826 40970 } 40971 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 40972 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 40973 goto __827 40974 __826: 40975 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 40976 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 40977 __827: 40978 ; 40979 __825: 40980 ; 40981 __823: 40982 ; 40983 __821: 40984 ; 40985 __819: 40986 ; 40987 40988 if !(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 40989 goto __828 40990 } 40991 rrc = DMATCH_NOMATCH 40992 goto RETURN_SWITCH 40993 __828: 40994 ; 40995 40996 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 40997 goto __13 40998 40999 __81: 41000 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41001 goto __829 41002 } 41003 41004 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)) { 41005 goto __830 41006 } 41007 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41008 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41009 goto __831 41010 } 41011 return -2 41012 __831: 41013 ; 41014 __830: 41015 ; 41016 41017 rrc = DMATCH_NOMATCH 41018 goto RETURN_SWITCH 41019 41020 __829: 41021 ; 41022 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41023 if !(utf != 0 && fc >= 0xc0) { 41024 goto __832 41025 } 41026 if !(fc&0x20 == Tuint32_t(0)) { 41027 goto __833 41028 } 41029 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41030 goto __834 41031 __833: 41032 if !(fc&0x10 == Tuint32_t(0)) { 41033 goto __835 41034 } 41035 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 41036 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41037 goto __836 41038 __835: 41039 if !(fc&0x08 == Tuint32_t(0)) { 41040 goto __837 41041 } 41042 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 41043 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41044 goto __838 41045 __837: 41046 if !(fc&0x04 == Tuint32_t(0)) { 41047 goto __839 41048 } 41049 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 41050 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41051 goto __840 41052 __839: 41053 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 41054 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41055 __840: 41056 ; 41057 __838: 41058 ; 41059 __836: 41060 ; 41061 __834: 41062 ; 41063 __832: 41064 ; 41065 41066 if !(!(fc <= 255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 41067 goto __841 41068 } 41069 rrc = DMATCH_NOMATCH 41070 goto RETURN_SWITCH 41071 __841: 41072 ; 41073 41074 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41075 goto __13 41076 41077 __82: 41078 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41079 goto __842 41080 } 41081 41082 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)) { 41083 goto __843 41084 } 41085 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41086 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41087 goto __844 41088 } 41089 return -2 41090 __844: 41091 ; 41092 __843: 41093 ; 41094 41095 rrc = DMATCH_NOMATCH 41096 goto RETURN_SWITCH 41097 41098 __842: 41099 ; 41100 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41101 if !(utf != 0 && fc >= 0xc0) { 41102 goto __845 41103 } 41104 if !(fc&0x20 == Tuint32_t(0)) { 41105 goto __846 41106 } 41107 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41108 goto __847 41109 __846: 41110 if !(fc&0x10 == Tuint32_t(0)) { 41111 goto __848 41112 } 41113 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 41114 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41115 goto __849 41116 __848: 41117 if !(fc&0x08 == Tuint32_t(0)) { 41118 goto __850 41119 } 41120 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 41121 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41122 goto __851 41123 __850: 41124 if !(fc&0x04 == Tuint32_t(0)) { 41125 goto __852 41126 } 41127 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 41128 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41129 goto __853 41130 __852: 41131 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 41132 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41133 __853: 41134 ; 41135 __851: 41136 ; 41137 __849: 41138 ; 41139 __847: 41140 ; 41141 __845: 41142 ; 41143 41144 if !(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 41145 goto __854 41146 } 41147 rrc = DMATCH_NOMATCH 41148 goto RETURN_SWITCH 41149 __854: 41150 ; 41151 41152 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41153 goto __13 41154 41155 __83: 41156 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41157 goto __855 41158 } 41159 41160 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)) { 41161 goto __856 41162 } 41163 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41164 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41165 goto __857 41166 } 41167 return -2 41168 __857: 41169 ; 41170 __856: 41171 ; 41172 41173 rrc = DMATCH_NOMATCH 41174 goto RETURN_SWITCH 41175 41176 __855: 41177 ; 41178 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41179 if !(utf != 0 && fc >= 0xc0) { 41180 goto __858 41181 } 41182 if !(fc&0x20 == Tuint32_t(0)) { 41183 goto __859 41184 } 41185 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41186 goto __860 41187 __859: 41188 if !(fc&0x10 == Tuint32_t(0)) { 41189 goto __861 41190 } 41191 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 41192 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41193 goto __862 41194 __861: 41195 if !(fc&0x08 == Tuint32_t(0)) { 41196 goto __863 41197 } 41198 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 41199 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41200 goto __864 41201 __863: 41202 if !(fc&0x04 == Tuint32_t(0)) { 41203 goto __865 41204 } 41205 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 41206 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41207 goto __866 41208 __865: 41209 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 41210 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41211 __866: 41212 ; 41213 __864: 41214 ; 41215 __862: 41216 ; 41217 __860: 41218 ; 41219 __858: 41220 ; 41221 41222 if !(!(fc <= 255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 41223 goto __867 41224 } 41225 rrc = DMATCH_NOMATCH 41226 goto RETURN_SWITCH 41227 __867: 41228 ; 41229 41230 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41231 goto __13 41232 41233 __84: 41234 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41235 goto __868 41236 } 41237 41238 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)) { 41239 goto __869 41240 } 41241 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41242 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41243 goto __870 41244 } 41245 return -2 41246 __870: 41247 ; 41248 __869: 41249 ; 41250 41251 rrc = DMATCH_NOMATCH 41252 goto RETURN_SWITCH 41253 41254 __868: 41255 ; 41256 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41257 if !(utf != 0 && fc >= 0xc0) { 41258 goto __871 41259 } 41260 if !(fc&0x20 == Tuint32_t(0)) { 41261 goto __872 41262 } 41263 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41264 goto __873 41265 __872: 41266 if !(fc&0x10 == Tuint32_t(0)) { 41267 goto __874 41268 } 41269 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 41270 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41271 goto __875 41272 __874: 41273 if !(fc&0x08 == Tuint32_t(0)) { 41274 goto __876 41275 } 41276 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 41277 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41278 goto __877 41279 __876: 41280 if !(fc&0x04 == Tuint32_t(0)) { 41281 goto __878 41282 } 41283 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 41284 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41285 goto __879 41286 __878: 41287 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 41288 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41289 __879: 41290 ; 41291 __877: 41292 ; 41293 __875: 41294 ; 41295 __873: 41296 ; 41297 __871: 41298 ; 41299 41300 if !(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 41301 goto __880 41302 } 41303 rrc = DMATCH_NOMATCH 41304 goto RETURN_SWITCH 41305 __880: 41306 ; 41307 41308 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41309 goto __13 41310 41311 __85: 41312 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41313 goto __881 41314 } 41315 41316 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)) { 41317 goto __882 41318 } 41319 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41320 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41321 goto __883 41322 } 41323 return -2 41324 __883: 41325 ; 41326 __882: 41327 ; 41328 41329 rrc = DMATCH_NOMATCH 41330 goto RETURN_SWITCH 41331 41332 __881: 41333 ; 41334 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41335 if !(utf != 0 && fc >= 0xc0) { 41336 goto __884 41337 } 41338 if !(fc&0x20 == Tuint32_t(0)) { 41339 goto __885 41340 } 41341 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41342 goto __886 41343 __885: 41344 if !(fc&0x10 == Tuint32_t(0)) { 41345 goto __887 41346 } 41347 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 41348 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41349 goto __888 41350 __887: 41351 if !(fc&0x08 == Tuint32_t(0)) { 41352 goto __889 41353 } 41354 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 41355 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41356 goto __890 41357 __889: 41358 if !(fc&0x04 == Tuint32_t(0)) { 41359 goto __891 41360 } 41361 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 41362 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41363 goto __892 41364 __891: 41365 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 41366 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41367 __892: 41368 ; 41369 __890: 41370 ; 41371 __888: 41372 ; 41373 __886: 41374 ; 41375 __884: 41376 ; 41377 41378 if !(!(fc <= 255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 41379 goto __893 41380 } 41381 rrc = DMATCH_NOMATCH 41382 goto RETURN_SWITCH 41383 __893: 41384 ; 41385 41386 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41387 goto __13 41388 41389 __86: 41390 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41391 goto __894 41392 } 41393 41394 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)) { 41395 goto __895 41396 } 41397 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41398 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41399 goto __896 41400 } 41401 return -2 41402 __896: 41403 ; 41404 __895: 41405 ; 41406 41407 rrc = DMATCH_NOMATCH 41408 goto RETURN_SWITCH 41409 41410 __894: 41411 ; 41412 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41413 if !(utf != 0 && fc >= 0xc0) { 41414 goto __897 41415 } 41416 if !(fc&0x20 == Tuint32_t(0)) { 41417 goto __898 41418 } 41419 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41420 goto __899 41421 __898: 41422 if !(fc&0x10 == Tuint32_t(0)) { 41423 goto __900 41424 } 41425 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 41426 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41427 goto __901 41428 __900: 41429 if !(fc&0x08 == Tuint32_t(0)) { 41430 goto __902 41431 } 41432 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 41433 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41434 goto __903 41435 __902: 41436 if !(fc&0x04 == Tuint32_t(0)) { 41437 goto __904 41438 } 41439 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 41440 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41441 goto __905 41442 __904: 41443 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 41444 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41445 __905: 41446 ; 41447 __903: 41448 ; 41449 __901: 41450 ; 41451 __899: 41452 ; 41453 __897: 41454 ; 41455 41456 switch fc { 41457 default: 41458 goto __907 41459 41460 case Tuint32_t('\015'): 41461 goto __908 41462 41463 case Tuint32_t('\012'): 41464 goto __909 41465 41466 case Tuint32_t('\013'): 41467 goto __910 41468 case Tuint32_t('\014'): 41469 goto __911 41470 case Tuint32_t(uint8('\x85')): 41471 goto __912 41472 case Tuint32_t(0x2028): 41473 goto __913 41474 case Tuint32_t(0x2029): 41475 goto __914 41476 } 41477 goto __906 41478 41479 __907: 41480 rrc = DMATCH_NOMATCH 41481 goto RETURN_SWITCH 41482 41483 __908: 41484 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41485 goto __915 41486 } 41487 41488 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)) { 41489 goto __917 41490 } 41491 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41492 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41493 goto __918 41494 } 41495 return -2 41496 __918: 41497 ; 41498 __917: 41499 ; 41500 41501 goto __916 41502 __915: 41503 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 41504 goto __919 41505 } 41506 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 41507 __919: 41508 ; 41509 __916: 41510 ; 41511 goto __906 41512 41513 __909: 41514 goto __906 41515 41516 __910: 41517 __911: 41518 __912: 41519 __913: 41520 __914: 41521 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 41522 goto __920 41523 } 41524 rrc = DMATCH_NOMATCH 41525 goto RETURN_SWITCH 41526 __920: 41527 ; 41528 41529 goto __906 41530 __906: 41531 ; 41532 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41533 goto __13 41534 41535 __87: 41536 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41537 goto __921 41538 } 41539 41540 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)) { 41541 goto __922 41542 } 41543 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41544 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41545 goto __923 41546 } 41547 return -2 41548 __923: 41549 ; 41550 __922: 41551 ; 41552 41553 rrc = DMATCH_NOMATCH 41554 goto RETURN_SWITCH 41555 41556 __921: 41557 ; 41558 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41559 if !(utf != 0 && fc >= 0xc0) { 41560 goto __924 41561 } 41562 if !(fc&0x20 == Tuint32_t(0)) { 41563 goto __925 41564 } 41565 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41566 goto __926 41567 __925: 41568 if !(fc&0x10 == Tuint32_t(0)) { 41569 goto __927 41570 } 41571 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 41572 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41573 goto __928 41574 __927: 41575 if !(fc&0x08 == Tuint32_t(0)) { 41576 goto __929 41577 } 41578 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 41579 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41580 goto __930 41581 __929: 41582 if !(fc&0x04 == Tuint32_t(0)) { 41583 goto __931 41584 } 41585 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 41586 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41587 goto __932 41588 __931: 41589 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 41590 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41591 __932: 41592 ; 41593 __930: 41594 ; 41595 __928: 41596 ; 41597 __926: 41598 ; 41599 __924: 41600 ; 41601 41602 switch fc { 41603 case Tuint32_t('\011'): 41604 goto __934 41605 case Tuint32_t('\040'): 41606 goto __935 41607 case Tuint32_t(uint8('\xa0')): 41608 goto __936 41609 case Tuint32_t(0x1680): 41610 goto __937 /* OGHAM SPACE MARK */ 41611 case Tuint32_t(0x180e): 41612 goto __938 /* MONGOLIAN VOWEL SEPARATOR */ 41613 case Tuint32_t(0x2000): 41614 goto __939 /* EN QUAD */ 41615 case Tuint32_t(0x2001): 41616 goto __940 /* EM QUAD */ 41617 case Tuint32_t(0x2002): 41618 goto __941 /* EN SPACE */ 41619 case Tuint32_t(0x2003): 41620 goto __942 /* EM SPACE */ 41621 case Tuint32_t(0x2004): 41622 goto __943 /* THREE-PER-EM SPACE */ 41623 case Tuint32_t(0x2005): 41624 goto __944 /* FOUR-PER-EM SPACE */ 41625 case Tuint32_t(0x2006): 41626 goto __945 /* SIX-PER-EM SPACE */ 41627 case Tuint32_t(0x2007): 41628 goto __946 /* FIGURE SPACE */ 41629 case Tuint32_t(0x2008): 41630 goto __947 /* PUNCTUATION SPACE */ 41631 case Tuint32_t(0x2009): 41632 goto __948 /* THIN SPACE */ 41633 case Tuint32_t(0x200A): 41634 goto __949 /* HAIR SPACE */ 41635 case Tuint32_t(0x202f): 41636 goto __950 /* NARROW NO-BREAK SPACE */ 41637 case Tuint32_t(0x205f): 41638 goto __951 /* MEDIUM MATHEMATICAL SPACE */ 41639 case Tuint32_t(0x3000): 41640 goto __952 // Byte and multibyte cases 41641 default: 41642 goto __953 41643 } 41644 goto __933 41645 41646 __934: 41647 __935: 41648 __936: 41649 __937: /* OGHAM SPACE MARK */ 41650 __938: /* MONGOLIAN VOWEL SEPARATOR */ 41651 __939: /* EN QUAD */ 41652 __940: /* EM QUAD */ 41653 __941: /* EN SPACE */ 41654 __942: /* EM SPACE */ 41655 __943: /* THREE-PER-EM SPACE */ 41656 __944: /* FOUR-PER-EM SPACE */ 41657 __945: /* SIX-PER-EM SPACE */ 41658 __946: /* FIGURE SPACE */ 41659 __947: /* PUNCTUATION SPACE */ 41660 __948: /* THIN SPACE */ 41661 __949: /* HAIR SPACE */ 41662 __950: /* NARROW NO-BREAK SPACE */ 41663 __951: /* MEDIUM MATHEMATICAL SPACE */ 41664 __952: 41665 rrc = DMATCH_NOMATCH 41666 goto RETURN_SWITCH 41667 // Byte and multibyte cases 41668 __953: 41669 goto __933 41670 __933: 41671 ; 41672 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41673 goto __13 41674 41675 __88: 41676 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41677 goto __954 41678 } 41679 41680 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)) { 41681 goto __955 41682 } 41683 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41684 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41685 goto __956 41686 } 41687 return -2 41688 __956: 41689 ; 41690 __955: 41691 ; 41692 41693 rrc = DMATCH_NOMATCH 41694 goto RETURN_SWITCH 41695 41696 __954: 41697 ; 41698 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41699 if !(utf != 0 && fc >= 0xc0) { 41700 goto __957 41701 } 41702 if !(fc&0x20 == Tuint32_t(0)) { 41703 goto __958 41704 } 41705 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41706 goto __959 41707 __958: 41708 if !(fc&0x10 == Tuint32_t(0)) { 41709 goto __960 41710 } 41711 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 41712 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41713 goto __961 41714 __960: 41715 if !(fc&0x08 == Tuint32_t(0)) { 41716 goto __962 41717 } 41718 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 41719 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41720 goto __963 41721 __962: 41722 if !(fc&0x04 == Tuint32_t(0)) { 41723 goto __964 41724 } 41725 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 41726 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41727 goto __965 41728 __964: 41729 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 41730 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41731 __965: 41732 ; 41733 __963: 41734 ; 41735 __961: 41736 ; 41737 __959: 41738 ; 41739 __957: 41740 ; 41741 41742 switch fc { 41743 case Tuint32_t('\011'): 41744 goto __967 41745 case Tuint32_t('\040'): 41746 goto __968 41747 case Tuint32_t(uint8('\xa0')): 41748 goto __969 41749 case Tuint32_t(0x1680): 41750 goto __970 /* OGHAM SPACE MARK */ 41751 case Tuint32_t(0x180e): 41752 goto __971 /* MONGOLIAN VOWEL SEPARATOR */ 41753 case Tuint32_t(0x2000): 41754 goto __972 /* EN QUAD */ 41755 case Tuint32_t(0x2001): 41756 goto __973 /* EM QUAD */ 41757 case Tuint32_t(0x2002): 41758 goto __974 /* EN SPACE */ 41759 case Tuint32_t(0x2003): 41760 goto __975 /* EM SPACE */ 41761 case Tuint32_t(0x2004): 41762 goto __976 /* THREE-PER-EM SPACE */ 41763 case Tuint32_t(0x2005): 41764 goto __977 /* FOUR-PER-EM SPACE */ 41765 case Tuint32_t(0x2006): 41766 goto __978 /* SIX-PER-EM SPACE */ 41767 case Tuint32_t(0x2007): 41768 goto __979 /* FIGURE SPACE */ 41769 case Tuint32_t(0x2008): 41770 goto __980 /* PUNCTUATION SPACE */ 41771 case Tuint32_t(0x2009): 41772 goto __981 /* THIN SPACE */ 41773 case Tuint32_t(0x200A): 41774 goto __982 /* HAIR SPACE */ 41775 case Tuint32_t(0x202f): 41776 goto __983 /* NARROW NO-BREAK SPACE */ 41777 case Tuint32_t(0x205f): 41778 goto __984 /* MEDIUM MATHEMATICAL SPACE */ 41779 case Tuint32_t(0x3000): 41780 goto __985 // Byte and multibyte cases 41781 default: 41782 goto __986 41783 } 41784 goto __966 41785 41786 __967: 41787 __968: 41788 __969: 41789 __970: /* OGHAM SPACE MARK */ 41790 __971: /* MONGOLIAN VOWEL SEPARATOR */ 41791 __972: /* EN QUAD */ 41792 __973: /* EM QUAD */ 41793 __974: /* EN SPACE */ 41794 __975: /* EM SPACE */ 41795 __976: /* THREE-PER-EM SPACE */ 41796 __977: /* FOUR-PER-EM SPACE */ 41797 __978: /* SIX-PER-EM SPACE */ 41798 __979: /* FIGURE SPACE */ 41799 __980: /* PUNCTUATION SPACE */ 41800 __981: /* THIN SPACE */ 41801 __982: /* HAIR SPACE */ 41802 __983: /* NARROW NO-BREAK SPACE */ 41803 __984: /* MEDIUM MATHEMATICAL SPACE */ 41804 __985: 41805 goto __966 // Byte and multibyte cases 41806 __986: 41807 rrc = DMATCH_NOMATCH 41808 goto RETURN_SWITCH 41809 41810 __966: 41811 ; 41812 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41813 goto __13 41814 41815 __89: 41816 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41817 goto __987 41818 } 41819 41820 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)) { 41821 goto __988 41822 } 41823 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41824 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41825 goto __989 41826 } 41827 return -2 41828 __989: 41829 ; 41830 __988: 41831 ; 41832 41833 rrc = DMATCH_NOMATCH 41834 goto RETURN_SWITCH 41835 41836 __987: 41837 ; 41838 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41839 if !(utf != 0 && fc >= 0xc0) { 41840 goto __990 41841 } 41842 if !(fc&0x20 == Tuint32_t(0)) { 41843 goto __991 41844 } 41845 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41846 goto __992 41847 __991: 41848 if !(fc&0x10 == Tuint32_t(0)) { 41849 goto __993 41850 } 41851 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 41852 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41853 goto __994 41854 __993: 41855 if !(fc&0x08 == Tuint32_t(0)) { 41856 goto __995 41857 } 41858 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 41859 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41860 goto __996 41861 __995: 41862 if !(fc&0x04 == Tuint32_t(0)) { 41863 goto __997 41864 } 41865 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 41866 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41867 goto __998 41868 __997: 41869 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 41870 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41871 __998: 41872 ; 41873 __996: 41874 ; 41875 __994: 41876 ; 41877 __992: 41878 ; 41879 __990: 41880 ; 41881 41882 switch fc { 41883 case Tuint32_t('\012'): 41884 goto __1000 41885 case Tuint32_t('\013'): 41886 goto __1001 41887 case Tuint32_t('\014'): 41888 goto __1002 41889 case Tuint32_t('\015'): 41890 goto __1003 41891 case Tuint32_t(uint8('\x85')): 41892 goto __1004 41893 case Tuint32_t(0x2028): 41894 goto __1005 /* LINE SEPARATOR */ 41895 case Tuint32_t(0x2029): 41896 goto __1006 41897 default: 41898 goto __1007 41899 } 41900 goto __999 41901 41902 __1000: 41903 __1001: 41904 __1002: 41905 __1003: 41906 __1004: 41907 __1005: /* LINE SEPARATOR */ 41908 __1006: 41909 rrc = DMATCH_NOMATCH 41910 goto RETURN_SWITCH 41911 41912 __1007: 41913 goto __999 41914 __999: 41915 ; 41916 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41917 goto __13 41918 41919 __90: 41920 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41921 goto __1008 41922 } 41923 41924 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)) { 41925 goto __1009 41926 } 41927 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41928 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41929 goto __1010 41930 } 41931 return -2 41932 __1010: 41933 ; 41934 __1009: 41935 ; 41936 41937 rrc = DMATCH_NOMATCH 41938 goto RETURN_SWITCH 41939 41940 __1008: 41941 ; 41942 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41943 if !(utf != 0 && fc >= 0xc0) { 41944 goto __1011 41945 } 41946 if !(fc&0x20 == Tuint32_t(0)) { 41947 goto __1012 41948 } 41949 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41950 goto __1013 41951 __1012: 41952 if !(fc&0x10 == Tuint32_t(0)) { 41953 goto __1014 41954 } 41955 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 41956 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41957 goto __1015 41958 __1014: 41959 if !(fc&0x08 == Tuint32_t(0)) { 41960 goto __1016 41961 } 41962 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 41963 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41964 goto __1017 41965 __1016: 41966 if !(fc&0x04 == Tuint32_t(0)) { 41967 goto __1018 41968 } 41969 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 41970 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41971 goto __1019 41972 __1018: 41973 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 41974 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41975 __1019: 41976 ; 41977 __1017: 41978 ; 41979 __1015: 41980 ; 41981 __1013: 41982 ; 41983 __1011: 41984 ; 41985 41986 switch fc { 41987 case Tuint32_t('\012'): 41988 goto __1021 41989 case Tuint32_t('\013'): 41990 goto __1022 41991 case Tuint32_t('\014'): 41992 goto __1023 41993 case Tuint32_t('\015'): 41994 goto __1024 41995 case Tuint32_t(uint8('\x85')): 41996 goto __1025 41997 case Tuint32_t(0x2028): 41998 goto __1026 /* LINE SEPARATOR */ 41999 case Tuint32_t(0x2029): 42000 goto __1027 42001 default: 42002 goto __1028 42003 } 42004 goto __1020 42005 42006 __1021: 42007 __1022: 42008 __1023: 42009 __1024: 42010 __1025: 42011 __1026: /* LINE SEPARATOR */ 42012 __1027: 42013 goto __1020 42014 __1028: 42015 rrc = DMATCH_NOMATCH 42016 goto RETURN_SWITCH 42017 42018 __1020: 42019 ; 42020 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42021 goto __13 42022 42023 // ===================================================================== 42024 // Check the next character by Unicode property. We will get here only 42025 // if the support is in the binary; otherwise a compile-time error occurs. 42026 42027 __91: 42028 __92: 42029 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42030 goto __1029 42031 } 42032 42033 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)) { 42034 goto __1030 42035 } 42036 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42037 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42038 goto __1031 42039 } 42040 return -2 42041 __1031: 42042 ; 42043 __1030: 42044 ; 42045 42046 rrc = DMATCH_NOMATCH 42047 goto RETURN_SWITCH 42048 42049 __1029: 42050 ; 42051 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42052 if !(utf != 0 && fc >= 0xc0) { 42053 goto __1032 42054 } 42055 if !(fc&0x20 == Tuint32_t(0)) { 42056 goto __1033 42057 } 42058 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42059 goto __1034 42060 __1033: 42061 if !(fc&0x10 == Tuint32_t(0)) { 42062 goto __1035 42063 } 42064 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 42065 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 42066 goto __1036 42067 __1035: 42068 if !(fc&0x08 == Tuint32_t(0)) { 42069 goto __1037 42070 } 42071 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 42072 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 42073 goto __1038 42074 __1037: 42075 if !(fc&0x04 == Tuint32_t(0)) { 42076 goto __1039 42077 } 42078 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 42079 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 42080 goto __1040 42081 __1039: 42082 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 42083 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 42084 __1040: 42085 ; 42086 __1038: 42087 ; 42088 __1036: 42089 ; 42090 __1034: 42091 ; 42092 __1032: 42093 ; 42094 42095 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 42096 notmatch = libc.Bool32(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTPROP) 42097 42098 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) { 42099 case DPT_ANY: 42100 goto __1042 42101 42102 case DPT_LAMP: 42103 goto __1043 42104 42105 case DPT_GC: 42106 goto __1044 42107 42108 case DPT_PC: 42109 goto __1045 42110 42111 case DPT_SC: 42112 goto __1046 42113 42114 case DPT_SCX: 42115 goto __1047 42116 42117 // These are specials 42118 42119 case DPT_ALNUM: 42120 goto __1048 42121 42122 // Perl space used to exclude VT, but from Perl 5.18 it is included, 42123 // which means that Perl space and POSIX space are now identical. PCRE 42124 // was changed at release 8.34. 42125 42126 case DPT_SPACE: 42127 goto __1049 // Perl space 42128 case DPT_PXSPACE: 42129 goto __1050 42130 42131 case DPT_WORD: 42132 goto __1051 42133 42134 case DPT_CLIST: 42135 goto __1052 42136 42137 case DPT_UCNC: 42138 goto __1053 42139 42140 case DPT_BIDICL: 42141 goto __1054 42142 42143 case DPT_BOOL: 42144 goto __1055 42145 42146 // This should never occur 42147 42148 default: 42149 goto __1056 42150 } 42151 goto __1041 42152 42153 __1042: 42154 if !(notmatch != 0) { 42155 goto __1057 42156 } 42157 rrc = DMATCH_NOMATCH 42158 goto RETURN_SWITCH 42159 __1057: 42160 ; 42161 42162 goto __1041 42163 42164 __1043: 42165 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) { 42166 goto __1058 42167 } 42168 rrc = DMATCH_NOMATCH 42169 goto RETURN_SWITCH 42170 __1058: 42171 ; 42172 42173 goto __1041 42174 42175 __1044: 42176 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) { 42177 goto __1059 42178 } 42179 rrc = DMATCH_NOMATCH 42180 goto RETURN_SWITCH 42181 __1059: 42182 ; 42183 42184 goto __1041 42185 42186 __1045: 42187 if !(libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype)) == notmatch) { 42188 goto __1060 42189 } 42190 rrc = DMATCH_NOMATCH 42191 goto RETURN_SWITCH 42192 __1060: 42193 ; 42194 42195 goto __1041 42196 42197 __1046: 42198 if !(libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript)) == notmatch) { 42199 goto __1061 42200 } 42201 rrc = DMATCH_NOMATCH 42202 goto RETURN_SWITCH 42203 __1061: 42204 ; 42205 42206 goto __1041 42207 42208 __1047: 42209 42210 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)) 42211 if !(ok == notmatch) { 42212 goto __1062 42213 } 42214 rrc = DMATCH_NOMATCH 42215 goto RETURN_SWITCH 42216 __1062: 42217 ; 42218 42219 goto __1041 42220 42221 // These are specials 42222 42223 __1048: 42224 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) { 42225 goto __1063 42226 } 42227 rrc = DMATCH_NOMATCH 42228 goto RETURN_SWITCH 42229 __1063: 42230 ; 42231 42232 goto __1041 42233 42234 // Perl space used to exclude VT, but from Perl 5.18 it is included, 42235 // which means that Perl space and POSIX space are now identical. PCRE 42236 // was changed at release 8.34. 42237 42238 __1049: // Perl space 42239 __1050: // POSIX space 42240 switch fc { 42241 case Tuint32_t('\011'): 42242 goto __1065 42243 case Tuint32_t('\040'): 42244 goto __1066 42245 case Tuint32_t(uint8('\xa0')): 42246 goto __1067 42247 case Tuint32_t(0x1680): 42248 goto __1068 /* OGHAM SPACE MARK */ 42249 case Tuint32_t(0x180e): 42250 goto __1069 /* MONGOLIAN VOWEL SEPARATOR */ 42251 case Tuint32_t(0x2000): 42252 goto __1070 /* EN QUAD */ 42253 case Tuint32_t(0x2001): 42254 goto __1071 /* EM QUAD */ 42255 case Tuint32_t(0x2002): 42256 goto __1072 /* EN SPACE */ 42257 case Tuint32_t(0x2003): 42258 goto __1073 /* EM SPACE */ 42259 case Tuint32_t(0x2004): 42260 goto __1074 /* THREE-PER-EM SPACE */ 42261 case Tuint32_t(0x2005): 42262 goto __1075 /* FOUR-PER-EM SPACE */ 42263 case Tuint32_t(0x2006): 42264 goto __1076 /* SIX-PER-EM SPACE */ 42265 case Tuint32_t(0x2007): 42266 goto __1077 /* FIGURE SPACE */ 42267 case Tuint32_t(0x2008): 42268 goto __1078 /* PUNCTUATION SPACE */ 42269 case Tuint32_t(0x2009): 42270 goto __1079 /* THIN SPACE */ 42271 case Tuint32_t(0x200A): 42272 goto __1080 /* HAIR SPACE */ 42273 case Tuint32_t(0x202f): 42274 goto __1081 /* NARROW NO-BREAK SPACE */ 42275 case Tuint32_t(0x205f): 42276 goto __1082 /* MEDIUM MATHEMATICAL SPACE */ 42277 case Tuint32_t(0x3000): 42278 goto __1083 42279 case Tuint32_t('\012'): 42280 goto __1084 42281 case Tuint32_t('\013'): 42282 goto __1085 42283 case Tuint32_t('\014'): 42284 goto __1086 42285 case Tuint32_t('\015'): 42286 goto __1087 42287 case Tuint32_t(uint8('\x85')): 42288 goto __1088 42289 case Tuint32_t(0x2028): 42290 goto __1089 /* LINE SEPARATOR */ 42291 case Tuint32_t(0x2029): 42292 goto __1090 42293 42294 default: 42295 goto __1091 42296 } 42297 goto __1064 42298 42299 __1065: 42300 __1066: 42301 __1067: 42302 __1068: /* OGHAM SPACE MARK */ 42303 __1069: /* MONGOLIAN VOWEL SEPARATOR */ 42304 __1070: /* EN QUAD */ 42305 __1071: /* EM QUAD */ 42306 __1072: /* EN SPACE */ 42307 __1073: /* EM SPACE */ 42308 __1074: /* THREE-PER-EM SPACE */ 42309 __1075: /* FOUR-PER-EM SPACE */ 42310 __1076: /* SIX-PER-EM SPACE */ 42311 __1077: /* FIGURE SPACE */ 42312 __1078: /* PUNCTUATION SPACE */ 42313 __1079: /* THIN SPACE */ 42314 __1080: /* HAIR SPACE */ 42315 __1081: /* NARROW NO-BREAK SPACE */ 42316 __1082: /* MEDIUM MATHEMATICAL SPACE */ 42317 __1083: 42318 __1084: 42319 __1085: 42320 __1086: 42321 __1087: 42322 __1088: 42323 __1089: /* LINE SEPARATOR */ 42324 __1090: 42325 if !(notmatch != 0) { 42326 goto __1092 42327 } 42328 rrc = DMATCH_NOMATCH 42329 goto RETURN_SWITCH 42330 __1092: 42331 ; 42332 42333 goto __1064 42334 42335 __1091: 42336 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) == notmatch) { 42337 goto __1093 42338 } 42339 rrc = DMATCH_NOMATCH 42340 goto RETURN_SWITCH 42341 __1093: 42342 ; 42343 42344 goto __1064 42345 __1064: 42346 ; 42347 goto __1041 42348 42349 __1051: 42350 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) { 42351 goto __1094 42352 } 42353 rrc = DMATCH_NOMATCH 42354 goto RETURN_SWITCH 42355 __1094: 42356 ; 42357 42358 goto __1041 42359 42360 __1052: 42361 cp = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))*4 42362 __1095: 42363 42364 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp))) { 42365 goto __1098 42366 } 42367 if !(notmatch != 0) { 42368 goto __1099 42369 } 42370 goto __1097 42371 goto __1100 42372 __1099: 42373 rrc = DMATCH_NOMATCH 42374 goto RETURN_SWITCH 42375 __1100: 42376 ; 42377 __1098: 42378 ; 42379 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp, 4)))) { 42380 goto __1101 42381 } 42382 if !(notmatch != 0) { 42383 goto __1102 42384 } 42385 rrc = DMATCH_NOMATCH 42386 goto RETURN_SWITCH 42387 goto __1103 42388 __1102: 42389 goto __1097 42390 __1103: 42391 ; 42392 __1101: 42393 ; 42394 goto __1096 42395 __1096: 42396 goto __1095 42397 goto __1097 42398 __1097: 42399 ; 42400 goto __1041 42401 42402 __1053: 42403 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) { 42404 goto __1104 42405 } 42406 rrc = DMATCH_NOMATCH 42407 goto RETURN_SWITCH 42408 __1104: 42409 ; 42410 42411 goto __1041 42412 42413 __1054: 42414 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) { 42415 goto __1105 42416 } 42417 rrc = DMATCH_NOMATCH 42418 goto RETURN_SWITCH 42419 __1105: 42420 ; 42421 42422 goto __1041 42423 42424 __1055: 42425 42426 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)) 42427 if !(ok1 == notmatch) { 42428 goto __1106 42429 } 42430 rrc = DMATCH_NOMATCH 42431 goto RETURN_SWITCH 42432 __1106: 42433 ; 42434 42435 goto __1041 42436 42437 // This should never occur 42438 42439 __1056: 42440 return -44 42441 __1041: 42442 ; 42443 42444 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(3) 42445 42446 goto __13 42447 42448 // ===================================================================== 42449 // Match an extended Unicode sequence. We will get here only if the support 42450 // is in the binary; otherwise a compile-time error occurs. 42451 42452 __93: 42453 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42454 goto __1107 42455 } 42456 42457 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)) { 42458 goto __1109 42459 } 42460 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42461 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42462 goto __1110 42463 } 42464 return -2 42465 __1110: 42466 ; 42467 __1109: 42468 ; 42469 42470 rrc = DMATCH_NOMATCH 42471 goto RETURN_SWITCH 42472 42473 goto __1108 42474 __1107: 42475 42476 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42477 if !(utf != 0 && fc >= 0xc0) { 42478 goto __1111 42479 } 42480 if !(fc&0x20 == Tuint32_t(0)) { 42481 goto __1112 42482 } 42483 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42484 goto __1113 42485 __1112: 42486 if !(fc&0x10 == Tuint32_t(0)) { 42487 goto __1114 42488 } 42489 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 42490 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 42491 goto __1115 42492 __1114: 42493 if !(fc&0x08 == Tuint32_t(0)) { 42494 goto __1116 42495 } 42496 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 42497 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 42498 goto __1117 42499 __1116: 42500 if !(fc&0x04 == Tuint32_t(0)) { 42501 goto __1118 42502 } 42503 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 42504 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 42505 goto __1119 42506 __1118: 42507 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 42508 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 42509 __1119: 42510 ; 42511 __1117: 42512 ; 42513 __1115: 42514 ; 42515 __1113: 42516 ; 42517 __1111: 42518 ; 42519 42520 (*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, 42521 uintptr(0)) 42522 __1108: 42523 ; 42524 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42525 goto __1120 42526 } 42527 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)) { 42528 goto __1121 42529 } 42530 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42531 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42532 goto __1122 42533 } 42534 return -2 42535 __1122: 42536 ; 42537 __1121: 42538 ; 42539 __1120: 42540 ; 42541 42542 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42543 goto __13 42544 42545 // ===================================================================== 42546 // Match a single character type repeatedly. Note that the property type 42547 // does not need to be in a stack frame as it is not used within an RMATCH() 42548 // loop. 42549 42550 __94: 42551 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = libc.AssignPtrUint32(F+56+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))))) 42552 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 42553 goto REPEATTYPE 42554 42555 __95: 42556 __96: 42557 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 42558 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 42559 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_TYPEMINUPTO { 42560 reptype = REPTYPE_MIN 42561 } else { 42562 reptype = REPTYPE_MAX 42563 } 42564 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 42565 goto REPEATTYPE 42566 42567 __97: 42568 reptype = REPTYPE_POS 42569 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 42570 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 42571 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42572 goto REPEATTYPE 42573 42574 __98: 42575 reptype = REPTYPE_POS 42576 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(1) 42577 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 42578 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42579 goto REPEATTYPE 42580 42581 __99: 42582 reptype = REPTYPE_POS 42583 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 42584 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = Tuint32_t(1) 42585 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42586 goto REPEATTYPE 42587 42588 __100: 42589 reptype = REPTYPE_POS 42590 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 42591 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 42592 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 42593 goto REPEATTYPE 42594 42595 __101: 42596 __102: 42597 __103: 42598 __104: 42599 __105: 42600 __106: 42601 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_TYPESTAR) 42602 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 42603 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 42604 reptype = rep_typ[fc] 42605 42606 // Common code for all repeated character type matches. 42607 42608 REPEATTYPE: 42609 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) // Code for the character type 42610 42611 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_PROP || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) { 42612 goto __1123 42613 } 42614 42615 proptype = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 42616 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 42617 goto __1124 42618 __1123: 42619 proptype = -1 42620 __1124: 42621 ; 42622 42623 // First, ensure the minimum number of matches are present. Use inline 42624 // code for maximizing the speed, and do the type test once at the start 42625 // (i.e. keep it out of the loops). As there are no calls to RMATCH in the 42626 // loops, we can use an ordinary variable for "notmatch". The code for UTF 42627 // mode is separated out for tidiness, except for Unicode property tests. 42628 42629 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) > Tuint32_t(0)) { 42630 goto __1125 42631 } 42632 42633 if !(proptype >= 0) { 42634 goto __1126 42635 } /* Property tests in all modes */ 42636 42637 notmatch1 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) 42638 switch proptype { 42639 case DPT_ANY: 42640 goto __1129 42641 42642 case DPT_LAMP: 42643 goto __1130 42644 42645 case DPT_GC: 42646 goto __1131 42647 42648 case DPT_PC: 42649 goto __1132 42650 42651 case DPT_SC: 42652 goto __1133 42653 42654 case DPT_SCX: 42655 goto __1134 42656 42657 case DPT_ALNUM: 42658 goto __1135 42659 42660 // Perl space used to exclude VT, but from Perl 5.18 it is included, 42661 // which means that Perl space and POSIX space are now identical. PCRE 42662 // was changed at release 8.34. 42663 42664 case DPT_SPACE: 42665 goto __1136 // Perl space 42666 case DPT_PXSPACE: 42667 goto __1137 42668 42669 case DPT_WORD: 42670 goto __1138 42671 42672 case DPT_CLIST: 42673 goto __1139 42674 42675 case DPT_UCNC: 42676 goto __1140 42677 42678 case DPT_BIDICL: 42679 goto __1141 42680 42681 case DPT_BOOL: 42682 goto __1142 42683 42684 // This should not occur 42685 42686 default: 42687 goto __1143 42688 } 42689 goto __1128 42690 42691 __1129: 42692 if !(notmatch1 != 0) { 42693 goto __1144 42694 } 42695 rrc = DMATCH_NOMATCH 42696 goto RETURN_SWITCH 42697 __1144: 42698 ; 42699 42700 i = Tuint32_t(1) 42701 __1145: 42702 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 42703 goto __1147 42704 } 42705 42706 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42707 goto __1148 42708 } 42709 42710 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)) { 42711 goto __1149 42712 } 42713 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42714 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42715 goto __1150 42716 } 42717 return -2 42718 __1150: 42719 ; 42720 __1149: 42721 ; 42722 42723 rrc = DMATCH_NOMATCH 42724 goto RETURN_SWITCH 42725 42726 __1148: 42727 ; 42728 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42729 if !(utf != 0 && fc >= 0xc0) { 42730 goto __1151 42731 } 42732 if !(fc&0x20 == Tuint32_t(0)) { 42733 goto __1152 42734 } 42735 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42736 goto __1153 42737 __1152: 42738 if !(fc&0x10 == Tuint32_t(0)) { 42739 goto __1154 42740 } 42741 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 42742 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 42743 goto __1155 42744 __1154: 42745 if !(fc&0x08 == Tuint32_t(0)) { 42746 goto __1156 42747 } 42748 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 42749 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 42750 goto __1157 42751 __1156: 42752 if !(fc&0x04 == Tuint32_t(0)) { 42753 goto __1158 42754 } 42755 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 42756 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 42757 goto __1159 42758 __1158: 42759 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 42760 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 42761 __1159: 42762 ; 42763 __1157: 42764 ; 42765 __1155: 42766 ; 42767 __1153: 42768 ; 42769 __1151: 42770 ; 42771 42772 goto __1146 42773 __1146: 42774 i++ 42775 goto __1145 42776 goto __1147 42777 __1147: 42778 ; 42779 goto __1128 42780 42781 __1130: 42782 i = Tuint32_t(1) 42783 __1160: 42784 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 42785 goto __1162 42786 } 42787 42788 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42789 goto __1163 42790 } 42791 42792 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)) { 42793 goto __1164 42794 } 42795 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42796 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42797 goto __1165 42798 } 42799 return -2 42800 __1165: 42801 ; 42802 __1164: 42803 ; 42804 42805 rrc = DMATCH_NOMATCH 42806 goto RETURN_SWITCH 42807 42808 __1163: 42809 ; 42810 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42811 if !(utf != 0 && fc >= 0xc0) { 42812 goto __1166 42813 } 42814 if !(fc&0x20 == Tuint32_t(0)) { 42815 goto __1167 42816 } 42817 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42818 goto __1168 42819 __1167: 42820 if !(fc&0x10 == Tuint32_t(0)) { 42821 goto __1169 42822 } 42823 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 42824 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 42825 goto __1170 42826 __1169: 42827 if !(fc&0x08 == Tuint32_t(0)) { 42828 goto __1171 42829 } 42830 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 42831 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 42832 goto __1172 42833 __1171: 42834 if !(fc&0x04 == Tuint32_t(0)) { 42835 goto __1173 42836 } 42837 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 42838 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 42839 goto __1174 42840 __1173: 42841 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 42842 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 42843 __1174: 42844 ; 42845 __1172: 42846 ; 42847 __1170: 42848 ; 42849 __1168: 42850 ; 42851 __1166: 42852 ; 42853 42854 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) 42855 if !(libc.Bool32(chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) == notmatch1) { 42856 goto __1175 42857 } 42858 rrc = DMATCH_NOMATCH 42859 goto RETURN_SWITCH 42860 __1175: 42861 ; 42862 42863 goto __1161 42864 __1161: 42865 i++ 42866 goto __1160 42867 goto __1162 42868 __1162: 42869 ; 42870 goto __1128 42871 42872 __1131: 42873 i = Tuint32_t(1) 42874 __1176: 42875 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 42876 goto __1178 42877 } 42878 42879 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42880 goto __1179 42881 } 42882 42883 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)) { 42884 goto __1180 42885 } 42886 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42887 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42888 goto __1181 42889 } 42890 return -2 42891 __1181: 42892 ; 42893 __1180: 42894 ; 42895 42896 rrc = DMATCH_NOMATCH 42897 goto RETURN_SWITCH 42898 42899 __1179: 42900 ; 42901 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42902 if !(utf != 0 && fc >= 0xc0) { 42903 goto __1182 42904 } 42905 if !(fc&0x20 == Tuint32_t(0)) { 42906 goto __1183 42907 } 42908 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42909 goto __1184 42910 __1183: 42911 if !(fc&0x10 == Tuint32_t(0)) { 42912 goto __1185 42913 } 42914 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 42915 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 42916 goto __1186 42917 __1185: 42918 if !(fc&0x08 == Tuint32_t(0)) { 42919 goto __1187 42920 } 42921 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 42922 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 42923 goto __1188 42924 __1187: 42925 if !(fc&0x04 == Tuint32_t(0)) { 42926 goto __1189 42927 } 42928 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 42929 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 42930 goto __1190 42931 __1189: 42932 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 42933 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 42934 __1190: 42935 ; 42936 __1188: 42937 ; 42938 __1186: 42939 ; 42940 __1184: 42941 ; 42942 __1182: 42943 ; 42944 42945 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 + 56 + 3*4))) == notmatch1) { 42946 goto __1191 42947 } 42948 rrc = DMATCH_NOMATCH 42949 goto RETURN_SWITCH 42950 __1191: 42951 ; 42952 42953 goto __1177 42954 __1177: 42955 i++ 42956 goto __1176 42957 goto __1178 42958 __1178: 42959 ; 42960 goto __1128 42961 42962 __1132: 42963 i = Tuint32_t(1) 42964 __1192: 42965 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 42966 goto __1194 42967 } 42968 42969 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42970 goto __1195 42971 } 42972 42973 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)) { 42974 goto __1196 42975 } 42976 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42977 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42978 goto __1197 42979 } 42980 return -2 42981 __1197: 42982 ; 42983 __1196: 42984 ; 42985 42986 rrc = DMATCH_NOMATCH 42987 goto RETURN_SWITCH 42988 42989 __1195: 42990 ; 42991 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42992 if !(utf != 0 && fc >= 0xc0) { 42993 goto __1198 42994 } 42995 if !(fc&0x20 == Tuint32_t(0)) { 42996 goto __1199 42997 } 42998 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42999 goto __1200 43000 __1199: 43001 if !(fc&0x10 == Tuint32_t(0)) { 43002 goto __1201 43003 } 43004 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 43005 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43006 goto __1202 43007 __1201: 43008 if !(fc&0x08 == Tuint32_t(0)) { 43009 goto __1203 43010 } 43011 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 43012 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43013 goto __1204 43014 __1203: 43015 if !(fc&0x04 == Tuint32_t(0)) { 43016 goto __1205 43017 } 43018 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 43019 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43020 goto __1206 43021 __1205: 43022 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 43023 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43024 __1206: 43025 ; 43026 __1204: 43027 ; 43028 __1202: 43029 ; 43030 __1200: 43031 ; 43032 __1198: 43033 ; 43034 43035 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 + 56 + 3*4))) == notmatch1) { 43036 goto __1207 43037 } 43038 rrc = DMATCH_NOMATCH 43039 goto RETURN_SWITCH 43040 __1207: 43041 ; 43042 43043 goto __1193 43044 __1193: 43045 i++ 43046 goto __1192 43047 goto __1194 43048 __1194: 43049 ; 43050 goto __1128 43051 43052 __1133: 43053 i = Tuint32_t(1) 43054 __1208: 43055 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43056 goto __1210 43057 } 43058 43059 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43060 goto __1211 43061 } 43062 43063 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)) { 43064 goto __1212 43065 } 43066 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43067 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43068 goto __1213 43069 } 43070 return -2 43071 __1213: 43072 ; 43073 __1212: 43074 ; 43075 43076 rrc = DMATCH_NOMATCH 43077 goto RETURN_SWITCH 43078 43079 __1211: 43080 ; 43081 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43082 if !(utf != 0 && fc >= 0xc0) { 43083 goto __1214 43084 } 43085 if !(fc&0x20 == Tuint32_t(0)) { 43086 goto __1215 43087 } 43088 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43089 goto __1216 43090 __1215: 43091 if !(fc&0x10 == Tuint32_t(0)) { 43092 goto __1217 43093 } 43094 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 43095 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43096 goto __1218 43097 __1217: 43098 if !(fc&0x08 == Tuint32_t(0)) { 43099 goto __1219 43100 } 43101 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 43102 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43103 goto __1220 43104 __1219: 43105 if !(fc&0x04 == Tuint32_t(0)) { 43106 goto __1221 43107 } 43108 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 43109 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43110 goto __1222 43111 __1221: 43112 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 43113 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43114 __1222: 43115 ; 43116 __1220: 43117 ; 43118 __1218: 43119 ; 43120 __1216: 43121 ; 43122 __1214: 43123 ; 43124 43125 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 + 56 + 3*4))) == notmatch1) { 43126 goto __1223 43127 } 43128 rrc = DMATCH_NOMATCH 43129 goto RETURN_SWITCH 43130 __1223: 43131 ; 43132 43133 goto __1209 43134 __1209: 43135 i++ 43136 goto __1208 43137 goto __1210 43138 __1210: 43139 ; 43140 goto __1128 43141 43142 __1134: 43143 i = Tuint32_t(1) 43144 __1224: 43145 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43146 goto __1226 43147 } 43148 43149 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43150 goto __1227 43151 } 43152 43153 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)) { 43154 goto __1228 43155 } 43156 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43157 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43158 goto __1229 43159 } 43160 return -2 43161 __1229: 43162 ; 43163 __1228: 43164 ; 43165 43166 rrc = DMATCH_NOMATCH 43167 goto RETURN_SWITCH 43168 43169 __1227: 43170 ; 43171 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43172 if !(utf != 0 && fc >= 0xc0) { 43173 goto __1230 43174 } 43175 if !(fc&0x20 == Tuint32_t(0)) { 43176 goto __1231 43177 } 43178 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43179 goto __1232 43180 __1231: 43181 if !(fc&0x10 == Tuint32_t(0)) { 43182 goto __1233 43183 } 43184 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 43185 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43186 goto __1234 43187 __1233: 43188 if !(fc&0x08 == Tuint32_t(0)) { 43189 goto __1235 43190 } 43191 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 43192 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43193 goto __1236 43194 __1235: 43195 if !(fc&0x04 == Tuint32_t(0)) { 43196 goto __1237 43197 } 43198 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 43199 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43200 goto __1238 43201 __1237: 43202 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 43203 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43204 __1238: 43205 ; 43206 __1236: 43207 ; 43208 __1234: 43209 ; 43210 __1232: 43211 ; 43212 __1230: 43213 ; 43214 43215 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 43216 ok2 = libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(prop1)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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 + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 43217 if !(ok2 == notmatch1) { 43218 goto __1239 43219 } 43220 rrc = DMATCH_NOMATCH 43221 goto RETURN_SWITCH 43222 __1239: 43223 ; 43224 43225 goto __1225 43226 __1225: 43227 i++ 43228 goto __1224 43229 goto __1226 43230 __1226: 43231 ; 43232 goto __1128 43233 43234 __1135: 43235 i = Tuint32_t(1) 43236 __1240: 43237 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43238 goto __1242 43239 } 43240 43241 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43242 goto __1243 43243 } 43244 43245 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)) { 43246 goto __1244 43247 } 43248 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43249 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43250 goto __1245 43251 } 43252 return -2 43253 __1245: 43254 ; 43255 __1244: 43256 ; 43257 43258 rrc = DMATCH_NOMATCH 43259 goto RETURN_SWITCH 43260 43261 __1243: 43262 ; 43263 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43264 if !(utf != 0 && fc >= 0xc0) { 43265 goto __1246 43266 } 43267 if !(fc&0x20 == Tuint32_t(0)) { 43268 goto __1247 43269 } 43270 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43271 goto __1248 43272 __1247: 43273 if !(fc&0x10 == Tuint32_t(0)) { 43274 goto __1249 43275 } 43276 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 43277 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43278 goto __1250 43279 __1249: 43280 if !(fc&0x08 == Tuint32_t(0)) { 43281 goto __1251 43282 } 43283 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 43284 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43285 goto __1252 43286 __1251: 43287 if !(fc&0x04 == Tuint32_t(0)) { 43288 goto __1253 43289 } 43290 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 43291 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43292 goto __1254 43293 __1253: 43294 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 43295 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43296 __1254: 43297 ; 43298 __1252: 43299 ; 43300 __1250: 43301 ; 43302 __1248: 43303 ; 43304 __1246: 43305 ; 43306 43307 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]) 43308 if !(libc.Bool32(category == ucp_L || category == ucp_N) == notmatch1) { 43309 goto __1255 43310 } 43311 rrc = DMATCH_NOMATCH 43312 goto RETURN_SWITCH 43313 __1255: 43314 ; 43315 43316 goto __1241 43317 __1241: 43318 i++ 43319 goto __1240 43320 goto __1242 43321 __1242: 43322 ; 43323 goto __1128 43324 43325 // Perl space used to exclude VT, but from Perl 5.18 it is included, 43326 // which means that Perl space and POSIX space are now identical. PCRE 43327 // was changed at release 8.34. 43328 43329 __1136: // Perl space 43330 __1137: // POSIX space 43331 i = Tuint32_t(1) 43332 __1256: 43333 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43334 goto __1258 43335 } 43336 43337 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43338 goto __1259 43339 } 43340 43341 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)) { 43342 goto __1260 43343 } 43344 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43345 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43346 goto __1261 43347 } 43348 return -2 43349 __1261: 43350 ; 43351 __1260: 43352 ; 43353 43354 rrc = DMATCH_NOMATCH 43355 goto RETURN_SWITCH 43356 43357 __1259: 43358 ; 43359 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43360 if !(utf != 0 && fc >= 0xc0) { 43361 goto __1262 43362 } 43363 if !(fc&0x20 == Tuint32_t(0)) { 43364 goto __1263 43365 } 43366 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43367 goto __1264 43368 __1263: 43369 if !(fc&0x10 == Tuint32_t(0)) { 43370 goto __1265 43371 } 43372 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 43373 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43374 goto __1266 43375 __1265: 43376 if !(fc&0x08 == Tuint32_t(0)) { 43377 goto __1267 43378 } 43379 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 43380 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43381 goto __1268 43382 __1267: 43383 if !(fc&0x04 == Tuint32_t(0)) { 43384 goto __1269 43385 } 43386 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 43387 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43388 goto __1270 43389 __1269: 43390 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 43391 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43392 __1270: 43393 ; 43394 __1268: 43395 ; 43396 __1266: 43397 ; 43398 __1264: 43399 ; 43400 __1262: 43401 ; 43402 43403 switch fc { 43404 case Tuint32_t('\011'): 43405 goto __1272 43406 case Tuint32_t('\040'): 43407 goto __1273 43408 case Tuint32_t(uint8('\xa0')): 43409 goto __1274 43410 case Tuint32_t(0x1680): 43411 goto __1275 /* OGHAM SPACE MARK */ 43412 case Tuint32_t(0x180e): 43413 goto __1276 /* MONGOLIAN VOWEL SEPARATOR */ 43414 case Tuint32_t(0x2000): 43415 goto __1277 /* EN QUAD */ 43416 case Tuint32_t(0x2001): 43417 goto __1278 /* EM QUAD */ 43418 case Tuint32_t(0x2002): 43419 goto __1279 /* EN SPACE */ 43420 case Tuint32_t(0x2003): 43421 goto __1280 /* EM SPACE */ 43422 case Tuint32_t(0x2004): 43423 goto __1281 /* THREE-PER-EM SPACE */ 43424 case Tuint32_t(0x2005): 43425 goto __1282 /* FOUR-PER-EM SPACE */ 43426 case Tuint32_t(0x2006): 43427 goto __1283 /* SIX-PER-EM SPACE */ 43428 case Tuint32_t(0x2007): 43429 goto __1284 /* FIGURE SPACE */ 43430 case Tuint32_t(0x2008): 43431 goto __1285 /* PUNCTUATION SPACE */ 43432 case Tuint32_t(0x2009): 43433 goto __1286 /* THIN SPACE */ 43434 case Tuint32_t(0x200A): 43435 goto __1287 /* HAIR SPACE */ 43436 case Tuint32_t(0x202f): 43437 goto __1288 /* NARROW NO-BREAK SPACE */ 43438 case Tuint32_t(0x205f): 43439 goto __1289 /* MEDIUM MATHEMATICAL SPACE */ 43440 case Tuint32_t(0x3000): 43441 goto __1290 43442 case Tuint32_t('\012'): 43443 goto __1291 43444 case Tuint32_t('\013'): 43445 goto __1292 43446 case Tuint32_t('\014'): 43447 goto __1293 43448 case Tuint32_t('\015'): 43449 goto __1294 43450 case Tuint32_t(uint8('\x85')): 43451 goto __1295 43452 case Tuint32_t(0x2028): 43453 goto __1296 /* LINE SEPARATOR */ 43454 case Tuint32_t(0x2029): 43455 goto __1297 43456 43457 default: 43458 goto __1298 43459 } 43460 goto __1271 43461 43462 __1272: 43463 __1273: 43464 __1274: 43465 __1275: /* OGHAM SPACE MARK */ 43466 __1276: /* MONGOLIAN VOWEL SEPARATOR */ 43467 __1277: /* EN QUAD */ 43468 __1278: /* EM QUAD */ 43469 __1279: /* EN SPACE */ 43470 __1280: /* EM SPACE */ 43471 __1281: /* THREE-PER-EM SPACE */ 43472 __1282: /* FOUR-PER-EM SPACE */ 43473 __1283: /* SIX-PER-EM SPACE */ 43474 __1284: /* FIGURE SPACE */ 43475 __1285: /* PUNCTUATION SPACE */ 43476 __1286: /* THIN SPACE */ 43477 __1287: /* HAIR SPACE */ 43478 __1288: /* NARROW NO-BREAK SPACE */ 43479 __1289: /* MEDIUM MATHEMATICAL SPACE */ 43480 __1290: 43481 __1291: 43482 __1292: 43483 __1293: 43484 __1294: 43485 __1295: 43486 __1296: /* LINE SEPARATOR */ 43487 __1297: 43488 if !(notmatch1 != 0) { 43489 goto __1299 43490 } 43491 rrc = DMATCH_NOMATCH 43492 goto RETURN_SWITCH 43493 __1299: 43494 ; 43495 43496 goto __1271 43497 43498 __1298: 43499 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) { 43500 goto __1300 43501 } 43502 rrc = DMATCH_NOMATCH 43503 goto RETURN_SWITCH 43504 __1300: 43505 ; 43506 43507 goto __1271 43508 __1271: 43509 ; 43510 goto __1257 43511 __1257: 43512 i++ 43513 goto __1256 43514 goto __1258 43515 __1258: 43516 ; 43517 goto __1128 43518 43519 __1138: 43520 i = Tuint32_t(1) 43521 __1301: 43522 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43523 goto __1303 43524 } 43525 43526 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43527 goto __1304 43528 } 43529 43530 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)) { 43531 goto __1305 43532 } 43533 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43534 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43535 goto __1306 43536 } 43537 return -2 43538 __1306: 43539 ; 43540 __1305: 43541 ; 43542 43543 rrc = DMATCH_NOMATCH 43544 goto RETURN_SWITCH 43545 43546 __1304: 43547 ; 43548 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43549 if !(utf != 0 && fc >= 0xc0) { 43550 goto __1307 43551 } 43552 if !(fc&0x20 == Tuint32_t(0)) { 43553 goto __1308 43554 } 43555 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43556 goto __1309 43557 __1308: 43558 if !(fc&0x10 == Tuint32_t(0)) { 43559 goto __1310 43560 } 43561 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 43562 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43563 goto __1311 43564 __1310: 43565 if !(fc&0x08 == Tuint32_t(0)) { 43566 goto __1312 43567 } 43568 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 43569 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43570 goto __1313 43571 __1312: 43572 if !(fc&0x04 == Tuint32_t(0)) { 43573 goto __1314 43574 } 43575 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 43576 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43577 goto __1315 43578 __1314: 43579 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 43580 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43581 __1315: 43582 ; 43583 __1313: 43584 ; 43585 __1311: 43586 ; 43587 __1309: 43588 ; 43589 __1307: 43590 ; 43591 43592 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]) 43593 if !(libc.Bool32(category1 == ucp_L || category1 == ucp_N || fc == Tuint32_t('\137')) == notmatch1) { 43594 goto __1316 43595 } 43596 rrc = DMATCH_NOMATCH 43597 goto RETURN_SWITCH 43598 __1316: 43599 ; 43600 43601 goto __1302 43602 __1302: 43603 i++ 43604 goto __1301 43605 goto __1303 43606 __1303: 43607 ; 43608 goto __1128 43609 43610 __1139: 43611 i = Tuint32_t(1) 43612 __1317: 43613 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43614 goto __1319 43615 } 43616 43617 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43618 goto __1320 43619 } 43620 43621 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)) { 43622 goto __1321 43623 } 43624 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43625 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43626 goto __1322 43627 } 43628 return -2 43629 __1322: 43630 ; 43631 __1321: 43632 ; 43633 43634 rrc = DMATCH_NOMATCH 43635 goto RETURN_SWITCH 43636 43637 __1320: 43638 ; 43639 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43640 if !(utf != 0 && fc >= 0xc0) { 43641 goto __1323 43642 } 43643 if !(fc&0x20 == Tuint32_t(0)) { 43644 goto __1324 43645 } 43646 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43647 goto __1325 43648 __1324: 43649 if !(fc&0x10 == Tuint32_t(0)) { 43650 goto __1326 43651 } 43652 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 43653 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43654 goto __1327 43655 __1326: 43656 if !(fc&0x08 == Tuint32_t(0)) { 43657 goto __1328 43658 } 43659 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 43660 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43661 goto __1329 43662 __1328: 43663 if !(fc&0x04 == Tuint32_t(0)) { 43664 goto __1330 43665 } 43666 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 43667 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43668 goto __1331 43669 __1330: 43670 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 43671 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43672 __1331: 43673 ; 43674 __1329: 43675 ; 43676 __1327: 43677 ; 43678 __1325: 43679 ; 43680 __1323: 43681 ; 43682 43683 cp1 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)))*4 43684 __1332: 43685 43686 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp1))) { 43687 goto __1335 43688 } 43689 43690 if !(notmatch1 != 0) { 43691 goto __1336 43692 } 43693 goto __1334 43694 __1336: 43695 ; 43696 rrc = DMATCH_NOMATCH 43697 goto RETURN_SWITCH 43698 43699 __1335: 43700 ; 43701 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp1, 4)))) { 43702 goto __1337 43703 } 43704 43705 if !(notmatch1 != 0) { 43706 goto __1338 43707 } 43708 rrc = DMATCH_NOMATCH 43709 goto RETURN_SWITCH 43710 __1338: 43711 ; 43712 43713 goto __1334 43714 __1337: 43715 ; 43716 goto __1333 43717 __1333: 43718 goto __1332 43719 goto __1334 43720 __1334: 43721 ; 43722 goto __1318 43723 __1318: 43724 i++ 43725 goto __1317 43726 goto __1319 43727 __1319: 43728 ; 43729 goto __1128 43730 43731 __1140: 43732 i = Tuint32_t(1) 43733 __1339: 43734 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43735 goto __1341 43736 } 43737 43738 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43739 goto __1342 43740 } 43741 43742 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)) { 43743 goto __1343 43744 } 43745 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43746 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43747 goto __1344 43748 } 43749 return -2 43750 __1344: 43751 ; 43752 __1343: 43753 ; 43754 43755 rrc = DMATCH_NOMATCH 43756 goto RETURN_SWITCH 43757 43758 __1342: 43759 ; 43760 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43761 if !(utf != 0 && fc >= 0xc0) { 43762 goto __1345 43763 } 43764 if !(fc&0x20 == Tuint32_t(0)) { 43765 goto __1346 43766 } 43767 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43768 goto __1347 43769 __1346: 43770 if !(fc&0x10 == Tuint32_t(0)) { 43771 goto __1348 43772 } 43773 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 43774 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43775 goto __1349 43776 __1348: 43777 if !(fc&0x08 == Tuint32_t(0)) { 43778 goto __1350 43779 } 43780 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 43781 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43782 goto __1351 43783 __1350: 43784 if !(fc&0x04 == Tuint32_t(0)) { 43785 goto __1352 43786 } 43787 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 43788 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43789 goto __1353 43790 __1352: 43791 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 43792 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43793 __1353: 43794 ; 43795 __1351: 43796 ; 43797 __1349: 43798 ; 43799 __1347: 43800 ; 43801 __1345: 43802 ; 43803 43804 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) { 43805 goto __1354 43806 } 43807 rrc = DMATCH_NOMATCH 43808 goto RETURN_SWITCH 43809 __1354: 43810 ; 43811 43812 goto __1340 43813 __1340: 43814 i++ 43815 goto __1339 43816 goto __1341 43817 __1341: 43818 ; 43819 goto __1128 43820 43821 __1141: 43822 i = Tuint32_t(1) 43823 __1355: 43824 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43825 goto __1357 43826 } 43827 43828 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43829 goto __1358 43830 } 43831 43832 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)) { 43833 goto __1359 43834 } 43835 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43836 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43837 goto __1360 43838 } 43839 return -2 43840 __1360: 43841 ; 43842 __1359: 43843 ; 43844 43845 rrc = DMATCH_NOMATCH 43846 goto RETURN_SWITCH 43847 43848 __1358: 43849 ; 43850 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43851 if !(utf != 0 && fc >= 0xc0) { 43852 goto __1361 43853 } 43854 if !(fc&0x20 == Tuint32_t(0)) { 43855 goto __1362 43856 } 43857 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43858 goto __1363 43859 __1362: 43860 if !(fc&0x10 == Tuint32_t(0)) { 43861 goto __1364 43862 } 43863 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 43864 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43865 goto __1365 43866 __1364: 43867 if !(fc&0x08 == Tuint32_t(0)) { 43868 goto __1366 43869 } 43870 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 43871 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43872 goto __1367 43873 __1366: 43874 if !(fc&0x04 == Tuint32_t(0)) { 43875 goto __1368 43876 } 43877 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 43878 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43879 goto __1369 43880 __1368: 43881 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 43882 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43883 __1369: 43884 ; 43885 __1367: 43886 ; 43887 __1365: 43888 ; 43889 __1363: 43890 ; 43891 __1361: 43892 ; 43893 43894 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 + 56 + 3*4))) == notmatch1) { 43895 goto __1370 43896 } 43897 rrc = DMATCH_NOMATCH 43898 goto RETURN_SWITCH 43899 __1370: 43900 ; 43901 43902 goto __1356 43903 __1356: 43904 i++ 43905 goto __1355 43906 goto __1357 43907 __1357: 43908 ; 43909 goto __1128 43910 43911 __1142: 43912 i = Tuint32_t(1) 43913 __1371: 43914 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43915 goto __1373 43916 } 43917 43918 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43919 goto __1374 43920 } 43921 43922 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)) { 43923 goto __1375 43924 } 43925 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43926 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43927 goto __1376 43928 } 43929 return -2 43930 __1376: 43931 ; 43932 __1375: 43933 ; 43934 43935 rrc = DMATCH_NOMATCH 43936 goto RETURN_SWITCH 43937 43938 __1374: 43939 ; 43940 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43941 if !(utf != 0 && fc >= 0xc0) { 43942 goto __1377 43943 } 43944 if !(fc&0x20 == Tuint32_t(0)) { 43945 goto __1378 43946 } 43947 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43948 goto __1379 43949 __1378: 43950 if !(fc&0x10 == Tuint32_t(0)) { 43951 goto __1380 43952 } 43953 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 43954 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43955 goto __1381 43956 __1380: 43957 if !(fc&0x08 == Tuint32_t(0)) { 43958 goto __1382 43959 } 43960 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 43961 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43962 goto __1383 43963 __1382: 43964 if !(fc&0x04 == Tuint32_t(0)) { 43965 goto __1384 43966 } 43967 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 43968 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43969 goto __1385 43970 __1384: 43971 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 43972 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43973 __1385: 43974 ; 43975 __1383: 43976 ; 43977 __1381: 43978 ; 43979 __1379: 43980 ; 43981 __1377: 43982 ; 43983 43984 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 43985 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 + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 43986 if !(ok3 == notmatch1) { 43987 goto __1386 43988 } 43989 rrc = DMATCH_NOMATCH 43990 goto RETURN_SWITCH 43991 __1386: 43992 ; 43993 43994 goto __1372 43995 __1372: 43996 i++ 43997 goto __1371 43998 goto __1373 43999 __1373: 44000 ; 44001 goto __1128 44002 44003 // This should not occur 44004 44005 __1143: 44006 return -44 44007 __1128: 44008 ; 44009 goto __1127 44010 __1126: 44011 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_EXTUNI) { 44012 goto __1387 44013 } 44014 44015 i = Tuint32_t(1) 44016 __1389: 44017 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44018 goto __1391 44019 } 44020 44021 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44022 goto __1392 44023 } 44024 44025 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)) { 44026 goto __1394 44027 } 44028 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44029 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44030 goto __1395 44031 } 44032 return -2 44033 __1395: 44034 ; 44035 __1394: 44036 ; 44037 44038 rrc = DMATCH_NOMATCH 44039 goto RETURN_SWITCH 44040 44041 goto __1393 44042 __1392: 44043 44044 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44045 if !(utf != 0 && fc >= 0xc0) { 44046 goto __1396 44047 } 44048 if !(fc&0x20 == Tuint32_t(0)) { 44049 goto __1397 44050 } 44051 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44052 goto __1398 44053 __1397: 44054 if !(fc&0x10 == Tuint32_t(0)) { 44055 goto __1399 44056 } 44057 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 44058 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44059 goto __1400 44060 __1399: 44061 if !(fc&0x08 == Tuint32_t(0)) { 44062 goto __1401 44063 } 44064 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 44065 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44066 goto __1402 44067 __1401: 44068 if !(fc&0x04 == Tuint32_t(0)) { 44069 goto __1403 44070 } 44071 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 44072 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44073 goto __1404 44074 __1403: 44075 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 44076 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44077 __1404: 44078 ; 44079 __1402: 44080 ; 44081 __1400: 44082 ; 44083 __1398: 44084 ; 44085 __1396: 44086 ; 44087 44088 (*Theapframe)(unsafe.Pointer(F)).Feptr = X_pcre2_extuni_8(tls, fc, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, 44089 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, utf, uintptr(0)) 44090 __1393: 44091 ; 44092 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44093 goto __1405 44094 } 44095 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)) { 44096 goto __1406 44097 } 44098 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44099 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44100 goto __1407 44101 } 44102 return -2 44103 __1407: 44104 ; 44105 __1406: 44106 ; 44107 __1405: 44108 ; 44109 44110 goto __1390 44111 __1390: 44112 i++ 44113 goto __1389 44114 goto __1391 44115 __1391: 44116 ; 44117 goto __1388 44118 __1387: 44119 44120 // Handle all other cases in UTF mode 44121 44122 if !(utf != 0) { 44123 goto __1408 44124 } 44125 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 44126 case OP_ANY: 44127 goto __1411 44128 44129 case OP_ALLANY: 44130 goto __1412 44131 44132 case OP_ANYBYTE: 44133 goto __1413 44134 44135 case OP_ANYNL: 44136 goto __1414 44137 44138 case OP_NOT_HSPACE: 44139 goto __1415 44140 44141 case OP_HSPACE: 44142 goto __1416 44143 44144 case OP_NOT_VSPACE: 44145 goto __1417 44146 44147 case OP_VSPACE: 44148 goto __1418 44149 44150 case OP_NOT_DIGIT: 44151 goto __1419 44152 44153 case OP_DIGIT: 44154 goto __1420 44155 44156 case OP_NOT_WHITESPACE: 44157 goto __1421 44158 44159 case OP_WHITESPACE: 44160 goto __1422 44161 44162 case OP_NOT_WORDCHAR: 44163 goto __1423 44164 44165 case OP_WORDCHAR: 44166 goto __1424 44167 44168 default: 44169 goto __1425 44170 } 44171 goto __1410 44172 44173 __1411: 44174 i = Tuint32_t(1) 44175 __1426: 44176 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44177 goto __1428 44178 } 44179 44180 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44181 goto __1429 44182 } 44183 44184 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)) { 44185 goto __1430 44186 } 44187 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44188 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44189 goto __1431 44190 } 44191 return -2 44192 __1431: 44193 ; 44194 __1430: 44195 ; 44196 44197 rrc = DMATCH_NOMATCH 44198 goto RETURN_SWITCH 44199 44200 __1429: 44201 ; 44202 if !(func() int32 { 44203 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 44204 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+256, utf) != 0) 44205 } 44206 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 + 260))) && ((*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 + 260 + 1))))) 44207 }() != 0) { 44208 goto __1432 44209 } 44210 rrc = DMATCH_NOMATCH 44211 goto RETURN_SWITCH 44212 __1432: 44213 ; 44214 44215 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 + 260)))) { 44216 goto __1433 44217 } 44218 44219 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44220 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44221 goto __1434 44222 } 44223 return -2 44224 __1434: 44225 ; 44226 __1433: 44227 ; 44228 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44229 __1435: 44230 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) { 44231 goto __1436 44232 } 44233 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44234 goto __1435 44235 __1436: 44236 ; 44237 goto __1427 44238 __1427: 44239 i++ 44240 goto __1426 44241 goto __1428 44242 __1428: 44243 ; 44244 goto __1410 44245 44246 __1412: 44247 i = Tuint32_t(1) 44248 __1437: 44249 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44250 goto __1439 44251 } 44252 44253 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44254 goto __1440 44255 } 44256 44257 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)) { 44258 goto __1441 44259 } 44260 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44261 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44262 goto __1442 44263 } 44264 return -2 44265 __1442: 44266 ; 44267 __1441: 44268 ; 44269 44270 rrc = DMATCH_NOMATCH 44271 goto RETURN_SWITCH 44272 44273 __1440: 44274 ; 44275 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44276 __1443: 44277 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) { 44278 goto __1444 44279 } 44280 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44281 goto __1443 44282 __1444: 44283 ; 44284 goto __1438 44285 __1438: 44286 i++ 44287 goto __1437 44288 goto __1439 44289 __1439: 44290 ; 44291 goto __1410 44292 44293 __1413: 44294 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56)))) { 44295 goto __1445 44296 } 44297 rrc = DMATCH_NOMATCH 44298 goto RETURN_SWITCH 44299 __1445: 44300 ; 44301 44302 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tuint32_t)(unsafe.Pointer(F + 56))) 44303 goto __1410 44304 44305 __1414: 44306 i = Tuint32_t(1) 44307 __1446: 44308 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44309 goto __1448 44310 } 44311 44312 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44313 goto __1449 44314 } 44315 44316 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)) { 44317 goto __1450 44318 } 44319 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44320 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44321 goto __1451 44322 } 44323 return -2 44324 __1451: 44325 ; 44326 __1450: 44327 ; 44328 44329 rrc = DMATCH_NOMATCH 44330 goto RETURN_SWITCH 44331 44332 __1449: 44333 ; 44334 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44335 if !(fc >= 0xc0) { 44336 goto __1452 44337 } 44338 if !(fc&0x20 == Tuint32_t(0)) { 44339 goto __1453 44340 } 44341 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44342 goto __1454 44343 __1453: 44344 if !(fc&0x10 == Tuint32_t(0)) { 44345 goto __1455 44346 } 44347 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 44348 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44349 goto __1456 44350 __1455: 44351 if !(fc&0x08 == Tuint32_t(0)) { 44352 goto __1457 44353 } 44354 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 44355 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44356 goto __1458 44357 __1457: 44358 if !(fc&0x04 == Tuint32_t(0)) { 44359 goto __1459 44360 } 44361 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 44362 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44363 goto __1460 44364 __1459: 44365 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 44366 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44367 __1460: 44368 ; 44369 __1458: 44370 ; 44371 __1456: 44372 ; 44373 __1454: 44374 ; 44375 __1452: 44376 ; 44377 44378 switch fc { 44379 default: 44380 goto __1462 44381 44382 case Tuint32_t('\015'): 44383 goto __1463 44384 44385 case Tuint32_t('\012'): 44386 goto __1464 44387 44388 case Tuint32_t('\013'): 44389 goto __1465 44390 case Tuint32_t('\014'): 44391 goto __1466 44392 case Tuint32_t(uint8('\x85')): 44393 goto __1467 44394 case Tuint32_t(0x2028): 44395 goto __1468 44396 case Tuint32_t(0x2029): 44397 goto __1469 44398 } 44399 goto __1461 44400 44401 __1462: 44402 rrc = DMATCH_NOMATCH 44403 goto RETURN_SWITCH 44404 44405 __1463: 44406 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') { 44407 goto __1470 44408 } 44409 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44410 __1470: 44411 ; 44412 goto __1461 44413 44414 __1464: 44415 goto __1461 44416 44417 __1465: 44418 __1466: 44419 __1467: 44420 __1468: 44421 __1469: 44422 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 44423 goto __1471 44424 } 44425 rrc = DMATCH_NOMATCH 44426 goto RETURN_SWITCH 44427 __1471: 44428 ; 44429 44430 goto __1461 44431 __1461: 44432 ; 44433 goto __1447 44434 __1447: 44435 i++ 44436 goto __1446 44437 goto __1448 44438 __1448: 44439 ; 44440 goto __1410 44441 44442 __1415: 44443 i = Tuint32_t(1) 44444 __1472: 44445 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44446 goto __1474 44447 } 44448 44449 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44450 goto __1475 44451 } 44452 44453 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)) { 44454 goto __1476 44455 } 44456 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44457 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44458 goto __1477 44459 } 44460 return -2 44461 __1477: 44462 ; 44463 __1476: 44464 ; 44465 44466 rrc = DMATCH_NOMATCH 44467 goto RETURN_SWITCH 44468 44469 __1475: 44470 ; 44471 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44472 if !(fc >= 0xc0) { 44473 goto __1478 44474 } 44475 if !(fc&0x20 == Tuint32_t(0)) { 44476 goto __1479 44477 } 44478 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44479 goto __1480 44480 __1479: 44481 if !(fc&0x10 == Tuint32_t(0)) { 44482 goto __1481 44483 } 44484 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 44485 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44486 goto __1482 44487 __1481: 44488 if !(fc&0x08 == Tuint32_t(0)) { 44489 goto __1483 44490 } 44491 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 44492 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44493 goto __1484 44494 __1483: 44495 if !(fc&0x04 == Tuint32_t(0)) { 44496 goto __1485 44497 } 44498 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 44499 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44500 goto __1486 44501 __1485: 44502 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 44503 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44504 __1486: 44505 ; 44506 __1484: 44507 ; 44508 __1482: 44509 ; 44510 __1480: 44511 ; 44512 __1478: 44513 ; 44514 44515 switch fc { 44516 case Tuint32_t('\011'): 44517 goto __1488 44518 case Tuint32_t('\040'): 44519 goto __1489 44520 case Tuint32_t(uint8('\xa0')): 44521 goto __1490 44522 case Tuint32_t(0x1680): 44523 goto __1491 /* OGHAM SPACE MARK */ 44524 case Tuint32_t(0x180e): 44525 goto __1492 /* MONGOLIAN VOWEL SEPARATOR */ 44526 case Tuint32_t(0x2000): 44527 goto __1493 /* EN QUAD */ 44528 case Tuint32_t(0x2001): 44529 goto __1494 /* EM QUAD */ 44530 case Tuint32_t(0x2002): 44531 goto __1495 /* EN SPACE */ 44532 case Tuint32_t(0x2003): 44533 goto __1496 /* EM SPACE */ 44534 case Tuint32_t(0x2004): 44535 goto __1497 /* THREE-PER-EM SPACE */ 44536 case Tuint32_t(0x2005): 44537 goto __1498 /* FOUR-PER-EM SPACE */ 44538 case Tuint32_t(0x2006): 44539 goto __1499 /* SIX-PER-EM SPACE */ 44540 case Tuint32_t(0x2007): 44541 goto __1500 /* FIGURE SPACE */ 44542 case Tuint32_t(0x2008): 44543 goto __1501 /* PUNCTUATION SPACE */ 44544 case Tuint32_t(0x2009): 44545 goto __1502 /* THIN SPACE */ 44546 case Tuint32_t(0x200A): 44547 goto __1503 /* HAIR SPACE */ 44548 case Tuint32_t(0x202f): 44549 goto __1504 /* NARROW NO-BREAK SPACE */ 44550 case Tuint32_t(0x205f): 44551 goto __1505 /* MEDIUM MATHEMATICAL SPACE */ 44552 case Tuint32_t(0x3000): 44553 goto __1506 44554 default: 44555 goto __1507 44556 } 44557 goto __1487 44558 44559 __1488: 44560 __1489: 44561 __1490: 44562 __1491: /* OGHAM SPACE MARK */ 44563 __1492: /* MONGOLIAN VOWEL SEPARATOR */ 44564 __1493: /* EN QUAD */ 44565 __1494: /* EM QUAD */ 44566 __1495: /* EN SPACE */ 44567 __1496: /* EM SPACE */ 44568 __1497: /* THREE-PER-EM SPACE */ 44569 __1498: /* FOUR-PER-EM SPACE */ 44570 __1499: /* SIX-PER-EM SPACE */ 44571 __1500: /* FIGURE SPACE */ 44572 __1501: /* PUNCTUATION SPACE */ 44573 __1502: /* THIN SPACE */ 44574 __1503: /* HAIR SPACE */ 44575 __1504: /* NARROW NO-BREAK SPACE */ 44576 __1505: /* MEDIUM MATHEMATICAL SPACE */ 44577 __1506: 44578 rrc = DMATCH_NOMATCH 44579 goto RETURN_SWITCH 44580 44581 __1507: 44582 goto __1487 44583 __1487: 44584 ; 44585 goto __1473 44586 __1473: 44587 i++ 44588 goto __1472 44589 goto __1474 44590 __1474: 44591 ; 44592 goto __1410 44593 44594 __1416: 44595 i = Tuint32_t(1) 44596 __1508: 44597 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44598 goto __1510 44599 } 44600 44601 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44602 goto __1511 44603 } 44604 44605 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)) { 44606 goto __1512 44607 } 44608 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44609 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44610 goto __1513 44611 } 44612 return -2 44613 __1513: 44614 ; 44615 __1512: 44616 ; 44617 44618 rrc = DMATCH_NOMATCH 44619 goto RETURN_SWITCH 44620 44621 __1511: 44622 ; 44623 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44624 if !(fc >= 0xc0) { 44625 goto __1514 44626 } 44627 if !(fc&0x20 == Tuint32_t(0)) { 44628 goto __1515 44629 } 44630 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44631 goto __1516 44632 __1515: 44633 if !(fc&0x10 == Tuint32_t(0)) { 44634 goto __1517 44635 } 44636 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 44637 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44638 goto __1518 44639 __1517: 44640 if !(fc&0x08 == Tuint32_t(0)) { 44641 goto __1519 44642 } 44643 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 44644 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44645 goto __1520 44646 __1519: 44647 if !(fc&0x04 == Tuint32_t(0)) { 44648 goto __1521 44649 } 44650 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 44651 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44652 goto __1522 44653 __1521: 44654 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 44655 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44656 __1522: 44657 ; 44658 __1520: 44659 ; 44660 __1518: 44661 ; 44662 __1516: 44663 ; 44664 __1514: 44665 ; 44666 44667 switch fc { 44668 case Tuint32_t('\011'): 44669 goto __1524 44670 case Tuint32_t('\040'): 44671 goto __1525 44672 case Tuint32_t(uint8('\xa0')): 44673 goto __1526 44674 case Tuint32_t(0x1680): 44675 goto __1527 /* OGHAM SPACE MARK */ 44676 case Tuint32_t(0x180e): 44677 goto __1528 /* MONGOLIAN VOWEL SEPARATOR */ 44678 case Tuint32_t(0x2000): 44679 goto __1529 /* EN QUAD */ 44680 case Tuint32_t(0x2001): 44681 goto __1530 /* EM QUAD */ 44682 case Tuint32_t(0x2002): 44683 goto __1531 /* EN SPACE */ 44684 case Tuint32_t(0x2003): 44685 goto __1532 /* EM SPACE */ 44686 case Tuint32_t(0x2004): 44687 goto __1533 /* THREE-PER-EM SPACE */ 44688 case Tuint32_t(0x2005): 44689 goto __1534 /* FOUR-PER-EM SPACE */ 44690 case Tuint32_t(0x2006): 44691 goto __1535 /* SIX-PER-EM SPACE */ 44692 case Tuint32_t(0x2007): 44693 goto __1536 /* FIGURE SPACE */ 44694 case Tuint32_t(0x2008): 44695 goto __1537 /* PUNCTUATION SPACE */ 44696 case Tuint32_t(0x2009): 44697 goto __1538 /* THIN SPACE */ 44698 case Tuint32_t(0x200A): 44699 goto __1539 /* HAIR SPACE */ 44700 case Tuint32_t(0x202f): 44701 goto __1540 /* NARROW NO-BREAK SPACE */ 44702 case Tuint32_t(0x205f): 44703 goto __1541 /* MEDIUM MATHEMATICAL SPACE */ 44704 case Tuint32_t(0x3000): 44705 goto __1542 44706 default: 44707 goto __1543 44708 } 44709 goto __1523 44710 44711 __1524: 44712 __1525: 44713 __1526: 44714 __1527: /* OGHAM SPACE MARK */ 44715 __1528: /* MONGOLIAN VOWEL SEPARATOR */ 44716 __1529: /* EN QUAD */ 44717 __1530: /* EM QUAD */ 44718 __1531: /* EN SPACE */ 44719 __1532: /* EM SPACE */ 44720 __1533: /* THREE-PER-EM SPACE */ 44721 __1534: /* FOUR-PER-EM SPACE */ 44722 __1535: /* SIX-PER-EM SPACE */ 44723 __1536: /* FIGURE SPACE */ 44724 __1537: /* PUNCTUATION SPACE */ 44725 __1538: /* THIN SPACE */ 44726 __1539: /* HAIR SPACE */ 44727 __1540: /* NARROW NO-BREAK SPACE */ 44728 __1541: /* MEDIUM MATHEMATICAL SPACE */ 44729 __1542: 44730 goto __1523 44731 __1543: 44732 rrc = DMATCH_NOMATCH 44733 goto RETURN_SWITCH 44734 44735 __1523: 44736 ; 44737 goto __1509 44738 __1509: 44739 i++ 44740 goto __1508 44741 goto __1510 44742 __1510: 44743 ; 44744 goto __1410 44745 44746 __1417: 44747 i = Tuint32_t(1) 44748 __1544: 44749 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44750 goto __1546 44751 } 44752 44753 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44754 goto __1547 44755 } 44756 44757 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)) { 44758 goto __1548 44759 } 44760 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44761 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44762 goto __1549 44763 } 44764 return -2 44765 __1549: 44766 ; 44767 __1548: 44768 ; 44769 44770 rrc = DMATCH_NOMATCH 44771 goto RETURN_SWITCH 44772 44773 __1547: 44774 ; 44775 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44776 if !(fc >= 0xc0) { 44777 goto __1550 44778 } 44779 if !(fc&0x20 == Tuint32_t(0)) { 44780 goto __1551 44781 } 44782 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44783 goto __1552 44784 __1551: 44785 if !(fc&0x10 == Tuint32_t(0)) { 44786 goto __1553 44787 } 44788 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 44789 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44790 goto __1554 44791 __1553: 44792 if !(fc&0x08 == Tuint32_t(0)) { 44793 goto __1555 44794 } 44795 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 44796 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44797 goto __1556 44798 __1555: 44799 if !(fc&0x04 == Tuint32_t(0)) { 44800 goto __1557 44801 } 44802 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 44803 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44804 goto __1558 44805 __1557: 44806 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 44807 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44808 __1558: 44809 ; 44810 __1556: 44811 ; 44812 __1554: 44813 ; 44814 __1552: 44815 ; 44816 __1550: 44817 ; 44818 44819 switch fc { 44820 case Tuint32_t('\012'): 44821 goto __1560 44822 case Tuint32_t('\013'): 44823 goto __1561 44824 case Tuint32_t('\014'): 44825 goto __1562 44826 case Tuint32_t('\015'): 44827 goto __1563 44828 case Tuint32_t(uint8('\x85')): 44829 goto __1564 44830 case Tuint32_t(0x2028): 44831 goto __1565 /* LINE SEPARATOR */ 44832 case Tuint32_t(0x2029): 44833 goto __1566 44834 default: 44835 goto __1567 44836 } 44837 goto __1559 44838 44839 __1560: 44840 __1561: 44841 __1562: 44842 __1563: 44843 __1564: 44844 __1565: /* LINE SEPARATOR */ 44845 __1566: 44846 rrc = DMATCH_NOMATCH 44847 goto RETURN_SWITCH 44848 44849 __1567: 44850 goto __1559 44851 __1559: 44852 ; 44853 goto __1545 44854 __1545: 44855 i++ 44856 goto __1544 44857 goto __1546 44858 __1546: 44859 ; 44860 goto __1410 44861 44862 __1418: 44863 i = Tuint32_t(1) 44864 __1568: 44865 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44866 goto __1570 44867 } 44868 44869 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44870 goto __1571 44871 } 44872 44873 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)) { 44874 goto __1572 44875 } 44876 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44877 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44878 goto __1573 44879 } 44880 return -2 44881 __1573: 44882 ; 44883 __1572: 44884 ; 44885 44886 rrc = DMATCH_NOMATCH 44887 goto RETURN_SWITCH 44888 44889 __1571: 44890 ; 44891 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44892 if !(fc >= 0xc0) { 44893 goto __1574 44894 } 44895 if !(fc&0x20 == Tuint32_t(0)) { 44896 goto __1575 44897 } 44898 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44899 goto __1576 44900 __1575: 44901 if !(fc&0x10 == Tuint32_t(0)) { 44902 goto __1577 44903 } 44904 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 44905 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44906 goto __1578 44907 __1577: 44908 if !(fc&0x08 == Tuint32_t(0)) { 44909 goto __1579 44910 } 44911 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 44912 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44913 goto __1580 44914 __1579: 44915 if !(fc&0x04 == Tuint32_t(0)) { 44916 goto __1581 44917 } 44918 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 44919 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44920 goto __1582 44921 __1581: 44922 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 44923 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44924 __1582: 44925 ; 44926 __1580: 44927 ; 44928 __1578: 44929 ; 44930 __1576: 44931 ; 44932 __1574: 44933 ; 44934 44935 switch fc { 44936 case Tuint32_t('\012'): 44937 goto __1584 44938 case Tuint32_t('\013'): 44939 goto __1585 44940 case Tuint32_t('\014'): 44941 goto __1586 44942 case Tuint32_t('\015'): 44943 goto __1587 44944 case Tuint32_t(uint8('\x85')): 44945 goto __1588 44946 case Tuint32_t(0x2028): 44947 goto __1589 /* LINE SEPARATOR */ 44948 case Tuint32_t(0x2029): 44949 goto __1590 44950 default: 44951 goto __1591 44952 } 44953 goto __1583 44954 44955 __1584: 44956 __1585: 44957 __1586: 44958 __1587: 44959 __1588: 44960 __1589: /* LINE SEPARATOR */ 44961 __1590: 44962 goto __1583 44963 __1591: 44964 rrc = DMATCH_NOMATCH 44965 goto RETURN_SWITCH 44966 44967 __1583: 44968 ; 44969 goto __1569 44970 __1569: 44971 i++ 44972 goto __1568 44973 goto __1570 44974 __1570: 44975 ; 44976 goto __1410 44977 44978 __1419: 44979 i = Tuint32_t(1) 44980 __1592: 44981 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44982 goto __1594 44983 } 44984 44985 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44986 goto __1595 44987 } 44988 44989 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)) { 44990 goto __1596 44991 } 44992 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44993 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44994 goto __1597 44995 } 44996 return -2 44997 __1597: 44998 ; 44999 __1596: 45000 ; 45001 45002 rrc = DMATCH_NOMATCH 45003 goto RETURN_SWITCH 45004 45005 __1595: 45006 ; 45007 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 45008 if !(fc >= 0xc0) { 45009 goto __1598 45010 } 45011 if !(fc&0x20 == Tuint32_t(0)) { 45012 goto __1599 45013 } 45014 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 45015 goto __1600 45016 __1599: 45017 if !(fc&0x10 == Tuint32_t(0)) { 45018 goto __1601 45019 } 45020 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 45021 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 45022 goto __1602 45023 __1601: 45024 if !(fc&0x08 == Tuint32_t(0)) { 45025 goto __1603 45026 } 45027 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 45028 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 45029 goto __1604 45030 __1603: 45031 if !(fc&0x04 == Tuint32_t(0)) { 45032 goto __1605 45033 } 45034 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 45035 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 45036 goto __1606 45037 __1605: 45038 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 45039 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 45040 __1606: 45041 ; 45042 __1604: 45043 ; 45044 __1602: 45045 ; 45046 __1600: 45047 ; 45048 __1598: 45049 ; 45050 45051 if !(fc < Tuint32_t(128) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 45052 goto __1607 45053 } 45054 rrc = DMATCH_NOMATCH 45055 goto RETURN_SWITCH 45056 __1607: 45057 ; 45058 45059 goto __1593 45060 __1593: 45061 i++ 45062 goto __1592 45063 goto __1594 45064 __1594: 45065 ; 45066 goto __1410 45067 45068 __1420: 45069 i = Tuint32_t(1) 45070 __1608: 45071 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45072 goto __1610 45073 } 45074 45075 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45076 goto __1611 45077 } 45078 45079 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)) { 45080 goto __1612 45081 } 45082 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45083 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45084 goto __1613 45085 } 45086 return -2 45087 __1613: 45088 ; 45089 __1612: 45090 ; 45091 45092 rrc = DMATCH_NOMATCH 45093 goto RETURN_SWITCH 45094 45095 __1611: 45096 ; 45097 cc5 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45098 if !(cc5 >= Tuint32_t(128) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc5))))&Dctype_digit == 0) { 45099 goto __1614 45100 } 45101 rrc = DMATCH_NOMATCH 45102 goto RETURN_SWITCH 45103 __1614: 45104 ; 45105 45106 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45107 // No need to skip more code units - we know it has only one. 45108 goto __1609 45109 __1609: 45110 i++ 45111 goto __1608 45112 goto __1610 45113 __1610: 45114 ; 45115 goto __1410 45116 45117 __1421: 45118 i = Tuint32_t(1) 45119 __1615: 45120 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45121 goto __1617 45122 } 45123 45124 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45125 goto __1618 45126 } 45127 45128 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)) { 45129 goto __1619 45130 } 45131 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45132 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45133 goto __1620 45134 } 45135 return -2 45136 __1620: 45137 ; 45138 __1619: 45139 ; 45140 45141 rrc = DMATCH_NOMATCH 45142 goto RETURN_SWITCH 45143 45144 __1618: 45145 ; 45146 cc6 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45147 if !(cc6 < Tuint32_t(128) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc6))))&Dctype_space != 0) { 45148 goto __1621 45149 } 45150 rrc = DMATCH_NOMATCH 45151 goto RETURN_SWITCH 45152 __1621: 45153 ; 45154 45155 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45156 __1622: 45157 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) { 45158 goto __1623 45159 } 45160 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45161 goto __1622 45162 __1623: 45163 ; 45164 goto __1616 45165 __1616: 45166 i++ 45167 goto __1615 45168 goto __1617 45169 __1617: 45170 ; 45171 goto __1410 45172 45173 __1422: 45174 i = Tuint32_t(1) 45175 __1624: 45176 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45177 goto __1626 45178 } 45179 45180 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45181 goto __1627 45182 } 45183 45184 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)) { 45185 goto __1628 45186 } 45187 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45188 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45189 goto __1629 45190 } 45191 return -2 45192 __1629: 45193 ; 45194 __1628: 45195 ; 45196 45197 rrc = DMATCH_NOMATCH 45198 goto RETURN_SWITCH 45199 45200 __1627: 45201 ; 45202 cc7 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45203 if !(cc7 >= Tuint32_t(128) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc7))))&Dctype_space == 0) { 45204 goto __1630 45205 } 45206 rrc = DMATCH_NOMATCH 45207 goto RETURN_SWITCH 45208 __1630: 45209 ; 45210 45211 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45212 // No need to skip more code units - we know it has only one. 45213 goto __1625 45214 __1625: 45215 i++ 45216 goto __1624 45217 goto __1626 45218 __1626: 45219 ; 45220 goto __1410 45221 45222 __1423: 45223 i = Tuint32_t(1) 45224 __1631: 45225 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45226 goto __1633 45227 } 45228 45229 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45230 goto __1634 45231 } 45232 45233 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)) { 45234 goto __1635 45235 } 45236 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45237 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45238 goto __1636 45239 } 45240 return -2 45241 __1636: 45242 ; 45243 __1635: 45244 ; 45245 45246 rrc = DMATCH_NOMATCH 45247 goto RETURN_SWITCH 45248 45249 __1634: 45250 ; 45251 cc8 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45252 if !(cc8 < Tuint32_t(128) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc8))))&Dctype_word != 0) { 45253 goto __1637 45254 } 45255 rrc = DMATCH_NOMATCH 45256 goto RETURN_SWITCH 45257 __1637: 45258 ; 45259 45260 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45261 __1638: 45262 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) { 45263 goto __1639 45264 } 45265 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45266 goto __1638 45267 __1639: 45268 ; 45269 goto __1632 45270 __1632: 45271 i++ 45272 goto __1631 45273 goto __1633 45274 __1633: 45275 ; 45276 goto __1410 45277 45278 __1424: 45279 i = Tuint32_t(1) 45280 __1640: 45281 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45282 goto __1642 45283 } 45284 45285 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45286 goto __1643 45287 } 45288 45289 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)) { 45290 goto __1644 45291 } 45292 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45293 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45294 goto __1645 45295 } 45296 return -2 45297 __1645: 45298 ; 45299 __1644: 45300 ; 45301 45302 rrc = DMATCH_NOMATCH 45303 goto RETURN_SWITCH 45304 45305 __1643: 45306 ; 45307 cc9 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45308 if !(cc9 >= Tuint32_t(128) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc9))))&Dctype_word == 0) { 45309 goto __1646 45310 } 45311 rrc = DMATCH_NOMATCH 45312 goto RETURN_SWITCH 45313 __1646: 45314 ; 45315 45316 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45317 // No need to skip more code units - we know it has only one. 45318 goto __1641 45319 __1641: 45320 i++ 45321 goto __1640 45322 goto __1642 45323 __1642: 45324 ; 45325 goto __1410 45326 45327 __1425: 45328 return -44 45329 __1410: 45330 ; 45331 goto __1409 45332 __1408: 45333 45334 // Code for the non-UTF case for minimum matching of operators other 45335 // than OP_PROP and OP_NOTPROP. 45336 45337 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 45338 case OP_ANY: 45339 goto __1648 45340 45341 case OP_ALLANY: 45342 goto __1649 45343 45344 // This OP_ANYBYTE case will never be reached because \C gets turned 45345 // into OP_ALLANY in non-UTF mode. Cut out the code so that coverage 45346 // reports don't complain about it's never being used. 45347 45348 // case OP_ANYBYTE: 45349 // if (Feptr > mb->end_subject - Lmin) 45350 // { 45351 // SCHECK_PARTIAL(); 45352 // RRETURN(MATCH_NOMATCH); 45353 // } 45354 // Feptr += Lmin; 45355 // break; 45356 case OP_ANYNL: 45357 goto __1650 45358 45359 case OP_NOT_HSPACE: 45360 goto __1651 45361 45362 case OP_HSPACE: 45363 goto __1652 45364 45365 case OP_NOT_VSPACE: 45366 goto __1653 45367 45368 case OP_VSPACE: 45369 goto __1654 45370 45371 case OP_NOT_DIGIT: 45372 goto __1655 45373 45374 case OP_DIGIT: 45375 goto __1656 45376 45377 case OP_NOT_WHITESPACE: 45378 goto __1657 45379 45380 case OP_WHITESPACE: 45381 goto __1658 45382 45383 case OP_NOT_WORDCHAR: 45384 goto __1659 45385 45386 case OP_WORDCHAR: 45387 goto __1660 45388 45389 default: 45390 goto __1661 45391 } 45392 goto __1647 45393 45394 __1648: 45395 i = Tuint32_t(1) 45396 __1662: 45397 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45398 goto __1664 45399 } 45400 45401 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45402 goto __1665 45403 } 45404 45405 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)) { 45406 goto __1666 45407 } 45408 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45409 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45410 goto __1667 45411 } 45412 return -2 45413 __1667: 45414 ; 45415 __1666: 45416 ; 45417 45418 rrc = DMATCH_NOMATCH 45419 goto RETURN_SWITCH 45420 45421 __1665: 45422 ; 45423 if !(func() int32 { 45424 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 45425 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+256, utf) != 0) 45426 } 45427 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 + 260))) && ((*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 + 260 + 1))))) 45428 }() != 0) { 45429 goto __1668 45430 } 45431 rrc = DMATCH_NOMATCH 45432 goto RETURN_SWITCH 45433 __1668: 45434 ; 45435 45436 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 + 260)))) { 45437 goto __1669 45438 } 45439 45440 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45441 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45442 goto __1670 45443 } 45444 return -2 45445 __1670: 45446 ; 45447 __1669: 45448 ; 45449 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45450 goto __1663 45451 __1663: 45452 i++ 45453 goto __1662 45454 goto __1664 45455 __1664: 45456 ; 45457 goto __1647 45458 45459 __1649: 45460 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56)))) { 45461 goto __1671 45462 } 45463 45464 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)) { 45465 goto __1672 45466 } 45467 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45468 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45469 goto __1673 45470 } 45471 return -2 45472 __1673: 45473 ; 45474 __1672: 45475 ; 45476 45477 rrc = DMATCH_NOMATCH 45478 goto RETURN_SWITCH 45479 45480 __1671: 45481 ; 45482 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tuint32_t)(unsafe.Pointer(F + 56))) 45483 goto __1647 45484 45485 // This OP_ANYBYTE case will never be reached because \C gets turned 45486 // into OP_ALLANY in non-UTF mode. Cut out the code so that coverage 45487 // reports don't complain about it's never being used. 45488 45489 // case OP_ANYBYTE: 45490 // if (Feptr > mb->end_subject - Lmin) 45491 // { 45492 // SCHECK_PARTIAL(); 45493 // RRETURN(MATCH_NOMATCH); 45494 // } 45495 // Feptr += Lmin; 45496 // break; 45497 __1650: 45498 i = Tuint32_t(1) 45499 __1674: 45500 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45501 goto __1676 45502 } 45503 45504 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45505 goto __1677 45506 } 45507 45508 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)) { 45509 goto __1678 45510 } 45511 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45512 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45513 goto __1679 45514 } 45515 return -2 45516 __1679: 45517 ; 45518 __1678: 45519 ; 45520 45521 rrc = DMATCH_NOMATCH 45522 goto RETURN_SWITCH 45523 45524 __1677: 45525 ; 45526 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45527 default: 45528 goto __1681 45529 45530 case '\015': 45531 goto __1682 45532 45533 case '\012': 45534 goto __1683 45535 45536 case '\013': 45537 goto __1684 45538 case '\014': 45539 goto __1685 45540 case int32(uint8('\x85')): 45541 goto __1686 45542 } 45543 goto __1680 45544 45545 __1681: 45546 rrc = DMATCH_NOMATCH 45547 goto RETURN_SWITCH 45548 45549 __1682: 45550 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') { 45551 goto __1687 45552 } 45553 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45554 __1687: 45555 ; 45556 goto __1680 45557 45558 __1683: 45559 goto __1680 45560 45561 __1684: 45562 __1685: 45563 __1686: 45564 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 45565 goto __1688 45566 } 45567 rrc = DMATCH_NOMATCH 45568 goto RETURN_SWITCH 45569 __1688: 45570 ; 45571 45572 goto __1680 45573 __1680: 45574 ; 45575 goto __1675 45576 __1675: 45577 i++ 45578 goto __1674 45579 goto __1676 45580 __1676: 45581 ; 45582 goto __1647 45583 45584 __1651: 45585 i = Tuint32_t(1) 45586 __1689: 45587 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45588 goto __1691 45589 } 45590 45591 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45592 goto __1692 45593 } 45594 45595 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)) { 45596 goto __1693 45597 } 45598 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45599 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45600 goto __1694 45601 } 45602 return -2 45603 __1694: 45604 ; 45605 __1693: 45606 ; 45607 45608 rrc = DMATCH_NOMATCH 45609 goto RETURN_SWITCH 45610 45611 __1692: 45612 ; 45613 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45614 default: 45615 goto __1696 45616 case '\011': 45617 goto __1697 45618 case '\040': 45619 goto __1698 45620 case int32(uint8('\xa0')): 45621 goto __1699 45622 } 45623 goto __1695 45624 45625 __1696: 45626 goto __1695 45627 __1697: 45628 __1698: 45629 __1699: 45630 rrc = DMATCH_NOMATCH 45631 goto RETURN_SWITCH 45632 45633 __1695: 45634 ; 45635 goto __1690 45636 __1690: 45637 i++ 45638 goto __1689 45639 goto __1691 45640 __1691: 45641 ; 45642 goto __1647 45643 45644 __1652: 45645 i = Tuint32_t(1) 45646 __1700: 45647 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45648 goto __1702 45649 } 45650 45651 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45652 goto __1703 45653 } 45654 45655 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)) { 45656 goto __1704 45657 } 45658 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45659 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45660 goto __1705 45661 } 45662 return -2 45663 __1705: 45664 ; 45665 __1704: 45666 ; 45667 45668 rrc = DMATCH_NOMATCH 45669 goto RETURN_SWITCH 45670 45671 __1703: 45672 ; 45673 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45674 default: 45675 goto __1707 45676 case '\011': 45677 goto __1708 45678 case '\040': 45679 goto __1709 45680 case int32(uint8('\xa0')): 45681 goto __1710 45682 } 45683 goto __1706 45684 45685 __1707: 45686 rrc = DMATCH_NOMATCH 45687 goto RETURN_SWITCH 45688 45689 __1708: 45690 __1709: 45691 __1710: 45692 goto __1706 45693 __1706: 45694 ; 45695 goto __1701 45696 __1701: 45697 i++ 45698 goto __1700 45699 goto __1702 45700 __1702: 45701 ; 45702 goto __1647 45703 45704 __1653: 45705 i = Tuint32_t(1) 45706 __1711: 45707 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45708 goto __1713 45709 } 45710 45711 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45712 goto __1714 45713 } 45714 45715 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)) { 45716 goto __1715 45717 } 45718 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45719 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45720 goto __1716 45721 } 45722 return -2 45723 __1716: 45724 ; 45725 __1715: 45726 ; 45727 45728 rrc = DMATCH_NOMATCH 45729 goto RETURN_SWITCH 45730 45731 __1714: 45732 ; 45733 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45734 case '\012': 45735 goto __1718 45736 case '\013': 45737 goto __1719 45738 case '\014': 45739 goto __1720 45740 case '\015': 45741 goto __1721 45742 case int32(uint8('\x85')): 45743 goto __1722 45744 default: 45745 goto __1723 45746 } 45747 goto __1717 45748 45749 __1718: 45750 __1719: 45751 __1720: 45752 __1721: 45753 __1722: 45754 rrc = DMATCH_NOMATCH 45755 goto RETURN_SWITCH 45756 45757 __1723: 45758 goto __1717 45759 __1717: 45760 ; 45761 goto __1712 45762 __1712: 45763 i++ 45764 goto __1711 45765 goto __1713 45766 __1713: 45767 ; 45768 goto __1647 45769 45770 __1654: 45771 i = Tuint32_t(1) 45772 __1724: 45773 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45774 goto __1726 45775 } 45776 45777 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45778 goto __1727 45779 } 45780 45781 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)) { 45782 goto __1728 45783 } 45784 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45785 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45786 goto __1729 45787 } 45788 return -2 45789 __1729: 45790 ; 45791 __1728: 45792 ; 45793 45794 rrc = DMATCH_NOMATCH 45795 goto RETURN_SWITCH 45796 45797 __1727: 45798 ; 45799 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45800 default: 45801 goto __1731 45802 case '\012': 45803 goto __1732 45804 case '\013': 45805 goto __1733 45806 case '\014': 45807 goto __1734 45808 case '\015': 45809 goto __1735 45810 case int32(uint8('\x85')): 45811 goto __1736 45812 } 45813 goto __1730 45814 45815 __1731: 45816 rrc = DMATCH_NOMATCH 45817 goto RETURN_SWITCH 45818 45819 __1732: 45820 __1733: 45821 __1734: 45822 __1735: 45823 __1736: 45824 goto __1730 45825 __1730: 45826 ; 45827 goto __1725 45828 __1725: 45829 i++ 45830 goto __1724 45831 goto __1726 45832 __1726: 45833 ; 45834 goto __1647 45835 45836 __1655: 45837 i = Tuint32_t(1) 45838 __1737: 45839 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45840 goto __1739 45841 } 45842 45843 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45844 goto __1740 45845 } 45846 45847 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)) { 45848 goto __1741 45849 } 45850 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45851 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45852 goto __1742 45853 } 45854 return -2 45855 __1742: 45856 ; 45857 __1741: 45858 ; 45859 45860 rrc = DMATCH_NOMATCH 45861 goto RETURN_SWITCH 45862 45863 __1740: 45864 ; 45865 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) { 45866 goto __1743 45867 } 45868 rrc = DMATCH_NOMATCH 45869 goto RETURN_SWITCH 45870 __1743: 45871 ; 45872 45873 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45874 goto __1738 45875 __1738: 45876 i++ 45877 goto __1737 45878 goto __1739 45879 __1739: 45880 ; 45881 goto __1647 45882 45883 __1656: 45884 i = Tuint32_t(1) 45885 __1744: 45886 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45887 goto __1746 45888 } 45889 45890 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45891 goto __1747 45892 } 45893 45894 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)) { 45895 goto __1748 45896 } 45897 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45898 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45899 goto __1749 45900 } 45901 return -2 45902 __1749: 45903 ; 45904 __1748: 45905 ; 45906 45907 rrc = DMATCH_NOMATCH 45908 goto RETURN_SWITCH 45909 45910 __1747: 45911 ; 45912 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) { 45913 goto __1750 45914 } 45915 rrc = DMATCH_NOMATCH 45916 goto RETURN_SWITCH 45917 __1750: 45918 ; 45919 45920 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45921 goto __1745 45922 __1745: 45923 i++ 45924 goto __1744 45925 goto __1746 45926 __1746: 45927 ; 45928 goto __1647 45929 45930 __1657: 45931 i = Tuint32_t(1) 45932 __1751: 45933 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45934 goto __1753 45935 } 45936 45937 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45938 goto __1754 45939 } 45940 45941 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)) { 45942 goto __1755 45943 } 45944 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45945 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45946 goto __1756 45947 } 45948 return -2 45949 __1756: 45950 ; 45951 __1755: 45952 ; 45953 45954 rrc = DMATCH_NOMATCH 45955 goto RETURN_SWITCH 45956 45957 __1754: 45958 ; 45959 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) { 45960 goto __1757 45961 } 45962 rrc = DMATCH_NOMATCH 45963 goto RETURN_SWITCH 45964 __1757: 45965 ; 45966 45967 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45968 goto __1752 45969 __1752: 45970 i++ 45971 goto __1751 45972 goto __1753 45973 __1753: 45974 ; 45975 goto __1647 45976 45977 __1658: 45978 i = Tuint32_t(1) 45979 __1758: 45980 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45981 goto __1760 45982 } 45983 45984 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45985 goto __1761 45986 } 45987 45988 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)) { 45989 goto __1762 45990 } 45991 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45992 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45993 goto __1763 45994 } 45995 return -2 45996 __1763: 45997 ; 45998 __1762: 45999 ; 46000 46001 rrc = DMATCH_NOMATCH 46002 goto RETURN_SWITCH 46003 46004 __1761: 46005 ; 46006 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) { 46007 goto __1764 46008 } 46009 rrc = DMATCH_NOMATCH 46010 goto RETURN_SWITCH 46011 __1764: 46012 ; 46013 46014 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 46015 goto __1759 46016 __1759: 46017 i++ 46018 goto __1758 46019 goto __1760 46020 __1760: 46021 ; 46022 goto __1647 46023 46024 __1659: 46025 i = Tuint32_t(1) 46026 __1765: 46027 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 46028 goto __1767 46029 } 46030 46031 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46032 goto __1768 46033 } 46034 46035 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)) { 46036 goto __1769 46037 } 46038 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46039 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46040 goto __1770 46041 } 46042 return -2 46043 __1770: 46044 ; 46045 __1769: 46046 ; 46047 46048 rrc = DMATCH_NOMATCH 46049 goto RETURN_SWITCH 46050 46051 __1768: 46052 ; 46053 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) { 46054 goto __1771 46055 } 46056 rrc = DMATCH_NOMATCH 46057 goto RETURN_SWITCH 46058 __1771: 46059 ; 46060 46061 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 46062 goto __1766 46063 __1766: 46064 i++ 46065 goto __1765 46066 goto __1767 46067 __1767: 46068 ; 46069 goto __1647 46070 46071 __1660: 46072 i = Tuint32_t(1) 46073 __1772: 46074 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 46075 goto __1774 46076 } 46077 46078 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46079 goto __1775 46080 } 46081 46082 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)) { 46083 goto __1776 46084 } 46085 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46086 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46087 goto __1777 46088 } 46089 return -2 46090 __1777: 46091 ; 46092 __1776: 46093 ; 46094 46095 rrc = DMATCH_NOMATCH 46096 goto RETURN_SWITCH 46097 46098 __1775: 46099 ; 46100 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) { 46101 goto __1778 46102 } 46103 rrc = DMATCH_NOMATCH 46104 goto RETURN_SWITCH 46105 __1778: 46106 ; 46107 46108 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 46109 goto __1773 46110 __1773: 46111 i++ 46112 goto __1772 46113 goto __1774 46114 __1774: 46115 ; 46116 goto __1647 46117 46118 __1661: 46119 return -44 46120 __1647: 46121 ; 46122 __1409: 46123 ; 46124 __1388: 46125 ; 46126 __1127: 46127 ; 46128 __1125: 46129 ; 46130 46131 // If Lmin = Lmax we are done. Continue with the main loop. 46132 46133 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46134 goto __1779 46135 } 46136 goto __11 46137 __1779: 46138 ; 46139 46140 // If minimizing, we have to test the rest of the pattern before each 46141 // subsequent match. This means we cannot use a local "notmatch" variable as 46142 // in the other cases. As all 4 temporary 32-bit values in the frame are 46143 // already in use, just test the type each time. 46144 46145 if !(reptype == REPTYPE_MIN) { 46146 goto __1780 46147 } 46148 46149 if !(proptype >= 0) { 46150 goto __1782 46151 } 46152 46153 switch proptype { 46154 case DPT_ANY: 46155 goto __1785 46156 // Control never gets here 46157 46158 case DPT_LAMP: 46159 goto __1786 46160 // Control never gets here 46161 46162 case DPT_GC: 46163 goto __1787 46164 // Control never gets here 46165 46166 case DPT_PC: 46167 goto __1788 46168 // Control never gets here 46169 46170 case DPT_SC: 46171 goto __1789 46172 // Control never gets here 46173 46174 case DPT_SCX: 46175 goto __1790 46176 // Control never gets here 46177 46178 case DPT_ALNUM: 46179 goto __1791 46180 // Control never gets here 46181 46182 // Perl space used to exclude VT, but from Perl 5.18 it is included, 46183 // which means that Perl space and POSIX space are now identical. PCRE 46184 // was changed at release 8.34. 46185 46186 case DPT_SPACE: 46187 goto __1792 // Perl space 46188 case DPT_PXSPACE: 46189 goto __1793 46190 // Control never gets here 46191 46192 case DPT_WORD: 46193 goto __1794 46194 // Control never gets here 46195 46196 case DPT_CLIST: 46197 goto __1795 46198 // Control never gets here 46199 46200 case DPT_UCNC: 46201 goto __1796 46202 // Control never gets here 46203 46204 case DPT_BIDICL: 46205 goto __1797 46206 // Control never gets here 46207 46208 case DPT_BOOL: 46209 goto __1798 46210 // Control never gets here 46211 46212 // This should never occur 46213 default: 46214 goto __1799 46215 } 46216 goto __1784 46217 46218 __1785: 46219 __1800: 46220 46221 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46222 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM208 46223 goto MATCH_RECURSE 46224 L_RM208: 46225 ; 46226 46227 if !(rrc != DMATCH_NOMATCH) { 46228 goto __1803 46229 } 46230 rrc = rrc 46231 goto RETURN_SWITCH 46232 __1803: 46233 ; 46234 46235 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46236 goto __1804 46237 } 46238 rrc = DMATCH_NOMATCH 46239 goto RETURN_SWITCH 46240 __1804: 46241 ; 46242 46243 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46244 goto __1805 46245 } 46246 46247 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)) { 46248 goto __1806 46249 } 46250 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46251 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46252 goto __1807 46253 } 46254 return -2 46255 __1807: 46256 ; 46257 __1806: 46258 ; 46259 46260 rrc = DMATCH_NOMATCH 46261 goto RETURN_SWITCH 46262 46263 __1805: 46264 ; 46265 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46266 if !(utf != 0 && fc >= 0xc0) { 46267 goto __1808 46268 } 46269 if !(fc&0x20 == Tuint32_t(0)) { 46270 goto __1809 46271 } 46272 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46273 goto __1810 46274 __1809: 46275 if !(fc&0x10 == Tuint32_t(0)) { 46276 goto __1811 46277 } 46278 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 46279 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46280 goto __1812 46281 __1811: 46282 if !(fc&0x08 == Tuint32_t(0)) { 46283 goto __1813 46284 } 46285 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 46286 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46287 goto __1814 46288 __1813: 46289 if !(fc&0x04 == Tuint32_t(0)) { 46290 goto __1815 46291 } 46292 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 46293 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46294 goto __1816 46295 __1815: 46296 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 46297 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46298 __1816: 46299 ; 46300 __1814: 46301 ; 46302 __1812: 46303 ; 46304 __1810: 46305 ; 46306 __1808: 46307 ; 46308 46309 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) { 46310 goto __1817 46311 } 46312 rrc = DMATCH_NOMATCH 46313 goto RETURN_SWITCH 46314 __1817: 46315 ; 46316 46317 goto __1801 46318 __1801: 46319 goto __1800 46320 goto __1802 46321 __1802: 46322 ; 46323 // Control never gets here 46324 46325 __1786: 46326 __1818: 46327 46328 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46329 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM209 46330 goto MATCH_RECURSE 46331 L_RM209: 46332 ; 46333 46334 if !(rrc != DMATCH_NOMATCH) { 46335 goto __1821 46336 } 46337 rrc = rrc 46338 goto RETURN_SWITCH 46339 __1821: 46340 ; 46341 46342 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46343 goto __1822 46344 } 46345 rrc = DMATCH_NOMATCH 46346 goto RETURN_SWITCH 46347 __1822: 46348 ; 46349 46350 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46351 goto __1823 46352 } 46353 46354 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)) { 46355 goto __1824 46356 } 46357 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46358 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46359 goto __1825 46360 } 46361 return -2 46362 __1825: 46363 ; 46364 __1824: 46365 ; 46366 46367 rrc = DMATCH_NOMATCH 46368 goto RETURN_SWITCH 46369 46370 __1823: 46371 ; 46372 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46373 if !(utf != 0 && fc >= 0xc0) { 46374 goto __1826 46375 } 46376 if !(fc&0x20 == Tuint32_t(0)) { 46377 goto __1827 46378 } 46379 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46380 goto __1828 46381 __1827: 46382 if !(fc&0x10 == Tuint32_t(0)) { 46383 goto __1829 46384 } 46385 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 46386 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46387 goto __1830 46388 __1829: 46389 if !(fc&0x08 == Tuint32_t(0)) { 46390 goto __1831 46391 } 46392 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 46393 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46394 goto __1832 46395 __1831: 46396 if !(fc&0x04 == Tuint32_t(0)) { 46397 goto __1833 46398 } 46399 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 46400 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46401 goto __1834 46402 __1833: 46403 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 46404 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46405 __1834: 46406 ; 46407 __1832: 46408 ; 46409 __1830: 46410 ; 46411 __1828: 46412 ; 46413 __1826: 46414 ; 46415 46416 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) 46417 if !(libc.Bool32(chartype1 == ucp_Lu || chartype1 == ucp_Ll || chartype1 == ucp_Lt) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46418 goto __1835 46419 } 46420 rrc = DMATCH_NOMATCH 46421 goto RETURN_SWITCH 46422 __1835: 46423 ; 46424 46425 goto __1819 46426 __1819: 46427 goto __1818 46428 goto __1820 46429 __1820: 46430 ; 46431 // Control never gets here 46432 46433 __1787: 46434 __1836: 46435 46436 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46437 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM210 46438 goto MATCH_RECURSE 46439 L_RM210: 46440 ; 46441 46442 if !(rrc != DMATCH_NOMATCH) { 46443 goto __1839 46444 } 46445 rrc = rrc 46446 goto RETURN_SWITCH 46447 __1839: 46448 ; 46449 46450 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46451 goto __1840 46452 } 46453 rrc = DMATCH_NOMATCH 46454 goto RETURN_SWITCH 46455 __1840: 46456 ; 46457 46458 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46459 goto __1841 46460 } 46461 46462 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)) { 46463 goto __1842 46464 } 46465 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46466 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46467 goto __1843 46468 } 46469 return -2 46470 __1843: 46471 ; 46472 __1842: 46473 ; 46474 46475 rrc = DMATCH_NOMATCH 46476 goto RETURN_SWITCH 46477 46478 __1841: 46479 ; 46480 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46481 if !(utf != 0 && fc >= 0xc0) { 46482 goto __1844 46483 } 46484 if !(fc&0x20 == Tuint32_t(0)) { 46485 goto __1845 46486 } 46487 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46488 goto __1846 46489 __1845: 46490 if !(fc&0x10 == Tuint32_t(0)) { 46491 goto __1847 46492 } 46493 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 46494 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46495 goto __1848 46496 __1847: 46497 if !(fc&0x08 == Tuint32_t(0)) { 46498 goto __1849 46499 } 46500 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 46501 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46502 goto __1850 46503 __1849: 46504 if !(fc&0x04 == Tuint32_t(0)) { 46505 goto __1851 46506 } 46507 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 46508 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46509 goto __1852 46510 __1851: 46511 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 46512 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46513 __1852: 46514 ; 46515 __1850: 46516 ; 46517 __1848: 46518 ; 46519 __1846: 46520 ; 46521 __1844: 46522 ; 46523 46524 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 + 56 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46525 goto __1853 46526 } 46527 rrc = DMATCH_NOMATCH 46528 goto RETURN_SWITCH 46529 __1853: 46530 ; 46531 46532 goto __1837 46533 __1837: 46534 goto __1836 46535 goto __1838 46536 __1838: 46537 ; 46538 // Control never gets here 46539 46540 __1788: 46541 __1854: 46542 46543 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46544 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM211 46545 goto MATCH_RECURSE 46546 L_RM211: 46547 ; 46548 46549 if !(rrc != DMATCH_NOMATCH) { 46550 goto __1857 46551 } 46552 rrc = rrc 46553 goto RETURN_SWITCH 46554 __1857: 46555 ; 46556 46557 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46558 goto __1858 46559 } 46560 rrc = DMATCH_NOMATCH 46561 goto RETURN_SWITCH 46562 __1858: 46563 ; 46564 46565 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46566 goto __1859 46567 } 46568 46569 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)) { 46570 goto __1860 46571 } 46572 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46573 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46574 goto __1861 46575 } 46576 return -2 46577 __1861: 46578 ; 46579 __1860: 46580 ; 46581 46582 rrc = DMATCH_NOMATCH 46583 goto RETURN_SWITCH 46584 46585 __1859: 46586 ; 46587 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46588 if !(utf != 0 && fc >= 0xc0) { 46589 goto __1862 46590 } 46591 if !(fc&0x20 == Tuint32_t(0)) { 46592 goto __1863 46593 } 46594 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46595 goto __1864 46596 __1863: 46597 if !(fc&0x10 == Tuint32_t(0)) { 46598 goto __1865 46599 } 46600 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 46601 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46602 goto __1866 46603 __1865: 46604 if !(fc&0x08 == Tuint32_t(0)) { 46605 goto __1867 46606 } 46607 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 46608 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46609 goto __1868 46610 __1867: 46611 if !(fc&0x04 == Tuint32_t(0)) { 46612 goto __1869 46613 } 46614 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 46615 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46616 goto __1870 46617 __1869: 46618 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 46619 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46620 __1870: 46621 ; 46622 __1868: 46623 ; 46624 __1866: 46625 ; 46626 __1864: 46627 ; 46628 __1862: 46629 ; 46630 46631 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 + 56 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46632 goto __1871 46633 } 46634 rrc = DMATCH_NOMATCH 46635 goto RETURN_SWITCH 46636 __1871: 46637 ; 46638 46639 goto __1855 46640 __1855: 46641 goto __1854 46642 goto __1856 46643 __1856: 46644 ; 46645 // Control never gets here 46646 46647 __1789: 46648 __1872: 46649 46650 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46651 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM212 46652 goto MATCH_RECURSE 46653 L_RM212: 46654 ; 46655 46656 if !(rrc != DMATCH_NOMATCH) { 46657 goto __1875 46658 } 46659 rrc = rrc 46660 goto RETURN_SWITCH 46661 __1875: 46662 ; 46663 46664 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46665 goto __1876 46666 } 46667 rrc = DMATCH_NOMATCH 46668 goto RETURN_SWITCH 46669 __1876: 46670 ; 46671 46672 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46673 goto __1877 46674 } 46675 46676 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)) { 46677 goto __1878 46678 } 46679 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46680 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46681 goto __1879 46682 } 46683 return -2 46684 __1879: 46685 ; 46686 __1878: 46687 ; 46688 46689 rrc = DMATCH_NOMATCH 46690 goto RETURN_SWITCH 46691 46692 __1877: 46693 ; 46694 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46695 if !(utf != 0 && fc >= 0xc0) { 46696 goto __1880 46697 } 46698 if !(fc&0x20 == Tuint32_t(0)) { 46699 goto __1881 46700 } 46701 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46702 goto __1882 46703 __1881: 46704 if !(fc&0x10 == Tuint32_t(0)) { 46705 goto __1883 46706 } 46707 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 46708 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46709 goto __1884 46710 __1883: 46711 if !(fc&0x08 == Tuint32_t(0)) { 46712 goto __1885 46713 } 46714 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 46715 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46716 goto __1886 46717 __1885: 46718 if !(fc&0x04 == Tuint32_t(0)) { 46719 goto __1887 46720 } 46721 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 46722 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46723 goto __1888 46724 __1887: 46725 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 46726 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46727 __1888: 46728 ; 46729 __1886: 46730 ; 46731 __1884: 46732 ; 46733 __1882: 46734 ; 46735 __1880: 46736 ; 46737 46738 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 + 56 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46739 goto __1889 46740 } 46741 rrc = DMATCH_NOMATCH 46742 goto RETURN_SWITCH 46743 __1889: 46744 ; 46745 46746 goto __1873 46747 __1873: 46748 goto __1872 46749 goto __1874 46750 __1874: 46751 ; 46752 // Control never gets here 46753 46754 __1790: 46755 __1890: 46756 46757 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46758 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM225 46759 goto MATCH_RECURSE 46760 L_RM225: 46761 ; 46762 46763 if !(rrc != DMATCH_NOMATCH) { 46764 goto __1893 46765 } 46766 rrc = rrc 46767 goto RETURN_SWITCH 46768 __1893: 46769 ; 46770 46771 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46772 goto __1894 46773 } 46774 rrc = DMATCH_NOMATCH 46775 goto RETURN_SWITCH 46776 __1894: 46777 ; 46778 46779 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46780 goto __1895 46781 } 46782 46783 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)) { 46784 goto __1896 46785 } 46786 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46787 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46788 goto __1897 46789 } 46790 return -2 46791 __1897: 46792 ; 46793 __1896: 46794 ; 46795 46796 rrc = DMATCH_NOMATCH 46797 goto RETURN_SWITCH 46798 46799 __1895: 46800 ; 46801 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46802 if !(utf != 0 && fc >= 0xc0) { 46803 goto __1898 46804 } 46805 if !(fc&0x20 == Tuint32_t(0)) { 46806 goto __1899 46807 } 46808 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46809 goto __1900 46810 __1899: 46811 if !(fc&0x10 == Tuint32_t(0)) { 46812 goto __1901 46813 } 46814 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 46815 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46816 goto __1902 46817 __1901: 46818 if !(fc&0x08 == Tuint32_t(0)) { 46819 goto __1903 46820 } 46821 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 46822 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46823 goto __1904 46824 __1903: 46825 if !(fc&0x04 == Tuint32_t(0)) { 46826 goto __1905 46827 } 46828 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 46829 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46830 goto __1906 46831 __1905: 46832 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 46833 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46834 __1906: 46835 ; 46836 __1904: 46837 ; 46838 __1902: 46839 ; 46840 __1900: 46841 ; 46842 __1898: 46843 ; 46844 46845 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 46846 ok4 = libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(prop3)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) || 46847 *(*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 + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 46848 if !(ok4 == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46849 goto __1907 46850 } 46851 rrc = DMATCH_NOMATCH 46852 goto RETURN_SWITCH 46853 __1907: 46854 ; 46855 46856 goto __1891 46857 __1891: 46858 goto __1890 46859 goto __1892 46860 __1892: 46861 ; 46862 // Control never gets here 46863 46864 __1791: 46865 __1908: 46866 46867 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46868 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM213 46869 goto MATCH_RECURSE 46870 L_RM213: 46871 ; 46872 46873 if !(rrc != DMATCH_NOMATCH) { 46874 goto __1911 46875 } 46876 rrc = rrc 46877 goto RETURN_SWITCH 46878 __1911: 46879 ; 46880 46881 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46882 goto __1912 46883 } 46884 rrc = DMATCH_NOMATCH 46885 goto RETURN_SWITCH 46886 __1912: 46887 ; 46888 46889 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46890 goto __1913 46891 } 46892 46893 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)) { 46894 goto __1914 46895 } 46896 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46897 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46898 goto __1915 46899 } 46900 return -2 46901 __1915: 46902 ; 46903 __1914: 46904 ; 46905 46906 rrc = DMATCH_NOMATCH 46907 goto RETURN_SWITCH 46908 46909 __1913: 46910 ; 46911 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46912 if !(utf != 0 && fc >= 0xc0) { 46913 goto __1916 46914 } 46915 if !(fc&0x20 == Tuint32_t(0)) { 46916 goto __1917 46917 } 46918 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46919 goto __1918 46920 __1917: 46921 if !(fc&0x10 == Tuint32_t(0)) { 46922 goto __1919 46923 } 46924 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 46925 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46926 goto __1920 46927 __1919: 46928 if !(fc&0x08 == Tuint32_t(0)) { 46929 goto __1921 46930 } 46931 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 46932 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46933 goto __1922 46934 __1921: 46935 if !(fc&0x04 == Tuint32_t(0)) { 46936 goto __1923 46937 } 46938 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 46939 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46940 goto __1924 46941 __1923: 46942 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 46943 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46944 __1924: 46945 ; 46946 __1922: 46947 ; 46948 __1920: 46949 ; 46950 __1918: 46951 ; 46952 __1916: 46953 ; 46954 46955 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]) 46956 if !(libc.Bool32(category2 == ucp_L || category2 == ucp_N) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46957 goto __1925 46958 } 46959 rrc = DMATCH_NOMATCH 46960 goto RETURN_SWITCH 46961 __1925: 46962 ; 46963 46964 goto __1909 46965 __1909: 46966 goto __1908 46967 goto __1910 46968 __1910: 46969 ; 46970 // Control never gets here 46971 46972 // Perl space used to exclude VT, but from Perl 5.18 it is included, 46973 // which means that Perl space and POSIX space are now identical. PCRE 46974 // was changed at release 8.34. 46975 46976 __1792: // Perl space 46977 __1793: // POSIX space 46978 __1926: 46979 46980 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46981 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM214 46982 goto MATCH_RECURSE 46983 L_RM214: 46984 ; 46985 46986 if !(rrc != DMATCH_NOMATCH) { 46987 goto __1929 46988 } 46989 rrc = rrc 46990 goto RETURN_SWITCH 46991 __1929: 46992 ; 46993 46994 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46995 goto __1930 46996 } 46997 rrc = DMATCH_NOMATCH 46998 goto RETURN_SWITCH 46999 __1930: 47000 ; 47001 47002 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47003 goto __1931 47004 } 47005 47006 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)) { 47007 goto __1932 47008 } 47009 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47010 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47011 goto __1933 47012 } 47013 return -2 47014 __1933: 47015 ; 47016 __1932: 47017 ; 47018 47019 rrc = DMATCH_NOMATCH 47020 goto RETURN_SWITCH 47021 47022 __1931: 47023 ; 47024 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47025 if !(utf != 0 && fc >= 0xc0) { 47026 goto __1934 47027 } 47028 if !(fc&0x20 == Tuint32_t(0)) { 47029 goto __1935 47030 } 47031 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47032 goto __1936 47033 __1935: 47034 if !(fc&0x10 == Tuint32_t(0)) { 47035 goto __1937 47036 } 47037 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 47038 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47039 goto __1938 47040 __1937: 47041 if !(fc&0x08 == Tuint32_t(0)) { 47042 goto __1939 47043 } 47044 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 47045 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47046 goto __1940 47047 __1939: 47048 if !(fc&0x04 == Tuint32_t(0)) { 47049 goto __1941 47050 } 47051 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 47052 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47053 goto __1942 47054 __1941: 47055 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 47056 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47057 __1942: 47058 ; 47059 __1940: 47060 ; 47061 __1938: 47062 ; 47063 __1936: 47064 ; 47065 __1934: 47066 ; 47067 47068 switch fc { 47069 case Tuint32_t('\011'): 47070 goto __1944 47071 case Tuint32_t('\040'): 47072 goto __1945 47073 case Tuint32_t(uint8('\xa0')): 47074 goto __1946 47075 case Tuint32_t(0x1680): 47076 goto __1947 /* OGHAM SPACE MARK */ 47077 case Tuint32_t(0x180e): 47078 goto __1948 /* MONGOLIAN VOWEL SEPARATOR */ 47079 case Tuint32_t(0x2000): 47080 goto __1949 /* EN QUAD */ 47081 case Tuint32_t(0x2001): 47082 goto __1950 /* EM QUAD */ 47083 case Tuint32_t(0x2002): 47084 goto __1951 /* EN SPACE */ 47085 case Tuint32_t(0x2003): 47086 goto __1952 /* EM SPACE */ 47087 case Tuint32_t(0x2004): 47088 goto __1953 /* THREE-PER-EM SPACE */ 47089 case Tuint32_t(0x2005): 47090 goto __1954 /* FOUR-PER-EM SPACE */ 47091 case Tuint32_t(0x2006): 47092 goto __1955 /* SIX-PER-EM SPACE */ 47093 case Tuint32_t(0x2007): 47094 goto __1956 /* FIGURE SPACE */ 47095 case Tuint32_t(0x2008): 47096 goto __1957 /* PUNCTUATION SPACE */ 47097 case Tuint32_t(0x2009): 47098 goto __1958 /* THIN SPACE */ 47099 case Tuint32_t(0x200A): 47100 goto __1959 /* HAIR SPACE */ 47101 case Tuint32_t(0x202f): 47102 goto __1960 /* NARROW NO-BREAK SPACE */ 47103 case Tuint32_t(0x205f): 47104 goto __1961 /* MEDIUM MATHEMATICAL SPACE */ 47105 case Tuint32_t(0x3000): 47106 goto __1962 47107 case Tuint32_t('\012'): 47108 goto __1963 47109 case Tuint32_t('\013'): 47110 goto __1964 47111 case Tuint32_t('\014'): 47112 goto __1965 47113 case Tuint32_t('\015'): 47114 goto __1966 47115 case Tuint32_t(uint8('\x85')): 47116 goto __1967 47117 case Tuint32_t(0x2028): 47118 goto __1968 /* LINE SEPARATOR */ 47119 case Tuint32_t(0x2029): 47120 goto __1969 47121 47122 default: 47123 goto __1970 47124 } 47125 goto __1943 47126 47127 __1944: 47128 __1945: 47129 __1946: 47130 __1947: /* OGHAM SPACE MARK */ 47131 __1948: /* MONGOLIAN VOWEL SEPARATOR */ 47132 __1949: /* EN QUAD */ 47133 __1950: /* EM QUAD */ 47134 __1951: /* EN SPACE */ 47135 __1952: /* EM SPACE */ 47136 __1953: /* THREE-PER-EM SPACE */ 47137 __1954: /* FOUR-PER-EM SPACE */ 47138 __1955: /* SIX-PER-EM SPACE */ 47139 __1956: /* FIGURE SPACE */ 47140 __1957: /* PUNCTUATION SPACE */ 47141 __1958: /* THIN SPACE */ 47142 __1959: /* HAIR SPACE */ 47143 __1960: /* NARROW NO-BREAK SPACE */ 47144 __1961: /* MEDIUM MATHEMATICAL SPACE */ 47145 __1962: 47146 __1963: 47147 __1964: 47148 __1965: 47149 __1966: 47150 __1967: 47151 __1968: /* LINE SEPARATOR */ 47152 __1969: 47153 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) { 47154 goto __1971 47155 } 47156 rrc = DMATCH_NOMATCH 47157 goto RETURN_SWITCH 47158 __1971: 47159 ; 47160 47161 goto __1943 47162 47163 __1970: 47164 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 + 56 + 2*4)) == OP_NOTPROP)) { 47165 goto __1972 47166 } 47167 rrc = DMATCH_NOMATCH 47168 goto RETURN_SWITCH 47169 __1972: 47170 ; 47171 47172 goto __1943 47173 __1943: 47174 ; 47175 goto __1927 47176 __1927: 47177 goto __1926 47178 goto __1928 47179 __1928: 47180 ; 47181 // Control never gets here 47182 47183 __1794: 47184 __1973: 47185 47186 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47187 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM215 47188 goto MATCH_RECURSE 47189 L_RM215: 47190 ; 47191 47192 if !(rrc != DMATCH_NOMATCH) { 47193 goto __1976 47194 } 47195 rrc = rrc 47196 goto RETURN_SWITCH 47197 __1976: 47198 ; 47199 47200 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47201 goto __1977 47202 } 47203 rrc = DMATCH_NOMATCH 47204 goto RETURN_SWITCH 47205 __1977: 47206 ; 47207 47208 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47209 goto __1978 47210 } 47211 47212 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)) { 47213 goto __1979 47214 } 47215 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47216 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47217 goto __1980 47218 } 47219 return -2 47220 __1980: 47221 ; 47222 __1979: 47223 ; 47224 47225 rrc = DMATCH_NOMATCH 47226 goto RETURN_SWITCH 47227 47228 __1978: 47229 ; 47230 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47231 if !(utf != 0 && fc >= 0xc0) { 47232 goto __1981 47233 } 47234 if !(fc&0x20 == Tuint32_t(0)) { 47235 goto __1982 47236 } 47237 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47238 goto __1983 47239 __1982: 47240 if !(fc&0x10 == Tuint32_t(0)) { 47241 goto __1984 47242 } 47243 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 47244 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47245 goto __1985 47246 __1984: 47247 if !(fc&0x08 == Tuint32_t(0)) { 47248 goto __1986 47249 } 47250 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 47251 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47252 goto __1987 47253 __1986: 47254 if !(fc&0x04 == Tuint32_t(0)) { 47255 goto __1988 47256 } 47257 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 47258 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47259 goto __1989 47260 __1988: 47261 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 47262 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47263 __1989: 47264 ; 47265 __1987: 47266 ; 47267 __1985: 47268 ; 47269 __1983: 47270 ; 47271 __1981: 47272 ; 47273 47274 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]) 47275 if !(libc.Bool32(category3 == ucp_L || category3 == ucp_N || fc == Tuint32_t('\137')) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 47276 goto __1990 47277 } 47278 rrc = DMATCH_NOMATCH 47279 goto RETURN_SWITCH 47280 __1990: 47281 ; 47282 47283 goto __1974 47284 __1974: 47285 goto __1973 47286 goto __1975 47287 __1975: 47288 ; 47289 // Control never gets here 47290 47291 __1795: 47292 __1991: 47293 47294 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47295 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM216 47296 goto MATCH_RECURSE 47297 L_RM216: 47298 ; 47299 47300 if !(rrc != DMATCH_NOMATCH) { 47301 goto __1994 47302 } 47303 rrc = rrc 47304 goto RETURN_SWITCH 47305 __1994: 47306 ; 47307 47308 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47309 goto __1995 47310 } 47311 rrc = DMATCH_NOMATCH 47312 goto RETURN_SWITCH 47313 __1995: 47314 ; 47315 47316 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47317 goto __1996 47318 } 47319 47320 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)) { 47321 goto __1997 47322 } 47323 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47324 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47325 goto __1998 47326 } 47327 return -2 47328 __1998: 47329 ; 47330 __1997: 47331 ; 47332 47333 rrc = DMATCH_NOMATCH 47334 goto RETURN_SWITCH 47335 47336 __1996: 47337 ; 47338 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47339 if !(utf != 0 && fc >= 0xc0) { 47340 goto __1999 47341 } 47342 if !(fc&0x20 == Tuint32_t(0)) { 47343 goto __2000 47344 } 47345 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47346 goto __2001 47347 __2000: 47348 if !(fc&0x10 == Tuint32_t(0)) { 47349 goto __2002 47350 } 47351 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 47352 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47353 goto __2003 47354 __2002: 47355 if !(fc&0x08 == Tuint32_t(0)) { 47356 goto __2004 47357 } 47358 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 47359 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47360 goto __2005 47361 __2004: 47362 if !(fc&0x04 == Tuint32_t(0)) { 47363 goto __2006 47364 } 47365 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 47366 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47367 goto __2007 47368 __2006: 47369 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 47370 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47371 __2007: 47372 ; 47373 __2005: 47374 ; 47375 __2003: 47376 ; 47377 __2001: 47378 ; 47379 __1999: 47380 ; 47381 47382 cp2 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)))*4 47383 __2008: 47384 47385 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp2))) { 47386 goto __2011 47387 } 47388 47389 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) { 47390 goto __2012 47391 } 47392 goto __2010 47393 __2012: 47394 ; 47395 rrc = DMATCH_NOMATCH 47396 goto RETURN_SWITCH 47397 47398 __2011: 47399 ; 47400 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp2, 4)))) { 47401 goto __2013 47402 } 47403 47404 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) { 47405 goto __2014 47406 } 47407 rrc = DMATCH_NOMATCH 47408 goto RETURN_SWITCH 47409 __2014: 47410 ; 47411 47412 goto __2010 47413 __2013: 47414 ; 47415 goto __2009 47416 __2009: 47417 goto __2008 47418 goto __2010 47419 __2010: 47420 ; 47421 goto __1992 47422 __1992: 47423 goto __1991 47424 goto __1993 47425 __1993: 47426 ; 47427 // Control never gets here 47428 47429 __1796: 47430 __2015: 47431 47432 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47433 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM217 47434 goto MATCH_RECURSE 47435 L_RM217: 47436 ; 47437 47438 if !(rrc != DMATCH_NOMATCH) { 47439 goto __2018 47440 } 47441 rrc = rrc 47442 goto RETURN_SWITCH 47443 __2018: 47444 ; 47445 47446 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47447 goto __2019 47448 } 47449 rrc = DMATCH_NOMATCH 47450 goto RETURN_SWITCH 47451 __2019: 47452 ; 47453 47454 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47455 goto __2020 47456 } 47457 47458 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)) { 47459 goto __2021 47460 } 47461 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47462 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47463 goto __2022 47464 } 47465 return -2 47466 __2022: 47467 ; 47468 __2021: 47469 ; 47470 47471 rrc = DMATCH_NOMATCH 47472 goto RETURN_SWITCH 47473 47474 __2020: 47475 ; 47476 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47477 if !(utf != 0 && fc >= 0xc0) { 47478 goto __2023 47479 } 47480 if !(fc&0x20 == Tuint32_t(0)) { 47481 goto __2024 47482 } 47483 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47484 goto __2025 47485 __2024: 47486 if !(fc&0x10 == Tuint32_t(0)) { 47487 goto __2026 47488 } 47489 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 47490 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47491 goto __2027 47492 __2026: 47493 if !(fc&0x08 == Tuint32_t(0)) { 47494 goto __2028 47495 } 47496 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 47497 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47498 goto __2029 47499 __2028: 47500 if !(fc&0x04 == Tuint32_t(0)) { 47501 goto __2030 47502 } 47503 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 47504 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47505 goto __2031 47506 __2030: 47507 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 47508 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47509 __2031: 47510 ; 47511 __2029: 47512 ; 47513 __2027: 47514 ; 47515 __2025: 47516 ; 47517 __2023: 47518 ; 47519 47520 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 + 56 + 2*4)) == OP_NOTPROP)) { 47521 goto __2032 47522 } 47523 rrc = DMATCH_NOMATCH 47524 goto RETURN_SWITCH 47525 __2032: 47526 ; 47527 47528 goto __2016 47529 __2016: 47530 goto __2015 47531 goto __2017 47532 __2017: 47533 ; 47534 // Control never gets here 47535 47536 __1797: 47537 __2033: 47538 47539 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47540 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM224 47541 goto MATCH_RECURSE 47542 L_RM224: 47543 ; 47544 47545 if !(rrc != DMATCH_NOMATCH) { 47546 goto __2036 47547 } 47548 rrc = rrc 47549 goto RETURN_SWITCH 47550 __2036: 47551 ; 47552 47553 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47554 goto __2037 47555 } 47556 rrc = DMATCH_NOMATCH 47557 goto RETURN_SWITCH 47558 __2037: 47559 ; 47560 47561 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47562 goto __2038 47563 } 47564 47565 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)) { 47566 goto __2039 47567 } 47568 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47569 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47570 goto __2040 47571 } 47572 return -2 47573 __2040: 47574 ; 47575 __2039: 47576 ; 47577 47578 rrc = DMATCH_NOMATCH 47579 goto RETURN_SWITCH 47580 47581 __2038: 47582 ; 47583 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47584 if !(utf != 0 && fc >= 0xc0) { 47585 goto __2041 47586 } 47587 if !(fc&0x20 == Tuint32_t(0)) { 47588 goto __2042 47589 } 47590 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47591 goto __2043 47592 __2042: 47593 if !(fc&0x10 == Tuint32_t(0)) { 47594 goto __2044 47595 } 47596 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 47597 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47598 goto __2045 47599 __2044: 47600 if !(fc&0x08 == Tuint32_t(0)) { 47601 goto __2046 47602 } 47603 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 47604 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47605 goto __2047 47606 __2046: 47607 if !(fc&0x04 == Tuint32_t(0)) { 47608 goto __2048 47609 } 47610 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 47611 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47612 goto __2049 47613 __2048: 47614 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 47615 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47616 __2049: 47617 ; 47618 __2047: 47619 ; 47620 __2045: 47621 ; 47622 __2043: 47623 ; 47624 __2041: 47625 ; 47626 47627 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 + 56 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 47628 goto __2050 47629 } 47630 rrc = DMATCH_NOMATCH 47631 goto RETURN_SWITCH 47632 __2050: 47633 ; 47634 47635 goto __2034 47636 __2034: 47637 goto __2033 47638 goto __2035 47639 __2035: 47640 ; 47641 // Control never gets here 47642 47643 __1798: 47644 __2051: 47645 47646 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47647 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM223 47648 goto MATCH_RECURSE 47649 L_RM223: 47650 ; 47651 47652 if !(rrc != DMATCH_NOMATCH) { 47653 goto __2054 47654 } 47655 rrc = rrc 47656 goto RETURN_SWITCH 47657 __2054: 47658 ; 47659 47660 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47661 goto __2055 47662 } 47663 rrc = DMATCH_NOMATCH 47664 goto RETURN_SWITCH 47665 __2055: 47666 ; 47667 47668 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47669 goto __2056 47670 } 47671 47672 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)) { 47673 goto __2057 47674 } 47675 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47676 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47677 goto __2058 47678 } 47679 return -2 47680 __2058: 47681 ; 47682 __2057: 47683 ; 47684 47685 rrc = DMATCH_NOMATCH 47686 goto RETURN_SWITCH 47687 47688 __2056: 47689 ; 47690 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47691 if !(utf != 0 && fc >= 0xc0) { 47692 goto __2059 47693 } 47694 if !(fc&0x20 == Tuint32_t(0)) { 47695 goto __2060 47696 } 47697 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47698 goto __2061 47699 __2060: 47700 if !(fc&0x10 == Tuint32_t(0)) { 47701 goto __2062 47702 } 47703 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 47704 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47705 goto __2063 47706 __2062: 47707 if !(fc&0x08 == Tuint32_t(0)) { 47708 goto __2064 47709 } 47710 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 47711 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47712 goto __2065 47713 __2064: 47714 if !(fc&0x04 == Tuint32_t(0)) { 47715 goto __2066 47716 } 47717 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 47718 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47719 goto __2067 47720 __2066: 47721 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 47722 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47723 __2067: 47724 ; 47725 __2065: 47726 ; 47727 __2063: 47728 ; 47729 __2061: 47730 ; 47731 __2059: 47732 ; 47733 47734 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 47735 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 + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 47736 if !(ok5 == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 47737 goto __2068 47738 } 47739 rrc = DMATCH_NOMATCH 47740 goto RETURN_SWITCH 47741 __2068: 47742 ; 47743 47744 goto __2052 47745 __2052: 47746 goto __2051 47747 goto __2053 47748 __2053: 47749 ; 47750 // Control never gets here 47751 47752 // This should never occur 47753 __1799: 47754 return -44 47755 __1784: 47756 ; 47757 goto __1783 47758 __1782: 47759 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_EXTUNI) { 47760 goto __2069 47761 } 47762 47763 __2071: 47764 47765 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47766 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM218 47767 goto MATCH_RECURSE 47768 L_RM218: 47769 ; 47770 47771 if !(rrc != DMATCH_NOMATCH) { 47772 goto __2074 47773 } 47774 rrc = rrc 47775 goto RETURN_SWITCH 47776 __2074: 47777 ; 47778 47779 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47780 goto __2075 47781 } 47782 rrc = DMATCH_NOMATCH 47783 goto RETURN_SWITCH 47784 __2075: 47785 ; 47786 47787 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47788 goto __2076 47789 } 47790 47791 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)) { 47792 goto __2078 47793 } 47794 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47795 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47796 goto __2079 47797 } 47798 return -2 47799 __2079: 47800 ; 47801 __2078: 47802 ; 47803 47804 rrc = DMATCH_NOMATCH 47805 goto RETURN_SWITCH 47806 47807 goto __2077 47808 __2076: 47809 47810 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47811 if !(utf != 0 && fc >= 0xc0) { 47812 goto __2080 47813 } 47814 if !(fc&0x20 == Tuint32_t(0)) { 47815 goto __2081 47816 } 47817 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47818 goto __2082 47819 __2081: 47820 if !(fc&0x10 == Tuint32_t(0)) { 47821 goto __2083 47822 } 47823 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 47824 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47825 goto __2084 47826 __2083: 47827 if !(fc&0x08 == Tuint32_t(0)) { 47828 goto __2085 47829 } 47830 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 47831 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47832 goto __2086 47833 __2085: 47834 if !(fc&0x04 == Tuint32_t(0)) { 47835 goto __2087 47836 } 47837 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 47838 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47839 goto __2088 47840 __2087: 47841 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 47842 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47843 __2088: 47844 ; 47845 __2086: 47846 ; 47847 __2084: 47848 ; 47849 __2082: 47850 ; 47851 __2080: 47852 ; 47853 47854 (*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, 47855 utf, uintptr(0)) 47856 __2077: 47857 ; 47858 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47859 goto __2089 47860 } 47861 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)) { 47862 goto __2090 47863 } 47864 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47865 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47866 goto __2091 47867 } 47868 return -2 47869 __2091: 47870 ; 47871 __2090: 47872 ; 47873 __2089: 47874 ; 47875 47876 goto __2072 47877 __2072: 47878 goto __2071 47879 goto __2073 47880 __2073: 47881 ; 47882 goto __2070 47883 __2069: 47884 47885 // UTF mode for non-property testing character types. 47886 47887 if !(utf != 0) { 47888 goto __2092 47889 } 47890 47891 __2094: 47892 47893 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47894 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM219 47895 goto MATCH_RECURSE 47896 L_RM219: 47897 ; 47898 47899 if !(rrc != DMATCH_NOMATCH) { 47900 goto __2097 47901 } 47902 rrc = rrc 47903 goto RETURN_SWITCH 47904 __2097: 47905 ; 47906 47907 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47908 goto __2098 47909 } 47910 rrc = DMATCH_NOMATCH 47911 goto RETURN_SWITCH 47912 __2098: 47913 ; 47914 47915 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47916 goto __2099 47917 } 47918 47919 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)) { 47920 goto __2100 47921 } 47922 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47923 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47924 goto __2101 47925 } 47926 return -2 47927 __2101: 47928 ; 47929 __2100: 47930 ; 47931 47932 rrc = DMATCH_NOMATCH 47933 goto RETURN_SWITCH 47934 47935 __2099: 47936 ; 47937 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_ANY && func() int32 { 47938 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 47939 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+256, utf) != 0) 47940 } 47941 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 + 260))) && ((*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 + 260 + 1))))) 47942 }() != 0) { 47943 goto __2102 47944 } 47945 rrc = DMATCH_NOMATCH 47946 goto RETURN_SWITCH 47947 __2102: 47948 ; 47949 47950 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47951 if !(fc >= 0xc0) { 47952 goto __2103 47953 } 47954 if !(fc&0x20 == Tuint32_t(0)) { 47955 goto __2104 47956 } 47957 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47958 goto __2105 47959 __2104: 47960 if !(fc&0x10 == Tuint32_t(0)) { 47961 goto __2106 47962 } 47963 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 47964 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47965 goto __2107 47966 __2106: 47967 if !(fc&0x08 == Tuint32_t(0)) { 47968 goto __2108 47969 } 47970 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 47971 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47972 goto __2109 47973 __2108: 47974 if !(fc&0x04 == Tuint32_t(0)) { 47975 goto __2110 47976 } 47977 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 47978 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47979 goto __2111 47980 __2110: 47981 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 47982 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47983 __2111: 47984 ; 47985 __2109: 47986 ; 47987 __2107: 47988 ; 47989 __2105: 47990 ; 47991 __2103: 47992 ; 47993 47994 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 47995 case OP_ANY: 47996 goto __2113 47997 47998 case OP_ALLANY: 47999 goto __2114 48000 case OP_ANYBYTE: 48001 goto __2115 48002 48003 case OP_ANYNL: 48004 goto __2116 48005 48006 case OP_NOT_HSPACE: 48007 goto __2117 48008 48009 case OP_HSPACE: 48010 goto __2118 48011 48012 case OP_NOT_VSPACE: 48013 goto __2119 48014 48015 case OP_VSPACE: 48016 goto __2120 48017 48018 case OP_NOT_DIGIT: 48019 goto __2121 48020 48021 case OP_DIGIT: 48022 goto __2122 48023 48024 case OP_NOT_WHITESPACE: 48025 goto __2123 48026 48027 case OP_WHITESPACE: 48028 goto __2124 48029 48030 case OP_NOT_WORDCHAR: 48031 goto __2125 48032 48033 case OP_WORDCHAR: 48034 goto __2126 48035 48036 default: 48037 goto __2127 48038 } 48039 goto __2112 48040 48041 __2113: // This is the non-NL case 48042 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 + 260)))) { 48043 goto __2128 48044 } 48045 48046 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48047 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48048 goto __2129 48049 } 48050 return -2 48051 __2129: 48052 ; 48053 __2128: 48054 ; 48055 goto __2112 48056 48057 __2114: 48058 __2115: 48059 goto __2112 48060 48061 __2116: 48062 switch fc { 48063 default: 48064 goto __2131 48065 48066 case Tuint32_t('\015'): 48067 goto __2132 48068 48069 case Tuint32_t('\012'): 48070 goto __2133 48071 48072 case Tuint32_t('\013'): 48073 goto __2134 48074 case Tuint32_t('\014'): 48075 goto __2135 48076 case Tuint32_t(uint8('\x85')): 48077 goto __2136 48078 case Tuint32_t(0x2028): 48079 goto __2137 48080 case Tuint32_t(0x2029): 48081 goto __2138 48082 } 48083 goto __2130 48084 48085 __2131: 48086 rrc = DMATCH_NOMATCH 48087 goto RETURN_SWITCH 48088 48089 __2132: 48090 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') { 48091 goto __2139 48092 } 48093 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 48094 __2139: 48095 ; 48096 goto __2130 48097 48098 __2133: 48099 goto __2130 48100 48101 __2134: 48102 __2135: 48103 __2136: 48104 __2137: 48105 __2138: 48106 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 48107 goto __2140 48108 } 48109 rrc = DMATCH_NOMATCH 48110 goto RETURN_SWITCH 48111 __2140: 48112 ; 48113 48114 goto __2130 48115 __2130: 48116 ; 48117 goto __2112 48118 48119 __2117: 48120 switch fc { 48121 case Tuint32_t('\011'): 48122 goto __2142 48123 case Tuint32_t('\040'): 48124 goto __2143 48125 case Tuint32_t(uint8('\xa0')): 48126 goto __2144 48127 case Tuint32_t(0x1680): 48128 goto __2145 /* OGHAM SPACE MARK */ 48129 case Tuint32_t(0x180e): 48130 goto __2146 /* MONGOLIAN VOWEL SEPARATOR */ 48131 case Tuint32_t(0x2000): 48132 goto __2147 /* EN QUAD */ 48133 case Tuint32_t(0x2001): 48134 goto __2148 /* EM QUAD */ 48135 case Tuint32_t(0x2002): 48136 goto __2149 /* EN SPACE */ 48137 case Tuint32_t(0x2003): 48138 goto __2150 /* EM SPACE */ 48139 case Tuint32_t(0x2004): 48140 goto __2151 /* THREE-PER-EM SPACE */ 48141 case Tuint32_t(0x2005): 48142 goto __2152 /* FOUR-PER-EM SPACE */ 48143 case Tuint32_t(0x2006): 48144 goto __2153 /* SIX-PER-EM SPACE */ 48145 case Tuint32_t(0x2007): 48146 goto __2154 /* FIGURE SPACE */ 48147 case Tuint32_t(0x2008): 48148 goto __2155 /* PUNCTUATION SPACE */ 48149 case Tuint32_t(0x2009): 48150 goto __2156 /* THIN SPACE */ 48151 case Tuint32_t(0x200A): 48152 goto __2157 /* HAIR SPACE */ 48153 case Tuint32_t(0x202f): 48154 goto __2158 /* NARROW NO-BREAK SPACE */ 48155 case Tuint32_t(0x205f): 48156 goto __2159 /* MEDIUM MATHEMATICAL SPACE */ 48157 case Tuint32_t(0x3000): 48158 goto __2160 48159 default: 48160 goto __2161 48161 } 48162 goto __2141 48163 48164 __2142: 48165 __2143: 48166 __2144: 48167 __2145: /* OGHAM SPACE MARK */ 48168 __2146: /* MONGOLIAN VOWEL SEPARATOR */ 48169 __2147: /* EN QUAD */ 48170 __2148: /* EM QUAD */ 48171 __2149: /* EN SPACE */ 48172 __2150: /* EM SPACE */ 48173 __2151: /* THREE-PER-EM SPACE */ 48174 __2152: /* FOUR-PER-EM SPACE */ 48175 __2153: /* SIX-PER-EM SPACE */ 48176 __2154: /* FIGURE SPACE */ 48177 __2155: /* PUNCTUATION SPACE */ 48178 __2156: /* THIN SPACE */ 48179 __2157: /* HAIR SPACE */ 48180 __2158: /* NARROW NO-BREAK SPACE */ 48181 __2159: /* MEDIUM MATHEMATICAL SPACE */ 48182 __2160: 48183 rrc = DMATCH_NOMATCH 48184 goto RETURN_SWITCH 48185 48186 __2161: 48187 goto __2141 48188 __2141: 48189 ; 48190 goto __2112 48191 48192 __2118: 48193 switch fc { 48194 case Tuint32_t('\011'): 48195 goto __2163 48196 case Tuint32_t('\040'): 48197 goto __2164 48198 case Tuint32_t(uint8('\xa0')): 48199 goto __2165 48200 case Tuint32_t(0x1680): 48201 goto __2166 /* OGHAM SPACE MARK */ 48202 case Tuint32_t(0x180e): 48203 goto __2167 /* MONGOLIAN VOWEL SEPARATOR */ 48204 case Tuint32_t(0x2000): 48205 goto __2168 /* EN QUAD */ 48206 case Tuint32_t(0x2001): 48207 goto __2169 /* EM QUAD */ 48208 case Tuint32_t(0x2002): 48209 goto __2170 /* EN SPACE */ 48210 case Tuint32_t(0x2003): 48211 goto __2171 /* EM SPACE */ 48212 case Tuint32_t(0x2004): 48213 goto __2172 /* THREE-PER-EM SPACE */ 48214 case Tuint32_t(0x2005): 48215 goto __2173 /* FOUR-PER-EM SPACE */ 48216 case Tuint32_t(0x2006): 48217 goto __2174 /* SIX-PER-EM SPACE */ 48218 case Tuint32_t(0x2007): 48219 goto __2175 /* FIGURE SPACE */ 48220 case Tuint32_t(0x2008): 48221 goto __2176 /* PUNCTUATION SPACE */ 48222 case Tuint32_t(0x2009): 48223 goto __2177 /* THIN SPACE */ 48224 case Tuint32_t(0x200A): 48225 goto __2178 /* HAIR SPACE */ 48226 case Tuint32_t(0x202f): 48227 goto __2179 /* NARROW NO-BREAK SPACE */ 48228 case Tuint32_t(0x205f): 48229 goto __2180 /* MEDIUM MATHEMATICAL SPACE */ 48230 case Tuint32_t(0x3000): 48231 goto __2181 48232 default: 48233 goto __2182 48234 } 48235 goto __2162 48236 48237 __2163: 48238 __2164: 48239 __2165: 48240 __2166: /* OGHAM SPACE MARK */ 48241 __2167: /* MONGOLIAN VOWEL SEPARATOR */ 48242 __2168: /* EN QUAD */ 48243 __2169: /* EM QUAD */ 48244 __2170: /* EN SPACE */ 48245 __2171: /* EM SPACE */ 48246 __2172: /* THREE-PER-EM SPACE */ 48247 __2173: /* FOUR-PER-EM SPACE */ 48248 __2174: /* SIX-PER-EM SPACE */ 48249 __2175: /* FIGURE SPACE */ 48250 __2176: /* PUNCTUATION SPACE */ 48251 __2177: /* THIN SPACE */ 48252 __2178: /* HAIR SPACE */ 48253 __2179: /* NARROW NO-BREAK SPACE */ 48254 __2180: /* MEDIUM MATHEMATICAL SPACE */ 48255 __2181: 48256 goto __2162 48257 __2182: 48258 rrc = DMATCH_NOMATCH 48259 goto RETURN_SWITCH 48260 48261 __2162: 48262 ; 48263 goto __2112 48264 48265 __2119: 48266 switch fc { 48267 case Tuint32_t('\012'): 48268 goto __2184 48269 case Tuint32_t('\013'): 48270 goto __2185 48271 case Tuint32_t('\014'): 48272 goto __2186 48273 case Tuint32_t('\015'): 48274 goto __2187 48275 case Tuint32_t(uint8('\x85')): 48276 goto __2188 48277 case Tuint32_t(0x2028): 48278 goto __2189 /* LINE SEPARATOR */ 48279 case Tuint32_t(0x2029): 48280 goto __2190 48281 default: 48282 goto __2191 48283 } 48284 goto __2183 48285 48286 __2184: 48287 __2185: 48288 __2186: 48289 __2187: 48290 __2188: 48291 __2189: /* LINE SEPARATOR */ 48292 __2190: 48293 rrc = DMATCH_NOMATCH 48294 goto RETURN_SWITCH 48295 48296 __2191: 48297 goto __2183 48298 __2183: 48299 ; 48300 goto __2112 48301 48302 __2120: 48303 switch fc { 48304 case Tuint32_t('\012'): 48305 goto __2193 48306 case Tuint32_t('\013'): 48307 goto __2194 48308 case Tuint32_t('\014'): 48309 goto __2195 48310 case Tuint32_t('\015'): 48311 goto __2196 48312 case Tuint32_t(uint8('\x85')): 48313 goto __2197 48314 case Tuint32_t(0x2028): 48315 goto __2198 /* LINE SEPARATOR */ 48316 case Tuint32_t(0x2029): 48317 goto __2199 48318 default: 48319 goto __2200 48320 } 48321 goto __2192 48322 48323 __2193: 48324 __2194: 48325 __2195: 48326 __2196: 48327 __2197: 48328 __2198: /* LINE SEPARATOR */ 48329 __2199: 48330 goto __2192 48331 __2200: 48332 rrc = DMATCH_NOMATCH 48333 goto RETURN_SWITCH 48334 48335 __2192: 48336 ; 48337 goto __2112 48338 48339 __2121: 48340 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 48341 goto __2201 48342 } 48343 rrc = DMATCH_NOMATCH 48344 goto RETURN_SWITCH 48345 __2201: 48346 ; 48347 48348 goto __2112 48349 48350 __2122: 48351 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 48352 goto __2202 48353 } 48354 rrc = DMATCH_NOMATCH 48355 goto RETURN_SWITCH 48356 __2202: 48357 ; 48358 48359 goto __2112 48360 48361 __2123: 48362 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 48363 goto __2203 48364 } 48365 rrc = DMATCH_NOMATCH 48366 goto RETURN_SWITCH 48367 __2203: 48368 ; 48369 48370 goto __2112 48371 48372 __2124: 48373 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 48374 goto __2204 48375 } 48376 rrc = DMATCH_NOMATCH 48377 goto RETURN_SWITCH 48378 __2204: 48379 ; 48380 48381 goto __2112 48382 48383 __2125: 48384 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 48385 goto __2205 48386 } 48387 rrc = DMATCH_NOMATCH 48388 goto RETURN_SWITCH 48389 __2205: 48390 ; 48391 48392 goto __2112 48393 48394 __2126: 48395 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 48396 goto __2206 48397 } 48398 rrc = DMATCH_NOMATCH 48399 goto RETURN_SWITCH 48400 __2206: 48401 ; 48402 48403 goto __2112 48404 48405 __2127: 48406 return -44 48407 __2112: 48408 ; 48409 goto __2095 48410 __2095: 48411 goto __2094 48412 goto __2096 48413 __2096: 48414 ; 48415 goto __2093 48416 __2092: 48417 48418 /* Not UTF mode */ 48419 48420 __2207: 48421 48422 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 48423 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM33 48424 goto MATCH_RECURSE 48425 L_RM33: 48426 ; 48427 48428 if !(rrc != DMATCH_NOMATCH) { 48429 goto __2210 48430 } 48431 rrc = rrc 48432 goto RETURN_SWITCH 48433 __2210: 48434 ; 48435 48436 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 48437 goto __2211 48438 } 48439 rrc = DMATCH_NOMATCH 48440 goto RETURN_SWITCH 48441 __2211: 48442 ; 48443 48444 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 48445 goto __2212 48446 } 48447 48448 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)) { 48449 goto __2213 48450 } 48451 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48452 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48453 goto __2214 48454 } 48455 return -2 48456 __2214: 48457 ; 48458 __2213: 48459 ; 48460 48461 rrc = DMATCH_NOMATCH 48462 goto RETURN_SWITCH 48463 48464 __2212: 48465 ; 48466 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_ANY && func() int32 { 48467 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 48468 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+256, utf) != 0) 48469 } 48470 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 + 260))) && ((*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 + 260 + 1))))) 48471 }() != 0) { 48472 goto __2215 48473 } 48474 rrc = DMATCH_NOMATCH 48475 goto RETURN_SWITCH 48476 __2215: 48477 ; 48478 48479 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 48480 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 48481 case OP_ANY: 48482 goto __2217 48483 48484 case OP_ALLANY: 48485 goto __2218 48486 case OP_ANYBYTE: 48487 goto __2219 48488 48489 case OP_ANYNL: 48490 goto __2220 48491 48492 case OP_NOT_HSPACE: 48493 goto __2221 48494 48495 case OP_HSPACE: 48496 goto __2222 48497 48498 case OP_NOT_VSPACE: 48499 goto __2223 48500 48501 case OP_VSPACE: 48502 goto __2224 48503 48504 case OP_NOT_DIGIT: 48505 goto __2225 48506 48507 case OP_DIGIT: 48508 goto __2226 48509 48510 case OP_NOT_WHITESPACE: 48511 goto __2227 48512 48513 case OP_WHITESPACE: 48514 goto __2228 48515 48516 case OP_NOT_WORDCHAR: 48517 goto __2229 48518 48519 case OP_WORDCHAR: 48520 goto __2230 48521 48522 default: 48523 goto __2231 48524 } 48525 goto __2216 48526 48527 __2217: // This is the non-NL case 48528 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 + 260)))) { 48529 goto __2232 48530 } 48531 48532 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48533 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48534 goto __2233 48535 } 48536 return -2 48537 __2233: 48538 ; 48539 __2232: 48540 ; 48541 goto __2216 48542 48543 __2218: 48544 __2219: 48545 goto __2216 48546 48547 __2220: 48548 switch fc { 48549 default: 48550 goto __2235 48551 48552 case Tuint32_t('\015'): 48553 goto __2236 48554 48555 case Tuint32_t('\012'): 48556 goto __2237 48557 48558 case Tuint32_t('\013'): 48559 goto __2238 48560 case Tuint32_t('\014'): 48561 goto __2239 48562 case Tuint32_t(uint8('\x85')): 48563 goto __2240 48564 } 48565 goto __2234 48566 48567 __2235: 48568 rrc = DMATCH_NOMATCH 48569 goto RETURN_SWITCH 48570 48571 __2236: 48572 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') { 48573 goto __2241 48574 } 48575 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 48576 __2241: 48577 ; 48578 goto __2234 48579 48580 __2237: 48581 goto __2234 48582 48583 __2238: 48584 __2239: 48585 __2240: 48586 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 48587 goto __2242 48588 } 48589 rrc = DMATCH_NOMATCH 48590 goto RETURN_SWITCH 48591 __2242: 48592 ; 48593 48594 goto __2234 48595 __2234: 48596 ; 48597 goto __2216 48598 48599 __2221: 48600 switch fc { 48601 default: 48602 goto __2244 48603 case Tuint32_t('\011'): 48604 goto __2245 48605 case Tuint32_t('\040'): 48606 goto __2246 48607 case Tuint32_t(uint8('\xa0')): 48608 goto __2247 48609 } 48610 goto __2243 48611 48612 __2244: 48613 goto __2243 48614 __2245: 48615 __2246: 48616 __2247: 48617 rrc = DMATCH_NOMATCH 48618 goto RETURN_SWITCH 48619 48620 __2243: 48621 ; 48622 goto __2216 48623 48624 __2222: 48625 switch fc { 48626 default: 48627 goto __2249 48628 case Tuint32_t('\011'): 48629 goto __2250 48630 case Tuint32_t('\040'): 48631 goto __2251 48632 case Tuint32_t(uint8('\xa0')): 48633 goto __2252 48634 } 48635 goto __2248 48636 48637 __2249: 48638 rrc = DMATCH_NOMATCH 48639 goto RETURN_SWITCH 48640 48641 __2250: 48642 __2251: 48643 __2252: 48644 goto __2248 48645 __2248: 48646 ; 48647 goto __2216 48648 48649 __2223: 48650 switch fc { 48651 default: 48652 goto __2254 48653 case Tuint32_t('\012'): 48654 goto __2255 48655 case Tuint32_t('\013'): 48656 goto __2256 48657 case Tuint32_t('\014'): 48658 goto __2257 48659 case Tuint32_t('\015'): 48660 goto __2258 48661 case Tuint32_t(uint8('\x85')): 48662 goto __2259 48663 } 48664 goto __2253 48665 48666 __2254: 48667 goto __2253 48668 __2255: 48669 __2256: 48670 __2257: 48671 __2258: 48672 __2259: 48673 rrc = DMATCH_NOMATCH 48674 goto RETURN_SWITCH 48675 48676 __2253: 48677 ; 48678 goto __2216 48679 48680 __2224: 48681 switch fc { 48682 default: 48683 goto __2261 48684 case Tuint32_t('\012'): 48685 goto __2262 48686 case Tuint32_t('\013'): 48687 goto __2263 48688 case Tuint32_t('\014'): 48689 goto __2264 48690 case Tuint32_t('\015'): 48691 goto __2265 48692 case Tuint32_t(uint8('\x85')): 48693 goto __2266 48694 } 48695 goto __2260 48696 48697 __2261: 48698 rrc = DMATCH_NOMATCH 48699 goto RETURN_SWITCH 48700 48701 __2262: 48702 __2263: 48703 __2264: 48704 __2265: 48705 __2266: 48706 goto __2260 48707 __2260: 48708 ; 48709 goto __2216 48710 48711 __2225: 48712 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 48713 goto __2267 48714 } 48715 rrc = DMATCH_NOMATCH 48716 goto RETURN_SWITCH 48717 __2267: 48718 ; 48719 48720 goto __2216 48721 48722 __2226: 48723 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 48724 goto __2268 48725 } 48726 rrc = DMATCH_NOMATCH 48727 goto RETURN_SWITCH 48728 __2268: 48729 ; 48730 48731 goto __2216 48732 48733 __2227: 48734 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 48735 goto __2269 48736 } 48737 rrc = DMATCH_NOMATCH 48738 goto RETURN_SWITCH 48739 __2269: 48740 ; 48741 48742 goto __2216 48743 48744 __2228: 48745 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 48746 goto __2270 48747 } 48748 rrc = DMATCH_NOMATCH 48749 goto RETURN_SWITCH 48750 __2270: 48751 ; 48752 48753 goto __2216 48754 48755 __2229: 48756 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 48757 goto __2271 48758 } 48759 rrc = DMATCH_NOMATCH 48760 goto RETURN_SWITCH 48761 __2271: 48762 ; 48763 48764 goto __2216 48765 48766 __2230: 48767 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 48768 goto __2272 48769 } 48770 rrc = DMATCH_NOMATCH 48771 goto RETURN_SWITCH 48772 __2272: 48773 ; 48774 48775 goto __2216 48776 48777 __2231: 48778 return -44 48779 __2216: 48780 ; 48781 goto __2208 48782 __2208: 48783 goto __2207 48784 goto __2209 48785 __2209: 48786 ; 48787 __2093: 48788 ; 48789 __2070: 48790 ; 48791 __1783: 48792 ; 48793 // Control never gets here 48794 goto __1781 48795 __1780: 48796 48797 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr // Remember where we started 48798 48799 if !(proptype >= 0) { 48800 goto __2273 48801 } 48802 notmatch2 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) 48803 switch proptype { 48804 case DPT_ANY: 48805 goto __2276 48806 48807 case DPT_LAMP: 48808 goto __2277 48809 48810 case DPT_GC: 48811 goto __2278 48812 48813 case DPT_PC: 48814 goto __2279 48815 48816 case DPT_SC: 48817 goto __2280 48818 48819 case DPT_SCX: 48820 goto __2281 48821 48822 case DPT_ALNUM: 48823 goto __2282 48824 48825 // Perl space used to exclude VT, but from Perl 5.18 it is included, 48826 // which means that Perl space and POSIX space are now identical. PCRE 48827 // was changed at release 8.34. 48828 48829 case DPT_SPACE: 48830 goto __2283 // Perl space 48831 case DPT_PXSPACE: 48832 goto __2284 48833 48834 case DPT_WORD: 48835 goto __2285 48836 48837 case DPT_CLIST: 48838 goto __2286 48839 48840 case DPT_UCNC: 48841 goto __2287 48842 48843 case DPT_BIDICL: 48844 goto __2288 48845 48846 case DPT_BOOL: 48847 goto __2289 48848 48849 default: 48850 goto __2290 48851 } 48852 goto __2275 48853 48854 __2276: 48855 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 48856 __2291: 48857 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 48858 goto __2293 48859 } 48860 48861 len4 = 1 48862 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 48863 goto __2294 48864 } 48865 48866 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)) { 48867 goto __2295 48868 } 48869 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48870 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48871 goto __2296 48872 } 48873 return -2 48874 __2296: 48875 ; 48876 __2295: 48877 ; 48878 48879 goto __2293 48880 __2294: 48881 ; 48882 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 48883 if !(utf != 0 && fc >= 0xc0) { 48884 goto __2297 48885 } 48886 if !(fc&0x20 == Tuint32_t(0)) { 48887 goto __2298 48888 } 48889 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 48890 len4++ 48891 goto __2299 48892 __2298: 48893 if !(fc&0x10 == Tuint32_t(0)) { 48894 goto __2300 48895 } 48896 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 48897 len4 = len4 + 2 48898 goto __2301 48899 __2300: 48900 if !(fc&0x08 == Tuint32_t(0)) { 48901 goto __2302 48902 } 48903 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 48904 len4 = len4 + 3 48905 goto __2303 48906 __2302: 48907 if !(fc&0x04 == Tuint32_t(0)) { 48908 goto __2304 48909 } 48910 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 48911 len4 = len4 + 4 48912 goto __2305 48913 __2304: 48914 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 48915 len4 = len4 + 5 48916 __2305: 48917 ; 48918 __2303: 48919 ; 48920 __2301: 48921 ; 48922 __2299: 48923 ; 48924 __2297: 48925 ; 48926 48927 if !(notmatch2 != 0) { 48928 goto __2306 48929 } 48930 goto __2293 48931 __2306: 48932 ; 48933 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len4) 48934 goto __2292 48935 __2292: 48936 i++ 48937 goto __2291 48938 goto __2293 48939 __2293: 48940 ; 48941 goto __2275 48942 48943 __2277: 48944 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 48945 __2307: 48946 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 48947 goto __2309 48948 } 48949 48950 len5 = 1 48951 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 48952 goto __2310 48953 } 48954 48955 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)) { 48956 goto __2311 48957 } 48958 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48959 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48960 goto __2312 48961 } 48962 return -2 48963 __2312: 48964 ; 48965 __2311: 48966 ; 48967 48968 goto __2309 48969 __2310: 48970 ; 48971 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 48972 if !(utf != 0 && fc >= 0xc0) { 48973 goto __2313 48974 } 48975 if !(fc&0x20 == Tuint32_t(0)) { 48976 goto __2314 48977 } 48978 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 48979 len5++ 48980 goto __2315 48981 __2314: 48982 if !(fc&0x10 == Tuint32_t(0)) { 48983 goto __2316 48984 } 48985 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 48986 len5 = len5 + 2 48987 goto __2317 48988 __2316: 48989 if !(fc&0x08 == Tuint32_t(0)) { 48990 goto __2318 48991 } 48992 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 48993 len5 = len5 + 3 48994 goto __2319 48995 __2318: 48996 if !(fc&0x04 == Tuint32_t(0)) { 48997 goto __2320 48998 } 48999 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 49000 len5 = len5 + 4 49001 goto __2321 49002 __2320: 49003 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 49004 len5 = len5 + 5 49005 __2321: 49006 ; 49007 __2319: 49008 ; 49009 __2317: 49010 ; 49011 __2315: 49012 ; 49013 __2313: 49014 ; 49015 49016 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) 49017 if !(libc.Bool32(chartype2 == ucp_Lu || chartype2 == ucp_Ll || chartype2 == ucp_Lt) == notmatch2) { 49018 goto __2322 49019 } 49020 goto __2309 49021 __2322: 49022 ; 49023 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len5) 49024 goto __2308 49025 __2308: 49026 i++ 49027 goto __2307 49028 goto __2309 49029 __2309: 49030 ; 49031 goto __2275 49032 49033 __2278: 49034 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49035 __2323: 49036 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49037 goto __2325 49038 } 49039 49040 len6 = 1 49041 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49042 goto __2326 49043 } 49044 49045 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)) { 49046 goto __2327 49047 } 49048 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49049 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49050 goto __2328 49051 } 49052 return -2 49053 __2328: 49054 ; 49055 __2327: 49056 ; 49057 49058 goto __2325 49059 __2326: 49060 ; 49061 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49062 if !(utf != 0 && fc >= 0xc0) { 49063 goto __2329 49064 } 49065 if !(fc&0x20 == Tuint32_t(0)) { 49066 goto __2330 49067 } 49068 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49069 len6++ 49070 goto __2331 49071 __2330: 49072 if !(fc&0x10 == Tuint32_t(0)) { 49073 goto __2332 49074 } 49075 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 49076 len6 = len6 + 2 49077 goto __2333 49078 __2332: 49079 if !(fc&0x08 == Tuint32_t(0)) { 49080 goto __2334 49081 } 49082 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 49083 len6 = len6 + 3 49084 goto __2335 49085 __2334: 49086 if !(fc&0x04 == Tuint32_t(0)) { 49087 goto __2336 49088 } 49089 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 49090 len6 = len6 + 4 49091 goto __2337 49092 __2336: 49093 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 49094 len6 = len6 + 5 49095 __2337: 49096 ; 49097 __2335: 49098 ; 49099 __2333: 49100 ; 49101 __2331: 49102 ; 49103 __2329: 49104 ; 49105 49106 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 + 56 + 3*4))) == notmatch2) { 49107 goto __2338 49108 } 49109 goto __2325 49110 __2338: 49111 ; 49112 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len6) 49113 goto __2324 49114 __2324: 49115 i++ 49116 goto __2323 49117 goto __2325 49118 __2325: 49119 ; 49120 goto __2275 49121 49122 __2279: 49123 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49124 __2339: 49125 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49126 goto __2341 49127 } 49128 49129 len7 = 1 49130 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49131 goto __2342 49132 } 49133 49134 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)) { 49135 goto __2343 49136 } 49137 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49138 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49139 goto __2344 49140 } 49141 return -2 49142 __2344: 49143 ; 49144 __2343: 49145 ; 49146 49147 goto __2341 49148 __2342: 49149 ; 49150 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49151 if !(utf != 0 && fc >= 0xc0) { 49152 goto __2345 49153 } 49154 if !(fc&0x20 == Tuint32_t(0)) { 49155 goto __2346 49156 } 49157 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49158 len7++ 49159 goto __2347 49160 __2346: 49161 if !(fc&0x10 == Tuint32_t(0)) { 49162 goto __2348 49163 } 49164 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 49165 len7 = len7 + 2 49166 goto __2349 49167 __2348: 49168 if !(fc&0x08 == Tuint32_t(0)) { 49169 goto __2350 49170 } 49171 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 49172 len7 = len7 + 3 49173 goto __2351 49174 __2350: 49175 if !(fc&0x04 == Tuint32_t(0)) { 49176 goto __2352 49177 } 49178 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 49179 len7 = len7 + 4 49180 goto __2353 49181 __2352: 49182 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 49183 len7 = len7 + 5 49184 __2353: 49185 ; 49186 __2351: 49187 ; 49188 __2349: 49189 ; 49190 __2347: 49191 ; 49192 __2345: 49193 ; 49194 49195 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 + 56 + 3*4))) == notmatch2) { 49196 goto __2354 49197 } 49198 goto __2341 49199 __2354: 49200 ; 49201 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len7) 49202 goto __2340 49203 __2340: 49204 i++ 49205 goto __2339 49206 goto __2341 49207 __2341: 49208 ; 49209 goto __2275 49210 49211 __2280: 49212 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49213 __2355: 49214 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49215 goto __2357 49216 } 49217 49218 len8 = 1 49219 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49220 goto __2358 49221 } 49222 49223 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)) { 49224 goto __2359 49225 } 49226 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49227 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49228 goto __2360 49229 } 49230 return -2 49231 __2360: 49232 ; 49233 __2359: 49234 ; 49235 49236 goto __2357 49237 __2358: 49238 ; 49239 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49240 if !(utf != 0 && fc >= 0xc0) { 49241 goto __2361 49242 } 49243 if !(fc&0x20 == Tuint32_t(0)) { 49244 goto __2362 49245 } 49246 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49247 len8++ 49248 goto __2363 49249 __2362: 49250 if !(fc&0x10 == Tuint32_t(0)) { 49251 goto __2364 49252 } 49253 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 49254 len8 = len8 + 2 49255 goto __2365 49256 __2364: 49257 if !(fc&0x08 == Tuint32_t(0)) { 49258 goto __2366 49259 } 49260 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 49261 len8 = len8 + 3 49262 goto __2367 49263 __2366: 49264 if !(fc&0x04 == Tuint32_t(0)) { 49265 goto __2368 49266 } 49267 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 49268 len8 = len8 + 4 49269 goto __2369 49270 __2368: 49271 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 49272 len8 = len8 + 5 49273 __2369: 49274 ; 49275 __2367: 49276 ; 49277 __2365: 49278 ; 49279 __2363: 49280 ; 49281 __2361: 49282 ; 49283 49284 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 + 56 + 3*4))) == notmatch2) { 49285 goto __2370 49286 } 49287 goto __2357 49288 __2370: 49289 ; 49290 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len8) 49291 goto __2356 49292 __2356: 49293 i++ 49294 goto __2355 49295 goto __2357 49296 __2357: 49297 ; 49298 goto __2275 49299 49300 __2281: 49301 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49302 __2371: 49303 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49304 goto __2373 49305 } 49306 49307 len9 = 1 49308 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49309 goto __2374 49310 } 49311 49312 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)) { 49313 goto __2375 49314 } 49315 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49316 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49317 goto __2376 49318 } 49319 return -2 49320 __2376: 49321 ; 49322 __2375: 49323 ; 49324 49325 goto __2373 49326 __2374: 49327 ; 49328 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49329 if !(utf != 0 && fc >= 0xc0) { 49330 goto __2377 49331 } 49332 if !(fc&0x20 == Tuint32_t(0)) { 49333 goto __2378 49334 } 49335 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49336 len9++ 49337 goto __2379 49338 __2378: 49339 if !(fc&0x10 == Tuint32_t(0)) { 49340 goto __2380 49341 } 49342 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 49343 len9 = len9 + 2 49344 goto __2381 49345 __2380: 49346 if !(fc&0x08 == Tuint32_t(0)) { 49347 goto __2382 49348 } 49349 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 49350 len9 = len9 + 3 49351 goto __2383 49352 __2382: 49353 if !(fc&0x04 == Tuint32_t(0)) { 49354 goto __2384 49355 } 49356 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 49357 len9 = len9 + 4 49358 goto __2385 49359 __2384: 49360 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 49361 len9 = len9 + 5 49362 __2385: 49363 ; 49364 __2383: 49365 ; 49366 __2381: 49367 ; 49368 __2379: 49369 ; 49370 __2377: 49371 ; 49372 49373 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 49374 ok6 = libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(prop5)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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 + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 49375 if !(ok6 == notmatch2) { 49376 goto __2386 49377 } 49378 goto __2373 49379 __2386: 49380 ; 49381 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len9) 49382 goto __2372 49383 __2372: 49384 i++ 49385 goto __2371 49386 goto __2373 49387 __2373: 49388 ; 49389 goto __2275 49390 49391 __2282: 49392 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49393 __2387: 49394 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49395 goto __2389 49396 } 49397 49398 len10 = 1 49399 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49400 goto __2390 49401 } 49402 49403 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)) { 49404 goto __2391 49405 } 49406 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49407 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49408 goto __2392 49409 } 49410 return -2 49411 __2392: 49412 ; 49413 __2391: 49414 ; 49415 49416 goto __2389 49417 __2390: 49418 ; 49419 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49420 if !(utf != 0 && fc >= 0xc0) { 49421 goto __2393 49422 } 49423 if !(fc&0x20 == Tuint32_t(0)) { 49424 goto __2394 49425 } 49426 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49427 len10++ 49428 goto __2395 49429 __2394: 49430 if !(fc&0x10 == Tuint32_t(0)) { 49431 goto __2396 49432 } 49433 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 49434 len10 = len10 + 2 49435 goto __2397 49436 __2396: 49437 if !(fc&0x08 == Tuint32_t(0)) { 49438 goto __2398 49439 } 49440 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 49441 len10 = len10 + 3 49442 goto __2399 49443 __2398: 49444 if !(fc&0x04 == Tuint32_t(0)) { 49445 goto __2400 49446 } 49447 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 49448 len10 = len10 + 4 49449 goto __2401 49450 __2400: 49451 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 49452 len10 = len10 + 5 49453 __2401: 49454 ; 49455 __2399: 49456 ; 49457 __2397: 49458 ; 49459 __2395: 49460 ; 49461 __2393: 49462 ; 49463 49464 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]) 49465 if !(libc.Bool32(category4 == ucp_L || category4 == ucp_N) == notmatch2) { 49466 goto __2402 49467 } 49468 goto __2389 49469 __2402: 49470 ; 49471 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len10) 49472 goto __2388 49473 __2388: 49474 i++ 49475 goto __2387 49476 goto __2389 49477 __2389: 49478 ; 49479 goto __2275 49480 49481 // Perl space used to exclude VT, but from Perl 5.18 it is included, 49482 // which means that Perl space and POSIX space are now identical. PCRE 49483 // was changed at release 8.34. 49484 49485 __2283: // Perl space 49486 __2284: // POSIX space 49487 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49488 __2403: 49489 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49490 goto __2405 49491 } 49492 49493 len11 = 1 49494 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49495 goto __2406 49496 } 49497 49498 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)) { 49499 goto __2407 49500 } 49501 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49502 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49503 goto __2408 49504 } 49505 return -2 49506 __2408: 49507 ; 49508 __2407: 49509 ; 49510 49511 goto __2405 49512 __2406: 49513 ; 49514 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49515 if !(utf != 0 && fc >= 0xc0) { 49516 goto __2409 49517 } 49518 if !(fc&0x20 == Tuint32_t(0)) { 49519 goto __2410 49520 } 49521 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49522 len11++ 49523 goto __2411 49524 __2410: 49525 if !(fc&0x10 == Tuint32_t(0)) { 49526 goto __2412 49527 } 49528 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 49529 len11 = len11 + 2 49530 goto __2413 49531 __2412: 49532 if !(fc&0x08 == Tuint32_t(0)) { 49533 goto __2414 49534 } 49535 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 49536 len11 = len11 + 3 49537 goto __2415 49538 __2414: 49539 if !(fc&0x04 == Tuint32_t(0)) { 49540 goto __2416 49541 } 49542 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 49543 len11 = len11 + 4 49544 goto __2417 49545 __2416: 49546 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 49547 len11 = len11 + 5 49548 __2417: 49549 ; 49550 __2415: 49551 ; 49552 __2413: 49553 ; 49554 __2411: 49555 ; 49556 __2409: 49557 ; 49558 49559 switch fc { 49560 case Tuint32_t('\011'): 49561 goto __2419 49562 case Tuint32_t('\040'): 49563 goto __2420 49564 case Tuint32_t(uint8('\xa0')): 49565 goto __2421 49566 case Tuint32_t(0x1680): 49567 goto __2422 /* OGHAM SPACE MARK */ 49568 case Tuint32_t(0x180e): 49569 goto __2423 /* MONGOLIAN VOWEL SEPARATOR */ 49570 case Tuint32_t(0x2000): 49571 goto __2424 /* EN QUAD */ 49572 case Tuint32_t(0x2001): 49573 goto __2425 /* EM QUAD */ 49574 case Tuint32_t(0x2002): 49575 goto __2426 /* EN SPACE */ 49576 case Tuint32_t(0x2003): 49577 goto __2427 /* EM SPACE */ 49578 case Tuint32_t(0x2004): 49579 goto __2428 /* THREE-PER-EM SPACE */ 49580 case Tuint32_t(0x2005): 49581 goto __2429 /* FOUR-PER-EM SPACE */ 49582 case Tuint32_t(0x2006): 49583 goto __2430 /* SIX-PER-EM SPACE */ 49584 case Tuint32_t(0x2007): 49585 goto __2431 /* FIGURE SPACE */ 49586 case Tuint32_t(0x2008): 49587 goto __2432 /* PUNCTUATION SPACE */ 49588 case Tuint32_t(0x2009): 49589 goto __2433 /* THIN SPACE */ 49590 case Tuint32_t(0x200A): 49591 goto __2434 /* HAIR SPACE */ 49592 case Tuint32_t(0x202f): 49593 goto __2435 /* NARROW NO-BREAK SPACE */ 49594 case Tuint32_t(0x205f): 49595 goto __2436 /* MEDIUM MATHEMATICAL SPACE */ 49596 case Tuint32_t(0x3000): 49597 goto __2437 49598 case Tuint32_t('\012'): 49599 goto __2438 49600 case Tuint32_t('\013'): 49601 goto __2439 49602 case Tuint32_t('\014'): 49603 goto __2440 49604 case Tuint32_t('\015'): 49605 goto __2441 49606 case Tuint32_t(uint8('\x85')): 49607 goto __2442 49608 case Tuint32_t(0x2028): 49609 goto __2443 /* LINE SEPARATOR */ 49610 case Tuint32_t(0x2029): 49611 goto __2444 49612 49613 default: 49614 goto __2445 49615 } 49616 goto __2418 49617 49618 __2419: 49619 __2420: 49620 __2421: 49621 __2422: /* OGHAM SPACE MARK */ 49622 __2423: /* MONGOLIAN VOWEL SEPARATOR */ 49623 __2424: /* EN QUAD */ 49624 __2425: /* EM QUAD */ 49625 __2426: /* EN SPACE */ 49626 __2427: /* EM SPACE */ 49627 __2428: /* THREE-PER-EM SPACE */ 49628 __2429: /* FOUR-PER-EM SPACE */ 49629 __2430: /* SIX-PER-EM SPACE */ 49630 __2431: /* FIGURE SPACE */ 49631 __2432: /* PUNCTUATION SPACE */ 49632 __2433: /* THIN SPACE */ 49633 __2434: /* HAIR SPACE */ 49634 __2435: /* NARROW NO-BREAK SPACE */ 49635 __2436: /* MEDIUM MATHEMATICAL SPACE */ 49636 __2437: 49637 __2438: 49638 __2439: 49639 __2440: 49640 __2441: 49641 __2442: 49642 __2443: /* LINE SEPARATOR */ 49643 __2444: 49644 if !(notmatch2 != 0) { 49645 goto __2446 49646 } 49647 goto ENDLOOP99 49648 __2446: 49649 ; // Break the loop 49650 goto __2418 49651 49652 __2445: 49653 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) { 49654 goto __2447 49655 } 49656 goto ENDLOOP99 49657 __2447: 49658 ; // Break the loop 49659 goto __2418 49660 __2418: 49661 ; 49662 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len11) 49663 goto __2404 49664 __2404: 49665 i++ 49666 goto __2403 49667 goto __2405 49668 __2405: 49669 ; 49670 ENDLOOP99: 49671 goto __2275 49672 49673 __2285: 49674 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49675 __2448: 49676 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49677 goto __2450 49678 } 49679 49680 len12 = 1 49681 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49682 goto __2451 49683 } 49684 49685 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)) { 49686 goto __2452 49687 } 49688 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49689 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49690 goto __2453 49691 } 49692 return -2 49693 __2453: 49694 ; 49695 __2452: 49696 ; 49697 49698 goto __2450 49699 __2451: 49700 ; 49701 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49702 if !(utf != 0 && fc >= 0xc0) { 49703 goto __2454 49704 } 49705 if !(fc&0x20 == Tuint32_t(0)) { 49706 goto __2455 49707 } 49708 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49709 len12++ 49710 goto __2456 49711 __2455: 49712 if !(fc&0x10 == Tuint32_t(0)) { 49713 goto __2457 49714 } 49715 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 49716 len12 = len12 + 2 49717 goto __2458 49718 __2457: 49719 if !(fc&0x08 == Tuint32_t(0)) { 49720 goto __2459 49721 } 49722 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 49723 len12 = len12 + 3 49724 goto __2460 49725 __2459: 49726 if !(fc&0x04 == Tuint32_t(0)) { 49727 goto __2461 49728 } 49729 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 49730 len12 = len12 + 4 49731 goto __2462 49732 __2461: 49733 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 49734 len12 = len12 + 5 49735 __2462: 49736 ; 49737 __2460: 49738 ; 49739 __2458: 49740 ; 49741 __2456: 49742 ; 49743 __2454: 49744 ; 49745 49746 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]) 49747 if !(libc.Bool32(category5 == ucp_L || category5 == ucp_N || fc == Tuint32_t('\137')) == notmatch2) { 49748 goto __2463 49749 } 49750 goto __2450 49751 __2463: 49752 ; 49753 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len12) 49754 goto __2449 49755 __2449: 49756 i++ 49757 goto __2448 49758 goto __2450 49759 __2450: 49760 ; 49761 goto __2275 49762 49763 __2286: 49764 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49765 __2464: 49766 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49767 goto __2466 49768 } 49769 49770 len13 = 1 49771 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49772 goto __2467 49773 } 49774 49775 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)) { 49776 goto __2468 49777 } 49778 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49779 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49780 goto __2469 49781 } 49782 return -2 49783 __2469: 49784 ; 49785 __2468: 49786 ; 49787 49788 goto __2466 49789 __2467: 49790 ; 49791 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49792 if !(utf != 0 && fc >= 0xc0) { 49793 goto __2470 49794 } 49795 if !(fc&0x20 == Tuint32_t(0)) { 49796 goto __2471 49797 } 49798 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49799 len13++ 49800 goto __2472 49801 __2471: 49802 if !(fc&0x10 == Tuint32_t(0)) { 49803 goto __2473 49804 } 49805 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 49806 len13 = len13 + 2 49807 goto __2474 49808 __2473: 49809 if !(fc&0x08 == Tuint32_t(0)) { 49810 goto __2475 49811 } 49812 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 49813 len13 = len13 + 3 49814 goto __2476 49815 __2475: 49816 if !(fc&0x04 == Tuint32_t(0)) { 49817 goto __2477 49818 } 49819 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 49820 len13 = len13 + 4 49821 goto __2478 49822 __2477: 49823 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 49824 len13 = len13 + 5 49825 __2478: 49826 ; 49827 __2476: 49828 ; 49829 __2474: 49830 ; 49831 __2472: 49832 ; 49833 __2470: 49834 ; 49835 49836 cp3 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)))*4 49837 __2479: 49838 49839 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp3))) { 49840 goto __2482 49841 } 49842 if !(notmatch2 != 0) { 49843 goto __2483 49844 } 49845 goto __2481 49846 goto __2484 49847 __2483: 49848 goto GOT_MAX 49849 __2484: 49850 ; 49851 __2482: 49852 ; 49853 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp3, 4)))) { 49854 goto __2485 49855 } 49856 if !(notmatch2 != 0) { 49857 goto __2486 49858 } 49859 goto GOT_MAX 49860 goto __2487 49861 __2486: 49862 goto __2481 49863 __2487: 49864 ; 49865 __2485: 49866 ; 49867 goto __2480 49868 __2480: 49869 goto __2479 49870 goto __2481 49871 __2481: 49872 ; 49873 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len13) 49874 goto __2465 49875 __2465: 49876 i++ 49877 goto __2464 49878 goto __2466 49879 __2466: 49880 ; 49881 GOT_MAX: 49882 goto __2275 49883 49884 __2287: 49885 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49886 __2488: 49887 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49888 goto __2490 49889 } 49890 49891 len14 = 1 49892 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49893 goto __2491 49894 } 49895 49896 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)) { 49897 goto __2492 49898 } 49899 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49900 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49901 goto __2493 49902 } 49903 return -2 49904 __2493: 49905 ; 49906 __2492: 49907 ; 49908 49909 goto __2490 49910 __2491: 49911 ; 49912 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49913 if !(utf != 0 && fc >= 0xc0) { 49914 goto __2494 49915 } 49916 if !(fc&0x20 == Tuint32_t(0)) { 49917 goto __2495 49918 } 49919 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49920 len14++ 49921 goto __2496 49922 __2495: 49923 if !(fc&0x10 == Tuint32_t(0)) { 49924 goto __2497 49925 } 49926 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 49927 len14 = len14 + 2 49928 goto __2498 49929 __2497: 49930 if !(fc&0x08 == Tuint32_t(0)) { 49931 goto __2499 49932 } 49933 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 49934 len14 = len14 + 3 49935 goto __2500 49936 __2499: 49937 if !(fc&0x04 == Tuint32_t(0)) { 49938 goto __2501 49939 } 49940 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 49941 len14 = len14 + 4 49942 goto __2502 49943 __2501: 49944 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 49945 len14 = len14 + 5 49946 __2502: 49947 ; 49948 __2500: 49949 ; 49950 __2498: 49951 ; 49952 __2496: 49953 ; 49954 __2494: 49955 ; 49956 49957 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) { 49958 goto __2503 49959 } 49960 goto __2490 49961 __2503: 49962 ; 49963 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len14) 49964 goto __2489 49965 __2489: 49966 i++ 49967 goto __2488 49968 goto __2490 49969 __2490: 49970 ; 49971 goto __2275 49972 49973 __2288: 49974 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49975 __2504: 49976 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49977 goto __2506 49978 } 49979 49980 len15 = 1 49981 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49982 goto __2507 49983 } 49984 49985 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)) { 49986 goto __2508 49987 } 49988 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49989 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49990 goto __2509 49991 } 49992 return -2 49993 __2509: 49994 ; 49995 __2508: 49996 ; 49997 49998 goto __2506 49999 __2507: 50000 ; 50001 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50002 if !(utf != 0 && fc >= 0xc0) { 50003 goto __2510 50004 } 50005 if !(fc&0x20 == Tuint32_t(0)) { 50006 goto __2511 50007 } 50008 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50009 len15++ 50010 goto __2512 50011 __2511: 50012 if !(fc&0x10 == Tuint32_t(0)) { 50013 goto __2513 50014 } 50015 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 50016 len15 = len15 + 2 50017 goto __2514 50018 __2513: 50019 if !(fc&0x08 == Tuint32_t(0)) { 50020 goto __2515 50021 } 50022 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 50023 len15 = len15 + 3 50024 goto __2516 50025 __2515: 50026 if !(fc&0x04 == Tuint32_t(0)) { 50027 goto __2517 50028 } 50029 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 50030 len15 = len15 + 4 50031 goto __2518 50032 __2517: 50033 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 50034 len15 = len15 + 5 50035 __2518: 50036 ; 50037 __2516: 50038 ; 50039 __2514: 50040 ; 50041 __2512: 50042 ; 50043 __2510: 50044 ; 50045 50046 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 + 56 + 3*4))) == notmatch2) { 50047 goto __2519 50048 } 50049 goto __2506 50050 __2519: 50051 ; 50052 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len15) 50053 goto __2505 50054 __2505: 50055 i++ 50056 goto __2504 50057 goto __2506 50058 __2506: 50059 ; 50060 goto __2275 50061 50062 __2289: 50063 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50064 __2520: 50065 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50066 goto __2522 50067 } 50068 50069 len16 = 1 50070 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50071 goto __2523 50072 } 50073 50074 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)) { 50075 goto __2524 50076 } 50077 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50078 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50079 goto __2525 50080 } 50081 return -2 50082 __2525: 50083 ; 50084 __2524: 50085 ; 50086 50087 goto __2522 50088 __2523: 50089 ; 50090 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50091 if !(utf != 0 && fc >= 0xc0) { 50092 goto __2526 50093 } 50094 if !(fc&0x20 == Tuint32_t(0)) { 50095 goto __2527 50096 } 50097 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50098 len16++ 50099 goto __2528 50100 __2527: 50101 if !(fc&0x10 == Tuint32_t(0)) { 50102 goto __2529 50103 } 50104 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 50105 len16 = len16 + 2 50106 goto __2530 50107 __2529: 50108 if !(fc&0x08 == Tuint32_t(0)) { 50109 goto __2531 50110 } 50111 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 50112 len16 = len16 + 3 50113 goto __2532 50114 __2531: 50115 if !(fc&0x04 == Tuint32_t(0)) { 50116 goto __2533 50117 } 50118 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 50119 len16 = len16 + 4 50120 goto __2534 50121 __2533: 50122 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 50123 len16 = len16 + 5 50124 __2534: 50125 ; 50126 __2532: 50127 ; 50128 __2530: 50129 ; 50130 __2528: 50131 ; 50132 __2526: 50133 ; 50134 50135 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 50136 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 + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 50137 if !(ok7 == notmatch2) { 50138 goto __2535 50139 } 50140 goto __2522 50141 __2535: 50142 ; 50143 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len16) 50144 goto __2521 50145 __2521: 50146 i++ 50147 goto __2520 50148 goto __2522 50149 __2522: 50150 ; 50151 goto __2275 50152 50153 __2290: 50154 return -44 50155 __2275: 50156 ; 50157 50158 // Feptr is now past the end of the maximum run 50159 50160 if !(reptype == REPTYPE_POS) { 50161 goto __2536 50162 } 50163 goto __11 50164 __2536: 50165 ; // No backtracking 50166 50167 // After \C in UTF mode, Lstart_eptr might be in the middle of a 50168 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 50169 // go too far. 50170 50171 __2537: 50172 50173 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 50174 goto __2540 50175 } 50176 goto __2539 50177 __2540: 50178 ; 50179 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 50180 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM222 50181 goto MATCH_RECURSE 50182 L_RM222: 50183 ; 50184 50185 if !(rrc != DMATCH_NOMATCH) { 50186 goto __2541 50187 } 50188 rrc = rrc 50189 goto RETURN_SWITCH 50190 __2541: 50191 ; 50192 50193 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50194 if !(utf != 0) { 50195 goto __2542 50196 } 50197 __2543: 50198 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 50199 goto __2544 50200 } 50201 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50202 goto __2543 50203 __2544: 50204 ; 50205 __2542: 50206 ; 50207 goto __2538 50208 __2538: 50209 goto __2537 50210 goto __2539 50211 __2539: 50212 ; 50213 goto __2274 50214 __2273: 50215 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_EXTUNI) { 50216 goto __2545 50217 } 50218 50219 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50220 __2547: 50221 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50222 goto __2549 50223 } 50224 50225 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50226 goto __2550 50227 } 50228 50229 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)) { 50230 goto __2552 50231 } 50232 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50233 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50234 goto __2553 50235 } 50236 return -2 50237 __2553: 50238 ; 50239 __2552: 50240 ; 50241 50242 goto __2549 50243 goto __2551 50244 __2550: 50245 50246 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 50247 if !(utf != 0 && fc >= 0xc0) { 50248 goto __2554 50249 } 50250 if !(fc&0x20 == Tuint32_t(0)) { 50251 goto __2555 50252 } 50253 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 50254 goto __2556 50255 __2555: 50256 if !(fc&0x10 == Tuint32_t(0)) { 50257 goto __2557 50258 } 50259 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 50260 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 50261 goto __2558 50262 __2557: 50263 if !(fc&0x08 == Tuint32_t(0)) { 50264 goto __2559 50265 } 50266 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 50267 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 50268 goto __2560 50269 __2559: 50270 if !(fc&0x04 == Tuint32_t(0)) { 50271 goto __2561 50272 } 50273 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 50274 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 50275 goto __2562 50276 __2561: 50277 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 50278 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 50279 __2562: 50280 ; 50281 __2560: 50282 ; 50283 __2558: 50284 ; 50285 __2556: 50286 ; 50287 __2554: 50288 ; 50289 50290 (*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, 50291 utf, uintptr(0)) 50292 __2551: 50293 ; 50294 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50295 goto __2563 50296 } 50297 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)) { 50298 goto __2564 50299 } 50300 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50301 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50302 goto __2565 50303 } 50304 return -2 50305 __2565: 50306 ; 50307 __2564: 50308 ; 50309 __2563: 50310 ; 50311 50312 goto __2548 50313 __2548: 50314 i++ 50315 goto __2547 50316 goto __2549 50317 __2549: 50318 ; 50319 50320 // Feptr is now past the end of the maximum run 50321 50322 if !(reptype == REPTYPE_POS) { 50323 goto __2566 50324 } 50325 goto __11 50326 __2566: 50327 ; // No backtracking 50328 50329 // We use <= Lstart_eptr rather than == Lstart_eptr to detect the start 50330 // of the run while backtracking because the use of \C in UTF mode can 50331 // cause BACKCHAR to move back past Lstart_eptr. This is just palliative; 50332 // the use of \C in UTF mode is fraught with danger. 50333 50334 __2567: 50335 50336 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 50337 goto __2570 50338 } 50339 goto __2569 50340 __2570: 50341 ; /* At start of char run */ 50342 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 50343 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM220 50344 goto MATCH_RECURSE 50345 L_RM220: 50346 ; 50347 50348 if !(rrc != DMATCH_NOMATCH) { 50349 goto __2571 50350 } 50351 rrc = rrc 50352 goto RETURN_SWITCH 50353 __2571: 50354 ; 50355 50356 // Backtracking over an extended grapheme cluster involves inspecting 50357 // the previous two characters (if present) to see if a break is 50358 // permitted between them. 50359 50360 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50361 if !!(utf != 0) { 50362 goto __2572 50363 } 50364 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50365 goto __2573 50366 __2572: 50367 50368 __2574: 50369 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 50370 goto __2575 50371 } 50372 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50373 goto __2574 50374 __2575: 50375 ; 50376 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50377 if !(fc >= 0xc0) { 50378 goto __2576 50379 } 50380 if !(fc&0x20 == Tuint32_t(0)) { 50381 goto __2577 50382 } 50383 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50384 goto __2578 50385 __2577: 50386 if !(fc&0x10 == Tuint32_t(0)) { 50387 goto __2579 50388 } 50389 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 50390 goto __2580 50391 __2579: 50392 if !(fc&0x08 == Tuint32_t(0)) { 50393 goto __2581 50394 } 50395 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 50396 goto __2582 50397 __2581: 50398 if !(fc&0x04 == Tuint32_t(0)) { 50399 goto __2583 50400 } 50401 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 50402 goto __2584 50403 __2583: 50404 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 50405 __2584: 50406 ; 50407 __2582: 50408 ; 50409 __2580: 50410 ; 50411 __2578: 50412 ; 50413 __2576: 50414 ; 50415 50416 __2573: 50417 ; 50418 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) 50419 50420 __2585: 50421 50422 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 50423 goto __2588 50424 } 50425 goto __2587 50426 __2588: 50427 ; // At start of char run 50428 fptr = (*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr(1) 50429 if !!(utf != 0) { 50430 goto __2589 50431 } 50432 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr))) 50433 goto __2590 50434 __2589: 50435 50436 __2591: 50437 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr)))&0xc0 == 0x80) { 50438 goto __2592 50439 } 50440 fptr-- 50441 goto __2591 50442 __2592: 50443 ; 50444 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr))) 50445 if !(fc >= 0xc0) { 50446 goto __2593 50447 } 50448 if !(fc&0x20 == Tuint32_t(0)) { 50449 goto __2594 50450 } 50451 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f 50452 goto __2595 50453 __2594: 50454 if !(fc&0x10 == Tuint32_t(0)) { 50455 goto __2596 50456 } 50457 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 2)))&0x3f 50458 goto __2597 50459 __2596: 50460 if !(fc&0x08 == Tuint32_t(0)) { 50461 goto __2598 50462 } 50463 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 50464 goto __2599 50465 __2598: 50466 if !(fc&0x04 == Tuint32_t(0)) { 50467 goto __2600 50468 } 50469 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 50470 goto __2601 50471 __2600: 50472 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 50473 __2601: 50474 ; 50475 __2599: 50476 ; 50477 __2597: 50478 ; 50479 __2595: 50480 ; 50481 __2593: 50482 ; 50483 50484 __2590: 50485 ; 50486 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) 50487 if !(X_pcre2_ucp_gbtable_8[lgb]&(uint32(1)<<rgb) == Tuint32_t(0)) { 50488 goto __2602 50489 } 50490 goto __2587 50491 __2602: 50492 ; 50493 (*Theapframe)(unsafe.Pointer(F)).Feptr = fptr 50494 rgb = lgb 50495 goto __2586 50496 __2586: 50497 goto __2585 50498 goto __2587 50499 __2587: 50500 ; 50501 goto __2568 50502 __2568: 50503 goto __2567 50504 goto __2569 50505 __2569: 50506 ; 50507 goto __2546 50508 __2545: 50509 50510 if !(utf != 0) { 50511 goto __2603 50512 } 50513 50514 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 50515 case OP_ANY: 50516 goto __2606 50517 50518 case OP_ALLANY: 50519 goto __2607 50520 50521 // The "byte" (i.e. "code unit") case is the same as non-UTF 50522 50523 case OP_ANYBYTE: 50524 goto __2608 50525 50526 case OP_ANYNL: 50527 goto __2609 50528 50529 case OP_NOT_HSPACE: 50530 goto __2610 50531 case OP_HSPACE: 50532 goto __2611 50533 50534 case OP_NOT_VSPACE: 50535 goto __2612 50536 case OP_VSPACE: 50537 goto __2613 50538 50539 case OP_NOT_DIGIT: 50540 goto __2614 50541 50542 case OP_DIGIT: 50543 goto __2615 50544 50545 case OP_NOT_WHITESPACE: 50546 goto __2616 50547 50548 case OP_WHITESPACE: 50549 goto __2617 50550 50551 case OP_NOT_WORDCHAR: 50552 goto __2618 50553 50554 case OP_WORDCHAR: 50555 goto __2619 50556 50557 default: 50558 goto __2620 50559 } 50560 goto __2605 50561 50562 __2606: 50563 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50564 __2621: 50565 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50566 goto __2623 50567 } 50568 50569 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50570 goto __2624 50571 } 50572 50573 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)) { 50574 goto __2625 50575 } 50576 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50577 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50578 goto __2626 50579 } 50580 return -2 50581 __2626: 50582 ; 50583 __2625: 50584 ; 50585 50586 goto __2623 50587 __2624: 50588 ; 50589 if !(func() int32 { 50590 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 50591 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+256, utf) != 0) 50592 } 50593 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 + 260))) && ((*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 + 260 + 1))))) 50594 }() != 0) { 50595 goto __2627 50596 } 50597 goto __2623 50598 __2627: 50599 ; 50600 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 + 260)))) { 50601 goto __2628 50602 } 50603 50604 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50605 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50606 goto __2629 50607 } 50608 return -2 50609 __2629: 50610 ; 50611 __2628: 50612 ; 50613 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50614 __2630: 50615 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) { 50616 goto __2631 50617 } 50618 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50619 goto __2630 50620 __2631: 50621 ; 50622 goto __2622 50623 __2622: 50624 i++ 50625 goto __2621 50626 goto __2623 50627 __2623: 50628 ; 50629 goto __2605 50630 50631 __2607: 50632 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) < 4294967295) { 50633 goto __2632 50634 } 50635 50636 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50637 __2634: 50638 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50639 goto __2636 50640 } 50641 50642 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50643 goto __2637 50644 } 50645 50646 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)) { 50647 goto __2638 50648 } 50649 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50650 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50651 goto __2639 50652 } 50653 return -2 50654 __2639: 50655 ; 50656 __2638: 50657 ; 50658 50659 goto __2636 50660 __2637: 50661 ; 50662 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50663 __2640: 50664 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) { 50665 goto __2641 50666 } 50667 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50668 goto __2640 50669 __2641: 50670 ; 50671 goto __2635 50672 __2635: 50673 i++ 50674 goto __2634 50675 goto __2636 50676 __2636: 50677 ; 50678 goto __2633 50679 __2632: 50680 50681 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject // Unlimited UTF-8 repeat 50682 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)) { 50683 goto __2642 50684 } 50685 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50686 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50687 goto __2643 50688 } 50689 return -2 50690 __2643: 50691 ; 50692 __2642: 50693 ; 50694 50695 __2633: 50696 ; 50697 goto __2605 50698 50699 // The "byte" (i.e. "code unit") case is the same as non-UTF 50700 50701 __2608: 50702 fc = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) - *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50703 if !(fc > Tuint32_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int64((*Theapframe)(unsafe.Pointer(F)).Feptr))/1)) { 50704 goto __2644 50705 } 50706 50707 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 50708 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)) { 50709 goto __2646 50710 } 50711 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50712 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50713 goto __2647 50714 } 50715 return -2 50716 __2647: 50717 ; 50718 __2646: 50719 ; 50720 50721 goto __2645 50722 __2644: 50723 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(fc) 50724 __2645: 50725 ; 50726 goto __2605 50727 50728 __2609: 50729 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50730 __2648: 50731 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50732 goto __2650 50733 } 50734 50735 len17 = 1 50736 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50737 goto __2651 50738 } 50739 50740 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)) { 50741 goto __2652 50742 } 50743 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50744 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50745 goto __2653 50746 } 50747 return -2 50748 __2653: 50749 ; 50750 __2652: 50751 ; 50752 50753 goto __2650 50754 __2651: 50755 ; 50756 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50757 if !(fc >= 0xc0) { 50758 goto __2654 50759 } 50760 if !(fc&0x20 == Tuint32_t(0)) { 50761 goto __2655 50762 } 50763 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50764 len17++ 50765 goto __2656 50766 __2655: 50767 if !(fc&0x10 == Tuint32_t(0)) { 50768 goto __2657 50769 } 50770 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 50771 len17 = len17 + 2 50772 goto __2658 50773 __2657: 50774 if !(fc&0x08 == Tuint32_t(0)) { 50775 goto __2659 50776 } 50777 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 50778 len17 = len17 + 3 50779 goto __2660 50780 __2659: 50781 if !(fc&0x04 == Tuint32_t(0)) { 50782 goto __2661 50783 } 50784 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 50785 len17 = len17 + 4 50786 goto __2662 50787 __2661: 50788 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 50789 len17 = len17 + 5 50790 __2662: 50791 ; 50792 __2660: 50793 ; 50794 __2658: 50795 ; 50796 __2656: 50797 ; 50798 __2654: 50799 ; 50800 50801 if !(fc == Tuint32_t('\015')) { 50802 goto __2663 50803 } 50804 50805 if !(libc.PreIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50806 goto __2665 50807 } 50808 goto __2650 50809 __2665: 50810 ; 50811 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 50812 goto __2666 50813 } 50814 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50815 __2666: 50816 ; 50817 goto __2664 50818 __2663: 50819 50820 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 != Tuint32_t(uint8('\x85')) && 50821 fc != Tuint32_t(0x2028) && fc != Tuint32_t(0x2029))) { 50822 goto __2667 50823 } 50824 goto __2650 50825 __2667: 50826 ; 50827 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len17) 50828 __2664: 50829 ; 50830 goto __2649 50831 __2649: 50832 i++ 50833 goto __2648 50834 goto __2650 50835 __2650: 50836 ; 50837 goto __2605 50838 50839 __2610: 50840 __2611: 50841 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50842 __2668: 50843 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50844 goto __2670 50845 } 50846 50847 len18 = 1 50848 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50849 goto __2671 50850 } 50851 50852 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)) { 50853 goto __2672 50854 } 50855 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50856 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50857 goto __2673 50858 } 50859 return -2 50860 __2673: 50861 ; 50862 __2672: 50863 ; 50864 50865 goto __2670 50866 __2671: 50867 ; 50868 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50869 if !(fc >= 0xc0) { 50870 goto __2674 50871 } 50872 if !(fc&0x20 == Tuint32_t(0)) { 50873 goto __2675 50874 } 50875 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50876 len18++ 50877 goto __2676 50878 __2675: 50879 if !(fc&0x10 == Tuint32_t(0)) { 50880 goto __2677 50881 } 50882 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 50883 len18 = len18 + 2 50884 goto __2678 50885 __2677: 50886 if !(fc&0x08 == Tuint32_t(0)) { 50887 goto __2679 50888 } 50889 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 50890 len18 = len18 + 3 50891 goto __2680 50892 __2679: 50893 if !(fc&0x04 == Tuint32_t(0)) { 50894 goto __2681 50895 } 50896 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 50897 len18 = len18 + 4 50898 goto __2682 50899 __2681: 50900 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 50901 len18 = len18 + 5 50902 __2682: 50903 ; 50904 __2680: 50905 ; 50906 __2678: 50907 ; 50908 __2676: 50909 ; 50910 __2674: 50911 ; 50912 50913 switch fc { 50914 case Tuint32_t('\011'): 50915 goto __2684 50916 case Tuint32_t('\040'): 50917 goto __2685 50918 case Tuint32_t(uint8('\xa0')): 50919 goto __2686 50920 case Tuint32_t(0x1680): 50921 goto __2687 /* OGHAM SPACE MARK */ 50922 case Tuint32_t(0x180e): 50923 goto __2688 /* MONGOLIAN VOWEL SEPARATOR */ 50924 case Tuint32_t(0x2000): 50925 goto __2689 /* EN QUAD */ 50926 case Tuint32_t(0x2001): 50927 goto __2690 /* EM QUAD */ 50928 case Tuint32_t(0x2002): 50929 goto __2691 /* EN SPACE */ 50930 case Tuint32_t(0x2003): 50931 goto __2692 /* EM SPACE */ 50932 case Tuint32_t(0x2004): 50933 goto __2693 /* THREE-PER-EM SPACE */ 50934 case Tuint32_t(0x2005): 50935 goto __2694 /* FOUR-PER-EM SPACE */ 50936 case Tuint32_t(0x2006): 50937 goto __2695 /* SIX-PER-EM SPACE */ 50938 case Tuint32_t(0x2007): 50939 goto __2696 /* FIGURE SPACE */ 50940 case Tuint32_t(0x2008): 50941 goto __2697 /* PUNCTUATION SPACE */ 50942 case Tuint32_t(0x2009): 50943 goto __2698 /* THIN SPACE */ 50944 case Tuint32_t(0x200A): 50945 goto __2699 /* HAIR SPACE */ 50946 case Tuint32_t(0x202f): 50947 goto __2700 /* NARROW NO-BREAK SPACE */ 50948 case Tuint32_t(0x205f): 50949 goto __2701 /* MEDIUM MATHEMATICAL SPACE */ 50950 case Tuint32_t(0x3000): 50951 goto __2702 50952 default: 50953 goto __2703 50954 } 50955 goto __2683 50956 50957 __2684: 50958 __2685: 50959 __2686: 50960 __2687: /* OGHAM SPACE MARK */ 50961 __2688: /* MONGOLIAN VOWEL SEPARATOR */ 50962 __2689: /* EN QUAD */ 50963 __2690: /* EM QUAD */ 50964 __2691: /* EN SPACE */ 50965 __2692: /* EM SPACE */ 50966 __2693: /* THREE-PER-EM SPACE */ 50967 __2694: /* FOUR-PER-EM SPACE */ 50968 __2695: /* SIX-PER-EM SPACE */ 50969 __2696: /* FIGURE SPACE */ 50970 __2697: /* PUNCTUATION SPACE */ 50971 __2698: /* THIN SPACE */ 50972 __2699: /* HAIR SPACE */ 50973 __2700: /* NARROW NO-BREAK SPACE */ 50974 __2701: /* MEDIUM MATHEMATICAL SPACE */ 50975 __2702: 50976 gotspace = DTRUE 50977 goto __2683 50978 __2703: 50979 gotspace = DFALSE 50980 goto __2683 50981 __2683: 50982 ; 50983 if !(gotspace == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOT_HSPACE)) { 50984 goto __2704 50985 } 50986 goto __2670 50987 __2704: 50988 ; 50989 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len18) 50990 goto __2669 50991 __2669: 50992 i++ 50993 goto __2668 50994 goto __2670 50995 __2670: 50996 ; 50997 goto __2605 50998 50999 __2612: 51000 __2613: 51001 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51002 __2705: 51003 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51004 goto __2707 51005 } 51006 51007 len19 = 1 51008 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51009 goto __2708 51010 } 51011 51012 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)) { 51013 goto __2709 51014 } 51015 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51016 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51017 goto __2710 51018 } 51019 return -2 51020 __2710: 51021 ; 51022 __2709: 51023 ; 51024 51025 goto __2707 51026 __2708: 51027 ; 51028 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51029 if !(fc >= 0xc0) { 51030 goto __2711 51031 } 51032 if !(fc&0x20 == Tuint32_t(0)) { 51033 goto __2712 51034 } 51035 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51036 len19++ 51037 goto __2713 51038 __2712: 51039 if !(fc&0x10 == Tuint32_t(0)) { 51040 goto __2714 51041 } 51042 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 51043 len19 = len19 + 2 51044 goto __2715 51045 __2714: 51046 if !(fc&0x08 == Tuint32_t(0)) { 51047 goto __2716 51048 } 51049 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 51050 len19 = len19 + 3 51051 goto __2717 51052 __2716: 51053 if !(fc&0x04 == Tuint32_t(0)) { 51054 goto __2718 51055 } 51056 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 51057 len19 = len19 + 4 51058 goto __2719 51059 __2718: 51060 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 51061 len19 = len19 + 5 51062 __2719: 51063 ; 51064 __2717: 51065 ; 51066 __2715: 51067 ; 51068 __2713: 51069 ; 51070 __2711: 51071 ; 51072 51073 switch fc { 51074 case Tuint32_t('\012'): 51075 goto __2721 51076 case Tuint32_t('\013'): 51077 goto __2722 51078 case Tuint32_t('\014'): 51079 goto __2723 51080 case Tuint32_t('\015'): 51081 goto __2724 51082 case Tuint32_t(uint8('\x85')): 51083 goto __2725 51084 case Tuint32_t(0x2028): 51085 goto __2726 /* LINE SEPARATOR */ 51086 case Tuint32_t(0x2029): 51087 goto __2727 51088 default: 51089 goto __2728 51090 } 51091 goto __2720 51092 51093 __2721: 51094 __2722: 51095 __2723: 51096 __2724: 51097 __2725: 51098 __2726: /* LINE SEPARATOR */ 51099 __2727: 51100 gotspace1 = DTRUE 51101 goto __2720 51102 __2728: 51103 gotspace1 = DFALSE 51104 goto __2720 51105 __2720: 51106 ; 51107 if !(gotspace1 == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOT_VSPACE)) { 51108 goto __2729 51109 } 51110 goto __2707 51111 __2729: 51112 ; 51113 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len19) 51114 goto __2706 51115 __2706: 51116 i++ 51117 goto __2705 51118 goto __2707 51119 __2707: 51120 ; 51121 goto __2605 51122 51123 __2614: 51124 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51125 __2730: 51126 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51127 goto __2732 51128 } 51129 51130 len20 = 1 51131 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51132 goto __2733 51133 } 51134 51135 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)) { 51136 goto __2734 51137 } 51138 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51139 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51140 goto __2735 51141 } 51142 return -2 51143 __2735: 51144 ; 51145 __2734: 51146 ; 51147 51148 goto __2732 51149 __2733: 51150 ; 51151 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51152 if !(fc >= 0xc0) { 51153 goto __2736 51154 } 51155 if !(fc&0x20 == Tuint32_t(0)) { 51156 goto __2737 51157 } 51158 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51159 len20++ 51160 goto __2738 51161 __2737: 51162 if !(fc&0x10 == Tuint32_t(0)) { 51163 goto __2739 51164 } 51165 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 51166 len20 = len20 + 2 51167 goto __2740 51168 __2739: 51169 if !(fc&0x08 == Tuint32_t(0)) { 51170 goto __2741 51171 } 51172 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 51173 len20 = len20 + 3 51174 goto __2742 51175 __2741: 51176 if !(fc&0x04 == Tuint32_t(0)) { 51177 goto __2743 51178 } 51179 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 51180 len20 = len20 + 4 51181 goto __2744 51182 __2743: 51183 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 51184 len20 = len20 + 5 51185 __2744: 51186 ; 51187 __2742: 51188 ; 51189 __2740: 51190 ; 51191 __2738: 51192 ; 51193 __2736: 51194 ; 51195 51196 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 51197 goto __2745 51198 } 51199 goto __2732 51200 __2745: 51201 ; 51202 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len20) 51203 goto __2731 51204 __2731: 51205 i++ 51206 goto __2730 51207 goto __2732 51208 __2732: 51209 ; 51210 goto __2605 51211 51212 __2615: 51213 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51214 __2746: 51215 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51216 goto __2748 51217 } 51218 51219 len21 = 1 51220 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51221 goto __2749 51222 } 51223 51224 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)) { 51225 goto __2750 51226 } 51227 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51228 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51229 goto __2751 51230 } 51231 return -2 51232 __2751: 51233 ; 51234 __2750: 51235 ; 51236 51237 goto __2748 51238 __2749: 51239 ; 51240 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51241 if !(fc >= 0xc0) { 51242 goto __2752 51243 } 51244 if !(fc&0x20 == Tuint32_t(0)) { 51245 goto __2753 51246 } 51247 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51248 len21++ 51249 goto __2754 51250 __2753: 51251 if !(fc&0x10 == Tuint32_t(0)) { 51252 goto __2755 51253 } 51254 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 51255 len21 = len21 + 2 51256 goto __2756 51257 __2755: 51258 if !(fc&0x08 == Tuint32_t(0)) { 51259 goto __2757 51260 } 51261 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 51262 len21 = len21 + 3 51263 goto __2758 51264 __2757: 51265 if !(fc&0x04 == Tuint32_t(0)) { 51266 goto __2759 51267 } 51268 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 51269 len21 = len21 + 4 51270 goto __2760 51271 __2759: 51272 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 51273 len21 = len21 + 5 51274 __2760: 51275 ; 51276 __2758: 51277 ; 51278 __2756: 51279 ; 51280 __2754: 51281 ; 51282 __2752: 51283 ; 51284 51285 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 51286 goto __2761 51287 } 51288 goto __2748 51289 __2761: 51290 ; 51291 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len21) 51292 goto __2747 51293 __2747: 51294 i++ 51295 goto __2746 51296 goto __2748 51297 __2748: 51298 ; 51299 goto __2605 51300 51301 __2616: 51302 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51303 __2762: 51304 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51305 goto __2764 51306 } 51307 51308 len22 = 1 51309 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51310 goto __2765 51311 } 51312 51313 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)) { 51314 goto __2766 51315 } 51316 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51317 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51318 goto __2767 51319 } 51320 return -2 51321 __2767: 51322 ; 51323 __2766: 51324 ; 51325 51326 goto __2764 51327 __2765: 51328 ; 51329 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51330 if !(fc >= 0xc0) { 51331 goto __2768 51332 } 51333 if !(fc&0x20 == Tuint32_t(0)) { 51334 goto __2769 51335 } 51336 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51337 len22++ 51338 goto __2770 51339 __2769: 51340 if !(fc&0x10 == Tuint32_t(0)) { 51341 goto __2771 51342 } 51343 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 51344 len22 = len22 + 2 51345 goto __2772 51346 __2771: 51347 if !(fc&0x08 == Tuint32_t(0)) { 51348 goto __2773 51349 } 51350 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 51351 len22 = len22 + 3 51352 goto __2774 51353 __2773: 51354 if !(fc&0x04 == Tuint32_t(0)) { 51355 goto __2775 51356 } 51357 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 51358 len22 = len22 + 4 51359 goto __2776 51360 __2775: 51361 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 51362 len22 = len22 + 5 51363 __2776: 51364 ; 51365 __2774: 51366 ; 51367 __2772: 51368 ; 51369 __2770: 51370 ; 51371 __2768: 51372 ; 51373 51374 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 51375 goto __2777 51376 } 51377 goto __2764 51378 __2777: 51379 ; 51380 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len22) 51381 goto __2763 51382 __2763: 51383 i++ 51384 goto __2762 51385 goto __2764 51386 __2764: 51387 ; 51388 goto __2605 51389 51390 __2617: 51391 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51392 __2778: 51393 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51394 goto __2780 51395 } 51396 51397 len23 = 1 51398 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51399 goto __2781 51400 } 51401 51402 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)) { 51403 goto __2782 51404 } 51405 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51406 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51407 goto __2783 51408 } 51409 return -2 51410 __2783: 51411 ; 51412 __2782: 51413 ; 51414 51415 goto __2780 51416 __2781: 51417 ; 51418 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51419 if !(fc >= 0xc0) { 51420 goto __2784 51421 } 51422 if !(fc&0x20 == Tuint32_t(0)) { 51423 goto __2785 51424 } 51425 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51426 len23++ 51427 goto __2786 51428 __2785: 51429 if !(fc&0x10 == Tuint32_t(0)) { 51430 goto __2787 51431 } 51432 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 51433 len23 = len23 + 2 51434 goto __2788 51435 __2787: 51436 if !(fc&0x08 == Tuint32_t(0)) { 51437 goto __2789 51438 } 51439 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 51440 len23 = len23 + 3 51441 goto __2790 51442 __2789: 51443 if !(fc&0x04 == Tuint32_t(0)) { 51444 goto __2791 51445 } 51446 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 51447 len23 = len23 + 4 51448 goto __2792 51449 __2791: 51450 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 51451 len23 = len23 + 5 51452 __2792: 51453 ; 51454 __2790: 51455 ; 51456 __2788: 51457 ; 51458 __2786: 51459 ; 51460 __2784: 51461 ; 51462 51463 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 51464 goto __2793 51465 } 51466 goto __2780 51467 __2793: 51468 ; 51469 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len23) 51470 goto __2779 51471 __2779: 51472 i++ 51473 goto __2778 51474 goto __2780 51475 __2780: 51476 ; 51477 goto __2605 51478 51479 __2618: 51480 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51481 __2794: 51482 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51483 goto __2796 51484 } 51485 51486 len24 = 1 51487 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51488 goto __2797 51489 } 51490 51491 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)) { 51492 goto __2798 51493 } 51494 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51495 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51496 goto __2799 51497 } 51498 return -2 51499 __2799: 51500 ; 51501 __2798: 51502 ; 51503 51504 goto __2796 51505 __2797: 51506 ; 51507 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51508 if !(fc >= 0xc0) { 51509 goto __2800 51510 } 51511 if !(fc&0x20 == Tuint32_t(0)) { 51512 goto __2801 51513 } 51514 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51515 len24++ 51516 goto __2802 51517 __2801: 51518 if !(fc&0x10 == Tuint32_t(0)) { 51519 goto __2803 51520 } 51521 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 51522 len24 = len24 + 2 51523 goto __2804 51524 __2803: 51525 if !(fc&0x08 == Tuint32_t(0)) { 51526 goto __2805 51527 } 51528 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 51529 len24 = len24 + 3 51530 goto __2806 51531 __2805: 51532 if !(fc&0x04 == Tuint32_t(0)) { 51533 goto __2807 51534 } 51535 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 51536 len24 = len24 + 4 51537 goto __2808 51538 __2807: 51539 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 51540 len24 = len24 + 5 51541 __2808: 51542 ; 51543 __2806: 51544 ; 51545 __2804: 51546 ; 51547 __2802: 51548 ; 51549 __2800: 51550 ; 51551 51552 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 51553 goto __2809 51554 } 51555 goto __2796 51556 __2809: 51557 ; 51558 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len24) 51559 goto __2795 51560 __2795: 51561 i++ 51562 goto __2794 51563 goto __2796 51564 __2796: 51565 ; 51566 goto __2605 51567 51568 __2619: 51569 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51570 __2810: 51571 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51572 goto __2812 51573 } 51574 51575 len25 = 1 51576 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51577 goto __2813 51578 } 51579 51580 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)) { 51581 goto __2814 51582 } 51583 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51584 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51585 goto __2815 51586 } 51587 return -2 51588 __2815: 51589 ; 51590 __2814: 51591 ; 51592 51593 goto __2812 51594 __2813: 51595 ; 51596 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51597 if !(fc >= 0xc0) { 51598 goto __2816 51599 } 51600 if !(fc&0x20 == Tuint32_t(0)) { 51601 goto __2817 51602 } 51603 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51604 len25++ 51605 goto __2818 51606 __2817: 51607 if !(fc&0x10 == Tuint32_t(0)) { 51608 goto __2819 51609 } 51610 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 51611 len25 = len25 + 2 51612 goto __2820 51613 __2819: 51614 if !(fc&0x08 == Tuint32_t(0)) { 51615 goto __2821 51616 } 51617 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 51618 len25 = len25 + 3 51619 goto __2822 51620 __2821: 51621 if !(fc&0x04 == Tuint32_t(0)) { 51622 goto __2823 51623 } 51624 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 51625 len25 = len25 + 4 51626 goto __2824 51627 __2823: 51628 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 51629 len25 = len25 + 5 51630 __2824: 51631 ; 51632 __2822: 51633 ; 51634 __2820: 51635 ; 51636 __2818: 51637 ; 51638 __2816: 51639 ; 51640 51641 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 51642 goto __2825 51643 } 51644 goto __2812 51645 __2825: 51646 ; 51647 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len25) 51648 goto __2811 51649 __2811: 51650 i++ 51651 goto __2810 51652 goto __2812 51653 __2812: 51654 ; 51655 goto __2605 51656 51657 __2620: 51658 return -44 51659 __2605: 51660 ; 51661 51662 if !(reptype == REPTYPE_POS) { 51663 goto __2826 51664 } 51665 goto __11 51666 __2826: 51667 ; // No backtracking 51668 51669 // After \C in UTF mode, Lstart_eptr might be in the middle of a 51670 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't go 51671 // too far. 51672 51673 __2827: 51674 51675 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 51676 goto __2830 51677 } 51678 goto __2829 51679 __2830: 51680 ; 51681 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 51682 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM221 51683 goto MATCH_RECURSE 51684 L_RM221: 51685 ; 51686 51687 if !(rrc != DMATCH_NOMATCH) { 51688 goto __2831 51689 } 51690 rrc = rrc 51691 goto RETURN_SWITCH 51692 __2831: 51693 ; 51694 51695 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 51696 __2832: 51697 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 51698 goto __2833 51699 } 51700 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 51701 goto __2832 51702 __2833: 51703 ; 51704 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_ANYNL && (*Theapframe)(unsafe.Pointer(F)).Feptr > *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr(1)))) == '\015') { 51705 goto __2834 51706 } 51707 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 51708 __2834: 51709 ; 51710 goto __2828 51711 __2828: 51712 goto __2827 51713 goto __2829 51714 __2829: 51715 ; 51716 goto __2604 51717 __2603: 51718 51719 /* Not UTF mode */ 51720 51721 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 51722 case OP_ANY: 51723 goto __2836 51724 51725 case OP_ALLANY: 51726 goto __2837 51727 case OP_ANYBYTE: 51728 goto __2838 51729 51730 case OP_ANYNL: 51731 goto __2839 51732 51733 case OP_NOT_HSPACE: 51734 goto __2840 51735 51736 case OP_HSPACE: 51737 goto __2841 51738 51739 case OP_NOT_VSPACE: 51740 goto __2842 51741 51742 case OP_VSPACE: 51743 goto __2843 51744 51745 case OP_NOT_DIGIT: 51746 goto __2844 51747 51748 case OP_DIGIT: 51749 goto __2845 51750 51751 case OP_NOT_WHITESPACE: 51752 goto __2846 51753 51754 case OP_WHITESPACE: 51755 goto __2847 51756 51757 case OP_NOT_WORDCHAR: 51758 goto __2848 51759 51760 case OP_WORDCHAR: 51761 goto __2849 51762 51763 default: 51764 goto __2850 51765 } 51766 goto __2835 51767 51768 __2836: 51769 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51770 __2851: 51771 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51772 goto __2853 51773 } 51774 51775 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51776 goto __2854 51777 } 51778 51779 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)) { 51780 goto __2855 51781 } 51782 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51783 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51784 goto __2856 51785 } 51786 return -2 51787 __2856: 51788 ; 51789 __2855: 51790 ; 51791 51792 goto __2853 51793 __2854: 51794 ; 51795 if !(func() int32 { 51796 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 51797 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+256, utf) != 0) 51798 } 51799 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 + 260))) && ((*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 + 260 + 1))))) 51800 }() != 0) { 51801 goto __2857 51802 } 51803 goto __2853 51804 __2857: 51805 ; 51806 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 + 260)))) { 51807 goto __2858 51808 } 51809 51810 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51811 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51812 goto __2859 51813 } 51814 return -2 51815 __2859: 51816 ; 51817 __2858: 51818 ; 51819 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51820 goto __2852 51821 __2852: 51822 i++ 51823 goto __2851 51824 goto __2853 51825 __2853: 51826 ; 51827 goto __2835 51828 51829 __2837: 51830 __2838: 51831 fc = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) - *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51832 if !(fc > Tuint32_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int64((*Theapframe)(unsafe.Pointer(F)).Feptr))/1)) { 51833 goto __2860 51834 } 51835 51836 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 51837 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)) { 51838 goto __2862 51839 } 51840 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51841 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51842 goto __2863 51843 } 51844 return -2 51845 __2863: 51846 ; 51847 __2862: 51848 ; 51849 51850 goto __2861 51851 __2860: 51852 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(fc) 51853 __2861: 51854 ; 51855 goto __2835 51856 51857 __2839: 51858 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51859 __2864: 51860 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51861 goto __2866 51862 } 51863 51864 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51865 goto __2867 51866 } 51867 51868 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)) { 51869 goto __2868 51870 } 51871 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51872 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51873 goto __2869 51874 } 51875 return -2 51876 __2869: 51877 ; 51878 __2868: 51879 ; 51880 51881 goto __2866 51882 __2867: 51883 ; 51884 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51885 if !(fc == Tuint32_t('\015')) { 51886 goto __2870 51887 } 51888 51889 if !(libc.PreIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51890 goto __2872 51891 } 51892 goto __2866 51893 __2872: 51894 ; 51895 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 51896 goto __2873 51897 } 51898 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51899 __2873: 51900 ; 51901 goto __2871 51902 __2870: 51903 51904 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 != Tuint32_t(uint8('\x85')))) { 51905 goto __2874 51906 } 51907 goto __2866 51908 __2874: 51909 ; 51910 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51911 __2871: 51912 ; 51913 goto __2865 51914 __2865: 51915 i++ 51916 goto __2864 51917 goto __2866 51918 __2866: 51919 ; 51920 goto __2835 51921 51922 __2840: 51923 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51924 __2875: 51925 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51926 goto __2877 51927 } 51928 51929 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51930 goto __2878 51931 } 51932 51933 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)) { 51934 goto __2879 51935 } 51936 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51937 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51938 goto __2880 51939 } 51940 return -2 51941 __2880: 51942 ; 51943 __2879: 51944 ; 51945 51946 goto __2877 51947 __2878: 51948 ; 51949 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 51950 default: 51951 goto __2882 51952 case '\011': 51953 goto __2883 51954 case '\040': 51955 goto __2884 51956 case int32(uint8('\xa0')): 51957 goto __2885 51958 } 51959 goto __2881 51960 51961 __2882: 51962 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51963 goto __2881 51964 __2883: 51965 __2884: 51966 __2885: 51967 goto ENDLOOP00 51968 __2881: 51969 ; 51970 goto __2876 51971 __2876: 51972 i++ 51973 goto __2875 51974 goto __2877 51975 __2877: 51976 ; 51977 ENDLOOP00: 51978 goto __2835 51979 51980 __2841: 51981 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51982 __2886: 51983 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51984 goto __2888 51985 } 51986 51987 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51988 goto __2889 51989 } 51990 51991 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)) { 51992 goto __2890 51993 } 51994 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51995 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51996 goto __2891 51997 } 51998 return -2 51999 __2891: 52000 ; 52001 __2890: 52002 ; 52003 52004 goto __2888 52005 __2889: 52006 ; 52007 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 52008 default: 52009 goto __2893 52010 case '\011': 52011 goto __2894 52012 case '\040': 52013 goto __2895 52014 case int32(uint8('\xa0')): 52015 goto __2896 52016 } 52017 goto __2892 52018 52019 __2893: 52020 goto ENDLOOP01 52021 __2894: 52022 __2895: 52023 __2896: 52024 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52025 goto __2892 52026 __2892: 52027 ; 52028 goto __2887 52029 __2887: 52030 i++ 52031 goto __2886 52032 goto __2888 52033 __2888: 52034 ; 52035 ENDLOOP01: 52036 goto __2835 52037 52038 __2842: 52039 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52040 __2897: 52041 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52042 goto __2899 52043 } 52044 52045 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52046 goto __2900 52047 } 52048 52049 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)) { 52050 goto __2901 52051 } 52052 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52053 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52054 goto __2902 52055 } 52056 return -2 52057 __2902: 52058 ; 52059 __2901: 52060 ; 52061 52062 goto __2899 52063 __2900: 52064 ; 52065 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 52066 default: 52067 goto __2904 52068 case '\012': 52069 goto __2905 52070 case '\013': 52071 goto __2906 52072 case '\014': 52073 goto __2907 52074 case '\015': 52075 goto __2908 52076 case int32(uint8('\x85')): 52077 goto __2909 52078 } 52079 goto __2903 52080 52081 __2904: 52082 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52083 goto __2903 52084 __2905: 52085 __2906: 52086 __2907: 52087 __2908: 52088 __2909: 52089 goto ENDLOOP02 52090 __2903: 52091 ; 52092 goto __2898 52093 __2898: 52094 i++ 52095 goto __2897 52096 goto __2899 52097 __2899: 52098 ; 52099 ENDLOOP02: 52100 goto __2835 52101 52102 __2843: 52103 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52104 __2910: 52105 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52106 goto __2912 52107 } 52108 52109 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52110 goto __2913 52111 } 52112 52113 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)) { 52114 goto __2914 52115 } 52116 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52117 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52118 goto __2915 52119 } 52120 return -2 52121 __2915: 52122 ; 52123 __2914: 52124 ; 52125 52126 goto __2912 52127 __2913: 52128 ; 52129 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 52130 default: 52131 goto __2917 52132 case '\012': 52133 goto __2918 52134 case '\013': 52135 goto __2919 52136 case '\014': 52137 goto __2920 52138 case '\015': 52139 goto __2921 52140 case int32(uint8('\x85')): 52141 goto __2922 52142 } 52143 goto __2916 52144 52145 __2917: 52146 goto ENDLOOP03 52147 __2918: 52148 __2919: 52149 __2920: 52150 __2921: 52151 __2922: 52152 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52153 goto __2916 52154 __2916: 52155 ; 52156 goto __2911 52157 __2911: 52158 i++ 52159 goto __2910 52160 goto __2912 52161 __2912: 52162 ; 52163 ENDLOOP03: 52164 goto __2835 52165 52166 __2844: 52167 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52168 __2923: 52169 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52170 goto __2925 52171 } 52172 52173 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52174 goto __2926 52175 } 52176 52177 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)) { 52178 goto __2927 52179 } 52180 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52181 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52182 goto __2928 52183 } 52184 return -2 52185 __2928: 52186 ; 52187 __2927: 52188 ; 52189 52190 goto __2925 52191 __2926: 52192 ; 52193 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) { 52194 goto __2929 52195 } 52196 goto __2925 52197 __2929: 52198 ; 52199 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52200 goto __2924 52201 __2924: 52202 i++ 52203 goto __2923 52204 goto __2925 52205 __2925: 52206 ; 52207 goto __2835 52208 52209 __2845: 52210 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52211 __2930: 52212 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52213 goto __2932 52214 } 52215 52216 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52217 goto __2933 52218 } 52219 52220 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)) { 52221 goto __2934 52222 } 52223 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52224 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52225 goto __2935 52226 } 52227 return -2 52228 __2935: 52229 ; 52230 __2934: 52231 ; 52232 52233 goto __2932 52234 __2933: 52235 ; 52236 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) { 52237 goto __2936 52238 } 52239 goto __2932 52240 __2936: 52241 ; 52242 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52243 goto __2931 52244 __2931: 52245 i++ 52246 goto __2930 52247 goto __2932 52248 __2932: 52249 ; 52250 goto __2835 52251 52252 __2846: 52253 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52254 __2937: 52255 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52256 goto __2939 52257 } 52258 52259 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52260 goto __2940 52261 } 52262 52263 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)) { 52264 goto __2941 52265 } 52266 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52267 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52268 goto __2942 52269 } 52270 return -2 52271 __2942: 52272 ; 52273 __2941: 52274 ; 52275 52276 goto __2939 52277 __2940: 52278 ; 52279 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) { 52280 goto __2943 52281 } 52282 goto __2939 52283 __2943: 52284 ; 52285 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52286 goto __2938 52287 __2938: 52288 i++ 52289 goto __2937 52290 goto __2939 52291 __2939: 52292 ; 52293 goto __2835 52294 52295 __2847: 52296 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52297 __2944: 52298 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52299 goto __2946 52300 } 52301 52302 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52303 goto __2947 52304 } 52305 52306 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)) { 52307 goto __2948 52308 } 52309 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52310 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52311 goto __2949 52312 } 52313 return -2 52314 __2949: 52315 ; 52316 __2948: 52317 ; 52318 52319 goto __2946 52320 __2947: 52321 ; 52322 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) { 52323 goto __2950 52324 } 52325 goto __2946 52326 __2950: 52327 ; 52328 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52329 goto __2945 52330 __2945: 52331 i++ 52332 goto __2944 52333 goto __2946 52334 __2946: 52335 ; 52336 goto __2835 52337 52338 __2848: 52339 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52340 __2951: 52341 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52342 goto __2953 52343 } 52344 52345 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52346 goto __2954 52347 } 52348 52349 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)) { 52350 goto __2955 52351 } 52352 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52353 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52354 goto __2956 52355 } 52356 return -2 52357 __2956: 52358 ; 52359 __2955: 52360 ; 52361 52362 goto __2953 52363 __2954: 52364 ; 52365 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) { 52366 goto __2957 52367 } 52368 goto __2953 52369 __2957: 52370 ; 52371 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52372 goto __2952 52373 __2952: 52374 i++ 52375 goto __2951 52376 goto __2953 52377 __2953: 52378 ; 52379 goto __2835 52380 52381 __2849: 52382 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52383 __2958: 52384 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52385 goto __2960 52386 } 52387 52388 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52389 goto __2961 52390 } 52391 52392 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)) { 52393 goto __2962 52394 } 52395 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52396 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52397 goto __2963 52398 } 52399 return -2 52400 __2963: 52401 ; 52402 __2962: 52403 ; 52404 52405 goto __2960 52406 __2961: 52407 ; 52408 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) { 52409 goto __2964 52410 } 52411 goto __2960 52412 __2964: 52413 ; 52414 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52415 goto __2959 52416 __2959: 52417 i++ 52418 goto __2958 52419 goto __2960 52420 __2960: 52421 ; 52422 goto __2835 52423 52424 __2850: 52425 return -44 52426 __2835: 52427 ; 52428 52429 if !(reptype == REPTYPE_POS) { 52430 goto __2965 52431 } 52432 goto __11 52433 __2965: 52434 ; // No backtracking 52435 52436 __2966: 52437 52438 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 52439 goto __2969 52440 } 52441 goto __2968 52442 __2969: 52443 ; 52444 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52445 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM34 52446 goto MATCH_RECURSE 52447 L_RM34: 52448 ; 52449 52450 if !(rrc != DMATCH_NOMATCH) { 52451 goto __2970 52452 } 52453 rrc = rrc 52454 goto RETURN_SWITCH 52455 __2970: 52456 ; 52457 52458 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 52459 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_ANYNL && (*Theapframe)(unsafe.Pointer(F)).Feptr > *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) && 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') { 52460 goto __2971 52461 } 52462 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 52463 __2971: 52464 ; 52465 goto __2967 52466 __2967: 52467 goto __2966 52468 goto __2968 52469 __2968: 52470 ; 52471 __2604: 52472 ; 52473 __2546: 52474 ; 52475 __2274: 52476 ; 52477 __1781: 52478 ; 52479 goto __13 // End of repeat character type processing 52480 52481 // ===================================================================== 52482 // Match a back reference, possibly repeatedly. Look past the end of the 52483 // item to see if there is repeat information following. The OP_REF and 52484 // OP_REFI opcodes are used for a reference to a numbered group or to a 52485 // non-duplicated named group. For a duplicated named group, OP_DNREF and 52486 // OP_DNREFI are used. In this case we must scan the list of groups to which 52487 // the name refers, and use the first one that is set. 52488 52489 __107: 52490 __108: 52491 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(libc.Bool32(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_DNREFI)) 52492 52493 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))))) 52494 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)) 52495 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 52496 52497 __2972: 52498 if !(libc.PostDecInt32(&count, 1) > 0) { 52499 goto __2973 52500 } 52501 52502 (*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)) 52503 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*8)) != libc.CplUint64(uint64(0))) { 52504 goto __2974 52505 } 52506 goto __2973 52507 __2974: 52508 ; 52509 slot += TPCRE2_SPTR8((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size) 52510 goto __2972 52511 __2973: 52512 ; 52513 52514 goto REF_REPEAT 52515 52516 __109: 52517 __110: 52518 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(libc.Bool32(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_REFI)) 52519 (*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)) 52520 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 52521 52522 // Set up for repetition, or handle the non-repeated case. The maximum and 52523 // minimum must be in the heap frame, but as they are short-term values, we 52524 // use temporary fields. 52525 52526 REF_REPEAT: 52527 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 52528 case OP_CRSTAR: 52529 goto __2976 52530 case OP_CRMINSTAR: 52531 goto __2977 52532 case OP_CRPLUS: 52533 goto __2978 52534 case OP_CRMINPLUS: 52535 goto __2979 52536 case OP_CRQUERY: 52537 goto __2980 52538 case OP_CRMINQUERY: 52539 goto __2981 52540 52541 case OP_CRRANGE: 52542 goto __2982 52543 case OP_CRMINRANGE: 52544 goto __2983 52545 52546 default: 52547 goto __2984 52548 } 52549 goto __2975 52550 52551 __2976: 52552 __2977: 52553 __2978: 52554 __2979: 52555 __2980: 52556 __2981: 52557 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_CRSTAR) 52558 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 52559 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 52560 reptype = rep_typ[fc] 52561 goto __2975 52562 52563 __2982: 52564 __2983: 52565 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 52566 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 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)))) 52567 reptype = rep_typ[int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))-OP_CRSTAR] 52568 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) == Tuint32_t(0)) { 52569 goto __2985 52570 } 52571 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 52572 __2985: 52573 ; // Max 0 => infinity 52574 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 52575 goto __2975 52576 52577 __2984: /* No repeat follows */ 52578 52579 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))), F, mb, bp) 52580 if !(rrc != 0) { 52581 goto __2986 52582 } 52583 52584 if !(rrc > 0) { 52585 goto __2987 52586 } 52587 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 52588 __2987: 52589 ; // Partial match 52590 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52591 goto __2988 52592 } 52593 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)) { 52594 goto __2989 52595 } 52596 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52597 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52598 goto __2990 52599 } 52600 return -2 52601 __2990: 52602 ; 52603 __2989: 52604 ; 52605 __2988: 52606 ; 52607 52608 rrc = DMATCH_NOMATCH 52609 goto RETURN_SWITCH 52610 52611 __2986: 52612 ; 52613 52614 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp))) 52615 goto __11 // With the main loop 52616 __2975: 52617 ; 52618 52619 // Handle repeated back references. If a set group has length zero, just 52620 // continue with the main loop, because it matches however many times. For an 52621 // unset reference, if the minimum is zero, we can also just continue. We can 52622 // also continue if PCRE2_MATCH_UNSET_BACKREF is set, because this makes unset 52623 // group behave as a zero-length group. For any other unset cases, carrying 52624 // on will result in NOMATCH. 52625 52626 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*8)) != libc.CplUint64(uint64(0))) { 52627 goto __2991 52628 } 52629 52630 if !(*(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*8)) == *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size+uint64(1))*8))) { 52631 goto __2993 52632 } 52633 goto __11 52634 __2993: 52635 ; 52636 goto __2992 52637 __2991: /* Group is not set */ 52638 52639 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == Tuint32_t(0) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0)) { 52640 goto __2994 52641 } 52642 goto __11 52643 __2994: 52644 ; 52645 __2992: 52646 ; 52647 52648 // First, ensure the minimum number of matches are present. 52649 52650 i = Tuint32_t(1) 52651 __2995: 52652 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 52653 goto __2997 52654 } 52655 52656 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))), F, mb, bp+8) 52657 if !(rrc != 0) { 52658 goto __2998 52659 } 52660 52661 if !(rrc > 0) { 52662 goto __2999 52663 } 52664 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 52665 __2999: 52666 ; // Partial match 52667 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52668 goto __3000 52669 } 52670 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)) { 52671 goto __3001 52672 } 52673 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52674 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52675 goto __3002 52676 } 52677 return -2 52678 __3002: 52679 ; 52680 __3001: 52681 ; 52682 __3000: 52683 ; 52684 52685 rrc = DMATCH_NOMATCH 52686 goto RETURN_SWITCH 52687 52688 __2998: 52689 ; 52690 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 8))) 52691 goto __2996 52692 __2996: 52693 i++ 52694 goto __2995 52695 goto __2997 52696 __2997: 52697 ; 52698 52699 // If min = max, we are done. They are not both allowed to be zero. 52700 52701 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52702 goto __3003 52703 } 52704 goto __11 52705 __3003: 52706 ; 52707 52708 // If minimizing, keep trying and advancing the pointer. 52709 52710 if !(reptype == REPTYPE_MIN) { 52711 goto __3004 52712 } 52713 52714 __3006: 52715 52716 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52717 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM20 52718 goto MATCH_RECURSE 52719 L_RM20: 52720 ; 52721 52722 if !(rrc != DMATCH_NOMATCH) { 52723 goto __3009 52724 } 52725 rrc = rrc 52726 goto RETURN_SWITCH 52727 __3009: 52728 ; 52729 52730 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52731 goto __3010 52732 } 52733 rrc = DMATCH_NOMATCH 52734 goto RETURN_SWITCH 52735 __3010: 52736 ; 52737 52738 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))), F, mb, bp+16) 52739 if !(rrc != 0) { 52740 goto __3011 52741 } 52742 52743 if !(rrc > 0) { 52744 goto __3012 52745 } 52746 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 52747 __3012: 52748 ; // Partial match 52749 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52750 goto __3013 52751 } 52752 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)) { 52753 goto __3014 52754 } 52755 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52756 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52757 goto __3015 52758 } 52759 return -2 52760 __3015: 52761 ; 52762 __3014: 52763 ; 52764 __3013: 52765 ; 52766 52767 rrc = DMATCH_NOMATCH 52768 goto RETURN_SWITCH 52769 52770 __3011: 52771 ; 52772 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 16))) 52773 goto __3007 52774 __3007: 52775 goto __3006 52776 goto __3008 52777 __3008: 52778 ; 52779 // Control never gets here 52780 goto __3005 52781 __3004: 52782 samelengths = DTRUE 52783 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr // Starting position 52784 (*Theapframe)(unsafe.Pointer(F)).Flength = *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size+uint64(1))*8)) - *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*8)) 52785 52786 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52787 __3016: 52788 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52789 goto __3018 52790 } 52791 52792 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))), F, mb, bp+24) 52793 if !(rrc != 0) { 52794 goto __3019 52795 } 52796 52797 // Can't use CHECK_PARTIAL because we don't want to update Feptr in 52798 // the soft partial matching case. 52799 52800 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) { 52801 goto __3020 52802 } 52803 52804 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52805 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52806 goto __3021 52807 } 52808 return -2 52809 __3021: 52810 ; 52811 __3020: 52812 ; 52813 goto __3018 52814 __3019: 52815 ; 52816 52817 if !(*(*Tsize_t)(unsafe.Pointer(bp + 24)) != (*Theapframe)(unsafe.Pointer(F)).Flength) { 52818 goto __3022 52819 } 52820 samelengths = DFALSE 52821 __3022: 52822 ; 52823 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 24))) 52824 goto __3017 52825 __3017: 52826 i++ 52827 goto __3016 52828 goto __3018 52829 __3018: 52830 ; 52831 52832 // If the length matched for each repetition is the same as the length of 52833 // the captured group, we can easily work backwards. This is the normal 52834 // case. However, in caseless UTF-8 mode there are pairs of case-equivalent 52835 // characters whose lengths (in terms of code units) differ. However, this 52836 // is very rare, so we handle it by re-matching fewer and fewer times. 52837 52838 if !(samelengths != 0) { 52839 goto __3023 52840 } 52841 52842 __3025: 52843 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 52844 goto __3026 52845 } 52846 52847 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52848 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM21 52849 goto MATCH_RECURSE 52850 L_RM21: 52851 ; 52852 52853 if !(rrc != DMATCH_NOMATCH) { 52854 goto __3027 52855 } 52856 rrc = rrc 52857 goto RETURN_SWITCH 52858 __3027: 52859 ; 52860 52861 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) -= TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 52862 goto __3025 52863 __3026: 52864 ; 52865 goto __3024 52866 __3023: 52867 52868 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = i 52869 __3028: 52870 52871 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52872 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM22 52873 goto MATCH_RECURSE 52874 L_RM22: 52875 ; 52876 52877 if !(rrc != DMATCH_NOMATCH) { 52878 goto __3031 52879 } 52880 rrc = rrc 52881 goto RETURN_SWITCH 52882 __3031: 52883 ; 52884 52885 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 52886 goto __3032 52887 } 52888 goto __3030 52889 __3032: 52890 ; // Failed after minimal repetition 52891 (*Theapframe)(unsafe.Pointer(F)).Feptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) 52892 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))-- 52893 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52894 __3033: 52895 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52896 goto __3035 52897 } 52898 52899 match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))), F, mb, bp+32) 52900 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 32))) 52901 goto __3034 52902 __3034: 52903 i++ 52904 goto __3033 52905 goto __3035 52906 __3035: 52907 ; 52908 goto __3029 52909 __3029: 52910 goto __3028 52911 goto __3030 52912 __3030: 52913 ; 52914 __3024: 52915 ; 52916 52917 rrc = DMATCH_NOMATCH 52918 goto RETURN_SWITCH 52919 52920 __3005: 52921 ; 52922 // Control never gets here 52923 52924 // ========================================================================= 52925 // Opcodes for the start of various parenthesized items 52926 // ========================================================================= 52927 52928 // In all cases, if the result of RMATCH() is MATCH_THEN, check whether the 52929 // (*THEN) is within the current branch by comparing the address of OP_THEN 52930 // that is passed back with the end of the branch. If (*THEN) is within the 52931 // current branch, and the branch is one of two or more alternatives (it 52932 // either starts or ends with OP_ALT), we have reached the limit of THEN's 52933 // action, so convert the return code to NOMATCH, which will cause normal 52934 // backtracking to happen from now on. Otherwise, THEN is passed back to an 52935 // outer alternative. This implements Perl's treatment of parenthesized 52936 // groups, where a group not containing | does not affect the current 52937 // alternative, that is, (X) is NOT the same as (X|(*F)). 52938 52939 // ===================================================================== 52940 // BRAZERO, BRAMINZERO and SKIPZERO occur just before a non-possessive 52941 // bracket group, indicating that it may occur zero times. It may repeat 52942 // infinitely, or not at all - i.e. it could be ()* or ()? or even (){0} in 52943 // the pattern. Brackets with fixed upper repeat limits are compiled as a 52944 // number of copies, with the optional ones preceded by BRAZERO or BRAMINZERO. 52945 // Possessive groups with possible zero repeats are preceded by BRAPOSZERO. 52946 52947 __111: 52948 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) 52949 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) 52950 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM9 52951 goto MATCH_RECURSE 52952 L_RM9: 52953 ; 52954 52955 if !(rrc != DMATCH_NOMATCH) { 52956 goto __3036 52957 } 52958 rrc = rrc 52959 goto RETURN_SWITCH 52960 __3036: 52961 ; 52962 52963 __3037: 52964 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 2))))) 52965 goto __3038 52966 __3038: 52967 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) == OP_ALT { 52968 goto __3037 52969 } 52970 goto __3039 52971 __3039: 52972 ; 52973 (*Theapframe)(unsafe.Pointer(F)).Fecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + uintptr(1) + uintptr(DLINK_SIZE) 52974 goto __13 52975 52976 __112: 52977 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) 52978 __3040: 52979 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 2))))) 52980 goto __3041 52981 __3041: 52982 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) == OP_ALT { 52983 goto __3040 52984 } 52985 goto __3042 52986 __3042: 52987 ; 52988 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + uintptr(1) + uintptr(DLINK_SIZE) 52989 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM10 52990 goto MATCH_RECURSE 52991 L_RM10: 52992 ; 52993 52994 if !(rrc != DMATCH_NOMATCH) { 52995 goto __3043 52996 } 52997 rrc = rrc 52998 goto RETURN_SWITCH 52999 __3043: 53000 ; 53001 53002 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 53003 goto __13 53004 53005 __113: 53006 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 53007 __3044: 53008 *(*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))))) 53009 goto __3045 53010 __3045: 53011 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53012 goto __3044 53013 } 53014 goto __3046 53015 __3046: 53016 ; 53017 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53018 goto __13 53019 53020 // ===================================================================== 53021 // Handle possessive brackets with an unlimited repeat. The end of these 53022 // brackets will always be OP_KETRPOS, which returns MATCH_KETRPOS without 53023 // going further in the pattern. 53024 53025 __114: 53026 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(DTRUE) // Zero repeat is allowed 53027 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(1) 53028 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) { 53029 goto __3047 53030 } 53031 goto POSSESSIVE_CAPTURE 53032 __3047: 53033 ; 53034 goto POSSESSIVE_NON_CAPTURE 53035 53036 __115: 53037 __116: 53038 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(DFALSE) // Zero repeat not allowed 53039 53040 POSSESSIVE_NON_CAPTURE: 53041 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_NOCAPTURE // Remembered frame type 53042 goto POSSESSIVE_GROUP 53043 53044 __117: 53045 __118: 53046 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(DFALSE) // Zero repeat not allowed 53047 53048 POSSESSIVE_CAPTURE: 53049 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)))) 53050 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_CAPTURE | number // Remembered frame type 53051 53052 POSSESSIVE_GROUP: 53053 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = Tuint32_t(DFALSE) // Never matched 53054 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode // Start of this group 53055 53056 __3048: 53057 53058 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr // Position at group start 53059 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 53060 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53061 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM8 53062 goto MATCH_RECURSE 53063 L_RM8: 53064 ; 53065 53066 if !(rrc == -998) { 53067 goto __3051 53068 } 53069 53070 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = Tuint32_t(DTRUE) // Matched at least once 53071 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 53072 goto __3052 53073 } /* Empty match; skip to end */ 53074 53075 __3053: 53076 *(*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))))) 53077 goto __3054 53078 __3054: 53079 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53080 goto __3053 53081 } 53082 goto __3055 53083 __3055: 53084 ; 53085 goto __3050 53086 __3052: 53087 ; 53088 53089 (*Theapframe)(unsafe.Pointer(F)).Fecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) 53090 goto __3049 53091 __3051: 53092 ; 53093 53094 // See comment above about handling THEN. 53095 53096 if !(rrc == -993) { 53097 goto __3056 53098 } 53099 53100 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))))) 53101 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)) { 53102 goto __3057 53103 } 53104 rrc = DMATCH_NOMATCH 53105 __3057: 53106 ; 53107 __3056: 53108 ; 53109 53110 if !(rrc != DMATCH_NOMATCH) { 53111 goto __3058 53112 } 53113 rrc = rrc 53114 goto RETURN_SWITCH 53115 __3058: 53116 ; 53117 53118 *(*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))))) 53119 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53120 goto __3059 53121 } 53122 goto __3050 53123 __3059: 53124 ; 53125 goto __3049 53126 __3049: 53127 goto __3048 53128 goto __3050 53129 __3050: 53130 ; 53131 53132 // Success if matched something or zero repeat allowed 53133 53134 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) != 0 || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != 0) { 53135 goto __3060 53136 } 53137 53138 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53139 goto __13 53140 __3060: 53141 ; 53142 53143 rrc = DMATCH_NOMATCH 53144 goto RETURN_SWITCH 53145 53146 // ===================================================================== 53147 // Handle non-capturing brackets that cannot match an empty string. When we 53148 // get to the final alternative within the brackets, as long as there are no 53149 // THEN's in the pattern, we can optimize by not recording a new backtracking 53150 // point. (Ideally we should test for a THEN within this group, but we don't 53151 // have that information.) Don't do this if we are at the very top level, 53152 // however, because that would make handling assertions and once-only brackets 53153 // messier when there is nothing to go back to. 53154 53155 __119: 53156 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fhasthen != 0 || (*Theapframe)(unsafe.Pointer(F)).Frdepth == Tuint32_t(0)) { 53157 goto __3061 53158 } 53159 53160 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 53161 goto GROUPLOOP 53162 __3061: 53163 ; 53164 53165 __3062: 53166 53167 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*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))))) 53168 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) != OP_ALT) { 53169 goto __3065 53170 } 53171 goto __3064 53172 __3065: 53173 ; 53174 53175 /* This is never the final branch. We do not need to test for MATCH_THEN 53176 here because this code is not used when there is a THEN in the pattern. */ 53177 53178 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53179 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM1 53180 goto MATCH_RECURSE 53181 L_RM1: 53182 ; 53183 53184 if !(rrc != DMATCH_NOMATCH) { 53185 goto __3066 53186 } 53187 rrc = rrc 53188 goto RETURN_SWITCH 53189 __3066: 53190 ; 53191 53192 (*Theapframe)(unsafe.Pointer(F)).Fecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) 53193 goto __3063 53194 __3063: 53195 goto __3062 53196 goto __3064 53197 __3064: 53198 ; 53199 53200 // Hit the start of the final branch. Continue at this level. 53201 53202 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53203 goto __13 53204 53205 // ===================================================================== 53206 // Handle a capturing bracket, other than those that are possessive with an 53207 // unlimited repeat. 53208 53209 __120: 53210 __121: 53211 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = 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)))) 53212 goto GROUPLOOP 53213 53214 // ===================================================================== 53215 // Atomic groups and non-capturing brackets that can match an empty string 53216 // must record a backtracking point and also set up a chained frame. 53217 53218 __122: 53219 __123: 53220 __124: 53221 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53222 53223 GROUPLOOP: 53224 __3067: 53225 53226 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 53227 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53228 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM2 53229 goto MATCH_RECURSE 53230 L_RM2: 53231 ; 53232 53233 if !(rrc == -993) { 53234 goto __3070 53235 } 53236 53237 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))))) 53238 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)) { 53239 goto __3071 53240 } 53241 rrc = DMATCH_NOMATCH 53242 __3071: 53243 ; 53244 __3070: 53245 ; 53246 if !(rrc != DMATCH_NOMATCH) { 53247 goto __3072 53248 } 53249 rrc = rrc 53250 goto RETURN_SWITCH 53251 __3072: 53252 ; 53253 53254 *(*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))))) 53255 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53256 goto __3073 53257 } 53258 rrc = DMATCH_NOMATCH 53259 goto RETURN_SWITCH 53260 __3073: 53261 ; 53262 53263 goto __3068 53264 __3068: 53265 goto __3067 53266 goto __3069 53267 __3069: 53268 ; 53269 // Control never reaches here. 53270 53271 // ===================================================================== 53272 // Recursion either matches the current regex, or some subexpression. The 53273 // offset data is the offset to the starting bracket from the start of the 53274 // whole pattern. (This is so that it works from duplicated subpatterns.) 53275 53276 __125: 53277 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))))) 53278 if bracode == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_code { 53279 number = uint32(0) 53280 } else { 53281 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 4)))) 53282 } 53283 53284 // If we are already in a recursion, check for repeating the same one 53285 // without advancing the subject pointer. This should catch convoluted mutual 53286 // recursions. (Some simple cases are caught at compile time.) 53287 53288 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 53289 goto __3074 53290 } 53291 53292 offset = (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset 53293 __3075: 53294 if !(offset != libc.CplUint64(uint64(0))) { 53295 goto __3076 53296 } 53297 53298 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(offset) 53299 P = N - uintptr(frame_size) 53300 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type == DGF_RECURSE|number) { 53301 goto __3077 53302 } 53303 53304 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == (*Theapframe)(unsafe.Pointer(P)).Feptr) { 53305 goto __3078 53306 } 53307 return -52 53308 __3078: 53309 ; 53310 goto __3076 53311 __3077: 53312 ; 53313 offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 53314 goto __3075 53315 __3076: 53316 ; 53317 __3074: 53318 ; 53319 53320 // Now run the recursion, branch by branch. 53321 53322 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = bracode 53323 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_RECURSE | number 53324 53325 __3079: 53326 53327 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 53328 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))]) 53329 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM11 53330 goto MATCH_RECURSE 53331 L_RM11: 53332 ; 53333 53334 next_ecode2 = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 2))))) 53335 53336 // Handle backtracking verbs, which are defined in a range that can 53337 // easily be tested for. PCRE does not allow THEN, SKIP, PRUNE or COMMIT to 53338 // escape beyond a recursion; they cause a NOMATCH for the entire recursion. 53339 // 53340 // When one of these verbs triggers, the current recursion group number is 53341 // recorded. If it matches the recursion we are processing, the verb 53342 // happened within the recursion and we must deal with it. Otherwise it must 53343 // have happened after the recursion completed, and so has to be passed 53344 // back. See comment above about handling THEN. 53345 53346 if !(rrc >= -997 && rrc <= -993 && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse == *(*Tuint32_t)(unsafe.Pointer(F + 56))^DGF_RECURSE) { 53347 goto __3082 53348 } 53349 53350 if !(rrc == -993 && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr < next_ecode2 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) == OP_ALT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_ecode2))) == OP_ALT)) { 53351 goto __3083 53352 } 53353 rrc = DMATCH_NOMATCH 53354 goto __3084 53355 __3083: 53356 rrc = DMATCH_NOMATCH 53357 goto RETURN_SWITCH 53358 __3084: 53359 ; 53360 53361 __3082: 53362 ; 53363 53364 // Note that carrying on after (*ACCEPT) in a recursion is handled in the 53365 // OP_ACCEPT code. Nothing needs to be done here. 53366 53367 if !(rrc != DMATCH_NOMATCH) { 53368 goto __3085 53369 } 53370 rrc = rrc 53371 goto RETURN_SWITCH 53372 __3085: 53373 ; 53374 53375 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = next_ecode2 53376 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) != OP_ALT) { 53377 goto __3086 53378 } 53379 rrc = DMATCH_NOMATCH 53380 goto RETURN_SWITCH 53381 __3086: 53382 ; 53383 53384 goto __3080 53385 __3080: 53386 goto __3079 53387 goto __3081 53388 __3081: 53389 ; 53390 // Control never reaches here. 53391 53392 // ===================================================================== 53393 // Positive assertions are like other groups except that PCRE doesn't allow 53394 // the effect of (*THEN) to escape beyond an assertion; it is therefore 53395 // treated as NOMATCH. (*ACCEPT) is treated as successful assertion, with its 53396 // captures and mark retained. Any other return is an error. 53397 53398 __126: 53399 __127: 53400 __128: 53401 __129: 53402 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53403 __3087: 53404 53405 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 53406 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53407 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM3 53408 goto MATCH_RECURSE 53409 L_RM3: 53410 ; 53411 53412 if !(rrc == -999) { 53413 goto __3090 53414 } 53415 53416 libc.Xmemcpy(tls, F+128, 53417 assert_accept_frame+uintptr(uint64(uintptr(0)+128)), 53418 (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 53419 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top 53420 (*Theapframe)(unsafe.Pointer(F)).Fmark = (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Fmark 53421 goto __3089 53422 __3090: 53423 ; 53424 if !(rrc != DMATCH_NOMATCH && rrc != -993) { 53425 goto __3091 53426 } 53427 rrc = rrc 53428 goto RETURN_SWITCH 53429 __3091: 53430 ; 53431 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 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53434 goto __3092 53435 } 53436 rrc = DMATCH_NOMATCH 53437 goto RETURN_SWITCH 53438 __3092: 53439 ; 53440 53441 goto __3088 53442 __3088: 53443 goto __3087 53444 goto __3089 53445 __3089: 53446 ; 53447 53448 __3093: 53449 *(*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))))) 53450 goto __3094 53451 __3094: 53452 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53453 goto __3093 53454 } 53455 goto __3095 53456 __3095: 53457 ; 53458 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53459 goto __13 53460 53461 // ===================================================================== 53462 // Handle negative assertions. Loop for each non-matching branch as for 53463 // positive assertions. 53464 53465 __130: 53466 __131: 53467 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53468 53469 __3096: 53470 53471 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 53472 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53473 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM4 53474 goto MATCH_RECURSE 53475 L_RM4: 53476 ; 53477 53478 switch rrc { 53479 case -999: 53480 goto __3100 // Assertion matched, therefore it fails. 53481 case DMATCH_MATCH: 53482 goto __3101 53483 53484 case DMATCH_NOMATCH: 53485 goto __3102 // Branch failed, try next if present. 53486 case -993: 53487 goto __3103 53488 53489 case -997: 53490 goto __3104 // Assertion forced to fail, therefore continue. 53491 case -995: 53492 goto __3105 53493 case -996: 53494 goto __3106 53495 53496 default: 53497 goto __3107 53498 } 53499 goto __3099 53500 53501 __3100: // Assertion matched, therefore it fails. 53502 __3101: 53503 rrc = DMATCH_NOMATCH 53504 goto RETURN_SWITCH 53505 53506 __3102: // Branch failed, try next if present. 53507 __3103: 53508 *(*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))))) 53509 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53510 goto __3108 53511 } 53512 goto ASSERT_NOT_FAILED 53513 __3108: 53514 ; 53515 goto __3099 53516 53517 __3104: // Assertion forced to fail, therefore continue. 53518 __3105: 53519 __3106: 53520 __3109: 53521 *(*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))))) 53522 goto __3110 53523 __3110: 53524 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53525 goto __3109 53526 } 53527 goto __3111 53528 __3111: 53529 ; 53530 goto ASSERT_NOT_FAILED 53531 53532 __3107: /* Pass back any other return */ 53533 rrc = rrc 53534 goto RETURN_SWITCH 53535 53536 __3099: 53537 ; 53538 goto __3097 53539 __3097: 53540 goto __3096 53541 goto __3098 53542 __3098: 53543 ; 53544 53545 // None of the branches have matched or there was a backtrack to (*COMMIT), 53546 // (*SKIP), (*PRUNE), or (*THEN) in the last branch. This is success for a 53547 // negative assertion, so carry on. 53548 53549 ASSERT_NOT_FAILED: 53550 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53551 goto __13 53552 53553 // ===================================================================== 53554 // The callout item calls an external function, if one is provided, passing 53555 // details of the match so far. This is mainly for debugging, though the 53556 // function is able to force a failure. 53557 53558 __132: 53559 __133: 53560 rrc = do_callout1(tls, F, mb, bp) 53561 if !(rrc > 0) { 53562 goto __3112 53563 } 53564 rrc = DMATCH_NOMATCH 53565 goto RETURN_SWITCH 53566 __3112: 53567 ; 53568 53569 if !(rrc < 0) { 53570 goto __3113 53571 } 53572 rrc = rrc 53573 goto RETURN_SWITCH 53574 __3113: 53575 ; 53576 53577 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp))) 53578 goto __13 53579 53580 // ===================================================================== 53581 // Conditional group: compilation checked that there are no more than two 53582 // branches. If the condition is false, skipping the first branch takes us 53583 // past the end of the item if there is only one branch, but that's exactly 53584 // what we want. 53585 53586 __134: 53587 __135: 53588 53589 // The variable Flength will be added to Fecode when the condition is 53590 // false, to get to the second branch. Setting it to the offset to the ALT or 53591 // KET, then incrementing Fecode achieves this effect. However, if the second 53592 // branch is non-existent, we must point to the KET so that the end of the 53593 // group is correctly processed. We now have Fecode pointing to the condition 53594 // or callout. 53595 53596 (*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 53597 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr((*Theapframe)(unsafe.Pointer(F)).Flength)))) != OP_ALT) { 53598 goto __3114 53599 } 53600 *(*Tsize_t)(unsafe.Pointer(F + 24)) -= uint64(1 + DLINK_SIZE) 53601 __3114: 53602 ; 53603 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) // From this opcode 53604 53605 // Because of the way auto-callout works during compile, a callout item is 53606 // inserted between OP_COND and an assertion condition. Such a callout can 53607 // also be inserted manually. 53608 53609 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) { 53610 goto __3115 53611 } 53612 53613 rrc = do_callout1(tls, F, mb, bp) 53614 if !(rrc > 0) { 53615 goto __3116 53616 } 53617 rrc = DMATCH_NOMATCH 53618 goto RETURN_SWITCH 53619 __3116: 53620 ; 53621 53622 if !(rrc < 0) { 53623 goto __3117 53624 } 53625 rrc = rrc 53626 goto RETURN_SWITCH 53627 __3117: 53628 ; 53629 53630 // Advance Fecode past the callout, so it now points to the condition. We 53631 // must adjust Flength so that the value of Fecode+Flength is unchanged. 53632 53633 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp))) 53634 *(*Tsize_t)(unsafe.Pointer(F + 24)) -= *(*Tsize_t)(unsafe.Pointer(bp)) 53635 __3115: 53636 ; 53637 53638 // Test the various possible conditions 53639 53640 condition = DFALSE 53641 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 53642 case OP_RREF: 53643 goto __3119 53644 53645 case OP_DNRREF: 53646 goto __3120 53647 53648 case OP_CREF: 53649 goto __3121 53650 53651 case OP_DNCREF: 53652 goto __3122 53653 53654 case OP_FALSE: 53655 goto __3123 53656 case OP_FAIL: 53657 goto __3124 53658 53659 case OP_TRUE: 53660 goto __3125 53661 53662 // The condition is an assertion. Run code similar to the assertion code 53663 // above. 53664 53665 default: 53666 goto __3126 53667 } 53668 goto __3118 53669 53670 __3119: // Group recursion test 53671 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 53672 goto __3127 53673 } 53674 53675 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)))) 53676 condition = libc.Bool32(number == Tuint32_t(DRREF_ANY) || number == (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse) 53677 __3127: 53678 ; 53679 goto __3118 53680 53681 __3120: // Duplicate named group recursion test 53682 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 53683 goto __3128 53684 } 53685 53686 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))))) 53687 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)) 53688 __3129: 53689 if !(libc.PostDecInt32(&count1, 1) > 0) { 53690 goto __3130 53691 } 53692 53693 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot1 + 1)))) 53694 condition = libc.Bool32(number == (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse) 53695 if !(condition != 0) { 53696 goto __3131 53697 } 53698 goto __3130 53699 __3131: 53700 ; 53701 slot1 += TPCRE2_SPTR8((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size) 53702 goto __3129 53703 __3130: 53704 ; 53705 __3128: 53706 ; 53707 goto __3118 53708 53709 __3121: // Numbered group used test 53710 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 53711 condition = libc.Bool32(offset < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) != libc.CplUint64(uint64(0))) 53712 goto __3118 53713 53714 __3122: /* Duplicate named group used test */ 53715 53716 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))))) 53717 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)) 53718 __3132: 53719 if !(libc.PostDecInt32(&count2, 1) > 0) { 53720 goto __3133 53721 } 53722 53723 offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot2 + 1))))<<1 - uint32(2)) 53724 condition = libc.Bool32(offset < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) != libc.CplUint64(uint64(0))) 53725 if !(condition != 0) { 53726 goto __3134 53727 } 53728 goto __3133 53729 __3134: 53730 ; 53731 slot2 += TPCRE2_SPTR8((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size) 53732 goto __3132 53733 __3133: 53734 ; 53735 53736 goto __3118 53737 53738 __3123: 53739 __3124: // The assertion (?!) becomes OP_FAIL 53740 goto __3118 53741 53742 __3125: 53743 condition = DTRUE 53744 goto __3118 53745 53746 // The condition is an assertion. Run code similar to the assertion code 53747 // above. 53748 53749 __3126: 53750 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = 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)) 53751 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode 53752 53753 __3135: 53754 53755 group_frame_type = DGF_CONDASSERT | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 53756 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))]) 53757 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM5 53758 goto MATCH_RECURSE 53759 L_RM5: 53760 ; 53761 53762 switch rrc { 53763 case -999: 53764 goto __3139 53765 53766 // Fall through 53767 // In the case of a match, the captures have already been put into 53768 // the current frame. 53769 53770 case DMATCH_MATCH: 53771 goto __3140 53772 53773 // PCRE doesn't allow the effect of (*THEN) to escape beyond an 53774 // assertion; it is therefore always treated as NOMATCH. 53775 53776 case DMATCH_NOMATCH: 53777 goto __3141 53778 case -993: 53779 goto __3142 53780 53781 // These force no match without checking other branches. 53782 53783 case -997: 53784 goto __3143 53785 case -995: 53786 goto __3144 53787 case -996: 53788 goto __3145 53789 53790 default: 53791 goto __3146 53792 } 53793 goto __3138 53794 53795 __3139: // Save captures 53796 libc.Xmemcpy(tls, F+128, 53797 assert_accept_frame+uintptr(uint64(uintptr(0)+128)), 53798 (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 53799 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top 53800 53801 // Fall through 53802 // In the case of a match, the captures have already been put into 53803 // the current frame. 53804 53805 __3140: 53806 condition = TBOOL(*(*Tuint32_t)(unsafe.Pointer(F + 56))) // TRUE for positive assertion 53807 goto __3138 53808 53809 // PCRE doesn't allow the effect of (*THEN) to escape beyond an 53810 // assertion; it is therefore always treated as NOMATCH. 53811 53812 __3141: 53813 __3142: 53814 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 2))))) 53815 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) == OP_ALT) { 53816 goto __3147 53817 } 53818 goto __3136 53819 __3147: 53820 ; // Try next branch 53821 condition = libc.BoolInt32(!(*(*Tuint32_t)(unsafe.Pointer(F + 56)) != 0)) // TRUE for negative assertion 53822 goto __3138 53823 53824 // These force no match without checking other branches. 53825 53826 __3143: 53827 __3144: 53828 __3145: 53829 condition = libc.BoolInt32(!(*(*Tuint32_t)(unsafe.Pointer(F + 56)) != 0)) 53830 goto __3138 53831 53832 __3146: 53833 rrc = rrc 53834 goto RETURN_SWITCH 53835 53836 __3138: 53837 ; 53838 goto __3137 // Out of the branch loop 53839 goto __3136 53840 __3136: 53841 goto __3135 53842 goto __3137 53843 __3137: 53844 ; 53845 53846 // If the condition is true, find the end of the assertion so that 53847 // advancing past it gets us to the start of the first branch. 53848 53849 if !(condition != 0) { 53850 goto __3148 53851 } 53852 53853 __3149: 53854 *(*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))))) 53855 goto __3150 53856 __3150: 53857 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53858 goto __3149 53859 } 53860 goto __3151 53861 __3151: 53862 ; 53863 __3148: 53864 ; 53865 goto __3118 // End of assertion condition 53866 __3118: 53867 ; 53868 53869 // Choose branch according to the condition. 53870 53871 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += func() uintptr { 53872 if condition != 0 { 53873 return uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53874 } 53875 return uintptr((*Theapframe)(unsafe.Pointer(F)).Flength) 53876 }() 53877 53878 // If the opcode is OP_SCOND it means we are at a repeated conditional 53879 // group that might match an empty string. We must therefore descend a level 53880 // so that the start is remembered for checking. For OP_COND we can just 53881 // continue at this level. 53882 53883 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_SCOND) { 53884 goto __3152 53885 } 53886 53887 group_frame_type = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53888 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 53889 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM35 53890 goto MATCH_RECURSE 53891 L_RM35: 53892 ; 53893 53894 rrc = rrc 53895 goto RETURN_SWITCH 53896 53897 __3152: 53898 ; 53899 goto __13 53900 53901 // ========================================================================= 53902 // End of start of parenthesis opcodes 53903 // ========================================================================= 53904 53905 // ===================================================================== 53906 // Move the subject pointer back. This occurs only at the start of each 53907 // branch of a lookbehind assertion. If we are too close to the start to move 53908 // back, fail. When working with UTF-8 we move back a number of characters, 53909 // not bytes. 53910 53911 __136: 53912 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)))) 53913 if !(utf != 0) { 53914 goto __3153 53915 } 53916 53917 __3155: 53918 if !(libc.PostDecUint32(&number, 1) > Tuint32_t(0)) { 53919 goto __3156 53920 } 53921 53922 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject) { 53923 goto __3157 53924 } 53925 rrc = DMATCH_NOMATCH 53926 goto RETURN_SWITCH 53927 __3157: 53928 ; 53929 53930 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 53931 __3158: 53932 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 53933 goto __3159 53934 } 53935 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 53936 goto __3158 53937 __3159: 53938 ; 53939 goto __3155 53940 __3156: 53941 ; 53942 goto __3154 53943 __3153: 53944 53945 /* No UTF-8 support, or not in UTF-8 mode: count is code unit count */ 53946 53947 if !(Tptrdiff_t(number) > (int64((*Theapframe)(unsafe.Pointer(F)).Feptr)-int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject))/1) { 53948 goto __3160 53949 } 53950 rrc = DMATCH_NOMATCH 53951 goto RETURN_SWITCH 53952 __3160: 53953 ; 53954 53955 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) -= TPCRE2_SPTR8(number) 53956 __3154: 53957 ; 53958 53959 // Save the earliest consulted character, then skip to next opcode 53960 53961 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 53962 goto __3161 53963 } 53964 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 53965 __3161: 53966 ; 53967 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53968 goto __13 53969 53970 // ===================================================================== 53971 // An alternation is the end of a branch; scan along to find the end of the 53972 // bracketed group. 53973 53974 __137: 53975 __3162: 53976 *(*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))))) 53977 goto __3163 53978 __3163: 53979 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53980 goto __3162 53981 } 53982 goto __3164 53983 __3164: 53984 ; 53985 goto __13 53986 53987 // ===================================================================== 53988 // The end of a parenthesized group. For all but OP_BRA and OP_COND, the 53989 // starting frame was added to the chained frames in order to remember the 53990 // starting subject position for the group. 53991 53992 __138: 53993 __139: 53994 __140: 53995 __141: 53996 53997 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))))) 53998 53999 // Point N to the frame at the start of the most recent group. 54000 // Remember the subject pointer at the start of the group. 54001 54002 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) != OP_BRA && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) != OP_COND) { 54003 goto __3165 54004 } 54005 54006 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr((*Theapframe)(unsafe.Pointer(F)).Flast_group_offset) 54007 P = N - uintptr(frame_size) 54008 (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 54009 54010 // If we are at the end of an assertion that is a condition, return a 54011 // match, discarding any intermediate backtracking points. Copy back the 54012 // mark setting and the captures into the frame before N so that they are 54013 // set on return. Doing this for all assertions, both positive and negative, 54014 // seems to match what Perl does. 54015 54016 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type&0xffff0000 == DGF_CONDASSERT) { 54017 goto __3167 54018 } 54019 54020 libc.Xmemcpy(tls, P+uintptr(uint64(uintptr(0)+128)), F+128, 54021 (*Theapframe)(unsafe.Pointer(F)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 54022 (*Theapframe)(unsafe.Pointer(P)).Foffset_top = (*Theapframe)(unsafe.Pointer(F)).Foffset_top 54023 (*Theapframe)(unsafe.Pointer(P)).Fmark = (*Theapframe)(unsafe.Pointer(F)).Fmark 54024 (*Theapframe)(unsafe.Pointer(F)).Fback_frame = Tsize_t((int64(F) - int64(P)) / 1) 54025 rrc = DMATCH_MATCH 54026 goto RETURN_SWITCH 54027 54028 __3167: 54029 ; 54030 goto __3166 54031 __3165: 54032 P = uintptr(0) 54033 __3166: 54034 ; // Indicates starting frame not recorded 54035 54036 // The group was not a conditional assertion. 54037 54038 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) { 54039 case OP_BRA: 54040 goto __3169 // No need to do anything for these 54041 case OP_COND: 54042 goto __3170 54043 case OP_SCOND: 54044 goto __3171 54045 54046 // Non-atomic positive assertions are like OP_BRA, except that the 54047 // subject pointer must be put back to where it was at the start of the 54048 // assertion. 54049 54050 case OP_ASSERT_NA: 54051 goto __3172 54052 case OP_ASSERTBACK_NA: 54053 goto __3173 54054 54055 // Atomic positive assertions are like OP_ONCE, except that in addition 54056 // the subject pointer must be put back to where it was at the start of the 54057 // assertion. 54058 54059 case OP_ASSERT: 54060 goto __3174 54061 case OP_ASSERTBACK: 54062 goto __3175 54063 // Fall through 54064 54065 // For an atomic group, discard internal backtracking points. We must 54066 // also ensure that any remaining branches within the top-level of the group 54067 // are not tried. Do this by adjusting the code pointer within the backtrack 54068 // frame so that it points to the final branch. 54069 54070 case OP_ONCE: 54071 goto __3176 54072 54073 // A matching negative assertion returns MATCH, which is turned into 54074 // NOMATCH at the assertion level. 54075 54076 case OP_ASSERT_NOT: 54077 goto __3177 54078 case OP_ASSERTBACK_NOT: 54079 goto __3178 54080 54081 // At the end of a script run, apply the script-checking rules. This code 54082 // will never by exercised if Unicode support it not compiled, because in 54083 // that environment script runs cause an error at compile time. 54084 54085 case OP_SCRIPT_RUN: 54086 goto __3179 54087 54088 // Whole-pattern recursion is coded as a recurse into group 0, so it 54089 // won't be picked up here. Instead, we catch it when the OP_END is reached. 54090 // Other recursion is handled here. 54091 54092 case OP_CBRA: 54093 goto __3180 54094 case OP_CBRAPOS: 54095 goto __3181 54096 case OP_SCBRA: 54097 goto __3182 54098 case OP_SCBRAPOS: 54099 goto __3183 54100 } 54101 goto __3168 54102 54103 __3169: // No need to do anything for these 54104 __3170: 54105 __3171: 54106 goto __3168 54107 54108 // Non-atomic positive assertions are like OP_BRA, except that the 54109 // subject pointer must be put back to where it was at the start of the 54110 // assertion. 54111 54112 __3172: 54113 __3173: 54114 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 54115 goto __3184 54116 } 54117 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 54118 __3184: 54119 ; 54120 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Theapframe)(unsafe.Pointer(P)).Feptr 54121 goto __3168 54122 54123 // Atomic positive assertions are like OP_ONCE, except that in addition 54124 // the subject pointer must be put back to where it was at the start of the 54125 // assertion. 54126 54127 __3174: 54128 __3175: 54129 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 54130 goto __3185 54131 } 54132 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 54133 __3185: 54134 ; 54135 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Theapframe)(unsafe.Pointer(P)).Feptr 54136 // Fall through 54137 54138 // For an atomic group, discard internal backtracking points. We must 54139 // also ensure that any remaining branches within the top-level of the group 54140 // are not tried. Do this by adjusting the code pointer within the backtrack 54141 // frame so that it points to the final branch. 54142 54143 __3176: 54144 (*Theapframe)(unsafe.Pointer(F)).Fback_frame = Tsize_t((int64(F) - int64(P)) / 1) 54145 __3186: 54146 54147 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)))) 54148 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(P)).Fecode + uintptr(y)))) != OP_ALT) { 54149 goto __3189 54150 } 54151 goto __3188 54152 __3189: 54153 ; 54154 *(*TPCRE2_SPTR8)(unsafe.Pointer(P)) += TPCRE2_SPTR8(y) 54155 goto __3187 54156 __3187: 54157 goto __3186 54158 goto __3188 54159 __3188: 54160 ; 54161 goto __3168 54162 54163 // A matching negative assertion returns MATCH, which is turned into 54164 // NOMATCH at the assertion level. 54165 54166 __3177: 54167 __3178: 54168 rrc = DMATCH_MATCH 54169 goto RETURN_SWITCH 54170 54171 // At the end of a script run, apply the script-checking rules. This code 54172 // will never by exercised if Unicode support it not compiled, because in 54173 // that environment script runs cause an error at compile time. 54174 54175 __3179: 54176 if !!(X_pcre2_script_run_8(tls, (*Theapframe)(unsafe.Pointer(P)).Feptr, (*Theapframe)(unsafe.Pointer(F)).Feptr, utf) != 0) { 54177 goto __3190 54178 } 54179 rrc = DMATCH_NOMATCH 54180 goto RETURN_SWITCH 54181 __3190: 54182 ; 54183 54184 goto __3168 54185 54186 // Whole-pattern recursion is coded as a recurse into group 0, so it 54187 // won't be picked up here. Instead, we catch it when the OP_END is reached. 54188 // Other recursion is handled here. 54189 54190 __3180: 54191 __3181: 54192 __3182: 54193 __3183: 54194 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 4)))) 54195 54196 // Handle a recursively called group. We reinstate the previous set of 54197 // captures and then carry on after the recursion call. 54198 54199 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse == number) { 54200 goto __3191 54201 } 54202 54203 P = N - uintptr(frame_size) 54204 libc.Xmemcpy(tls, F+uintptr(uint64(uintptr(0)+128)), P+128, 54205 (*Theapframe)(unsafe.Pointer(P)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 54206 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = (*Theapframe)(unsafe.Pointer(P)).Foffset_top 54207 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = (*Theapframe)(unsafe.Pointer(P)).Fcapture_last 54208 (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse = (*Theapframe)(unsafe.Pointer(P)).Fcurrent_recurse 54209 (*Theapframe)(unsafe.Pointer(F)).Fecode = (*Theapframe)(unsafe.Pointer(P)).Fecode + uintptr(1) + uintptr(DLINK_SIZE) 54210 goto __11 // With next opcode 54211 __3191: 54212 ; 54213 54214 // Deal with actual capturing. 54215 54216 offset = Tsize_t(number<<1 - Tuint32_t(2)) 54217 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = number 54218 *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(P)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 54219 *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset+uint64(1))*8)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(F)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 54220 if !(offset >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top) { 54221 goto __3192 54222 } 54223 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = offset + uint64(2) 54224 __3192: 54225 ; 54226 goto __3168 54227 __3168: 54228 ; // End actions relating to the starting opcode 54229 54230 // OP_KETRPOS is a possessive repeating ket. Remember the current position, 54231 // and return the MATCH_KETRPOS. This makes it possible to do the repeats one 54232 // at a time from the outer level. This must precede the empty string test - 54233 // in this case that test is done at the outer level. 54234 54235 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_KETRPOS) { 54236 goto __3193 54237 } 54238 54239 libc.Xmemcpy(tls, P+uintptr(uint64(uintptr(0)+80)), 54240 F+uintptr(uint64(uintptr(0)+80)), 54241 frame_copy_size) 54242 rrc = -998 54243 goto RETURN_SWITCH 54244 54245 __3193: 54246 ; 54247 54248 // Handle the different kinds of closing brackets. A non-repeating ket 54249 // needs no special action, just continuing at this level. This also happens 54250 // for the repeating kets if the group matched no characters, in order to 54251 // forcibly break infinite loops. Otherwise, the repeating kets try the rest 54252 // of the pattern or restart from the preceding bracket, in the appropriate 54253 // order. 54254 54255 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) != OP_KET && (P == uintptr(0) || (*Theapframe)(unsafe.Pointer(F)).Feptr != (*Theapframe)(unsafe.Pointer(P)).Feptr)) { 54256 goto __3194 54257 } 54258 54259 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_KETRMIN) { 54260 goto __3195 54261 } 54262 54263 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) + uintptr(DLINK_SIZE) 54264 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM6 54265 goto MATCH_RECURSE 54266 L_RM6: 54267 ; 54268 54269 if !(rrc != DMATCH_NOMATCH) { 54270 goto __3196 54271 } 54272 rrc = rrc 54273 goto RETURN_SWITCH 54274 __3196: 54275 ; 54276 54277 *(*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))))) 54278 goto __13 // End of ket processing 54279 __3195: 54280 ; 54281 54282 /* Repeat the maximum number of times (KETRMAX) */ 54283 54284 start_ecode = bracode 54285 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM7 54286 goto MATCH_RECURSE 54287 L_RM7: 54288 ; 54289 54290 if !(rrc != DMATCH_NOMATCH) { 54291 goto __3197 54292 } 54293 rrc = rrc 54294 goto RETURN_SWITCH 54295 __3197: 54296 ; 54297 54298 __3194: 54299 ; 54300 54301 // Carry on at this level for a non-repeating ket, or after matching an 54302 // empty string, or after repeating for a maximum number of times. 54303 54304 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 54305 goto __13 54306 54307 // ===================================================================== 54308 // Start and end of line assertions, not multiline mode. 54309 54310 __142: // Start of line, unless PCRE2_NOTBOL is set. 54311 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)) { 54312 goto __3198 54313 } 54314 rrc = DMATCH_NOMATCH 54315 goto RETURN_SWITCH 54316 __3198: 54317 ; 54318 54319 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54320 goto __13 54321 54322 __143: // Unconditional start of subject 54323 if !((*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject) { 54324 goto __3199 54325 } 54326 rrc = DMATCH_NOMATCH 54327 goto RETURN_SWITCH 54328 __3199: 54329 ; 54330 54331 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54332 goto __13 54333 54334 // When PCRE2_NOTEOL is unset, assert before the subject end, or a 54335 // terminating newline unless PCRE2_DOLLAR_ENDONLY is set. 54336 54337 __144: 54338 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL != Tuint32_t(0)) { 54339 goto __3200 54340 } 54341 rrc = DMATCH_NOMATCH 54342 goto RETURN_SWITCH 54343 __3200: 54344 ; 54345 54346 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_DOLLAR_ENDONLY == Tuint32_t(0)) { 54347 goto __3201 54348 } 54349 goto ASSERT_NL_OR_EOS 54350 __3201: 54351 ; 54352 54353 // Fall through 54354 // Unconditional end of subject assertion (\z) 54355 54356 __145: 54357 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 54358 goto __3202 54359 } 54360 rrc = DMATCH_NOMATCH 54361 goto RETURN_SWITCH 54362 __3202: 54363 ; 54364 54365 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0) { 54366 goto __3203 54367 } 54368 54369 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54370 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54371 goto __3204 54372 } 54373 return -2 54374 __3204: 54375 ; 54376 __3203: 54377 ; 54378 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54379 goto __13 54380 54381 // End of subject or ending \n assertion (\Z) 54382 54383 __146: 54384 ASSERT_NL_OR_EOS: 54385 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (!(func() int32 { 54386 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 54387 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+256, utf) != 0) 54388 } 54389 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 + 260))) && ((*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 + 260 + 1))))) 54390 }() != 0) || (*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen))) { 54391 goto __3205 54392 } 54393 54394 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 + 260)))) { 54395 goto __3206 54396 } 54397 54398 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54399 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54400 goto __3207 54401 } 54402 return -2 54403 __3207: 54404 ; 54405 __3206: 54406 ; 54407 rrc = DMATCH_NOMATCH 54408 goto RETURN_SWITCH 54409 54410 __3205: 54411 ; 54412 54413 // Either at end of string or \n before end. 54414 54415 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0) { 54416 goto __3208 54417 } 54418 54419 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54420 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54421 goto __3209 54422 } 54423 return -2 54424 __3209: 54425 ; 54426 __3208: 54427 ; 54428 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54429 goto __13 54430 54431 // ===================================================================== 54432 // Start and end of line assertions, multiline mode. 54433 54434 // Start of subject unless notbol, or after any newline except for one at 54435 // the very end, unless PCRE2_ALT_CIRCUMFLEX is set. 54436 54437 __147: 54438 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) { 54439 goto __3210 54440 } 54441 rrc = DMATCH_NOMATCH 54442 goto RETURN_SWITCH 54443 __3210: 54444 ; 54445 54446 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 { 54447 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 54448 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+256, utf) != 0) 54449 } 54450 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 + 260))) && ((*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 + 260 + 1))))) 54451 }() != 0))) { 54452 goto __3211 54453 } 54454 rrc = DMATCH_NOMATCH 54455 goto RETURN_SWITCH 54456 __3211: 54457 ; 54458 54459 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54460 goto __13 54461 54462 // Assert before any newline, or before end of subject unless noteol is 54463 // set. 54464 54465 __148: 54466 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 54467 goto __3212 54468 } 54469 54470 if !!(func() int32 { 54471 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 54472 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+256, utf) != 0) 54473 } 54474 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 + 260))) && ((*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 + 260 + 1))))) 54475 }() != 0) { 54476 goto __3214 54477 } 54478 54479 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 + 260)))) { 54480 goto __3215 54481 } 54482 54483 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54484 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54485 goto __3216 54486 } 54487 return -2 54488 __3216: 54489 ; 54490 __3215: 54491 ; 54492 rrc = DMATCH_NOMATCH 54493 goto RETURN_SWITCH 54494 54495 __3214: 54496 ; 54497 goto __3213 54498 __3212: 54499 54500 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL != Tuint32_t(0)) { 54501 goto __3217 54502 } 54503 rrc = DMATCH_NOMATCH 54504 goto RETURN_SWITCH 54505 __3217: 54506 ; 54507 54508 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)) { 54509 goto __3218 54510 } 54511 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54512 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54513 goto __3219 54514 } 54515 return -2 54516 __3219: 54517 ; 54518 __3218: 54519 ; 54520 54521 __3213: 54522 ; 54523 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54524 goto __13 54525 54526 // ===================================================================== 54527 // Start of match assertion 54528 54529 __149: 54530 if !((*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_offset)) { 54531 goto __3220 54532 } 54533 rrc = DMATCH_NOMATCH 54534 goto RETURN_SWITCH 54535 __3220: 54536 ; 54537 54538 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54539 goto __13 54540 54541 // ===================================================================== 54542 // Reset the start of match point 54543 54544 __150: 54545 (*Theapframe)(unsafe.Pointer(F)).Fstart_match = (*Theapframe)(unsafe.Pointer(F)).Feptr 54546 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54547 goto __13 54548 54549 // ===================================================================== 54550 // Word boundary assertions. Find out if the previous and current 54551 // characters are "word" characters. It takes a bit more work in UTF mode. 54552 // Characters > 255 are assumed to be "non-word" characters when PCRE2_UCP is 54553 // not set. When it is set, use Unicode properties if available, even when not 54554 // in UTF mode. Remember the earliest and latest consulted characters. 54555 54556 __151: 54557 __152: 54558 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject) { 54559 goto __3221 54560 } 54561 prev_is_word = DFALSE 54562 goto __3222 54563 __3221: 54564 54565 lastptr = (*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr(1) 54566 if !(utf != 0) { 54567 goto __3223 54568 } 54569 54570 __3225: 54571 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr)))&0xc0 == 0x80) { 54572 goto __3226 54573 } 54574 lastptr-- 54575 goto __3225 54576 __3226: 54577 ; 54578 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr))) 54579 if !(fc >= 0xc0) { 54580 goto __3227 54581 } 54582 if !(fc&0x20 == Tuint32_t(0)) { 54583 goto __3228 54584 } 54585 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f 54586 goto __3229 54587 __3228: 54588 if !(fc&0x10 == Tuint32_t(0)) { 54589 goto __3230 54590 } 54591 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 2)))&0x3f 54592 goto __3231 54593 __3230: 54594 if !(fc&0x08 == Tuint32_t(0)) { 54595 goto __3232 54596 } 54597 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 54598 goto __3233 54599 __3232: 54600 if !(fc&0x04 == Tuint32_t(0)) { 54601 goto __3234 54602 } 54603 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 54604 goto __3235 54605 __3234: 54606 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 54607 __3235: 54608 ; 54609 __3233: 54610 ; 54611 __3231: 54612 ; 54613 __3229: 54614 ; 54615 __3227: 54616 ; 54617 54618 goto __3224 54619 __3223: 54620 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr))) 54621 __3224: 54622 ; 54623 if !(lastptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 54624 goto __3236 54625 } 54626 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = lastptr 54627 __3236: 54628 ; 54629 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 54630 goto __3237 54631 } 54632 54633 if !(fc == Tuint32_t('_')) { 54634 goto __3239 54635 } 54636 prev_is_word = DTRUE 54637 goto __3240 54638 __3239: 54639 54640 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]) 54641 prev_is_word = libc.Bool32(cat == ucp_L || cat == ucp_N) 54642 __3240: 54643 ; 54644 goto __3238 54645 __3237: 54646 prev_is_word = libc.Bool32(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) 54647 __3238: 54648 ; 54649 __3222: 54650 ; 54651 54652 // Get status of next character 54653 54654 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 54655 goto __3241 54656 } 54657 54658 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)) { 54659 goto __3243 54660 } 54661 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54662 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54663 goto __3244 54664 } 54665 return -2 54666 __3244: 54667 ; 54668 __3243: 54669 ; 54670 54671 cur_is_word = DFALSE 54672 goto __3242 54673 __3241: 54674 54675 nextptr = (*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1) 54676 if !(utf != 0) { 54677 goto __3245 54678 } 54679 54680 __3247: 54681 if !(nextptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(nextptr)))&0xc0 == 0x80) { 54682 goto __3248 54683 } 54684 nextptr++ 54685 goto __3247 54686 __3248: 54687 ; 54688 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 54689 if !(fc >= 0xc0) { 54690 goto __3249 54691 } 54692 if !(fc&0x20 == Tuint32_t(0)) { 54693 goto __3250 54694 } 54695 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 54696 goto __3251 54697 __3250: 54698 if !(fc&0x10 == Tuint32_t(0)) { 54699 goto __3252 54700 } 54701 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 54702 goto __3253 54703 __3252: 54704 if !(fc&0x08 == Tuint32_t(0)) { 54705 goto __3254 54706 } 54707 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 54708 goto __3255 54709 __3254: 54710 if !(fc&0x04 == Tuint32_t(0)) { 54711 goto __3256 54712 } 54713 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 54714 goto __3257 54715 __3256: 54716 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 54717 __3257: 54718 ; 54719 __3255: 54720 ; 54721 __3253: 54722 ; 54723 __3251: 54724 ; 54725 __3249: 54726 ; 54727 54728 goto __3246 54729 __3245: 54730 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 54731 __3246: 54732 ; 54733 if !(nextptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 54734 goto __3258 54735 } 54736 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = nextptr 54737 __3258: 54738 ; 54739 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 54740 goto __3259 54741 } 54742 54743 if !(fc == Tuint32_t('_')) { 54744 goto __3261 54745 } 54746 cur_is_word = DTRUE 54747 goto __3262 54748 __3261: 54749 54750 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]) 54751 cur_is_word = libc.Bool32(cat1 == ucp_L || cat1 == ucp_N) 54752 __3262: 54753 ; 54754 goto __3260 54755 __3259: 54756 cur_is_word = libc.Bool32(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) 54757 __3260: 54758 ; 54759 __3242: 54760 ; 54761 54762 // Now see if the situation is what we want 54763 54764 if !(func() int32 { 54765 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) == OP_WORD_BOUNDARY { 54766 return libc.Bool32(cur_is_word == prev_is_word) 54767 } 54768 return libc.Bool32(cur_is_word != prev_is_word) 54769 }() != 0) { 54770 goto __3263 54771 } 54772 rrc = DMATCH_NOMATCH 54773 goto RETURN_SWITCH 54774 __3263: 54775 ; 54776 54777 goto __13 54778 54779 // ===================================================================== 54780 // Backtracking (*VERB)s, with and without arguments. Note that if the 54781 // pattern is successfully matched, we do not come back from RMATCH. 54782 54783 __153: 54784 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+208, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54785 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))) 54786 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM12 54787 goto MATCH_RECURSE 54788 L_RM12: 54789 ; 54790 54791 // A return of MATCH_SKIP_ARG means that matching failed at SKIP with an 54792 // argument, and we must check whether that argument matches this MARK's 54793 // argument. It is passed back in mb->verb_skip_ptr. If it does match, we 54794 // return MATCH_SKIP with mb->verb_skip_ptr now pointing to the subject 54795 // position that corresponds to this mark. Otherwise, pass back the return 54796 // code unaltered. 54797 54798 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) { 54799 goto __3264 54800 } 54801 54802 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr /* Pass back current position */ 54803 rrc = -995 54804 goto RETURN_SWITCH 54805 54806 __3264: 54807 ; 54808 rrc = rrc 54809 goto RETURN_SWITCH 54810 54811 __154: 54812 rrc = DMATCH_NOMATCH 54813 goto RETURN_SWITCH 54814 54815 // Record the current recursing group number in mb->verb_current_recurse 54816 // when a backtracking return such as MATCH_COMMIT is given. This enables the 54817 // recurse processing to catch verbs from within the recursion. 54818 54819 __155: 54820 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54821 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM13 54822 goto MATCH_RECURSE 54823 L_RM13: 54824 ; 54825 54826 if !(rrc != DMATCH_NOMATCH) { 54827 goto __3265 54828 } 54829 rrc = rrc 54830 goto RETURN_SWITCH 54831 __3265: 54832 ; 54833 54834 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54835 rrc = -997 54836 goto RETURN_SWITCH 54837 54838 __156: 54839 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+208, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54840 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))) 54841 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM36 54842 goto MATCH_RECURSE 54843 L_RM36: 54844 ; 54845 54846 if !(rrc != DMATCH_NOMATCH) { 54847 goto __3266 54848 } 54849 rrc = rrc 54850 goto RETURN_SWITCH 54851 __3266: 54852 ; 54853 54854 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54855 rrc = -997 54856 goto RETURN_SWITCH 54857 54858 __157: 54859 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54860 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM14 54861 goto MATCH_RECURSE 54862 L_RM14: 54863 ; 54864 54865 if !(rrc != DMATCH_NOMATCH) { 54866 goto __3267 54867 } 54868 rrc = rrc 54869 goto RETURN_SWITCH 54870 __3267: 54871 ; 54872 54873 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54874 rrc = -996 54875 goto RETURN_SWITCH 54876 54877 __158: 54878 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+208, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54879 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))) 54880 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM15 54881 goto MATCH_RECURSE 54882 L_RM15: 54883 ; 54884 54885 if !(rrc != DMATCH_NOMATCH) { 54886 goto __3268 54887 } 54888 rrc = rrc 54889 goto RETURN_SWITCH 54890 __3268: 54891 ; 54892 54893 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54894 rrc = -996 54895 goto RETURN_SWITCH 54896 54897 __159: 54898 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54899 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM16 54900 goto MATCH_RECURSE 54901 L_RM16: 54902 ; 54903 54904 if !(rrc != DMATCH_NOMATCH) { 54905 goto __3269 54906 } 54907 rrc = rrc 54908 goto RETURN_SWITCH 54909 __3269: 54910 ; 54911 54912 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr // Pass back current position 54913 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54914 rrc = -995 54915 goto RETURN_SWITCH 54916 54917 // Note that, for Perl compatibility, SKIP with an argument does NOT set 54918 // nomatch_mark. When a pattern match ends with a SKIP_ARG for which there was 54919 // not a matching mark, we have to re-run the match, ignoring the SKIP_ARG 54920 // that failed and any that precede it (either they also failed, or were not 54921 // triggered). To do this, we maintain a count of executed SKIP_ARGs. If a 54922 // SKIP_ARG gets to top level, the match is re-run with mb->ignore_skip_arg 54923 // set to the count of the one that failed. 54924 54925 __160: 54926 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count++ 54927 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg) { 54928 goto __3270 54929 } 54930 54931 *(*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)))) 54932 goto __13 54933 __3270: 54934 ; 54935 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))) 54936 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM17 54937 goto MATCH_RECURSE 54938 L_RM17: 54939 ; 54940 54941 if !(rrc != DMATCH_NOMATCH) { 54942 goto __3271 54943 } 54944 rrc = rrc 54945 goto RETURN_SWITCH 54946 __3271: 54947 ; 54948 54949 // Pass back the current skip name and return the special MATCH_SKIP_ARG 54950 // return code. This will either be caught by a matching MARK, or get to the 54951 // top, where it causes a rematch with mb->ignore_skip_arg set to the value of 54952 // mb->skip_arg_count. 54953 54954 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(2) 54955 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54956 rrc = -994 54957 goto RETURN_SWITCH 54958 54959 // For THEN (and THEN_ARG) we pass back the address of the opcode, so that 54960 // the branch in which it occurs can be determined. 54961 54962 __161: 54963 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54964 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM18 54965 goto MATCH_RECURSE 54966 L_RM18: 54967 ; 54968 54969 if !(rrc != DMATCH_NOMATCH) { 54970 goto __3272 54971 } 54972 rrc = rrc 54973 goto RETURN_SWITCH 54974 __3272: 54975 ; 54976 54977 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr = (*Theapframe)(unsafe.Pointer(F)).Fecode 54978 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54979 rrc = -993 54980 goto RETURN_SWITCH 54981 54982 __162: 54983 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+208, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54984 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))) 54985 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM19 54986 goto MATCH_RECURSE 54987 L_RM19: 54988 ; 54989 54990 if !(rrc != DMATCH_NOMATCH) { 54991 goto __3273 54992 } 54993 rrc = rrc 54994 goto RETURN_SWITCH 54995 __3273: 54996 ; 54997 54998 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr = (*Theapframe)(unsafe.Pointer(F)).Fecode 54999 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 55000 rrc = -993 55001 goto RETURN_SWITCH 55002 55003 // ===================================================================== 55004 // There's been some horrible disaster. Arrival here can only mean there is 55005 // something seriously wrong in the code above or the OP_xxx definitions. 55006 55007 __163: 55008 return -44 55009 __13: 55010 ; 55011 55012 // Do not insert any code in here without much thought; it is assumed 55013 // that "continue" in the code above comes out to here to repeat the main 55014 // loop. 55015 55016 goto __11 55017 __11: 55018 goto __10 55019 goto __12 55020 __12: 55021 ; // End of main loop 55022 // Control never reaches here 55023 55024 // ========================================================================= 55025 // The RRETURN() macro jumps here. The number that is saved in Freturn_id 55026 // indicates which label we actually want to return to. The value in Frdepth is 55027 // the index number of the frame in the vector. The return value has been placed 55028 // in rrc. 55029 55030 RETURN_SWITCH: 55031 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 55032 goto __3274 55033 } 55034 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 55035 __3274: 55036 ; 55037 if !((*Theapframe)(unsafe.Pointer(F)).Frdepth == Tuint32_t(0)) { 55038 goto __3275 55039 } 55040 return rrc 55041 __3275: 55042 ; // Exit from the top level 55043 F = F - uintptr((*Theapframe)(unsafe.Pointer(F)).Fback_frame) // Backtrack 55044 *(*Tuint32_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcb + 104)) |= DPCRE2_CALLOUT_BACKTRACK // Note for callouts 55045 55046 switch int32((*Theapframe)(unsafe.Pointer(F)).Freturn_id) { 55047 case 1: 55048 goto __3277 55049 case 2: 55050 goto __3278 55051 case 3: 55052 goto __3279 55053 case 4: 55054 goto __3280 55055 case 5: 55056 goto __3281 55057 case 6: 55058 goto __3282 55059 case 7: 55060 goto __3283 55061 case 8: 55062 goto __3284 55063 case 9: 55064 goto __3285 55065 case 10: 55066 goto __3286 55067 case 11: 55068 goto __3287 55069 case 12: 55070 goto __3288 55071 case 13: 55072 goto __3289 55073 case 14: 55074 goto __3290 55075 case 15: 55076 goto __3291 55077 case 16: 55078 goto __3292 55079 case 17: 55080 goto __3293 55081 case 18: 55082 goto __3294 55083 case 19: 55084 goto __3295 55085 case 20: 55086 goto __3296 55087 case 21: 55088 goto __3297 55089 case 22: 55090 goto __3298 55091 case 23: 55092 goto __3299 55093 case 24: 55094 goto __3300 55095 case 25: 55096 goto __3301 55097 case 26: 55098 goto __3302 55099 case 27: 55100 goto __3303 55101 case 28: 55102 goto __3304 55103 case 29: 55104 goto __3305 55105 case 30: 55106 goto __3306 55107 case 31: 55108 goto __3307 55109 case 32: 55110 goto __3308 55111 case 33: 55112 goto __3309 55113 case 34: 55114 goto __3310 55115 case 35: 55116 goto __3311 55117 case 36: 55118 goto __3312 55119 55120 case 100: 55121 goto __3313 55122 case 101: 55123 goto __3314 55124 55125 case 200: 55126 goto __3315 55127 case 201: 55128 goto __3316 55129 case 202: 55130 goto __3317 55131 case 203: 55132 goto __3318 55133 case 204: 55134 goto __3319 55135 case 205: 55136 goto __3320 55137 case 206: 55138 goto __3321 55139 case 207: 55140 goto __3322 55141 case 208: 55142 goto __3323 55143 case 209: 55144 goto __3324 55145 case 210: 55146 goto __3325 55147 case 211: 55148 goto __3326 55149 case 212: 55150 goto __3327 55151 case 213: 55152 goto __3328 55153 case 214: 55154 goto __3329 55155 case 215: 55156 goto __3330 55157 case 216: 55158 goto __3331 55159 case 217: 55160 goto __3332 55161 case 218: 55162 goto __3333 55163 case 219: 55164 goto __3334 55165 case 220: 55166 goto __3335 55167 case 221: 55168 goto __3336 55169 case 222: 55170 goto __3337 55171 case 223: 55172 goto __3338 55173 case 224: 55174 goto __3339 55175 case 225: 55176 goto __3340 55177 55178 default: 55179 goto __3341 55180 } 55181 goto __3276 55182 55183 __3277: 55184 goto L_RM1 55185 __3278: 55186 goto L_RM2 55187 __3279: 55188 goto L_RM3 55189 __3280: 55190 goto L_RM4 55191 __3281: 55192 goto L_RM5 55193 __3282: 55194 goto L_RM6 55195 __3283: 55196 goto L_RM7 55197 __3284: 55198 goto L_RM8 55199 __3285: 55200 goto L_RM9 55201 __3286: 55202 goto L_RM10 55203 __3287: 55204 goto L_RM11 55205 __3288: 55206 goto L_RM12 55207 __3289: 55208 goto L_RM13 55209 __3290: 55210 goto L_RM14 55211 __3291: 55212 goto L_RM15 55213 __3292: 55214 goto L_RM16 55215 __3293: 55216 goto L_RM17 55217 __3294: 55218 goto L_RM18 55219 __3295: 55220 goto L_RM19 55221 __3296: 55222 goto L_RM20 55223 __3297: 55224 goto L_RM21 55225 __3298: 55226 goto L_RM22 55227 __3299: 55228 goto L_RM23 55229 __3300: 55230 goto L_RM24 55231 __3301: 55232 goto L_RM25 55233 __3302: 55234 goto L_RM26 55235 __3303: 55236 goto L_RM27 55237 __3304: 55238 goto L_RM28 55239 __3305: 55240 goto L_RM29 55241 __3306: 55242 goto L_RM30 55243 __3307: 55244 goto L_RM31 55245 __3308: 55246 goto L_RM32 55247 __3309: 55248 goto L_RM33 55249 __3310: 55250 goto L_RM34 55251 __3311: 55252 goto L_RM35 55253 __3312: 55254 goto L_RM36 55255 55256 __3313: 55257 goto L_RM100 55258 __3314: 55259 goto L_RM101 55260 55261 __3315: 55262 goto L_RM200 55263 __3316: 55264 goto L_RM201 55265 __3317: 55266 goto L_RM202 55267 __3318: 55268 goto L_RM203 55269 __3319: 55270 goto L_RM204 55271 __3320: 55272 goto L_RM205 55273 __3321: 55274 goto L_RM206 55275 __3322: 55276 goto L_RM207 55277 __3323: 55278 goto L_RM208 55279 __3324: 55280 goto L_RM209 55281 __3325: 55282 goto L_RM210 55283 __3326: 55284 goto L_RM211 55285 __3327: 55286 goto L_RM212 55287 __3328: 55288 goto L_RM213 55289 __3329: 55290 goto L_RM214 55291 __3330: 55292 goto L_RM215 55293 __3331: 55294 goto L_RM216 55295 __3332: 55296 goto L_RM217 55297 __3333: 55298 goto L_RM218 55299 __3334: 55300 goto L_RM219 55301 __3335: 55302 goto L_RM220 55303 __3336: 55304 goto L_RM221 55305 __3337: 55306 goto L_RM222 55307 __3338: 55308 goto L_RM223 55309 __3339: 55310 goto L_RM224 55311 __3340: 55312 goto L_RM225 55313 55314 __3341: 55315 return -44 55316 __3276: 55317 ; 55318 return int32(0) 55319 } 55320 55321 // ************************************************ 55322 // 55323 // Match a Regular Expression * 55324 // 55325 55326 // This function applies a compiled pattern to a subject string and picks out 55327 // portions of the string if it matches. Two elements in the vector are set for 55328 // each substring: the offsets to the start and end of the substring. 55329 // 55330 // Arguments: 55331 // code points to the compiled expression 55332 // subject points to the subject string 55333 // length length of subject string (may contain binary zeros) 55334 // start_offset where to start in the subject string 55335 // options option bits 55336 // match_data points to a match_data block 55337 // mcontext points a PCRE2 context 55338 // 55339 // Returns: > 0 => success; value is the number of ovector pairs filled 55340 // = 0 => success, but ovector is not big enough 55341 // = -1 => failed to match (PCRE2_ERROR_NOMATCH) 55342 // = -2 => partial match (PCRE2_ERROR_PARTIAL) 55343 // < -2 => some kind of unexpected problem 55344 55345 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: */ 55346 bp := tls.Alloc(20880) 55347 defer tls.Free(20880) 55348 55349 var rc int32 55350 var was_zero_terminated int32 55351 var start_bits uintptr 55352 var re uintptr 55353 var anchored TBOOL 55354 var firstline TBOOL 55355 var has_first_cu TBOOL 55356 var has_req_cu TBOOL 55357 var startline TBOOL 55358 var memchr_found_first_cu TPCRE2_SPTR8 55359 var memchr_found_first_cu2 TPCRE2_SPTR8 55360 var first_cu TPCRE2_UCHAR8 55361 var first_cu2 TPCRE2_UCHAR8 55362 var req_cu TPCRE2_UCHAR8 55363 var req_cu2 TPCRE2_UCHAR8 55364 var bumpalong_limit TPCRE2_SPTR8 55365 var end_subject TPCRE2_SPTR8 55366 var true_end_subject TPCRE2_SPTR8 55367 var start_match TPCRE2_SPTR8 55368 var req_cu_ptr TPCRE2_SPTR8 55369 var start_partial TPCRE2_SPTR8 55370 var match_partial TPCRE2_SPTR8 55371 55372 // This flag is needed even when Unicode is not supported for convenience 55373 // (it is used by the IS_NEWLINE macro). 55374 55375 var utf TBOOL 55376 var ucp TBOOL 55377 var allow_invalid TBOOL 55378 var fragment_options Tuint32_t 55379 var frame_size Tsize_t 55380 55381 // We need to have mb as a pointer to a match block, because the IS_NEWLINE 55382 // macro is used below, and it expects NLBLOCK to be defined as a pointer. 55383 55384 // var cb Tpcre2_callout_block_8 at bp+20768, 112 55385 55386 // var actual_match_block Tmatch_block_8 at bp, 288 55387 55388 var mb uintptr 55389 55390 // Allocate an initial vector of backtracking frames on the stack. If this 55391 // proves to be too small, it is replaced by a larger one on the heap. To get a 55392 // vector of the size required that is aligned for pointers, allocate it as a 55393 // vector of pointers. 55394 55395 // var stack_frames_vector [2560]TPCRE2_SPTR8 at bp+288, 20480 55396 55397 var i uint32 55398 var skipped_bad_start TBOOL 55399 var t TPCRE2_SPTR8 55400 var c TPCRE2_UCHAR8 55401 var ok TBOOL 55402 // In 16-bit and 32_bit modes we have to do our own search, so can 55403 // look for both cases at once. 55404 55405 // In 8-bit mode, the use of memchr() gives a big speed up, even 55406 // though we have to call it twice in order to find the earliest 55407 // occurrence of the code unit in either of its cases. Caching is used 55408 // to remember the positions of previously found code units. This can 55409 // make a huge difference when the strings are very long and only one 55410 // case is actually present. 55411 55412 var pp1 TPCRE2_SPTR8 55413 var pp2 TPCRE2_SPTR8 55414 var searchlength Tsize_t 55415 var c1 Tuint32_t 55416 var pp TPCRE2_SPTR8 55417 var check_length Tsize_t 55418 var p TPCRE2_SPTR8 55419 var new_start_match TPCRE2_SPTR8 55420 was_zero_terminated = 0 55421 start_bits = uintptr(0) 55422 re = code 55423 has_first_cu = DFALSE 55424 has_req_cu = DFALSE 55425 first_cu = TPCRE2_UCHAR8(0) 55426 first_cu2 = TPCRE2_UCHAR8(0) 55427 req_cu = TPCRE2_UCHAR8(0) 55428 req_cu2 = TPCRE2_UCHAR8(0) 55429 utf = DFALSE 55430 ucp = DFALSE 55431 fragment_options = Tuint32_t(0) 55432 mb = bp /* &actual_match_block */ 55433 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames = bp + 288 /* stack_frames_vector */ 55434 55435 // Recognize NULL, length 0 as an empty string. 55436 55437 if !(subject == uintptr(0) && length == uint64(0)) { 55438 goto __1 55439 } 55440 subject = ts + 797 /* "" */ 55441 __1: 55442 ; 55443 55444 // Plausibility checks 55445 55446 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)) { 55447 goto __2 55448 } 55449 return -34 55450 __2: 55451 ; 55452 if !(code == uintptr(0) || subject == uintptr(0) || match_data == uintptr(0)) { 55453 goto __3 55454 } 55455 return -51 55456 __3: 55457 ; 55458 55459 start_match = subject + uintptr(start_offset) 55460 req_cu_ptr = start_match - uintptr(1) 55461 if !(length == libc.CplUint64(uint64(0))) { 55462 goto __4 55463 } 55464 55465 length = X_pcre2_strlen_8(tls, subject) 55466 was_zero_terminated = 1 55467 __4: 55468 ; 55469 true_end_subject = libc.AssignUintptr(&end_subject, subject+uintptr(length)) 55470 55471 if !(start_offset > length) { 55472 goto __5 55473 } 55474 return -33 55475 __5: 55476 ; 55477 55478 // Check that the first field in the block is the magic number. 55479 55480 if !(uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER) { 55481 goto __6 55482 } 55483 return -31 55484 __6: 55485 ; 55486 55487 // Check the code unit width. 55488 55489 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MODE8|DPCRE2_MODE16|DPCRE2_MODE32) != Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8)) { 55490 goto __7 55491 } 55492 return -32 55493 __7: 55494 ; 55495 55496 // PCRE2_NOTEMPTY and PCRE2_NOTEMPTY_ATSTART are match-time flags in the 55497 // options variable for this function. Users of PCRE2 who are not calling the 55498 // function directly would like to have a way of setting these flags, in the same 55499 // way that they can set pcre2_compile() flags like PCRE2_NO_AUTOPOSSESS with 55500 // constructions like (*NO_AUTOPOSSESS). To enable this, (*NOTEMPTY) and 55501 // (*NOTEMPTY_ATSTART) set bits in the pattern's "flag" function which we now 55502 // transfer to the options for this function. The bits are guaranteed to be 55503 // adjacent, but do not have the same values. This bit of Boolean trickery assumes 55504 // that the match-time bits are not more significant than the flag bits. If by 55505 // accident this is not the case, a compile-time division by zero error will 55506 // occur. 55507 55508 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)))) 55509 55510 // If the pattern was successfully studied with JIT support, we will run the 55511 // JIT executable instead of the rest of this function. Most options must be set 55512 // at compile time for the JIT code to be usable. 55513 55514 // Initialize UTF/UCP parameters. 55515 55516 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 55517 allow_invalid = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_INVALID_UTF != Tuint32_t(0)) 55518 ucp = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) 55519 55520 // Convert the partial matching flags into an integer. 55521 55522 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial = func() uint16 { 55523 if options&DPCRE2_PARTIAL_HARD != Tuint32_t(0) { 55524 return uint16(2) 55525 } 55526 return func() uint16 { 55527 if options&DPCRE2_PARTIAL_SOFT != Tuint32_t(0) { 55528 return uint16(1) 55529 } 55530 return uint16(0) 55531 }() 55532 }() 55533 55534 // Partial matching and PCRE2_ENDANCHORED are currently not allowed at the same 55535 // time. 55536 55537 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)) { 55538 goto __8 55539 } 55540 return -34 55541 __8: 55542 ; 55543 55544 // It is an error to set an offset limit without setting the flag at compile 55545 // time. 55546 55547 if !(mcontext != uintptr(0) && (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit != libc.CplUint64(uint64(0)) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_USE_OFFSET_LIMIT == Tuint32_t(0)) { 55548 goto __9 55549 } 55550 return -56 55551 __9: 55552 ; 55553 55554 // If the match data block was previously used with PCRE2_COPY_MATCHED_SUBJECT, 55555 // free the memory that was obtained. Set the field to NULL for no match cases. 55556 55557 if !(uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fflags)&DPCRE2_MD_COPIED_SUBJECT != uint32(0)) { 55558 goto __10 55559 } 55560 55561 (*struct { 55562 f func(*libc.TLS, uintptr, uintptr) 55563 })(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, 55564 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 55565 *(*Tuint8_t)(unsafe.Pointer(match_data + 73)) &= libc.Uint8FromUint32(libc.CplUint32(DPCRE2_MD_COPIED_SUBJECT)) 55566 __10: 55567 ; 55568 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = uintptr(0) 55569 55570 // Zero the error offset in case the first code unit is invalid UTF. 55571 55572 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = uint64(0) 55573 55574 // ============================= JIT matching ============================== 55575 55576 // Prepare for JIT matching. Check a UTF string for validity unless no check is 55577 // requested or invalid UTF can be handled. We check only the portion of the 55578 // subject that might be be inspected during matching - from the offset minus the 55579 // maximum lookbehind to the given length. This saves time when a small part of a 55580 // large subject is being matched by the use of a starting offset. Note that the 55581 // maximum lookbehind is a number of characters, not code units. 55582 55583 // ========================= End of JIT matching ========================== 55584 55585 // Proceed with non-JIT matching. The default is to allow lookbehinds to the 55586 // start of the subject. A UTF check when there is a non-zero offset may change 55587 // this. 55588 55589 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = subject 55590 55591 // If a UTF subject string was not checked for validity in the JIT code above, 55592 // check it here, and handle support for invalid UTF strings. The check above 55593 // happens only when invalid UTF is not supported and PCRE2_NO_CHECK_UTF is unset. 55594 // If we get here in those circumstances, it means the subject string is valid, 55595 // but for some reason JIT matching was not successful. There is no need to check 55596 // the subject again. 55597 // 55598 // We check only the portion of the subject that might be be inspected during 55599 // matching - from the offset minus the maximum lookbehind to the given length. 55600 // This saves time when a small part of a large subject is being matched by the 55601 // use of a starting offset. Note that the maximum lookbehind is a number of 55602 // characters, not code units. 55603 // 55604 // Note also that support for invalid UTF forces a check, overriding the setting 55605 // of PCRE2_NO_CHECK_UTF. 55606 55607 if !(utf != 0 && (options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0) || allow_invalid != 0)) { 55608 goto __11 55609 } 55610 55611 skipped_bad_start = DFALSE 55612 55613 // For 8-bit and 16-bit UTF, check that the first code unit is a valid 55614 // character start. If we are handling invalid UTF, just skip over such code 55615 // units. Otherwise, give an appropriate error. 55616 55617 if !(allow_invalid != 0) { 55618 goto __12 55619 } 55620 55621 __14: 55622 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 55623 goto __15 55624 } 55625 55626 start_match++ 55627 skipped_bad_start = DTRUE 55628 goto __14 55629 __15: 55630 ; 55631 goto __13 55632 __12: 55633 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 55634 goto __16 55635 } 55636 55637 if !(start_offset > uint64(0)) { 55638 goto __17 55639 } 55640 return -36 55641 __17: 55642 ; 55643 return -22 // Isolated 0x80 byte 55644 __16: 55645 ; 55646 __13: 55647 ; 55648 55649 // The mb->check_subject field points to the start of UTF checking; 55650 // lookbehinds can go back no further than this. 55651 55652 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = start_match 55653 55654 // Move back by the maximum lookbehind, just in case it happens at the very 55655 // start of matching, but don't do this if we skipped bad 8-bit or 16-bit code 55656 // units above. 55657 55658 if !!(skipped_bad_start != 0) { 55659 goto __18 55660 } 55661 55662 i = uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) 55663 __19: 55664 if !(i > uint32(0) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject > subject) { 55665 goto __21 55666 } 55667 55668 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject-- 55669 __22: 55670 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) { 55671 goto __23 55672 } 55673 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject-- 55674 goto __22 55675 __23: 55676 ; 55677 goto __20 55678 __20: 55679 i-- 55680 goto __19 55681 goto __21 55682 __21: 55683 ; 55684 __18: 55685 ; 55686 55687 // Validate the relevant portion of the subject. There's a loop in case we 55688 // encounter bad UTF in the characters preceding start_match which we are 55689 // scanning because of a lookbehind. 55690 55691 __24: 55692 55693 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = X_pcre2_valid_utf_8(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject, 55694 length-Tsize_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject)-int64(subject))/1), match_data+64) 55695 55696 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc == 0) { 55697 goto __27 55698 } 55699 goto __26 55700 __27: 55701 ; // Valid UTF string 55702 55703 // Invalid UTF string. Adjust the offset to be an absolute offset in the 55704 // whole string. If we are handling invalid UTF strings, set end_subject to 55705 // stop before the bad code unit, and set the options to "not end of line". 55706 // Otherwise return the error. 55707 55708 *(*Tsize_t)(unsafe.Pointer(match_data + 64)) += Tsize_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject) - int64(subject)) / 1) 55709 if !(!(allow_invalid != 0) || (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc > 0) { 55710 goto __28 55711 } 55712 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 55713 __28: 55714 ; 55715 end_subject = subject + uintptr((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar) 55716 55717 // If the end precedes start_match, it means there is invalid UTF in the 55718 // extra code units we reversed over because of a lookbehind. Advance past the 55719 // first bad code unit, and then skip invalid character starting code units in 55720 // 8-bit and 16-bit modes, and try again with the original end point. 55721 55722 if !(end_subject < start_match) { 55723 goto __29 55724 } 55725 55726 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = end_subject + uintptr(1) 55727 __31: 55728 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) { 55729 goto __32 55730 } 55731 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject++ 55732 goto __31 55733 __32: 55734 ; 55735 end_subject = true_end_subject 55736 goto __30 55737 __29: 55738 55739 fragment_options = DPCRE2_NOTEOL 55740 goto __26 55741 __30: 55742 ; 55743 goto __25 55744 __25: 55745 goto __24 55746 goto __26 55747 __26: 55748 ; 55749 __11: 55750 ; 55751 55752 // A NULL match context means "use a default context", but we take the memory 55753 // control functions from the pattern. 55754 55755 if !(mcontext == uintptr(0)) { 55756 goto __33 55757 } 55758 55759 mcontext = uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) 55760 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmemctl 55761 goto __34 55762 __33: 55763 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl 55764 __34: 55765 ; 55766 55767 anchored = libc.Bool32(((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options|options)&DPCRE2_ANCHORED != Tuint32_t(0)) 55768 firstline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_FIRSTLINE != Tuint32_t(0)) 55769 startline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_STARTLINE) != Tuint32_t(0)) 55770 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit == libc.CplUint64(uint64(0)) { 55771 bumpalong_limit = true_end_subject 55772 } else { 55773 bumpalong_limit = subject + uintptr((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit) 55774 } 55775 55776 // Initialize and set up the fixed fields in the callout block, with a pointer 55777 // in the match block. 55778 55779 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcb = bp + 20768 /* &cb */ 55780 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20768 /* &cb */)).Fversion = Tuint32_t(2) 55781 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20768 /* &cb */)).Fsubject = subject 55782 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20768 /* &cb */)).Fsubject_length = Tsize_t((int64(end_subject) - int64(subject)) / 1) 55783 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20768 /* &cb */)).Fcallout_flags = Tuint32_t(0) 55784 55785 // Fill in the remaining fields in the match block, except for moptions, which 55786 // gets set later. 55787 55788 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout 55789 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout_data = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout_data 55790 55791 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject = subject 55792 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_offset = start_offset 55793 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject = end_subject 55794 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhasthen = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASTHEN) != Tuint32_t(0)) 55795 (*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)) 55796 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options // Pattern options 55797 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg = Tuint32_t(0) 55798 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark = libc.AssignPtrUintptr(mb+208, uintptr(0)) // In case never set 55799 55800 // The name table is needed for finding all the numbers associated with a 55801 // given name, for condition testing. The code follows the name table. 55802 55803 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) 55804 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_count = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count 55805 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size 55806 (*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)) 55807 55808 // Process the \R and newline settings. 55809 55810 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention 55811 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_FIXED) 55812 switch int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention) { 55813 case DPCRE2_NEWLINE_CR: 55814 goto __36 55815 55816 case DPCRE2_NEWLINE_LF: 55817 goto __37 55818 55819 case DPCRE2_NEWLINE_NUL: 55820 goto __38 55821 55822 case DPCRE2_NEWLINE_CRLF: 55823 goto __39 55824 55825 case DPCRE2_NEWLINE_ANY: 55826 goto __40 55827 55828 case DPCRE2_NEWLINE_ANYCRLF: 55829 goto __41 55830 55831 default: 55832 goto __42 55833 } 55834 goto __35 55835 55836 __36: 55837 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 55838 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)) = TPCRE2_UCHAR8('\015') 55839 goto __35 55840 55841 __37: 55842 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 55843 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)) = TPCRE2_UCHAR8('\012') 55844 goto __35 55845 55846 __38: 55847 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 55848 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)) = TPCRE2_UCHAR8(0) 55849 goto __35 55850 55851 __39: 55852 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(2) 55853 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)) = TPCRE2_UCHAR8('\015') 55854 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1)) = TPCRE2_UCHAR8('\012') 55855 goto __35 55856 55857 __40: 55858 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANY) 55859 goto __35 55860 55861 __41: 55862 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANYCRLF) 55863 goto __35 55864 55865 __42: 55866 return -44 55867 __35: 55868 ; 55869 55870 // The backtracking frames have fixed data at the front, and a PCRE2_SIZE 55871 // vector at the end, whose size depends on the number of capturing parentheses in 55872 // the pattern. It is not used at all if there are no capturing parentheses. 55873 // 55874 // frame_size is the total size of each frame 55875 // mb->frame_vector_size is the total usable size of the vector (rounded down 55876 // to a whole number of frames) 55877 // 55878 // The last of these is changed within the match() function if the frame vector 55879 // has to be expanded. We therefore put it into the match block so that it is 55880 // correct when calling match() more than once for non-anchored patterns. 55881 // 55882 // We must also pad frame_size for alignment to ensure subsequent frames are as 55883 // aligned as heapframe. Whilst ovector is word-aligned due to being a PCRE2_SIZE 55884 // array, that does not guarantee it is suitably aligned for pointers, as some 55885 // architectures have pointers that are larger than a size_t. 55886 55887 frame_size = (uint64(uintptr(0)+128) + uint64(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket)*2)*uint64(unsafe.Sizeof(Tsize_t(0))) + uint64(uintptr(0)+8) - uint64(1)) & libc.CplUint64(uint64(uintptr(0)+8)-uint64(1)) 55888 55889 // Limits set in the pattern override the match context only if they are 55890 // smaller. 55891 55892 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit = func() uint64 { 55893 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit < (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap { 55894 return uint64((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit) 55895 } 55896 return uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap) 55897 }() 55898 55899 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit = func() uint32 { 55900 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit < (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match { 55901 return (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit 55902 } 55903 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match 55904 }() 55905 55906 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = func() uint32 { 55907 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit < (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth { 55908 return (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit 55909 } 55910 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth 55911 }() 55912 55913 // If a pattern has very many capturing parentheses, the frame size may be very 55914 // large. Ensure that there are at least 10 available frames by getting an initial 55915 // vector on the heap if necessary, except when the heap limit prevents this. Get 55916 // fewer if possible. (The heap limit is in kibibytes.) 55917 55918 if !(frame_size <= uint64(DSTART_FRAMES_SIZE/10)) { 55919 goto __43 55920 } 55921 55922 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames // Initial frame vector on the stack 55923 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = uint64(DSTART_FRAMES_SIZE) / frame_size * frame_size 55924 goto __44 55925 __43: 55926 55927 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = frame_size * uint64(10) 55928 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size/uint64(1024) > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit) { 55929 goto __45 55930 } 55931 55932 if !(frame_size > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit*uint64(1024)) { 55933 goto __46 55934 } 55935 return -63 55936 __46: 55937 ; 55938 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit * uint64(1024) / frame_size * frame_size 55939 __45: 55940 ; 55941 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames = (*struct { 55942 f func(*libc.TLS, Tsize_t, uintptr) uintptr 55943 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmalloc})).f(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size, 55944 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 55945 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames == uintptr(0)) { 55946 goto __47 55947 } 55948 return -48 55949 __47: 55950 ; 55951 __44: 55952 ; 55953 55954 (*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) 55955 55956 // Write to the ovector within the first frame to mark every capture unset and 55957 // to avoid uninitialized memory read errors when it is copied to a new frame. 55958 55959 libc.Xmemset(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames+uintptr(uint64(uintptr(0)+128)), 0xff, 55960 frame_size-Tsize_t(uintptr(0)+128)) 55961 55962 // Pointers to the individual character tables 55963 55964 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dlcc_offset) 55965 (*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dfcc_offset) 55966 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dcbits_offset+Dcbit_length) 55967 55968 // Set up the first code unit to match, if available. If there's no first code 55969 // unit there may be a bitmap of possible first characters. 55970 55971 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0)) { 55972 goto __48 55973 } 55974 55975 has_first_cu = DTRUE 55976 first_cu = libc.AssignUint8(&first_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit)) 55977 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTCASELESS) != Tuint32_t(0)) { 55978 goto __50 55979 } 55980 55981 first_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(first_cu))) 55982 if !(int32(first_cu) > 127 && ucp != 0 && !(utf != 0)) { 55983 goto __51 55984 } 55985 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)) 55986 __51: 55987 ; 55988 __50: 55989 ; 55990 goto __49 55991 __48: 55992 if !(!(startline != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0)) { 55993 goto __52 55994 } 55995 start_bits = re + 40 /* &.start_bitmap */ 55996 __52: 55997 ; 55998 __49: 55999 ; 56000 56001 // There may also be a "last known required character" set. 56002 56003 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0)) { 56004 goto __53 56005 } 56006 56007 has_req_cu = DTRUE 56008 req_cu = libc.AssignUint8(&req_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit)) 56009 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTCASELESS) != Tuint32_t(0)) { 56010 goto __54 56011 } 56012 56013 req_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(req_cu))) 56014 if !(int32(req_cu) > 127 && ucp != 0 && !(utf != 0)) { 56015 goto __55 56016 } 56017 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)) 56018 __55: 56019 ; 56020 __54: 56021 ; 56022 __53: 56023 ; 56024 56025 // ========================================================================== 56026 56027 // Loop for handling unanchored repeated matching attempts; for anchored regexs 56028 // the loop runs just once. 56029 56030 FRAGMENT_RESTART: 56031 56032 start_partial = libc.AssignUintptr(&match_partial, uintptr(0)) 56033 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DFALSE 56034 56035 memchr_found_first_cu = uintptr(0) 56036 memchr_found_first_cu2 = uintptr(0) 56037 56038 __56: 56039 56040 // ----------------- Start of match optimizations ---------------- 56041 56042 // There are some optimizations that avoid running the match if a known 56043 // starting point is not found, or if a known later code unit is not present. 56044 // However, there is an option (settable at compile time) that disables these, 56045 // for testing and for ensuring that all callouts do actually occur. 56046 56047 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_START_OPTIMIZE == Tuint32_t(0)) { 56048 goto __59 56049 } 56050 56051 // If firstline is TRUE, the start of the match is constrained to the first 56052 // line of a multiline string. That is, the match must be before or at the 56053 // first newline following the start of matching. Temporarily adjust 56054 // end_subject so that we stop the scans for a first code unit at a newline. 56055 // If the match fails at the newline, later code breaks the loop. 56056 56057 if !(firstline != 0) { 56058 goto __60 56059 } 56060 56061 t = start_match 56062 if !(utf != 0) { 56063 goto __61 56064 } 56065 56066 __63: 56067 if !(t < end_subject && !(func() int32 { 56068 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56069 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+256, utf) != 0) 56070 } 56071 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 + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 56072 }() != 0)) { 56073 goto __64 56074 } 56075 56076 t++ 56077 __65: 56078 if !(t < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t)))&0xc0 == 0x80) { 56079 goto __66 56080 } 56081 t++ 56082 goto __65 56083 __66: 56084 ; 56085 goto __63 56086 __64: 56087 ; 56088 goto __62 56089 __61: 56090 __67: 56091 if !(t < end_subject && !(func() int32 { 56092 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56093 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+256, utf) != 0) 56094 } 56095 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 + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 56096 }() != 0)) { 56097 goto __68 56098 } 56099 t++ 56100 goto __67 56101 __68: 56102 ; 56103 __62: 56104 ; 56105 end_subject = t 56106 __60: 56107 ; 56108 56109 // Anchored: check the first code unit if one is recorded. This may seem 56110 // pointless but it can help in detecting a no match case without scanning for 56111 // the required code unit. 56112 56113 if !(anchored != 0) { 56114 goto __69 56115 } 56116 56117 if !(has_first_cu != 0 || start_bits != uintptr(0)) { 56118 goto __71 56119 } 56120 56121 ok = libc.Bool32(start_match < end_subject) 56122 if !(ok != 0) { 56123 goto __72 56124 } 56125 56126 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)) 56127 ok = libc.Bool32(has_first_cu != 0 && (int32(c) == int32(first_cu) || int32(c) == int32(first_cu2))) 56128 if !(!(ok != 0) && start_bits != uintptr(0)) { 56129 goto __73 56130 } 56131 56132 ok = libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(int32(c)/8))))&(uint32(1)<<(int32(c)&7)) != uint32(0)) 56133 __73: 56134 ; 56135 __72: 56136 ; 56137 if !!(ok != 0) { 56138 goto __74 56139 } 56140 56141 rc = DMATCH_NOMATCH 56142 goto __58 56143 __74: 56144 ; 56145 __71: 56146 ; 56147 goto __70 56148 __69: 56149 56150 if !(has_first_cu != 0) { 56151 goto __75 56152 } 56153 56154 if !(int32(first_cu) != int32(first_cu2)) { 56155 goto __77 56156 } /* Caseless */ 56157 56158 // In 16-bit and 32_bit modes we have to do our own search, so can 56159 // look for both cases at once. 56160 56161 // In 8-bit mode, the use of memchr() gives a big speed up, even 56162 // though we have to call it twice in order to find the earliest 56163 // occurrence of the code unit in either of its cases. Caching is used 56164 // to remember the positions of previously found code units. This can 56165 // make a huge difference when the strings are very long and only one 56166 // case is actually present. 56167 56168 pp1 = uintptr(0) 56169 pp2 = uintptr(0) 56170 searchlength = Tsize_t((int64(end_subject) - int64(start_match)) / 1) 56171 56172 // If we haven't got a previously found position for first_cu, or if 56173 // the current starting position is later, we need to do a search. If 56174 // the code unit is not found, set it to the end. 56175 56176 if !(memchr_found_first_cu == uintptr(0) || start_match > memchr_found_first_cu) { 56177 goto __79 56178 } 56179 56180 pp1 = libc.Xmemchr(tls, start_match, int32(first_cu), searchlength) 56181 if pp1 == uintptr(0) { 56182 memchr_found_first_cu = end_subject 56183 } else { 56184 memchr_found_first_cu = pp1 56185 } 56186 goto __80 56187 __79: 56188 if memchr_found_first_cu == end_subject { 56189 pp1 = uintptr(0) 56190 } else { 56191 pp1 = memchr_found_first_cu 56192 } 56193 __80: 56194 ; 56195 56196 // Do the same thing for the other case. 56197 56198 if !(memchr_found_first_cu2 == uintptr(0) || start_match > memchr_found_first_cu2) { 56199 goto __81 56200 } 56201 56202 pp2 = libc.Xmemchr(tls, start_match, int32(first_cu2), searchlength) 56203 if pp2 == uintptr(0) { 56204 memchr_found_first_cu2 = end_subject 56205 } else { 56206 memchr_found_first_cu2 = pp2 56207 } 56208 goto __82 56209 __81: 56210 if memchr_found_first_cu2 == end_subject { 56211 pp2 = uintptr(0) 56212 } else { 56213 pp2 = memchr_found_first_cu2 56214 } 56215 __82: 56216 ; 56217 56218 // Set the start to the end of the subject if neither case was found. 56219 // Otherwise, use the earlier found point. 56220 56221 if !(pp1 == uintptr(0)) { 56222 goto __83 56223 } 56224 if pp2 == uintptr(0) { 56225 start_match = end_subject 56226 } else { 56227 start_match = pp2 56228 } 56229 goto __84 56230 __83: 56231 if pp2 == uintptr(0) || pp1 < pp2 { 56232 start_match = pp1 56233 } else { 56234 start_match = pp2 56235 } 56236 __84: 56237 ; 56238 56239 goto __78 56240 __77: 56241 56242 start_match = libc.Xmemchr(tls, start_match, int32(first_cu), uint64((int64(end_subject)-int64(start_match))/1)) 56243 if !(start_match == uintptr(0)) { 56244 goto __85 56245 } 56246 start_match = end_subject 56247 __85: 56248 ; 56249 __78: 56250 ; 56251 56252 // If we can't find the required first code unit, having reached the 56253 // true end of the subject, break the bumpalong loop, to force a match 56254 // failure, except when doing partial matching, when we let the next cycle 56255 // run at the end of the subject. To see why, consider the pattern 56256 // /(?<=abc)def/, which partially matches "abc", even though the string 56257 // does not contain the starting character "d". If we have not reached the 56258 // true end of the subject (PCRE2_FIRSTLINE caused end_subject to be 56259 // temporarily modified) we also let the cycle run, because the matching 56260 // string is legitimately allowed to start with the first code unit of a 56261 // newline. 56262 56263 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) == 0 && start_match >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 56264 goto __86 56265 } 56266 56267 rc = DMATCH_NOMATCH 56268 goto __58 56269 __86: 56270 ; 56271 goto __76 56272 __75: 56273 if !(startline != 0) { 56274 goto __87 56275 } 56276 56277 if !(start_match > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr(start_offset)) { 56278 goto __89 56279 } 56280 56281 if !(utf != 0) { 56282 goto __90 56283 } 56284 56285 __92: 56286 if !(start_match < end_subject && !(func() int32 { 56287 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56288 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+256, utf) != 0) 56289 } 56290 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 + 260))) && ((*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 + 260 + 1))))) 56291 }() != 0)) { 56292 goto __93 56293 } 56294 56295 start_match++ 56296 __94: 56297 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 56298 goto __95 56299 } 56300 start_match++ 56301 goto __94 56302 __95: 56303 ; 56304 goto __92 56305 __93: 56306 ; 56307 goto __91 56308 __90: 56309 __96: 56310 if !(start_match < end_subject && !(func() int32 { 56311 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56312 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+256, utf) != 0) 56313 } 56314 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 + 260))) && ((*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 + 260 + 1))))) 56315 }() != 0)) { 56316 goto __97 56317 } 56318 start_match++ 56319 goto __96 56320 __97: 56321 ; 56322 __91: 56323 ; 56324 56325 // If we have just passed a CR and the newline option is ANY or 56326 // ANYCRLF, and we are now at a LF, advance the match position by one 56327 // more code unit. 56328 56329 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') { 56330 goto __98 56331 } 56332 start_match++ 56333 __98: 56334 ; 56335 __89: 56336 ; 56337 goto __88 56338 __87: 56339 if !(start_bits != uintptr(0)) { 56340 goto __99 56341 } 56342 56343 __100: 56344 if !(start_match < end_subject) { 56345 goto __101 56346 } 56347 56348 c1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) 56349 if !(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(c1/Tuint32_t(8)))))&(uint32(1)<<(c1&Tuint32_t(7))) != uint32(0)) { 56350 goto __102 56351 } 56352 goto __101 56353 __102: 56354 ; 56355 start_match++ 56356 goto __100 56357 __101: 56358 ; 56359 56360 // See comment above in first_cu checking about the next few lines. 56361 56362 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) == 0 && start_match >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 56363 goto __103 56364 } 56365 56366 rc = DMATCH_NOMATCH 56367 goto __58 56368 __103: 56369 ; 56370 __99: 56371 ; 56372 __88: 56373 ; 56374 __76: 56375 ; 56376 __70: 56377 ; // End first code unit handling 56378 56379 // Restore fudged end_subject 56380 56381 end_subject = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 56382 56383 // The following two optimizations must be disabled for partial matching. 56384 56385 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) == 0) { 56386 goto __104 56387 } 56388 56389 // The minimum matching length is a lower bound; no string of that length 56390 // may actually match the pattern. Although the value is, strictly, in 56391 // characters, we treat it as code units to avoid spending too much time in 56392 // this optimization. 56393 56394 if !((int64(end_subject)-int64(start_match))/1 < int64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength)) { 56395 goto __105 56396 } 56397 56398 rc = DMATCH_NOMATCH 56399 goto __58 56400 __105: 56401 ; 56402 56403 // If req_cu is set, we know that that code unit must appear in the 56404 // subject for the (non-partial) match to succeed. If the first code unit is 56405 // set, req_cu must be later in the subject; otherwise the test starts at 56406 // the match point. This optimization can save a huge amount of backtracking 56407 // in patterns with nested unlimited repeats that aren't going to match. 56408 // Writing separate code for caseful/caseless versions makes it go faster, 56409 // as does using an autoincrement and backing off on a match. As in the case 56410 // of the first code unit, using memchr() in the 8-bit library gives a big 56411 // speed up. Unlike the first_cu check above, we do not need to call 56412 // memchr() twice in the caseless case because we only need to check for the 56413 // presence of the character in either case, not find the first occurrence. 56414 // 56415 // The search can be skipped if the code unit was found later than the 56416 // current starting point in a previous iteration of the bumpalong loop. 56417 // 56418 // HOWEVER: when the subject string is very, very long, searching to its end 56419 // can take a long time, and give bad performance on quite ordinary 56420 // anchored patterns. This showed up when somebody was matching something 56421 // like /^\d+C/ on a 32-megabyte string... so we don't do this when the 56422 // string is sufficiently long, but it's worth searching a lot more for 56423 // unanchored patterns. 56424 56425 p = start_match + uintptr(func() int32 { 56426 if has_first_cu != 0 { 56427 return 1 56428 } 56429 return 0 56430 }()) 56431 if !(has_req_cu != 0 && p > req_cu_ptr) { 56432 goto __106 56433 } 56434 56435 check_length = Tsize_t((int64(end_subject) - int64(start_match)) / 1) 56436 56437 if !(check_length < uint64(DREQ_CU_MAX) || !(anchored != 0) && check_length < uint64(DREQ_CU_MAX*1000)) { 56438 goto __107 56439 } 56440 56441 if !(int32(req_cu) != int32(req_cu2)) { 56442 goto __108 56443 } /* Caseless */ 56444 56445 pp = p 56446 p = libc.Xmemchr(tls, pp, int32(req_cu), uint64((int64(end_subject)-int64(pp))/1)) 56447 if !(p == uintptr(0)) { 56448 goto __110 56449 } 56450 56451 p = libc.Xmemchr(tls, pp, int32(req_cu2), uint64((int64(end_subject)-int64(pp))/1)) 56452 if !(p == uintptr(0)) { 56453 goto __111 56454 } 56455 p = end_subject 56456 __111: 56457 ; 56458 __110: 56459 ; 56460 goto __109 56461 __108: 56462 56463 p = libc.Xmemchr(tls, p, int32(req_cu), uint64((int64(end_subject)-int64(p))/1)) 56464 if !(p == uintptr(0)) { 56465 goto __112 56466 } 56467 p = end_subject 56468 __112: 56469 ; 56470 __109: 56471 ; 56472 56473 // If we can't find the required code unit, break the bumpalong loop, 56474 // forcing a match failure. 56475 56476 if !(p >= end_subject) { 56477 goto __113 56478 } 56479 56480 rc = DMATCH_NOMATCH 56481 goto __58 56482 __113: 56483 ; 56484 56485 // If we have found the required code unit, save the point where we 56486 // found it, so that we don't search again next time round the bumpalong 56487 // loop if the start hasn't yet passed this code unit. 56488 56489 req_cu_ptr = p 56490 __107: 56491 ; 56492 __106: 56493 ; 56494 __104: 56495 ; 56496 __59: 56497 ; 56498 56499 // ------------ End of start of match optimizations ------------ 56500 56501 // Give no match if we have passed the bumpalong limit. 56502 56503 if !(start_match > bumpalong_limit) { 56504 goto __114 56505 } 56506 56507 rc = DMATCH_NOMATCH 56508 goto __58 56509 __114: 56510 ; 56511 56512 // OK, we can now run the match. If "hitend" is set afterwards, remember the 56513 // first starting point for which a partial match was found. 56514 56515 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20768 /* &cb */)).Fstart_match = Tsize_t((int64(start_match) - int64(subject)) / 1) 56516 *(*Tuint32_t)(unsafe.Pointer(bp + 20768 + 104)) |= DPCRE2_CALLOUT_STARTMATCH 56517 56518 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = start_match 56519 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = start_match 56520 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions = options | fragment_options 56521 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_call_count = Tuint32_t(0) 56522 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top = uint64(0) 56523 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count = Tuint32_t(0) 56524 56525 rc = match(tls, start_match, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_code, match_data+80, 56526 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount, (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket, frame_size, mb) 56527 56528 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend != 0 && start_partial == uintptr(0)) { 56529 goto __115 56530 } 56531 56532 start_partial = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr 56533 match_partial = start_match 56534 __115: 56535 ; 56536 56537 switch rc { 56538 // If MATCH_SKIP_ARG reaches this level it means that a MARK that matched 56539 // the SKIP's arg was not found. In this circumstance, Perl ignores the SKIP 56540 // entirely. The only way we can do that is to re-do the match at the same 56541 // point, with a flag to force SKIP with an argument to be ignored. Just 56542 // treating this case as NOMATCH does not work because it does not check other 56543 // alternatives in patterns such as A(*SKIP:A)B|AC when the subject is AC. 56544 56545 case -994: 56546 goto __117 56547 56548 // SKIP passes back the next starting point explicitly, but if it is no 56549 // greater than the match we have just done, treat it as NOMATCH. 56550 56551 case -995: 56552 goto __118 56553 // Fall through 56554 56555 // NOMATCH and PRUNE advance by one character. THEN at this level acts 56556 // exactly like PRUNE. Unset ignore SKIP-with-argument. 56557 56558 case DMATCH_NOMATCH: 56559 goto __119 56560 case -996: 56561 goto __120 56562 case -993: 56563 goto __121 56564 56565 // COMMIT disables the bumpalong, but otherwise behaves as NOMATCH. 56566 56567 case -997: 56568 goto __122 56569 56570 // Any other return is either a match, or some kind of error. 56571 56572 default: 56573 goto __123 56574 } 56575 goto __116 56576 56577 // If MATCH_SKIP_ARG reaches this level it means that a MARK that matched 56578 // the SKIP's arg was not found. In this circumstance, Perl ignores the SKIP 56579 // entirely. The only way we can do that is to re-do the match at the same 56580 // point, with a flag to force SKIP with an argument to be ignored. Just 56581 // treating this case as NOMATCH does not work because it does not check other 56582 // alternatives in patterns such as A(*SKIP:A)B|AC when the subject is AC. 56583 56584 __117: 56585 new_start_match = start_match 56586 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count 56587 goto __116 56588 56589 // SKIP passes back the next starting point explicitly, but if it is no 56590 // greater than the match we have just done, treat it as NOMATCH. 56591 56592 __118: 56593 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr > start_match) { 56594 goto __124 56595 } 56596 56597 new_start_match = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr 56598 goto __116 56599 __124: 56600 ; 56601 // Fall through 56602 56603 // NOMATCH and PRUNE advance by one character. THEN at this level acts 56604 // exactly like PRUNE. Unset ignore SKIP-with-argument. 56605 56606 __119: 56607 __120: 56608 __121: 56609 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg = Tuint32_t(0) 56610 new_start_match = start_match + uintptr(1) 56611 if !(utf != 0) { 56612 goto __125 56613 } 56614 __126: 56615 if !(new_start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(new_start_match)))&0xc0 == 0x80) { 56616 goto __127 56617 } 56618 new_start_match++ 56619 goto __126 56620 __127: 56621 ; 56622 __125: 56623 ; 56624 goto __116 56625 56626 // COMMIT disables the bumpalong, but otherwise behaves as NOMATCH. 56627 56628 __122: 56629 rc = DMATCH_NOMATCH 56630 goto ENDLOOP 56631 56632 // Any other return is either a match, or some kind of error. 56633 56634 __123: 56635 goto ENDLOOP 56636 __116: 56637 ; 56638 56639 // Control reaches here for the various types of "no match at this point" 56640 // result. Reset the code to MATCH_NOMATCH for subsequent checking. 56641 56642 rc = DMATCH_NOMATCH 56643 56644 // If PCRE2_FIRSTLINE is set, the match must happen before or at the first 56645 // newline in the subject (though it may continue over the newline). Therefore, 56646 // if we have just failed to match, starting at a newline, do not continue. 56647 56648 if !(firstline != 0 && func() int32 { 56649 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56650 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+256, utf) != 0) 56651 } 56652 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 + 260))) && ((*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 + 260 + 1))))) 56653 }() != 0) { 56654 goto __128 56655 } 56656 goto __58 56657 __128: 56658 ; 56659 56660 // Advance to new matching position 56661 56662 start_match = new_start_match 56663 56664 // Break the loop if the pattern is anchored or if we have passed the end of 56665 // the subject. 56666 56667 if !(anchored != 0 || start_match > end_subject) { 56668 goto __129 56669 } 56670 goto __58 56671 __129: 56672 ; 56673 56674 // If we have just passed a CR and we are now at a LF, and the pattern does 56675 // not contain any explicit matches for \r or \n, and the newline option is CRLF 56676 // or ANY or ANYCRLF, advance the match position by one more code unit. In 56677 // normal matching start_match will aways be greater than the first position at 56678 // this stage, but a failed *SKIP can cause a return at the same point, which is 56679 // why the first test exists. 56680 56681 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))) { 56682 goto __130 56683 } 56684 start_match++ 56685 __130: 56686 ; 56687 56688 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark = uintptr(0) // Reset for start of next match attempt 56689 goto __57 56690 __57: 56691 goto __56 56692 goto __58 56693 __58: 56694 ; // End of for(;;) "bumpalong" loop 56695 56696 // ========================================================================== 56697 56698 // When we reach here, one of the following stopping conditions is true: 56699 // 56700 // (1) The match succeeded, either completely, or partially; 56701 // 56702 // (2) The pattern is anchored or the match was failed after (*COMMIT); 56703 // 56704 // (3) We are past the end of the subject or the bumpalong limit; 56705 // 56706 // (4) PCRE2_FIRSTLINE is set and we have failed to match at a newline, because 56707 // this option requests that a match occur at or before the first newline in 56708 // the subject. 56709 // 56710 // (5) Some kind of error occurred. 56711 // 56712 56713 ENDLOOP: 56714 56715 // If end_subject != true_end_subject, it means we are handling invalid UTF, 56716 // and have just processed a non-terminal fragment. If this resulted in no match 56717 // or a partial match we must carry on to the next fragment (a partial match is 56718 // returned to the caller only at the very end of the subject). A loop is used to 56719 // avoid trying to match against empty fragments; if the pattern can match an 56720 // empty string it would have done so already. 56721 56722 if !(utf != 0 && end_subject != true_end_subject && (rc == DMATCH_NOMATCH || rc == -2)) { 56723 goto __131 56724 } 56725 56726 __132: 56727 56728 // Advance past the first bad code unit, and then skip invalid character 56729 // starting code units in 8-bit and 16-bit modes. 56730 56731 start_match = end_subject + uintptr(1) 56732 56733 __135: 56734 if !(start_match < true_end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 56735 goto __136 56736 } 56737 start_match++ 56738 goto __135 56739 __136: 56740 ; 56741 56742 // If we have hit the end of the subject, there isn't another non-empty 56743 // fragment, so give up. 56744 56745 if !(start_match >= true_end_subject) { 56746 goto __137 56747 } 56748 56749 rc = DMATCH_NOMATCH // In case it was partial 56750 goto __134 56751 __137: 56752 ; 56753 56754 // Check the rest of the subject 56755 56756 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = start_match 56757 rc = X_pcre2_valid_utf_8(tls, start_match, length-Tsize_t((int64(start_match)-int64(subject))/1), 56758 match_data+64) 56759 56760 // The rest of the subject is valid UTF. 56761 56762 if !(rc == 0) { 56763 goto __138 56764 } 56765 56766 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject = libc.AssignUintptr(&end_subject, true_end_subject) 56767 fragment_options = DPCRE2_NOTBOL 56768 goto FRAGMENT_RESTART 56769 goto __139 56770 __138: 56771 if !(rc < 0) { 56772 goto __140 56773 } 56774 56775 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject = libc.AssignUintptr(&end_subject, start_match+uintptr((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar)) 56776 if !(end_subject > start_match) { 56777 goto __141 56778 } 56779 56780 fragment_options = DPCRE2_NOTBOL | DPCRE2_NOTEOL 56781 goto FRAGMENT_RESTART 56782 __141: 56783 ; 56784 __140: 56785 ; 56786 __139: 56787 ; 56788 goto __133 56789 __133: 56790 goto __132 56791 goto __134 56792 __134: 56793 ; 56794 __131: 56795 ; 56796 56797 // Release an enlarged frame vector that is on the heap. 56798 56799 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames) { 56800 goto __142 56801 } 56802 (*struct { 56803 f func(*libc.TLS, uintptr, uintptr) 56804 })(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) 56805 __142: 56806 ; 56807 56808 // Fill in fields that are always returned in the match data. 56809 56810 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode = re 56811 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark 56812 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby = PCRE2_MATCHEDBY_INTERPRETER 56813 56814 // Handle a fully successful match. Set the return code to the number of 56815 // captured strings, or 0 if there were too many to fit into the ovector, and then 56816 // set the remaining returned values before returning. Make a copy of the subject 56817 // string if requested. 56818 56819 if !(rc == DMATCH_MATCH) { 56820 goto __143 56821 } 56822 56823 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = func() int32 { 56824 if int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top) >= 2*int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 56825 return 0 56826 } 56827 return int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top)/2 + 1 56828 }() 56829 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = Tsize_t((int64(start_match) - int64(subject)) / 1) 56830 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) - int64(subject)) / 1) 56831 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frightchar = Tsize_t((func() int64 { 56832 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_match_ptr { 56833 return int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) 56834 } 56835 return int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_match_ptr) 56836 }() - int64(subject)) / 1) 56837 if !(options&DPCRE2_COPY_MATCHED_SUBJECT != Tuint32_t(0)) { 56838 goto __144 56839 } 56840 56841 length = (length + Tsize_t(was_zero_terminated)) * uint64(DPCRE2_CODE_UNIT_WIDTH/8) 56842 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = (*struct { 56843 f func(*libc.TLS, Tsize_t, uintptr) uintptr 56844 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmalloc})).f(tls, length, 56845 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 56846 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject == uintptr(0)) { 56847 goto __146 56848 } 56849 return -48 56850 __146: 56851 ; 56852 libc.Xmemcpy(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, subject, length) 56853 *(*Tuint8_t)(unsafe.Pointer(match_data + 73)) |= uint8(DPCRE2_MD_COPIED_SUBJECT) 56854 goto __145 56855 __144: 56856 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = subject 56857 __145: 56858 ; 56859 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 56860 __143: 56861 ; 56862 56863 // Control gets here if there has been a partial match, an error, or if the 56864 // overall match attempt has failed at all permitted starting positions. Any mark 56865 // data is in the nomatch_mark field. 56866 56867 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnomatch_mark 56868 56869 // For anything other than nomatch or partial match, just return the code. 56870 56871 if !(rc != DMATCH_NOMATCH && rc != -2) { 56872 goto __147 56873 } 56874 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = rc 56875 goto __148 56876 __147: 56877 if !(match_partial != uintptr(0)) { 56878 goto __149 56879 } 56880 56881 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = subject 56882 *(*Tsize_t)(unsafe.Pointer(match_data + 80)) = Tsize_t((int64(match_partial) - int64(subject)) / 1) 56883 *(*Tsize_t)(unsafe.Pointer(match_data + 80 + 1*8)) = Tsize_t((int64(end_subject) - int64(subject)) / 1) 56884 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = Tsize_t((int64(match_partial) - int64(subject)) / 1) 56885 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t((int64(start_partial) - int64(subject)) / 1) 56886 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frightchar = Tsize_t((int64(end_subject) - int64(subject)) / 1) 56887 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = -2 56888 goto __150 56889 __149: 56890 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = -1 56891 __150: 56892 ; 56893 __148: 56894 ; 56895 56896 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 56897 } 56898 56899 // End of pcre2_match.c 56900 56901 // This function is needed only when memmove() is not available. 56902 56903 // End of pcre2_internal.h 56904 56905 // ************************************************ 56906 // 56907 // Create a match data block given ovector size * 56908 // 56909 56910 // A minimum of 1 is imposed on the number of ovector pairs. 56911 56912 func Xpcre2_match_data_create_8(tls *libc.TLS, oveccount Tuint32_t, gcontext uintptr) uintptr { /* pcre2_match_data.c:56:33: */ 56913 var yield uintptr 56914 if oveccount < Tuint32_t(1) { 56915 oveccount = Tuint32_t(1) 56916 } 56917 yield = X_pcre2_memctl_malloc_8(tls, 56918 uint64(uintptr(0)+80)+uint64(Tuint32_t(2)*oveccount)*uint64(unsafe.Sizeof(Tsize_t(0))), 56919 gcontext) 56920 if yield == uintptr(0) { 56921 return uintptr(0) 56922 } 56923 (*Tpcre2_match_data_8)(unsafe.Pointer(yield)).Foveccount = Tuint16_t(oveccount) 56924 (*Tpcre2_match_data_8)(unsafe.Pointer(yield)).Fflags = Tuint8_t(0) 56925 return yield 56926 } 56927 56928 // ************************************************ 56929 // 56930 // Create a match data block using pattern data * 56931 // 56932 56933 // If no context is supplied, use the memory allocator from the code. 56934 56935 func Xpcre2_match_data_create_from_pattern_8(tls *libc.TLS, code uintptr, gcontext uintptr) uintptr { /* pcre2_match_data.c:78:33: */ 56936 if gcontext == uintptr(0) { 56937 gcontext = code 56938 } 56939 return Xpcre2_match_data_create_8(tls, uint32(int32((*Tpcre2_real_code_8)(unsafe.Pointer(code)).Ftop_bracket)+1), 56940 gcontext) 56941 } 56942 56943 // ************************************************ 56944 // 56945 // Free a match data block * 56946 // 56947 56948 func Xpcre2_match_data_free_8(tls *libc.TLS, match_data uintptr) { /* pcre2_match_data.c:94:1: */ 56949 if match_data != uintptr(0) { 56950 if uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fflags)&DPCRE2_MD_COPIED_SUBJECT != uint32(0) { 56951 (*struct { 56952 f func(*libc.TLS, uintptr, uintptr) 56953 })(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, 56954 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 56955 } 56956 (*struct { 56957 f func(*libc.TLS, uintptr, uintptr) 56958 })(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) 56959 } 56960 } 56961 56962 // ************************************************ 56963 // 56964 // Get last mark in match * 56965 // 56966 56967 func Xpcre2_get_mark_8(tls *libc.TLS, match_data uintptr) TPCRE2_SPTR8 { /* pcre2_match_data.c:112:1: */ 56968 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark 56969 } 56970 56971 // ************************************************ 56972 // 56973 // Get pointer to ovector * 56974 // 56975 56976 func Xpcre2_get_ovector_pointer_8(tls *libc.TLS, match_data uintptr) uintptr { /* pcre2_match_data.c:123:27: */ 56977 return match_data + 80 /* &.ovector */ 56978 } 56979 56980 // ************************************************ 56981 // 56982 // Get number of ovector slots * 56983 // 56984 56985 func Xpcre2_get_ovector_count_8(tls *libc.TLS, match_data uintptr) Tuint32_t { /* pcre2_match_data.c:136:1: */ 56986 return Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) 56987 } 56988 56989 // ************************************************ 56990 // 56991 // Get starting code unit in match * 56992 // 56993 56994 func Xpcre2_get_startchar_8(tls *libc.TLS, match_data uintptr) Tsize_t { /* pcre2_match_data.c:148:1: */ 56995 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar 56996 } 56997 56998 // ************************************************ 56999 // 57000 // Get size of match data block * 57001 // 57002 57003 func Xpcre2_get_match_data_size_8(tls *libc.TLS, match_data uintptr) Tsize_t { /* pcre2_match_data.c:160:1: */ 57004 return uint64(uintptr(0)+80) + uint64(2*int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount))*uint64(unsafe.Sizeof(Tsize_t(0))) 57005 } 57006 57007 // End of pcre2_match_data.c 57008 57009 // This function is needed only when memmove() is not available. 57010 57011 // End of pcre2_internal.h 57012 57013 // ************************************************ 57014 // 57015 // Check for newline at given position * 57016 // 57017 57018 // This function is called only via the IS_NEWLINE macro, which does so only 57019 // when the newline type is NLTYPE_ANY or NLTYPE_ANYCRLF. The case of a fixed 57020 // newline (NLTYPE_FIXED) is handled inline. It is guaranteed that the code unit 57021 // pointed to by ptr is less than the end of the string. 57022 // 57023 // Arguments: 57024 // ptr pointer to possible newline 57025 // type the newline type 57026 // endptr pointer to the end of the string 57027 // lenptr where to return the length 57028 // utf TRUE if in utf mode 57029 // 57030 // Returns: TRUE or FALSE 57031 57032 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: */ 57033 var c Tuint32_t 57034 57035 if utf != 0 { 57036 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57037 if c >= 0xc0 { 57038 if c&0x20 == Tuint32_t(0) { 57039 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 57040 } else if c&0x10 == Tuint32_t(0) { 57041 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 57042 } else if c&0x08 == Tuint32_t(0) { 57043 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 57044 } else if c&0x04 == Tuint32_t(0) { 57045 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 57046 } else { 57047 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 57048 } 57049 } 57050 57051 } else { 57052 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57053 } 57054 57055 if type1 == Tuint32_t(DNLTYPE_ANYCRLF) { 57056 switch c { 57057 case Tuint32_t('\012'): 57058 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57059 return DTRUE 57060 fallthrough 57061 57062 case Tuint32_t('\015'): 57063 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57064 if ptr < endptr-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\012' { 57065 return uint32(2) 57066 } 57067 return uint32(1) 57068 }() 57069 return DTRUE 57070 fallthrough 57071 57072 default: 57073 return DFALSE 57074 } 57075 } else { 57076 switch c { 57077 case Tuint32_t('\012'): 57078 fallthrough 57079 case Tuint32_t('\013'): 57080 fallthrough 57081 case Tuint32_t('\014'): 57082 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57083 return DTRUE 57084 fallthrough 57085 57086 case Tuint32_t('\015'): 57087 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57088 if ptr < endptr-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\012' { 57089 return uint32(2) 57090 } 57091 return uint32(1) 57092 }() 57093 return DTRUE 57094 fallthrough 57095 57096 case Tuint32_t(uint8('\x85')): 57097 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57098 if utf != 0 { 57099 return uint32(2) 57100 } 57101 return uint32(1) 57102 }() 57103 return DTRUE 57104 fallthrough 57105 57106 case Tuint32_t(0x2028): 57107 fallthrough // LS 57108 case Tuint32_t(0x2029): // PS 57109 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(3) 57110 return DTRUE 57111 fallthrough 57112 57113 default: 57114 return DFALSE 57115 } 57116 } 57117 return TBOOL(0) 57118 } 57119 57120 // ************************************************ 57121 // 57122 // Check for newline at previous position * 57123 // 57124 57125 // This function is called only via the WAS_NEWLINE macro, which does so only 57126 // when the newline type is NLTYPE_ANY or NLTYPE_ANYCRLF. The case of a fixed 57127 // newline (NLTYPE_FIXED) is handled inline. It is guaranteed that the initial 57128 // value of ptr is greater than the start of the string that is being processed. 57129 // 57130 // Arguments: 57131 // ptr pointer to possible newline 57132 // type the newline type 57133 // startptr pointer to the start of the string 57134 // lenptr where to return the length 57135 // utf TRUE if in utf mode 57136 // 57137 // Returns: TRUE or FALSE 57138 57139 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: */ 57140 var c Tuint32_t 57141 ptr-- 57142 57143 if utf != 0 { 57144 for uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0xc0 == 0x80 { 57145 ptr-- 57146 } 57147 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57148 if c >= 0xc0 { 57149 if c&0x20 == Tuint32_t(0) { 57150 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 57151 } else if c&0x10 == Tuint32_t(0) { 57152 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 57153 } else if c&0x08 == Tuint32_t(0) { 57154 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 57155 } else if c&0x04 == Tuint32_t(0) { 57156 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 57157 } else { 57158 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 57159 } 57160 } 57161 57162 } else { 57163 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57164 } 57165 57166 if type1 == Tuint32_t(DNLTYPE_ANYCRLF) { 57167 switch c { 57168 case Tuint32_t('\012'): 57169 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57170 if ptr > startptr && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + libc.UintptrFromInt32(-1)))) == '\015' { 57171 return uint32(2) 57172 } 57173 return uint32(1) 57174 }() 57175 return DTRUE 57176 fallthrough 57177 57178 case Tuint32_t('\015'): 57179 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57180 return DTRUE 57181 fallthrough 57182 57183 default: 57184 return DFALSE 57185 } 57186 } else { 57187 switch c { 57188 case Tuint32_t('\012'): 57189 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57190 if ptr > startptr && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + libc.UintptrFromInt32(-1)))) == '\015' { 57191 return uint32(2) 57192 } 57193 return uint32(1) 57194 }() 57195 return DTRUE 57196 fallthrough 57197 57198 case Tuint32_t('\013'): 57199 fallthrough 57200 case Tuint32_t('\014'): 57201 fallthrough 57202 case Tuint32_t('\015'): 57203 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57204 return DTRUE 57205 fallthrough 57206 57207 case Tuint32_t(uint8('\x85')): 57208 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57209 if utf != 0 { 57210 return uint32(2) 57211 } 57212 return uint32(1) 57213 }() 57214 return DTRUE 57215 fallthrough 57216 57217 case Tuint32_t(0x2028): 57218 fallthrough // LS 57219 case Tuint32_t(0x2029): // PS 57220 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(3) 57221 return DTRUE 57222 fallthrough 57223 57224 default: 57225 return DFALSE 57226 } 57227 } 57228 return TBOOL(0) 57229 } 57230 57231 // End of pcre2_newline.c 57232 57233 // This function is needed only when memmove() is not available. 57234 57235 // End of pcre2_internal.h 57236 57237 // If SUPPORT_UNICODE is not defined, this function will never be called. 57238 // Supply a dummy function because some compilers do not like empty source 57239 // modules. 57240 57241 // ************************************************ 57242 // 57243 // Convert code point to UTF * 57244 // 57245 57246 // 57247 // Arguments: 57248 // cvalue the character value 57249 // buffer pointer to buffer for result 57250 // 57251 // Returns: number of code units placed in the buffer 57252 57253 func X_pcre2_ord2utf_8(tls *libc.TLS, cvalue Tuint32_t, buffer uintptr) uint32 { /* pcre2_ord2utf.c:81:1: */ 57254 // Convert to UTF-8 57255 57256 var i int32 57257 var j int32 57258 for i = 0; i < X_pcre2_utf8_table1_size; i++ { 57259 if int32(cvalue) <= X_pcre2_utf8_table1[i] { 57260 break 57261 } 57262 } 57263 buffer += uintptr(i) 57264 for j = i; j > 0; j-- { 57265 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostDecUintptr(&buffer, 1))) = TPCRE2_UCHAR8(Tuint32_t(0x80) | cvalue&Tuint32_t(0x3f)) 57266 cvalue >>= 6 57267 } 57268 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer)) = TPCRE2_UCHAR8(Tuint32_t(X_pcre2_utf8_table2[i]) | cvalue) 57269 return uint32(i + 1) 57270 57271 // Convert to UTF-16 57272 57273 } 57274 57275 // End of pcre_ord2utf.c 57276 57277 // This function is needed only when memmove() is not available. 57278 57279 // End of pcre2_internal.h 57280 57281 // ************************************************ 57282 // 57283 // Return info about compiled pattern * 57284 // 57285 57286 // 57287 // Arguments: 57288 // code points to compiled code 57289 // what what information is required 57290 // where where to put the information; if NULL, return length 57291 // 57292 // Returns: 0 when data returned 57293 // > 0 when length requested 57294 // < 0 on error or unset value 57295 57296 func Xpcre2_pattern_info_8(tls *libc.TLS, code uintptr, what Tuint32_t, where uintptr) int32 { /* pcre2_pattern_info.c:65:1: */ 57297 var re uintptr = code 57298 57299 if where == uintptr(0) { 57300 switch what { 57301 case Tuint32_t(DPCRE2_INFO_ALLOPTIONS): 57302 fallthrough 57303 case Tuint32_t(DPCRE2_INFO_ARGOPTIONS): 57304 fallthrough 57305 case Tuint32_t(DPCRE2_INFO_BACKREFMAX): 57306 fallthrough 57307 case Tuint32_t(DPCRE2_INFO_BSR): 57308 fallthrough 57309 case Tuint32_t(DPCRE2_INFO_CAPTURECOUNT): 57310 fallthrough 57311 case Tuint32_t(DPCRE2_INFO_DEPTHLIMIT): 57312 fallthrough 57313 case Tuint32_t(DPCRE2_INFO_EXTRAOPTIONS): 57314 fallthrough 57315 case Tuint32_t(DPCRE2_INFO_FIRSTCODETYPE): 57316 fallthrough 57317 case Tuint32_t(DPCRE2_INFO_FIRSTCODEUNIT): 57318 fallthrough 57319 case Tuint32_t(DPCRE2_INFO_HASBACKSLASHC): 57320 fallthrough 57321 case Tuint32_t(DPCRE2_INFO_HASCRORLF): 57322 fallthrough 57323 case Tuint32_t(DPCRE2_INFO_HEAPLIMIT): 57324 fallthrough 57325 case Tuint32_t(DPCRE2_INFO_JCHANGED): 57326 fallthrough 57327 case Tuint32_t(DPCRE2_INFO_LASTCODETYPE): 57328 fallthrough 57329 case Tuint32_t(DPCRE2_INFO_LASTCODEUNIT): 57330 fallthrough 57331 case Tuint32_t(DPCRE2_INFO_MATCHEMPTY): 57332 fallthrough 57333 case Tuint32_t(DPCRE2_INFO_MATCHLIMIT): 57334 fallthrough 57335 case Tuint32_t(DPCRE2_INFO_MAXLOOKBEHIND): 57336 fallthrough 57337 case Tuint32_t(DPCRE2_INFO_MINLENGTH): 57338 fallthrough 57339 case Tuint32_t(DPCRE2_INFO_NAMEENTRYSIZE): 57340 fallthrough 57341 case Tuint32_t(DPCRE2_INFO_NAMECOUNT): 57342 fallthrough 57343 case Tuint32_t(DPCRE2_INFO_NEWLINE): 57344 return int32(unsafe.Sizeof(Tuint32_t(0))) 57345 fallthrough 57346 57347 case Tuint32_t(DPCRE2_INFO_FIRSTBITMAP): 57348 return int32(unsafe.Sizeof(uintptr(0))) 57349 fallthrough 57350 57351 case Tuint32_t(DPCRE2_INFO_JITSIZE): 57352 fallthrough 57353 case Tuint32_t(DPCRE2_INFO_SIZE): 57354 fallthrough 57355 case Tuint32_t(DPCRE2_INFO_FRAMESIZE): 57356 return int32(unsafe.Sizeof(Tsize_t(0))) 57357 fallthrough 57358 57359 case Tuint32_t(DPCRE2_INFO_NAMETABLE): 57360 return int32(unsafe.Sizeof(TPCRE2_SPTR8(0))) 57361 } 57362 } 57363 57364 if re == uintptr(0) { 57365 return -51 57366 } 57367 57368 // Check that the first field in the block is the magic number. If it is not, 57369 // return with PCRE2_ERROR_BADMAGIC. 57370 57371 if uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER { 57372 return -31 57373 } 57374 57375 // Check that this pattern was compiled in the correct bit mode 57376 57377 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8) == Tuint32_t(0) { 57378 return -32 57379 } 57380 57381 switch what { 57382 case Tuint32_t(DPCRE2_INFO_ALLOPTIONS): 57383 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options 57384 break 57385 57386 case Tuint32_t(DPCRE2_INFO_ARGOPTIONS): 57387 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fcompile_options 57388 break 57389 57390 case Tuint32_t(DPCRE2_INFO_BACKREFMAX): 57391 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref) 57392 break 57393 57394 case Tuint32_t(DPCRE2_INFO_BSR): 57395 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention) 57396 break 57397 57398 case Tuint32_t(DPCRE2_INFO_CAPTURECOUNT): 57399 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket) 57400 break 57401 57402 case Tuint32_t(DPCRE2_INFO_DEPTHLIMIT): 57403 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth 57404 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth == 4294967295 { 57405 return -55 57406 } 57407 break 57408 57409 case Tuint32_t(DPCRE2_INFO_EXTRAOPTIONS): 57410 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fextra_options 57411 break 57412 57413 case Tuint32_t(DPCRE2_INFO_FIRSTCODETYPE): 57414 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57415 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0) { 57416 return uint32(1) 57417 } 57418 return func() uint32 { 57419 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_STARTLINE) != Tuint32_t(0) { 57420 return uint32(2) 57421 } 57422 return uint32(0) 57423 }() 57424 }() 57425 break 57426 57427 case Tuint32_t(DPCRE2_INFO_FIRSTCODEUNIT): 57428 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57429 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0) { 57430 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit 57431 } 57432 return uint32(0) 57433 }() 57434 break 57435 57436 case Tuint32_t(DPCRE2_INFO_FIRSTBITMAP): 57437 *(*uintptr)(unsafe.Pointer(where)) = func() uintptr { 57438 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0) { 57439 return re + 40 57440 } 57441 return uintptr(0) 57442 }() 57443 break 57444 57445 case Tuint32_t(DPCRE2_INFO_FRAMESIZE): 57446 *(*Tsize_t)(unsafe.Pointer(where)) = uint64(uintptr(0)+128) + uint64(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket)*2)*uint64(unsafe.Sizeof(Tsize_t(0))) 57447 break 57448 57449 case Tuint32_t(DPCRE2_INFO_HASBACKSLASHC): 57450 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASBKC) != Tuint32_t(0))) 57451 break 57452 57453 case Tuint32_t(DPCRE2_INFO_HASCRORLF): 57454 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASCRORLF) != Tuint32_t(0))) 57455 break 57456 57457 case Tuint32_t(DPCRE2_INFO_HEAPLIMIT): 57458 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap 57459 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap == 4294967295 { 57460 return -55 57461 } 57462 break 57463 57464 case Tuint32_t(DPCRE2_INFO_JCHANGED): 57465 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_JCHANGED) != Tuint32_t(0))) 57466 break 57467 57468 case Tuint32_t(DPCRE2_INFO_JITSIZE): 57469 *(*Tsize_t)(unsafe.Pointer(where)) = uint64(0) 57470 break 57471 57472 case Tuint32_t(DPCRE2_INFO_LASTCODETYPE): 57473 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57474 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0) { 57475 return uint32(1) 57476 } 57477 return uint32(0) 57478 }() 57479 break 57480 57481 case Tuint32_t(DPCRE2_INFO_LASTCODEUNIT): 57482 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57483 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0) { 57484 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit 57485 } 57486 return uint32(0) 57487 }() 57488 break 57489 57490 case Tuint32_t(DPCRE2_INFO_MATCHEMPTY): 57491 *(*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))) 57492 break 57493 57494 case Tuint32_t(DPCRE2_INFO_MATCHLIMIT): 57495 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match 57496 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match == 4294967295 { 57497 return -55 57498 } 57499 break 57500 57501 case Tuint32_t(DPCRE2_INFO_MAXLOOKBEHIND): 57502 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) 57503 break 57504 57505 case Tuint32_t(DPCRE2_INFO_MINLENGTH): 57506 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength) 57507 break 57508 57509 case Tuint32_t(DPCRE2_INFO_NAMEENTRYSIZE): 57510 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size) 57511 break 57512 57513 case Tuint32_t(DPCRE2_INFO_NAMECOUNT): 57514 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count) 57515 break 57516 57517 case Tuint32_t(DPCRE2_INFO_NAMETABLE): 57518 *(*TPCRE2_SPTR8)(unsafe.Pointer(where)) = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) 57519 break 57520 57521 case Tuint32_t(DPCRE2_INFO_NEWLINE): 57522 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention) 57523 break 57524 57525 case Tuint32_t(DPCRE2_INFO_SIZE): 57526 *(*Tsize_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize 57527 break 57528 57529 default: 57530 return -34 57531 } 57532 57533 return 0 57534 } 57535 57536 // ************************************************ 57537 // 57538 // Callout enumerator * 57539 // 57540 57541 // 57542 // Arguments: 57543 // code points to compiled code 57544 // callback function called for each callout block 57545 // callout_data user data passed to the callback 57546 // 57547 // Returns: 0 when successfully completed 57548 // < 0 on local error 57549 // != 0 for callback error 57550 57551 func Xpcre2_callout_enumerate_8(tls *libc.TLS, code uintptr, callback uintptr, callout_data uintptr) int32 { /* pcre2_pattern_info.c:268:1: */ 57552 bp := tls.Alloc(56) 57553 defer tls.Free(56) 57554 57555 var re uintptr = code 57556 // var cb Tpcre2_callout_enumerate_block_8 at bp, 56 57557 57558 var cc TPCRE2_SPTR8 57559 var utf TBOOL 57560 57561 if re == uintptr(0) { 57562 return -51 57563 } 57564 57565 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 57566 57567 // Check that the first field in the block is the magic number. If it is not, 57568 // return with PCRE2_ERROR_BADMAGIC. 57569 57570 if uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER { 57571 return -31 57572 } 57573 57574 // Check that this pattern was compiled in the correct bit mode 57575 57576 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8) == Tuint32_t(0) { 57577 return -32 57578 } 57579 57580 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fversion = Tuint32_t(0) 57581 cc = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) + 57582 uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)) 57583 57584 for 1 != 0 { 57585 var rc int32 57586 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) { 57587 case OP_END: 57588 return 0 57589 57590 case OP_CHAR: 57591 fallthrough 57592 case OP_CHARI: 57593 fallthrough 57594 case OP_NOT: 57595 fallthrough 57596 case OP_NOTI: 57597 fallthrough 57598 case OP_STAR: 57599 fallthrough 57600 case OP_MINSTAR: 57601 fallthrough 57602 case OP_PLUS: 57603 fallthrough 57604 case OP_MINPLUS: 57605 fallthrough 57606 case OP_QUERY: 57607 fallthrough 57608 case OP_MINQUERY: 57609 fallthrough 57610 case OP_UPTO: 57611 fallthrough 57612 case OP_MINUPTO: 57613 fallthrough 57614 case OP_EXACT: 57615 fallthrough 57616 case OP_POSSTAR: 57617 fallthrough 57618 case OP_POSPLUS: 57619 fallthrough 57620 case OP_POSQUERY: 57621 fallthrough 57622 case OP_POSUPTO: 57623 fallthrough 57624 case OP_STARI: 57625 fallthrough 57626 case OP_MINSTARI: 57627 fallthrough 57628 case OP_PLUSI: 57629 fallthrough 57630 case OP_MINPLUSI: 57631 fallthrough 57632 case OP_QUERYI: 57633 fallthrough 57634 case OP_MINQUERYI: 57635 fallthrough 57636 case OP_UPTOI: 57637 fallthrough 57638 case OP_MINUPTOI: 57639 fallthrough 57640 case OP_EXACTI: 57641 fallthrough 57642 case OP_POSSTARI: 57643 fallthrough 57644 case OP_POSPLUSI: 57645 fallthrough 57646 case OP_POSQUERYI: 57647 fallthrough 57648 case OP_POSUPTOI: 57649 fallthrough 57650 case OP_NOTSTAR: 57651 fallthrough 57652 case OP_NOTMINSTAR: 57653 fallthrough 57654 case OP_NOTPLUS: 57655 fallthrough 57656 case OP_NOTMINPLUS: 57657 fallthrough 57658 case OP_NOTQUERY: 57659 fallthrough 57660 case OP_NOTMINQUERY: 57661 fallthrough 57662 case OP_NOTUPTO: 57663 fallthrough 57664 case OP_NOTMINUPTO: 57665 fallthrough 57666 case OP_NOTEXACT: 57667 fallthrough 57668 case OP_NOTPOSSTAR: 57669 fallthrough 57670 case OP_NOTPOSPLUS: 57671 fallthrough 57672 case OP_NOTPOSQUERY: 57673 fallthrough 57674 case OP_NOTPOSUPTO: 57675 fallthrough 57676 case OP_NOTSTARI: 57677 fallthrough 57678 case OP_NOTMINSTARI: 57679 fallthrough 57680 case OP_NOTPLUSI: 57681 fallthrough 57682 case OP_NOTMINPLUSI: 57683 fallthrough 57684 case OP_NOTQUERYI: 57685 fallthrough 57686 case OP_NOTMINQUERYI: 57687 fallthrough 57688 case OP_NOTUPTOI: 57689 fallthrough 57690 case OP_NOTMINUPTOI: 57691 fallthrough 57692 case OP_NOTEXACTI: 57693 fallthrough 57694 case OP_NOTPOSSTARI: 57695 fallthrough 57696 case OP_NOTPOSPLUSI: 57697 fallthrough 57698 case OP_NOTPOSQUERYI: 57699 fallthrough 57700 case OP_NOTPOSUPTOI: 57701 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57702 if utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0 { 57703 cc += TPCRE2_SPTR8(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 57704 } 57705 break 57706 57707 case OP_TYPESTAR: 57708 fallthrough 57709 case OP_TYPEMINSTAR: 57710 fallthrough 57711 case OP_TYPEPLUS: 57712 fallthrough 57713 case OP_TYPEMINPLUS: 57714 fallthrough 57715 case OP_TYPEQUERY: 57716 fallthrough 57717 case OP_TYPEMINQUERY: 57718 fallthrough 57719 case OP_TYPEUPTO: 57720 fallthrough 57721 case OP_TYPEMINUPTO: 57722 fallthrough 57723 case OP_TYPEEXACT: 57724 fallthrough 57725 case OP_TYPEPOSSTAR: 57726 fallthrough 57727 case OP_TYPEPOSPLUS: 57728 fallthrough 57729 case OP_TYPEPOSQUERY: 57730 fallthrough 57731 case OP_TYPEPOSUPTO: 57732 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57733 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) == OP_NOTPROP { 57734 cc += uintptr(2) 57735 } 57736 break 57737 57738 case OP_XCLASS: 57739 cc += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 57740 break 57741 57742 case OP_MARK: 57743 fallthrough 57744 case OP_COMMIT_ARG: 57745 fallthrough 57746 case OP_PRUNE_ARG: 57747 fallthrough 57748 case OP_SKIP_ARG: 57749 fallthrough 57750 case OP_THEN_ARG: 57751 cc += TPCRE2_SPTR8(int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))) 57752 break 57753 57754 case OP_CALLOUT: 57755 (*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))))) 57756 (*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))))) 57757 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_number = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5))) 57758 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string_offset = uint64(0) 57759 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string_length = uint64(0) 57760 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string = uintptr(0) 57761 rc = (*struct { 57762 f func(*libc.TLS, uintptr, uintptr) int32 57763 })(unsafe.Pointer(&struct{ uintptr }{callback})).f(tls, bp /* &cb */, callout_data) 57764 if rc != 0 { 57765 return rc 57766 } 57767 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57768 break 57769 57770 case OP_CALLOUT_STR: 57771 (*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))))) 57772 (*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))))) 57773 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_number = Tuint32_t(0) 57774 (*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))))) 57775 (*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)) 57776 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string = cc + uintptr(1+4*DLINK_SIZE) + uintptr(1) 57777 rc = (*struct { 57778 f func(*libc.TLS, uintptr, uintptr) int32 57779 })(unsafe.Pointer(&struct{ uintptr }{callback})).f(tls, bp /* &cb */, callout_data) 57780 if rc != 0 { 57781 return rc 57782 } 57783 cc += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6))))) 57784 break 57785 57786 default: 57787 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57788 break 57789 } 57790 } 57791 return int32(0) 57792 } 57793 57794 // End of pcre2_pattern_info.c 57795 57796 func X_pcre2_script_run_8(tls *libc.TLS, ptr TPCRE2_SPTR8, endptr TPCRE2_SPTR8, utf TBOOL) TBOOL { /* pcre2_script_run.c:85:1: */ 57797 bp := tls.Alloc(48) 57798 defer tls.Free(48) 57799 57800 var require_state Tuint32_t = SCRIPT_UNSET 57801 // var require_map [6]Tuint32_t at bp, 24 57802 57803 // var map1 [6]Tuint32_t at bp+24, 24 57804 57805 var require_digitset Tuint32_t = Tuint32_t(0) 57806 var c Tuint32_t 57807 57808 // Any string containing fewer than 2 characters is a valid script run. 57809 57810 if ptr >= endptr { 57811 return DTRUE 57812 } 57813 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1)))) 57814 if utf != 0 && c >= 0xc0 { 57815 if c&0x20 == Tuint32_t(0) { 57816 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))))&0x3f 57817 } else if c&0x10 == Tuint32_t(0) { 57818 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 57819 ptr += uintptr(2) 57820 } else if c&0x08 == Tuint32_t(0) { 57821 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 57822 ptr += uintptr(3) 57823 } else if c&0x04 == Tuint32_t(0) { 57824 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 57825 ptr += uintptr(4) 57826 } else { 57827 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 57828 ptr += uintptr(5) 57829 } 57830 } 57831 57832 if ptr >= endptr { 57833 return DTRUE 57834 } 57835 57836 // Initialize the require map. This is a full-size bitmap that has a bit for 57837 // every script, as opposed to the maps in ucd_script_sets, which only have bits 57838 // for scripts less than ucp_Unknown - those that appear in script extension 57839 // lists. 57840 57841 { 57842 var i int32 = 0 57843 __1: 57844 if !(i < ucp_Script_Count/32+1) { 57845 goto __3 57846 } 57847 *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) = Tuint32_t(0) 57848 goto __2 57849 __2: 57850 i++ 57851 goto __1 57852 goto __3 57853 __3: 57854 } 57855 57856 // Scan strings of two or more characters, checking the Unicode characteristics 57857 // of each code point. There is special code for scripts that can be combined with 57858 // characters from the Han Chinese script. This may be used in conjunction with 57859 // four other scripts in these combinations: 57860 // 57861 // . Han with Hiragana and Katakana is allowed (for Japanese). 57862 // . Han with Bopomofo is allowed (for Taiwanese Mandarin). 57863 // . Han with Hangul is allowed (for Korean). 57864 // 57865 // If the first significant character's script is one of the four, the required 57866 // script type is immediately known. However, if the first significant 57867 // character's script is Han, we have to keep checking for a non-Han character. 57868 // Hence the SCRIPT_HANPENDING state. 57869 57870 for { 57871 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 57872 var script Tuint32_t = Tuint32_t((*Tucd_record)(unsafe.Pointer(ucd)).Fscript) 57873 57874 // If the script is Unknown, the string is not a valid script run. Such 57875 // characters can only form script runs of length one (see test above). 57876 57877 if script == ucp_Unknown { 57878 return DFALSE 57879 } 57880 57881 // A character without any script extensions whose script is Inherited or 57882 // Common is always accepted with any script. If there are extensions, the 57883 // following processing happens for all scripts. 57884 57885 if int32((*Tucd_record)(unsafe.Pointer(ucd)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK != 0 || script != ucp_Inherited && script != ucp_Common { 57886 var OK TBOOL 57887 57888 // Set up a full-sized map for this character that can include bits for all 57889 // scripts. Copy the scriptx map for this character (which covers those 57890 // scripts that appear in script extension lists), set the remaining values to 57891 // zero, and then, except for Common or Inherited, add this script's bit to 57892 // the map. 57893 57894 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, uint64(ucp_Unknown/32+1)*uint64(unsafe.Sizeof(Tuint32_t(0)))) 57895 libc.Xmemset(tls, bp+24+uintptr(ucp_Unknown/32+1)*4, 0, uint64(ucp_Script_Count/32+1-(ucp_Unknown/32+1))*uint64(unsafe.Sizeof(Tuint32_t(0)))) 57896 if script != ucp_Common && script != ucp_Inherited { 57897 *(*Tuint32_t)(unsafe.Pointer(bp + 24 + uintptr(script/Tuint32_t(32))*4)) |= uint32(1) << (script % Tuint32_t(32)) 57898 } 57899 57900 // Handle the different checking states 57901 57902 switch require_state { 57903 // First significant character - it might follow Common or Inherited 57904 // characters that do not have any script extensions. 57905 57906 case SCRIPT_UNSET: 57907 switch script { 57908 case ucp_Han: 57909 require_state = SCRIPT_HANPENDING 57910 break 57911 fallthrough 57912 57913 case ucp_Hiragana: 57914 fallthrough 57915 case ucp_Katakana: 57916 require_state = SCRIPT_HANHIRAKATA 57917 break 57918 fallthrough 57919 57920 case ucp_Bopomofo: 57921 require_state = SCRIPT_HANBOPOMOFO 57922 break 57923 fallthrough 57924 57925 case ucp_Hangul: 57926 require_state = SCRIPT_HANHANGUL 57927 break 57928 fallthrough 57929 57930 default: 57931 libc.Xmemcpy(tls, bp, bp+24, uint64(ucp_Script_Count/32+1)*uint64(unsafe.Sizeof(Tuint32_t(0)))) 57932 require_state = SCRIPT_MAP 57933 break 57934 } 57935 break 57936 fallthrough 57937 57938 // The first significant character was Han. An inspection of the Unicode 57939 // 11.0.0 files shows that there are the following types of Script Extension 57940 // list that involve the Han, Bopomofo, Hiragana, Katakana, and Hangul 57941 // scripts: 57942 // 57943 // . Bopomofo + Han 57944 // . Han + Hiragana + Katakana 57945 // . Hiragana + Katakana 57946 // . Bopopmofo + Hangul + Han + Hiragana + Katakana 57947 // 57948 // The following code tries to make sense of this. 57949 57950 case SCRIPT_HANPENDING: 57951 if script != ucp_Han { 57952 var chspecial Tuint32_t = Tuint32_t(0) 57953 57954 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Bopomofo%32)) != Tuint32_t(0) { 57955 chspecial = chspecial | Tuint32_t(DFOUND_BOPOMOFO) 57956 } 57957 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Hiragana%32)) != Tuint32_t(0) { 57958 chspecial = chspecial | Tuint32_t(DFOUND_HIRAGANA) 57959 } 57960 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Katakana%32)) != Tuint32_t(0) { 57961 chspecial = chspecial | Tuint32_t(DFOUND_KATAKANA) 57962 } 57963 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Hangul%32)) != Tuint32_t(0) { 57964 chspecial = chspecial | Tuint32_t(DFOUND_HANGUL) 57965 } 57966 57967 if chspecial == Tuint32_t(0) { 57968 return DFALSE 57969 } // Not allowed with Han 57970 57971 if chspecial == Tuint32_t(DFOUND_BOPOMOFO) { 57972 require_state = SCRIPT_HANBOPOMOFO 57973 } else if chspecial == Tuint32_t(DFOUND_HIRAGANA|DFOUND_KATAKANA) { 57974 require_state = SCRIPT_HANHIRAKATA 57975 } 57976 57977 // Otherwise this character must be allowed with all of them, so remain 57978 // in the pending state. 57979 } 57980 break 57981 fallthrough 57982 57983 // Previously encountered one of the "with Han" scripts. Check that 57984 // this character is appropriate. 57985 57986 case SCRIPT_HANHIRAKATA: 57987 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) { 57988 return DFALSE 57989 } 57990 break 57991 fallthrough 57992 57993 case SCRIPT_HANBOPOMOFO: 57994 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) { 57995 return DFALSE 57996 } 57997 break 57998 fallthrough 57999 58000 case SCRIPT_HANHANGUL: 58001 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) { 58002 return DFALSE 58003 } 58004 break 58005 fallthrough 58006 58007 // Previously encountered one or more characters that are allowed with a 58008 // list of scripts. 58009 58010 case SCRIPT_MAP: 58011 OK = DFALSE 58012 58013 { 58014 var i int32 = 0 58015 __4: 58016 if !(i < ucp_Script_Count/32+1) { 58017 goto __6 58018 } 58019 { 58020 if *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4))&*(*Tuint32_t)(unsafe.Pointer(bp + 24 + uintptr(i)*4)) != Tuint32_t(0) { 58021 OK = DTRUE 58022 goto __6 58023 } 58024 58025 } 58026 goto __5 58027 __5: 58028 i++ 58029 goto __4 58030 goto __6 58031 __6: 58032 } 58033 58034 if !(OK != 0) { 58035 return DFALSE 58036 } 58037 58038 // The rest of the string must be in this script, but we have to 58039 // allow for the Han complications. 58040 58041 switch script { 58042 case ucp_Han: 58043 require_state = SCRIPT_HANPENDING 58044 break 58045 fallthrough 58046 58047 case ucp_Hiragana: 58048 fallthrough 58049 case ucp_Katakana: 58050 require_state = SCRIPT_HANHIRAKATA 58051 break 58052 fallthrough 58053 58054 case ucp_Bopomofo: 58055 require_state = SCRIPT_HANBOPOMOFO 58056 break 58057 fallthrough 58058 58059 case ucp_Hangul: 58060 require_state = SCRIPT_HANHANGUL 58061 break 58062 fallthrough 58063 58064 // Compute the intersection of the required list of scripts and the 58065 // allowed scripts for this character. 58066 58067 default: 58068 { 58069 var i int32 = 0 58070 __7: 58071 if !(i < ucp_Script_Count/32+1) { 58072 goto __9 58073 } 58074 *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) &= *(*Tuint32_t)(unsafe.Pointer(bp + 24 + uintptr(i)*4)) 58075 goto __8 58076 __8: 58077 i++ 58078 goto __7 58079 goto __9 58080 __9: 58081 } 58082 break 58083 } 58084 58085 break 58086 } 58087 } // End checking character's script and extensions. 58088 58089 // The character is in an acceptable script. We must now ensure that all 58090 // decimal digits in the string come from the same set. Some scripts (e.g. 58091 // Common, Arabic) have more than one set of decimal digits. This code does 58092 // not allow mixing sets, even within the same script. The vector called 58093 // PRIV(ucd_digit_sets)[] contains, in its first element, the number of 58094 // following elements, and then, in ascending order, the code points of the 58095 // '9' characters in every set of 10 digits. Each set is identified by the 58096 // offset in the vector of its '9' character. An initial check of the first 58097 // value picks up ASCII digits quickly. Otherwise, a binary chop is used. 58098 58099 if int32((*Tucd_record)(unsafe.Pointer(ucd)).Fchartype) == ucp_Nd { 58100 var digitset Tuint32_t 58101 58102 if c <= X_pcre2_ucd_digit_sets_8[1] { 58103 digitset = Tuint32_t(1) 58104 } else { 58105 var mid int32 58106 var bot int32 = 1 58107 var top int32 = int32(X_pcre2_ucd_digit_sets_8[0]) 58108 for { 58109 if top <= bot+1 { 58110 digitset = Tuint32_t(top) 58111 break 58112 } 58113 mid = (top + bot) / 2 58114 if c <= X_pcre2_ucd_digit_sets_8[mid] { 58115 top = mid 58116 } else { 58117 bot = mid 58118 } 58119 } 58120 } 58121 58122 // A required value of 0 means "unset". 58123 58124 if require_digitset == Tuint32_t(0) { 58125 require_digitset = digitset 58126 } else if digitset != require_digitset { 58127 return DFALSE 58128 } 58129 } // End digit handling 58130 58131 // If we haven't yet got to the end, pick up the next character. 58132 58133 if ptr >= endptr { 58134 return DTRUE 58135 } 58136 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1)))) 58137 if utf != 0 && c >= 0xc0 { 58138 if c&0x20 == Tuint32_t(0) { 58139 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))))&0x3f 58140 } else if c&0x10 == Tuint32_t(0) { 58141 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 58142 ptr += uintptr(2) 58143 } else if c&0x08 == Tuint32_t(0) { 58144 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 58145 ptr += uintptr(3) 58146 } else if c&0x04 == Tuint32_t(0) { 58147 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 58148 ptr += uintptr(4) 58149 } else { 58150 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 58151 ptr += uintptr(5) 58152 } 58153 } 58154 58155 } 58156 return TBOOL(0) // End checking loop 58157 58158 } 58159 58160 // End of pcre2_script_run.c 58161 58162 // This function is needed only when memmove() is not available. 58163 58164 // End of pcre2_internal.h 58165 58166 // Magic number to provide a small check against being handed junk. 58167 58168 // Deserialization is limited to the current PCRE version and 58169 // character width. 58170 58171 // ************************************************ 58172 // 58173 // Serialize compiled patterns * 58174 // 58175 58176 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: */ 58177 var bytes uintptr 58178 var dst_bytes uintptr 58179 var i Tint32_t 58180 var total_size Tsize_t 58181 var re uintptr 58182 var tables uintptr 58183 var data uintptr 58184 58185 var memctl uintptr 58186 if gcontext != uintptr(0) { 58187 memctl = gcontext 58188 } else { 58189 memctl = uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) 58190 } 58191 58192 if codes == uintptr(0) || serialized_bytes == uintptr(0) || serialized_size == uintptr(0) { 58193 return -51 58194 } 58195 58196 if number_of_codes <= 0 { 58197 return -29 58198 } 58199 58200 // Compute total size. 58201 total_size = uint64(unsafe.Sizeof(Tpcre2_serialized_data{})) + uint64(Dcbits_offset+Dcbit_length+256) 58202 tables = uintptr(0) 58203 58204 for i = 0; i < number_of_codes; i++ { 58205 if *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*8)) == uintptr(0) { 58206 return -51 58207 } 58208 re = *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*8)) 58209 if uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER { 58210 return -31 58211 } 58212 if tables == uintptr(0) { 58213 tables = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables 58214 } else if tables != (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables { 58215 return -30 58216 } 58217 total_size = total_size + (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize 58218 } 58219 58220 // Initialize the byte stream. 58221 bytes = (*struct { 58222 f func(*libc.TLS, Tsize_t, uintptr) uintptr 58223 })(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) 58224 if bytes == uintptr(0) { 58225 return -48 58226 } 58227 58228 // The controller is stored as a hidden parameter. 58229 libc.Xmemcpy(tls, bytes, memctl, uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 58230 bytes += uintptr(unsafe.Sizeof(Tpcre2_memctl{})) 58231 58232 data = bytes 58233 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fmagic = DSERIALIZED_DATA_MAGIC 58234 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fversion = Tuint32_t(DPCRE2_MAJOR | int32(DPCRE2_MINOR)<<16) 58235 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fconfig = uint32(uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0))) | uint64(uint64(unsafe.Sizeof(uintptr(0))))<<8 | uint64(uint64(unsafe.Sizeof(Tsize_t(0))))<<16) 58236 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes = number_of_codes 58237 58238 // Copy all compiled code data. 58239 dst_bytes = bytes + uintptr(uint64(unsafe.Sizeof(Tpcre2_serialized_data{}))) 58240 libc.Xmemcpy(tls, dst_bytes, tables, uint64(Dcbits_offset+Dcbit_length+256)) 58241 dst_bytes += uintptr(Dcbits_offset + Dcbit_length + 256) 58242 58243 for i = 0; i < number_of_codes; i++ { 58244 re = *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*8)) 58245 libc.Xmemcpy(tls, dst_bytes, re, (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize) 58246 58247 // Certain fields in the compiled code block are re-set during 58248 // deserialization. In order to ensure that the serialized data stream is always 58249 // the same for the same pattern, set them to zero here. We can't assume the 58250 // copy of the pattern is correctly aligned for accessing the fields as part of 58251 // a structure. Note the use of sizeof(void *) in the second of these, to 58252 // specify the size of a pointer. If sizeof(uint8_t *) is used (tables is a 58253 // pointer to uint8_t), gcc gives a warning because the first argument is also a 58254 // pointer to uint8_t. Casting the first argument to (void *) can stop this, but 58255 // it didn't stop Coverity giving the same complaint. 58256 58257 libc.Xmemset(tls, dst_bytes+uintptr(uint64(uintptr(0))), 0, 58258 uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 58259 libc.Xmemset(tls, dst_bytes+uintptr(uint64(uintptr(0)+24)), 0, 58260 uint64(unsafe.Sizeof(uintptr(0)))) 58261 libc.Xmemset(tls, dst_bytes+uintptr(uint64(uintptr(0)+32)), 0, 58262 uint64(unsafe.Sizeof(uintptr(0)))) 58263 58264 dst_bytes += uintptr((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize) 58265 } 58266 58267 *(*uintptr)(unsafe.Pointer(serialized_bytes)) = bytes 58268 *(*Tsize_t)(unsafe.Pointer(serialized_size)) = total_size 58269 return number_of_codes 58270 } 58271 58272 // ************************************************ 58273 // 58274 // Deserialize compiled patterns * 58275 // 58276 58277 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: */ 58278 bp := tls.Alloc(8) 58279 defer tls.Free(8) 58280 58281 var data uintptr = bytes 58282 var memctl uintptr 58283 if gcontext != uintptr(0) { 58284 memctl = gcontext 58285 } else { 58286 memctl = uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) 58287 } 58288 var src_bytes uintptr 58289 var dst_re uintptr 58290 var tables uintptr 58291 var i Tint32_t 58292 var j Tint32_t 58293 58294 // Sanity checks. 58295 58296 if data == uintptr(0) || codes == uintptr(0) { 58297 return -51 58298 } 58299 if number_of_codes <= 0 { 58300 return -29 58301 } 58302 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes <= 0 { 58303 return -62 58304 } 58305 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fmagic != DSERIALIZED_DATA_MAGIC { 58306 return -31 58307 } 58308 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fversion != Tuint32_t(DPCRE2_MAJOR|int32(DPCRE2_MINOR)<<16) { 58309 return -32 58310 } 58311 if uint64((*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fconfig) != uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))|uint64(uint64(unsafe.Sizeof(uintptr(0))))<<8|uint64(uint64(unsafe.Sizeof(Tsize_t(0))))<<16 { 58312 return -32 58313 } 58314 58315 if number_of_codes > (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes { 58316 number_of_codes = (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes 58317 } 58318 58319 src_bytes = bytes + uintptr(uint64(unsafe.Sizeof(Tpcre2_serialized_data{}))) 58320 58321 // Decode tables. The reference count for the tables is stored immediately 58322 // following them. 58323 58324 tables = (*struct { 58325 f func(*libc.TLS, Tsize_t, uintptr) uintptr 58326 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmalloc})).f(tls, uint64(Dcbits_offset+Dcbit_length+256)+uint64(unsafe.Sizeof(Tsize_t(0))), (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58327 if tables == uintptr(0) { 58328 return -48 58329 } 58330 58331 libc.Xmemcpy(tls, tables, src_bytes, uint64(Dcbits_offset+Dcbit_length+256)) 58332 *(*Tsize_t)(unsafe.Pointer(tables + uintptr(Dcbits_offset+Dcbit_length+256))) = Tsize_t(number_of_codes) 58333 src_bytes += uintptr(Dcbits_offset + Dcbit_length + 256) 58334 58335 // Decode the byte stream. We must not try to read the size from the compiled 58336 // code block in the stream, because it might be unaligned, which causes errors on 58337 // hardware such as Sparc-64 that doesn't like unaligned memory accesses. The type 58338 // of the blocksize field is given its own name to ensure that it is the same here 58339 // as in the block. 58340 58341 for i = 0; i < number_of_codes; i++ { 58342 // var blocksize Tsize_t at bp, 8 58343 58344 libc.Xmemcpy(tls, bp, src_bytes+uintptr(uint64(uintptr(0)+72)), 58345 uint64(unsafe.Sizeof(Tsize_t(0)))) 58346 if *(*Tsize_t)(unsafe.Pointer(bp)) <= Tsize_t(unsafe.Sizeof(Tpcre2_real_code_8{})) { 58347 return -62 58348 } 58349 58350 // The allocator provided by gcontext replaces the original one. 58351 58352 dst_re = X_pcre2_memctl_malloc_8(tls, *(*Tsize_t)(unsafe.Pointer(bp /* blocksize */)), 58353 gcontext) 58354 if dst_re == uintptr(0) { 58355 (*struct { 58356 f func(*libc.TLS, uintptr, uintptr) 58357 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, tables, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58358 for j = 0; j < i; j++ { 58359 (*struct { 58360 f func(*libc.TLS, uintptr, uintptr) 58361 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, *(*uintptr)(unsafe.Pointer(codes + uintptr(j)*8)), (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58362 *(*uintptr)(unsafe.Pointer(codes + uintptr(j)*8)) = uintptr(0) 58363 } 58364 return -48 58365 } 58366 58367 // The new allocator must be preserved. 58368 58369 libc.Xmemcpy(tls, dst_re+uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))), 58370 src_bytes+uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))), *(*Tsize_t)(unsafe.Pointer(bp))-Tsize_t(unsafe.Sizeof(Tpcre2_memctl{}))) 58371 if uint64((*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 { 58372 (*struct { 58373 f func(*libc.TLS, uintptr, uintptr) 58374 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, dst_re, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58375 return -62 58376 } 58377 58378 // At the moment only one table is supported. 58379 58380 (*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Ftables = tables 58381 (*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Fexecutable_jit = uintptr(0) 58382 *(*Tuint32_t)(unsafe.Pointer(dst_re + 96)) |= Tuint32_t(DPCRE2_DEREF_TABLES) 58383 58384 *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*8)) = dst_re 58385 src_bytes += uintptr(*(*Tsize_t)(unsafe.Pointer(bp /* blocksize */))) 58386 } 58387 58388 return number_of_codes 58389 } 58390 58391 // ************************************************ 58392 // 58393 // Get the number of serialized patterns * 58394 // 58395 58396 func Xpcre2_serialize_get_number_of_codes_8(tls *libc.TLS, bytes uintptr) Tint32_t { /* pcre2_serialize.c:259:1: */ 58397 var data uintptr = bytes 58398 58399 if data == uintptr(0) { 58400 return -51 58401 } 58402 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fmagic != DSERIALIZED_DATA_MAGIC { 58403 return -31 58404 } 58405 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fversion != Tuint32_t(DPCRE2_MAJOR|int32(DPCRE2_MINOR)<<16) { 58406 return -32 58407 } 58408 if uint64((*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fconfig) != uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))|uint64(uint64(unsafe.Sizeof(uintptr(0))))<<8|uint64(uint64(unsafe.Sizeof(Tsize_t(0))))<<16 { 58409 return -32 58410 } 58411 58412 return (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes 58413 } 58414 58415 // ************************************************ 58416 // 58417 // Free the allocated stream * 58418 // 58419 58420 func Xpcre2_serialize_free_8(tls *libc.TLS, bytes uintptr) { /* pcre2_serialize.c:277:1: */ 58421 if bytes != uintptr(0) { 58422 var memctl uintptr = bytes - uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 58423 (*struct { 58424 f func(*libc.TLS, uintptr, uintptr) 58425 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58426 } 58427 } 58428 58429 // End of pcre2_serialize.c 58430 58431 // This function is needed only when memmove() is not available. 58432 58433 // End of pcre2_internal.h 58434 58435 // ************************************************ 58436 // 58437 // Emulated memmove() for systems without it * 58438 // 58439 58440 // This function can make use of bcopy() if it is available. Otherwise do it by 58441 // steam, as there some non-Unix environments that lack both memmove() and 58442 // bcopy(). 58443 58444 // ************************************************ 58445 // 58446 // Compare two zero-terminated PCRE2 strings * 58447 // 58448 58449 // 58450 // Arguments: 58451 // str1 first string 58452 // str2 second string 58453 // 58454 // Returns: 0, 1, or -1 58455 58456 func X_pcre2_strcmp_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 TPCRE2_SPTR8) int32 { /* pcre2_string_utils.c:102:1: */ 58457 var c1 TPCRE2_UCHAR8 58458 var c2 TPCRE2_UCHAR8 58459 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(str1))) != 0 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(str2))) != 0 { 58460 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58461 c2 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1))) 58462 if int32(c1) != int32(c2) { 58463 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58464 } 58465 } 58466 return 0 58467 } 58468 58469 // ************************************************ 58470 // 58471 // Compare zero-terminated PCRE2 & 8-bit strings * 58472 // 58473 58474 // As the 8-bit string is almost always a literal, its type is specified as 58475 // const char *. 58476 // 58477 // Arguments: 58478 // str1 first string 58479 // str2 second string 58480 // 58481 // Returns: 0, 1, or -1 58482 58483 func X_pcre2_strcmp_c8_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 uintptr) int32 { /* pcre2_string_utils.c:130:1: */ 58484 var c1 TPCRE2_UCHAR8 58485 var c2 TPCRE2_UCHAR8 58486 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(str1))) != 0 || int32(*(*uint8)(unsafe.Pointer(str2))) != 0 { 58487 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58488 c2 = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1)))) 58489 if int32(c1) != int32(c2) { 58490 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58491 } 58492 } 58493 return 0 58494 } 58495 58496 // ************************************************ 58497 // 58498 // Compare two PCRE2 strings, given a length * 58499 // 58500 58501 // 58502 // Arguments: 58503 // str1 first string 58504 // str2 second string 58505 // len the length 58506 // 58507 // Returns: 0, 1, or -1 58508 58509 func X_pcre2_strncmp_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 TPCRE2_SPTR8, len Tsize_t) int32 { /* pcre2_string_utils.c:157:1: */ 58510 var c1 TPCRE2_UCHAR8 58511 var c2 TPCRE2_UCHAR8 58512 for ; len > uint64(0); len-- { 58513 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58514 c2 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1))) 58515 if int32(c1) != int32(c2) { 58516 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58517 } 58518 } 58519 return 0 58520 } 58521 58522 // ************************************************ 58523 // 58524 // Compare PCRE2 string to 8-bit string by length * 58525 // 58526 58527 // As the 8-bit string is almost always a literal, its type is specified as 58528 // const char *. 58529 // 58530 // Arguments: 58531 // str1 first string 58532 // str2 second string 58533 // len the length 58534 // 58535 // Returns: 0, 1, or -1 58536 58537 func X_pcre2_strncmp_c8_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 uintptr, len Tsize_t) int32 { /* pcre2_string_utils.c:186:1: */ 58538 var c1 TPCRE2_UCHAR8 58539 var c2 TPCRE2_UCHAR8 58540 for ; len > uint64(0); len-- { 58541 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58542 c2 = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1)))) 58543 if int32(c1) != int32(c2) { 58544 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58545 } 58546 } 58547 return 0 58548 } 58549 58550 // ************************************************ 58551 // 58552 // Find the length of a PCRE2 string * 58553 // 58554 58555 // 58556 // Argument: the string 58557 // Returns: the length 58558 58559 func X_pcre2_strlen_8(tls *libc.TLS, str TPCRE2_SPTR8) Tsize_t { /* pcre2_string_utils.c:209:1: */ 58560 var c Tsize_t = uint64(0) 58561 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str, 1)))) != 0 { 58562 c++ 58563 } 58564 return c 58565 } 58566 58567 // ************************************************ 58568 // 58569 // Copy 8-bit 0-terminated string to PCRE2 string * 58570 // 58571 58572 // Arguments: 58573 // str1 buffer to receive the string 58574 // str2 8-bit string to be copied 58575 // 58576 // Returns: the number of code units used (excluding trailing zero) 58577 58578 func X_pcre2_strcpy_c8_8(tls *libc.TLS, str1 uintptr, str2 uintptr) Tsize_t { /* pcre2_string_utils.c:229:1: */ 58579 var t uintptr = str1 58580 for int32(*(*uint8)(unsafe.Pointer(str2))) != 0 { 58581 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&t, 1))) = TPCRE2_UCHAR8(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1)))) 58582 } 58583 *(*TPCRE2_UCHAR8)(unsafe.Pointer(t)) = TPCRE2_UCHAR8(0) 58584 return Tsize_t((int64(t) - int64(str1)) / 1) 58585 } 58586 58587 // End of pcre2_string_utils.c 58588 58589 // ************************************************ 58590 // 58591 // Find the minimum subject length for a group * 58592 // 58593 58594 // Scan a parenthesized group and compute the minimum length of subject that 58595 // is needed to match it. This is a lower bound; it does not mean there is a 58596 // string of that length that matches. In UTF mode, the result is in characters 58597 // rather than code units. The field in a compiled pattern for storing the minimum 58598 // length is 16-bits long (on the grounds that anything longer than that is 58599 // pathological), so we give up when we reach that amount. This also means that 58600 // integer overflow for really crazy patterns cannot happen. 58601 // 58602 // Backreference minimum lengths are cached to speed up multiple references. This 58603 // function is called only when the highest back reference in the pattern is less 58604 // than or equal to MAX_CACHE_BACKREF, which is one less than the size of the 58605 // caching vector. The zeroth element contains the number of the highest set 58606 // value. 58607 // 58608 // Arguments: 58609 // re compiled pattern block 58610 // code pointer to start of group (the bracket) 58611 // startcode pointer to start of the whole pattern's code 58612 // utf UTF flag 58613 // recurses chain of recurse_check to catch mutual recursion 58614 // countptr pointer to call count (to catch over complexity) 58615 // backref_cache vector for caching back references. 58616 // 58617 // This function is no longer called when the pattern contains (*ACCEPT); however, 58618 // the old code for returning -1 is retained, just in case. 58619 // 58620 // Returns: the minimum length 58621 // -1 \C in UTF-8 mode 58622 // or (*ACCEPT) 58623 // or pattern too complicated 58624 // -2 internal error (missing capturing bracket) 58625 // -3 internal error (opcode not listed) 58626 58627 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: */ 58628 bp := tls.Alloc(16) 58629 defer tls.Free(16) 58630 58631 var length int32 58632 var branchlength int32 58633 var prev_cap_recno int32 58634 var prev_cap_d int32 58635 var prev_recurse_recno int32 58636 var prev_recurse_d int32 58637 var once_fudge Tuint32_t 58638 var had_recurse TBOOL 58639 var dupcapused TBOOL 58640 var nextbranch TPCRE2_SPTR8 58641 var cc uintptr 58642 // var this_recurse Trecurse_check at bp, 16 58643 58644 var r uintptr 58645 var dd int32 58646 var i int32 58647 var count int32 58648 var slot uintptr 58649 var r1 uintptr 58650 var i1 int32 58651 var r2 uintptr 58652 var d int32 58653 var min int32 58654 var recno int32 58655 var op TPCRE2_UCHAR8 58656 var cs uintptr 58657 var ce uintptr 58658 length = -1 58659 branchlength = 0 58660 prev_cap_recno = -1 58661 prev_cap_d = 0 58662 prev_recurse_recno = -1 58663 prev_recurse_d = 0 58664 once_fudge = Tuint32_t(0) 58665 had_recurse = DFALSE 58666 dupcapused = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_DUPCAPUSED) != Tuint32_t(0)) 58667 nextbranch = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 58668 cc = code + uintptr(1) + uintptr(DLINK_SIZE) 58669 58670 // If this is a "could be empty" group, its minimum length is 0. 58671 58672 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) >= OP_SBRA && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) <= OP_SCOND) { 58673 goto __1 58674 } 58675 return 0 58676 __1: 58677 ; 58678 58679 // Skip over capturing bracket number 58680 58681 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRAPOS) { 58682 goto __2 58683 } 58684 cc += uintptr(DIMM2_SIZE) 58685 __2: 58686 ; 58687 58688 // A large and/or complex regex can take too long to process. 58689 58690 if !(libc.PostIncInt32(&*(*int32)(unsafe.Pointer(countptr)), 1) > 1000) { 58691 goto __3 58692 } 58693 return -1 58694 __3: 58695 ; 58696 58697 // Scan along the opcodes for this branch. If we get to the end of the branch, 58698 // check the length against that of the other branches. If the accumulated length 58699 // passes 16-bits, reset to that value and skip the rest of the branch. 58700 58701 __4: 58702 58703 if !(branchlength >= 65535) { 58704 goto __7 58705 } 58706 58707 branchlength = 65535 58708 cc = nextbranch 58709 __7: 58710 ; 58711 58712 op = *(*TPCRE2_UCHAR8)(unsafe.Pointer(cc)) 58713 switch int32(op) { 58714 case OP_COND: 58715 goto __9 58716 case OP_SCOND: 58717 goto __10 58718 58719 case OP_BRA: 58720 goto __11 58721 // Fall through 58722 58723 case OP_ONCE: 58724 goto __12 58725 case OP_SCRIPT_RUN: 58726 goto __13 58727 case OP_SBRA: 58728 goto __14 58729 case OP_BRAPOS: 58730 goto __15 58731 case OP_SBRAPOS: 58732 goto __16 58733 58734 // To save time for repeated capturing subpatterns, we remember the 58735 // length of the previous one. Unfortunately we can't do the same for 58736 // the unnumbered ones above. Nor can we do this if (?| is present in the 58737 // pattern because captures with the same number are not then identical. 58738 58739 case OP_CBRA: 58740 goto __17 58741 case OP_SCBRA: 58742 goto __18 58743 case OP_CBRAPOS: 58744 goto __19 58745 case OP_SCBRAPOS: 58746 goto __20 58747 58748 // ACCEPT makes things far too complicated; we have to give up. In fact, 58749 // from 10.34 onwards, if a pattern contains (*ACCEPT), this function is not 58750 // used. However, leave the code in place, just in case. 58751 58752 case OP_ACCEPT: 58753 goto __21 58754 case OP_ASSERT_ACCEPT: 58755 goto __22 58756 58757 // Reached end of a branch; if it's a ket it is the end of a nested 58758 // call. If it's ALT it is an alternation in a nested call. If it is END it's 58759 // the end of the outer call. All can be handled by the same code. If the 58760 // length of any branch is zero, there is no need to scan any subsequent 58761 // branches. 58762 58763 case OP_ALT: 58764 goto __23 58765 case OP_KET: 58766 goto __24 58767 case OP_KETRMAX: 58768 goto __25 58769 case OP_KETRMIN: 58770 goto __26 58771 case OP_KETRPOS: 58772 goto __27 58773 case OP_END: 58774 goto __28 58775 58776 // Skip over assertive subpatterns 58777 58778 case OP_ASSERT: 58779 goto __29 58780 case OP_ASSERT_NOT: 58781 goto __30 58782 case OP_ASSERTBACK: 58783 goto __31 58784 case OP_ASSERTBACK_NOT: 58785 goto __32 58786 case OP_ASSERT_NA: 58787 goto __33 58788 case OP_ASSERTBACK_NA: 58789 goto __34 58790 // Fall through 58791 58792 // Skip over things that don't match chars 58793 58794 case OP_REVERSE: 58795 goto __35 58796 case OP_CREF: 58797 goto __36 58798 case OP_DNCREF: 58799 goto __37 58800 case OP_RREF: 58801 goto __38 58802 case OP_DNRREF: 58803 goto __39 58804 case OP_FALSE: 58805 goto __40 58806 case OP_TRUE: 58807 goto __41 58808 case OP_CALLOUT: 58809 goto __42 58810 case OP_SOD: 58811 goto __43 58812 case OP_SOM: 58813 goto __44 58814 case OP_EOD: 58815 goto __45 58816 case OP_EODN: 58817 goto __46 58818 case OP_CIRC: 58819 goto __47 58820 case OP_CIRCM: 58821 goto __48 58822 case OP_DOLL: 58823 goto __49 58824 case OP_DOLLM: 58825 goto __50 58826 case OP_NOT_WORD_BOUNDARY: 58827 goto __51 58828 case OP_WORD_BOUNDARY: 58829 goto __52 58830 58831 case OP_CALLOUT_STR: 58832 goto __53 58833 58834 // Skip over a subpattern that has a {0} or {0,x} quantifier 58835 58836 case OP_BRAZERO: 58837 goto __54 58838 case OP_BRAMINZERO: 58839 goto __55 58840 case OP_BRAPOSZERO: 58841 goto __56 58842 case OP_SKIPZERO: 58843 goto __57 58844 58845 // Handle literal characters and + repetitions 58846 58847 case OP_CHAR: 58848 goto __58 58849 case OP_CHARI: 58850 goto __59 58851 case OP_NOT: 58852 goto __60 58853 case OP_NOTI: 58854 goto __61 58855 case OP_PLUS: 58856 goto __62 58857 case OP_PLUSI: 58858 goto __63 58859 case OP_MINPLUS: 58860 goto __64 58861 case OP_MINPLUSI: 58862 goto __65 58863 case OP_POSPLUS: 58864 goto __66 58865 case OP_POSPLUSI: 58866 goto __67 58867 case OP_NOTPLUS: 58868 goto __68 58869 case OP_NOTPLUSI: 58870 goto __69 58871 case OP_NOTMINPLUS: 58872 goto __70 58873 case OP_NOTMINPLUSI: 58874 goto __71 58875 case OP_NOTPOSPLUS: 58876 goto __72 58877 case OP_NOTPOSPLUSI: 58878 goto __73 58879 58880 case OP_TYPEPLUS: 58881 goto __74 58882 case OP_TYPEMINPLUS: 58883 goto __75 58884 case OP_TYPEPOSPLUS: 58885 goto __76 58886 58887 // Handle exact repetitions. The count is already in characters, but we 58888 // may need to skip over a multibyte character in UTF mode. 58889 58890 case OP_EXACT: 58891 goto __77 58892 case OP_EXACTI: 58893 goto __78 58894 case OP_NOTEXACT: 58895 goto __79 58896 case OP_NOTEXACTI: 58897 goto __80 58898 58899 case OP_TYPEEXACT: 58900 goto __81 58901 58902 // Handle single-char non-literal matchers 58903 58904 case OP_PROP: 58905 goto __82 58906 case OP_NOTPROP: 58907 goto __83 58908 // Fall through 58909 58910 case OP_NOT_DIGIT: 58911 goto __84 58912 case OP_DIGIT: 58913 goto __85 58914 case OP_NOT_WHITESPACE: 58915 goto __86 58916 case OP_WHITESPACE: 58917 goto __87 58918 case OP_NOT_WORDCHAR: 58919 goto __88 58920 case OP_WORDCHAR: 58921 goto __89 58922 case OP_ANY: 58923 goto __90 58924 case OP_ALLANY: 58925 goto __91 58926 case OP_EXTUNI: 58927 goto __92 58928 case OP_HSPACE: 58929 goto __93 58930 case OP_NOT_HSPACE: 58931 goto __94 58932 case OP_VSPACE: 58933 goto __95 58934 case OP_NOT_VSPACE: 58935 goto __96 58936 58937 // "Any newline" might match two characters, but it also might match just 58938 // one. 58939 58940 case OP_ANYNL: 58941 goto __97 58942 58943 // The single-byte matcher means we can't proceed in UTF mode. (In 58944 // non-UTF mode \C will actually be turned into OP_ALLANY, so won't ever 58945 // appear, but leave the code, just in case.) 58946 58947 case OP_ANYBYTE: 58948 goto __98 58949 58950 // For repeated character types, we have to test for \p and \P, which have 58951 // an extra two bytes of parameters. 58952 58953 case OP_TYPESTAR: 58954 goto __99 58955 case OP_TYPEMINSTAR: 58956 goto __100 58957 case OP_TYPEQUERY: 58958 goto __101 58959 case OP_TYPEMINQUERY: 58960 goto __102 58961 case OP_TYPEPOSSTAR: 58962 goto __103 58963 case OP_TYPEPOSQUERY: 58964 goto __104 58965 58966 case OP_TYPEUPTO: 58967 goto __105 58968 case OP_TYPEMINUPTO: 58969 goto __106 58970 case OP_TYPEPOSUPTO: 58971 goto __107 58972 58973 // Check a class for variable quantification 58974 58975 case OP_CLASS: 58976 goto __108 58977 case OP_NCLASS: 58978 goto __109 58979 case OP_XCLASS: 58980 goto __110 58981 58982 // Backreferences and subroutine calls (OP_RECURSE) are treated in the same 58983 // way: we find the minimum length for the subpattern. A recursion 58984 // (backreference or subroutine) causes an a flag to be set that causes the 58985 // length of this branch to be ignored. The logic is that a recursion can only 58986 // make sense if there is another alternative that stops the recursing. That 58987 // will provide the minimum length (when no recursion happens). 58988 // 58989 // If PCRE2_MATCH_UNSET_BACKREF is set, a backreference to an unset bracket 58990 // matches an empty string (by default it causes a matching failure), so in 58991 // that case we must set the minimum length to zero. 58992 // 58993 // For backreferenes, if duplicate numbers are present in the pattern we check 58994 // for a reference to a duplicate. If it is, we don't know which version will 58995 // be referenced, so we have to set the minimum length to zero. 58996 58997 // Duplicate named pattern back reference. 58998 58999 case OP_DNREF: 59000 goto __111 59001 case OP_DNREFI: 59002 goto __112 59003 59004 // Single back reference by number. References by name are converted to by 59005 // number when there is no duplication. 59006 59007 case OP_REF: 59008 goto __113 59009 case OP_REFI: 59010 goto __114 59011 59012 // Recursion always refers to the first occurrence of a subpattern with a 59013 // given number. Therefore, we can always make use of caching, even when the 59014 // pattern contains multiple subpatterns with the same number. 59015 59016 case OP_RECURSE: 59017 goto __115 59018 59019 // Anything else does not or need not match a character. We can get the 59020 // item's length from the table, but for those that can match zero occurrences 59021 // of a character, we must take special action for UTF-8 characters. As it 59022 // happens, the "NOT" versions of these opcodes are used at present only for 59023 // ASCII characters, so they could be omitted from this list. However, in 59024 // future that may change, so we include them here so as not to leave a 59025 // gotcha for a future maintainer. 59026 59027 case OP_UPTO: 59028 goto __116 59029 case OP_UPTOI: 59030 goto __117 59031 case OP_NOTUPTO: 59032 goto __118 59033 case OP_NOTUPTOI: 59034 goto __119 59035 case OP_MINUPTO: 59036 goto __120 59037 case OP_MINUPTOI: 59038 goto __121 59039 case OP_NOTMINUPTO: 59040 goto __122 59041 case OP_NOTMINUPTOI: 59042 goto __123 59043 case OP_POSUPTO: 59044 goto __124 59045 case OP_POSUPTOI: 59046 goto __125 59047 case OP_NOTPOSUPTO: 59048 goto __126 59049 case OP_NOTPOSUPTOI: 59050 goto __127 59051 59052 case OP_STAR: 59053 goto __128 59054 case OP_STARI: 59055 goto __129 59056 case OP_NOTSTAR: 59057 goto __130 59058 case OP_NOTSTARI: 59059 goto __131 59060 case OP_MINSTAR: 59061 goto __132 59062 case OP_MINSTARI: 59063 goto __133 59064 case OP_NOTMINSTAR: 59065 goto __134 59066 case OP_NOTMINSTARI: 59067 goto __135 59068 case OP_POSSTAR: 59069 goto __136 59070 case OP_POSSTARI: 59071 goto __137 59072 case OP_NOTPOSSTAR: 59073 goto __138 59074 case OP_NOTPOSSTARI: 59075 goto __139 59076 59077 case OP_QUERY: 59078 goto __140 59079 case OP_QUERYI: 59080 goto __141 59081 case OP_NOTQUERY: 59082 goto __142 59083 case OP_NOTQUERYI: 59084 goto __143 59085 case OP_MINQUERY: 59086 goto __144 59087 case OP_MINQUERYI: 59088 goto __145 59089 case OP_NOTMINQUERY: 59090 goto __146 59091 case OP_NOTMINQUERYI: 59092 goto __147 59093 case OP_POSQUERY: 59094 goto __148 59095 case OP_POSQUERYI: 59096 goto __149 59097 case OP_NOTPOSQUERY: 59098 goto __150 59099 case OP_NOTPOSQUERYI: 59100 goto __151 59101 59102 // Skip these, but we need to add in the name length. 59103 59104 case OP_MARK: 59105 goto __152 59106 case OP_COMMIT_ARG: 59107 goto __153 59108 case OP_PRUNE_ARG: 59109 goto __154 59110 case OP_SKIP_ARG: 59111 goto __155 59112 case OP_THEN_ARG: 59113 goto __156 59114 59115 // The remaining opcodes are just skipped over. 59116 59117 case OP_CLOSE: 59118 goto __157 59119 case OP_COMMIT: 59120 goto __158 59121 case OP_FAIL: 59122 goto __159 59123 case OP_PRUNE: 59124 goto __160 59125 case OP_SET_SOM: 59126 goto __161 59127 case OP_SKIP: 59128 goto __162 59129 case OP_THEN: 59130 goto __163 59131 59132 // This should not occur: we list all opcodes explicitly so that when 59133 // new ones get added they are properly considered. 59134 59135 default: 59136 goto __164 59137 } 59138 goto __8 59139 59140 __9: 59141 __10: 59142 59143 // If there is only one branch in a condition, the implied branch has zero 59144 // length, so we don't add anything. This covers the DEFINE "condition" 59145 // automatically. If there are two branches we can treat it the same as any 59146 // other non-capturing subpattern. 59147 59148 cs = cc + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59149 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cs))) != OP_ALT) { 59150 goto __165 59151 } 59152 59153 cc = cs + uintptr(1) + uintptr(DLINK_SIZE) 59154 goto __8 59155 __165: 59156 ; 59157 goto PROCESS_NON_CAPTURE 59158 59159 __11: 59160 // There's a special case of OP_BRA, when it is wrapped round a repeated 59161 // OP_RECURSE. We'd like to process the latter at this level so that 59162 // remembering the value works for repeated cases. So we do nothing, but 59163 // set a fudge value to skip over the OP_KET after the recurse. 59164 59165 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_RECURSE && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6))) == OP_KET) { 59166 goto __166 59167 } 59168 59169 once_fudge = Tuint32_t(1 + DLINK_SIZE) 59170 cc += uintptr(1 + DLINK_SIZE) 59171 goto __8 59172 __166: 59173 ; 59174 // Fall through 59175 59176 __12: 59177 __13: 59178 __14: 59179 __15: 59180 __16: 59181 PROCESS_NON_CAPTURE: 59182 d = find_minlength(tls, re, cc, startcode, utf, recurses, countptr, 59183 backref_cache) 59184 if !(d < 0) { 59185 goto __167 59186 } 59187 return d 59188 __167: 59189 ; 59190 branchlength = branchlength + d 59191 __168: 59192 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59193 goto __169 59194 __169: 59195 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59196 goto __168 59197 } 59198 goto __170 59199 __170: 59200 ; 59201 cc += uintptr(1 + DLINK_SIZE) 59202 goto __8 59203 59204 // To save time for repeated capturing subpatterns, we remember the 59205 // length of the previous one. Unfortunately we can't do the same for 59206 // the unnumbered ones above. Nor can we do this if (?| is present in the 59207 // pattern because captures with the same number are not then identical. 59208 59209 __17: 59210 __18: 59211 __19: 59212 __20: 59213 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 4))))) 59214 if !(dupcapused != 0 || recno != prev_cap_recno) { 59215 goto __171 59216 } 59217 59218 prev_cap_recno = recno 59219 prev_cap_d = find_minlength(tls, re, cc, startcode, utf, recurses, countptr, 59220 backref_cache) 59221 if !(prev_cap_d < 0) { 59222 goto __172 59223 } 59224 return prev_cap_d 59225 __172: 59226 ; 59227 __171: 59228 ; 59229 branchlength = branchlength + prev_cap_d 59230 __173: 59231 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59232 goto __174 59233 __174: 59234 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59235 goto __173 59236 } 59237 goto __175 59238 __175: 59239 ; 59240 cc += uintptr(1 + DLINK_SIZE) 59241 goto __8 59242 59243 // ACCEPT makes things far too complicated; we have to give up. In fact, 59244 // from 10.34 onwards, if a pattern contains (*ACCEPT), this function is not 59245 // used. However, leave the code in place, just in case. 59246 59247 __21: 59248 __22: 59249 return -1 59250 59251 // Reached end of a branch; if it's a ket it is the end of a nested 59252 // call. If it's ALT it is an alternation in a nested call. If it is END it's 59253 // the end of the outer call. All can be handled by the same code. If the 59254 // length of any branch is zero, there is no need to scan any subsequent 59255 // branches. 59256 59257 __23: 59258 __24: 59259 __25: 59260 __26: 59261 __27: 59262 __28: 59263 if !(length < 0 || !(had_recurse != 0) && branchlength < length) { 59264 goto __176 59265 } 59266 length = branchlength 59267 __176: 59268 ; 59269 if !(int32(op) != OP_ALT || length == 0) { 59270 goto __177 59271 } 59272 return length 59273 __177: 59274 ; 59275 nextbranch = cc + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59276 cc += uintptr(1 + DLINK_SIZE) 59277 branchlength = 0 59278 had_recurse = DFALSE 59279 goto __8 59280 59281 // Skip over assertive subpatterns 59282 59283 __29: 59284 __30: 59285 __31: 59286 __32: 59287 __33: 59288 __34: 59289 __178: 59290 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59291 goto __179 59292 __179: 59293 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59294 goto __178 59295 } 59296 goto __180 59297 __180: 59298 ; 59299 // Fall through 59300 59301 // Skip over things that don't match chars 59302 59303 __35: 59304 __36: 59305 __37: 59306 __38: 59307 __39: 59308 __40: 59309 __41: 59310 __42: 59311 __43: 59312 __44: 59313 __45: 59314 __46: 59315 __47: 59316 __48: 59317 __49: 59318 __50: 59319 __51: 59320 __52: 59321 cc += uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 59322 goto __8 59323 59324 __53: 59325 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6))))) 59326 goto __8 59327 59328 // Skip over a subpattern that has a {0} or {0,x} quantifier 59329 59330 __54: 59331 __55: 59332 __56: 59333 __57: 59334 cc += uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 59335 __181: 59336 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59337 goto __182 59338 __182: 59339 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59340 goto __181 59341 } 59342 goto __183 59343 __183: 59344 ; 59345 cc += uintptr(1 + DLINK_SIZE) 59346 goto __8 59347 59348 // Handle literal characters and + repetitions 59349 59350 __58: 59351 __59: 59352 __60: 59353 __61: 59354 __62: 59355 __63: 59356 __64: 59357 __65: 59358 __66: 59359 __67: 59360 __68: 59361 __69: 59362 __70: 59363 __71: 59364 __72: 59365 __73: 59366 branchlength++ 59367 cc += uintptr(2) 59368 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0) { 59369 goto __184 59370 } 59371 cc += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 59372 __184: 59373 ; 59374 goto __8 59375 59376 __74: 59377 __75: 59378 __76: 59379 branchlength++ 59380 cc += func() uintptr { 59381 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_NOTPROP { 59382 return uintptr(4) 59383 } 59384 return uintptr(2) 59385 }() 59386 goto __8 59387 59388 // Handle exact repetitions. The count is already in characters, but we 59389 // may need to skip over a multibyte character in UTF mode. 59390 59391 __77: 59392 __78: 59393 __79: 59394 __80: 59395 branchlength = int32(uint32(branchlength) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59396 cc += uintptr(2 + DIMM2_SIZE) 59397 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0) { 59398 goto __185 59399 } 59400 cc += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 59401 __185: 59402 ; 59403 goto __8 59404 59405 __81: 59406 branchlength = int32(uint32(branchlength) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59407 cc += uintptr(2 + DIMM2_SIZE + func() int32 { 59408 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_PROP || 59409 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_NOTPROP { 59410 return 2 59411 } 59412 return 0 59413 }()) 59414 goto __8 59415 59416 // Handle single-char non-literal matchers 59417 59418 __82: 59419 __83: 59420 cc += uintptr(2) 59421 // Fall through 59422 59423 __84: 59424 __85: 59425 __86: 59426 __87: 59427 __88: 59428 __89: 59429 __90: 59430 __91: 59431 __92: 59432 __93: 59433 __94: 59434 __95: 59435 __96: 59436 branchlength++ 59437 cc++ 59438 goto __8 59439 59440 // "Any newline" might match two characters, but it also might match just 59441 // one. 59442 59443 __97: 59444 branchlength = branchlength + 1 59445 cc++ 59446 goto __8 59447 59448 // The single-byte matcher means we can't proceed in UTF mode. (In 59449 // non-UTF mode \C will actually be turned into OP_ALLANY, so won't ever 59450 // appear, but leave the code, just in case.) 59451 59452 __98: 59453 if !(utf != 0) { 59454 goto __186 59455 } 59456 return -1 59457 __186: 59458 ; 59459 branchlength++ 59460 cc++ 59461 goto __8 59462 59463 // For repeated character types, we have to test for \p and \P, which have 59464 // an extra two bytes of parameters. 59465 59466 __99: 59467 __100: 59468 __101: 59469 __102: 59470 __103: 59471 __104: 59472 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_NOTPROP) { 59473 goto __187 59474 } 59475 cc += uintptr(2) 59476 __187: 59477 ; 59478 cc += uintptr(X_pcre2_OP_lengths_8[op]) 59479 goto __8 59480 59481 __105: 59482 __106: 59483 __107: 59484 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_PROP || 59485 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_NOTPROP) { 59486 goto __188 59487 } 59488 cc += uintptr(2) 59489 __188: 59490 ; 59491 cc += uintptr(X_pcre2_OP_lengths_8[op]) 59492 goto __8 59493 59494 // Check a class for variable quantification 59495 59496 __108: 59497 __109: 59498 __110: 59499 // The original code caused an unsigned overflow in 64 bit systems, 59500 // so now we use a conditional statement. 59501 if !(int32(op) == OP_XCLASS) { 59502 goto __189 59503 } 59504 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59505 goto __190 59506 __189: 59507 cc += uintptr(X_pcre2_OP_lengths_8[OP_CLASS]) 59508 __190: 59509 ; 59510 59511 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) { 59512 case OP_CRPLUS: 59513 goto __192 59514 case OP_CRMINPLUS: 59515 goto __193 59516 case OP_CRPOSPLUS: 59517 goto __194 59518 // Fall through 59519 59520 case OP_CRSTAR: 59521 goto __195 59522 case OP_CRMINSTAR: 59523 goto __196 59524 case OP_CRQUERY: 59525 goto __197 59526 case OP_CRMINQUERY: 59527 goto __198 59528 case OP_CRPOSSTAR: 59529 goto __199 59530 case OP_CRPOSQUERY: 59531 goto __200 59532 59533 case OP_CRRANGE: 59534 goto __201 59535 case OP_CRMINRANGE: 59536 goto __202 59537 case OP_CRPOSRANGE: 59538 goto __203 59539 59540 default: 59541 goto __204 59542 } 59543 goto __191 59544 59545 __192: 59546 __193: 59547 __194: 59548 branchlength++ 59549 // Fall through 59550 59551 __195: 59552 __196: 59553 __197: 59554 __198: 59555 __199: 59556 __200: 59557 cc++ 59558 goto __191 59559 59560 __201: 59561 __202: 59562 __203: 59563 branchlength = int32(uint32(branchlength) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59564 cc += uintptr(1 + 2*DIMM2_SIZE) 59565 goto __191 59566 59567 __204: 59568 branchlength++ 59569 goto __191 59570 __191: 59571 ; 59572 goto __8 59573 59574 // Backreferences and subroutine calls (OP_RECURSE) are treated in the same 59575 // way: we find the minimum length for the subpattern. A recursion 59576 // (backreference or subroutine) causes an a flag to be set that causes the 59577 // length of this branch to be ignored. The logic is that a recursion can only 59578 // make sense if there is another alternative that stops the recursing. That 59579 // will provide the minimum length (when no recursion happens). 59580 // 59581 // If PCRE2_MATCH_UNSET_BACKREF is set, a backreference to an unset bracket 59582 // matches an empty string (by default it causes a matching failure), so in 59583 // that case we must set the minimum length to zero. 59584 // 59585 // For backreferenes, if duplicate numbers are present in the pattern we check 59586 // for a reference to a duplicate. If it is, we don't know which version will 59587 // be referenced, so we have to set the minimum length to zero. 59588 59589 // Duplicate named pattern back reference. 59590 59591 __111: 59592 __112: 59593 if !(!(dupcapused != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_UNSET_BACKREF == Tuint32_t(0)) { 59594 goto __205 59595 } 59596 59597 count = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 4))))) 59598 slot = 59599 re + uintptr(uint64(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)) 59600 59601 d = 0x7fffffff 59602 59603 // Scan all groups with the same name; find the shortest. 59604 59605 __207: 59606 if !(libc.PostDecInt32(&count, 1) > 0) { 59607 goto __208 59608 } 59609 59610 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1))))) 59611 59612 if !(recno <= *(*int32)(unsafe.Pointer(backref_cache)) && *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) >= 0) { 59613 goto __209 59614 } 59615 dd = *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) 59616 goto __210 59617 __209: 59618 59619 ce = libc.AssignUintptr(&cs, X_pcre2_find_bracket_8(tls, startcode, utf, recno)) 59620 if !(cs == uintptr(0)) { 59621 goto __211 59622 } 59623 return -2 59624 __211: 59625 ; 59626 __212: 59627 ce += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 2))))) 59628 goto __213 59629 __213: 59630 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce))) == OP_ALT { 59631 goto __212 59632 } 59633 goto __214 59634 __214: 59635 ; 59636 59637 dd = 0 59638 if !(!(dupcapused != 0) || X_pcre2_find_bracket_8(tls, ce, utf, recno) == uintptr(0)) { 59639 goto __215 59640 } 59641 59642 if !(cc > cs && cc < ce) { 59643 goto __216 59644 } /* Simple recursion */ 59645 59646 had_recurse = DTRUE 59647 goto __217 59648 __216: 59649 59650 r = recurses 59651 r = recurses 59652 __218: 59653 if !(r != uintptr(0)) { 59654 goto __220 59655 } 59656 if !((*Trecurse_check)(unsafe.Pointer(r)).Fgroup == cs) { 59657 goto __221 59658 } 59659 goto __220 59660 __221: 59661 ; 59662 goto __219 59663 __219: 59664 r = (*Trecurse_check)(unsafe.Pointer(r)).Fprev 59665 goto __218 59666 goto __220 59667 __220: 59668 ; 59669 if !(r != uintptr(0)) { 59670 goto __222 59671 } /* Mutual recursion */ 59672 59673 had_recurse = DTRUE 59674 goto __223 59675 __222: 59676 59677 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fprev = recurses // No recursion 59678 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fgroup = cs 59679 dd = find_minlength(tls, re, cs, startcode, utf, bp, 59680 countptr, backref_cache) 59681 if !(dd < 0) { 59682 goto __224 59683 } 59684 return dd 59685 __224: 59686 ; 59687 __223: 59688 ; 59689 __217: 59690 ; 59691 __215: 59692 ; 59693 59694 *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) = dd 59695 i = *(*int32)(unsafe.Pointer(backref_cache)) + 1 59696 __225: 59697 if !(i < recno) { 59698 goto __227 59699 } 59700 *(*int32)(unsafe.Pointer(backref_cache + uintptr(i)*4)) = -1 59701 goto __226 59702 __226: 59703 i++ 59704 goto __225 59705 goto __227 59706 __227: 59707 ; 59708 *(*int32)(unsafe.Pointer(backref_cache)) = recno 59709 __210: 59710 ; 59711 59712 if !(dd < d) { 59713 goto __228 59714 } 59715 d = dd 59716 __228: 59717 ; 59718 if !(d <= 0) { 59719 goto __229 59720 } 59721 goto __208 59722 __229: 59723 ; // No point looking at any more 59724 slot += uintptr((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size) 59725 goto __207 59726 __208: 59727 ; 59728 goto __206 59729 __205: 59730 d = 0 59731 __206: 59732 ; 59733 cc += uintptr(1 + 2*DIMM2_SIZE) 59734 goto REPEAT_BACK_REFERENCE 59735 59736 // Single back reference by number. References by name are converted to by 59737 // number when there is no duplication. 59738 59739 __113: 59740 __114: 59741 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59742 if !(recno <= *(*int32)(unsafe.Pointer(backref_cache)) && *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) >= 0) { 59743 goto __230 59744 } 59745 d = *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) 59746 goto __231 59747 __230: 59748 59749 d = 0 59750 59751 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_UNSET_BACKREF == Tuint32_t(0)) { 59752 goto __232 59753 } 59754 59755 ce = libc.AssignUintptr(&cs, X_pcre2_find_bracket_8(tls, startcode, utf, recno)) 59756 if !(cs == uintptr(0)) { 59757 goto __233 59758 } 59759 return -2 59760 __233: 59761 ; 59762 __234: 59763 ce += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 2))))) 59764 goto __235 59765 __235: 59766 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce))) == OP_ALT { 59767 goto __234 59768 } 59769 goto __236 59770 __236: 59771 ; 59772 59773 if !(!(dupcapused != 0) || X_pcre2_find_bracket_8(tls, ce, utf, recno) == uintptr(0)) { 59774 goto __237 59775 } 59776 59777 if !(cc > cs && cc < ce) { 59778 goto __238 59779 } /* Simple recursion */ 59780 59781 had_recurse = DTRUE 59782 goto __239 59783 __238: 59784 59785 r1 = recurses 59786 r1 = recurses 59787 __240: 59788 if !(r1 != uintptr(0)) { 59789 goto __242 59790 } 59791 if !((*Trecurse_check)(unsafe.Pointer(r1)).Fgroup == cs) { 59792 goto __243 59793 } 59794 goto __242 59795 __243: 59796 ; 59797 goto __241 59798 __241: 59799 r1 = (*Trecurse_check)(unsafe.Pointer(r1)).Fprev 59800 goto __240 59801 goto __242 59802 __242: 59803 ; 59804 if !(r1 != uintptr(0)) { 59805 goto __244 59806 } /* Mutual recursion */ 59807 59808 had_recurse = DTRUE 59809 goto __245 59810 __244: /* No recursion */ 59811 59812 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fprev = recurses 59813 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fgroup = cs 59814 d = find_minlength(tls, re, cs, startcode, utf, bp, countptr, 59815 backref_cache) 59816 if !(d < 0) { 59817 goto __246 59818 } 59819 return d 59820 __246: 59821 ; 59822 __245: 59823 ; 59824 __239: 59825 ; 59826 __237: 59827 ; 59828 __232: 59829 ; 59830 59831 *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) = d 59832 i1 = *(*int32)(unsafe.Pointer(backref_cache)) + 1 59833 __247: 59834 if !(i1 < recno) { 59835 goto __249 59836 } 59837 *(*int32)(unsafe.Pointer(backref_cache + uintptr(i1)*4)) = -1 59838 goto __248 59839 __248: 59840 i1++ 59841 goto __247 59842 goto __249 59843 __249: 59844 ; 59845 *(*int32)(unsafe.Pointer(backref_cache)) = recno 59846 __231: 59847 ; 59848 59849 cc += uintptr(1 + DIMM2_SIZE) 59850 59851 // Handle repeated back references 59852 59853 REPEAT_BACK_REFERENCE: 59854 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) { 59855 case OP_CRSTAR: 59856 goto __251 59857 case OP_CRMINSTAR: 59858 goto __252 59859 case OP_CRQUERY: 59860 goto __253 59861 case OP_CRMINQUERY: 59862 goto __254 59863 case OP_CRPOSSTAR: 59864 goto __255 59865 case OP_CRPOSQUERY: 59866 goto __256 59867 59868 case OP_CRPLUS: 59869 goto __257 59870 case OP_CRMINPLUS: 59871 goto __258 59872 case OP_CRPOSPLUS: 59873 goto __259 59874 59875 case OP_CRRANGE: 59876 goto __260 59877 case OP_CRMINRANGE: 59878 goto __261 59879 case OP_CRPOSRANGE: 59880 goto __262 59881 59882 default: 59883 goto __263 59884 } 59885 goto __250 59886 59887 __251: 59888 __252: 59889 __253: 59890 __254: 59891 __255: 59892 __256: 59893 min = 0 59894 cc++ 59895 goto __250 59896 59897 __257: 59898 __258: 59899 __259: 59900 min = 1 59901 cc++ 59902 goto __250 59903 59904 __260: 59905 __261: 59906 __262: 59907 min = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59908 cc += uintptr(1 + 2*DIMM2_SIZE) 59909 goto __250 59910 59911 __263: 59912 min = 1 59913 goto __250 59914 __250: 59915 ; 59916 59917 // Take care not to overflow: (1) min and d are ints, so check that their 59918 // product is not greater than INT_MAX. (2) branchlength is limited to 59919 // UINT16_MAX (checked at the top of the loop). 59920 59921 if !(d > 0 && 0x7fffffff/d < min || 65535-branchlength < min*d) { 59922 goto __264 59923 } 59924 branchlength = 65535 59925 goto __265 59926 __264: 59927 branchlength = branchlength + min*d 59928 __265: 59929 ; 59930 goto __8 59931 59932 // Recursion always refers to the first occurrence of a subpattern with a 59933 // given number. Therefore, we can always make use of caching, even when the 59934 // pattern contains multiple subpatterns with the same number. 59935 59936 __115: 59937 cs = libc.AssignUintptr(&ce, startcode+uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2)))))) 59938 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cs + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cs + 4))))) 59939 if !(recno == prev_recurse_recno) { 59940 goto __266 59941 } 59942 59943 branchlength = branchlength + prev_recurse_d 59944 goto __267 59945 __266: 59946 59947 __268: 59948 ce += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 2))))) 59949 goto __269 59950 __269: 59951 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce))) == OP_ALT { 59952 goto __268 59953 } 59954 goto __270 59955 __270: 59956 ; 59957 if !(cc > cs && cc < ce) { 59958 goto __271 59959 } // Simple recursion 59960 had_recurse = DTRUE 59961 goto __272 59962 __271: 59963 59964 r2 = recurses 59965 r2 = recurses 59966 __273: 59967 if !(r2 != uintptr(0)) { 59968 goto __275 59969 } 59970 if !((*Trecurse_check)(unsafe.Pointer(r2)).Fgroup == cs) { 59971 goto __276 59972 } 59973 goto __275 59974 __276: 59975 ; 59976 goto __274 59977 __274: 59978 r2 = (*Trecurse_check)(unsafe.Pointer(r2)).Fprev 59979 goto __273 59980 goto __275 59981 __275: 59982 ; 59983 if !(r2 != uintptr(0)) { 59984 goto __277 59985 } // Mutual recursion 59986 had_recurse = DTRUE 59987 goto __278 59988 __277: 59989 59990 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fprev = recurses 59991 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fgroup = cs 59992 prev_recurse_d = find_minlength(tls, re, cs, startcode, utf, bp, 59993 countptr, backref_cache) 59994 if !(prev_recurse_d < 0) { 59995 goto __279 59996 } 59997 return prev_recurse_d 59998 __279: 59999 ; 60000 prev_recurse_recno = recno 60001 branchlength = branchlength + prev_recurse_d 60002 __278: 60003 ; 60004 __272: 60005 ; 60006 __267: 60007 ; 60008 cc += uintptr(Tuint32_t(1+DLINK_SIZE) + once_fudge) 60009 once_fudge = Tuint32_t(0) 60010 goto __8 60011 60012 // Anything else does not or need not match a character. We can get the 60013 // item's length from the table, but for those that can match zero occurrences 60014 // of a character, we must take special action for UTF-8 characters. As it 60015 // happens, the "NOT" versions of these opcodes are used at present only for 60016 // ASCII characters, so they could be omitted from this list. However, in 60017 // future that may change, so we include them here so as not to leave a 60018 // gotcha for a future maintainer. 60019 60020 __116: 60021 __117: 60022 __118: 60023 __119: 60024 __120: 60025 __121: 60026 __122: 60027 __123: 60028 __124: 60029 __125: 60030 __126: 60031 __127: 60032 60033 __128: 60034 __129: 60035 __130: 60036 __131: 60037 __132: 60038 __133: 60039 __134: 60040 __135: 60041 __136: 60042 __137: 60043 __138: 60044 __139: 60045 60046 __140: 60047 __141: 60048 __142: 60049 __143: 60050 __144: 60051 __145: 60052 __146: 60053 __147: 60054 __148: 60055 __149: 60056 __150: 60057 __151: 60058 60059 cc += uintptr(X_pcre2_OP_lengths_8[op]) 60060 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0) { 60061 goto __280 60062 } 60063 cc += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 60064 __280: 60065 ; 60066 goto __8 60067 60068 // Skip these, but we need to add in the name length. 60069 60070 __152: 60071 __153: 60072 __154: 60073 __155: 60074 __156: 60075 cc += uintptr(int32(X_pcre2_OP_lengths_8[op]) + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))) 60076 goto __8 60077 60078 // The remaining opcodes are just skipped over. 60079 60080 __157: 60081 __158: 60082 __159: 60083 __160: 60084 __161: 60085 __162: 60086 __163: 60087 cc += uintptr(X_pcre2_OP_lengths_8[op]) 60088 goto __8 60089 60090 // This should not occur: we list all opcodes explicitly so that when 60091 // new ones get added they are properly considered. 60092 60093 __164: 60094 return -3 60095 __8: 60096 ; 60097 goto __5 60098 __5: 60099 goto __4 60100 goto __6 60101 __6: 60102 ; 60103 return int32(0) 60104 // Control never gets here 60105 } 60106 60107 // ************************************************ 60108 // 60109 // Set a bit and maybe its alternate case * 60110 // 60111 60112 // Given a character, set its first code unit's bit in the table, and also the 60113 // corresponding bit for the other version of a letter if we are caseless. 60114 // 60115 // Arguments: 60116 // re points to the regex block 60117 // p points to the first code unit of the character 60118 // caseless TRUE if caseless 60119 // utf TRUE for UTF mode 60120 // ucp TRUE for UCP mode 60121 // 60122 // Returns: pointer after the character 60123 60124 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: */ 60125 bp := tls.Alloc(6) 60126 defer tls.Free(6) 60127 60128 var c Tuint32_t = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) // First code unit 60129 60130 _ = utf // Stop compiler warnings when UTF not supported 60131 _ = ucp 60132 60133 // In 16-bit and 32-bit modes, code units greater than 0xff set the bit for 60134 // 0xff. 60135 60136 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c/Tuint32_t(8)))) |= Tuint8_t(uint32(1) << (c & Tuint32_t(7))) 60137 60138 // In UTF-8 or UTF-16 mode, pick up the remaining code units in order to find 60139 // the end of the character, even when caseless. 60140 60141 if utf != 0 { 60142 if c >= Tuint32_t(0xc0) { 60143 if c&0x20 == Tuint32_t(0) { 60144 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))&0x3f 60145 } else if c&0x10 == Tuint32_t(0) { 60146 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f 60147 p += uintptr(2) 60148 } else if c&0x08 == Tuint32_t(0) { 60149 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 60150 p += uintptr(3) 60151 } else if c&0x04 == Tuint32_t(0) { 60152 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 60153 p += uintptr(4) 60154 } else { 60155 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 60156 p += uintptr(5) 60157 } 60158 } 60159 60160 } 60161 60162 // If caseless, handle the other case of the character. 60163 60164 if caseless != 0 { 60165 if utf != 0 || ucp != 0 { 60166 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) 60167 if utf != 0 { 60168 // var buff [6]TPCRE2_UCHAR8 at bp, 6 60169 60170 X_pcre2_ord2utf_8(tls, c, bp) 60171 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp)))/8))) |= Tuint8_t(uint32(1) << (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp))) & 7)) 60172 } else if c < Tuint32_t(256) { 60173 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c/Tuint32_t(8)))) |= Tuint8_t(uint32(1) << (c & Tuint32_t(7))) 60174 } 60175 } else 60176 60177 // Not UTF or UCP 60178 60179 if 1 != 0 { 60180 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 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)) 60181 } 60182 } 60183 60184 return p 60185 } 60186 60187 // ************************************************ 60188 // 60189 // Set bits for a positive character type * 60190 // 60191 60192 // This function sets starting bits for a character type. In UTF-8 mode, we can 60193 // only do a direct setting for bytes less than 128, as otherwise there can be 60194 // confusion with bytes in the middle of UTF-8 characters. In a "traditional" 60195 // environment, the tables will only recognize ASCII characters anyway, but in at 60196 // least one Windows environment, some higher bytes bits were set in the tables. 60197 // So we deal with that case by considering the UTF-8 encoding. 60198 // 60199 // Arguments: 60200 // re the regex block 60201 // cbit type the type of character wanted 60202 // table_limit 32 for non-UTF-8; 16 for UTF-8 60203 // 60204 // Returns: nothing 60205 60206 func set_type_bits(tls *libc.TLS, re uintptr, cbit_type int32, table_limit uint32) { /* pcre2_study.c:866:1: */ 60207 bp := tls.Alloc(6) 60208 defer tls.Free(6) 60209 60210 var c Tuint32_t 60211 for c = Tuint32_t(0); c < table_limit; c++ { 60212 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 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)))))) 60213 } 60214 if table_limit == uint32(32) { 60215 return 60216 } 60217 for c = Tuint32_t(128); c < Tuint32_t(256); c++ { 60218 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) { 60219 // var buff [6]TPCRE2_UCHAR8 at bp, 6 60220 60221 X_pcre2_ord2utf_8(tls, c, bp) 60222 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp)))/8))) |= Tuint8_t(uint32(1) << (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp))) & 7)) 60223 } 60224 } 60225 } 60226 60227 // ************************************************ 60228 // 60229 // Set bits for a negative character type * 60230 // 60231 60232 // This function sets starting bits for a negative character type such as \D. 60233 // In UTF-8 mode, we can only do a direct setting for bytes less than 128, as 60234 // otherwise there can be confusion with bytes in the middle of UTF-8 characters. 60235 // Unlike in the positive case, where we can set appropriate starting bits for 60236 // specific high-valued UTF-8 characters, in this case we have to set the bits for 60237 // all high-valued characters. The lowest is 0xc2, but we overkill by starting at 60238 // 0xc0 (192) for simplicity. 60239 // 60240 // Arguments: 60241 // re the regex block 60242 // cbit type the type of character wanted 60243 // table_limit 32 for non-UTF-8; 16 for UTF-8 60244 // 60245 // Returns: nothing 60246 60247 func set_nottype_bits(tls *libc.TLS, re uintptr, cbit_type int32, table_limit uint32) { /* pcre2_study.c:907:1: */ 60248 var c Tuint32_t 60249 for c = Tuint32_t(0); c < table_limit; c++ { 60250 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 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)))))))) 60251 } 60252 if table_limit != uint32(32) { 60253 for c = Tuint32_t(24); c < Tuint32_t(32); c++ { 60254 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c))) = Tuint8_t(0xff) 60255 } 60256 } 60257 } 60258 60259 // ************************************************ 60260 // 60261 // Create bitmap of starting code units * 60262 // 60263 60264 // This function scans a compiled unanchored expression recursively and 60265 // attempts to build a bitmap of the set of possible starting code units whose 60266 // values are less than 256. In 16-bit and 32-bit mode, values above 255 all cause 60267 // the 255 bit to be set. When calling set[_not]_type_bits() in UTF-8 (sic) mode 60268 // we pass a value of 16 rather than 32 as the final argument. (See comments in 60269 // those functions for the reason.) 60270 // 60271 // The SSB_CONTINUE return is useful for parenthesized groups in patterns such as 60272 // (a*)b where the group provides some optional starting code units but scanning 60273 // must continue at the outer level to find at least one mandatory code unit. At 60274 // the outermost level, this function fails unless the result is SSB_DONE. 60275 // 60276 // We restrict recursion (for nested groups) to 1000 to avoid stack overflow 60277 // issues. 60278 // 60279 // Arguments: 60280 // re points to the compiled regex block 60281 // code points to an expression 60282 // utf TRUE if in UTF mode 60283 // ucp TRUE if in UCP mode 60284 // depthptr pointer to recurse depth 60285 // 60286 // Returns: SSB_FAIL => Failed to find any starting code units 60287 // SSB_DONE => Found mandatory starting code units 60288 // SSB_CONTINUE => Found optional starting code units 60289 // SSB_UNKNOWN => Hit an unrecognized opcode 60290 // SSB_TOODEEP => Recursion is too deep 60291 60292 func set_start_bits(tls *libc.TLS, re uintptr, code TPCRE2_SPTR8, utf TBOOL, ucp TBOOL, depthptr uintptr) int32 { /* pcre2_study.c:953:1: */ 60293 bp := tls.Alloc(6) 60294 defer tls.Free(6) 60295 60296 var c Tuint32_t 60297 var yield int32 60298 var table_limit int32 60299 // var buff [6]TPCRE2_UCHAR8 at bp, 6 60300 60301 var p uintptr 60302 var b TPCRE2_UCHAR8 60303 var e TPCRE2_UCHAR8 60304 var p1 TPCRE2_SPTR8 60305 var d int32 60306 var rc int32 60307 var classmap uintptr 60308 var xclassflags TPCRE2_UCHAR8 60309 var try_next TBOOL 60310 var tcode TPCRE2_SPTR8 60311 yield = SSB_DONE 60312 if utf != 0 { 60313 table_limit = 16 60314 } else { 60315 table_limit = 32 60316 } 60317 60318 *(*int32)(unsafe.Pointer(depthptr)) += 1 60319 if !(*(*int32)(unsafe.Pointer(depthptr)) > 1000) { 60320 goto __1 60321 } 60322 return SSB_TOODEEP 60323 __1: 60324 ; 60325 60326 __2: 60327 try_next = DTRUE 60328 tcode = code + uintptr(1) + uintptr(DLINK_SIZE) 60329 60330 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) { 60331 goto __5 60332 } 60333 tcode += TPCRE2_SPTR8(DIMM2_SIZE) 60334 __5: 60335 ; 60336 60337 __6: 60338 if !(try_next != 0) { 60339 goto __7 60340 } /* Loop for items in this branch */ 60341 classmap = uintptr(0) 60342 60343 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) { 60344 // If we reach something we don't understand, it means a new opcode has 60345 // been created that hasn't been added to this function. Hopefully this 60346 // problem will be discovered during testing. 60347 60348 default: 60349 goto __9 60350 60351 // Fail for a valid opcode that implies no starting bits. 60352 60353 case OP_ACCEPT: 60354 goto __10 60355 case OP_ASSERT_ACCEPT: 60356 goto __11 60357 case OP_ALLANY: 60358 goto __12 60359 case OP_ANY: 60360 goto __13 60361 case OP_ANYBYTE: 60362 goto __14 60363 case OP_CIRCM: 60364 goto __15 60365 case OP_CLOSE: 60366 goto __16 60367 case OP_COMMIT: 60368 goto __17 60369 case OP_COMMIT_ARG: 60370 goto __18 60371 case OP_COND: 60372 goto __19 60373 case OP_CREF: 60374 goto __20 60375 case OP_FALSE: 60376 goto __21 60377 case OP_TRUE: 60378 goto __22 60379 case OP_DNCREF: 60380 goto __23 60381 case OP_DNREF: 60382 goto __24 60383 case OP_DNREFI: 60384 goto __25 60385 case OP_DNRREF: 60386 goto __26 60387 case OP_DOLL: 60388 goto __27 60389 case OP_DOLLM: 60390 goto __28 60391 case OP_END: 60392 goto __29 60393 case OP_EOD: 60394 goto __30 60395 case OP_EODN: 60396 goto __31 60397 case OP_EXTUNI: 60398 goto __32 60399 case OP_FAIL: 60400 goto __33 60401 case OP_MARK: 60402 goto __34 60403 case OP_NOT: 60404 goto __35 60405 case OP_NOTEXACT: 60406 goto __36 60407 case OP_NOTEXACTI: 60408 goto __37 60409 case OP_NOTI: 60410 goto __38 60411 case OP_NOTMINPLUS: 60412 goto __39 60413 case OP_NOTMINPLUSI: 60414 goto __40 60415 case OP_NOTMINQUERY: 60416 goto __41 60417 case OP_NOTMINQUERYI: 60418 goto __42 60419 case OP_NOTMINSTAR: 60420 goto __43 60421 case OP_NOTMINSTARI: 60422 goto __44 60423 case OP_NOTMINUPTO: 60424 goto __45 60425 case OP_NOTMINUPTOI: 60426 goto __46 60427 case OP_NOTPLUS: 60428 goto __47 60429 case OP_NOTPLUSI: 60430 goto __48 60431 case OP_NOTPOSPLUS: 60432 goto __49 60433 case OP_NOTPOSPLUSI: 60434 goto __50 60435 case OP_NOTPOSQUERY: 60436 goto __51 60437 case OP_NOTPOSQUERYI: 60438 goto __52 60439 case OP_NOTPOSSTAR: 60440 goto __53 60441 case OP_NOTPOSSTARI: 60442 goto __54 60443 case OP_NOTPOSUPTO: 60444 goto __55 60445 case OP_NOTPOSUPTOI: 60446 goto __56 60447 case OP_NOTPROP: 60448 goto __57 60449 case OP_NOTQUERY: 60450 goto __58 60451 case OP_NOTQUERYI: 60452 goto __59 60453 case OP_NOTSTAR: 60454 goto __60 60455 case OP_NOTSTARI: 60456 goto __61 60457 case OP_NOTUPTO: 60458 goto __62 60459 case OP_NOTUPTOI: 60460 goto __63 60461 case OP_NOT_HSPACE: 60462 goto __64 60463 case OP_NOT_VSPACE: 60464 goto __65 60465 case OP_PRUNE: 60466 goto __66 60467 case OP_PRUNE_ARG: 60468 goto __67 60469 case OP_RECURSE: 60470 goto __68 60471 case OP_REF: 60472 goto __69 60473 case OP_REFI: 60474 goto __70 60475 case OP_REVERSE: 60476 goto __71 60477 case OP_RREF: 60478 goto __72 60479 case OP_SCOND: 60480 goto __73 60481 case OP_SET_SOM: 60482 goto __74 60483 case OP_SKIP: 60484 goto __75 60485 case OP_SKIP_ARG: 60486 goto __76 60487 case OP_SOD: 60488 goto __77 60489 case OP_SOM: 60490 goto __78 60491 case OP_THEN: 60492 goto __79 60493 case OP_THEN_ARG: 60494 goto __80 60495 60496 // OP_CIRC happens only at the start of an anchored branch (multiline ^ 60497 // uses OP_CIRCM). Skip over it. 60498 60499 case OP_CIRC: 60500 goto __81 60501 60502 // A "real" property test implies no starting bits, but the fake property 60503 // PT_CLIST identifies a list of characters. These lists are short, as they 60504 // are used for characters with more than one "other case", so there is no 60505 // point in recognizing them for OP_NOTPROP. 60506 60507 case OP_PROP: 60508 goto __82 60509 60510 // We can ignore word boundary tests. 60511 60512 case OP_WORD_BOUNDARY: 60513 goto __83 60514 case OP_NOT_WORD_BOUNDARY: 60515 goto __84 60516 60517 // If we hit a bracket or a positive lookahead assertion, recurse to set 60518 // bits from within the subpattern. If it can't find anything, we have to 60519 // give up. If it finds some mandatory character(s), we are done for this 60520 // branch. Otherwise, carry on scanning after the subpattern. 60521 60522 case OP_BRA: 60523 goto __85 60524 case OP_SBRA: 60525 goto __86 60526 case OP_CBRA: 60527 goto __87 60528 case OP_SCBRA: 60529 goto __88 60530 case OP_BRAPOS: 60531 goto __89 60532 case OP_SBRAPOS: 60533 goto __90 60534 case OP_CBRAPOS: 60535 goto __91 60536 case OP_SCBRAPOS: 60537 goto __92 60538 case OP_ONCE: 60539 goto __93 60540 case OP_SCRIPT_RUN: 60541 goto __94 60542 case OP_ASSERT: 60543 goto __95 60544 case OP_ASSERT_NA: 60545 goto __96 60546 60547 // If we hit ALT or KET, it means we haven't found anything mandatory in 60548 // this branch, though we might have found something optional. For ALT, we 60549 // continue with the next alternative, but we have to arrange that the final 60550 // result from subpattern is SSB_CONTINUE rather than SSB_DONE. For KET, 60551 // return SSB_CONTINUE: if this is the top level, that indicates failure, 60552 // but after a nested subpattern, it causes scanning to continue. 60553 60554 case OP_ALT: 60555 goto __97 60556 60557 case OP_KET: 60558 goto __98 60559 case OP_KETRMAX: 60560 goto __99 60561 case OP_KETRMIN: 60562 goto __100 60563 case OP_KETRPOS: 60564 goto __101 60565 60566 // Skip over callout 60567 60568 case OP_CALLOUT: 60569 goto __102 60570 60571 case OP_CALLOUT_STR: 60572 goto __103 60573 60574 // Skip over lookbehind and negative lookahead assertions 60575 60576 case OP_ASSERT_NOT: 60577 goto __104 60578 case OP_ASSERTBACK: 60579 goto __105 60580 case OP_ASSERTBACK_NOT: 60581 goto __106 60582 case OP_ASSERTBACK_NA: 60583 goto __107 60584 60585 // BRAZERO does the bracket, but carries on. 60586 60587 case OP_BRAZERO: 60588 goto __108 60589 case OP_BRAMINZERO: 60590 goto __109 60591 case OP_BRAPOSZERO: 60592 goto __110 60593 60594 // SKIPZERO skips the bracket. 60595 60596 case OP_SKIPZERO: 60597 goto __111 60598 60599 // Single-char * or ? sets the bit and tries the next item 60600 60601 case OP_STAR: 60602 goto __112 60603 case OP_MINSTAR: 60604 goto __113 60605 case OP_POSSTAR: 60606 goto __114 60607 case OP_QUERY: 60608 goto __115 60609 case OP_MINQUERY: 60610 goto __116 60611 case OP_POSQUERY: 60612 goto __117 60613 60614 case OP_STARI: 60615 goto __118 60616 case OP_MINSTARI: 60617 goto __119 60618 case OP_POSSTARI: 60619 goto __120 60620 case OP_QUERYI: 60621 goto __121 60622 case OP_MINQUERYI: 60623 goto __122 60624 case OP_POSQUERYI: 60625 goto __123 60626 60627 // Single-char upto sets the bit and tries the next 60628 60629 case OP_UPTO: 60630 goto __124 60631 case OP_MINUPTO: 60632 goto __125 60633 case OP_POSUPTO: 60634 goto __126 60635 60636 case OP_UPTOI: 60637 goto __127 60638 case OP_MINUPTOI: 60639 goto __128 60640 case OP_POSUPTOI: 60641 goto __129 60642 60643 // At least one single char sets the bit and stops 60644 60645 case OP_EXACT: 60646 goto __130 60647 // Fall through 60648 case OP_CHAR: 60649 goto __131 60650 case OP_PLUS: 60651 goto __132 60652 case OP_MINPLUS: 60653 goto __133 60654 case OP_POSPLUS: 60655 goto __134 60656 60657 case OP_EXACTI: 60658 goto __135 60659 // Fall through 60660 case OP_CHARI: 60661 goto __136 60662 case OP_PLUSI: 60663 goto __137 60664 case OP_MINPLUSI: 60665 goto __138 60666 case OP_POSPLUSI: 60667 goto __139 60668 60669 // Special spacing and line-terminating items. These recognize specific 60670 // lists of characters. The difference between VSPACE and ANYNL is that the 60671 // latter can match the two-character CRLF sequence, but that is not 60672 // relevant for finding the first character, so their code here is 60673 // identical. 60674 60675 case OP_HSPACE: 60676 goto __140 60677 60678 case OP_ANYNL: 60679 goto __141 60680 case OP_VSPACE: 60681 goto __142 60682 60683 // Single character types set the bits and stop. Note that if PCRE2_UCP 60684 // is set, we do not see these opcodes because \d etc are converted to 60685 // properties. Therefore, these apply in the case when only characters less 60686 // than 256 are recognized to match the types. 60687 60688 case OP_NOT_DIGIT: 60689 goto __143 60690 60691 case OP_DIGIT: 60692 goto __144 60693 60694 case OP_NOT_WHITESPACE: 60695 goto __145 60696 60697 case OP_WHITESPACE: 60698 goto __146 60699 60700 case OP_NOT_WORDCHAR: 60701 goto __147 60702 60703 case OP_WORDCHAR: 60704 goto __148 60705 60706 // One or more character type fudges the pointer and restarts, knowing 60707 // it will hit a single character type and stop there. 60708 60709 case OP_TYPEPLUS: 60710 goto __149 60711 case OP_TYPEMINPLUS: 60712 goto __150 60713 case OP_TYPEPOSPLUS: 60714 goto __151 60715 60716 case OP_TYPEEXACT: 60717 goto __152 60718 60719 // Zero or more repeats of character types set the bits and then 60720 // try again. 60721 60722 case OP_TYPEUPTO: 60723 goto __153 60724 case OP_TYPEMINUPTO: 60725 goto __154 60726 case OP_TYPEPOSUPTO: 60727 goto __155 // Fall through 60728 60729 case OP_TYPESTAR: 60730 goto __156 60731 case OP_TYPEMINSTAR: 60732 goto __157 60733 case OP_TYPEPOSSTAR: 60734 goto __158 60735 case OP_TYPEQUERY: 60736 goto __159 60737 case OP_TYPEMINQUERY: 60738 goto __160 60739 case OP_TYPEPOSQUERY: 60740 goto __161 60741 60742 // Extended class: if there are any property checks, or if this is a 60743 // negative XCLASS without a map, give up. If there are no property checks, 60744 // there must be wide characters on the XCLASS list, because otherwise an 60745 // XCLASS would not have been created. This means that code points >= 255 60746 // are potential starters. In the UTF-8 case we can scan them and set bits 60747 // for the relevant leading bytes. 60748 60749 case OP_XCLASS: 60750 goto __162 60751 60752 // It seems that the fall through comment must be outside the #ifdef if 60753 // it is to avoid the gcc compiler warning. 60754 60755 // Fall through 60756 60757 // Enter here for a negative non-XCLASS. In the 8-bit library, if we are 60758 // in UTF mode, any byte with a value >= 0xc4 is a potentially valid starter 60759 // because it starts a character with a value > 255. In 8-bit non-UTF mode, 60760 // there is no difference between CLASS and NCLASS. In all other wide 60761 // character modes, set the 0xFF bit to indicate code units >= 255. 60762 60763 case OP_NCLASS: 60764 goto __163 60765 // Fall through 60766 60767 // Enter here for a positive non-XCLASS. If we have fallen through from 60768 // an XCLASS, classmap will already be set; just advance the code pointer. 60769 // Otherwise, set up classmap for a a non-XCLASS and advance past it. 60770 60771 case OP_CLASS: 60772 goto __164 60773 } 60774 goto __8 60775 60776 // If we reach something we don't understand, it means a new opcode has 60777 // been created that hasn't been added to this function. Hopefully this 60778 // problem will be discovered during testing. 60779 60780 __9: 60781 return SSB_UNKNOWN 60782 60783 // Fail for a valid opcode that implies no starting bits. 60784 60785 __10: 60786 __11: 60787 __12: 60788 __13: 60789 __14: 60790 __15: 60791 __16: 60792 __17: 60793 __18: 60794 __19: 60795 __20: 60796 __21: 60797 __22: 60798 __23: 60799 __24: 60800 __25: 60801 __26: 60802 __27: 60803 __28: 60804 __29: 60805 __30: 60806 __31: 60807 __32: 60808 __33: 60809 __34: 60810 __35: 60811 __36: 60812 __37: 60813 __38: 60814 __39: 60815 __40: 60816 __41: 60817 __42: 60818 __43: 60819 __44: 60820 __45: 60821 __46: 60822 __47: 60823 __48: 60824 __49: 60825 __50: 60826 __51: 60827 __52: 60828 __53: 60829 __54: 60830 __55: 60831 __56: 60832 __57: 60833 __58: 60834 __59: 60835 __60: 60836 __61: 60837 __62: 60838 __63: 60839 __64: 60840 __65: 60841 __66: 60842 __67: 60843 __68: 60844 __69: 60845 __70: 60846 __71: 60847 __72: 60848 __73: 60849 __74: 60850 __75: 60851 __76: 60852 __77: 60853 __78: 60854 __79: 60855 __80: 60856 return SSB_FAIL 60857 60858 // OP_CIRC happens only at the start of an anchored branch (multiline ^ 60859 // uses OP_CIRCM). Skip over it. 60860 60861 __81: 60862 tcode += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[OP_CIRC]) 60863 goto __8 60864 60865 // A "real" property test implies no starting bits, but the fake property 60866 // PT_CLIST identifies a list of characters. These lists are short, as they 60867 // are used for characters with more than one "other case", so there is no 60868 // point in recognizing them for OP_NOTPROP. 60869 60870 __82: 60871 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1))) != DPT_CLIST) { 60872 goto __165 60873 } 60874 return SSB_FAIL 60875 __165: 60876 ; 60877 60878 p = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2)))*4 60879 __166: 60880 if !(libc.AssignUint32(&c, *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 4)))) < DNOTACHAR) { 60881 goto __167 60882 } 60883 60884 if !(utf != 0) { 60885 goto __168 60886 } 60887 60888 X_pcre2_ord2utf_8(tls, c, bp) 60889 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp))) 60890 __168: 60891 ; 60892 if !(c > Tuint32_t(0xff)) { 60893 goto __169 60894 } 60895 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 31)) |= uint8(uint32(1) << (0xff & 7)) 60896 goto __170 60897 __169: 60898 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c/Tuint32_t(8)))) |= Tuint8_t(uint32(1) << (c & Tuint32_t(7))) 60899 __170: 60900 ; 60901 goto __166 60902 __167: 60903 ; 60904 60905 try_next = DFALSE 60906 goto __8 60907 60908 // We can ignore word boundary tests. 60909 60910 __83: 60911 __84: 60912 tcode++ 60913 goto __8 60914 60915 // If we hit a bracket or a positive lookahead assertion, recurse to set 60916 // bits from within the subpattern. If it can't find anything, we have to 60917 // give up. If it finds some mandatory character(s), we are done for this 60918 // branch. Otherwise, carry on scanning after the subpattern. 60919 60920 __85: 60921 __86: 60922 __87: 60923 __88: 60924 __89: 60925 __90: 60926 __91: 60927 __92: 60928 __93: 60929 __94: 60930 __95: 60931 __96: 60932 rc = set_start_bits(tls, re, tcode, utf, ucp, depthptr) 60933 if !(rc == SSB_DONE) { 60934 goto __171 60935 } 60936 60937 try_next = DFALSE 60938 goto __172 60939 __171: 60940 if !(rc == SSB_CONTINUE) { 60941 goto __173 60942 } 60943 60944 __175: 60945 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 60946 goto __176 60947 __176: 60948 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 60949 goto __175 60950 } 60951 goto __177 60952 __177: 60953 ; 60954 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 60955 goto __174 60956 __173: 60957 return rc 60958 __174: 60959 ; 60960 __172: 60961 ; // FAIL, UNKNOWN, or TOODEEP 60962 goto __8 60963 60964 // If we hit ALT or KET, it means we haven't found anything mandatory in 60965 // this branch, though we might have found something optional. For ALT, we 60966 // continue with the next alternative, but we have to arrange that the final 60967 // result from subpattern is SSB_CONTINUE rather than SSB_DONE. For KET, 60968 // return SSB_CONTINUE: if this is the top level, that indicates failure, 60969 // but after a nested subpattern, it causes scanning to continue. 60970 60971 __97: 60972 yield = SSB_CONTINUE 60973 try_next = DFALSE 60974 goto __8 60975 60976 __98: 60977 __99: 60978 __100: 60979 __101: 60980 return SSB_CONTINUE 60981 60982 // Skip over callout 60983 60984 __102: 60985 tcode += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[OP_CALLOUT]) 60986 goto __8 60987 60988 __103: 60989 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 6))))) 60990 goto __8 60991 60992 // Skip over lookbehind and negative lookahead assertions 60993 60994 __104: 60995 __105: 60996 __106: 60997 __107: 60998 __178: 60999 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61000 goto __179 61001 __179: 61002 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 61003 goto __178 61004 } 61005 goto __180 61006 __180: 61007 ; 61008 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 61009 goto __8 61010 61011 // BRAZERO does the bracket, but carries on. 61012 61013 __108: 61014 __109: 61015 __110: 61016 rc = set_start_bits(tls, re, libc.PreIncUintptr(&tcode, 1), utf, ucp, depthptr) 61017 if !(rc == SSB_FAIL || rc == SSB_UNKNOWN || rc == SSB_TOODEEP) { 61018 goto __181 61019 } 61020 return rc 61021 __181: 61022 ; 61023 __182: 61024 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61025 goto __183 61026 __183: 61027 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 61028 goto __182 61029 } 61030 goto __184 61031 __184: 61032 ; 61033 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 61034 goto __8 61035 61036 // SKIPZERO skips the bracket. 61037 61038 __111: 61039 tcode++ 61040 __185: 61041 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61042 goto __186 61043 __186: 61044 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 61045 goto __185 61046 } 61047 goto __187 61048 __187: 61049 ; 61050 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 61051 goto __8 61052 61053 // Single-char * or ? sets the bit and tries the next item 61054 61055 __112: 61056 __113: 61057 __114: 61058 __115: 61059 __116: 61060 __117: 61061 tcode = set_table_bit(tls, re, tcode+uintptr(1), DFALSE, utf, ucp) 61062 goto __8 61063 61064 __118: 61065 __119: 61066 __120: 61067 __121: 61068 __122: 61069 __123: 61070 tcode = set_table_bit(tls, re, tcode+uintptr(1), DTRUE, utf, ucp) 61071 goto __8 61072 61073 // Single-char upto sets the bit and tries the next 61074 61075 __124: 61076 __125: 61077 __126: 61078 tcode = set_table_bit(tls, re, tcode+uintptr(1)+uintptr(DIMM2_SIZE), DFALSE, utf, ucp) 61079 goto __8 61080 61081 __127: 61082 __128: 61083 __129: 61084 tcode = set_table_bit(tls, re, tcode+uintptr(1)+uintptr(DIMM2_SIZE), DTRUE, utf, ucp) 61085 goto __8 61086 61087 // At least one single char sets the bit and stops 61088 61089 __130: 61090 tcode += TPCRE2_SPTR8(DIMM2_SIZE) 61091 // Fall through 61092 __131: 61093 __132: 61094 __133: 61095 __134: 61096 set_table_bit(tls, re, tcode+uintptr(1), DFALSE, utf, ucp) 61097 try_next = DFALSE 61098 goto __8 61099 61100 __135: 61101 tcode += TPCRE2_SPTR8(DIMM2_SIZE) 61102 // Fall through 61103 __136: 61104 __137: 61105 __138: 61106 __139: 61107 set_table_bit(tls, re, tcode+uintptr(1), DTRUE, utf, ucp) 61108 try_next = DFALSE 61109 goto __8 61110 61111 // Special spacing and line-terminating items. These recognize specific 61112 // lists of characters. The difference between VSPACE and ANYNL is that the 61113 // latter can match the two-character CRLF sequence, but that is not 61114 // relevant for finding the first character, so their code here is 61115 // identical. 61116 61117 __140: 61118 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\011' & 7)) 61119 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 4)) |= uint8(uint32(1) << ('\040' & 7)) 61120 61121 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61122 // the bits for 0xA0 and for code units >= 255, independently of UTF. 61123 61124 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61125 // units of horizontal space characters. 61126 61127 if !(utf != 0) { 61128 goto __188 61129 } 61130 61131 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+00A0 61132 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE1 & 7)) // For U+1680, U+180E 61133 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2000 - U+200A, U+202F, U+205F 61134 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE3 & 7)) // For U+3000 61135 goto __189 61136 __188: 61137 /* For the 8-bit library not in UTF-8 mode, set the bit for 0xA0, unless 61138 the code is EBCDIC. */ 61139 61140 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 20)) |= uint8(uint32(1) << (0xA0 & 7)) 61141 __189: 61142 ; 61143 61144 try_next = DFALSE 61145 goto __8 61146 61147 __141: 61148 __142: 61149 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\012' & 7)) 61150 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\013' & 7)) 61151 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\014' & 7)) 61152 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\015' & 7)) 61153 61154 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61155 // the bits for NEL and for code units >= 255, independently of UTF. 61156 61157 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61158 // units of vertical space characters. 61159 61160 if !(utf != 0) { 61161 goto __190 61162 } 61163 61164 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+0085 (NEL) 61165 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2028, U+2029 61166 goto __191 61167 __190: 61168 /* For the 8-bit library not in UTF-8 mode, set the bit for NEL. */ 61169 61170 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 16)) |= uint8(uint32(1) << (int32(uint8('\x85')) & 7)) 61171 __191: 61172 ; 61173 61174 try_next = DFALSE 61175 goto __8 61176 61177 // Single character types set the bits and stop. Note that if PCRE2_UCP 61178 // is set, we do not see these opcodes because \d etc are converted to 61179 // properties. Therefore, these apply in the case when only characters less 61180 // than 256 are recognized to match the types. 61181 61182 __143: 61183 set_nottype_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61184 try_next = DFALSE 61185 goto __8 61186 61187 __144: 61188 set_type_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61189 try_next = DFALSE 61190 goto __8 61191 61192 __145: 61193 set_nottype_bits(tls, re, Dcbit_space, uint32(table_limit)) 61194 try_next = DFALSE 61195 goto __8 61196 61197 __146: 61198 set_type_bits(tls, re, Dcbit_space, uint32(table_limit)) 61199 try_next = DFALSE 61200 goto __8 61201 61202 __147: 61203 set_nottype_bits(tls, re, Dcbit_word, uint32(table_limit)) 61204 try_next = DFALSE 61205 goto __8 61206 61207 __148: 61208 set_type_bits(tls, re, Dcbit_word, uint32(table_limit)) 61209 try_next = DFALSE 61210 goto __8 61211 61212 // One or more character type fudges the pointer and restarts, knowing 61213 // it will hit a single character type and stop there. 61214 61215 __149: 61216 __150: 61217 __151: 61218 tcode++ 61219 goto __8 61220 61221 __152: 61222 tcode += TPCRE2_SPTR8(1 + DIMM2_SIZE) 61223 goto __8 61224 61225 // Zero or more repeats of character types set the bits and then 61226 // try again. 61227 61228 __153: 61229 __154: 61230 __155: 61231 tcode += TPCRE2_SPTR8(DIMM2_SIZE) // Fall through 61232 61233 __156: 61234 __157: 61235 __158: 61236 __159: 61237 __160: 61238 __161: 61239 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1))) { 61240 default: 61241 goto __193 61242 case OP_ANY: 61243 goto __194 61244 case OP_ALLANY: 61245 goto __195 61246 61247 case OP_HSPACE: 61248 goto __196 61249 61250 case OP_ANYNL: 61251 goto __197 61252 case OP_VSPACE: 61253 goto __198 61254 61255 case OP_NOT_DIGIT: 61256 goto __199 61257 61258 case OP_DIGIT: 61259 goto __200 61260 61261 case OP_NOT_WHITESPACE: 61262 goto __201 61263 61264 case OP_WHITESPACE: 61265 goto __202 61266 61267 case OP_NOT_WORDCHAR: 61268 goto __203 61269 61270 case OP_WORDCHAR: 61271 goto __204 61272 } 61273 goto __192 61274 61275 __193: 61276 __194: 61277 __195: 61278 return SSB_FAIL 61279 61280 __196: 61281 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\011' & 7)) 61282 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 4)) |= uint8(uint32(1) << ('\040' & 7)) 61283 61284 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61285 // the bits for 0xA0 and for code units >= 255, independently of UTF. 61286 61287 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61288 // units of horizontal space characters. 61289 61290 if !(utf != 0) { 61291 goto __205 61292 } 61293 61294 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+00A0 61295 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE1 & 7)) // For U+1680, U+180E 61296 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2000 - U+200A, U+202F, U+205F 61297 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE3 & 7)) // For U+3000 61298 goto __206 61299 __205: 61300 /* For the 8-bit library not in UTF-8 mode, set the bit for 0xA0, unless 61301 the code is EBCDIC. */ 61302 61303 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 20)) |= uint8(uint32(1) << (0xA0 & 7)) 61304 __206: 61305 ; 61306 goto __192 61307 61308 __197: 61309 __198: 61310 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\012' & 7)) 61311 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\013' & 7)) 61312 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\014' & 7)) 61313 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\015' & 7)) 61314 61315 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61316 // the bits for NEL and for code units >= 255, independently of UTF. 61317 61318 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61319 // units of vertical space characters. 61320 61321 if !(utf != 0) { 61322 goto __207 61323 } 61324 61325 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+0085 (NEL) 61326 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2028, U+2029 61327 goto __208 61328 __207: 61329 /* For the 8-bit library not in UTF-8 mode, set the bit for NEL. */ 61330 61331 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 16)) |= uint8(uint32(1) << (int32(uint8('\x85')) & 7)) 61332 __208: 61333 ; 61334 goto __192 61335 61336 __199: 61337 set_nottype_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61338 goto __192 61339 61340 __200: 61341 set_type_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61342 goto __192 61343 61344 __201: 61345 set_nottype_bits(tls, re, Dcbit_space, uint32(table_limit)) 61346 goto __192 61347 61348 __202: 61349 set_type_bits(tls, re, Dcbit_space, uint32(table_limit)) 61350 goto __192 61351 61352 __203: 61353 set_nottype_bits(tls, re, Dcbit_word, uint32(table_limit)) 61354 goto __192 61355 61356 __204: 61357 set_type_bits(tls, re, Dcbit_word, uint32(table_limit)) 61358 goto __192 61359 __192: 61360 ; 61361 61362 tcode += uintptr(2) 61363 goto __8 61364 61365 // Extended class: if there are any property checks, or if this is a 61366 // negative XCLASS without a map, give up. If there are no property checks, 61367 // there must be wide characters on the XCLASS list, because otherwise an 61368 // XCLASS would not have been created. This means that code points >= 255 61369 // are potential starters. In the UTF-8 case we can scan them and set bits 61370 // for the relevant leading bytes. 61371 61372 __162: 61373 xclassflags = *(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 3)) 61374 if !(int32(xclassflags)&DXCL_HASPROP != 0 || int32(xclassflags)&(DXCL_MAP|DXCL_NOT) == DXCL_NOT) { 61375 goto __209 61376 } 61377 return SSB_FAIL 61378 __209: 61379 ; 61380 61381 // We have a positive XCLASS or a negative one without a map. Set up the 61382 // map pointer if there is one, and fall through. 61383 61384 if int32(xclassflags)&DXCL_MAP == 0 { 61385 classmap = uintptr(0) 61386 } else { 61387 classmap = tcode + uintptr(1) + uintptr(DLINK_SIZE) + uintptr(1) 61388 } 61389 61390 // In UTF-8 mode, scan the character list and set bits for leading bytes, 61391 // then jump to handle the map. 61392 61393 if !(utf != 0 && int32(xclassflags)&DXCL_NOT == 0) { 61394 goto __210 61395 } 61396 61397 p1 = tcode + uintptr(1) + uintptr(DLINK_SIZE) + uintptr(1) + uintptr(func() int32 { 61398 if classmap == uintptr(0) { 61399 return 0 61400 } 61401 return 32 61402 }()) 61403 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61404 61405 __211: 61406 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1)))) { 61407 case DXCL_SINGLE: 61408 goto __215 61409 61410 case DXCL_RANGE: 61411 goto __216 61412 61413 case DXCL_END: 61414 goto __217 61415 61416 default: 61417 goto __218 61418 } 61419 goto __214 61420 61421 __215: 61422 b = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))) 61423 __219: 61424 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p1)))&0xc0 == 0x80) { 61425 goto __220 61426 } 61427 p1++ 61428 goto __219 61429 __220: 61430 ; 61431 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(int32(b)/8))) |= Tuint8_t(uint32(1) << (int32(b) & 7)) 61432 goto __214 61433 61434 __216: 61435 b = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))) 61436 __221: 61437 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p1)))&0xc0 == 0x80) { 61438 goto __222 61439 } 61440 p1++ 61441 goto __221 61442 __222: 61443 ; 61444 e = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))) 61445 __223: 61446 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p1)))&0xc0 == 0x80) { 61447 goto __224 61448 } 61449 p1++ 61450 goto __223 61451 __224: 61452 ; 61453 __225: 61454 if !(int32(b) <= int32(e)) { 61455 goto __227 61456 } 61457 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(int32(b)/8))) |= Tuint8_t(uint32(1) << (int32(b) & 7)) 61458 goto __226 61459 __226: 61460 b++ 61461 goto __225 61462 goto __227 61463 __227: 61464 ; 61465 goto __214 61466 61467 __217: 61468 goto HANDLE_CLASSMAP 61469 61470 __218: 61471 return SSB_UNKNOWN // Internal error, should not occur 61472 __214: 61473 ; 61474 goto __212 61475 __212: 61476 goto __211 61477 goto __213 61478 __213: 61479 ; 61480 __210: 61481 ; 61482 61483 // It seems that the fall through comment must be outside the #ifdef if 61484 // it is to avoid the gcc compiler warning. 61485 61486 // Fall through 61487 61488 // Enter here for a negative non-XCLASS. In the 8-bit library, if we are 61489 // in UTF mode, any byte with a value >= 0xc4 is a potentially valid starter 61490 // because it starts a character with a value > 255. In 8-bit non-UTF mode, 61491 // there is no difference between CLASS and NCLASS. In all other wide 61492 // character modes, set the 0xFF bit to indicate code units >= 255. 61493 61494 __163: 61495 if !(utf != 0) { 61496 goto __228 61497 } 61498 61499 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 24)) |= Tuint8_t(0xf0) // Bits for 0xc4 - 0xc8 61500 libc.Xmemset(tls, re+40+uintptr(25), 0xff, uint64(7)) // Bits for 0xc9 - 0xff 61501 __228: 61502 ; 61503 // Fall through 61504 61505 // Enter here for a positive non-XCLASS. If we have fallen through from 61506 // an XCLASS, classmap will already be set; just advance the code pointer. 61507 // Otherwise, set up classmap for a a non-XCLASS and advance past it. 61508 61509 __164: 61510 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_XCLASS) { 61511 goto __229 61512 } 61513 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61514 goto __230 61515 __229: 61516 61517 classmap = libc.PreIncUintptr(&tcode, 1) 61518 tcode += TPCRE2_SPTR8(uint64(32) / uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 61519 __230: 61520 ; 61521 61522 // When wide characters are supported, classmap may be NULL. In UTF-8 61523 // (sic) mode, the bits in a class bit map correspond to character values, 61524 // not to byte values. However, the bit map we are constructing is for byte 61525 // values. So we have to do a conversion for characters whose code point is 61526 // greater than 127. In fact, there are only two possible starting bytes for 61527 // characters in the range 128 - 255. 61528 61529 HANDLE_CLASSMAP: 61530 if !(classmap != uintptr(0)) { 61531 goto __231 61532 } 61533 61534 if !(utf != 0) { 61535 goto __232 61536 } 61537 61538 c = Tuint32_t(0) 61539 __234: 61540 if !(c < Tuint32_t(16)) { 61541 goto __236 61542 } 61543 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(classmap + uintptr(c))))) 61544 goto __235 61545 __235: 61546 c++ 61547 goto __234 61548 goto __236 61549 __236: 61550 ; 61551 c = Tuint32_t(128) 61552 __237: 61553 if !(c < Tuint32_t(256)) { 61554 goto __239 61555 } 61556 61557 if !(uint32(*(*Tuint8_t)(unsafe.Pointer(classmap + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0)) { 61558 goto __240 61559 } 61560 61561 d = int32(c>>6 | Tuint32_t(0xc0)) // Set bit for this starter 61562 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(d/8))) |= Tuint8_t(uint32(1) << (d & 7)) // and then skip on to the 61563 c = c&Tuint32_t(0xc0) + Tuint32_t(0x40) - Tuint32_t(1) // next relevant character. 61564 __240: 61565 ; 61566 goto __238 61567 __238: 61568 c++ 61569 goto __237 61570 goto __239 61571 __239: 61572 ; 61573 goto __233 61574 __232: 61575 /* In all modes except UTF-8, the two bit maps are compatible. */ 61576 61577 c = Tuint32_t(0) 61578 __241: 61579 if !(c < Tuint32_t(32)) { 61580 goto __243 61581 } 61582 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(classmap + uintptr(c))))) 61583 goto __242 61584 __242: 61585 c++ 61586 goto __241 61587 goto __243 61588 __243: 61589 ; 61590 __233: 61591 ; 61592 __231: 61593 ; 61594 61595 // Act on what follows the class. For a zero minimum repeat, continue; 61596 // otherwise stop processing. 61597 61598 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) { 61599 case OP_CRSTAR: 61600 goto __245 61601 case OP_CRMINSTAR: 61602 goto __246 61603 case OP_CRQUERY: 61604 goto __247 61605 case OP_CRMINQUERY: 61606 goto __248 61607 case OP_CRPOSSTAR: 61608 goto __249 61609 case OP_CRPOSQUERY: 61610 goto __250 61611 61612 case OP_CRRANGE: 61613 goto __251 61614 case OP_CRMINRANGE: 61615 goto __252 61616 case OP_CRPOSRANGE: 61617 goto __253 61618 61619 default: 61620 goto __254 61621 } 61622 goto __244 61623 61624 __245: 61625 __246: 61626 __247: 61627 __248: 61628 __249: 61629 __250: 61630 tcode++ 61631 goto __244 61632 61633 __251: 61634 __252: 61635 __253: 61636 if !(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2)))) == uint32(0)) { 61637 goto __255 61638 } 61639 tcode += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 61640 goto __256 61641 __255: 61642 try_next = DFALSE 61643 __256: 61644 ; 61645 goto __244 61646 61647 __254: 61648 try_next = DFALSE 61649 goto __244 61650 __244: 61651 ; 61652 goto __8 // End of class handling case 61653 __8: 61654 ; // End of switch for opcodes 61655 goto __6 61656 __7: 61657 ; // End of try_next loop 61658 61659 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) // Advance to next branch 61660 goto __3 61661 __3: 61662 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 61663 goto __2 61664 } 61665 goto __4 61666 __4: 61667 ; 61668 61669 return yield 61670 } 61671 61672 // ************************************************ 61673 // 61674 // Study a compiled expression * 61675 // 61676 61677 // This function is handed a compiled expression that it must study to produce 61678 // information that will speed up the matching. 61679 // 61680 // Argument: 61681 // re points to the compiled expression 61682 // 61683 // Returns: 0 normally; non-zero should never normally occur 61684 // 1 unknown opcode in set_start_bits 61685 // 2 missing capturing bracket 61686 // 3 unknown opcode in find_minlength 61687 61688 func X_pcre2_study_8(tls *libc.TLS, re uintptr) int32 { /* pcre2_study.c:1672:1: */ 61689 bp := tls.Alloc(524) 61690 defer tls.Free(524) 61691 61692 // var count int32 at bp+520, 4 61693 61694 var code uintptr 61695 var utf TBOOL 61696 var ucp TBOOL 61697 var d int32 61698 var c int32 61699 var y Tuint8_t 61700 var x Tuint8_t 61701 var i int32 61702 var a int32 61703 var b int32 61704 var p uintptr 61705 var flags Tuint32_t 61706 // var depth int32 at bp, 4 61707 61708 var rc int32 61709 var min int32 61710 // var backref_cache [129]int32 at bp+4, 516 61711 *(*int32)(unsafe.Pointer(bp + 520 /* count */)) = 0 61712 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 61713 ucp = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) 61714 61715 // Find start of compiled code 61716 61717 code = re + uintptr(uint64(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)) 61718 61719 // For a pattern that has a first code unit, or a multiline pattern that 61720 // matches only at "line start", there is no point in seeking a list of starting 61721 // code units. 61722 61723 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET|DPCRE2_STARTLINE) == Tuint32_t(0)) { 61724 goto __1 61725 } 61726 *(*int32)(unsafe.Pointer(bp /* depth */)) = 0 61727 rc = set_start_bits(tls, re, code, utf, ucp, bp) 61728 if !(rc == SSB_UNKNOWN) { 61729 goto __2 61730 } 61731 return 1 61732 __2: 61733 ; 61734 61735 // If a list of starting code units was set up, scan the list to see if only 61736 // one or two were listed. Having only one listed is rare because usually a 61737 // single starting code unit will have been recognized and PCRE2_FIRSTSET set. 61738 // If two are listed, see if they are caseless versions of the same character; 61739 // if so we can replace the list with a caseless first code unit. This gives 61740 // better performance and is plausibly worth doing for patterns such as [Ww]ord 61741 // or (word|WORD). 61742 61743 if !(rc == SSB_DONE) { 61744 goto __3 61745 } 61746 a = -1 61747 b = -1 61748 p = re + 40 /* &.start_bitmap */ 61749 flags = Tuint32_t(DPCRE2_FIRSTMAPSET) 61750 61751 i = 0 61752 __4: 61753 if !(i < 256) { 61754 goto __6 61755 } 61756 61757 x = *(*Tuint8_t)(unsafe.Pointer(p)) 61758 if !(int32(x) != 0) { 61759 goto __7 61760 } 61761 61762 y = Tuint8_t(int32(x) & (^int32(x) + 1)) // Least significant bit 61763 if !(int32(y) != int32(x)) { 61764 goto __8 61765 } 61766 goto DONE 61767 __8: 61768 ; // More than one bit set 61769 61770 // In the 16-bit and 32-bit libraries, the bit for 0xff means "0xff and 61771 // all wide characters", so we cannot use it here. 61772 61773 // Compute the character value 61774 61775 c = i 61776 switch int32(x) { 61777 case 1: 61778 goto __10 61779 case 2: 61780 goto __11 61781 case 4: 61782 goto __12 61783 case 8: 61784 goto __13 61785 case 16: 61786 goto __14 61787 case 32: 61788 goto __15 61789 case 64: 61790 goto __16 61791 case 128: 61792 goto __17 61793 } 61794 goto __9 61795 61796 __10: 61797 goto __9 61798 __11: 61799 c = c + 1 61800 goto __9 61801 __12: 61802 c = c + 2 61803 goto __9 61804 __13: 61805 c = c + 3 61806 goto __9 61807 __14: 61808 c = c + 4 61809 goto __9 61810 __15: 61811 c = c + 5 61812 goto __9 61813 __16: 61814 c = c + 6 61815 goto __9 61816 __17: 61817 c = c + 7 61818 goto __9 61819 __9: 61820 ; 61821 61822 // c contains the code unit value, in the range 0-255. In 8-bit UTF 61823 // mode, only values < 128 can be used. In all the other cases, c is a 61824 // character value. 61825 61826 if !(utf != 0 && c > 127) { 61827 goto __18 61828 } 61829 goto DONE 61830 __18: 61831 ; 61832 if !(a < 0) { 61833 goto __19 61834 } 61835 a = c 61836 goto __20 61837 __19: 61838 if !(b < 0) { 61839 goto __21 61840 } /* Second one found */ 61841 61842 d = int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dfcc_offset) + uintptr(uint32(c))))) 61843 61844 if !(utf != 0 || ucp != 0) { 61845 goto __23 61846 } 61847 61848 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) { 61849 goto __24 61850 } 61851 goto DONE 61852 __24: 61853 ; // Multiple case set 61854 if !(c > 127) { 61855 goto __25 61856 } 61857 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)) 61858 __25: 61859 ; 61860 __23: 61861 ; 61862 61863 if !(d != a) { 61864 goto __26 61865 } 61866 goto DONE 61867 __26: 61868 ; // Not the other case of a 61869 b = c // Save second in b 61870 goto __22 61871 __21: 61872 goto DONE 61873 __22: 61874 ; 61875 __20: 61876 ; // More than two characters found 61877 __7: 61878 ; 61879 goto __5 61880 __5: 61881 p++ 61882 i = i + 8 61883 goto __4 61884 goto __6 61885 __6: 61886 ; 61887 61888 // Replace the start code unit bits with a first code unit, but only if it 61889 // is not the same as a required later code unit. This is because a search for 61890 // a required code unit starts after an explicit first code unit, but at a 61891 // code unit found from the bitmap. Patterns such as /a*a/ don't work 61892 // if both the start unit and required unit are the same. 61893 61894 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)))) { 61895 goto __27 61896 } 61897 61898 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit = Tuint32_t(a) 61899 flags = Tuint32_t(DPCRE2_FIRSTSET) 61900 if !(b >= 0) { 61901 goto __28 61902 } 61903 flags = flags | Tuint32_t(DPCRE2_FIRSTCASELESS) 61904 __28: 61905 ; 61906 __27: 61907 ; 61908 61909 DONE: 61910 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= flags 61911 __3: 61912 ; 61913 __1: 61914 ; 61915 61916 // Find the minimum length of subject string. If the pattern can match an empty 61917 // string, the minimum length is already known. If the pattern contains (*ACCEPT) 61918 // all bets are off, and we don't even try to find a minimum length. If there are 61919 // more back references than the size of the vector we are going to cache them in, 61920 // do nothing. A pattern that complicated will probably take a long time to 61921 // analyze and may in any case turn out to be too complicated. Note that back 61922 // reference minima are held as 16-bit numbers. 61923 61924 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) { 61925 goto __29 61926 } 61927 61928 *(*int32)(unsafe.Pointer(bp + 4)) = 0 // Highest one that is set 61929 min = find_minlength(tls, re, code, code, utf, uintptr(0), bp+520, bp+4) 61930 switch min { 61931 case -1: 61932 goto __31 // Leave minlength unchanged (will be zero) 61933 61934 case -2: 61935 goto __32 // missing capturing bracket 61936 61937 case -3: 61938 goto __33 // unrecognized opcode 61939 61940 default: 61941 goto __34 61942 } 61943 goto __30 61944 61945 __31: // \C in UTF mode or over-complex regex 61946 goto __30 // Leave minlength unchanged (will be zero) 61947 61948 __32: 61949 return 2 // missing capturing bracket 61950 61951 __33: 61952 return 3 // unrecognized opcode 61953 61954 __34: 61955 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength = func() uint16 { 61956 if min > 65535 { 61957 return uint16(65535) 61958 } 61959 return uint16(min) 61960 }() 61961 goto __30 61962 __30: 61963 ; 61964 __29: 61965 ; 61966 61967 return 0 61968 } 61969 61970 // End of pcre2_study.c 61971 61972 // This function is needed only when memmove() is not available. 61973 61974 // End of pcre2_internal.h 61975 61976 // ************************************************ 61977 // 61978 // Find end of substitute text * 61979 // 61980 61981 // In extended mode, we recognize ${name:+set text:unset text} and similar 61982 // constructions. This requires the identification of unescaped : and } 61983 // characters. This function scans for such. It must deal with nested ${ 61984 // constructions. The pointer to the text is updated, either to the required end 61985 // character, or to where an error was detected. 61986 // 61987 // Arguments: 61988 // code points to the compiled expression (for options) 61989 // ptrptr points to the pointer to the start of the text (updated) 61990 // ptrend end of the whole string 61991 // last TRUE if the last expected string (only } recognized) 61992 // 61993 // Returns: 0 on success 61994 // negative error code on failure 61995 61996 func find_text_end(tls *libc.TLS, code uintptr, ptrptr uintptr, ptrend TPCRE2_SPTR8, last TBOOL) int32 { /* pcre2_substitute.c:79:1: */ 61997 bp := tls.Alloc(16) 61998 defer tls.Free(16) 61999 62000 var rc int32 62001 var nestlevel Tuint32_t 62002 var literal TBOOL 62003 // var ptr TPCRE2_SPTR8 at bp, 8 62004 62005 var erc int32 62006 // var errorcode int32 at bp+12, 4 62007 62008 // var ch Tuint32_t at bp+8, 4 62009 rc = 0 62010 nestlevel = Tuint32_t(0) 62011 literal = DFALSE 62012 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 62013 62014 __1: 62015 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend) { 62016 goto __3 62017 } 62018 62019 if !(literal != 0) { 62020 goto __4 62021 } 62022 62023 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') { 62024 goto __6 62025 } 62026 62027 literal = DFALSE 62028 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) 62029 __6: 62030 ; 62031 goto __5 62032 __4: 62033 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\175') { 62034 goto __7 62035 } 62036 62037 if !(nestlevel == Tuint32_t(0)) { 62038 goto __9 62039 } 62040 goto EXIT 62041 __9: 62042 ; 62043 nestlevel-- 62044 goto __8 62045 __7: 62046 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\072' && !(last != 0) && nestlevel == Tuint32_t(0)) { 62047 goto __10 62048 } 62049 goto EXIT 62050 goto __11 62051 __10: 62052 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\044') { 62053 goto __12 62054 } 62055 62056 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + 1))) == '\173') { 62057 goto __14 62058 } 62059 62060 nestlevel++ 62061 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) 62062 __14: 62063 ; 62064 goto __13 62065 __12: 62066 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\134') { 62067 goto __15 62068 } 62069 62070 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend-uintptr(1)) { 62071 goto __16 62072 } 62073 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) + 1))) { 62074 case '\114': 62075 goto __18 62076 case '\154': 62077 goto __19 62078 case '\125': 62079 goto __20 62080 case '\165': 62081 goto __21 62082 } 62083 goto __17 62084 62085 __18: 62086 __19: 62087 __20: 62088 __21: 62089 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) 62090 goto __2 62091 __17: 62092 ; 62093 __16: 62094 ; 62095 62096 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) // Must point after \ 62097 erc = X_pcre2_check_escape_8(tls, bp, ptrend, bp+8, bp+12, 62098 (*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fextra_options, DFALSE, uintptr(0)) 62099 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) -= uintptr(1) // Back to last code unit of escape 62100 if !(*(*int32)(unsafe.Pointer(bp + 12)) != 0) { 62101 goto __22 62102 } 62103 62104 rc = *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) 62105 goto EXIT 62106 __22: 62107 ; 62108 62109 switch erc { 62110 case 0: 62111 goto __24 // Data character 62112 case ESC_E: 62113 goto __25 62114 62115 case ESC_Q: 62116 goto __26 62117 62118 default: 62119 goto __27 62120 } 62121 goto __23 62122 62123 __24: // Data character 62124 __25: // Isolated \E is ignored 62125 goto __23 62126 62127 __26: 62128 literal = DTRUE 62129 goto __23 62130 62131 __27: 62132 rc = -57 62133 goto EXIT 62134 __23: 62135 ; 62136 __15: 62137 ; 62138 __13: 62139 ; 62140 __11: 62141 ; 62142 __8: 62143 ; 62144 __5: 62145 ; 62146 goto __2 62147 __2: 62148 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */))++ 62149 goto __1 62150 goto __3 62151 __3: 62152 ; 62153 62154 rc = -58 // Terminator not found 62155 62156 EXIT: 62157 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) 62158 return rc 62159 } 62160 62161 // ************************************************ 62162 // 62163 // Match and substitute * 62164 // 62165 62166 // This function applies a compiled re to a subject string and creates a new 62167 // string with substitutions. The first 7 arguments are the same as for 62168 // pcre2_match(). Either string length may be PCRE2_ZERO_TERMINATED. 62169 // 62170 // Arguments: 62171 // code points to the compiled expression 62172 // subject points to the subject string 62173 // length length of subject string (may contain binary zeros) 62174 // start_offset where to start in the subject string 62175 // options option bits 62176 // match_data points to a match_data block, or is NULL 62177 // context points a PCRE2 context 62178 // replacement points to the replacement string 62179 // rlength length of replacement string 62180 // buffer where to put the substituted string 62181 // blength points to length of buffer; updated to length of string 62182 // 62183 // Returns: >= 0 number of substitutions made 62184 // < 0 an error code 62185 // PCRE2_ERROR_BADREPLACEMENT means invalid use of $ 62186 62187 // This macro checks for space in the buffer before copying into it. On 62188 // overflow, either give an error immediately, or keep on, accumulating the 62189 // length. 62190 62191 // Here's the function 62192 62193 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: */ 62194 bp := tls.Alloc(328) 62195 defer tls.Free(328) 62196 62197 var rc int32 62198 var subs int32 62199 var forcecase int32 62200 var forcecasereset int32 62201 var ovector_count Tuint32_t 62202 var goptions Tuint32_t 62203 var suboptions Tuint32_t 62204 var internal_match_data uintptr 62205 var escaped_literal TBOOL 62206 var overflowed TBOOL 62207 var use_existing_match TBOOL 62208 var replacement_only TBOOL 62209 var utf TBOOL 62210 var ucp TBOOL 62211 // var temp [6]TPCRE2_UCHAR8 at bp+312, 6 62212 62213 // var ptr TPCRE2_SPTR8 at bp+280, 8 62214 62215 var repend TPCRE2_SPTR8 62216 var extra_needed Tsize_t 62217 var buff_offset Tsize_t 62218 var buff_length Tsize_t 62219 var lengthleft Tsize_t 62220 var fraglength Tsize_t 62221 var ovector uintptr 62222 // var ovecsave [3]Tsize_t at bp, 24 62223 62224 // var scb Tpcre2_substitute_callout_block_8 at bp+24, 56 62225 62226 var gcontext uintptr 62227 var gcontext1 uintptr 62228 var pairs int32 62229 var save_start Tsize_t 62230 var ctypes uintptr 62231 var mark_start TPCRE2_SPTR8 62232 var mark TPCRE2_SPTR8 62233 var ng Tuint32_t 62234 // var first TPCRE2_SPTR8 at bp+288, 8 62235 62236 // var last TPCRE2_SPTR8 at bp+296, 8 62237 62238 var entry TPCRE2_SPTR8 62239 var type1 Tuint32_t 62240 var subptr TPCRE2_SPTR8 62241 var subptrend TPCRE2_SPTR8 62242 var group int32 62243 var n int32 62244 var special Tuint32_t 62245 var inparens TBOOL 62246 var star TBOOL 62247 // var sublength Tsize_t at bp+304, 8 62248 62249 var text1_start TPCRE2_SPTR8 62250 var text1_end TPCRE2_SPTR8 62251 var text2_start TPCRE2_SPTR8 62252 var text2_end TPCRE2_SPTR8 62253 var next TPCRE2_UCHAR8 62254 // var name [33]TPCRE2_UCHAR8 at bp+240, 33 62255 62256 // var errorcode int32 at bp+324, 4 62257 62258 var type2 Tuint32_t 62259 // var ch Tuint32_t at bp+320, 4 62260 62261 var chlen uint32 62262 var newlength Tsize_t 62263 var oldlength Tsize_t 62264 // var ptrstack [20]TPCRE2_SPTR8 at bp+80, 160 62265 62266 var ptrstackptr Tuint32_t 62267 forcecase = 0 62268 forcecasereset = 0 62269 goptions = Tuint32_t(0) 62270 internal_match_data = uintptr(0) 62271 escaped_literal = DFALSE 62272 overflowed = DFALSE 62273 utf = libc.Bool32((*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 62274 ucp = libc.Bool32((*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) 62275 extra_needed = uint64(0) 62276 62277 // General initialization 62278 62279 buff_offset = uint64(0) 62280 lengthleft = libc.AssignUint64(&buff_length, *(*Tsize_t)(unsafe.Pointer(blength))) 62281 *(*Tsize_t)(unsafe.Pointer(blength)) = libc.CplUint64(uint64(0)) 62282 *(*Tsize_t)(unsafe.Pointer(bp)) = libc.AssignPtrUint64(bp+1*8, libc.AssignPtrUint64(bp+2*8, libc.CplUint64(uint64(0)))) 62283 62284 // Partial matching is not valid. This must come after setting *blength to 62285 // PCRE2_UNSET, so as not to imply an offset in the replacement. 62286 62287 if !(options&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) != Tuint32_t(0)) { 62288 goto __1 62289 } 62290 return -34 62291 __1: 62292 ; 62293 62294 // Validate length and find the end of the replacement. A NULL replacement of 62295 // zero length is interpreted as an empty string. 62296 62297 if !(replacement == uintptr(0)) { 62298 goto __2 62299 } 62300 62301 if !(rlength != uint64(0)) { 62302 goto __3 62303 } 62304 return -51 62305 __3: 62306 ; 62307 replacement = ts + 797 /* "" */ 62308 __2: 62309 ; 62310 62311 if !(rlength == libc.CplUint64(uint64(0))) { 62312 goto __4 62313 } 62314 rlength = X_pcre2_strlen_8(tls, replacement) 62315 __4: 62316 ; 62317 repend = replacement + uintptr(rlength) 62318 62319 // Check for using a match that has already happened. Note that the subject 62320 // pointer in the match data may be NULL after a no-match. 62321 62322 use_existing_match = libc.Bool32(options&DPCRE2_SUBSTITUTE_MATCHED != Tuint32_t(0)) 62323 replacement_only = libc.Bool32(options&DPCRE2_SUBSTITUTE_REPLACEMENT_ONLY != Tuint32_t(0)) 62324 62325 // If starting from an existing match, there must be an externally provided 62326 // match data block. We create an internal match_data block in two cases: (a) an 62327 // external one is not supplied (and we are not starting from an existing match); 62328 // (b) an existing match is to be used for the first substitution. In the latter 62329 // case, we copy the existing match into the internal block. This ensures that no 62330 // changes are made to the existing match data block. 62331 62332 if !(match_data == uintptr(0)) { 62333 goto __5 62334 } 62335 62336 if !(use_existing_match != 0) { 62337 goto __7 62338 } 62339 return -51 62340 __7: 62341 ; 62342 if mcontext == uintptr(0) { 62343 gcontext = code 62344 } else { 62345 gcontext = mcontext 62346 } 62347 match_data = libc.AssignUintptr(&internal_match_data, Xpcre2_match_data_create_from_pattern_8(tls, code, gcontext)) 62348 if !(internal_match_data == uintptr(0)) { 62349 goto __8 62350 } 62351 return -48 62352 __8: 62353 ; 62354 goto __6 62355 __5: 62356 if !(use_existing_match != 0) { 62357 goto __9 62358 } 62359 62360 if mcontext == uintptr(0) { 62361 gcontext1 = code 62362 } else { 62363 gcontext1 = mcontext 62364 } 62365 if int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket)+1 < int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 62366 pairs = int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket) + 1 62367 } else { 62368 pairs = int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) 62369 } 62370 internal_match_data = Xpcre2_match_data_create_8(tls, uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount), 62371 gcontext1) 62372 if !(internal_match_data == uintptr(0)) { 62373 goto __10 62374 } 62375 return -48 62376 __10: 62377 ; 62378 libc.Xmemcpy(tls, internal_match_data, match_data, uint64(uintptr(0)+80)+ 62379 uint64(2*pairs)*uint64(unsafe.Sizeof(Tsize_t(0)))) 62380 match_data = internal_match_data 62381 __9: 62382 ; 62383 __6: 62384 ; 62385 62386 // Remember ovector details 62387 62388 ovector = Xpcre2_get_ovector_pointer_8(tls, match_data) 62389 ovector_count = Xpcre2_get_ovector_count_8(tls, match_data) 62390 62391 // Fixed things in the callout block 62392 62393 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Fversion = Tuint32_t(0) 62394 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Finput = subject 62395 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Foutput = buffer 62396 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Fovector = ovector 62397 62398 // A NULL subject of zero length is treated as an empty string. 62399 62400 if !(subject == uintptr(0)) { 62401 goto __11 62402 } 62403 62404 if !(length != uint64(0)) { 62405 goto __12 62406 } 62407 return -51 62408 __12: 62409 ; 62410 subject = ts + 797 /* "" */ 62411 __11: 62412 ; 62413 62414 // Find length of zero-terminated subject 62415 62416 if !(length == libc.CplUint64(uint64(0))) { 62417 goto __13 62418 } 62419 if subject != 0 { 62420 length = X_pcre2_strlen_8(tls, subject) 62421 } else { 62422 length = uint64(0) 62423 } 62424 __13: 62425 ; 62426 62427 // Check UTF replacement string if necessary. 62428 62429 if !(utf != 0 && options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0)) { 62430 goto __14 62431 } 62432 62433 rc = X_pcre2_valid_utf_8(tls, replacement, rlength, match_data+64) 62434 if !(rc != 0) { 62435 goto __15 62436 } 62437 62438 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = uint64(0) 62439 goto EXIT 62440 __15: 62441 ; 62442 __14: 62443 ; 62444 62445 // Save the substitute options and remove them from the match options. 62446 62447 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) 62448 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) 62449 62450 // Error if the start match offset is greater than the length of the subject. 62451 62452 if !(start_offset > length) { 62453 goto __16 62454 } 62455 62456 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = uint64(0) 62457 rc = -33 62458 goto EXIT 62459 __16: 62460 ; 62461 62462 // Copy up to the start offset, unless only the replacement is required. 62463 62464 if !!(replacement_only != 0) { 62465 goto __17 62466 } 62467 if !(!(overflowed != 0) && lengthleft < start_offset) { 62468 goto __18 62469 } 62470 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62471 goto __20 62472 } 62473 goto NOROOM 62474 __20: 62475 ; 62476 overflowed = DTRUE 62477 extra_needed = start_offset - lengthleft 62478 goto __19 62479 __18: 62480 if !(overflowed != 0) { 62481 goto __21 62482 } 62483 extra_needed = extra_needed + start_offset 62484 goto __22 62485 __21: 62486 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject, start_offset*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 62487 buff_offset = buff_offset + start_offset 62488 lengthleft = lengthleft - start_offset 62489 __22: 62490 ; 62491 __19: 62492 ; 62493 __17: 62494 ; 62495 62496 // Loop for global substituting. If PCRE2_SUBSTITUTE_MATCHED is set, the first 62497 // match is taken from the match_data that was passed in. 62498 62499 subs = 0 62500 __23: 62501 ptrstackptr = Tuint32_t(0) 62502 62503 if !(use_existing_match != 0) { 62504 goto __26 62505 } 62506 62507 rc = (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 62508 use_existing_match = DFALSE 62509 goto __27 62510 __26: 62511 rc = Xpcre2_match_8(tls, code, subject, length, start_offset, options|goptions, 62512 match_data, mcontext) 62513 __27: 62514 ; 62515 62516 if !(utf != 0) { 62517 goto __28 62518 } 62519 options = options | DPCRE2_NO_UTF_CHECK 62520 __28: 62521 ; // Only need to check once 62522 62523 // Any error other than no match returns the error code. No match when not 62524 // doing the special after-empty-match global rematch, or when at the end of the 62525 // subject, breaks the global loop. Otherwise, advance the starting point by one 62526 // character, copying it to the output, and try again. 62527 62528 if !(rc < 0) { 62529 goto __29 62530 } 62531 62532 if !(rc != -1) { 62533 goto __30 62534 } 62535 goto EXIT 62536 __30: 62537 ; 62538 if !(goptions == Tuint32_t(0) || start_offset >= length) { 62539 goto __31 62540 } 62541 goto __25 62542 __31: 62543 ; 62544 62545 // Advance by one code point. Then, if CRLF is a valid newline sequence and 62546 // we have advanced into the middle of it, advance one more code point. In 62547 // other words, do not start in the middle of CRLF, even if CR and LF on their 62548 // own are valid newlines. 62549 62550 save_start = libc.PostIncUint64(&start_offset, 1) 62551 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subject + uintptr(start_offset-uint64(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') { 62552 goto __32 62553 } 62554 start_offset++ 62555 goto __33 62556 __32: 62557 if !((*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) { 62558 goto __34 62559 } 62560 62561 __35: 62562 if !(start_offset < length && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subject + uintptr(start_offset))))&0xc0 == 0x80) { 62563 goto __36 62564 } 62565 start_offset++ 62566 goto __35 62567 __36: 62568 ; 62569 __34: 62570 ; 62571 __33: 62572 ; 62573 62574 // Copy what we have advanced past (unless not required), reset the special 62575 // global options, and continue to the next match. 62576 62577 fraglength = start_offset - save_start 62578 if !!(replacement_only != 0) { 62579 goto __37 62580 } 62581 if !(!(overflowed != 0) && lengthleft < fraglength) { 62582 goto __38 62583 } 62584 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62585 goto __40 62586 } 62587 goto NOROOM 62588 __40: 62589 ; 62590 overflowed = DTRUE 62591 extra_needed = fraglength - lengthleft 62592 goto __39 62593 __38: 62594 if !(overflowed != 0) { 62595 goto __41 62596 } 62597 extra_needed = extra_needed + fraglength 62598 goto __42 62599 __41: 62600 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(save_start), fraglength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 62601 buff_offset = buff_offset + fraglength 62602 lengthleft = lengthleft - fraglength 62603 __42: 62604 ; 62605 __39: 62606 ; 62607 __37: 62608 ; 62609 62610 goptions = Tuint32_t(0) 62611 goto __24 62612 __29: 62613 ; 62614 62615 // Handle a successful match. Matches that use \K to end before they start 62616 // or start before the current point in the subject are not supported. 62617 62618 if !(*(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) < *(*Tsize_t)(unsafe.Pointer(ovector)) || *(*Tsize_t)(unsafe.Pointer(ovector)) < start_offset) { 62619 goto __43 62620 } 62621 62622 rc = -60 62623 goto EXIT 62624 __43: 62625 ; 62626 62627 // Check for the same match as previous. This is legitimate after matching an 62628 // empty string that starts after the initial match offset. We have tried again 62629 // at the match point in case the pattern is one like /(?<=\G.)/ which can never 62630 // match at its starting point, so running the match achieves the bumpalong. If 62631 // we do get the same (null) match at the original match point, it isn't such a 62632 // pattern, so we now do the empty string magic. In all other cases, a repeat 62633 // match should never occur. 62634 62635 if !(*(*Tsize_t)(unsafe.Pointer(bp)) == *(*Tsize_t)(unsafe.Pointer(ovector)) && *(*Tsize_t)(unsafe.Pointer(bp + 1*8)) == *(*Tsize_t)(unsafe.Pointer(ovector + 1*8))) { 62636 goto __44 62637 } 62638 62639 if !(*(*Tsize_t)(unsafe.Pointer(ovector)) == *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) && *(*Tsize_t)(unsafe.Pointer(bp + 2*8)) != start_offset) { 62640 goto __45 62641 } 62642 62643 goptions = DPCRE2_NOTEMPTY_ATSTART | DPCRE2_ANCHORED 62644 *(*Tsize_t)(unsafe.Pointer(bp + 2*8)) = start_offset 62645 goto __24 // Back to the top of the loop 62646 __45: 62647 ; 62648 rc = -65 62649 goto EXIT 62650 __44: 62651 ; 62652 62653 // Count substitutions with a paranoid check for integer overflow; surely no 62654 // real call to this function would ever hit this! 62655 62656 if !(subs == 0x7fffffff) { 62657 goto __46 62658 } 62659 62660 rc = -61 62661 goto EXIT 62662 __46: 62663 ; 62664 subs++ 62665 62666 // Copy the text leading up to the match (unless not required), and remember 62667 // where the insert begins and how many ovector pairs are set. 62668 62669 if !(rc == 0) { 62670 goto __47 62671 } 62672 rc = int32(ovector_count) 62673 __47: 62674 ; 62675 fraglength = *(*Tsize_t)(unsafe.Pointer(ovector)) - start_offset 62676 if !!(replacement_only != 0) { 62677 goto __48 62678 } 62679 if !(!(overflowed != 0) && lengthleft < fraglength) { 62680 goto __49 62681 } 62682 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62683 goto __51 62684 } 62685 goto NOROOM 62686 __51: 62687 ; 62688 overflowed = DTRUE 62689 extra_needed = fraglength - lengthleft 62690 goto __50 62691 __49: 62692 if !(overflowed != 0) { 62693 goto __52 62694 } 62695 extra_needed = extra_needed + fraglength 62696 goto __53 62697 __52: 62698 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(start_offset), fraglength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 62699 buff_offset = buff_offset + fraglength 62700 lengthleft = lengthleft - fraglength 62701 __53: 62702 ; 62703 __50: 62704 ; 62705 __48: 62706 ; 62707 62708 *(*Tsize_t)(unsafe.Pointer(bp + 24 + 24)) = buff_offset 62709 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Foveccount = Tuint32_t(rc) 62710 62711 // Process the replacement string. If the entire replacement is literal, just 62712 // copy it with length check. 62713 62714 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) = replacement 62715 if !(suboptions&DPCRE2_SUBSTITUTE_LITERAL != Tuint32_t(0)) { 62716 goto __54 62717 } 62718 62719 if !(!(overflowed != 0) && lengthleft < rlength) { 62720 goto __56 62721 } 62722 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62723 goto __58 62724 } 62725 goto NOROOM 62726 __58: 62727 ; 62728 overflowed = DTRUE 62729 extra_needed = rlength - lengthleft 62730 goto __57 62731 __56: 62732 if !(overflowed != 0) { 62733 goto __59 62734 } 62735 extra_needed = extra_needed + rlength 62736 goto __60 62737 __59: 62738 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)), rlength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 62739 buff_offset = buff_offset + rlength 62740 lengthleft = lengthleft - rlength 62741 __60: 62742 ; 62743 __57: 62744 ; 62745 62746 goto __55 62747 __54: 62748 __61: 62749 62750 // If at the end of a nested substring, pop the stack. 62751 62752 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) >= repend) { 62753 goto __64 62754 } 62755 62756 if !(ptrstackptr == Tuint32_t(0)) { 62757 goto __65 62758 } 62759 goto __63 62760 __65: 62761 ; // End of replacement string 62762 repend = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 80 + uintptr(libc.PreDecUint32(&ptrstackptr, 1))*8)) 62763 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 80 + uintptr(libc.PreDecUint32(&ptrstackptr, 1))*8)) 62764 goto __62 62765 __64: 62766 ; 62767 62768 // Handle the next character 62769 62770 if !(escaped_literal != 0) { 62771 goto __66 62772 } 62773 62774 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) == '\134' && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) < repend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 1))) == '\105') { 62775 goto __67 62776 } 62777 62778 escaped_literal = DFALSE 62779 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 62780 goto __62 62781 __67: 62782 ; 62783 goto LOADLITERAL 62784 __66: 62785 ; 62786 62787 // Not in literal mode. 62788 62789 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) == '\044') { 62790 goto __68 62791 } 62792 special = Tuint32_t(0) 62793 text1_start = uintptr(0) 62794 text1_end = uintptr(0) 62795 text2_start = uintptr(0) 62796 text2_end = uintptr(0) 62797 62798 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) >= repend) { 62799 goto __70 62800 } 62801 goto BAD 62802 __70: 62803 ; 62804 if !(int32(libc.AssignUint8(&next, *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)))))) == '\044') { 62805 goto __71 62806 } 62807 goto LOADLITERAL 62808 __71: 62809 ; 62810 62811 group = -1 62812 n = 0 62813 inparens = DFALSE 62814 star = DFALSE 62815 62816 if !(int32(next) == '\173') { 62817 goto __72 62818 } 62819 62820 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) >= repend) { 62821 goto __73 62822 } 62823 goto BAD 62824 __73: 62825 ; 62826 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)))) 62827 inparens = DTRUE 62828 __72: 62829 ; 62830 62831 if !(int32(next) == '\052') { 62832 goto __74 62833 } 62834 62835 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) >= repend) { 62836 goto __75 62837 } 62838 goto BAD 62839 __75: 62840 ; 62841 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)))) 62842 star = DTRUE 62843 __74: 62844 ; 62845 62846 if !(!(star != 0) && int32(next) >= '\060' && int32(next) <= '\071') { 62847 goto __76 62848 } 62849 62850 group = int32(next) - '\060' 62851 __78: 62852 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) < repend) { 62853 goto __79 62854 } 62855 62856 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)))) 62857 if !(int32(next) < '\060' || int32(next) > '\071') { 62858 goto __80 62859 } 62860 goto __79 62861 __80: 62862 ; 62863 group = group*10 + int32(next) - '\060' 62864 62865 // A check for a number greater than the hightest captured group 62866 // is sufficient here; no need for a separate overflow check. If unknown 62867 // groups are to be treated as unset, just skip over any remaining 62868 // digits and carry on. 62869 62870 if !(group > int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket)) { 62871 goto __81 62872 } 62873 62874 if !(suboptions&DPCRE2_SUBSTITUTE_UNKNOWN_UNSET != Tuint32_t(0)) { 62875 goto __82 62876 } 62877 62878 __84: 62879 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) < repend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) <= '\071') { 62880 goto __85 62881 } 62882 goto __84 62883 __85: 62884 ; 62885 goto __79 62886 goto __83 62887 __82: 62888 62889 rc = -49 62890 goto PTREXIT 62891 __83: 62892 ; 62893 __81: 62894 ; 62895 goto __78 62896 __79: 62897 ; 62898 goto __77 62899 __76: 62900 62901 ctypes = (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset+Dcbit_length) 62902 __86: 62903 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(next))))&Dctype_word != 0) { 62904 goto __87 62905 } 62906 62907 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 240 + uintptr(libc.PostIncInt32(&n, 1)))) = next 62908 if !(n > 32) { 62909 goto __88 62910 } 62911 goto BAD 62912 __88: 62913 ; 62914 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) >= repend) { 62915 goto __89 62916 } 62917 goto __87 62918 __89: 62919 ; 62920 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)))) 62921 goto __86 62922 __87: 62923 ; 62924 if !(n == 0) { 62925 goto __90 62926 } 62927 goto BAD 62928 __90: 62929 ; 62930 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 240 + uintptr(n))) = TPCRE2_UCHAR8(0) 62931 __77: 62932 ; 62933 62934 // In extended mode we recognize ${name:+set text:unset text} and 62935 // ${name:-default text}. 62936 62937 if !(inparens != 0) { 62938 goto __91 62939 } 62940 62941 if !(suboptions&DPCRE2_SUBSTITUTE_EXTENDED != Tuint32_t(0) && !(star != 0) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) < repend-uintptr(2) && int32(next) == '\072') { 62942 goto __92 62943 } 62944 62945 special = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1)))) 62946 if !(special != Tuint32_t('\053') && special != Tuint32_t('\055')) { 62947 goto __94 62948 } 62949 62950 rc = -59 62951 goto PTREXIT 62952 __94: 62953 ; 62954 62955 text1_start = libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)), 1) 62956 rc = find_text_end(tls, code, bp+280, repend, libc.Bool32(special == Tuint32_t('\055'))) 62957 if !(rc != 0) { 62958 goto __95 62959 } 62960 goto PTREXIT 62961 __95: 62962 ; 62963 text1_end = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) 62964 62965 if !(special == Tuint32_t('\053') && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) == '\072') { 62966 goto __96 62967 } 62968 62969 text2_start = libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)), 1) 62970 rc = find_text_end(tls, code, bp+280, repend, DTRUE) 62971 if !(rc != 0) { 62972 goto __97 62973 } 62974 goto PTREXIT 62975 __97: 62976 ; 62977 text2_end = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) 62978 __96: 62979 ; 62980 goto __93 62981 __92: 62982 62983 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) >= repend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) != '\175') { 62984 goto __98 62985 } 62986 62987 rc = -58 62988 goto PTREXIT 62989 __98: 62990 ; 62991 __93: 62992 ; 62993 62994 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */))++ 62995 __91: 62996 ; 62997 62998 // Have found a syntactically correct group number or name, or *name. 62999 // Only *MARK is currently recognized. 63000 63001 if !(star != 0) { 63002 goto __99 63003 } 63004 63005 if !(X_pcre2_strcmp_c8_8(tls, bp+240, ts+7678) == 0) { 63006 goto __101 63007 } 63008 63009 mark = Xpcre2_get_mark_8(tls, match_data) 63010 if !(mark != uintptr(0)) { 63011 goto __103 63012 } 63013 63014 mark_start = mark 63015 __104: 63016 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mark))) != 0) { 63017 goto __105 63018 } 63019 mark++ 63020 goto __104 63021 __105: 63022 ; 63023 fraglength = Tsize_t((int64(mark) - int64(mark_start)) / 1) 63024 if !(!(overflowed != 0) && lengthleft < fraglength) { 63025 goto __106 63026 } 63027 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63028 goto __108 63029 } 63030 goto NOROOM 63031 __108: 63032 ; 63033 overflowed = DTRUE 63034 extra_needed = fraglength - lengthleft 63035 goto __107 63036 __106: 63037 if !(overflowed != 0) { 63038 goto __109 63039 } 63040 extra_needed = extra_needed + fraglength 63041 goto __110 63042 __109: 63043 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), mark_start, fraglength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 63044 buff_offset = buff_offset + fraglength 63045 lengthleft = lengthleft - fraglength 63046 __110: 63047 ; 63048 __107: 63049 ; 63050 63051 __103: 63052 ; 63053 goto __102 63054 __101: 63055 goto BAD 63056 __102: 63057 ; 63058 goto __100 63059 __99: 63060 63061 // Find a number for a named group. In case there are duplicate names, 63062 // search for the first one that is set. If the name is not found when 63063 // PCRE2_SUBSTITUTE_UNKNOWN_EMPTY is set, set the group number to a 63064 // non-existent group. 63065 63066 if !(group < 0) { 63067 goto __111 63068 } 63069 63070 rc = Xpcre2_substring_nametable_scan_8(tls, code, bp+240, bp+288, bp+296) 63071 if !(rc == -49 && suboptions&DPCRE2_SUBSTITUTE_UNKNOWN_UNSET != Tuint32_t(0)) { 63072 goto __112 63073 } 63074 63075 group = int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket) + 1 63076 goto __113 63077 __112: 63078 63079 if !(rc < 0) { 63080 goto __114 63081 } 63082 goto PTREXIT 63083 __114: 63084 ; 63085 entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 288 /* first */)) 63086 __115: 63087 if !(entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 296))) { 63088 goto __117 63089 } 63090 63091 ng = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 63092 if !(ng < ovector_count) { 63093 goto __118 63094 } 63095 63096 if !(group < 0) { 63097 goto __119 63098 } 63099 group = int32(ng) 63100 __119: 63101 ; // First in ovector 63102 if !(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(ng*Tuint32_t(2))*8)) != libc.CplUint64(uint64(0))) { 63103 goto __120 63104 } 63105 63106 group = int32(ng) // First that is set 63107 goto __117 63108 __120: 63109 ; 63110 __118: 63111 ; 63112 goto __116 63113 __116: 63114 entry += TPCRE2_SPTR8(rc) 63115 goto __115 63116 goto __117 63117 __117: 63118 ; 63119 63120 // If group is still negative, it means we did not find a group 63121 // that is in the ovector. Just set the first group. 63122 63123 if !(group < 0) { 63124 goto __121 63125 } 63126 group = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 288)))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 288)) + 1))))) 63127 __121: 63128 ; 63129 __113: 63130 ; 63131 __111: 63132 ; 63133 63134 // We now have a group that is identified by number. Find the length of 63135 // the captured string. If a group in a non-special substitution is unset 63136 // when PCRE2_SUBSTITUTE_UNSET_EMPTY is set, substitute nothing. 63137 63138 rc = Xpcre2_substring_length_bynumber_8(tls, match_data, uint32(group), bp+304) 63139 if !(rc < 0) { 63140 goto __122 63141 } 63142 63143 if !(rc == -49 && suboptions&DPCRE2_SUBSTITUTE_UNKNOWN_UNSET != Tuint32_t(0)) { 63144 goto __123 63145 } 63146 63147 rc = -55 63148 __123: 63149 ; 63150 if !(rc != -55) { 63151 goto __124 63152 } 63153 goto PTREXIT 63154 __124: 63155 ; // Non-unset errors 63156 if !(special == Tuint32_t(0)) { 63157 goto __125 63158 } /* Plain substitution */ 63159 63160 if !(suboptions&DPCRE2_SUBSTITUTE_UNSET_EMPTY != Tuint32_t(0)) { 63161 goto __126 63162 } 63163 goto __62 63164 __126: 63165 ; 63166 goto PTREXIT // Else error 63167 __125: 63168 ; 63169 __122: 63170 ; 63171 63172 // If special is '+' we have a 'set' and possibly an 'unset' text, 63173 // both of which are reprocessed when used. If special is '-' we have a 63174 // default text for when the group is unset; it must be reprocessed. 63175 63176 if !(special != Tuint32_t(0)) { 63177 goto __127 63178 } 63179 63180 if !(special == Tuint32_t('\055')) { 63181 goto __128 63182 } 63183 63184 if !(rc == 0) { 63185 goto __129 63186 } 63187 goto LITERAL_SUBSTITUTE 63188 __129: 63189 ; 63190 text2_start = text1_start 63191 text2_end = text1_end 63192 __128: 63193 ; 63194 63195 if !(ptrstackptr >= Tuint32_t(DPTR_STACK_SIZE)) { 63196 goto __130 63197 } 63198 goto BAD 63199 __130: 63200 ; 63201 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 80 + uintptr(libc.PostIncUint32(&ptrstackptr, 1))*8)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) 63202 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 80 + uintptr(libc.PostIncUint32(&ptrstackptr, 1))*8)) = repend 63203 63204 if !(rc == 0) { 63205 goto __131 63206 } 63207 63208 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) = text1_start 63209 repend = text1_end 63210 goto __132 63211 __131: 63212 63213 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) = text2_start 63214 repend = text2_end 63215 __132: 63216 ; 63217 goto __62 63218 __127: 63219 ; 63220 63221 // Otherwise we have a literal substitution of a group's contents. 63222 63223 LITERAL_SUBSTITUTE: 63224 subptr = subject + uintptr(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(group*2)*8))) 63225 subptrend = subject + uintptr(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(group*2+1)*8))) 63226 63227 // Substitute a literal string, possibly forcing alphabetic case. 63228 63229 __133: 63230 if !(subptr < subptrend) { 63231 goto __134 63232 } 63233 63234 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&subptr, 1)))) 63235 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 320)) >= 0xc0) { 63236 goto __135 63237 } 63238 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x20 == Tuint32_t(0)) { 63239 goto __136 63240 } 63241 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&subptr, 1))))&0x3f 63242 goto __137 63243 __136: 63244 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x10 == Tuint32_t(0)) { 63245 goto __138 63246 } 63247 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 1)))&0x3f 63248 subptr += uintptr(2) 63249 goto __139 63250 __138: 63251 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x08 == Tuint32_t(0)) { 63252 goto __140 63253 } 63254 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&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 63255 subptr += uintptr(3) 63256 goto __141 63257 __140: 63258 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x04 == Tuint32_t(0)) { 63259 goto __142 63260 } 63261 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&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 63262 subptr += uintptr(4) 63263 goto __143 63264 __142: 63265 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&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 63266 subptr += uintptr(5) 63267 __143: 63268 ; 63269 __141: 63270 ; 63271 __139: 63272 ; 63273 __137: 63274 ; 63275 __135: 63276 ; 63277 63278 if !(forcecase != 0) { 63279 goto __144 63280 } 63281 63282 if !(utf != 0 || ucp != 0) { 63283 goto __145 63284 } 63285 63286 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 + 320)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))%DUCD_BLOCK_SIZE])*12)).Fchartype) 63287 if !(X_pcre2_ucp_gentype_8[type1] == ucp_L && type1 != func() uint32 { 63288 if forcecase > 0 { 63289 return ucp_Lu 63290 } 63291 return ucp_Ll 63292 }()) { 63293 goto __147 63294 } 63295 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320))) + (*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 + 320)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 63296 __147: 63297 ; 63298 goto __146 63299 __145: 63300 63301 if !(uint32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset) + uintptr(func() int32 { 63302 if forcecase > 0 { 63303 return Dcbit_upper 63304 } 63305 return Dcbit_lower 63306 }()) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 320))/Tuint32_t(8)))))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(bp + 320))%Tuint32_t(8))) == uint32(0)) { 63307 goto __148 63308 } 63309 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dfcc_offset) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)))))) 63310 __148: 63311 ; 63312 __146: 63313 ; 63314 forcecase = forcecasereset 63315 __144: 63316 ; 63317 63318 if !(utf != 0) { 63319 goto __149 63320 } 63321 chlen = X_pcre2_ord2utf_8(tls, *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)), bp+312) 63322 goto __150 63323 __149: 63324 63325 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 312)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */))) 63326 chlen = uint32(1) 63327 __150: 63328 ; 63329 if !(!(overflowed != 0) && lengthleft < Tsize_t(chlen)) { 63330 goto __151 63331 } 63332 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63333 goto __153 63334 } 63335 goto NOROOM 63336 __153: 63337 ; 63338 overflowed = DTRUE 63339 extra_needed = Tsize_t(chlen) - lengthleft 63340 goto __152 63341 __151: 63342 if !(overflowed != 0) { 63343 goto __154 63344 } 63345 extra_needed = extra_needed + Tsize_t(chlen) 63346 goto __155 63347 __154: 63348 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), bp+312, uint64(chlen*uint32(DPCRE2_CODE_UNIT_WIDTH/8))) 63349 buff_offset = buff_offset + Tsize_t(chlen) 63350 lengthleft = lengthleft - Tsize_t(chlen) 63351 __155: 63352 ; 63353 __152: 63354 ; 63355 63356 goto __133 63357 __134: 63358 ; 63359 __100: 63360 ; 63361 goto __69 63362 __68: 63363 if !(suboptions&DPCRE2_SUBSTITUTE_EXTENDED != Tuint32_t(0) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) == '\134') { 63364 goto __156 63365 } 63366 63367 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) < repend-uintptr(1)) { 63368 goto __158 63369 } 63370 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) + 1))) { 63371 case '\114': 63372 goto __160 63373 63374 case '\154': 63375 goto __161 63376 63377 case '\125': 63378 goto __162 63379 63380 case '\165': 63381 goto __163 63382 63383 default: 63384 goto __164 63385 } 63386 goto __159 63387 63388 __160: 63389 forcecase = libc.AssignInt32(&forcecasereset, -1) 63390 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 63391 goto __62 63392 63393 __161: 63394 forcecase = -1 63395 forcecasereset = 0 63396 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 63397 goto __62 63398 63399 __162: 63400 forcecase = libc.AssignInt32(&forcecasereset, 1) 63401 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 63402 goto __62 63403 63404 __163: 63405 forcecase = 1 63406 forcecasereset = 0 63407 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 63408 goto __62 63409 63410 __164: 63411 goto __159 63412 __159: 63413 ; 63414 __158: 63415 ; 63416 63417 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */))++ // Point after \ 63418 rc = X_pcre2_check_escape_8(tls, bp+280, repend, bp+320, bp+324, 63419 (*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fextra_options, DFALSE, uintptr(0)) 63420 if !(*(*int32)(unsafe.Pointer(bp + 324)) != 0) { 63421 goto __165 63422 } 63423 goto BADESCAPE 63424 __165: 63425 ; 63426 63427 switch rc { 63428 case ESC_E: 63429 goto __167 63430 63431 case ESC_Q: 63432 goto __168 63433 63434 case 0: 63435 goto __169 63436 63437 default: 63438 goto __170 63439 } 63440 goto __166 63441 63442 __167: 63443 forcecase = libc.AssignInt32(&forcecasereset, 0) 63444 goto __62 63445 63446 __168: 63447 escaped_literal = DTRUE 63448 goto __62 63449 63450 __169: // Data character 63451 goto LITERAL 63452 63453 __170: 63454 goto BADESCAPE 63455 __166: 63456 ; 63457 goto __157 63458 __156: 63459 63460 LOADLITERAL: 63461 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)), 1)))) 63462 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 320)) >= 0xc0) { 63463 goto __171 63464 } 63465 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x20 == Tuint32_t(0)) { 63466 goto __172 63467 } 63468 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1))))&0x3f 63469 goto __173 63470 __172: 63471 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x10 == Tuint32_t(0)) { 63472 goto __174 63473 } 63474 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 1)))&0x3f 63475 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 63476 goto __175 63477 __174: 63478 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x08 == Tuint32_t(0)) { 63479 goto __176 63480 } 63481 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 2)))&0x3f 63482 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(3) 63483 goto __177 63484 __176: 63485 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x04 == Tuint32_t(0)) { 63486 goto __178 63487 } 63488 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 3)))&0x3f 63489 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(4) 63490 goto __179 63491 __178: 63492 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 4)))&0x3f 63493 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(5) 63494 __179: 63495 ; 63496 __177: 63497 ; 63498 __175: 63499 ; 63500 __173: 63501 ; 63502 __171: 63503 ; 63504 63505 // Get character value, increment pointer 63506 63507 LITERAL: 63508 if !(forcecase != 0) { 63509 goto __180 63510 } 63511 63512 if !(utf != 0 || ucp != 0) { 63513 goto __181 63514 } 63515 63516 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 + 320)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))%DUCD_BLOCK_SIZE])*12)).Fchartype) 63517 if !(X_pcre2_ucp_gentype_8[type2] == ucp_L && type2 != func() uint32 { 63518 if forcecase > 0 { 63519 return ucp_Lu 63520 } 63521 return ucp_Ll 63522 }()) { 63523 goto __183 63524 } 63525 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320))) + (*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 + 320)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 63526 __183: 63527 ; 63528 goto __182 63529 __181: 63530 63531 if !(uint32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset) + uintptr(func() int32 { 63532 if forcecase > 0 { 63533 return Dcbit_upper 63534 } 63535 return Dcbit_lower 63536 }()) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 320))/Tuint32_t(8)))))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(bp + 320))%Tuint32_t(8))) == uint32(0)) { 63537 goto __184 63538 } 63539 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dfcc_offset) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)))))) 63540 __184: 63541 ; 63542 __182: 63543 ; 63544 forcecase = forcecasereset 63545 __180: 63546 ; 63547 63548 if !(utf != 0) { 63549 goto __185 63550 } 63551 chlen = X_pcre2_ord2utf_8(tls, *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)), bp+312) 63552 goto __186 63553 __185: 63554 63555 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 312)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */))) 63556 chlen = uint32(1) 63557 __186: 63558 ; 63559 if !(!(overflowed != 0) && lengthleft < Tsize_t(chlen)) { 63560 goto __187 63561 } 63562 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63563 goto __189 63564 } 63565 goto NOROOM 63566 __189: 63567 ; 63568 overflowed = DTRUE 63569 extra_needed = Tsize_t(chlen) - lengthleft 63570 goto __188 63571 __187: 63572 if !(overflowed != 0) { 63573 goto __190 63574 } 63575 extra_needed = extra_needed + Tsize_t(chlen) 63576 goto __191 63577 __190: 63578 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), bp+312, uint64(chlen*uint32(DPCRE2_CODE_UNIT_WIDTH/8))) 63579 buff_offset = buff_offset + Tsize_t(chlen) 63580 lengthleft = lengthleft - Tsize_t(chlen) 63581 __191: 63582 ; 63583 __188: 63584 ; 63585 63586 __157: 63587 ; 63588 __69: 63589 ; // End handling a literal code unit 63590 goto __62 63591 __62: 63592 goto __61 63593 goto __63 63594 __63: 63595 ; 63596 __55: 63597 ; // End of loop for scanning the replacement. 63598 63599 // The replacement has been copied to the output, or its size has been 63600 // remembered. Do the callout if there is one and we have done an actual 63601 // replacement. 63602 63603 if !(!(overflowed != 0) && mcontext != uintptr(0) && (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout != uintptr(0)) { 63604 goto __192 63605 } 63606 63607 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Fsubscount = Tuint32_t(subs) 63608 *(*Tsize_t)(unsafe.Pointer(bp + 24 + 24 + 1*8)) = buff_offset 63609 rc = (*struct { 63610 f func(*libc.TLS, uintptr, uintptr) int32 63611 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout})).f(tls, bp+24 /* &scb */, (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout_data) 63612 63613 // A non-zero return means cancel this substitution. Instead, copy the 63614 // matched string fragment. 63615 63616 if !(rc != 0) { 63617 goto __193 63618 } 63619 63620 newlength = *(*Tsize_t)(unsafe.Pointer(bp + 24 + 24 + 1*8)) - *(*Tsize_t)(unsafe.Pointer(bp + 24 + 24)) 63621 oldlength = *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) - *(*Tsize_t)(unsafe.Pointer(ovector)) 63622 63623 buff_offset = buff_offset - newlength 63624 lengthleft = lengthleft + newlength 63625 if !!(replacement_only != 0) { 63626 goto __194 63627 } 63628 if !(!(overflowed != 0) && lengthleft < oldlength) { 63629 goto __195 63630 } 63631 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63632 goto __197 63633 } 63634 goto NOROOM 63635 __197: 63636 ; 63637 overflowed = DTRUE 63638 extra_needed = oldlength - lengthleft 63639 goto __196 63640 __195: 63641 if !(overflowed != 0) { 63642 goto __198 63643 } 63644 extra_needed = extra_needed + oldlength 63645 goto __199 63646 __198: 63647 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(*(*Tsize_t)(unsafe.Pointer(ovector))), oldlength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 63648 buff_offset = buff_offset + oldlength 63649 lengthleft = lengthleft - oldlength 63650 __199: 63651 ; 63652 __196: 63653 ; 63654 __194: 63655 ; 63656 63657 // A negative return means do not do any more. 63658 63659 if !(rc < 0) { 63660 goto __200 63661 } 63662 suboptions = suboptions & libc.CplUint32(DPCRE2_SUBSTITUTE_GLOBAL) 63663 __200: 63664 ; 63665 __193: 63666 ; 63667 __192: 63668 ; 63669 63670 // Save the details of this match. See above for how this data is used. If we 63671 // matched an empty string, do the magic for global matches. Update the start 63672 // offset to point to the rest of the subject string. If we re-used an existing 63673 // match for the first match, switch to the internal match data block. 63674 63675 *(*Tsize_t)(unsafe.Pointer(bp)) = *(*Tsize_t)(unsafe.Pointer(ovector)) 63676 *(*Tsize_t)(unsafe.Pointer(bp + 1*8)) = *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) 63677 *(*Tsize_t)(unsafe.Pointer(bp + 2*8)) = start_offset 63678 63679 if *(*Tsize_t)(unsafe.Pointer(ovector)) != *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) || *(*Tsize_t)(unsafe.Pointer(ovector)) > start_offset { 63680 goptions = uint32(0) 63681 } else { 63682 goptions = DPCRE2_ANCHORED | DPCRE2_NOTEMPTY_ATSTART 63683 } 63684 start_offset = *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) 63685 goto __24 63686 __24: 63687 if suboptions&DPCRE2_SUBSTITUTE_GLOBAL != Tuint32_t(0) { 63688 goto __23 63689 } 63690 goto __25 63691 __25: 63692 ; // Repeat "do" loop 63693 63694 // Copy the rest of the subject unless not required, and terminate the output 63695 // with a binary zero. 63696 63697 if !!(replacement_only != 0) { 63698 goto __201 63699 } 63700 63701 fraglength = length - start_offset 63702 if !(!(overflowed != 0) && lengthleft < fraglength) { 63703 goto __202 63704 } 63705 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63706 goto __204 63707 } 63708 goto NOROOM 63709 __204: 63710 ; 63711 overflowed = DTRUE 63712 extra_needed = fraglength - lengthleft 63713 goto __203 63714 __202: 63715 if !(overflowed != 0) { 63716 goto __205 63717 } 63718 extra_needed = extra_needed + fraglength 63719 goto __206 63720 __205: 63721 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(start_offset), fraglength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 63722 buff_offset = buff_offset + fraglength 63723 lengthleft = lengthleft - fraglength 63724 __206: 63725 ; 63726 __203: 63727 ; 63728 63729 __201: 63730 ; 63731 63732 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 312)) = TPCRE2_UCHAR8(0) 63733 if !(!(overflowed != 0) && lengthleft < uint64(1)) { 63734 goto __207 63735 } 63736 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63737 goto __209 63738 } 63739 goto NOROOM 63740 __209: 63741 ; 63742 overflowed = DTRUE 63743 extra_needed = uint64(1) - lengthleft 63744 goto __208 63745 __207: 63746 if !(overflowed != 0) { 63747 goto __210 63748 } 63749 extra_needed = extra_needed + uint64(1) 63750 goto __211 63751 __210: 63752 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), bp+312, uint64(1*(DPCRE2_CODE_UNIT_WIDTH/8))) 63753 buff_offset = buff_offset + uint64(1) 63754 lengthleft = lengthleft - uint64(1) 63755 __211: 63756 ; 63757 __208: 63758 ; 63759 63760 // If overflowed is set it means the PCRE2_SUBSTITUTE_OVERFLOW_LENGTH is set, 63761 // and matching has carried on after a full buffer, in order to compute the length 63762 // needed. Otherwise, an overflow generates an immediate error return. 63763 63764 if !(overflowed != 0) { 63765 goto __212 63766 } 63767 63768 rc = -48 63769 *(*Tsize_t)(unsafe.Pointer(blength)) = buff_length + extra_needed 63770 goto __213 63771 __212: 63772 63773 rc = subs 63774 *(*Tsize_t)(unsafe.Pointer(blength)) = buff_offset - uint64(1) 63775 __213: 63776 ; 63777 63778 EXIT: 63779 if !(internal_match_data != uintptr(0)) { 63780 goto __214 63781 } 63782 Xpcre2_match_data_free_8(tls, internal_match_data) 63783 goto __215 63784 __214: 63785 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = rc 63786 __215: 63787 ; 63788 return rc 63789 63790 NOROOM: 63791 rc = -48 63792 goto EXIT 63793 63794 BAD: 63795 rc = -35 63796 goto PTREXIT 63797 63798 BADESCAPE: 63799 rc = -57 63800 63801 PTREXIT: 63802 *(*Tsize_t)(unsafe.Pointer(blength)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))) - int64(replacement)) / 1) 63803 goto EXIT 63804 return int32(0) 63805 } 63806 63807 // End of pcre2_substitute.c 63808 63809 // This function is needed only when memmove() is not available. 63810 63811 // End of pcre2_internal.h 63812 63813 // ************************************************ 63814 // 63815 // Copy named captured string to given buffer * 63816 // 63817 63818 // This function copies a single captured substring into a given buffer, 63819 // identifying it by name. If the regex permits duplicate names, the first 63820 // substring that is set is chosen. 63821 // 63822 // Arguments: 63823 // match_data points to the match data 63824 // stringname the name of the required substring 63825 // buffer where to put the substring 63826 // sizeptr the size of the buffer, updated to the size of the substring 63827 // 63828 // Returns: if successful: zero 63829 // if not successful, a negative error code: 63830 // (1) an error from nametable_scan() 63831 // (2) an error from copy_bynumber() 63832 // (3) PCRE2_ERROR_UNAVAILABLE: no group is in ovector 63833 // (4) PCRE2_ERROR_UNSET: all named groups in ovector are unset 63834 63835 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: */ 63836 bp := tls.Alloc(16) 63837 defer tls.Free(16) 63838 63839 // var first TPCRE2_SPTR8 at bp, 8 63840 63841 // var last TPCRE2_SPTR8 at bp+8, 8 63842 63843 var entry TPCRE2_SPTR8 63844 var failrc int32 63845 var entrysize int32 63846 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) == PCRE2_MATCHEDBY_DFA_INTERPRETER { 63847 return -41 63848 } 63849 entrysize = Xpcre2_substring_nametable_scan_8(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode, stringname, 63850 bp, bp+8) 63851 if entrysize < 0 { 63852 return entrysize 63853 } 63854 failrc = -54 63855 for entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* first */)); entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* last */)); entry += TPCRE2_SPTR8(entrysize) { 63856 var n Tuint32_t = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 63857 if n < Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 63858 if *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(n*Tuint32_t(2))*8)) != libc.CplUint64(uint64(0)) { 63859 return Xpcre2_substring_copy_bynumber_8(tls, match_data, n, buffer, sizeptr) 63860 } 63861 failrc = -55 63862 } 63863 } 63864 return failrc 63865 } 63866 63867 // ************************************************ 63868 // 63869 // Copy numbered captured string to given buffer * 63870 // 63871 63872 // This function copies a single captured substring into a given buffer, 63873 // identifying it by number. 63874 // 63875 // Arguments: 63876 // match_data points to the match data 63877 // stringnumber the number of the required substring 63878 // buffer where to put the substring 63879 // sizeptr the size of the buffer, updated to the size of the substring 63880 // 63881 // Returns: if successful: 0 63882 // if not successful, a negative error code: 63883 // PCRE2_ERROR_NOMEMORY: buffer too small 63884 // PCRE2_ERROR_NOSUBSTRING: no such substring 63885 // PCRE2_ERROR_UNAVAILABLE: ovector too small 63886 // PCRE2_ERROR_UNSET: substring is not set 63887 63888 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: */ 63889 bp := tls.Alloc(8) 63890 defer tls.Free(8) 63891 63892 var rc int32 63893 // var size Tsize_t at bp, 8 63894 63895 rc = Xpcre2_substring_length_bynumber_8(tls, match_data, stringnumber, bp) 63896 if rc < 0 { 63897 return rc 63898 } 63899 if *(*Tsize_t)(unsafe.Pointer(bp))+uint64(1) > *(*Tsize_t)(unsafe.Pointer(sizeptr)) { 63900 return -48 63901 } 63902 libc.Xmemcpy(tls, buffer, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject+uintptr(*(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(stringnumber*Tuint32_t(2))*8))), 63903 *(*Tsize_t)(unsafe.Pointer(bp))*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 63904 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(*(*Tsize_t)(unsafe.Pointer(bp /* size */))))) = TPCRE2_UCHAR8(0) 63905 *(*Tsize_t)(unsafe.Pointer(sizeptr)) = *(*Tsize_t)(unsafe.Pointer(bp /* size */)) 63906 return 0 63907 } 63908 63909 // ************************************************ 63910 // 63911 // Extract named captured string * 63912 // 63913 63914 // This function copies a single captured substring, identified by name, into 63915 // new memory. If the regex permits duplicate names, the first substring that is 63916 // set is chosen. 63917 // 63918 // Arguments: 63919 // match_data pointer to match_data 63920 // stringname the name of the required substring 63921 // stringptr where to put the pointer to the new memory 63922 // sizeptr where to put the length of the substring 63923 // 63924 // Returns: if successful: zero 63925 // if not successful, a negative value: 63926 // (1) an error from nametable_scan() 63927 // (2) an error from get_bynumber() 63928 // (3) PCRE2_ERROR_UNAVAILABLE: no group is in ovector 63929 // (4) PCRE2_ERROR_UNSET: all named groups in ovector are unset 63930 63931 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: */ 63932 bp := tls.Alloc(16) 63933 defer tls.Free(16) 63934 63935 // var first TPCRE2_SPTR8 at bp, 8 63936 63937 // var last TPCRE2_SPTR8 at bp+8, 8 63938 63939 var entry TPCRE2_SPTR8 63940 var failrc int32 63941 var entrysize int32 63942 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) == PCRE2_MATCHEDBY_DFA_INTERPRETER { 63943 return -41 63944 } 63945 entrysize = Xpcre2_substring_nametable_scan_8(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode, stringname, 63946 bp, bp+8) 63947 if entrysize < 0 { 63948 return entrysize 63949 } 63950 failrc = -54 63951 for entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* first */)); entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* last */)); entry += TPCRE2_SPTR8(entrysize) { 63952 var n Tuint32_t = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 63953 if n < Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 63954 if *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(n*Tuint32_t(2))*8)) != libc.CplUint64(uint64(0)) { 63955 return Xpcre2_substring_get_bynumber_8(tls, match_data, n, stringptr, sizeptr) 63956 } 63957 failrc = -55 63958 } 63959 } 63960 return failrc 63961 } 63962 63963 // ************************************************ 63964 // 63965 // Extract captured string to new memory * 63966 // 63967 63968 // This function copies a single captured substring into a piece of new 63969 // memory. 63970 // 63971 // Arguments: 63972 // match_data points to match data 63973 // stringnumber the number of the required substring 63974 // stringptr where to put a pointer to the new memory 63975 // sizeptr where to put the size of the substring 63976 // 63977 // Returns: if successful: 0 63978 // if not successful, a negative error code: 63979 // PCRE2_ERROR_NOMEMORY: failed to get memory 63980 // PCRE2_ERROR_NOSUBSTRING: no such substring 63981 // PCRE2_ERROR_UNAVAILABLE: ovector too small 63982 // PCRE2_ERROR_UNSET: substring is not set 63983 63984 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: */ 63985 bp := tls.Alloc(8) 63986 defer tls.Free(8) 63987 63988 var rc int32 63989 // var size Tsize_t at bp, 8 63990 63991 var yield uintptr 63992 rc = Xpcre2_substring_length_bynumber_8(tls, match_data, stringnumber, bp) 63993 if rc < 0 { 63994 return rc 63995 } 63996 yield = X_pcre2_memctl_malloc_8(tls, uint64(unsafe.Sizeof(Tpcre2_memctl{}))+(*(*Tsize_t)(unsafe.Pointer(bp))+uint64(1))*uint64(DPCRE2_CODE_UNIT_WIDTH), match_data) 63997 if yield == uintptr(0) { 63998 return -48 63999 } 64000 yield = yield + uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 64001 libc.Xmemcpy(tls, yield, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject+uintptr(*(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(stringnumber*Tuint32_t(2))*8))), 64002 *(*Tsize_t)(unsafe.Pointer(bp))*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 64003 *(*TPCRE2_UCHAR8)(unsafe.Pointer(yield + uintptr(*(*Tsize_t)(unsafe.Pointer(bp /* size */))))) = TPCRE2_UCHAR8(0) 64004 *(*uintptr)(unsafe.Pointer(stringptr)) = yield 64005 *(*Tsize_t)(unsafe.Pointer(sizeptr)) = *(*Tsize_t)(unsafe.Pointer(bp /* size */)) 64006 return 0 64007 } 64008 64009 // ************************************************ 64010 // 64011 // Free memory obtained by get_substring * 64012 // 64013 64014 // 64015 // Argument: the result of a previous pcre2_substring_get_byxxx() 64016 // Returns: nothing 64017 64018 func Xpcre2_substring_free_8(tls *libc.TLS, string uintptr) { /* pcre2_substring.c:241:1: */ 64019 if string != uintptr(0) { 64020 var memctl uintptr = string - uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 64021 (*struct { 64022 f func(*libc.TLS, uintptr, uintptr) 64023 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 64024 } 64025 } 64026 64027 // ************************************************ 64028 // 64029 // Get length of a named substring * 64030 // 64031 64032 // This function returns the length of a named captured substring. If the regex 64033 // permits duplicate names, the first substring that is set is chosen. 64034 // 64035 // Arguments: 64036 // match_data pointer to match data 64037 // stringname the name of the required substring 64038 // sizeptr where to put the length 64039 // 64040 // Returns: 0 if successful, else a negative error number 64041 64042 func Xpcre2_substring_length_byname_8(tls *libc.TLS, match_data uintptr, stringname TPCRE2_SPTR8, sizeptr uintptr) int32 { /* pcre2_substring.c:268:1: */ 64043 bp := tls.Alloc(16) 64044 defer tls.Free(16) 64045 64046 // var first TPCRE2_SPTR8 at bp, 8 64047 64048 // var last TPCRE2_SPTR8 at bp+8, 8 64049 64050 var entry TPCRE2_SPTR8 64051 var failrc int32 64052 var entrysize int32 64053 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) == PCRE2_MATCHEDBY_DFA_INTERPRETER { 64054 return -41 64055 } 64056 entrysize = Xpcre2_substring_nametable_scan_8(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode, stringname, 64057 bp, bp+8) 64058 if entrysize < 0 { 64059 return entrysize 64060 } 64061 failrc = -54 64062 for entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* first */)); entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* last */)); entry += TPCRE2_SPTR8(entrysize) { 64063 var n Tuint32_t = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 64064 if n < Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 64065 if *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(n*Tuint32_t(2))*8)) != libc.CplUint64(uint64(0)) { 64066 return Xpcre2_substring_length_bynumber_8(tls, match_data, n, sizeptr) 64067 } 64068 failrc = -55 64069 } 64070 } 64071 return failrc 64072 } 64073 64074 // ************************************************ 64075 // 64076 // Get length of a numbered substring * 64077 // 64078 64079 // This function returns the length of a captured substring. If the start is 64080 // beyond the end (which can happen when \K is used in an assertion), it sets the 64081 // length to zero. 64082 // 64083 // Arguments: 64084 // match_data pointer to match data 64085 // stringnumber the number of the required substring 64086 // sizeptr where to put the length, if not NULL 64087 // 64088 // Returns: if successful: 0 64089 // if not successful, a negative error code: 64090 // PCRE2_ERROR_NOSUBSTRING: no such substring 64091 // PCRE2_ERROR_UNAVAILABLE: ovector is too small 64092 // PCRE2_ERROR_UNSET: substring is not set 64093 64094 func Xpcre2_substring_length_bynumber_8(tls *libc.TLS, match_data uintptr, stringnumber Tuint32_t, sizeptr uintptr) int32 { /* pcre2_substring.c:315:1: */ 64095 var left Tsize_t 64096 var right Tsize_t 64097 var count int32 = (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 64098 if count == -2 { 64099 if stringnumber > Tuint32_t(0) { 64100 return -2 64101 } 64102 count = 0 64103 } else if count < 0 { 64104 return count 64105 } // Match failed 64106 64107 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) != PCRE2_MATCHEDBY_DFA_INTERPRETER { 64108 if stringnumber > Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode)).Ftop_bracket) { 64109 return -49 64110 } 64111 if stringnumber >= Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 64112 return -54 64113 } 64114 if *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(stringnumber*Tuint32_t(2))*8)) == libc.CplUint64(uint64(0)) { 64115 return -55 64116 } 64117 } else { 64118 if stringnumber >= Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 64119 return -54 64120 } 64121 if count != 0 && stringnumber >= Tuint32_t(count) { 64122 return -55 64123 } 64124 } 64125 64126 left = *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(stringnumber*Tuint32_t(2))*8)) 64127 right = *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(stringnumber*Tuint32_t(2)+Tuint32_t(1))*8)) 64128 if sizeptr != uintptr(0) { 64129 *(*Tsize_t)(unsafe.Pointer(sizeptr)) = func() uint64 { 64130 if left > right { 64131 return uint64(0) 64132 } 64133 return right - left 64134 }() 64135 } 64136 return 0 64137 } 64138 64139 // ************************************************ 64140 // 64141 // Extract all captured strings to new memory * 64142 // 64143 64144 // This function gets one chunk of memory and builds a list of pointers and all 64145 // the captured substrings in it. A NULL pointer is put on the end of the list. 64146 // The substrings are zero-terminated, but also, if the final argument is 64147 // non-NULL, a list of lengths is also returned. This allows binary data to be 64148 // handled. 64149 // 64150 // Arguments: 64151 // match_data points to the match data 64152 // listptr set to point to the list of pointers 64153 // lengthsptr set to point to the list of lengths (may be NULL) 64154 // 64155 // Returns: if successful: 0 64156 // if not successful, a negative error code: 64157 // PCRE2_ERROR_NOMEMORY: failed to get memory, 64158 // or a match failure code 64159 64160 func Xpcre2_substring_list_get_8(tls *libc.TLS, match_data uintptr, listptr uintptr, lengthsptr uintptr) int32 { /* pcre2_substring.c:372:1: */ 64161 var i int32 64162 var count int32 64163 var count2 int32 64164 var size Tsize_t 64165 var lensp uintptr 64166 var memp uintptr 64167 var listp uintptr 64168 var sp uintptr 64169 var ovector uintptr 64170 64171 if libc.AssignInt32(&count, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc) < 0 { 64172 return count 64173 } // Match failed 64174 if count == 0 { 64175 count = int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) 64176 } // Ovector too small 64177 64178 count2 = 2 * count 64179 ovector = match_data + 80 /* &.ovector */ 64180 size = uint64(unsafe.Sizeof(Tpcre2_memctl{})) + uint64(unsafe.Sizeof(uintptr(0))) // For final NULL 64181 if lengthsptr != uintptr(0) { 64182 size = size + uint64(unsafe.Sizeof(Tsize_t(0)))*uint64(count) 64183 } // For lengths 64184 64185 for i = 0; i < count2; i = i + 2 { 64186 size = size + (uint64(unsafe.Sizeof(uintptr(0))) + uint64(1*(DPCRE2_CODE_UNIT_WIDTH/8))) 64187 if *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*8)) > *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8)) { 64188 size = size + (*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*8))-*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8)))*uint64(DPCRE2_CODE_UNIT_WIDTH/8) 64189 } 64190 } 64191 64192 memp = X_pcre2_memctl_malloc_8(tls, size, match_data) 64193 if memp == uintptr(0) { 64194 return -48 64195 } 64196 64197 *(*uintptr)(unsafe.Pointer(listptr)) = libc.AssignUintptr(&listp, memp+uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{})))) 64198 lensp = listp + uintptr(uint64(unsafe.Sizeof(uintptr(0)))*uint64(count+1)) 64199 64200 if lengthsptr == uintptr(0) { 64201 sp = lensp 64202 lensp = uintptr(0) 64203 } else { 64204 *(*uintptr)(unsafe.Pointer(lengthsptr)) = lensp 64205 sp = lensp + uintptr(uint64(unsafe.Sizeof(Tsize_t(0)))*uint64(count)) 64206 } 64207 64208 for i = 0; i < count2; i = i + 2 { 64209 if *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*8)) > *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8)) { 64210 size = *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*8)) - *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8)) 64211 } else { 64212 size = uint64(0) 64213 } 64214 64215 // Size == 0 includes the case when the capture is unset. Avoid adding 64216 // PCRE2_UNSET to match_data->subject because it overflows, even though with 64217 // zero size calling memcpy() is harmless. 64218 64219 if size != uint64(0) { 64220 libc.Xmemcpy(tls, sp, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject+uintptr(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8))), size*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 64221 } 64222 *(*uintptr)(unsafe.Pointer(libc.PostIncUintptr(&listp, 8))) = sp 64223 if lensp != uintptr(0) { 64224 *(*Tsize_t)(unsafe.Pointer(libc.PostIncUintptr(&lensp, 8))) = size 64225 } 64226 sp += uintptr(size) 64227 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&sp, 1))) = TPCRE2_UCHAR8(0) 64228 } 64229 64230 *(*uintptr)(unsafe.Pointer(listp)) = uintptr(0) 64231 return 0 64232 } 64233 64234 // ************************************************ 64235 // 64236 // Free memory obtained by substring_list_get * 64237 // 64238 64239 // 64240 // Argument: the result of a previous pcre2_substring_list_get() 64241 // Returns: nothing 64242 64243 func Xpcre2_substring_list_free_8(tls *libc.TLS, list uintptr) { /* pcre2_substring.c:445:1: */ 64244 if list != uintptr(0) { 64245 var memctl uintptr = list - uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 64246 (*struct { 64247 f func(*libc.TLS, uintptr, uintptr) 64248 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 64249 } 64250 } 64251 64252 // ************************************************ 64253 // 64254 // Find (multiple) entries for named string * 64255 // 64256 64257 // This function scans the nametable for a given name, using binary chop. It 64258 // returns either two pointers to the entries in the table, or, if no pointers are 64259 // given, the number of a unique group with the given name. If duplicate names are 64260 // permitted, and the name is not unique, an error is generated. 64261 // 64262 // Arguments: 64263 // code the compiled regex 64264 // stringname the name whose entries required 64265 // firstptr where to put the pointer to the first entry 64266 // lastptr where to put the pointer to the last entry 64267 // 64268 // Returns: PCRE2_ERROR_NOSUBSTRING if the name is not found 64269 // otherwise, if firstptr and lastptr are NULL: 64270 // a group number for a unique substring 64271 // else PCRE2_ERROR_NOUNIQUESUBSTRING 64272 // otherwise: 64273 // the length of each entry, having set firstptr and lastptr 64274 64275 func Xpcre2_substring_nametable_scan_8(tls *libc.TLS, code uintptr, stringname TPCRE2_SPTR8, firstptr uintptr, lastptr uintptr) int32 { /* pcre2_substring.c:480:1: */ 64276 var bot Tuint16_t = Tuint16_t(0) 64277 var top Tuint16_t = (*Tpcre2_code_8)(unsafe.Pointer(code)).Fname_count 64278 var entrysize Tuint16_t = (*Tpcre2_code_8)(unsafe.Pointer(code)).Fname_entry_size 64279 var nametable TPCRE2_SPTR8 = code + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) 64280 64281 for int32(top) > int32(bot) { 64282 var mid Tuint16_t = Tuint16_t((int32(top) + int32(bot)) / 2) 64283 var entry TPCRE2_SPTR8 = nametable + uintptr(int32(entrysize)*int32(mid)) 64284 var c int32 = X_pcre2_strcmp_8(tls, stringname, entry+uintptr(DIMM2_SIZE)) 64285 if c == 0 { 64286 var first TPCRE2_SPTR8 64287 var last TPCRE2_SPTR8 64288 var lastentry TPCRE2_SPTR8 64289 lastentry = nametable + uintptr(int32(entrysize)*(int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Fname_count)-1)) 64290 first = libc.AssignUintptr(&last, entry) 64291 for first > nametable { 64292 if X_pcre2_strcmp_8(tls, stringname, first-uintptr(entrysize)+uintptr(DIMM2_SIZE)) != 0 { 64293 break 64294 } 64295 first -= TPCRE2_SPTR8(entrysize) 64296 } 64297 for last < lastentry { 64298 if X_pcre2_strcmp_8(tls, stringname, last+uintptr(entrysize)+uintptr(DIMM2_SIZE)) != 0 { 64299 break 64300 } 64301 last += TPCRE2_SPTR8(entrysize) 64302 } 64303 if firstptr == uintptr(0) { 64304 if first == last { 64305 return int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1))))) 64306 } 64307 return -50 64308 } 64309 *(*TPCRE2_SPTR8)(unsafe.Pointer(firstptr)) = first 64310 *(*TPCRE2_SPTR8)(unsafe.Pointer(lastptr)) = last 64311 return int32(entrysize) 64312 } 64313 if c > 0 { 64314 bot = Tuint16_t(int32(mid) + 1) 64315 } else { 64316 top = mid 64317 } 64318 } 64319 64320 return -49 64321 } 64322 64323 // ************************************************ 64324 // 64325 // Find number for named string * 64326 // 64327 64328 // This function is a convenience wrapper for pcre2_substring_nametable_scan() 64329 // when it is known that names are unique. If there are duplicate names, it is not 64330 // defined which number is returned. 64331 // 64332 // Arguments: 64333 // code the compiled regex 64334 // stringname the name whose number is required 64335 // 64336 // Returns: the number of the named parenthesis, or a negative number 64337 // PCRE2_ERROR_NOSUBSTRING if not found 64338 // PCRE2_ERROR_NOUNIQUESUBSTRING if not unique 64339 64340 func Xpcre2_substring_number_from_name_8(tls *libc.TLS, code uintptr, stringname TPCRE2_SPTR8) int32 { /* pcre2_substring.c:541:1: */ 64341 return Xpcre2_substring_nametable_scan_8(tls, code, stringname, uintptr(0), uintptr(0)) 64342 } 64343 64344 // End of pcre2_substring.c 64345 64346 // This function is needed only when memmove() is not available. 64347 64348 // End of pcre2_internal.h 64349 64350 // Table of sizes for the fixed-length opcodes. It's defined in a macro so that 64351 // the definition is next to the definition of the opcodes in pcre2_internal.h. 64352 // This is mode-dependent, so it is skipped when this file is included by 64353 // pcre2test. 64354 64355 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(uint64(1) + uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))), uint8(uint64(1) + uint64(32)/uint64(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 */ 64356 64357 // Tables of horizontal and vertical whitespace characters, suitable for 64358 // adding to classes. 64359 64360 var X_pcre2_hspace_list_8 = [20]Tuint32_t{Tuint32_t('\011'), Tuint32_t('\040'), Tuint32_t(uint8('\xa0')), 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 */ 64361 var X_pcre2_vspace_list_8 = [8]Tuint32_t{Tuint32_t('\012'), Tuint32_t('\013'), Tuint32_t('\014'), Tuint32_t('\015'), Tuint32_t(uint8('\x85')), Tuint32_t(0x2028), Tuint32_t(0x2029), DNOTACHAR} /* pcre2_tables.c:67:16 */ 64362 64363 // These tables are the pairs of delimiters that are valid for callout string 64364 // arguments. For each starting delimiter there must be a matching ending 64365 // delimiter, which in fact is different only for bracket-like delimiters. 64366 64367 var X_pcre2_callout_start_delims_8 = [9]Tuint32_t{ 64368 Tuint32_t('\140'), Tuint32_t('\047'), Tuint32_t('\042'), 64369 Tuint32_t('\136'), Tuint32_t('\045'), Tuint32_t('\043'), 64370 Tuint32_t('\044'), Tuint32_t('\173'), Tuint32_t(0)} /* pcre2_tables.c:73:16 */ 64371 64372 var X_pcre2_callout_end_delims_8 = [9]Tuint32_t{ 64373 Tuint32_t('\140'), Tuint32_t('\047'), Tuint32_t('\042'), 64374 Tuint32_t('\136'), Tuint32_t('\045'), Tuint32_t('\043'), 64375 Tuint32_t('\044'), Tuint32_t('\175'), Tuint32_t(0)} /* pcre2_tables.c:78:16 */ 64376 64377 // ************************************************ 64378 // 64379 // Tables for UTF-8 support * 64380 // 64381 64382 // These tables are required by pcre2test in 16- or 32-bit mode, as well 64383 // as for the library in 8-bit mode, because pcre2test uses UTF-8 internally for 64384 // handling wide characters. 64385 64386 // These are the breakpoints for different numbers of bytes in a UTF-8 64387 // character. 64388 64389 var X_pcre2_utf8_table1 = [6]int32{0x7f, 0x7ff, 0xffff, 0x1fffff, 0x3ffffff, 0x7fffffff} /* pcre2_tables.c:100:11 */ 64390 64391 var X_pcre2_utf8_table1_size int32 = int32(uint64(unsafe.Sizeof(X_pcre2_utf8_table1)) / uint64(unsafe.Sizeof(int32(0)))) /* pcre2_tables.c:103:11 */ 64392 64393 // These are the indicator bits and the mask for the data bits to set in the 64394 // first byte of a character, indexed by the number of additional bytes. 64395 64396 var X_pcre2_utf8_table2 = [6]int32{0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc} /* pcre2_tables.c:108:11 */ 64397 var X_pcre2_utf8_table3 = [6]int32{0xff, 0x1f, 0x0f, 0x07, 0x03, 0x01} /* pcre2_tables.c:109:11 */ 64398 64399 // Table of the number of extra bytes, indexed by the first byte masked with 64400 // 0x3f. The highest number for a valid UTF-8 first byte is in fact 0x3d. 64401 64402 var X_pcre2_utf8_table4 = [64]Tuint8_t{ 64403 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), 64404 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), 64405 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), 64406 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 */ 64407 64408 // Tables concerned with Unicode properties are relevant only when Unicode 64409 // support is enabled. See also the pcre2_ucptables.c file, which is generated by 64410 // a Python script from Unicode data files. 64411 64412 // Table to translate from particular type value to the general value. 64413 64414 var X_pcre2_ucp_gentype_8 = [30]Tuint32_t{ 64415 ucp_C, ucp_C, ucp_C, ucp_C, ucp_C, // Cc, Cf, Cn, Co, Cs 64416 ucp_L, ucp_L, ucp_L, ucp_L, ucp_L, // Ll, Lu, Lm, Lo, Lt 64417 ucp_M, ucp_M, ucp_M, // Mc, Me, Mn 64418 ucp_N, ucp_N, ucp_N, // Nd, Nl, No 64419 ucp_P, ucp_P, ucp_P, ucp_P, ucp_P, // Pc, Pd, Pe, Pf, Pi 64420 ucp_P, ucp_P, // Ps, Po 64421 ucp_S, ucp_S, ucp_S, ucp_S, // Sc, Sk, Sm, So 64422 ucp_Z, ucp_Z, ucp_Z, // Zl, Zp, Zs 64423 } /* pcre2_tables.c:130:16 */ 64424 64425 // This table encodes the rules for finding the end of an extended grapheme 64426 // cluster. Every code point has a grapheme break property which is one of the 64427 // ucp_gbXX values defined in pcre2_ucp.h. These changed between Unicode versions 64428 // 10 and 11. The 2-dimensional table is indexed by the properties of two adjacent 64429 // code points. The left property selects a word from the table, and the right 64430 // property selects a bit from that word like this: 64431 // 64432 // PRIV(ucp_gbtable)[left-property] & (1u << right-property) 64433 // 64434 // The value is non-zero if a grapheme break is NOT permitted between the relevant 64435 // two code points. The breaking rules are as follows: 64436 // 64437 // 1. Break at the start and end of text (pretty obviously). 64438 // 64439 // 2. Do not break between a CR and LF; otherwise, break before and after 64440 // controls. 64441 // 64442 // 3. Do not break Hangul syllable sequences, the rules for which are: 64443 // 64444 // L may be followed by L, V, LV or LVT 64445 // LV or V may be followed by V or T 64446 // LVT or T may be followed by T 64447 // 64448 // 4. Do not break before extending characters or zero-width-joiner (ZWJ). 64449 // 64450 // The following rules are only for extended grapheme clusters (but that's what we 64451 // are implementing). 64452 // 64453 // 5. Do not break before SpacingMarks. 64454 // 64455 // 6. Do not break after Prepend characters. 64456 // 64457 // 7. Do not break within emoji modifier sequences or emoji zwj sequences. That 64458 // is, do not break between characters with the Extended_Pictographic property. 64459 // Extend and ZWJ characters are allowed between the characters; this cannot be 64460 // represented in this table, the code has to deal with it. 64461 // 64462 // 8. Do not break within emoji flag sequences. That is, do not break between 64463 // regional indicator (RI) symbols if there are an odd number of RI characters 64464 // before the break point. This table encodes "join RI characters"; the code 64465 // has to deal with checking for previous adjoining RIs. 64466 // 64467 // 9. Otherwise, break everywhere. 64468 64469 var X_pcre2_ucp_gbtable_8 = [15]Tuint32_t{ 64470 uint32(1) << ucp_gbLF, 64471 Tuint32_t(0), // 1 LF 64472 Tuint32_t(0), // 2 Control 64473 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64474 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, 64475 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64476 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, 64477 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbV | uint32(1)<<ucp_gbT, 64478 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbT, 64479 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbV | uint32(1)<<ucp_gbT, 64480 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbT, 64481 uint32(1) << ucp_gbRegional_Indicator, 64482 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64483 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64484 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbExtended_Pictographic, 64485 } /* pcre2_tables.c:188:16 */ 64486 64487 // Finally, include the tables that are auto-generated from the Unicode data 64488 // files. 64489 64490 // ************************************************ 64491 // 64492 // Perl-Compatible Regular Expressions * 64493 // 64494 64495 // PCRE is a library of functions to support regular expressions whose syntax 64496 // and semantics are as close as possible to those of the Perl 5 language. 64497 // 64498 // Written by Philip Hazel 64499 // Original API code Copyright (c) 1997-2012 University of Cambridge 64500 // New API code Copyright (c) 2016-2022 University of Cambridge 64501 // 64502 // This module is auto-generated from Unicode data files. DO NOT EDIT MANUALLY! 64503 // Instead, modify the maint/GenerateUcpTables.py script and run it to generate 64504 // a new version of this code. 64505 // 64506 // ----------------------------------------------------------------------------- 64507 // Redistribution and use in source and binary forms, with or without 64508 // modification, are permitted provided that the following conditions are met: 64509 // 64510 // * Redistributions of source code must retain the above copyright notice, 64511 // this list of conditions and the following disclaimer. 64512 // 64513 // * Redistributions in binary form must reproduce the above copyright 64514 // notice, this list of conditions and the following disclaimer in the 64515 // documentation and/or other materials provided with the distribution. 64516 // 64517 // * Neither the name of the University of Cambridge nor the names of its 64518 // contributors may be used to endorse or promote products derived from 64519 // this software without specific prior written permission. 64520 // 64521 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 64522 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 64523 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 64524 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 64525 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 64526 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 64527 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 64528 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 64529 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 64530 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 64531 // POSSIBILITY OF SUCH DAMAGE. 64532 // ----------------------------------------------------------------------------- 64533 64534 // The PRIV(utt)[] table below translates Unicode property names into type and 64535 // code values. It is searched by binary chop, so must be in collating sequence of 64536 // name. Originally, the table contained pointers to the name strings in the first 64537 // field of each entry. However, that leads to a large number of relocations when 64538 // a shared library is dynamically loaded. A significant reduction is made by 64539 // putting all the names into a single, large string and using offsets instead. 64540 // All letters are lower cased, and underscores are removed, in accordance with 64541 // the "loose matching" rules that Unicode advises and Perl uses. 64542 64543 var X_pcre2_utt_names_8 = *(*[3569]uint8)(unsafe.Pointer(ts + 7683)) /* pcre2_ucptables.c:543:12 */ 64544 64545 var X_pcre2_utt_8 = [486]Tucp_type_table{ 64546 {Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Adlam}, 64547 {Fname_offset: Tuint16_t(6), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Adlam}, 64548 {Fname_offset: Tuint16_t(11), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Caucasian_Albanian}, 64549 {Fname_offset: Tuint16_t(16), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ASCII_Hex_Digit}, 64550 {Fname_offset: Tuint16_t(21), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ahom}, 64551 {Fname_offset: Tuint16_t(26), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Alphabetic}, 64552 {Fname_offset: Tuint16_t(32), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Alphabetic}, 64553 {Fname_offset: Tuint16_t(43), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Anatolian_Hieroglyphs}, 64554 {Fname_offset: Tuint16_t(64)}, 64555 {Fname_offset: Tuint16_t(68), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Arabic}, 64556 {Fname_offset: Tuint16_t(73), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Arabic}, 64557 {Fname_offset: Tuint16_t(80), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Armenian}, 64558 {Fname_offset: Tuint16_t(89), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Imperial_Aramaic}, 64559 {Fname_offset: Tuint16_t(94), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Armenian}, 64560 {Fname_offset: Tuint16_t(99), Ftype: Tuint16_t(DPT_BOOL)}, 64561 {Fname_offset: Tuint16_t(105), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ASCII_Hex_Digit}, 64562 {Fname_offset: Tuint16_t(119), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Avestan}, 64563 {Fname_offset: Tuint16_t(127), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Avestan}, 64564 {Fname_offset: Tuint16_t(132), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Balinese}, 64565 {Fname_offset: Tuint16_t(137), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Balinese}, 64566 {Fname_offset: Tuint16_t(146), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bamum}, 64567 {Fname_offset: Tuint16_t(151), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bamum}, 64568 {Fname_offset: Tuint16_t(157), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bassa_Vah}, 64569 {Fname_offset: Tuint16_t(162), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bassa_Vah}, 64570 {Fname_offset: Tuint16_t(171), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Batak}, 64571 {Fname_offset: Tuint16_t(177), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Batak}, 64572 {Fname_offset: Tuint16_t(182), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bengali}, 64573 {Fname_offset: Tuint16_t(187), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bengali}, 64574 {Fname_offset: Tuint16_t(195), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bhaiksuki}, 64575 {Fname_offset: Tuint16_t(205), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bhaiksuki}, 64576 {Fname_offset: Tuint16_t(210), Ftype: Tuint16_t(DPT_BIDICL)}, 64577 {Fname_offset: Tuint16_t(217), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiAN}, 64578 {Fname_offset: Tuint16_t(224), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiB}, 64579 {Fname_offset: Tuint16_t(230), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiBN}, 64580 {Fname_offset: Tuint16_t(237), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Control}, 64581 {Fname_offset: Tuint16_t(243), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Control}, 64582 {Fname_offset: Tuint16_t(255), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiCS}, 64583 {Fname_offset: Tuint16_t(262), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiEN}, 64584 {Fname_offset: Tuint16_t(269), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiES}, 64585 {Fname_offset: Tuint16_t(276), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiET}, 64586 {Fname_offset: Tuint16_t(283), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiFSI}, 64587 {Fname_offset: Tuint16_t(291), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiL}, 64588 {Fname_offset: Tuint16_t(297), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiLRE}, 64589 {Fname_offset: Tuint16_t(305), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiLRI}, 64590 {Fname_offset: Tuint16_t(313), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiLRO}, 64591 {Fname_offset: Tuint16_t(321), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Mirrored}, 64592 {Fname_offset: Tuint16_t(327), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Mirrored}, 64593 {Fname_offset: Tuint16_t(340), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiNSM}, 64594 {Fname_offset: Tuint16_t(348), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiON}, 64595 {Fname_offset: Tuint16_t(355), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiPDF}, 64596 {Fname_offset: Tuint16_t(363), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiPDI}, 64597 {Fname_offset: Tuint16_t(371), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiR}, 64598 {Fname_offset: Tuint16_t(377), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiRLE}, 64599 {Fname_offset: Tuint16_t(385), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiRLI}, 64600 {Fname_offset: Tuint16_t(393), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiRLO}, 64601 {Fname_offset: Tuint16_t(401), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiS}, 64602 {Fname_offset: Tuint16_t(407), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiWS}, 64603 {Fname_offset: Tuint16_t(414), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bopomofo}, 64604 {Fname_offset: Tuint16_t(419), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bopomofo}, 64605 {Fname_offset: Tuint16_t(428), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Brahmi}, 64606 {Fname_offset: Tuint16_t(433), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Brahmi}, 64607 {Fname_offset: Tuint16_t(440), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Braille}, 64608 {Fname_offset: Tuint16_t(445), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Braille}, 64609 {Fname_offset: Tuint16_t(453), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buginese}, 64610 {Fname_offset: Tuint16_t(458), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buginese}, 64611 {Fname_offset: Tuint16_t(467), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buhid}, 64612 {Fname_offset: Tuint16_t(472), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buhid}, 64613 {Fname_offset: Tuint16_t(478), Ftype: Tuint16_t(DPT_GC)}, 64614 {Fname_offset: Tuint16_t(480), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Chakma}, 64615 {Fname_offset: Tuint16_t(485), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Canadian_Aboriginal}, 64616 {Fname_offset: Tuint16_t(504), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Canadian_Aboriginal}, 64617 {Fname_offset: Tuint16_t(509), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Carian}, 64618 {Fname_offset: Tuint16_t(514), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Carian}, 64619 {Fname_offset: Tuint16_t(521), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Cased}, 64620 {Fname_offset: Tuint16_t(527), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Case_Ignorable}, 64621 {Fname_offset: Tuint16_t(541), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Caucasian_Albanian}, 64622 {Fname_offset: Tuint16_t(559), Ftype: Tuint16_t(DPT_PC)}, 64623 {Fname_offset: Tuint16_t(562), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Cf}, 64624 {Fname_offset: Tuint16_t(565), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Chakma}, 64625 {Fname_offset: Tuint16_t(572), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cham}, 64626 {Fname_offset: Tuint16_t(577), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casefolded}, 64627 {Fname_offset: Tuint16_t(599), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casemapped}, 64628 {Fname_offset: Tuint16_t(621), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Lowercased}, 64629 {Fname_offset: Tuint16_t(643), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Titlecased}, 64630 {Fname_offset: Tuint16_t(665), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Uppercased}, 64631 {Fname_offset: Tuint16_t(687), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cherokee}, 64632 {Fname_offset: Tuint16_t(692), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cherokee}, 64633 {Fname_offset: Tuint16_t(701), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Chorasmian}, 64634 {Fname_offset: Tuint16_t(712), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Chorasmian}, 64635 {Fname_offset: Tuint16_t(717), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Case_Ignorable}, 64636 {Fname_offset: Tuint16_t(720), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Cn}, 64637 {Fname_offset: Tuint16_t(723), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Co}, 64638 {Fname_offset: Tuint16_t(726), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Common}, 64639 {Fname_offset: Tuint16_t(733), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Coptic}, 64640 {Fname_offset: Tuint16_t(738), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Coptic}, 64641 {Fname_offset: Tuint16_t(745), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypro_Minoan}, 64642 {Fname_offset: Tuint16_t(750), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypriot}, 64643 {Fname_offset: Tuint16_t(755), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Cs}, 64644 {Fname_offset: Tuint16_t(758), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cuneiform}, 64645 {Fname_offset: Tuint16_t(768), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casefolded}, 64646 {Fname_offset: Tuint16_t(773), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casemapped}, 64647 {Fname_offset: Tuint16_t(778), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Lowercased}, 64648 {Fname_offset: Tuint16_t(782), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Titlecased}, 64649 {Fname_offset: Tuint16_t(786), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Uppercased}, 64650 {Fname_offset: Tuint16_t(790), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypriot}, 64651 {Fname_offset: Tuint16_t(798), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypro_Minoan}, 64652 {Fname_offset: Tuint16_t(810), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cyrillic}, 64653 {Fname_offset: Tuint16_t(819), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cyrillic}, 64654 {Fname_offset: Tuint16_t(824), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Dash}, 64655 {Fname_offset: Tuint16_t(829), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Default_Ignorable_Code_Point}, 64656 {Fname_offset: Tuint16_t(855), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Deprecated}, 64657 {Fname_offset: Tuint16_t(859), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Deprecated}, 64658 {Fname_offset: Tuint16_t(870), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Deseret}, 64659 {Fname_offset: Tuint16_t(878), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Devanagari}, 64660 {Fname_offset: Tuint16_t(883), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Devanagari}, 64661 {Fname_offset: Tuint16_t(894), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Default_Ignorable_Code_Point}, 64662 {Fname_offset: Tuint16_t(897), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Diacritic}, 64663 {Fname_offset: Tuint16_t(901), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Diacritic}, 64664 {Fname_offset: Tuint16_t(911), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Dives_Akuru}, 64665 {Fname_offset: Tuint16_t(916), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Dives_Akuru}, 64666 {Fname_offset: Tuint16_t(927), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Dogra}, 64667 {Fname_offset: Tuint16_t(932), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Dogra}, 64668 {Fname_offset: Tuint16_t(938), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Deseret}, 64669 {Fname_offset: Tuint16_t(943), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Duployan}, 64670 {Fname_offset: Tuint16_t(948), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Duployan}, 64671 {Fname_offset: Tuint16_t(957), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier_Base}, 64672 {Fname_offset: Tuint16_t(963), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Component}, 64673 {Fname_offset: Tuint16_t(969), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Egyptian_Hieroglyphs}, 64674 {Fname_offset: Tuint16_t(974), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Egyptian_Hieroglyphs}, 64675 {Fname_offset: Tuint16_t(994), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elbasan}, 64676 {Fname_offset: Tuint16_t(999), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elbasan}, 64677 {Fname_offset: Tuint16_t(1007), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elymaic}, 64678 {Fname_offset: Tuint16_t(1012), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elymaic}, 64679 {Fname_offset: Tuint16_t(1020), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier}, 64680 {Fname_offset: Tuint16_t(1025), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji}, 64681 {Fname_offset: Tuint16_t(1031), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Component}, 64682 {Fname_offset: Tuint16_t(1046), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier}, 64683 {Fname_offset: Tuint16_t(1060), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier_Base}, 64684 {Fname_offset: Tuint16_t(1078), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Presentation}, 64685 {Fname_offset: Tuint16_t(1096), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Presentation}, 64686 {Fname_offset: Tuint16_t(1102), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ethiopic}, 64687 {Fname_offset: Tuint16_t(1107), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ethiopic}, 64688 {Fname_offset: Tuint16_t(1116), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extender}, 64689 {Fname_offset: Tuint16_t(1120), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extended_Pictographic}, 64690 {Fname_offset: Tuint16_t(1141), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extender}, 64691 {Fname_offset: Tuint16_t(1150), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extended_Pictographic}, 64692 {Fname_offset: Tuint16_t(1158), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Georgian}, 64693 {Fname_offset: Tuint16_t(1163), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Georgian}, 64694 {Fname_offset: Tuint16_t(1172), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Glagolitic}, 64695 {Fname_offset: Tuint16_t(1177), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Glagolitic}, 64696 {Fname_offset: Tuint16_t(1188), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gunjala_Gondi}, 64697 {Fname_offset: Tuint16_t(1193), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Masaram_Gondi}, 64698 {Fname_offset: Tuint16_t(1198), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Gothic}, 64699 {Fname_offset: Tuint16_t(1203), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Gothic}, 64700 {Fname_offset: Tuint16_t(1210), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Grantha}, 64701 {Fname_offset: Tuint16_t(1215), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Grantha}, 64702 {Fname_offset: Tuint16_t(1223), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Base}, 64703 {Fname_offset: Tuint16_t(1236), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Extend}, 64704 {Fname_offset: Tuint16_t(1251), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Link}, 64705 {Fname_offset: Tuint16_t(1264), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Base}, 64706 {Fname_offset: Tuint16_t(1271), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Greek}, 64707 {Fname_offset: Tuint16_t(1277), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Greek}, 64708 {Fname_offset: Tuint16_t(1282), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Extend}, 64709 {Fname_offset: Tuint16_t(1288), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Link}, 64710 {Fname_offset: Tuint16_t(1295), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gujarati}, 64711 {Fname_offset: Tuint16_t(1304), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gujarati}, 64712 {Fname_offset: Tuint16_t(1309), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gunjala_Gondi}, 64713 {Fname_offset: Tuint16_t(1322), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gurmukhi}, 64714 {Fname_offset: Tuint16_t(1331), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gurmukhi}, 64715 {Fname_offset: Tuint16_t(1336), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Han}, 64716 {Fname_offset: Tuint16_t(1340), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hangul}, 64717 {Fname_offset: Tuint16_t(1345), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hangul}, 64718 {Fname_offset: Tuint16_t(1352), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Han}, 64719 {Fname_offset: Tuint16_t(1357), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanifi_Rohingya}, 64720 {Fname_offset: Tuint16_t(1372), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanunoo}, 64721 {Fname_offset: Tuint16_t(1377), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanunoo}, 64722 {Fname_offset: Tuint16_t(1385), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hatran}, 64723 {Fname_offset: Tuint16_t(1390), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hatran}, 64724 {Fname_offset: Tuint16_t(1397), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hebrew}, 64725 {Fname_offset: Tuint16_t(1402), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hebrew}, 64726 {Fname_offset: Tuint16_t(1409), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Hex_Digit}, 64727 {Fname_offset: Tuint16_t(1413), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Hex_Digit}, 64728 {Fname_offset: Tuint16_t(1422), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hiragana}, 64729 {Fname_offset: Tuint16_t(1427), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hiragana}, 64730 {Fname_offset: Tuint16_t(1436), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Anatolian_Hieroglyphs}, 64731 {Fname_offset: Tuint16_t(1441), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pahawh_Hmong}, 64732 {Fname_offset: Tuint16_t(1446), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nyiakeng_Puachue_Hmong}, 64733 {Fname_offset: Tuint16_t(1451), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Hungarian}, 64734 {Fname_offset: Tuint16_t(1456), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Continue}, 64735 {Fname_offset: Tuint16_t(1460), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Continue}, 64736 {Fname_offset: Tuint16_t(1471), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Ideographic}, 64737 {Fname_offset: Tuint16_t(1476), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Ideographic}, 64738 {Fname_offset: Tuint16_t(1488), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Start}, 64739 {Fname_offset: Tuint16_t(1492), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Binary_Operator}, 64740 {Fname_offset: Tuint16_t(1497), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Binary_Operator}, 64741 {Fname_offset: Tuint16_t(1515), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Trinary_Operator}, 64742 {Fname_offset: Tuint16_t(1520), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Start}, 64743 {Fname_offset: Tuint16_t(1528), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Trinary_Operator}, 64744 {Fname_offset: Tuint16_t(1547), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Imperial_Aramaic}, 64745 {Fname_offset: Tuint16_t(1563), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inherited}, 64746 {Fname_offset: Tuint16_t(1573), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Pahlavi}, 64747 {Fname_offset: Tuint16_t(1594), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Parthian}, 64748 {Fname_offset: Tuint16_t(1616), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Italic}, 64749 {Fname_offset: Tuint16_t(1621), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Javanese}, 64750 {Fname_offset: Tuint16_t(1626), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Javanese}, 64751 {Fname_offset: Tuint16_t(1635), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Join_Control}, 64752 {Fname_offset: Tuint16_t(1641), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Join_Control}, 64753 {Fname_offset: Tuint16_t(1653), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kaithi}, 64754 {Fname_offset: Tuint16_t(1660), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kayah_Li}, 64755 {Fname_offset: Tuint16_t(1665), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Katakana}, 64756 {Fname_offset: Tuint16_t(1670), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kannada}, 64757 {Fname_offset: Tuint16_t(1678), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Katakana}, 64758 {Fname_offset: Tuint16_t(1687), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kayah_Li}, 64759 {Fname_offset: Tuint16_t(1695), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Kharoshthi}, 64760 {Fname_offset: Tuint16_t(1700), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Kharoshthi}, 64761 {Fname_offset: Tuint16_t(1711), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khitan_Small_Script}, 64762 {Fname_offset: Tuint16_t(1729), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khmer}, 64763 {Fname_offset: Tuint16_t(1735), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khmer}, 64764 {Fname_offset: Tuint16_t(1740), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khojki}, 64765 {Fname_offset: Tuint16_t(1745), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khojki}, 64766 {Fname_offset: Tuint16_t(1752), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khudawadi}, 64767 {Fname_offset: Tuint16_t(1762), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khitan_Small_Script}, 64768 {Fname_offset: Tuint16_t(1767), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kannada}, 64769 {Fname_offset: Tuint16_t(1772), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kaithi}, 64770 {Fname_offset: Tuint16_t(1777), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_L}, 64771 {Fname_offset: Tuint16_t(1779), Ftype: Tuint16_t(DPT_LAMP)}, 64772 {Fname_offset: Tuint16_t(1782), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Tham}, 64773 {Fname_offset: Tuint16_t(1787), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lao}, 64774 {Fname_offset: Tuint16_t(1791), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lao}, 64775 {Fname_offset: Tuint16_t(1796), Ftype: Tuint16_t(DPT_SCX)}, 64776 {Fname_offset: Tuint16_t(1802), Ftype: Tuint16_t(DPT_SCX)}, 64777 {Fname_offset: Tuint16_t(1807), Ftype: Tuint16_t(DPT_LAMP)}, 64778 {Fname_offset: Tuint16_t(1810), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lepcha}, 64779 {Fname_offset: Tuint16_t(1815), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lepcha}, 64780 {Fname_offset: Tuint16_t(1822), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Limbu}, 64781 {Fname_offset: Tuint16_t(1827), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Limbu}, 64782 {Fname_offset: Tuint16_t(1833), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_A}, 64783 {Fname_offset: Tuint16_t(1838), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_B}, 64784 {Fname_offset: Tuint16_t(1843), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_A}, 64785 {Fname_offset: Tuint16_t(1851), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_B}, 64786 {Fname_offset: Tuint16_t(1859), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lisu}, 64787 {Fname_offset: Tuint16_t(1864), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Ll}, 64788 {Fname_offset: Tuint16_t(1867), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lm}, 64789 {Fname_offset: Tuint16_t(1870), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lo}, 64790 {Fname_offset: Tuint16_t(1873), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Logical_Order_Exception}, 64791 {Fname_offset: Tuint16_t(1877), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Logical_Order_Exception}, 64792 {Fname_offset: Tuint16_t(1899), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Lowercase}, 64793 {Fname_offset: Tuint16_t(1905), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Lowercase}, 64794 {Fname_offset: Tuint16_t(1915), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lt}, 64795 {Fname_offset: Tuint16_t(1918), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lu}, 64796 {Fname_offset: Tuint16_t(1921), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lycian}, 64797 {Fname_offset: Tuint16_t(1926), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lycian}, 64798 {Fname_offset: Tuint16_t(1933), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lydian}, 64799 {Fname_offset: Tuint16_t(1938), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lydian}, 64800 {Fname_offset: Tuint16_t(1945), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_M}, 64801 {Fname_offset: Tuint16_t(1947), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mahajani}, 64802 {Fname_offset: Tuint16_t(1956), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mahajani}, 64803 {Fname_offset: Tuint16_t(1961), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Makasar}, 64804 {Fname_offset: Tuint16_t(1966), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Makasar}, 64805 {Fname_offset: Tuint16_t(1974), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Malayalam}, 64806 {Fname_offset: Tuint16_t(1984), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mandaic}, 64807 {Fname_offset: Tuint16_t(1989), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mandaic}, 64808 {Fname_offset: Tuint16_t(1997), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Manichaean}, 64809 {Fname_offset: Tuint16_t(2002), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Manichaean}, 64810 {Fname_offset: Tuint16_t(2013), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Marchen}, 64811 {Fname_offset: Tuint16_t(2018), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Marchen}, 64812 {Fname_offset: Tuint16_t(2026), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Masaram_Gondi}, 64813 {Fname_offset: Tuint16_t(2039), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Math}, 64814 {Fname_offset: Tuint16_t(2044), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Mc}, 64815 {Fname_offset: Tuint16_t(2047), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Me}, 64816 {Fname_offset: Tuint16_t(2050), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Medefaidrin}, 64817 {Fname_offset: Tuint16_t(2062), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Medefaidrin}, 64818 {Fname_offset: Tuint16_t(2067), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meetei_Mayek}, 64819 {Fname_offset: Tuint16_t(2079), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mende_Kikakui}, 64820 {Fname_offset: Tuint16_t(2084), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mende_Kikakui}, 64821 {Fname_offset: Tuint16_t(2097), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Cursive}, 64822 {Fname_offset: Tuint16_t(2102), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Hieroglyphs}, 64823 {Fname_offset: Tuint16_t(2107), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Cursive}, 64824 {Fname_offset: Tuint16_t(2123), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Hieroglyphs}, 64825 {Fname_offset: Tuint16_t(2143), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Miao}, 64826 {Fname_offset: Tuint16_t(2148), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Malayalam}, 64827 {Fname_offset: Tuint16_t(2153), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Mn}, 64828 {Fname_offset: Tuint16_t(2156), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Modi}, 64829 {Fname_offset: Tuint16_t(2161), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mongolian}, 64830 {Fname_offset: Tuint16_t(2166), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mongolian}, 64831 {Fname_offset: Tuint16_t(2176), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mro}, 64832 {Fname_offset: Tuint16_t(2180), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mro}, 64833 {Fname_offset: Tuint16_t(2185), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meetei_Mayek}, 64834 {Fname_offset: Tuint16_t(2190), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Multani}, 64835 {Fname_offset: Tuint16_t(2195), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Multani}, 64836 {Fname_offset: Tuint16_t(2203), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Myanmar}, 64837 {Fname_offset: Tuint16_t(2211), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Myanmar}, 64838 {Fname_offset: Tuint16_t(2216), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_N}, 64839 {Fname_offset: Tuint16_t(2218), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nabataean}, 64840 {Fname_offset: Tuint16_t(2228), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nandinagari}, 64841 {Fname_offset: Tuint16_t(2233), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nandinagari}, 64842 {Fname_offset: Tuint16_t(2245), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_North_Arabian}, 64843 {Fname_offset: Tuint16_t(2250), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nabataean}, 64844 {Fname_offset: Tuint16_t(2255), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Noncharacter_Code_Point}, 64845 {Fname_offset: Tuint16_t(2261), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Nd}, 64846 {Fname_offset: Tuint16_t(2264), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Newa}, 64847 {Fname_offset: Tuint16_t(2269), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_New_Tai_Lue}, 64848 {Fname_offset: Tuint16_t(2279), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nko}, 64849 {Fname_offset: Tuint16_t(2283), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nko}, 64850 {Fname_offset: Tuint16_t(2288), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Nl}, 64851 {Fname_offset: Tuint16_t(2291), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_No}, 64852 {Fname_offset: Tuint16_t(2294), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Noncharacter_Code_Point}, 64853 {Fname_offset: Tuint16_t(2316), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nushu}, 64854 {Fname_offset: Tuint16_t(2321), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nushu}, 64855 {Fname_offset: Tuint16_t(2327), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nyiakeng_Puachue_Hmong}, 64856 {Fname_offset: Tuint16_t(2348), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ogham}, 64857 {Fname_offset: Tuint16_t(2353), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ogham}, 64858 {Fname_offset: Tuint16_t(2359), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ol_Chiki}, 64859 {Fname_offset: Tuint16_t(2367), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ol_Chiki}, 64860 {Fname_offset: Tuint16_t(2372), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Hungarian}, 64861 {Fname_offset: Tuint16_t(2385), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Italic}, 64862 {Fname_offset: Tuint16_t(2395), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_North_Arabian}, 64863 {Fname_offset: Tuint16_t(2411), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Permic}, 64864 {Fname_offset: Tuint16_t(2421), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Persian}, 64865 {Fname_offset: Tuint16_t(2432), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Sogdian}, 64866 {Fname_offset: Tuint16_t(2443), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_South_Arabian}, 64867 {Fname_offset: Tuint16_t(2459), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Turkic}, 64868 {Fname_offset: Tuint16_t(2469), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Uyghur}, 64869 {Fname_offset: Tuint16_t(2479), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Oriya}, 64870 {Fname_offset: Tuint16_t(2485), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Turkic}, 64871 {Fname_offset: Tuint16_t(2490), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Oriya}, 64872 {Fname_offset: Tuint16_t(2495), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osage}, 64873 {Fname_offset: Tuint16_t(2501), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osage}, 64874 {Fname_offset: Tuint16_t(2506), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osmanya}, 64875 {Fname_offset: Tuint16_t(2511), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osmanya}, 64876 {Fname_offset: Tuint16_t(2519), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Uyghur}, 64877 {Fname_offset: Tuint16_t(2524), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_P}, 64878 {Fname_offset: Tuint16_t(2526), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pahawh_Hmong}, 64879 {Fname_offset: Tuint16_t(2538), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Palmyrene}, 64880 {Fname_offset: Tuint16_t(2543), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Palmyrene}, 64881 {Fname_offset: Tuint16_t(2553), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_Syntax}, 64882 {Fname_offset: Tuint16_t(2560), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_Syntax}, 64883 {Fname_offset: Tuint16_t(2574), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_White_Space}, 64884 {Fname_offset: Tuint16_t(2592), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_White_Space}, 64885 {Fname_offset: Tuint16_t(2598), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pau_Cin_Hau}, 64886 {Fname_offset: Tuint16_t(2603), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pau_Cin_Hau}, 64887 {Fname_offset: Tuint16_t(2613), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pc}, 64888 {Fname_offset: Tuint16_t(2616), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Prepended_Concatenation_Mark}, 64889 {Fname_offset: Tuint16_t(2620), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pd}, 64890 {Fname_offset: Tuint16_t(2623), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pe}, 64891 {Fname_offset: Tuint16_t(2626), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Permic}, 64892 {Fname_offset: Tuint16_t(2631), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pf}, 64893 {Fname_offset: Tuint16_t(2634), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Phags_Pa}, 64894 {Fname_offset: Tuint16_t(2639), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Phags_Pa}, 64895 {Fname_offset: Tuint16_t(2647), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Pahlavi}, 64896 {Fname_offset: Tuint16_t(2652), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Psalter_Pahlavi}, 64897 {Fname_offset: Tuint16_t(2657), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Phoenician}, 64898 {Fname_offset: Tuint16_t(2662), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Phoenician}, 64899 {Fname_offset: Tuint16_t(2673), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pi}, 64900 {Fname_offset: Tuint16_t(2676), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Miao}, 64901 {Fname_offset: Tuint16_t(2681), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Po}, 64902 {Fname_offset: Tuint16_t(2684), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Prepended_Concatenation_Mark}, 64903 {Fname_offset: Tuint16_t(2711), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Parthian}, 64904 {Fname_offset: Tuint16_t(2716), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Ps}, 64905 {Fname_offset: Tuint16_t(2719), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Psalter_Pahlavi}, 64906 {Fname_offset: Tuint16_t(2734), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Coptic}, 64907 {Fname_offset: Tuint16_t(2739), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inherited}, 64908 {Fname_offset: Tuint16_t(2744), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Quotation_Mark}, 64909 {Fname_offset: Tuint16_t(2750), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Quotation_Mark}, 64910 {Fname_offset: Tuint16_t(2764), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Radical}, 64911 {Fname_offset: Tuint16_t(2772), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Regional_Indicator}, 64912 {Fname_offset: Tuint16_t(2790), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Rejang}, 64913 {Fname_offset: Tuint16_t(2797), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Regional_Indicator}, 64914 {Fname_offset: Tuint16_t(2800), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Rejang}, 64915 {Fname_offset: Tuint16_t(2805), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanifi_Rohingya}, 64916 {Fname_offset: Tuint16_t(2810), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Runic}, 64917 {Fname_offset: Tuint16_t(2816), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Runic}, 64918 {Fname_offset: Tuint16_t(2821), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_S}, 64919 {Fname_offset: Tuint16_t(2823), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Samaritan}, 64920 {Fname_offset: Tuint16_t(2833), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Samaritan}, 64921 {Fname_offset: Tuint16_t(2838), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_South_Arabian}, 64922 {Fname_offset: Tuint16_t(2843), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Saurashtra}, 64923 {Fname_offset: Tuint16_t(2848), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Saurashtra}, 64924 {Fname_offset: Tuint16_t(2859), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Sc}, 64925 {Fname_offset: Tuint16_t(2862), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Soft_Dotted}, 64926 {Fname_offset: Tuint16_t(2865), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Sentence_Terminal}, 64927 {Fname_offset: Tuint16_t(2882), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_SignWriting}, 64928 {Fname_offset: Tuint16_t(2887), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sharada}, 64929 {Fname_offset: Tuint16_t(2895), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Shavian}, 64930 {Fname_offset: Tuint16_t(2903), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Shavian}, 64931 {Fname_offset: Tuint16_t(2908), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sharada}, 64932 {Fname_offset: Tuint16_t(2913), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Siddham}, 64933 {Fname_offset: Tuint16_t(2918), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Siddham}, 64934 {Fname_offset: Tuint16_t(2926), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_SignWriting}, 64935 {Fname_offset: Tuint16_t(2938), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khudawadi}, 64936 {Fname_offset: Tuint16_t(2943), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sinhala}, 64937 {Fname_offset: Tuint16_t(2948), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sinhala}, 64938 {Fname_offset: Tuint16_t(2956), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Sk}, 64939 {Fname_offset: Tuint16_t(2959), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Sm}, 64940 {Fname_offset: Tuint16_t(2962), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_So}, 64941 {Fname_offset: Tuint16_t(2965), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Soft_Dotted}, 64942 {Fname_offset: Tuint16_t(2976), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sogdian}, 64943 {Fname_offset: Tuint16_t(2981), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sogdian}, 64944 {Fname_offset: Tuint16_t(2989), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Sogdian}, 64945 {Fname_offset: Tuint16_t(2994), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sora_Sompeng}, 64946 {Fname_offset: Tuint16_t(2999), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sora_Sompeng}, 64947 {Fname_offset: Tuint16_t(3011), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Soyombo}, 64948 {Fname_offset: Tuint16_t(3016), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Soyombo}, 64949 {Fname_offset: Tuint16_t(3024), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_White_Space}, 64950 {Fname_offset: Tuint16_t(3030), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Sentence_Terminal}, 64951 {Fname_offset: Tuint16_t(3036), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sundanese}, 64952 {Fname_offset: Tuint16_t(3041), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sundanese}, 64953 {Fname_offset: Tuint16_t(3051), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syloti_Nagri}, 64954 {Fname_offset: Tuint16_t(3056), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syloti_Nagri}, 64955 {Fname_offset: Tuint16_t(3068), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syriac}, 64956 {Fname_offset: Tuint16_t(3073), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syriac}, 64957 {Fname_offset: Tuint16_t(3080), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagalog}, 64958 {Fname_offset: Tuint16_t(3088), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagbanwa}, 64959 {Fname_offset: Tuint16_t(3093), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagbanwa}, 64960 {Fname_offset: Tuint16_t(3102), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tai_Le}, 64961 {Fname_offset: Tuint16_t(3108), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Tham}, 64962 {Fname_offset: Tuint16_t(3116), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Viet}, 64963 {Fname_offset: Tuint16_t(3124), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Takri}, 64964 {Fname_offset: Tuint16_t(3129), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Takri}, 64965 {Fname_offset: Tuint16_t(3135), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tai_Le}, 64966 {Fname_offset: Tuint16_t(3140), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_New_Tai_Lue}, 64967 {Fname_offset: Tuint16_t(3145), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tamil}, 64968 {Fname_offset: Tuint16_t(3151), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tamil}, 64969 {Fname_offset: Tuint16_t(3156), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangut}, 64970 {Fname_offset: Tuint16_t(3161), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangsa}, 64971 {Fname_offset: Tuint16_t(3168), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangut}, 64972 {Fname_offset: Tuint16_t(3175), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Viet}, 64973 {Fname_offset: Tuint16_t(3180), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Telugu}, 64974 {Fname_offset: Tuint16_t(3185), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Telugu}, 64975 {Fname_offset: Tuint16_t(3192), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Terminal_Punctuation}, 64976 {Fname_offset: Tuint16_t(3197), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Terminal_Punctuation}, 64977 {Fname_offset: Tuint16_t(3217), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tifinagh}, 64978 {Fname_offset: Tuint16_t(3222), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagalog}, 64979 {Fname_offset: Tuint16_t(3227), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Thaana}, 64980 {Fname_offset: Tuint16_t(3232), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Thaana}, 64981 {Fname_offset: Tuint16_t(3239), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Thai}, 64982 {Fname_offset: Tuint16_t(3244), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tibetan}, 64983 {Fname_offset: Tuint16_t(3252), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tibetan}, 64984 {Fname_offset: Tuint16_t(3257), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tifinagh}, 64985 {Fname_offset: Tuint16_t(3266), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tirhuta}, 64986 {Fname_offset: Tuint16_t(3271), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tirhuta}, 64987 {Fname_offset: Tuint16_t(3279), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangsa}, 64988 {Fname_offset: Tuint16_t(3284), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Toto}, 64989 {Fname_offset: Tuint16_t(3289), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ugaritic}, 64990 {Fname_offset: Tuint16_t(3294), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ugaritic}, 64991 {Fname_offset: Tuint16_t(3303), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Unified_Ideograph}, 64992 {Fname_offset: Tuint16_t(3309), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Unified_Ideograph}, 64993 {Fname_offset: Tuint16_t(3326), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Unknown}, 64994 {Fname_offset: Tuint16_t(3334), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Uppercase}, 64995 {Fname_offset: Tuint16_t(3340), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Uppercase}, 64996 {Fname_offset: Tuint16_t(3350), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vai}, 64997 {Fname_offset: Tuint16_t(3354), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vai}, 64998 {Fname_offset: Tuint16_t(3359), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Variation_Selector}, 64999 {Fname_offset: Tuint16_t(3377), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vithkuqi}, 65000 {Fname_offset: Tuint16_t(3382), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vithkuqi}, 65001 {Fname_offset: Tuint16_t(3391), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Variation_Selector}, 65002 {Fname_offset: Tuint16_t(3394), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Wancho}, 65003 {Fname_offset: Tuint16_t(3401), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Warang_Citi}, 65004 {Fname_offset: Tuint16_t(3406), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Warang_Citi}, 65005 {Fname_offset: Tuint16_t(3417), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Wancho}, 65006 {Fname_offset: Tuint16_t(3422), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_White_Space}, 65007 {Fname_offset: Tuint16_t(3433), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_White_Space}, 65008 {Fname_offset: Tuint16_t(3440), Ftype: Tuint16_t(DPT_ALNUM)}, 65009 {Fname_offset: Tuint16_t(3444), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Continue}, 65010 {Fname_offset: Tuint16_t(3449), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Continue}, 65011 {Fname_offset: Tuint16_t(3461), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Start}, 65012 {Fname_offset: Tuint16_t(3466), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Start}, 65013 {Fname_offset: Tuint16_t(3475), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Persian}, 65014 {Fname_offset: Tuint16_t(3480), Ftype: Tuint16_t(DPT_PXSPACE)}, 65015 {Fname_offset: Tuint16_t(3484), Ftype: Tuint16_t(DPT_SPACE)}, 65016 {Fname_offset: Tuint16_t(3488), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cuneiform}, 65017 {Fname_offset: Tuint16_t(3493), Ftype: Tuint16_t(DPT_UCNC)}, 65018 {Fname_offset: Tuint16_t(3497), Ftype: Tuint16_t(DPT_WORD)}, 65019 {Fname_offset: Tuint16_t(3501), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yezidi}, 65020 {Fname_offset: Tuint16_t(3506), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yezidi}, 65021 {Fname_offset: Tuint16_t(3513), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yi}, 65022 {Fname_offset: Tuint16_t(3516), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yi}, 65023 {Fname_offset: Tuint16_t(3521), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_Z}, 65024 {Fname_offset: Tuint16_t(3523), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Zanabazar_Square}, 65025 {Fname_offset: Tuint16_t(3539), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Zanabazar_Square}, 65026 {Fname_offset: Tuint16_t(3544), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inherited}, 65027 {Fname_offset: Tuint16_t(3549), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Zl}, 65028 {Fname_offset: Tuint16_t(3552), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Zp}, 65029 {Fname_offset: Tuint16_t(3555), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Zs}, 65030 {Fname_offset: Tuint16_t(3558), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Common}, 65031 {Fname_offset: Tuint16_t(3563), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Unknown}, 65032 } /* pcre2_ucptables.c:1031:22 */ 65033 65034 var X_pcre2_utt_size_8 Tsize_t = uint64(unsafe.Sizeof(X_pcre2_utt_8)) / uint64(unsafe.Sizeof(Tucp_type_table{})) /* pcre2_ucptables.c:1520:14 */ 65035 65036 // End of pcre2_ucptables.c 65037 65038 // End of pcre2_tables.c 65039 65040 // This function is needed only when memmove() is not available. 65041 65042 // End of pcre2_internal.h 65043 65044 // The tables herein are needed only when UCP support is built, and in PCRE2 65045 // that happens automatically with UTF support. This module should not be 65046 // referenced otherwise, so it should not matter whether it is compiled or not. 65047 // However a comment was received about space saving - maybe the guy linked all 65048 // the modules rather than using a library - so we include a condition to cut out 65049 // the tables when not needed. But don't leave a totally empty module because some 65050 // compilers barf at that. Instead, just supply some small dummy tables. 65051 65052 // Total size: 111116 bytes, block size: 128. 65053 65054 var X_pcre2_unicode_version_8 uintptr = ts + 11252 /* "14.0.0" */ /* pcre2_ucd.c:79:12 */ 65055 65056 // When recompiling tables with a new Unicode version, please check the types 65057 // in this structure definition with those in pcre2_internal.h (the actual field 65058 // names will be different). 65059 // 65060 // typedef struct { 65061 // uint8_t property_0; 65062 // uint8_t property_1; 65063 // uint8_t property_2; 65064 // uint8_t property_3; 65065 // int32_t property_4; 65066 // uint16_t property_5; 65067 // uint16_t property_6; 65068 // } ucd_record; 65069 65070 // If the 32-bit library is run in non-32-bit mode, character values greater 65071 // than 0x10ffff may be encountered. For these we set up a special record. 65072 65073 // This table contains lists of characters that are caseless sets of 65074 // more than one character. Each list is terminated by NOTACHAR. 65075 65076 var X_pcre2_ucd_caseless_sets_8 = [112]Tuint32_t{ 65077 DNOTACHAR, 65078 Tuint32_t(0x0053), Tuint32_t(0x0073), Tuint32_t(0x017f), DNOTACHAR, 65079 Tuint32_t(0x01c4), Tuint32_t(0x01c5), Tuint32_t(0x01c6), DNOTACHAR, 65080 Tuint32_t(0x01c7), Tuint32_t(0x01c8), Tuint32_t(0x01c9), DNOTACHAR, 65081 Tuint32_t(0x01ca), Tuint32_t(0x01cb), Tuint32_t(0x01cc), DNOTACHAR, 65082 Tuint32_t(0x01f1), Tuint32_t(0x01f2), Tuint32_t(0x01f3), DNOTACHAR, 65083 Tuint32_t(0x0345), Tuint32_t(0x0399), Tuint32_t(0x03b9), Tuint32_t(0x1fbe), DNOTACHAR, 65084 Tuint32_t(0x00b5), Tuint32_t(0x039c), Tuint32_t(0x03bc), DNOTACHAR, 65085 Tuint32_t(0x03a3), Tuint32_t(0x03c2), Tuint32_t(0x03c3), DNOTACHAR, 65086 Tuint32_t(0x0392), Tuint32_t(0x03b2), Tuint32_t(0x03d0), DNOTACHAR, 65087 Tuint32_t(0x0398), Tuint32_t(0x03b8), Tuint32_t(0x03d1), Tuint32_t(0x03f4), DNOTACHAR, 65088 Tuint32_t(0x03a6), Tuint32_t(0x03c6), Tuint32_t(0x03d5), DNOTACHAR, 65089 Tuint32_t(0x03a0), Tuint32_t(0x03c0), Tuint32_t(0x03d6), DNOTACHAR, 65090 Tuint32_t(0x039a), Tuint32_t(0x03ba), Tuint32_t(0x03f0), DNOTACHAR, 65091 Tuint32_t(0x03a1), Tuint32_t(0x03c1), Tuint32_t(0x03f1), DNOTACHAR, 65092 Tuint32_t(0x0395), Tuint32_t(0x03b5), Tuint32_t(0x03f5), DNOTACHAR, 65093 Tuint32_t(0x0412), Tuint32_t(0x0432), Tuint32_t(0x1c80), DNOTACHAR, 65094 Tuint32_t(0x0414), Tuint32_t(0x0434), Tuint32_t(0x1c81), DNOTACHAR, 65095 Tuint32_t(0x041e), Tuint32_t(0x043e), Tuint32_t(0x1c82), DNOTACHAR, 65096 Tuint32_t(0x0421), Tuint32_t(0x0441), Tuint32_t(0x1c83), DNOTACHAR, 65097 Tuint32_t(0x0422), Tuint32_t(0x0442), Tuint32_t(0x1c84), Tuint32_t(0x1c85), DNOTACHAR, 65098 Tuint32_t(0x042a), Tuint32_t(0x044a), Tuint32_t(0x1c86), DNOTACHAR, 65099 Tuint32_t(0x0462), Tuint32_t(0x0463), Tuint32_t(0x1c87), DNOTACHAR, 65100 Tuint32_t(0x1e60), Tuint32_t(0x1e61), Tuint32_t(0x1e9b), DNOTACHAR, 65101 Tuint32_t(0x03a9), Tuint32_t(0x03c9), Tuint32_t(0x2126), DNOTACHAR, 65102 Tuint32_t(0x004b), Tuint32_t(0x006b), Tuint32_t(0x212a), DNOTACHAR, 65103 Tuint32_t(0x00c5), Tuint32_t(0x00e5), Tuint32_t(0x212b), DNOTACHAR, 65104 Tuint32_t(0x1c88), Tuint32_t(0xa64a), Tuint32_t(0xa64b), DNOTACHAR, 65105 } /* pcre2_ucd.c:114:16 */ 65106 65107 // When #included in pcre2test, we don't need the table of digit sets, nor the 65108 // the large main UCD tables. 65109 65110 // This table lists the code points for the '9' characters in each set of 65111 // decimal digits. It is used to ensure that all the digits in a script run come 65112 // from the same set. 65113 65114 var X_pcre2_ucd_digit_sets_8 = [67]Tuint32_t{ 65115 Tuint32_t(66), // Number of subsequent values 65116 Tuint32_t(0x00039), Tuint32_t(0x00669), Tuint32_t(0x006f9), Tuint32_t(0x007c9), Tuint32_t(0x0096f), Tuint32_t(0x009ef), Tuint32_t(0x00a6f), Tuint32_t(0x00aef), 65117 Tuint32_t(0x00b6f), Tuint32_t(0x00bef), Tuint32_t(0x00c6f), Tuint32_t(0x00cef), Tuint32_t(0x00d6f), Tuint32_t(0x00def), Tuint32_t(0x00e59), Tuint32_t(0x00ed9), 65118 Tuint32_t(0x00f29), Tuint32_t(0x01049), Tuint32_t(0x01099), Tuint32_t(0x017e9), Tuint32_t(0x01819), Tuint32_t(0x0194f), Tuint32_t(0x019d9), Tuint32_t(0x01a89), 65119 Tuint32_t(0x01a99), Tuint32_t(0x01b59), Tuint32_t(0x01bb9), Tuint32_t(0x01c49), Tuint32_t(0x01c59), Tuint32_t(0x0a629), Tuint32_t(0x0a8d9), Tuint32_t(0x0a909), 65120 Tuint32_t(0x0a9d9), Tuint32_t(0x0a9f9), Tuint32_t(0x0aa59), Tuint32_t(0x0abf9), Tuint32_t(0x0ff19), Tuint32_t(0x104a9), Tuint32_t(0x10d39), Tuint32_t(0x1106f), 65121 Tuint32_t(0x110f9), Tuint32_t(0x1113f), Tuint32_t(0x111d9), Tuint32_t(0x112f9), Tuint32_t(0x11459), Tuint32_t(0x114d9), Tuint32_t(0x11659), Tuint32_t(0x116c9), 65122 Tuint32_t(0x11739), Tuint32_t(0x118e9), Tuint32_t(0x11959), Tuint32_t(0x11c59), Tuint32_t(0x11d59), Tuint32_t(0x11da9), Tuint32_t(0x16a69), Tuint32_t(0x16ac9), 65123 Tuint32_t(0x16b59), Tuint32_t(0x1d7d7), Tuint32_t(0x1d7e1), Tuint32_t(0x1d7eb), Tuint32_t(0x1d7f5), Tuint32_t(0x1d7ff), Tuint32_t(0x1e149), Tuint32_t(0x1e2f9), 65124 Tuint32_t(0x1e959), Tuint32_t(0x1fbf9), 65125 } /* pcre2_ucd.c:154:16 */ 65126 65127 // This vector is a list of script bitsets for the Script Extension property. 65128 // The number of 32-bit words in each bitset is #defined in pcre2_ucp.h as 65129 // ucd_script_sets_item_size. 65130 65131 var X_pcre2_ucd_script_sets_8 = [189]Tuint32_t{ 65132 0x00000000, 0x00000000, 0x00000000, 65133 0x00000080, 0x00000000, 0x00000000, 65134 0x00000040, 0x00000000, 0x00000000, 65135 0x00000000, 0x00004000, 0x00000000, 65136 0x00000002, 0x00000000, 0x00000000, 65137 0x00800000, 0x00000000, 0x00000000, 65138 0x00000001, 0x00000000, 0x00000000, 65139 0x00000000, 0x00000000, 0x00000001, 65140 0x00000010, 0x00000000, 0x00000000, 65141 0x00000008, 0x00000004, 0x00000000, 65142 0x00000008, 0x40000000, 0x00000000, 65143 0x00000008, 0x00000040, 0x00000000, 65144 0x00000018, 0x00000000, 0x00000000, 65145 0x00000028, 0x00000000, 0x00000000, 65146 0x000000c0, 0x00000000, 0x00000000, 65147 0x00c00000, 0x00000000, 0x00000000, 65148 0x00000000, 0x00000102, 0x00000000, 65149 0x80000000, 0x00000001, 0x00000000, 65150 0x00000004, 0x00000008, 0x00000000, 65151 0x00000005, 0x00000000, 0x00000000, 65152 0x00000004, 0x00200000, 0x00000000, 65153 0x00000014, 0x00000000, 0x00000000, 65154 0x00000040, 0x00008000, 0x00000000, 65155 0x00000040, 0x00000000, 0x00000001, 65156 0x00000040, 0x00001000, 0x00000000, 65157 0x00000840, 0x00000000, 0x00000000, 65158 0x00020001, 0x00000000, 0x00000000, 65159 0x00000800, 0x00008000, 0x00000000, 65160 0x00000200, 0x00010000, 0x00000000, 65161 0x00000100, 0x02000000, 0x00000000, 65162 0x00800001, 0x00000000, 0x00000000, 65163 0x00300000, 0x00000000, 0x00000000, 65164 0x00002000, 0x00000000, 0x00000001, 65165 0x00080001, 0x00000000, 0x00000000, 65166 0x00000000, 0x00080000, 0x00000008, 65167 0x00080000, 0x00000020, 0x00000000, 65168 0x00000038, 0x00000000, 0x00000000, 65169 0x00000028, 0x00000000, 0x00000002, 65170 0x00000080, 0x00000810, 0x00000000, 65171 0x40010000, 0x00000800, 0x00000000, 65172 0x80000000, 0x00000001, 0x00000004, 65173 0x80000000, 0x00020001, 0x00000000, 65174 0x00002040, 0x00008000, 0x00000000, 65175 0x00000041, 0x00008000, 0x00000000, 65176 0x00b00000, 0x00000000, 0x00000000, 65177 0x00010001, 0x00000080, 0x00000000, 65178 0x000020c0, 0x00008000, 0x00000000, 65179 0x1e000000, 0x00000000, 0x00000000, 65180 0x00000040, 0x10040200, 0x00000000, 65181 0x00f40000, 0x00000000, 0x00000000, 65182 0x00000038, 0x40000040, 0x00000002, 65183 0x01f40000, 0x00000000, 0x00000000, 65184 0x00007c40, 0x00000000, 0x00000000, 65185 0x00000038, 0x44000040, 0x00000002, 65186 0x000034c0, 0x01008000, 0x00000001, 65187 0x00000018, 0xc4480400, 0x00000008, 65188 0x00000340, 0x11952200, 0x00000000, 65189 0x00007fc1, 0x01008000, 0x00000000, 65190 0x00007fc1, 0x01009000, 0x00000000, 65191 0x00002340, 0x11952200, 0x00000001, 65192 0x00006340, 0x11952200, 0x00000001, 65193 0x0000ffc0, 0x3984a010, 0x00000001, 65194 0x2000ffc0, 0x3984a010, 0x00000001, 65195 } /* pcre2_ucd.c:171:16 */ 65196 65197 // This vector is a list of bitsets for Boolean properties. The number of 65198 // 32_bit words in each bitset is #defined as ucd_boolprop_sets_item_size in 65199 // pcre2_ucp.h. 65200 65201 var X_pcre2_ucd_boolprop_sets_8 = [354]Tuint32_t{ 65202 0x00000000, 0x00000000, 65203 0x00000001, 0x00000000, 65204 0x00000001, 0x00020040, 65205 0x00800001, 0x00020040, 65206 0x00800001, 0x00002820, 65207 0x00800001, 0x00000120, 65208 0x00830001, 0x00000020, 65209 0x00800001, 0x00000020, 65210 0x00800021, 0x00000120, 65211 0x00800011, 0x00000020, 65212 0x00800001, 0x00000028, 65213 0x00800001, 0x00002020, 65214 0x00801001, 0x00000020, 65215 0x00800021, 0x00002820, 65216 0x24830003, 0x00040000, 65217 0x00800021, 0x00002020, 65218 0x00800011, 0x00000028, 65219 0x648003c7, 0x000c8000, 65220 0x608003c5, 0x000c8000, 65221 0x00808021, 0x00000028, 65222 0x20800001, 0x00040000, 65223 0x00808021, 0x00000020, 65224 0x64800d47, 0x000c0004, 65225 0x60800d45, 0x000c0004, 65226 0x60800d45, 0x000c1004, 65227 0x00000000, 0x00020040, 65228 0x00800000, 0x00020000, 65229 0x00800000, 0x00000020, 65230 0x00808020, 0x00000000, 65231 0x00a10000, 0x00000020, 65232 0x60800044, 0x000c0004, 65233 0x00800010, 0x00000120, 65234 0x00800000, 0x00000028, 65235 0x00002020, 0x00000000, 65236 0x00800000, 0x00000000, 65237 0x60800dc4, 0x000c0004, 65238 0x20c08020, 0x00040000, 65239 0x608003c4, 0x000c8000, 65240 0x60800d44, 0x000c0004, 65241 0x60800d44, 0x000c1004, 65242 0x60804dc4, 0x000c0004, 65243 0x60800004, 0x000c0000, 65244 0x608007c4, 0x000c8000, 65245 0x60800bc4, 0x000c0000, 65246 0x60808064, 0x000c0004, 65247 0x60808064, 0x000c1004, 65248 0x60808024, 0x000c0000, 65249 0x60c08024, 0x000c0000, 65250 0x21008020, 0x00040000, 65251 0x21008de4, 0x00040004, 65252 0x21002020, 0x00040000, 65253 0x21000020, 0x00040000, 65254 0x60808064, 0x00000004, 65255 0x00800000, 0x00002000, 65256 0x20800020, 0x00042000, 65257 0x60800dc4, 0x000c000c, 65258 0x60800044, 0x000c8008, 65259 0x60800044, 0x000c8000, 65260 0x608003c4, 0x000c8008, 65261 0x00800000, 0x00000008, 65262 0x01000020, 0x00000000, 65263 0x00800020, 0x00000000, 65264 0x00800000, 0x00002800, 65265 0x00801000, 0x00000000, 65266 0x21008024, 0x00040000, 65267 0x21000024, 0x00040000, 65268 0x00000020, 0x00000080, 65269 0x00002028, 0x00000000, 65270 0x60c00024, 0x000c0000, 65271 0x20800000, 0x00040000, 65272 0x60804004, 0x000c0000, 65273 0x60800024, 0x000c0000, 65274 0x20800004, 0x00040000, 65275 0x23008020, 0x00040000, 65276 0x21000004, 0x00040000, 65277 0x21408020, 0x00040000, 65278 0x60800004, 0x00040000, 65279 0x23000024, 0x00040000, 65280 0x60800004, 0x000c0002, 65281 0x00800010, 0x00000000, 65282 0x20808000, 0x00040000, 65283 0x21004024, 0x00040000, 65284 0x20808004, 0x00040000, 65285 0x60800944, 0x000c0004, 65286 0x60802004, 0x000c0000, 65287 0x60800344, 0x000c8000, 65288 0x22808000, 0x00040000, 65289 0x22800000, 0x00040000, 65290 0x00c00000, 0x00000000, 65291 0x21002020, 0x00050000, 65292 0x61000024, 0x000c0000, 65293 0x23000020, 0x00040000, 65294 0x01008020, 0x00000000, 65295 0x21408024, 0x00040000, 65296 0x00808000, 0x00000000, 65297 0x60800064, 0x000c0004, 65298 0x60800044, 0x000c1004, 65299 0x60800064, 0x000c1004, 65300 0x01002020, 0x00000001, 65301 0x00022020, 0x00000001, 65302 0x00002028, 0x00000040, 65303 0x00801000, 0x00000020, 65304 0x00800020, 0x00000120, 65305 0x00800000, 0x00000120, 65306 0x00800020, 0x00000020, 65307 0x00a10000, 0x00002820, 65308 0x00800000, 0x00002820, 65309 0x20800000, 0x00040008, 65310 0x00800010, 0x00000020, 65311 0x00002020, 0x00000008, 65312 0x00002000, 0x00000000, 65313 0x00006020, 0x00000000, 65314 0x00801000, 0x00000008, 65315 0x00800010, 0x00000008, 65316 0x21000020, 0x00040008, 65317 0x01020020, 0x00000000, 65318 0x60800044, 0x000c000c, 65319 0x60800000, 0x000c0008, 65320 0x00a10000, 0x00000000, 65321 0x60800000, 0x000c0000, 65322 0x60800004, 0x000c0008, 65323 0x60a10044, 0x000c0004, 65324 0x60800044, 0x000c100c, 65325 0x00a10000, 0x00000028, 65326 0x00800010, 0x00000028, 65327 0x00801000, 0x00000028, 65328 0x00b10000, 0x00000020, 65329 0x00804010, 0x00000020, 65330 0x00a00000, 0x00000020, 65331 0x00000000, 0x00000020, 65332 0x008003c4, 0x00008000, 65333 0x00a103c4, 0x00008000, 65334 0x00800d44, 0x00000004, 65335 0x00b10000, 0x00000028, 65336 0x00a00000, 0x00000028, 65337 0x00a90000, 0x00000020, 65338 0x00b90000, 0x00000020, 65339 0x00808024, 0x00000020, 65340 0x00800000, 0x00002020, 65341 0x00800000, 0x00000200, 65342 0x08800000, 0x00000000, 65343 0x10800000, 0x00000000, 65344 0xe0800004, 0x000c0000, 65345 0x21008000, 0x00040000, 65346 0x00a11000, 0x00000020, 65347 0x60808020, 0x00000000, 65348 0xe0800004, 0x000c4000, 65349 0x60808004, 0x000c0000, 65350 0x60800004, 0x00000000, 65351 0x00000000, 0x00000010, 65352 0x21022020, 0x00050000, 65353 0x00800000, 0x00000100, 65354 0x00800020, 0x00002800, 65355 0x00800020, 0x00002000, 65356 0x00800020, 0x00000100, 65357 0x24800000, 0x00040000, 65358 0x648003c4, 0x000c8000, 65359 0x00808020, 0x00000008, 65360 0x64800d44, 0x000c0004, 65361 0x00800010, 0x00000100, 65362 0x61008024, 0x00040000, 65363 0x00000020, 0x00000000, 65364 0x60c00004, 0x000c0000, 65365 0x21400020, 0x00040000, 65366 0xa1000020, 0x00040000, 65367 0x21000000, 0x00040000, 65368 0x00a00000, 0x00000000, 65369 0x00b10000, 0x00000000, 65370 0x00200000, 0x00000000, 65371 0x00800044, 0x00008000, 65372 0x00a10044, 0x00008000, 65373 0x00930000, 0x00000400, 65374 0x00b90000, 0x00000000, 65375 0x00a90000, 0x00000000, 65376 0x00970020, 0x00000000, 65377 0x00b30000, 0x00000000, 65378 0x01022020, 0x00000000, 65379 } /* pcre2_ucd.c:241:16 */ 65380 65381 // These are the main two-stage UCD tables. The fields in each record are: 65382 // script (8 bits), character type (8 bits), grapheme break property (8 bits), 65383 // offset to multichar other cases or zero (8 bits), offset to other case or zero 65384 // (32 bits, signed), bidi class (5 bits) and script extension (11 bits) packed 65385 // into a 16-bit field, and offset in binary properties table (16 bits). 65386 65387 var X_pcre2_ucd_records_8 = [1409]Tucd_record{ // 16908 bytes, record size 12 65388 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(2)}, // 0 65389 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(43008), Fbprops: Tuint16_t(4)}, // 1 65390 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(1), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(4)}, // 2 65391 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(4)}, // 3 65392 {Fscript: Tuint8_t(69), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(4)}, // 4 65393 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(2)}, // 5 65394 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(43008), Fbprops: Tuint16_t(2)}, // 6 65395 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(6)}, // 7 65396 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(8)}, // 8 65397 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(10)}, // 9 65398 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(12)}, // 10 65399 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(14)}, // 11 65400 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(14)}, // 12 65401 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(14)}, // 13 65402 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(16)}, // 14 65403 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(18)}, // 15 65404 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(18)}, // 16 65405 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(12)}, // 17 65406 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(20)}, // 18 65407 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(22)}, // 19 65408 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(24)}, // 20 65409 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(26)}, // 21 65410 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(14)}, // 22 65411 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(28)}, // 23 65412 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(30)}, // 24 65413 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(22)}, // 25 65414 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(32)}, // 26 65415 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(20)}, // 27 65416 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(34)}, // 28 65417 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(36)}, // 29 65418 {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 65419 {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 65420 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(38)}, // 32 65421 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(16), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(40)}, // 33 65422 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(42)}, // 34 65423 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(44)}, // 35 65424 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(46)}, // 36 65425 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(48)}, // 37 65426 {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 65427 {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 65428 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144)}, // 40 65429 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(50)}, // 41 65430 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(52)}, // 42 65431 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(54)}, // 43 65432 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(54)}, // 44 65433 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(54)}, // 45 65434 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(56)}, // 46 65435 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(58)}, // 47 65436 {Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 48 65437 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(62)}, // 49 65438 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(64)}, // 50 65439 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(66)}, // 51 65440 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(54)}, // 52 65441 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(64)}, // 53 65442 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(68)}, // 54 65443 {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 65444 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(72)}, // 56 65445 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(62)}, // 57 65446 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 58 65447 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 59 65448 {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 65449 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 7615, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 61 65450 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 62 65451 {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 65452 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 121, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 64 65453 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 65 65454 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 66 65455 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 67 65456 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 68 65457 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 69 65458 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 70 65459 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(80)}, // 71 65460 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -121, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 72 65461 {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 65462 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 195, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 74 65463 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 210, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 75 65464 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 206, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 76 65465 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 205, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 77 65466 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 79, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 78 65467 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 202, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 79 65468 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 203, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 80 65469 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 207, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 81 65470 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 97, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 82 65471 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 211, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 83 65472 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 209, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 84 65473 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 163, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 85 65474 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 213, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 86 65475 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 130, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 87 65476 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 214, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 88 65477 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 218, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 89 65478 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 217, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 90 65479 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 219, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 91 65480 {Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 92 65481 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 56, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 93 65482 {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 65483 {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 65484 {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 65485 {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 65486 {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 65487 {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 65488 {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 65489 {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 65490 {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 65491 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -79, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 103 65492 {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 65493 {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 65494 {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 65495 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -97, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 107 65496 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -56, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 108 65497 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -130, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 109 65498 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 10795, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 110 65499 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -163, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 111 65500 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 10792, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 112 65501 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10815, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 113 65502 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -195, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 114 65503 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 69, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 115 65504 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 71, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 116 65505 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10783, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 117 65506 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10780, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 118 65507 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10782, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 119 65508 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -210, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 120 65509 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -206, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 121 65510 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -205, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 122 65511 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -202, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 123 65512 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -203, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 124 65513 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42319, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 125 65514 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42315, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 126 65515 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -207, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 127 65516 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42280, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 128 65517 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42308, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 129 65518 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -209, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 130 65519 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -211, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 131 65520 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10743, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 132 65521 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42305, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 133 65522 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10749, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 134 65523 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -213, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 135 65524 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -214, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 136 65525 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10727, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 137 65526 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -218, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 138 65527 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42307, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 139 65528 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42282, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 140 65529 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -69, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 141 65530 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -217, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 142 65531 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -71, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 143 65532 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -219, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 144 65533 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42261, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 145 65534 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42258, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 146 65535 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 147 65536 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(90)}, // 148 65537 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(92)}, // 149 65538 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 150 65539 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 151 65540 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(94)}, // 152 65541 {Fscript: Tuint8_t(22), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(56)}, // 153 65542 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 154 65543 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26636), Fbprops: Tuint16_t(96)}, // 155 65544 {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 65545 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(100)}, // 157 65546 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 158 65547 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26642), Fbprops: Tuint16_t(102)}, // 159 65548 {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 65549 {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 65550 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(56)}, // 162 65551 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432)}, // 163 65552 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(104)}, // 164 65553 {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 65554 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 166 65555 {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 65556 {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 65557 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(108)}, // 169 65558 {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 65559 {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 65560 {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 65561 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 173 65562 {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 65563 {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 65564 {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 65565 {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 65566 {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 65567 {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 65568 {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 65569 {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 65570 {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 65571 {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 65572 {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 65573 {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 65574 {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 65575 {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 65576 {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 65577 {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 65578 {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 65579 {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 65580 {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 65581 {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 65582 {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 65583 {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 65584 {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 65585 {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 65586 {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 65587 {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 65588 {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 65589 {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 65590 {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 65591 {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 65592 {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 65593 {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 65594 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(112)}, // 206 65595 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(114)}, // 207 65596 {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 65597 {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 65598 {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 65599 {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 65600 {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 65601 {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 65602 {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 65603 {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 65604 {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 65605 {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 65606 {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 65607 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 219 65608 {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 65609 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 221 65610 {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 65611 {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 65612 {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 65613 {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 65614 {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 65615 {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 65616 {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 65617 {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 65618 {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 65619 {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 65620 {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 65621 {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 65622 {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 65623 {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 65624 {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 65625 {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 65626 {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 65627 {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 65628 {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 65629 {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 65630 {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 65631 {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 65632 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 244 65633 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26684), Fbprops: Tuint16_t(96)}, // 245 65634 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26678), Fbprops: Tuint16_t(96)}, // 246 65635 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26681), Fbprops: Tuint16_t(96)}, // 247 65636 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(120)}, // 248 65637 {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 65638 {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 65639 {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 65640 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 252 65641 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 253 65642 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(122)}, // 254 65643 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 255 65644 {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 65645 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 257 65646 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 258 65647 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 259 65648 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 260 65649 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 261 65650 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816)}, // 262 65651 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 263 65652 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 264 65653 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 265 65654 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(126)}, // 266 65655 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 267 65656 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 268 65657 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 269 65658 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 270 65659 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(122)}, // 271 65660 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(132)}, // 272 65661 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(132)}, // 273 65662 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 274 65663 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(118)}, // 275 65664 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 276 65665 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 277 65666 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8342), Fbprops: Tuint16_t(106)}, // 278 65667 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 279 65668 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 280 65669 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 281 65670 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(150), Fbprops: Tuint16_t(106)}, // 282 65671 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(108), Fbprops: Tuint16_t(134)}, // 283 65672 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(124)}, // 284 65673 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(159), Fbprops: Tuint16_t(124)}, // 285 65674 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 286 65675 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(165), Fbprops: Tuint16_t(136)}, // 287 65676 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26660), Fbprops: Tuint16_t(128)}, // 288 65677 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26660), Fbprops: Tuint16_t(130)}, // 289 65678 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 290 65679 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 291 65680 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2159), Fbprops: Tuint16_t(138)}, // 292 65681 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(68)}, // 293 65682 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(140)}, // 294 65683 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(30), Fbprops: Tuint16_t(124)}, // 295 65684 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(92)}, // 296 65685 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(138)}, // 297 65686 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 298 65687 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(124)}, // 299 65688 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(106)}, // 300 65689 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 301 65690 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12)}, // 302 65691 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fbprops: Tuint16_t(132)}, // 303 65692 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 304 65693 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 305 65694 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 306 65695 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 307 65696 {Fscript: Tuint8_t(5), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 308 65697 {Fscript: Tuint8_t(5), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 309 65698 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(138)}, // 310 65699 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 311 65700 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 312 65701 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(92)}, // 313 65702 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 314 65703 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 315 65704 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 316 65705 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 317 65706 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(136)}, // 318 65707 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 319 65708 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 320 65709 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 321 65710 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 322 65711 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 323 65712 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(142)}, // 324 65713 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 325 65714 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 326 65715 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(124)}, // 327 65716 {Fscript: Tuint8_t(42), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 328 65717 {Fscript: Tuint8_t(42), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 329 65718 {Fscript: Tuint8_t(42), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 330 65719 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(122)}, // 331 65720 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 332 65721 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 333 65722 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 334 65723 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 335 65724 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 336 65725 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 337 65726 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26798), Fbprops: Tuint16_t(96)}, // 338 65727 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26795), Fbprops: Tuint16_t(96)}, // 339 65728 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18615), Fbprops: Tuint16_t(124)}, // 340 65729 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18618), Fbprops: Tuint16_t(124)}, // 341 65730 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18576), Fbprops: Tuint16_t(138)}, // 342 65731 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 343 65732 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 344 65733 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 345 65734 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 346 65735 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 347 65736 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 348 65737 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 349 65738 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 350 65739 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18546), Fbprops: Tuint16_t(138)}, // 351 65740 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 352 65741 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 353 65742 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 354 65743 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 355 65744 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 356 65745 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 357 65746 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 358 65747 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 359 65748 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 360 65749 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 361 65750 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18519), Fbprops: Tuint16_t(138)}, // 362 65751 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 363 65752 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 364 65753 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 365 65754 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 366 65755 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 367 65756 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 368 65757 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18516), Fbprops: Tuint16_t(138)}, // 369 65758 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 370 65759 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 371 65760 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 372 65761 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 373 65762 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 374 65763 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 375 65764 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 376 65765 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 377 65766 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(150)}, // 378 65767 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 379 65768 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 380 65769 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 381 65770 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 382 65771 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 383 65772 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 384 65773 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 385 65774 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 386 65775 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18513), Fbprops: Tuint16_t(138)}, // 387 65776 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18513), Fbprops: Tuint16_t(68)}, // 388 65777 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28753), Fbprops: Tuint16_t(68)}, // 389 65778 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 390 65779 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 391 65780 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 392 65781 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 393 65782 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 394 65783 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 395 65784 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 396 65785 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 397 65786 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 398 65787 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 399 65788 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 400 65789 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 401 65790 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 402 65791 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 403 65792 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 404 65793 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 405 65794 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 406 65795 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(130)}, // 407 65796 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 408 65797 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 409 65798 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18528), Fbprops: Tuint16_t(138)}, // 410 65799 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 411 65800 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 412 65801 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 413 65802 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 414 65803 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 415 65804 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 416 65805 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 417 65806 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 418 65807 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 419 65808 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 420 65809 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 421 65810 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 422 65811 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 423 65812 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 424 65813 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 425 65814 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 426 65815 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 427 65816 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 428 65817 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(152)}, // 429 65818 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(154)}, // 430 65819 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 431 65820 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 432 65821 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 433 65822 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 434 65823 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 435 65824 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 436 65825 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 437 65826 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 438 65827 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 439 65828 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(152)}, // 440 65829 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 441 65830 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 442 65831 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 443 65832 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 444 65833 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 445 65834 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 446 65835 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 447 65836 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 448 65837 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 449 65838 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 450 65839 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 451 65840 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 452 65841 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 453 65842 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 454 65843 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(160)}, // 455 65844 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 456 65845 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(162)}, // 457 65846 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 458 65847 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 459 65848 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 460 65849 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 461 65850 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 462 65851 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 463 65852 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 464 65853 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 465 65854 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 466 65855 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18549), Fbprops: Tuint16_t(138)}, // 467 65856 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 468 65857 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 469 65858 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(164)}, // 470 65859 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 471 65860 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 472 65861 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 473 65862 {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 65863 {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 65864 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18510), Fbprops: Tuint16_t(68)}, // 476 65865 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 477 65866 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(6), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 478 65867 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(6), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(168)}, // 479 65868 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(7), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(168)}, // 480 65869 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(7), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 481 65870 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(8), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 482 65871 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 483 65872 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 484 65873 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 485 65874 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 486 65875 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 487 65876 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 488 65877 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 489 65878 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 490 65879 {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 65880 {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 65881 {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 65882 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 494 65883 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 495 65884 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 496 65885 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 497 65886 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(52)}, // 498 65887 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 499 65888 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 500 65889 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 501 65890 {Fscript: Tuint8_t(79), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 502 65891 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 503 65892 {Fscript: Tuint8_t(79), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 504 65893 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 505 65894 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 506 65895 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 507 65896 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 508 65897 {Fscript: Tuint8_t(26), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 509 65898 {Fscript: Tuint8_t(26), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 510 65899 {Fscript: Tuint8_t(26), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(174)}, // 511 65900 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18573), Fbprops: Tuint16_t(124)}, // 512 65901 {Fscript: Tuint8_t(27), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 513 65902 {Fscript: Tuint8_t(27), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 514 65903 {Fscript: Tuint8_t(28), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 515 65904 {Fscript: Tuint8_t(28), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 516 65905 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 517 65906 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(140)}, // 518 65907 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(100)}, // 519 65908 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 520 65909 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 521 65910 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 522 65911 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 523 65912 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 524 65913 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 525 65914 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 526 65915 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 527 65916 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 528 65917 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 529 65918 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 530 65919 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28777), Fbprops: Tuint16_t(106)}, // 531 65920 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28777), Fbprops: Tuint16_t(124)}, // 532 65921 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 533 65922 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 534 65923 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 535 65924 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(176)}, // 536 65925 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(178)}, // 537 65926 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(66)}, // 538 65927 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 539 65928 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 540 65929 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 541 65930 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(180)}, // 542 65931 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 543 65932 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 544 65933 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 545 65934 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 546 65935 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 547 65936 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 548 65937 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 549 65938 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 550 65939 {Fscript: Tuint8_t(30), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 551 65940 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 552 65941 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 553 65942 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 554 65943 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 555 65944 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 556 65945 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 557 65946 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 558 65947 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 559 65948 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 560 65949 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 561 65950 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 562 65951 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 563 65952 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 564 65953 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 565 65954 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 566 65955 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 567 65956 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 568 65957 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 569 65958 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 570 65959 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 571 65960 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(184)}, // 572 65961 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 573 65962 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 574 65963 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 575 65964 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 576 65965 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 577 65966 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 578 65967 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 579 65968 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 580 65969 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 581 65970 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 582 65971 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 583 65972 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 584 65973 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 585 65974 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 586 65975 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 587 65976 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 588 65977 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 589 65978 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 590 65979 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 591 65980 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 592 65981 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 593 65982 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 594 65983 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(174)}, // 595 65984 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 596 65985 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 597 65986 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 598 65987 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 599 65988 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(186)}, // 600 65989 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 601 65990 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 602 65991 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 603 65992 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 604 65993 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 605 65994 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 606 65995 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 607 65996 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(94)}, // 608 65997 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 609 65998 {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 65999 {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 66000 {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 66001 {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 66002 {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 66003 {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 66004 {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 66005 {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 66006 {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 66007 {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 66008 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 620 66009 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26762), Fbprops: Tuint16_t(96)}, // 621 66010 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26630), Fbprops: Tuint16_t(96)}, // 622 66011 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18498), Fbprops: Tuint16_t(188)}, // 623 66012 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26666), Fbprops: Tuint16_t(96)}, // 624 66013 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26696), Fbprops: Tuint16_t(96)}, // 625 66014 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26780), Fbprops: Tuint16_t(96)}, // 626 66015 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18474), Fbprops: Tuint16_t(160)}, // 627 66016 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18501), Fbprops: Tuint16_t(82)}, // 628 66017 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18474), Fbprops: Tuint16_t(82)}, // 629 66018 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18438), Fbprops: Tuint16_t(82)}, // 630 66019 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18594), Fbprops: Tuint16_t(82)}, // 631 66020 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18498), Fbprops: Tuint16_t(82)}, // 632 66021 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26750), Fbprops: Tuint16_t(96)}, // 633 66022 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18435), Fbprops: Tuint16_t(160)}, // 634 66023 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26690), Fbprops: Tuint16_t(96)}, // 635 66024 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18453), Fbprops: Tuint16_t(82)}, // 636 66025 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 637 66026 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 638 66027 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(190)}, // 639 66028 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 35332, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 640 66029 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 3814, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 641 66030 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 35384, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 642 66031 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(192)}, // 643 66032 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(190)}, // 644 66033 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(194)}, // 645 66034 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(190)}, // 646 66035 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26636), Fbprops: Tuint16_t(102)}, // 647 66036 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26687), Fbprops: Tuint16_t(96)}, // 648 66037 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26648), Fbprops: Tuint16_t(96)}, // 649 66038 {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 66039 {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 66040 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 652 66041 {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 66042 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -7615, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 654 66043 {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 66044 {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 66045 {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 66046 {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 66047 {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 66048 {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 66049 {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 66050 {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 66051 {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 66052 {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 66053 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 665 66054 {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 66055 {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 66056 {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 66057 {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 66058 {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 66059 {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 66060 {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 66061 {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 66062 {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 66063 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(52)}, // 675 66064 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(196)}, // 676 66065 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(13), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(198)}, // 677 66066 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(200)}, // 678 66067 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(200)}, // 679 66068 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(202)}, // 680 66069 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(64)}, // 681 66070 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(204)}, // 682 66071 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(204)}, // 683 66072 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(206)}, // 684 66073 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(206)}, // 685 66074 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(206)}, // 686 66075 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(208)}, // 687 66076 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(27), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(50)}, // 688 66077 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(28), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(50)}, // 689 66078 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(20480), Fbprops: Tuint16_t(134)}, // 690 66079 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(36864), Fbprops: Tuint16_t(134)}, // 691 66080 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(30720), Fbprops: Tuint16_t(134)}, // 692 66081 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(24576), Fbprops: Tuint16_t(134)}, // 693 66082 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(40960), Fbprops: Tuint16_t(134)}, // 694 66083 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8291), Fbprops: Tuint16_t(52)}, // 695 66084 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(54)}, // 696 66085 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(64)}, // 697 66086 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(210)}, // 698 66087 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(212)}, // 699 66088 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(16), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(138)}, // 700 66089 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(16), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(214)}, // 701 66090 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(64)}, // 702 66091 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 703 66092 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 704 66093 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(202)}, // 705 66094 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(218)}, // 706 66095 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(220)}, // 707 66096 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(22528), Fbprops: Tuint16_t(134)}, // 708 66097 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(38912), Fbprops: Tuint16_t(134)}, // 709 66098 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(16384), Fbprops: Tuint16_t(134)}, // 710 66099 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(32768), Fbprops: Tuint16_t(134)}, // 711 66100 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(222)}, // 712 66101 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(118)}, // 713 66102 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(224)}, // 714 66103 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 715 66104 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(226)}, // 716 66105 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(226)}, // 717 66106 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336)}, // 718 66107 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(228)}, // 719 66108 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(120)}, // 720 66109 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(230)}, // 721 66110 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26753), Fbprops: Tuint16_t(102)}, // 722 66111 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 723 66112 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(112)}, // 724 66113 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(232)}, // 725 66114 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(234)}, // 726 66115 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(236)}, // 727 66116 {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 66117 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 729 66118 {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 66119 {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 66120 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(238)}, // 732 66121 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 28, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 733 66122 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(240)}, // 734 66123 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(242)}, // 735 66124 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(244)}, // 736 66125 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -28, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 737 66126 {Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fother_case: 16, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 738 66127 {Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fother_case: -16, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 739 66128 {Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 740 66129 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(246)}, // 741 66130 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(246)}, // 742 66131 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(64)}, // 743 66132 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(248)}, // 744 66133 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(250)}, // 745 66134 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(248)}, // 746 66135 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(248)}, // 747 66136 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(252)}, // 748 66137 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(254)}, // 749 66138 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(254)}, // 750 66139 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(54)}, // 751 66140 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(256)}, // 752 66141 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(258)}, // 753 66142 {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 66143 {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 66144 {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 66145 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(266)}, // 757 66146 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(268)}, // 758 66147 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(270)}, // 759 66148 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(268)}, // 760 66149 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(256)}, // 761 66150 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(272)}, // 762 66151 {Fscript: Tuint8_t(88), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(54)}, // 763 66152 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 764 66153 {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 66154 {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 66155 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10743, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 767 66156 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -3814, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 768 66157 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10727, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 769 66158 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -10795, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 770 66159 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -10792, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 771 66160 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10780, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 772 66161 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10749, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 773 66162 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10783, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 774 66163 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10782, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 775 66164 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10815, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 776 66165 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 777 66166 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 778 66167 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 779 66168 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 780 66169 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 781 66170 {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 66171 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 783 66172 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 784 66173 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 785 66174 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 786 66175 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 787 66176 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 788 66177 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 789 66178 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(274)}, // 790 66179 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(276)}, // 791 66180 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28726), Fbprops: Tuint16_t(54)}, // 792 66181 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(278)}, // 793 66182 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(280)}, // 794 66183 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(282)}, // 795 66184 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(276)}, // 796 66185 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(212)}, // 797 66186 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(54)}, // 798 66187 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 799 66188 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(284)}, // 800 66189 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 801 66190 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(216)}, // 802 66191 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(216)}, // 803 66192 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(62)}, // 804 66193 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(62)}, // 805 66194 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(54)}, // 806 66195 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(202)}, // 807 66196 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(206)}, // 808 66197 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(206)}, // 809 66198 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26669), Fbprops: Tuint16_t(96)}, // 810 66199 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(286)}, // 811 66200 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(288)}, // 812 66201 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18525), Fbprops: Tuint16_t(136)}, // 813 66202 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(68)}, // 814 66203 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 815 66204 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18564), Fbprops: Tuint16_t(82)}, // 816 66205 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28804), Fbprops: Tuint16_t(236)}, // 817 66206 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28687), Fbprops: Tuint16_t(68)}, // 818 66207 {Fscript: Tuint8_t(20), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 819 66208 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26717), Fbprops: Tuint16_t(96)}, // 820 66209 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28765), Fbprops: Tuint16_t(290)}, // 821 66210 {Fscript: Tuint8_t(20), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 822 66211 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28765), Fbprops: Tuint16_t(126)}, // 823 66212 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 824 66213 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(68)}, // 825 66214 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18525), Fbprops: Tuint16_t(94)}, // 826 66215 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 827 66216 {Fscript: Tuint8_t(22), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 828 66217 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 829 66218 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(168)}, // 830 66219 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(68)}, // 831 66220 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(68)}, // 832 66221 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 833 66222 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 834 66223 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 835 66224 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(236)}, // 836 66225 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 837 66226 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(292)}, // 838 66227 {Fscript: Tuint8_t(24), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 839 66228 {Fscript: Tuint8_t(24), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 840 66229 {Fscript: Tuint8_t(24), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 841 66230 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 842 66231 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 843 66232 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 844 66233 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 845 66234 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 846 66235 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 847 66236 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 848 66237 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 849 66238 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 850 66239 {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 66240 {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 66241 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 853 66242 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 854 66243 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 855 66244 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(92)}, // 856 66245 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 857 66246 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 858 66247 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 859 66248 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 860 66249 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 861 66250 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 862 66251 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 863 66252 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28762), Fbprops: Tuint16_t(56)}, // 864 66253 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -35332, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 865 66254 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(56)}, // 866 66255 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42280, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 867 66256 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 868 66257 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42308, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 869 66258 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42319, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 870 66259 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42315, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 871 66260 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42305, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 872 66261 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42258, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 873 66262 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42282, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 874 66263 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42261, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 875 66264 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 928, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 876 66265 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 877 66266 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42307, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 878 66267 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -35384, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 879 66268 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 880 66269 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 881 66270 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 882 66271 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 883 66272 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 884 66273 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 885 66274 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18612), Fbprops: Tuint16_t(68)}, // 886 66275 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18609), Fbprops: Tuint16_t(68)}, // 887 66276 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18600), Fbprops: Tuint16_t(68)}, // 888 66277 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14504), Fbprops: Tuint16_t(68)}, // 889 66278 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14504), Fbprops: Tuint16_t(68)}, // 890 66279 {Fscript: Tuint8_t(37), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 891 66280 {Fscript: Tuint8_t(37), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 892 66281 {Fscript: Tuint8_t(37), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 893 66282 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 894 66283 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 895 66284 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 896 66285 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 897 66286 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 898 66287 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 899 66288 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26666), Fbprops: Tuint16_t(96)}, // 900 66289 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18507), Fbprops: Tuint16_t(82)}, // 901 66290 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 902 66291 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 903 66292 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 904 66293 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 905 66294 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18567), Fbprops: Tuint16_t(188)}, // 906 66295 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 907 66296 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 908 66297 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 909 66298 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 910 66299 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 911 66300 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 912 66301 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 913 66302 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 914 66303 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 915 66304 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 916 66305 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 917 66306 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 918 66307 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 919 66308 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 920 66309 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18480), Fbprops: Tuint16_t(136)}, // 921 66310 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 922 66311 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 923 66312 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 924 66313 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 925 66314 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 926 66315 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 927 66316 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 928 66317 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 929 66318 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 930 66319 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 931 66320 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 932 66321 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 933 66322 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(294)}, // 934 66323 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 935 66324 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 936 66325 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 937 66326 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 938 66327 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 939 66328 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 940 66329 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 941 66330 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 942 66331 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 943 66332 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -928, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 944 66333 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 945 66334 {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 66335 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(160)}, // 947 66336 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 948 66337 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(9), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 949 66338 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(10), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 950 66339 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(4), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432)}, // 951 66340 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(3), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432)}, // 952 66341 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 953 66342 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(118)}, // 954 66343 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(296)}, // 955 66344 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28705), Fbprops: Tuint16_t(54)}, // 956 66345 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28705), Fbprops: Tuint16_t(54)}, // 957 66346 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(298)}, // 958 66347 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(39), Fbprops: Tuint16_t(82)}, // 959 66348 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28711), Fbprops: Tuint16_t(68)}, // 960 66349 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(178)}, // 961 66350 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(300)}, // 962 66351 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 963 66352 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(122)}, // 964 66353 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 965 66354 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 966 66355 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 967 66356 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(302)}, // 968 66357 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(302)}, // 969 66358 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(106)}, // 970 66359 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(304)}, // 971 66360 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(306)}, // 972 66361 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 973 66362 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 974 66363 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 975 66364 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 976 66365 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 977 66366 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(224)}, // 978 66367 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(226)}, // 979 66368 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(302)}, // 980 66369 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(308)}, // 981 66370 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(126)}, // 982 66371 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(68)}, // 983 66372 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(310)}, // 984 66373 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(312)}, // 985 66374 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(314)}, // 986 66375 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(316)}, // 987 66376 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(124)}, // 988 66377 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(318)}, // 989 66378 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(318)}, // 990 66379 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(106)}, // 991 66380 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18525), Fbprops: Tuint16_t(320)}, // 992 66381 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(322)}, // 993 66382 {Fscript: Tuint8_t(31), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 994 66383 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18552), Fbprops: Tuint16_t(68)}, // 995 66384 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28792), Fbprops: Tuint16_t(68)}, // 996 66385 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18483), Fbprops: Tuint16_t(68)}, // 997 66386 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18555), Fbprops: Tuint16_t(68)}, // 998 66387 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18483), Fbprops: Tuint16_t(68)}, // 999 66388 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(82)}, // 1000 66389 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1001 66390 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1002 66391 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1003 66392 {Fscript: Tuint8_t(102), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1004 66393 {Fscript: Tuint8_t(103), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1005 66394 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26651), Fbprops: Tuint16_t(96)}, // 1006 66395 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10267), Fbprops: Tuint16_t(68)}, // 1007 66396 {Fscript: Tuint8_t(81), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1008 66397 {Fscript: Tuint8_t(81), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1009 66398 {Fscript: Tuint8_t(82), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1010 66399 {Fscript: Tuint8_t(82), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1011 66400 {Fscript: Tuint8_t(53), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1012 66401 {Fscript: Tuint8_t(53), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1013 66402 {Fscript: Tuint8_t(85), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1014 66403 {Fscript: Tuint8_t(85), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1015 66404 {Fscript: Tuint8_t(91), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1016 66405 {Fscript: Tuint8_t(91), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1017 66406 {Fscript: Tuint8_t(91), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1018 66407 {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 66408 {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 66409 {Fscript: Tuint8_t(86), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1021 66410 {Fscript: Tuint8_t(87), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1022 66411 {Fscript: Tuint8_t(87), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1023 66412 {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 66413 {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 66414 {Fscript: Tuint8_t(127), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1026 66415 {Fscript: Tuint8_t(125), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1027 66416 {Fscript: Tuint8_t(125), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1028 66417 {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 66418 {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 66419 {Fscript: Tuint8_t(49), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1031 66420 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(94)}, // 1032 66421 {Fscript: Tuint8_t(32), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1033 66422 {Fscript: Tuint8_t(114), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1034 66423 {Fscript: Tuint8_t(114), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 1035 66424 {Fscript: Tuint8_t(114), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1036 66425 {Fscript: Tuint8_t(133), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1037 66426 {Fscript: Tuint8_t(133), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1038 66427 {Fscript: Tuint8_t(133), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1039 66428 {Fscript: Tuint8_t(132), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1040 66429 {Fscript: Tuint8_t(132), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1041 66430 {Fscript: Tuint8_t(139), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1042 66431 {Fscript: Tuint8_t(139), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1043 66432 {Fscript: Tuint8_t(95), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1044 66433 {Fscript: Tuint8_t(95), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1045 66434 {Fscript: Tuint8_t(95), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 1046 66435 {Fscript: Tuint8_t(104), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1047 66436 {Fscript: Tuint8_t(104), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1048 66437 {Fscript: Tuint8_t(122), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1049 66438 {Fscript: Tuint8_t(121), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1050 66439 {Fscript: Tuint8_t(121), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1051 66440 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1052 66441 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1053 66442 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1054 66443 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 1055 66444 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1056 66445 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1057 66446 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(124)}, // 1058 66447 {Fscript: Tuint8_t(115), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1059 66448 {Fscript: Tuint8_t(115), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1060 66449 {Fscript: Tuint8_t(115), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1061 66450 {Fscript: Tuint8_t(131), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1062 66451 {Fscript: Tuint8_t(131), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1063 66452 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1064 66453 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1065 66454 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1066 66455 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1067 66456 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 1068 66457 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34918), Fbprops: Tuint16_t(106)}, // 1069 66458 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1070 66459 {Fscript: Tuint8_t(108), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1071 66460 {Fscript: Tuint8_t(108), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1072 66461 {Fscript: Tuint8_t(108), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 1073 66462 {Fscript: Tuint8_t(116), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1074 66463 {Fscript: Tuint8_t(116), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1075 66464 {Fscript: Tuint8_t(117), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1076 66465 {Fscript: Tuint8_t(117), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1077 66466 {Fscript: Tuint8_t(54), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1078 66467 {Fscript: Tuint8_t(54), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 1079 66468 {Fscript: Tuint8_t(54), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1080 66469 {Fscript: Tuint8_t(118), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1081 66470 {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 66471 {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 66472 {Fscript: Tuint8_t(140), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1084 66473 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 1085 66474 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(294)}, // 1086 66475 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 1087 66476 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(138)}, // 1088 66477 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(68)}, // 1089 66478 {Fscript: Tuint8_t(65), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1090 66479 {Fscript: Tuint8_t(65), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1091 66480 {Fscript: Tuint8_t(65), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(126)}, // 1092 66481 {Fscript: Tuint8_t(152), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1093 66482 {Fscript: Tuint8_t(152), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1094 66483 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 1095 66484 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1096 66485 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1097 66486 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(124)}, // 1098 66487 {Fscript: Tuint8_t(67), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1099 66488 {Fscript: Tuint8_t(67), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1100 66489 {Fscript: Tuint8_t(67), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(124)}, // 1101 66490 {Fscript: Tuint8_t(156), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1102 66491 {Fscript: Tuint8_t(156), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1103 66492 {Fscript: Tuint8_t(153), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1104 66493 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1105 66494 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1106 66495 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1107 66496 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1108 66497 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1109 66498 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1110 66499 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1111 66500 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1112 66501 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 1113 66502 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1114 66503 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1115 66504 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1116 66505 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1117 66506 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1118 66507 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1119 66508 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1120 66509 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(132)}, // 1121 66510 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1122 66511 {Fscript: Tuint8_t(124), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1123 66512 {Fscript: Tuint8_t(124), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1124 66513 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1125 66514 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1126 66515 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1127 66516 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1128 66517 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1129 66518 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1130 66519 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1131 66520 {Fscript: Tuint8_t(50), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1132 66521 {Fscript: Tuint8_t(50), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1133 66522 {Fscript: Tuint8_t(50), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1134 66523 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1135 66524 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1136 66525 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1137 66526 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1138 66527 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1139 66528 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1140 66529 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1141 66530 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1142 66531 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1143 66532 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1144 66533 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1145 66534 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1146 66535 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1147 66536 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1148 66537 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1149 66538 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1150 66539 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1151 66540 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1152 66541 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1153 66542 {Fscript: Tuint8_t(57), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1154 66543 {Fscript: Tuint8_t(57), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1155 66544 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1156 66545 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1157 66546 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1158 66547 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1159 66548 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1160 66549 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1161 66550 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1162 66551 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26705), Fbprops: Tuint16_t(130)}, // 1163 66552 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1164 66553 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18513), Fbprops: Tuint16_t(144)}, // 1165 66554 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1166 66555 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26705), Fbprops: Tuint16_t(102)}, // 1167 66556 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26705), Fbprops: Tuint16_t(96)}, // 1168 66557 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1169 66558 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1170 66559 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(324)}, // 1171 66560 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1172 66561 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1173 66562 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1174 66563 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1175 66564 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1176 66565 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1177 66566 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1178 66567 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1179 66568 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1180 66569 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1181 66570 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1182 66571 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1183 66572 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1184 66573 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1185 66574 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1186 66575 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1187 66576 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1188 66577 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1189 66578 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1190 66579 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1191 66580 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1192 66581 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1193 66582 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1194 66583 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1195 66584 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1196 66585 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1197 66586 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1198 66587 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1199 66588 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(176)}, // 1200 66589 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1201 66590 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1202 66591 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1203 66592 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1204 66593 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1205 66594 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1206 66595 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1207 66596 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1208 66597 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1209 66598 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1210 66599 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1211 66600 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1212 66601 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1213 66602 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1214 66603 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1215 66604 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1216 66605 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1217 66606 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1218 66607 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1219 66608 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1220 66609 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1221 66610 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1222 66611 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1223 66612 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1224 66613 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1225 66614 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1226 66615 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1227 66616 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1228 66617 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1229 66618 {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 66619 {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 66620 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1232 66621 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1233 66622 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1234 66623 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1235 66624 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1236 66625 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1237 66626 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1238 66627 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1239 66628 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1240 66629 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1241 66630 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1242 66631 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1243 66632 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1244 66633 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1245 66634 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1246 66635 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1247 66636 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1248 66637 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1249 66638 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1250 66639 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1251 66640 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1252 66641 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(130)}, // 1253 66642 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1254 66643 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1255 66644 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1256 66645 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1257 66646 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1258 66647 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1259 66648 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1260 66649 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1261 66650 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1262 66651 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1263 66652 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(326)}, // 1264 66653 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1265 66654 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1266 66655 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1267 66656 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1268 66657 {Fscript: Tuint8_t(134), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1269 66658 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1270 66659 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1271 66660 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1272 66661 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(146)}, // 1273 66662 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1274 66663 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1275 66664 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1276 66665 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1277 66666 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1278 66667 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1279 66668 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1280 66669 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1281 66670 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1282 66671 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1283 66672 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1284 66673 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1285 66674 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1286 66675 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1287 66676 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1288 66677 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1289 66678 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1290 66679 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1291 66680 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1292 66681 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1293 66682 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1294 66683 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1295 66684 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1296 66685 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1297 66686 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1298 66687 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1299 66688 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1300 66689 {Fscript: Tuint8_t(94), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1301 66690 {Fscript: Tuint8_t(94), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1302 66691 {Fscript: Tuint8_t(94), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1303 66692 {Fscript: Tuint8_t(66), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1304 66693 {Fscript: Tuint8_t(66), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1305 66694 {Fscript: Tuint8_t(109), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1306 66695 {Fscript: Tuint8_t(109), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(322)}, // 1307 66696 {Fscript: Tuint8_t(138), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1308 66697 {Fscript: Tuint8_t(130), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1309 66698 {Fscript: Tuint8_t(130), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1310 66699 {Fscript: Tuint8_t(130), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1311 66700 {Fscript: Tuint8_t(159), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1312 66701 {Fscript: Tuint8_t(159), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1313 66702 {Fscript: Tuint8_t(126), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1314 66703 {Fscript: Tuint8_t(126), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1315 66704 {Fscript: Tuint8_t(126), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1316 66705 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1317 66706 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1318 66707 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1319 66708 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1320 66709 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1321 66710 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1322 66711 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 1323 66712 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1324 66713 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1325 66714 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1326 66715 {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 66716 {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 66717 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1329 66718 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1330 66719 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1331 66720 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1332 66721 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1333 66722 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1334 66723 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1335 66724 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 1336 66725 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 1337 66726 {Fscript: Tuint8_t(146), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1338 66727 {Fscript: Tuint8_t(147), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1339 66728 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1340 66729 {Fscript: Tuint8_t(158), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(328)}, // 1341 66730 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(164)}, // 1342 66731 {Fscript: Tuint8_t(146), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 1343 66732 {Fscript: Tuint8_t(158), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 1344 66733 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 1345 66734 {Fscript: Tuint8_t(147), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 1346 66735 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1347 66736 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1348 66737 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1349 66738 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1350 66739 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1351 66740 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6153), Fbprops: Tuint16_t(66)}, // 1352 66741 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(330)}, // 1353 66742 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1354 66743 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(160)}, // 1355 66744 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(286)}, // 1356 66745 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1357 66746 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(118)}, // 1358 66747 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(214)}, // 1359 66748 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1360 66749 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1361 66750 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1362 66751 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1363 66752 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1364 66753 {Fscript: Tuint8_t(35), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1365 66754 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1366 66755 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1367 66756 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 1368 66757 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1369 66758 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1370 66759 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1371 66760 {Fscript: Tuint8_t(160), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1372 66761 {Fscript: Tuint8_t(160), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1373 66762 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1374 66763 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1375 66764 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1376 66765 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 1377 66766 {Fscript: Tuint8_t(129), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1378 66767 {Fscript: Tuint8_t(129), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1379 66768 {Fscript: Tuint8_t(129), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1380 66769 {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 66770 {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 66771 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(150)}, // 1383 66772 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1384 66773 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1385 66774 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(142)}, // 1386 66775 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(138)}, // 1387 66776 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1388 66777 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1389 66778 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1390 66779 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1391 66780 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(240)}, // 1392 66781 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(332)}, // 1393 66782 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(334)}, // 1394 66783 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(336)}, // 1395 66784 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(338)}, // 1396 66785 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(340)}, // 1397 66786 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(334)}, // 1398 66787 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(11), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(342)}, // 1399 66788 {Fscript: Tuint8_t(20), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1400 66789 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(236)}, // 1401 66790 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(334)}, // 1402 66791 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(344)}, // 1403 66792 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(346)}, // 1404 66793 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(348)}, // 1405 66794 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(350)}, // 1406 66795 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(138)}, // 1407 66796 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(352)}, // 1408 66797 } /* pcre2_ucd.c:427:18 */ 66798 66799 var X_pcre2_ucd_stage1_8 = [8704]Tuint16_t{ // 17408 bytes 66800 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 66801 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 66802 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 66803 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 66804 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 66805 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 66806 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 66807 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66808 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66809 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(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 66810 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66811 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66812 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66813 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66814 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66815 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66816 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66817 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66818 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66819 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66820 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 66821 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 66822 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 66823 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 66824 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 66825 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 66826 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 66827 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 66828 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 66829 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 66830 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 66831 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 66832 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 66833 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 66834 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 66835 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 66836 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 66837 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(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 66838 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 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+13800 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(205), Tuint16_t(205), Tuint16_t(205), Tuint16_t(205), Tuint16_t(206), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+14000 66841 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 66842 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 66843 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 66844 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 66845 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 66846 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 66847 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 66848 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 66849 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 66850 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 66851 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 66852 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 66853 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(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 66854 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 66855 Tuint16_t(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 66856 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 66857 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(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 66858 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 66859 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 66860 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 66861 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 66862 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 66863 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 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+20000 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+20800 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+21000 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(101), Tuint16_t(101), Tuint16_t(101), // U+21800 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+22000 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(101), Tuint16_t(101), // U+22800 66870 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 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+23800 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(101), Tuint16_t(101), Tuint16_t(101), // U+24000 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+24800 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+25000 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+25800 66876 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66877 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66878 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 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+27800 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+28000 66881 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66882 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66883 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66884 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(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 66885 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66886 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(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 66887 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 66888 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66889 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(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 66890 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66891 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66892 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66893 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 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+2F000 66895 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 66896 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66897 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), 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 66898 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 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+31800 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+32000 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+32800 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+33000 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+33800 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+34000 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+34800 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+35000 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+35800 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+36000 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+36800 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(146), // U+37000 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+37800 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+38000 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+38800 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+39000 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+39800 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+3A000 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+3A800 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+3B000 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+3B800 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+3C000 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+3C800 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+3D000 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+3D800 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+3E000 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+3E800 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+3F000 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(293), // U+3F800 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+40000 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+40800 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+41000 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+41800 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+42000 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+42800 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+43000 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+43800 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+44000 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+44800 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+45000 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+45800 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+46000 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+46800 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(146), // U+47000 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+47800 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+48000 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+48800 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+49000 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+49800 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+4A000 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+4A800 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+4B000 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+4B800 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+4C000 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+4C800 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+4D000 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+4D800 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+4E000 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+4E800 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+4F000 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(293), // U+4F800 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+50000 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+50800 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+51000 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+51800 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+52000 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+52800 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+53000 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+53800 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+54000 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+54800 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+55000 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+55800 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+56000 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+56800 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(146), // U+57000 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+57800 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+58000 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+58800 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+59000 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+59800 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+5A000 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+5A800 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+5B000 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+5B800 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+5C000 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+5C800 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+5D000 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+5D800 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+5E000 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+5E800 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+5F000 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(293), // U+5F800 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+60000 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+60800 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+61000 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+61800 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+62000 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+62800 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+63000 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+63800 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+64000 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+64800 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+65000 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+65800 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+66000 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+66800 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(146), // U+67000 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+67800 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+68000 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+68800 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+69000 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+69800 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+6A000 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+6A800 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+6B000 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+6B800 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+6C000 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+6C800 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+6D000 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+6D800 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+6E000 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+6E800 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+6F000 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(293), // U+6F800 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+70000 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+70800 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+71000 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+71800 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+72000 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+72800 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+73000 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+73800 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+74000 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+74800 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+75000 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+75800 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+76000 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+76800 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(146), // U+77000 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+77800 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+78000 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+78800 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+79000 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+79800 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+7A000 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+7A800 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+7B000 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+7B800 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+7C000 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+7C800 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+7D000 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+7D800 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+7E000 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+7E800 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+7F000 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(293), // U+7F800 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+80000 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+80800 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+81000 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+81800 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+82000 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+82800 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+83000 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+83800 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+84000 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+84800 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+85000 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+85800 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+86000 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+86800 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(146), // U+87000 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+87800 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+88000 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+88800 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+89000 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+89800 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+8A000 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+8A800 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+8B000 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+8B800 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+8C000 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+8C800 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+8D000 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+8D800 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+8E000 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+8E800 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+8F000 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(293), // U+8F800 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+90000 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+90800 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+91000 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+91800 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+92000 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+92800 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+93000 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+93800 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+94000 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+94800 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+95000 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+95800 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+96000 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+96800 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(146), // U+97000 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+97800 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+98000 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+98800 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+99000 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+99800 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+9A000 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+9A800 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+9B000 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+9B800 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+9C000 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+9C800 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+9D000 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+9D800 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+9E000 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+9E800 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+9F000 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(293), // U+9F800 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+A0000 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+A0800 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+A1000 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+A1800 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+A2000 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+A2800 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+A3000 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+A3800 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+A4000 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+A4800 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+A5000 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+A5800 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+A6000 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+A6800 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(146), // U+A7000 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+A7800 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+A8000 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+A8800 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+A9000 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+A9800 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+AA000 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+AA800 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+AB000 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+AB800 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+AC000 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+AC800 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+AD000 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+AD800 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+AE000 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+AE800 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+AF000 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(293), // U+AF800 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+B0000 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+B0800 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+B1000 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+B1800 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+B2000 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+B2800 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+B3000 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+B3800 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+B4000 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+B4800 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+B5000 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+B5800 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+B6000 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+B6800 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(146), // U+B7000 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+B7800 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+B8000 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+B8800 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+B9000 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+B9800 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+BA000 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+BA800 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+BB000 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+BB800 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+BC000 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+BC800 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+BD000 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+BD800 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+BE000 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+BE800 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+BF000 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(293), // U+BF800 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+C0000 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+C0800 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+C1000 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+C1800 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+C2000 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+C2800 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+C3000 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+C3800 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+C4000 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+C4800 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+C5000 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+C5800 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+C6000 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+C6800 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(146), // U+C7000 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+C7800 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+C8000 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+C8800 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+C9000 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+C9800 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+CA000 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+CA800 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+CB000 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+CB800 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+CC000 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+CC800 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+CD000 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+CD800 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+CE000 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+CE800 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+CF000 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(293), // U+CF800 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+D0000 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+D0800 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+D1000 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+D1800 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+D2000 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+D2800 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+D3000 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+D3800 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+D4000 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+D4800 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+D5000 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+D5800 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+D6000 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+D6800 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(146), // U+D7000 67231 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67232 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 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+D8800 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+D9000 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+D9800 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+DA000 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+DA800 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+DB000 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+DB800 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+DC000 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+DC800 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+DD000 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+DD800 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+DE000 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+DE800 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+DF000 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(293), // U+DF800 67248 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 67249 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 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+E1000 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+E1800 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+E2000 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+E2800 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+E3000 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+E3800 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+E4000 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+E4800 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+E5000 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+E5800 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+E6000 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+E6800 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(146), // U+E7000 67263 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67264 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67265 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67266 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67267 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67268 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67269 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67270 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67271 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67272 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67273 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67274 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67275 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67276 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67277 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67278 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_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 67279 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(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 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+F0000 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+F0800 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+F1000 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+F1800 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+F2000 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+F2800 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+F3000 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+F3800 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+F4000 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+F4800 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+F5000 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+F5800 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+F6000 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+F6800 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(128), // U+F7000 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+F7800 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+F8000 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+F8800 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+F9000 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+F9800 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+FA000 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+FA800 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+FB000 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+FB800 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+FC000 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+FC800 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+FD000 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+FD800 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+FE000 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+FE800 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+FF000 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(299), // U+FF800 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+100000 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+100800 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+101000 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+101800 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+102000 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+102800 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+103000 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+103800 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+104000 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+104800 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+105000 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+105800 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+106000 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+106800 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(128), // U+107000 67327 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67328 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67329 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67330 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67331 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67332 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67333 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67334 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67335 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67336 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67337 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67338 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67339 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67340 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67341 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67342 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), 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 67343 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(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 67344 } /* pcre2_ucd.c:1839:16 */ 67345 67346 var X_pcre2_ucd_stage2_8 = [38400]Tuint16_t{ // 76800 bytes, block = 128 67347 67348 // block 0 67349 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), 67350 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), 67351 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), 67352 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), 67353 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), 67354 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), 67355 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), 67356 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), 67357 67358 // block 1 67359 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), 67360 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), 67361 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), 67362 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), 67363 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), 67364 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), 67365 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), 67366 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), 67367 67368 // block 2 67369 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), 67370 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), 67371 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), 67372 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), 67373 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), 67374 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), 67375 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), 67376 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), 67377 67378 // block 3 67379 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), 67380 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), 67381 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), 67382 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), 67383 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), 67384 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), 67385 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), 67386 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), 67387 67388 // block 4 67389 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), 67390 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), 67391 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), 67392 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), 67393 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), 67394 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), 67395 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), 67396 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), 67397 67398 // block 5 67399 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), 67400 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), 67401 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), 67402 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), 67403 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), 67404 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), 67405 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), 67406 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), 67407 67408 // block 6 67409 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), 67410 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), 67411 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), 67412 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), 67413 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), 67414 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), 67415 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), 67416 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), 67417 67418 // block 7 67419 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), 67420 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), 67421 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), 67422 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), 67423 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), 67424 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), 67425 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), 67426 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), 67427 67428 // block 8 67429 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), 67430 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), 67431 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), 67432 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), 67433 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), 67434 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), 67435 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), 67436 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), 67437 67438 // block 9 67439 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), 67440 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), 67441 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), 67442 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), 67443 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), 67444 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), 67445 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), 67446 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), 67447 67448 // block 10 67449 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), 67450 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), 67451 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), 67452 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), 67453 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), 67454 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), 67455 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), 67456 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), 67457 67458 // block 11 67459 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), 67460 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), 67461 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), 67462 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), 67463 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), 67464 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), 67465 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), 67466 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), 67467 67468 // block 12 67469 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), 67470 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), 67471 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67472 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67473 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), 67474 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), 67475 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), 67476 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), 67477 67478 // block 13 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 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67481 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67482 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67483 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67484 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), 67485 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), 67486 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), 67487 67488 // block 14 67489 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), 67490 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), 67491 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), 67492 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), 67493 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), 67494 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67495 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67496 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67497 67498 // block 15 67499 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), 67500 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), 67501 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), 67502 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), 67503 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), 67504 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), 67505 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), 67506 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), 67507 67508 // block 16 67509 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), 67510 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), 67511 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), 67512 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), 67513 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), 67514 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), 67515 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), 67516 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67517 67518 // block 17 67519 Tuint16_t(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), 67520 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), 67521 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67522 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67523 Tuint16_t(286), Tuint16_t(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), 67524 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), 67525 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), 67526 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), 67527 67528 // block 18 67529 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), 67530 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), 67531 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), 67532 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), 67533 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), 67534 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), 67535 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), 67536 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), 67537 67538 // block 19 67539 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), 67540 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), 67541 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), 67542 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), 67543 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), 67544 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), 67545 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), 67546 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), 67547 67548 // block 20 67549 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), 67550 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), 67551 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), 67552 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), 67553 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), 67554 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), 67555 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), 67556 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), 67557 67558 // block 21 67559 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), 67560 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), 67561 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), 67562 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), 67563 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), 67564 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), 67565 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), 67566 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), 67567 67568 // block 22 67569 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), 67570 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), 67571 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), 67572 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), 67573 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), 67574 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), 67575 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), 67576 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), 67577 67578 // block 23 67579 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), 67580 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), 67581 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), 67582 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), 67583 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), 67584 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), 67585 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), 67586 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), 67587 67588 // block 24 67589 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), 67590 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), 67591 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), 67592 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), 67593 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), 67594 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), 67595 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), 67596 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), 67597 67598 // block 25 67599 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), 67600 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), 67601 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), 67602 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), 67603 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), 67604 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), 67605 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), 67606 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), 67607 67608 // block 26 67609 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), 67610 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), 67611 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), 67612 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), 67613 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), 67614 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), 67615 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), 67616 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), 67617 67618 // block 27 67619 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), 67620 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), 67621 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), 67622 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), 67623 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), 67624 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), 67625 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), 67626 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), 67627 67628 // block 28 67629 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), 67630 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), 67631 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), 67632 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), 67633 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), 67634 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), 67635 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67636 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67637 67638 // block 29 67639 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), 67640 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), 67641 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), 67642 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), 67643 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), 67644 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), 67645 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67646 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67647 67648 // block 30 67649 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), 67650 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), 67651 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), 67652 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), 67653 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), 67654 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), 67655 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), 67656 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), 67657 67658 // block 31 67659 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), 67660 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), 67661 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), 67662 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), 67663 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), 67664 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), 67665 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67666 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67667 67668 // block 32 67669 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), 67670 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), 67671 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), 67672 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), 67673 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), 67674 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), 67675 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), 67676 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), 67677 67678 // block 33 67679 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), 67680 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), 67681 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), 67682 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), 67683 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), 67684 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), 67685 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), 67686 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), 67687 67688 // block 34 67689 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), 67690 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), 67691 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), 67692 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), 67693 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), 67694 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), 67695 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), 67696 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), 67697 67698 // block 35 67699 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), 67700 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), 67701 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), 67702 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), 67703 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), 67704 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), 67705 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), 67706 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), 67707 67708 // block 36 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 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), 67711 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), 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(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), 67714 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), 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 67718 // block 37 67719 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), 67720 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), 67721 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), 67722 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), 67723 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), 67724 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), 67725 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), 67726 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), 67727 67728 // block 38 67729 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), 67730 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), 67731 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), 67732 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), 67733 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), 67734 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), 67735 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), 67736 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), 67737 67738 // block 39 67739 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), 67740 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), 67741 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), 67742 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), 67743 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), 67744 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), 67745 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), 67746 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), 67747 67748 // block 40 67749 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), 67750 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), 67751 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), 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 67758 // block 41 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 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), 67761 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), 67762 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), 67763 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), 67764 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), 67765 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), 67766 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), 67767 67768 // block 42 67769 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), 67770 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), 67771 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), 67772 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), 67773 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), 67774 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), 67775 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), 67776 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), 67777 67778 // block 43 67779 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), 67780 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), 67781 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), 67782 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), 67783 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), 67784 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), 67785 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), 67786 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), 67787 67788 // block 44 67789 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), 67790 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), 67791 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), 67792 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), 67793 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), 67794 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), 67795 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), 67796 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), 67797 67798 // block 45 67799 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), 67800 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), 67801 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), 67802 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), 67803 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), 67804 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), 67805 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), 67806 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), 67807 67808 // block 46 67809 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), 67810 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), 67811 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), 67812 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), 67813 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), 67814 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), 67815 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), 67816 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), 67817 67818 // block 47 67819 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), 67820 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), 67821 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), 67822 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), 67823 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), 67824 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), 67825 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), 67826 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), 67827 67828 // block 48 67829 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), 67830 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), 67831 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), 67832 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), 67833 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), 67834 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), 67835 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), 67836 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), 67837 67838 // block 49 67839 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), 67840 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), 67841 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), 67842 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), 67843 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), 67844 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), 67845 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), 67846 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), 67847 67848 // block 50 67849 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), 67850 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), 67851 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), 67852 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), 67853 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), 67854 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), 67855 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), 67856 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), 67857 67858 // block 51 67859 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), 67860 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), 67861 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), 67862 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), 67863 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), 67864 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67865 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67866 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67867 67868 // block 52 67869 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), 67870 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), 67871 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), 67872 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), 67873 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), 67874 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), 67875 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), 67876 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), 67877 67878 // block 53 67879 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), 67880 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), 67881 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), 67882 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), 67883 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), 67884 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), 67885 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), 67886 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), 67887 67888 // block 54 67889 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), 67890 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), 67891 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), 67892 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), 67893 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), 67894 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), 67895 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), 67896 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), 67897 67898 // block 55 67899 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), 67900 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), 67901 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), 67902 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), 67903 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), 67904 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), 67905 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), 67906 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), 67907 67908 // block 56 67909 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), 67910 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), 67911 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), 67912 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), 67913 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), 67914 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), 67915 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), 67916 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), 67917 67918 // block 57 67919 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), 67920 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), 67921 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), 67922 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), 67923 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), 67924 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), 67925 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), 67926 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), 67927 67928 // block 58 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 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), 67931 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), 67932 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), 67933 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), 67934 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), 67935 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), 67936 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), 67937 67938 // block 59 67939 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), 67940 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), 67941 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), 67942 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), 67943 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), 67944 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), 67945 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), 67946 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), 67947 67948 // block 60 67949 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), 67950 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), 67951 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), 67952 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), 67953 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), 67954 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), 67955 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), 67956 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), 67957 67958 // block 61 67959 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), 67960 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), 67961 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), 67962 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), 67963 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), 67964 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), 67965 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), 67966 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), 67967 67968 // block 62 67969 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), 67970 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), 67971 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), 67972 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), 67973 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), 67974 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), 67975 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), 67976 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), 67977 67978 // block 63 67979 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), 67980 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), 67981 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), 67982 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), 67983 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), 67984 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), 67985 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), 67986 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), 67987 67988 // block 64 67989 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), 67990 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), 67991 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), 67992 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), 67993 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), 67994 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), 67995 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), 67996 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), 67997 67998 // block 65 67999 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), 68000 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), 68001 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), 68002 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), 68003 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), 68004 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), 68005 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), 68006 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), 68007 68008 // block 66 68009 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), 68010 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), 68011 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), 68012 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), 68013 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), 68014 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), 68015 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), 68016 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), 68017 68018 // block 67 68019 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), 68020 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), 68021 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), 68022 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), 68023 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), 68024 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), 68025 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), 68026 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), 68027 68028 // block 68 68029 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), 68030 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), 68031 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), 68032 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), 68033 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), 68034 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), 68035 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), 68036 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), 68037 68038 // block 69 68039 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), 68040 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), 68041 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), 68042 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), 68043 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), 68044 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), 68045 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), 68046 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), 68047 68048 // block 70 68049 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), 68050 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), 68051 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), 68052 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), 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(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68054 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), 68055 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), 68056 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), 68057 68058 // block 71 68059 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), 68060 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), 68061 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68062 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), 68063 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), 68064 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), 68065 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), 68066 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), 68067 68068 // block 72 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(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68070 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), 68071 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), 68072 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), 68073 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), 68074 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), 68075 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), 68076 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), 68077 68078 // block 73 68079 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), 68080 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), 68081 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), 68082 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), 68083 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), 68084 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), 68085 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), 68086 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), 68087 68088 // block 74 68089 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), 68090 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), 68091 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), 68092 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), 68093 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), 68094 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), 68095 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), 68096 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), 68097 68098 // block 75 68099 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), 68100 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), 68101 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), 68102 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), 68103 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), 68104 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), 68105 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), 68106 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), 68107 68108 // block 76 68109 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), 68110 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), 68111 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), 68112 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), 68113 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), 68114 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), 68115 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), 68116 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), 68117 68118 // block 77 68119 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), 68120 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), 68121 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), 68122 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), 68123 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), 68124 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), 68125 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), 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 68128 // block 78 68129 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), 68130 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), 68131 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), 68132 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), 68133 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), 68134 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), 68135 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), 68136 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), 68137 68138 // block 79 68139 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), 68140 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), 68141 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), 68142 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), 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(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68145 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), 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 68148 // block 80 68149 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), 68150 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), 68151 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), 68152 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), 68153 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), 68154 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), 68155 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), 68156 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), 68157 68158 // block 81 68159 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), 68160 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), 68161 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), 68162 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), 68163 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), 68164 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), 68165 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), 68166 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), 68167 68168 // block 82 68169 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), 68170 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), 68171 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), 68172 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), 68173 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), 68174 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), 68175 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), 68176 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), 68177 68178 // block 83 68179 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), 68180 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), 68181 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), 68182 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), 68183 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), 68184 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), 68185 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), 68186 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), 68187 68188 // block 84 68189 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), 68190 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), 68191 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), 68192 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), 68193 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), 68194 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), 68195 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), 68196 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), 68197 68198 // block 85 68199 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), 68200 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), 68201 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), 68202 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), 68203 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), 68204 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), 68205 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), 68206 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), 68207 68208 // block 86 68209 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), 68210 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), 68211 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), 68212 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), 68213 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), 68214 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), 68215 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), 68216 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), 68217 68218 // block 87 68219 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), 68220 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), 68221 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), 68222 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), 68223 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), 68224 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), 68225 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), 68226 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), 68227 68228 // block 88 68229 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), 68230 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), 68231 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), 68232 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), 68233 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), 68234 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), 68235 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), 68236 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), 68237 68238 // block 89 68239 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), 68240 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), 68241 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), 68242 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), 68243 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), 68244 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), 68245 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), 68246 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), 68247 68248 // block 90 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 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), 68251 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), 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(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68257 68258 // block 91 68259 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), 68260 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), 68261 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), 68262 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), 68263 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), 68264 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), 68265 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), 68266 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), 68267 68268 // block 92 68269 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), 68270 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), 68271 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), 68272 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), 68273 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), 68274 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), 68275 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68276 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), 68277 68278 // block 93 68279 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), 68280 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), 68281 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), 68282 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), 68283 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), 68284 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), 68285 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), 68286 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), 68287 68288 // block 94 68289 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), 68290 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), 68291 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), 68292 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), 68293 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), 68294 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), 68295 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), 68296 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), 68297 68298 // block 95 68299 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), 68300 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), 68301 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), 68302 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), 68303 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), 68304 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), 68305 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), 68306 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), 68307 68308 // block 96 68309 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), 68310 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), 68311 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), 68312 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), 68313 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), 68314 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), 68315 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), 68316 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), 68317 68318 // block 97 68319 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), 68320 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), 68321 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), 68322 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), 68323 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), 68324 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), 68325 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), 68326 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), 68327 68328 // block 98 68329 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), 68330 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), 68331 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), 68332 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), 68333 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), 68334 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), 68335 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), 68336 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), 68337 68338 // block 99 68339 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), 68340 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), 68341 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), 68342 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), 68343 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), 68344 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), 68345 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), 68346 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), 68347 68348 // block 100 68349 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68350 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68351 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68352 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68353 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68354 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(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), 68355 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), 68356 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), 68357 68358 // block 101 68359 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68360 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68361 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68362 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68363 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68364 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68365 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68366 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68367 68368 // block 102 68369 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68370 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68371 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68372 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68373 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68374 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68375 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68376 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68377 68378 // block 103 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 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), 68381 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), 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(839), Tuint16_t(839), Tuint16_t(839), 68383 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), 68384 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), 68385 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), 68386 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), 68387 68388 // block 104 68389 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), 68390 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), 68391 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), 68392 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), 68393 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), 68394 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), 68395 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), 68396 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), 68397 68398 // block 105 68399 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), 68400 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), 68401 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), 68402 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), 68403 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), 68404 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), 68405 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), 68406 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), 68407 68408 // block 106 68409 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), 68410 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), 68411 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), 68412 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), 68413 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), 68414 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), 68415 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), 68416 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), 68417 68418 // block 107 68419 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), 68420 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), 68421 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), 68422 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68423 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), 68424 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), 68425 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), 68426 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), 68427 68428 // block 108 68429 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), 68430 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), 68431 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), 68432 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), 68433 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), 68434 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), 68435 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), 68436 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), 68437 68438 // block 109 68439 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), 68440 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), 68441 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), 68442 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), 68443 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), 68444 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), 68445 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), 68446 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), 68447 68448 // block 110 68449 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), 68450 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), 68451 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), 68452 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), 68453 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), 68454 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), 68455 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68456 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), 68457 68458 // block 111 68459 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), 68460 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), 68461 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), 68462 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), 68463 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), 68464 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), 68465 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), 68466 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), 68467 68468 // block 112 68469 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), 68470 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), 68471 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), 68472 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), 68473 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), 68474 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), 68475 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), 68476 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), 68477 68478 // block 113 68479 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), 68480 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), 68481 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), 68482 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), 68483 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), 68484 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), 68485 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), 68486 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), 68487 68488 // block 114 68489 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), 68490 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), 68491 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), 68492 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), 68493 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), 68494 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), 68495 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), 68496 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), 68497 68498 // block 115 68499 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), 68500 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), 68501 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), 68502 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), 68503 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), 68504 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), 68505 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), 68506 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), 68507 68508 // block 116 68509 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), 68510 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), 68511 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), 68512 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), 68513 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), 68514 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(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), 68515 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), 68516 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), 68517 68518 // block 117 68519 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), 68520 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), 68521 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), 68522 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), 68523 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), 68524 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), 68525 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), 68526 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), 68527 68528 // block 118 68529 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), 68530 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), 68531 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), 68532 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), 68533 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), 68534 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), 68535 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), 68536 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), 68537 68538 // block 119 68539 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), 68540 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(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), 68541 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 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(949), 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(950), 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(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), 68545 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 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(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), 68547 68548 // block 120 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(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68550 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68551 Tuint16_t(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), 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(950), 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(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), 68554 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 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(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), 68556 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(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), 68557 68558 // block 121 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(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68560 Tuint16_t(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), 68561 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68562 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), 68563 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 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(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), 68565 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(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), 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(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68567 68568 // block 122 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(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68570 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68571 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), 68572 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 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(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), 68574 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(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), 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(950), 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(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68577 68578 // block 123 68579 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 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 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), 68581 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68582 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), 68583 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(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), 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(950), 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(949), 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(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68587 68588 // block 124 68589 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), 68590 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68591 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), 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(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), 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(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), 68595 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68596 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), 68597 68598 // block 125 68599 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68600 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), 68601 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(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), 68602 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68603 Tuint16_t(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), 68604 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68605 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), 68606 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68607 68608 // block 126 68609 Tuint16_t(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), 68610 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68611 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), 68612 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), 68613 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), 68614 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), 68615 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), 68616 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), 68617 68618 // block 127 68619 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), 68620 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), 68621 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), 68622 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), 68623 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), 68624 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), 68625 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), 68626 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), 68627 68628 // block 128 68629 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), 68630 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), 68631 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), 68632 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), 68633 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), 68634 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), 68635 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), 68636 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), 68637 68638 // block 129 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 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), 68641 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), 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 68648 // block 130 68649 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), 68650 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), 68651 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), 68652 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), 68653 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), 68654 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), 68655 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), 68656 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), 68657 68658 // block 131 68659 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), 68660 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), 68661 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), 68662 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), 68663 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), 68664 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), 68665 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68666 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68667 68668 // block 132 68669 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), 68670 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), 68671 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), 68672 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), 68673 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), 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 68678 // block 133 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 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68681 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68682 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), 68683 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), 68684 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), 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 68688 // block 134 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 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68691 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 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(955), Tuint16_t(955), 68695 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), 68696 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68697 68698 // block 135 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 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68701 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 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(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 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(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68707 68708 // block 136 68709 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68710 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68711 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68712 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(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), 68713 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), 68714 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68715 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68716 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68717 68718 // block 137 68719 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68720 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), 68721 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 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(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(280), 68724 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), 68725 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), 68726 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), 68727 68728 // block 138 68729 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), 68730 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), 68731 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), 68732 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), 68733 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), 68734 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), 68735 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), 68736 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), 68737 68738 // block 139 68739 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68740 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68741 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68742 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68743 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68744 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68745 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68746 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(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), 68747 68748 // block 140 68749 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), 68750 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), 68751 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), 68752 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), 68753 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), 68754 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), 68755 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), 68756 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), 68757 68758 // block 141 68759 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), 68760 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), 68761 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), 68762 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), 68763 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), 68764 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), 68765 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), 68766 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), 68767 68768 // block 142 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(994), Tuint16_t(163), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68770 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), 68771 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), 68772 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), 68773 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), 68774 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), 68775 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68776 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68777 68778 // block 143 68779 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), 68780 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), 68781 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), 68782 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), 68783 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), 68784 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), 68785 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), 68786 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), 68787 68788 // block 144 68789 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), 68790 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), 68791 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), 68792 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), 68793 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), 68794 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), 68795 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), 68796 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), 68797 68798 // block 145 68799 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), 68800 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(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), 68801 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), 68802 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68803 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68804 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68805 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68806 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(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), 68807 68808 // block 146 68809 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68810 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68811 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68812 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68813 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68814 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68815 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68816 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68817 68818 // block 147 68819 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), 68820 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), 68821 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), 68822 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), 68823 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), 68824 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), 68825 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), 68826 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), 68827 68828 // block 148 68829 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), 68830 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), 68831 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), 68832 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), 68833 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), 68834 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), 68835 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), 68836 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), 68837 68838 // block 149 68839 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), 68840 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), 68841 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), 68842 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), 68843 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), 68844 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), 68845 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68846 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68847 68848 // block 150 68849 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), 68850 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), 68851 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), 68852 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), 68853 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), 68854 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), 68855 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), 68856 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), 68857 68858 // block 151 68859 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), 68860 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), 68861 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), 68862 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), 68863 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), 68864 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), 68865 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), 68866 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), 68867 68868 // block 152 68869 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), 68870 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), 68871 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), 68872 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), 68873 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), 68874 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), 68875 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), 68876 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), 68877 68878 // block 153 68879 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), 68880 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), 68881 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), 68882 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), 68883 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68884 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68885 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68887 68888 // block 154 68889 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), 68890 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), 68891 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), 68892 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), 68893 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), 68894 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), 68895 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), 68896 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), 68897 68898 // block 155 68899 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), 68900 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), 68901 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), 68902 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), 68903 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), 68904 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), 68905 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), 68906 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68907 68908 // block 156 68909 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), 68910 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), 68911 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), 68912 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), 68913 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68914 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68915 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68916 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68917 68918 // block 157 68919 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), 68920 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), 68921 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), 68922 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), 68923 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), 68924 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), 68925 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), 68926 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), 68927 68928 // block 158 68929 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), 68930 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), 68931 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), 68932 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68933 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68934 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68935 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), 68936 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), 68937 68938 // block 159 68939 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), 68940 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), 68941 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), 68942 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), 68943 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68944 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68945 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68946 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68947 68948 // block 160 68949 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), 68950 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), 68951 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), 68952 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), 68953 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), 68954 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), 68955 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), 68956 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), 68957 68958 // block 161 68959 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), 68960 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), 68961 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), 68962 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), 68963 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), 68964 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), 68965 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), 68966 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), 68967 68968 // block 162 68969 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), 68970 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), 68971 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68972 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68973 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), 68974 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), 68975 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), 68976 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), 68977 68978 // block 163 68979 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), 68980 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), 68981 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), 68982 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), 68983 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), 68984 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), 68985 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), 68986 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), 68987 68988 // block 164 68989 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), 68990 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), 68991 Tuint16_t(262), Tuint16_t(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), 68992 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68993 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68994 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68995 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 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(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68997 68998 // block 165 68999 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), 69000 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), 69001 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), 69002 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), 69003 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), 69004 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69005 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 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 69008 // block 166 69009 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), 69010 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), 69011 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), 69012 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), 69013 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), 69014 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), 69015 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), 69016 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), 69017 69018 // block 167 69019 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), 69020 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), 69021 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), 69022 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), 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 69028 // block 168 69029 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69030 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69031 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69032 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69033 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69034 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69035 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 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 69038 // block 169 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 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69041 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69042 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69043 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69044 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 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(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), 69046 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), 69047 69048 // block 170 69049 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), 69050 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), 69051 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), 69052 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), 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(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69056 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69057 69058 // block 171 69059 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), 69060 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), 69061 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), 69062 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), 69063 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), 69064 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), 69065 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), 69066 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), 69067 69068 // block 172 69069 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), 69070 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69071 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69072 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), 69073 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), 69074 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69075 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), 69076 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), 69077 69078 // block 173 69079 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), 69080 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), 69081 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), 69082 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), 69083 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), 69084 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), 69085 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), 69086 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), 69087 69088 // block 174 69089 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), 69090 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), 69091 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), 69092 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), 69093 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), 69094 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), 69095 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), 69096 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), 69097 69098 // block 175 69099 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), 69100 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), 69101 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), 69102 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), 69103 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), 69104 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), 69105 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), 69106 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), 69107 69108 // block 176 69109 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), 69110 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), 69111 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), 69112 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), 69113 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), 69114 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), 69115 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), 69116 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), 69117 69118 // block 177 69119 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), 69120 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), 69121 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), 69122 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), 69123 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69124 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69125 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69126 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69127 69128 // block 178 69129 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), 69130 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), 69131 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), 69132 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), 69133 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), 69134 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), 69135 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), 69136 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), 69137 69138 // block 179 69139 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), 69140 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), 69141 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), 69142 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), 69143 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), 69144 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), 69145 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), 69146 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), 69147 69148 // block 180 69149 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), 69150 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), 69151 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), 69152 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), 69153 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), 69154 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), 69155 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), 69156 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69157 69158 // block 181 69159 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), 69160 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), 69161 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), 69162 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), 69163 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), 69164 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), 69165 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69166 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69168 // block 182 69169 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), 69170 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), 69171 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), 69172 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), 69173 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), 69174 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), 69175 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69176 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69177 69178 // block 183 69179 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), 69180 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), 69181 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), 69182 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), 69183 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), 69184 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), 69185 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), 69186 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69188 // block 184 69189 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), 69190 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), 69191 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), 69192 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), 69193 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), 69194 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69195 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69198 // block 185 69199 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), 69200 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), 69201 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), 69202 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), 69203 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), 69204 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69205 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69206 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69207 69208 // block 186 69209 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), 69210 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), 69211 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), 69212 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), 69213 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69214 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69215 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69216 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69218 // block 187 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 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69221 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), 69222 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), 69223 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), 69224 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), 69225 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), 69226 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), 69227 69228 // block 188 69229 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), 69230 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), 69231 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), 69232 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), 69233 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), 69234 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), 69235 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69236 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69238 // block 189 69239 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69240 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69241 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), 69242 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), 69243 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), 69244 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), 69245 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), 69246 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69247 69248 // block 190 69249 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), 69250 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), 69251 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), 69252 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), 69253 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), 69254 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), 69255 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), 69256 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), 69257 69258 // block 191 69259 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), 69260 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), 69261 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), 69262 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), 69263 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), 69264 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), 69265 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), 69266 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), 69267 69268 // block 192 69269 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), 69270 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), 69271 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), 69272 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), 69273 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), 69274 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), 69275 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), 69276 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), 69277 69278 // block 193 69279 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), 69280 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), 69281 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), 69282 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), 69283 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69284 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69288 // block 194 69289 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), 69290 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), 69291 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), 69292 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), 69293 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), 69294 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), 69295 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), 69296 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), 69297 69298 // block 195 69299 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), 69300 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), 69301 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), 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(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69307 69308 // block 196 69309 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69310 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69311 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69312 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69313 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69314 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69315 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), 69316 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), 69317 69318 // block 197 69319 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69320 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69321 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69322 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), 69323 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), 69324 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), 69325 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), 69326 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), 69327 69328 // block 198 69329 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), 69330 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), 69331 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), 69332 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), 69333 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), 69334 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), 69335 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), 69336 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), 69337 69338 // block 199 69339 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), 69340 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), 69341 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69342 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69343 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69344 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69345 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69346 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69348 // block 200 69349 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), 69350 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), 69351 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), 69352 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), 69353 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), 69354 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), 69355 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), 69356 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), 69357 69358 // block 201 69359 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), 69360 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), 69361 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), 69362 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), 69363 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), 69364 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69365 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69366 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69367 69368 // block 202 69369 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69370 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), 69371 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), 69372 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), 69373 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), 69374 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), 69375 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), 69376 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), 69377 69378 // block 203 69379 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), 69380 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), 69381 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), 69382 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), 69383 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), 69384 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), 69385 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), 69386 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), 69387 69388 // block 204 69389 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), 69390 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), 69391 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), 69392 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), 69393 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69394 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69395 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69396 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69398 // block 205 69399 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), 69400 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), 69401 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), 69402 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), 69403 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), 69404 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), 69405 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), 69406 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), 69407 69408 // block 206 69409 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), 69410 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), 69411 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), 69412 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), 69413 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), 69414 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69415 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69416 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69417 69418 // block 207 69419 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), 69420 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), 69421 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), 69422 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), 69423 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), 69424 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), 69425 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), 69426 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), 69427 69428 // block 208 69429 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), 69430 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), 69431 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), 69432 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), 69433 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), 69434 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), 69435 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), 69436 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), 69437 69438 // block 209 69439 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), 69440 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), 69441 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), 69442 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), 69443 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), 69444 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), 69445 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), 69446 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), 69447 69448 // block 210 69449 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), 69450 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), 69451 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), 69452 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), 69453 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), 69454 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), 69455 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), 69456 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), 69457 69458 // block 211 69459 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), 69460 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69461 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69462 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69463 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69468 // block 212 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 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69471 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69472 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69473 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), 69474 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), 69475 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), 69476 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), 69477 69478 // block 213 69479 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), 69480 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), 69481 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69482 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69483 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69488 // block 214 69489 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), 69490 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), 69491 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), 69492 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), 69493 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), 69494 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), 69495 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), 69496 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), 69497 69498 // block 215 69499 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), 69500 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), 69501 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69502 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69503 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69504 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69505 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), 69506 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), 69507 69508 // block 216 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(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69510 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), 69511 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), 69512 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), 69513 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), 69514 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), 69515 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), 69516 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), 69517 69518 // block 217 69519 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), 69520 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), 69521 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), 69522 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), 69523 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), 69524 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), 69525 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), 69526 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), 69527 69528 // block 218 69529 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), 69530 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), 69531 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), 69532 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), 69533 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), 69534 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), 69535 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), 69536 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), 69537 69538 // block 219 69539 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), 69540 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), 69541 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), 69542 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), 69543 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), 69544 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), 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 69548 // block 220 69549 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), 69550 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69551 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69552 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69553 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69554 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69555 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69556 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69557 69558 // block 221 69559 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69560 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69561 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69562 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69563 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69564 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69565 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69566 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), 69567 69568 // block 222 69569 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), 69570 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), 69571 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), 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(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), 69575 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), 69576 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), 69577 69578 // block 223 69579 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), 69580 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), 69581 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), 69582 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), 69583 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), 69584 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), 69585 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), 69586 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), 69587 69588 // block 224 69589 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), 69590 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), 69591 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), 69592 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69593 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69594 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), 69595 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), 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 69598 // block 225 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(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69600 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), 69601 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), 69602 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), 69603 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), 69604 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), 69605 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), 69606 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), 69607 69608 // block 226 69609 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), 69610 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), 69611 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), 69612 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), 69613 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), 69614 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), 69615 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), 69616 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), 69617 69618 // block 227 69619 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), 69620 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), 69621 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), 69622 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), 69623 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), 69624 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), 69625 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), 69626 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), 69627 69628 // block 228 69629 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), 69630 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), 69631 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), 69632 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69633 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69634 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69635 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69636 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69638 // block 229 69639 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), 69640 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), 69641 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), 69642 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), 69643 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), 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 69648 // block 230 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 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69651 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 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(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69654 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69655 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69656 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69657 69658 // block 231 69659 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69660 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69661 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 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(460), Tuint16_t(460), 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 69668 // block 232 69669 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69670 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69671 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69672 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 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(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 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(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69677 69678 // block 233 69679 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69680 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69681 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), 69682 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69683 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69684 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69685 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), 69686 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), 69687 69688 // block 234 69689 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), 69690 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69691 Tuint16_t(460), Tuint16_t(460), Tuint16_t(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), 69692 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69693 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69694 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69695 Tuint16_t(460), Tuint16_t(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), 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 69698 // block 235 69699 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), 69700 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), 69701 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), 69702 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), 69703 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), 69704 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69705 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69706 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69707 69708 // block 236 69709 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69710 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69711 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69712 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69713 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69714 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69715 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), 69716 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), 69717 69718 // block 237 69719 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69720 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69721 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69722 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69723 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69724 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), 69725 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), 69726 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), 69727 69728 // block 238 69729 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), 69730 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), 69731 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), 69732 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), 69733 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), 69734 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), 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(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69736 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), 69737 69738 // block 239 69739 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), 69740 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), 69741 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), 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(163), Tuint16_t(725), Tuint16_t(163), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), 69743 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), 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 69748 // block 240 69749 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), 69750 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), 69751 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), 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(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), 69753 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), 69754 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), 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 69758 // block 241 69759 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), 69760 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), 69761 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), 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(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), 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(725), Tuint16_t(725), 69766 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), 69767 69768 // block 242 69769 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), 69770 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), 69771 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), 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(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69773 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), 69774 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), 69775 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), 69776 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), 69777 69778 // block 243 69779 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), 69780 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), 69781 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), 69782 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), 69783 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), 69784 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), 69785 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), 69786 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), 69787 69788 // block 244 69789 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), 69790 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), 69791 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), 69792 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), 69793 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), 69794 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), 69795 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), 69796 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), 69797 69798 // block 245 69799 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), 69800 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), 69801 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), 69802 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), 69803 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), 69804 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), 69805 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), 69806 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), 69807 69808 // block 246 69809 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), 69810 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), 69811 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), 69812 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), 69813 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), 69814 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), 69815 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), 69816 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), 69817 69818 // block 247 69819 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), 69820 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), 69821 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), 69822 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), 69823 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), 69824 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), 69825 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), 69826 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), 69827 69828 // block 248 69829 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), 69830 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(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), 69831 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), 69832 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69833 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69834 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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 69838 // block 249 69839 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), 69840 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), 69841 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69842 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69843 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69844 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69845 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69846 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69847 69848 // block 250 69849 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), 69850 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), 69851 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), 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(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69854 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69857 69858 // block 251 69859 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), 69860 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), 69861 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), 69862 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), 69863 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), 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 69868 // block 252 69869 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69870 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), 69871 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), 69872 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69873 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), 69874 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), 69875 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), 69876 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), 69877 69878 // block 253 69879 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69880 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69881 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69882 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69883 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69884 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69885 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), 69886 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), 69887 69888 // block 254 69889 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), 69890 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), 69891 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), 69892 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), 69893 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), 69894 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), 69895 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), 69896 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), 69897 69898 // block 255 69899 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), 69900 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), 69901 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), 69902 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), 69903 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), 69904 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), 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 69908 // block 256 69909 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), 69910 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), 69911 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), 69912 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), 69913 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), 69914 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), 69915 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 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 69918 // block 257 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 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69921 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69922 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69923 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69924 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69925 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69926 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), 69927 69928 // block 258 69929 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), 69930 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), 69931 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), 69932 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), 69933 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69934 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69935 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69936 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69937 69938 // block 259 69939 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), 69940 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), 69941 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), 69942 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), 69943 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), 69944 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69945 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69946 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69947 69948 // block 260 69949 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), 69950 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), 69951 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), 69952 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), 69953 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), 69954 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), 69955 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), 69956 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), 69957 69958 // block 261 69959 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), 69960 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), 69961 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), 69962 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), 69963 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), 69964 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), 69965 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), 69966 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), 69967 69968 // block 262 69969 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), 69970 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), 69971 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), 69972 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), 69973 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), 69974 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), 69975 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), 69976 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), 69977 69978 // block 263 69979 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), 69980 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), 69981 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), 69982 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), 69983 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), 69984 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), 69985 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), 69986 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), 69987 69988 // block 264 69989 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), 69990 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69991 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(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), 69992 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), 69993 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), 69994 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), 69995 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), 69996 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), 69997 69998 // block 265 69999 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), 70000 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), 70001 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(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), 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(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), 70006 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), 70007 70008 // block 266 70009 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), 70010 Tuint16_t(460), Tuint16_t(460), Tuint16_t(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), 70011 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(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), 70012 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), 70013 Tuint16_t(460), Tuint16_t(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), 70014 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), 70015 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), 70016 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), 70017 70018 // block 267 70019 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), 70020 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), 70021 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), 70022 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), 70023 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), 70024 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), 70025 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), 70026 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), 70027 70028 // block 268 70029 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70030 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70031 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), 70032 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), 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(1394), 70036 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(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), 70037 70038 // block 269 70039 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), 70040 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), 70041 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70042 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70043 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), 70044 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), 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(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), 70047 70048 // block 270 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(1394), Tuint16_t(1394), Tuint16_t(1394), 70050 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70051 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 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(727), 70053 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), 70054 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), 70055 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), 70056 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), 70057 70058 // block 271 70059 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), 70060 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), 70061 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(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), 70062 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70063 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70064 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70065 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70066 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(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), 70067 70068 // block 272 70069 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70070 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70071 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 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(723), Tuint16_t(723), 70073 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), 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(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), 70076 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), 70077 70078 // block 273 70079 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), 70080 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), 70081 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), 70082 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), 70083 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), 70084 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), 70085 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), 70086 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), 70087 70088 // block 274 70089 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70090 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70091 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70092 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70093 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), 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 70098 // block 275 70099 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70100 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70101 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), 70102 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), 70103 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), 70104 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), 70105 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), 70106 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), 70107 70108 // block 276 70109 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70110 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70111 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 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(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 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(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), 70117 70118 // block 277 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 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70121 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 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(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 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(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), 70125 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(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), 70126 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), 70127 70128 // block 278 70129 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(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), 70130 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70131 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 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(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70133 Tuint16_t(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), 70134 Tuint16_t(723), Tuint16_t(723), Tuint16_t(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), 70135 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70136 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70137 70138 // block 279 70139 Tuint16_t(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), 70140 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70141 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(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), 70142 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), 70143 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), 70144 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), 70145 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), 70146 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), 70147 70148 // block 280 70149 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(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), 70150 Tuint16_t(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), 70151 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), 70152 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), 70153 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), 70154 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70155 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70156 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), 70157 70158 // block 281 70159 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70160 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70161 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70162 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), 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(1403), Tuint16_t(1403), Tuint16_t(1403), 70164 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), 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(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70166 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70167 70168 // block 282 70169 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), 70170 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), 70171 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), 70172 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), 70173 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), 70174 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), 70175 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), 70176 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), 70177 70178 // block 283 70179 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), 70180 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70181 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(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), 70182 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(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), 70183 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), 70184 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(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), 70185 Tuint16_t(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), 70186 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), 70187 70188 // block 284 70189 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70190 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70191 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70192 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70193 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70194 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70195 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70196 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70197 70198 // block 285 70199 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70200 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), 70201 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70202 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70203 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(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), 70204 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70205 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70206 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), 70207 70208 // block 286 70209 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), 70210 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), 70211 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), 70212 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), 70213 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), 70214 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), 70215 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), 70216 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), 70217 70218 // block 287 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 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70221 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 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(838), Tuint16_t(838), 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(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70226 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70227 70228 // block 288 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 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70231 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 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(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 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(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 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 70238 // block 289 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 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(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), 70241 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 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 70248 // block 290 70249 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70250 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70251 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), 70252 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70253 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70254 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70255 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70256 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70257 70258 // block 291 70259 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70260 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70261 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70262 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70263 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70264 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70265 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), 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 70268 // block 292 70269 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), 70270 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), 70271 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70272 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70273 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70274 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70275 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70276 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70277 70278 // block 293 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 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70281 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70282 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70283 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70284 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70285 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70286 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(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), 70287 70288 // block 294 70289 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70290 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70291 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70292 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70293 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(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), 70294 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70295 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70296 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70297 70298 // block 295 70299 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), 70300 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), 70301 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), 70302 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), 70303 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), 70304 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), 70305 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), 70306 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), 70307 70308 // block 296 70309 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), 70310 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), 70311 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), 70312 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), 70313 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), 70314 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), 70315 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), 70316 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), 70317 70318 // block 297 70319 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), 70320 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), 70321 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), 70322 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), 70323 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), 70324 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), 70325 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), 70326 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), 70327 70328 // block 298 70329 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), 70330 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), 70331 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), 70332 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), 70333 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), 70334 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), 70335 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), 70336 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), 70337 70338 // block 299 70339 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), 70340 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), 70341 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), 70342 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), 70343 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), 70344 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), 70345 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), 70346 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), 70347 } /* pcre2_ucd.c:2386:16 */ 70348 70349 // End of pcre2_ucd.c 70350 70351 // This function is needed only when memmove() is not available. 70352 70353 // End of pcre2_internal.h 70354 70355 // ************************************************ 70356 // 70357 // Validate a UTF string * 70358 // 70359 70360 // This function is called (optionally) at the start of compile or match, to 70361 // check that a supposed UTF string is actually valid. The early check means 70362 // that subsequent code can assume it is dealing with a valid string. The check 70363 // can be turned off for maximum performance, but the consequences of supplying an 70364 // invalid string are then undefined. 70365 // 70366 // Arguments: 70367 // string points to the string 70368 // length length of string 70369 // errp pointer to an error position offset variable 70370 // 70371 // Returns: == 0 if the string is a valid UTF string 70372 // != 0 otherwise, setting the offset of the bad character 70373 70374 func X_pcre2_valid_utf_8(tls *libc.TLS, string TPCRE2_SPTR8, length Tsize_t, erroroffset uintptr) int32 { /* pcre2_valid_utf.c:94:1: */ 70375 var p TPCRE2_SPTR8 70376 var c Tuint32_t 70377 70378 // ----------------- Check a UTF-8 string ----------------- 70379 70380 // Originally, this function checked according to RFC 2279, allowing for values 70381 // in the range 0 to 0x7fffffff, up to 6 bytes long, but ensuring that they were 70382 // in the canonical format. Once somebody had pointed out RFC 3629 to me (it 70383 // obsoletes 2279), additional restrictions were applied. The values are now 70384 // limited to be between 0 and 0x0010ffff, no more than 4 bytes long, and the 70385 // subrange 0xd000 to 0xdfff is excluded. However, the format of 5-byte and 6-byte 70386 // characters is still checked. Error returns are as follows: 70387 // 70388 // PCRE2_ERROR_UTF8_ERR1 Missing 1 byte at the end of the string 70389 // PCRE2_ERROR_UTF8_ERR2 Missing 2 bytes at the end of the string 70390 // PCRE2_ERROR_UTF8_ERR3 Missing 3 bytes at the end of the string 70391 // PCRE2_ERROR_UTF8_ERR4 Missing 4 bytes at the end of the string 70392 // PCRE2_ERROR_UTF8_ERR5 Missing 5 bytes at the end of the string 70393 // PCRE2_ERROR_UTF8_ERR6 2nd-byte's two top bits are not 0x80 70394 // PCRE2_ERROR_UTF8_ERR7 3rd-byte's two top bits are not 0x80 70395 // PCRE2_ERROR_UTF8_ERR8 4th-byte's two top bits are not 0x80 70396 // PCRE2_ERROR_UTF8_ERR9 5th-byte's two top bits are not 0x80 70397 // PCRE2_ERROR_UTF8_ERR10 6th-byte's two top bits are not 0x80 70398 // PCRE2_ERROR_UTF8_ERR11 5-byte character is not permitted by RFC 3629 70399 // PCRE2_ERROR_UTF8_ERR12 6-byte character is not permitted by RFC 3629 70400 // PCRE2_ERROR_UTF8_ERR13 4-byte character with value > 0x10ffff is not permitted 70401 // PCRE2_ERROR_UTF8_ERR14 3-byte character with value 0xd800-0xdfff is not permitted 70402 // PCRE2_ERROR_UTF8_ERR15 Overlong 2-byte sequence 70403 // PCRE2_ERROR_UTF8_ERR16 Overlong 3-byte sequence 70404 // PCRE2_ERROR_UTF8_ERR17 Overlong 4-byte sequence 70405 // PCRE2_ERROR_UTF8_ERR18 Overlong 5-byte sequence (won't ever occur) 70406 // PCRE2_ERROR_UTF8_ERR19 Overlong 6-byte sequence (won't ever occur) 70407 // PCRE2_ERROR_UTF8_ERR20 Isolated 0x80 byte (not within UTF-8 character) 70408 // PCRE2_ERROR_UTF8_ERR21 Byte with the illegal value 0xfe or 0xff 70409 70410 for p = string; length > uint64(0); p++ { 70411 var ab Tuint32_t 70412 var d Tuint32_t 70413 70414 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p))) 70415 length-- 70416 70417 if c < Tuint32_t(128) { 70418 continue 70419 } // ASCII character 70420 70421 if c < Tuint32_t(0xc0) { 70422 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int64(p) - int64(string)) / 1) 70423 return -22 70424 } 70425 70426 if c >= Tuint32_t(0xfe) { 70427 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int64(p) - int64(string)) / 1) 70428 return -23 70429 } 70430 70431 ab = Tuint32_t(X_pcre2_utf8_table4[c&Tuint32_t(0x3f)]) // Number of additional bytes (1-5) 70432 if length < Tsize_t(ab) { 70433 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int64(p) - int64(string)) / 1) 70434 switch Tsize_t(ab) - length { 70435 case uint64(1): 70436 return -3 70437 fallthrough 70438 case uint64(2): 70439 return -4 70440 fallthrough 70441 case uint64(3): 70442 return -5 70443 fallthrough 70444 case uint64(4): 70445 return -6 70446 fallthrough 70447 case uint64(5): 70448 return -7 70449 } 70450 } 70451 length = length - Tsize_t(ab) // Length remaining 70452 70453 // Check top bits in the second byte 70454 70455 if libc.AssignUint32(&d, Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1)))))&Tuint32_t(0xc0) != Tuint32_t(0x80) { 70456 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 1) 70457 return -8 70458 } 70459 70460 // For each length, check that the remaining bytes start with the 0x80 bit 70461 // set and not the 0x40 bit. Then check for an overlong sequence, and for the 70462 // excluded range 0xd800 to 0xdfff. 70463 70464 switch ab { 70465 // 2-byte character. No further bytes to check for 0x80. Check first byte 70466 // for for xx00 000x (overlong sequence). 70467 70468 case Tuint32_t(1): 70469 if c&Tuint32_t(0x3e) == Tuint32_t(0) { 70470 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 1) 70471 return -17 70472 } 70473 break 70474 70475 // 3-byte character. Check third byte for 0x80. Then check first 2 bytes 70476 // for 1110 0000, xx0x xxxx (overlong sequence) or 70477 // 1110 1101, 1010 xxxx (0xd800 - 0xdfff) 70478 70479 case Tuint32_t(2): 70480 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70481 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70482 return -9 70483 } 70484 if c == Tuint32_t(0xe0) && d&Tuint32_t(0x20) == Tuint32_t(0) { 70485 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70486 return -18 70487 } 70488 if c == Tuint32_t(0xed) && d >= Tuint32_t(0xa0) { 70489 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70490 return -16 70491 } 70492 break 70493 70494 // 4-byte character. Check 3rd and 4th bytes for 0x80. Then check first 2 70495 // bytes for for 1111 0000, xx00 xxxx (overlong sequence), then check for a 70496 // character greater than 0x0010ffff (f4 8f bf bf) 70497 70498 case Tuint32_t(3): 70499 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70500 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70501 return -9 70502 } 70503 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70504 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 3) 70505 return -10 70506 } 70507 if c == Tuint32_t(0xf0) && d&Tuint32_t(0x30) == Tuint32_t(0) { 70508 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 3) 70509 return -19 70510 } 70511 if c > Tuint32_t(0xf4) || c == Tuint32_t(0xf4) && d > Tuint32_t(0x8f) { 70512 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 3) 70513 return -15 70514 } 70515 break 70516 70517 // 5-byte and 6-byte characters are not allowed by RFC 3629, and will be 70518 // rejected by the length test below. However, we do the appropriate tests 70519 // here so that overlong sequences get diagnosed, and also in case there is 70520 // ever an option for handling these larger code points. 70521 70522 // 5-byte character. Check 3rd, 4th, and 5th bytes for 0x80. Then check for 70523 // 1111 1000, xx00 0xxx 70524 70525 case Tuint32_t(4): 70526 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70527 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70528 return -9 70529 } 70530 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70531 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 3) 70532 return -10 70533 } 70534 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70535 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 4) 70536 return -11 70537 } 70538 if c == Tuint32_t(0xf8) && d&Tuint32_t(0x38) == Tuint32_t(0) { 70539 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 4) 70540 return -20 70541 } 70542 break 70543 70544 // 6-byte character. Check 3rd-6th bytes for 0x80. Then check for 70545 // 1111 1100, xx00 00xx. 70546 70547 case Tuint32_t(5): 70548 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70549 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70550 return -9 70551 } 70552 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70553 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 3) 70554 return -10 70555 } 70556 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70557 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 4) 70558 return -11 70559 } 70560 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70561 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 5) 70562 return -12 70563 } 70564 if c == Tuint32_t(0xfc) && d&Tuint32_t(0x3c) == Tuint32_t(0) { 70565 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 5) 70566 return -21 70567 } 70568 break 70569 } 70570 70571 // Character is valid under RFC 2279, but 4-byte and 5-byte characters are 70572 // excluded by RFC 3629. The pointer p is currently at the last byte of the 70573 // character. 70574 70575 if ab > Tuint32_t(3) { 70576 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(Tuint32_t(int32((int64(p)-int64(string))/1)) - ab) 70577 if ab == Tuint32_t(4) { 70578 return -13 70579 } 70580 return -14 70581 } 70582 } 70583 return 0 70584 70585 // ----------------- Check a UTF-16 string ----------------- 70586 70587 } 70588 70589 // End of pcre2_valid_utf.c 70590 70591 // This function is needed only when memmove() is not available. 70592 70593 // End of pcre2_internal.h 70594 70595 // ************************************************ 70596 // 70597 // Match character against an XCLASS * 70598 // 70599 70600 // This function is called to match a character against an extended class that 70601 // might contain codepoints above 255 and/or Unicode properties. 70602 // 70603 // Arguments: 70604 // c the character 70605 // data points to the flag code unit of the XCLASS data 70606 // utf TRUE if in UTF mode 70607 // 70608 // Returns: TRUE if character matches, else FALSE 70609 70610 func X_pcre2_xclass_8(tls *libc.TLS, c Tuint32_t, data TPCRE2_SPTR8, utf TBOOL) TBOOL { /* pcre2_xclass.c:69:1: */ 70611 var t TPCRE2_UCHAR8 70612 var negated TBOOL = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_NOT != 0) 70613 70614 // In 8 bit mode, this must always be TRUE. Help the compiler to know that. 70615 utf = DTRUE 70616 70617 // Code points < 256 are matched against a bitmap, if one is present. If not, 70618 // we still carry on, because there may be ranges that start below 256 in the 70619 // additional data. 70620 70621 if c < Tuint32_t(256) { 70622 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_HASPROP == 0 { 70623 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_MAP == 0 { 70624 return negated 70625 } 70626 return libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(data + uintptr(1) + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0)) 70627 } 70628 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) { 70629 return libc.BoolInt32(!(negated != 0)) 70630 } // char found 70631 } 70632 70633 // First skip the bit map if present. Then match against the list of Unicode 70634 // properties or large chars or ranges that end with a large char. We won't ever 70635 // encounter XCL_PROP or XCL_NOTPROP when UTF support is not compiled. 70636 70637 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&DXCL_MAP != 0 { 70638 data += TPCRE2_SPTR8(uint64(32) / uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 70639 } 70640 70641 for int32(libc.AssignUint8(&t, *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))) != DXCL_END { 70642 var x Tuint32_t 70643 var y Tuint32_t 70644 if int32(t) == DXCL_SINGLE { 70645 if utf != 0 { 70646 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70647 if x >= 0xc0 { 70648 if x&0x20 == Tuint32_t(0) { 70649 x = x&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&0x3f 70650 } else if x&0x10 == Tuint32_t(0) { 70651 x = x&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f 70652 data += uintptr(2) 70653 } else if x&0x08 == Tuint32_t(0) { 70654 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 70655 data += uintptr(3) 70656 } else if x&0x04 == Tuint32_t(0) { 70657 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 70658 data += uintptr(4) 70659 } else { 70660 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 70661 data += uintptr(5) 70662 } 70663 } 70664 70665 // macro generates multiple statements 70666 } else { 70667 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70668 } 70669 if c == x { 70670 return libc.BoolInt32(!(negated != 0)) 70671 } 70672 } else if int32(t) == DXCL_RANGE { 70673 if utf != 0 { 70674 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70675 if x >= 0xc0 { 70676 if x&0x20 == Tuint32_t(0) { 70677 x = x&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&0x3f 70678 } else if x&0x10 == Tuint32_t(0) { 70679 x = x&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f 70680 data += uintptr(2) 70681 } else if x&0x08 == Tuint32_t(0) { 70682 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 70683 data += uintptr(3) 70684 } else if x&0x04 == Tuint32_t(0) { 70685 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 70686 data += uintptr(4) 70687 } else { 70688 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 70689 data += uintptr(5) 70690 } 70691 } 70692 70693 // macro generates multiple statements 70694 y = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70695 if y >= 0xc0 { 70696 if y&0x20 == Tuint32_t(0) { 70697 y = y&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&0x3f 70698 } else if y&0x10 == Tuint32_t(0) { 70699 y = y&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f 70700 data += uintptr(2) 70701 } else if y&0x08 == Tuint32_t(0) { 70702 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 70703 data += uintptr(3) 70704 } else if y&0x04 == Tuint32_t(0) { 70705 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 70706 data += uintptr(4) 70707 } else { 70708 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 70709 data += uintptr(5) 70710 } 70711 } 70712 70713 // macro generates multiple statements 70714 } else { 70715 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70716 y = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70717 } 70718 if c >= x && c <= y { 70719 return libc.BoolInt32(!(negated != 0)) 70720 } 70721 } else { 70722 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 70723 var isprop TBOOL = libc.Bool32(int32(t) == DXCL_PROP) 70724 var ok TBOOL 70725 70726 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data))) { 70727 case DPT_ANY: 70728 if isprop != 0 { 70729 return libc.BoolInt32(!(negated != 0)) 70730 } 70731 break 70732 fallthrough 70733 70734 case DPT_LAMP: 70735 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 { 70736 return libc.BoolInt32(!(negated != 0)) 70737 } 70738 break 70739 fallthrough 70740 70741 case DPT_GC: 70742 if libc.Bool32(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype]) == isprop { 70743 return libc.BoolInt32(!(negated != 0)) 70744 } 70745 break 70746 fallthrough 70747 70748 case DPT_PC: 70749 if libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype)) == isprop { 70750 return libc.BoolInt32(!(negated != 0)) 70751 } 70752 break 70753 fallthrough 70754 70755 case DPT_SC: 70756 if libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript)) == isprop { 70757 return libc.BoolInt32(!(negated != 0)) 70758 } 70759 break 70760 fallthrough 70761 70762 case DPT_SCX: 70763 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)) 70764 if ok == isprop { 70765 return libc.BoolInt32(!(negated != 0)) 70766 } 70767 break 70768 fallthrough 70769 70770 case DPT_ALNUM: 70771 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 { 70772 return libc.BoolInt32(!(negated != 0)) 70773 } 70774 break 70775 fallthrough 70776 70777 // Perl space used to exclude VT, but from Perl 5.18 it is included, 70778 // which means that Perl space and POSIX space are now identical. PCRE 70779 // was changed at release 8.34. 70780 70781 case DPT_SPACE: 70782 fallthrough // Perl space 70783 case DPT_PXSPACE: // POSIX space 70784 switch c { 70785 case Tuint32_t('\011'): 70786 fallthrough 70787 case Tuint32_t('\040'): 70788 fallthrough 70789 case Tuint32_t(uint8('\xa0')): 70790 fallthrough 70791 case Tuint32_t(0x1680): 70792 fallthrough /* OGHAM SPACE MARK */ 70793 case Tuint32_t(0x180e): 70794 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 70795 case Tuint32_t(0x2000): 70796 fallthrough /* EN QUAD */ 70797 case Tuint32_t(0x2001): 70798 fallthrough /* EM QUAD */ 70799 case Tuint32_t(0x2002): 70800 fallthrough /* EN SPACE */ 70801 case Tuint32_t(0x2003): 70802 fallthrough /* EM SPACE */ 70803 case Tuint32_t(0x2004): 70804 fallthrough /* THREE-PER-EM SPACE */ 70805 case Tuint32_t(0x2005): 70806 fallthrough /* FOUR-PER-EM SPACE */ 70807 case Tuint32_t(0x2006): 70808 fallthrough /* SIX-PER-EM SPACE */ 70809 case Tuint32_t(0x2007): 70810 fallthrough /* FIGURE SPACE */ 70811 case Tuint32_t(0x2008): 70812 fallthrough /* PUNCTUATION SPACE */ 70813 case Tuint32_t(0x2009): 70814 fallthrough /* THIN SPACE */ 70815 case Tuint32_t(0x200A): 70816 fallthrough /* HAIR SPACE */ 70817 case Tuint32_t(0x202f): 70818 fallthrough /* NARROW NO-BREAK SPACE */ 70819 case Tuint32_t(0x205f): 70820 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 70821 case Tuint32_t(0x3000): 70822 fallthrough 70823 case Tuint32_t('\012'): 70824 fallthrough 70825 case Tuint32_t('\013'): 70826 fallthrough 70827 case Tuint32_t('\014'): 70828 fallthrough 70829 case Tuint32_t('\015'): 70830 fallthrough 70831 case Tuint32_t(uint8('\x85')): 70832 fallthrough 70833 case Tuint32_t(0x2028): 70834 fallthrough /* LINE SEPARATOR */ 70835 case Tuint32_t(0x2029): 70836 if isprop != 0 { 70837 return libc.BoolInt32(!(negated != 0)) 70838 } 70839 break 70840 fallthrough 70841 70842 default: 70843 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) == isprop { 70844 return libc.BoolInt32(!(negated != 0)) 70845 } 70846 break 70847 } 70848 break 70849 fallthrough 70850 70851 case DPT_WORD: 70852 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')) == 70853 isprop { 70854 return libc.BoolInt32(!(negated != 0)) 70855 } 70856 break 70857 fallthrough 70858 70859 case DPT_UCNC: 70860 if c < Tuint32_t(0xa0) { 70861 if libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140')) == isprop { 70862 return libc.BoolInt32(!(negated != 0)) 70863 } 70864 } else { 70865 if libc.Bool32(c < Tuint32_t(0xd800) || c > Tuint32_t(0xdfff)) == isprop { 70866 return libc.BoolInt32(!(negated != 0)) 70867 } 70868 } 70869 break 70870 fallthrough 70871 70872 case DPT_BIDICL: 70873 if libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))) == isprop { 70874 return libc.BoolInt32(!(negated != 0)) 70875 } 70876 break 70877 fallthrough 70878 70879 case DPT_BOOL: 70880 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)) 70881 if ok == isprop { 70882 return libc.BoolInt32(!(negated != 0)) 70883 } 70884 break 70885 fallthrough 70886 70887 // The following three properties can occur only in an XCLASS, as there 70888 // is no \p or \P coding for them. 70889 70890 // Graphic character. Implement this as not Z (space or separator) and 70891 // not C (other), except for Cf (format) with a few exceptions. This seems 70892 // to be what Perl does. The exceptional characters are: 70893 // 70894 // U+061C Arabic Letter Mark 70895 // U+180E Mongolian Vowel Separator 70896 // U+2066 - U+2069 Various "isolate"s 70897 // 70898 70899 case DPT_PXGRAPH: 70900 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 { 70901 return libc.BoolInt32(!(negated != 0)) 70902 } 70903 break 70904 fallthrough 70905 70906 // Printable character: same as graphic, with the addition of Zs, i.e. 70907 // not Zl and not Zp, and U+180E. 70908 70909 case DPT_PXPRINT: 70910 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 { 70911 return libc.BoolInt32(!(negated != 0)) 70912 } 70913 break 70914 fallthrough 70915 70916 // Punctuation: all Unicode punctuation, plus ASCII characters that 70917 // Unicode treats as symbols rather than punctuation, for Perl 70918 // compatibility (these are $+<=>^`|~). 70919 70920 case DPT_PXPUNCT: 70921 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 { 70922 return libc.BoolInt32(!(negated != 0)) 70923 } 70924 break 70925 fallthrough 70926 70927 // This should never occur, but compilers may mutter if there is no 70928 // default. 70929 70930 default: 70931 return DFALSE 70932 } 70933 70934 data += uintptr(2) 70935 } 70936 } 70937 70938 return negated // char did not match 70939 } 70940 70941 // End of pcre2_xclass.c 70942 70943 func init() { 70944 *(*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: 70945 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 8)) = default_free // pcre2_context.c:134:21: 70946 *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 40 /* .tables */)) = uintptr(unsafe.Pointer(&X_pcre2_default_tables_8)) // pcre2_context.c:137:3: 70947 *(*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: 70948 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 8)) = default_free // pcre2_context.c:134:21: 70949 *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 40 /* .tables */)) = uintptr(unsafe.Pointer(&X_pcre2_default_tables_8)) // pcre2_context.c:137:3: 70950 *(*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: 70951 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) + 8)) = default_free // pcre2_context.c:198:21: 70952 *(*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: 70953 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) + 8)) = default_free // pcre2_context.c:198:21: 70954 *(*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: 70955 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) + 8)) = default_free // pcre2_context.c:164:21: 70956 *(*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: 70957 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) + 8)) = default_free // pcre2_context.c:164:21: 70958 } 70959 70960 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" 70961 var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data