1 /* A Bison parser, made by GNU Bison 3.8.2.  */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6    Inc.
7 
8    This program is free software: you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation, either version 3 of the License, or
11    (at your option) any later version.
12 
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
20 
21 /* As a special exception, you may create a larger work that contains
22    part or all of the Bison parser skeleton and distribute that work
23    under terms of your choice, so long as that work isn't itself a
24    parser generator using the skeleton or a modified version thereof
25    as a parser skeleton.  Alternatively, if you modify or redistribute
26    the parser skeleton itself, you may (at your option) remove this
27    special exception, which will cause the skeleton and the resulting
28    Bison output files to be licensed under the GNU General Public
29    License without this special exception.
30 
31    This special exception was added by the Free Software Foundation in
32    version 2.2 of Bison.  */
33 
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35    simplifying the original so-called "semantic" parser.  */
36 
37 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38    especially those whose name start with YY_ or yy_.  They are
39    private implementation details that can be changed or removed.  */
40 
41 /* All symbols defined below should begin with yy or YY, to avoid
42    infringing on user name space.  This should be done even for local
43    variables, as they might otherwise be expanded by user macros.
44    There are some unavoidable exceptions within include files to
45    define necessary library symbols; they are noted "INFRINGES ON
46    USER NAME SPACE" below.  */
47 
48 /* Identify Bison output, and Bison version.  */
49 #define YYBISON 30802
50 
51 /* Bison version string.  */
52 #define YYBISON_VERSION "3.8.2"
53 
54 /* Skeleton name.  */
55 #define YYSKELETON_NAME "yacc.c"
56 
57 /* Pure parsers.  */
58 #define YYPURE 1
59 
60 /* Push parsers.  */
61 #define YYPUSH 0
62 
63 /* Pull parsers.  */
64 #define YYPULL 1
65 
66 /* "%code top" blocks.  */
67 #line 24 "modules/regexp-parser/regexp-parser-grammar.y"
68 
69 #include "regexp-parser-parser.h"
70 
71 #line 72 "modules/regexp-parser/regexp-parser-grammar.c"
72 /* Substitute the type names.  */
73 #define YYSTYPE         REGEXP_PARSER_STYPE
74 #define YYLTYPE         REGEXP_PARSER_LTYPE
75 /* Substitute the variable and function names.  */
76 #define yyparse         regexp_parser_parse
77 #define yylex           regexp_parser_lex
78 #define yyerror         regexp_parser_error
79 #define yydebug         regexp_parser_debug
80 #define yynerrs         regexp_parser_nerrs
81 
82 
83 # ifndef YY_CAST
84 #  ifdef __cplusplus
85 #   define YY_CAST(Type, Val) static_cast<Type> (Val)
86 #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
87 #  else
88 #   define YY_CAST(Type, Val) ((Type) (Val))
89 #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
90 #  endif
91 # endif
92 # ifndef YY_NULLPTR
93 #  if defined __cplusplus
94 #   if 201103L <= __cplusplus
95 #    define YY_NULLPTR nullptr
96 #   else
97 #    define YY_NULLPTR 0
98 #   endif
99 #  else
100 #   define YY_NULLPTR ((void*)0)
101 #  endif
102 # endif
103 
104 /* Use api.header.include to #include this header
105    instead of duplicating it here.  */
106 #ifndef YY_REGEXP_PARSER_MODULES_REGEXP_PARSER_REGEXP_PARSER_GRAMMAR_H_INCLUDED
107 # define YY_REGEXP_PARSER_MODULES_REGEXP_PARSER_REGEXP_PARSER_GRAMMAR_H_INCLUDED
108 /* Debug traces.  */
109 #ifndef REGEXP_PARSER_DEBUG
110 # if defined YYDEBUG
111 #if YYDEBUG
112 #   define REGEXP_PARSER_DEBUG 1
113 #  else
114 #   define REGEXP_PARSER_DEBUG 0
115 #  endif
116 # else /* ! defined YYDEBUG */
117 #  define REGEXP_PARSER_DEBUG 0
118 # endif /* ! defined YYDEBUG */
119 #endif  /* ! defined REGEXP_PARSER_DEBUG */
120 #if REGEXP_PARSER_DEBUG
121 extern int regexp_parser_debug;
122 #endif
123 
124 /* Token kinds.  */
125 #ifndef REGEXP_PARSER_TOKENTYPE
126 # define REGEXP_PARSER_TOKENTYPE
127   enum regexp_parser_tokentype
128   {
129     REGEXP_PARSER_EMPTY = -2,
130     REGEXP_PARSER_EOF = 0,         /* "end of file"  */
131     REGEXP_PARSER_error = 256,     /* error  */
132     REGEXP_PARSER_UNDEF = 10514,   /* "invalid token"  */
133     LL_CONTEXT_ROOT = 1,           /* LL_CONTEXT_ROOT  */
134     LL_CONTEXT_DESTINATION = 2,    /* LL_CONTEXT_DESTINATION  */
135     LL_CONTEXT_SOURCE = 3,         /* LL_CONTEXT_SOURCE  */
136     LL_CONTEXT_PARSER = 4,         /* LL_CONTEXT_PARSER  */
137     LL_CONTEXT_REWRITE = 5,        /* LL_CONTEXT_REWRITE  */
138     LL_CONTEXT_FILTER = 6,         /* LL_CONTEXT_FILTER  */
139     LL_CONTEXT_LOG = 7,            /* LL_CONTEXT_LOG  */
140     LL_CONTEXT_BLOCK_DEF = 8,      /* LL_CONTEXT_BLOCK_DEF  */
141     LL_CONTEXT_BLOCK_REF = 9,      /* LL_CONTEXT_BLOCK_REF  */
142     LL_CONTEXT_BLOCK_CONTENT = 10, /* LL_CONTEXT_BLOCK_CONTENT  */
143     LL_CONTEXT_BLOCK_ARG = 11,     /* LL_CONTEXT_BLOCK_ARG  */
144     LL_CONTEXT_PRAGMA = 12,        /* LL_CONTEXT_PRAGMA  */
145     LL_CONTEXT_FORMAT = 13,        /* LL_CONTEXT_FORMAT  */
146     LL_CONTEXT_TEMPLATE_FUNC = 14, /* LL_CONTEXT_TEMPLATE_FUNC  */
147     LL_CONTEXT_INNER_DEST = 15,    /* LL_CONTEXT_INNER_DEST  */
148     LL_CONTEXT_INNER_SRC = 16,     /* LL_CONTEXT_INNER_SRC  */
149     LL_CONTEXT_CLIENT_PROTO = 17,  /* LL_CONTEXT_CLIENT_PROTO  */
150     LL_CONTEXT_SERVER_PROTO = 18,  /* LL_CONTEXT_SERVER_PROTO  */
151     LL_CONTEXT_OPTIONS = 19,       /* LL_CONTEXT_OPTIONS  */
152     LL_CONTEXT_CONFIG = 20,        /* LL_CONTEXT_CONFIG  */
153     LL_CONTEXT_MAX = 21,           /* LL_CONTEXT_MAX  */
154     KW_SOURCE = 10000,             /* KW_SOURCE  */
155     KW_FILTER = 10001,             /* KW_FILTER  */
156     KW_PARSER = 10002,             /* KW_PARSER  */
157     KW_DESTINATION = 10003,        /* KW_DESTINATION  */
158     KW_LOG = 10004,                /* KW_LOG  */
159     KW_OPTIONS = 10005,            /* KW_OPTIONS  */
160     KW_INCLUDE = 10006,            /* KW_INCLUDE  */
161     KW_BLOCK = 10007,              /* KW_BLOCK  */
162     KW_JUNCTION = 10008,           /* KW_JUNCTION  */
163     KW_CHANNEL = 10009,            /* KW_CHANNEL  */
164     KW_IF = 10010,                 /* KW_IF  */
165     KW_ELSE = 10011,               /* KW_ELSE  */
166     KW_ELIF = 10012,               /* KW_ELIF  */
167     KW_INTERNAL = 10020,           /* KW_INTERNAL  */
168     KW_SYSLOG = 10060,             /* KW_SYSLOG  */
169     KW_MARK_FREQ = 10071,          /* KW_MARK_FREQ  */
170     KW_STATS_FREQ = 10072,         /* KW_STATS_FREQ  */
171     KW_STATS_LEVEL = 10073,        /* KW_STATS_LEVEL  */
172     KW_STATS_LIFETIME = 10074,     /* KW_STATS_LIFETIME  */
173     KW_FLUSH_LINES = 10075,        /* KW_FLUSH_LINES  */
174     KW_SUPPRESS = 10076,           /* KW_SUPPRESS  */
175     KW_FLUSH_TIMEOUT = 10077,      /* KW_FLUSH_TIMEOUT  */
176     KW_LOG_MSG_SIZE = 10078,       /* KW_LOG_MSG_SIZE  */
177     KW_FILE_TEMPLATE = 10079,      /* KW_FILE_TEMPLATE  */
178     KW_PROTO_TEMPLATE = 10080,     /* KW_PROTO_TEMPLATE  */
179     KW_MARK_MODE = 10081,          /* KW_MARK_MODE  */
180     KW_ENCODING = 10082,           /* KW_ENCODING  */
181     KW_TYPE = 10083,               /* KW_TYPE  */
182     KW_STATS_MAX_DYNAMIC = 10084,  /* KW_STATS_MAX_DYNAMIC  */
183     KW_MIN_IW_SIZE_PER_READER = 10085, /* KW_MIN_IW_SIZE_PER_READER  */
184     KW_WORKERS = 10086,            /* KW_WORKERS  */
185     KW_BATCH_LINES = 10087,        /* KW_BATCH_LINES  */
186     KW_BATCH_TIMEOUT = 10088,      /* KW_BATCH_TIMEOUT  */
187     KW_TRIM_LARGE_MESSAGES = 10089, /* KW_TRIM_LARGE_MESSAGES  */
188     KW_CHAIN_HOSTNAMES = 10090,    /* KW_CHAIN_HOSTNAMES  */
189     KW_NORMALIZE_HOSTNAMES = 10091, /* KW_NORMALIZE_HOSTNAMES  */
190     KW_KEEP_HOSTNAME = 10092,      /* KW_KEEP_HOSTNAME  */
191     KW_CHECK_HOSTNAME = 10093,     /* KW_CHECK_HOSTNAME  */
192     KW_BAD_HOSTNAME = 10094,       /* KW_BAD_HOSTNAME  */
193     KW_KEEP_TIMESTAMP = 10100,     /* KW_KEEP_TIMESTAMP  */
194     KW_USE_DNS = 10110,            /* KW_USE_DNS  */
195     KW_USE_FQDN = 10111,           /* KW_USE_FQDN  */
196     KW_CUSTOM_DOMAIN = 10112,      /* KW_CUSTOM_DOMAIN  */
197     KW_DNS_CACHE = 10120,          /* KW_DNS_CACHE  */
198     KW_DNS_CACHE_SIZE = 10121,     /* KW_DNS_CACHE_SIZE  */
199     KW_DNS_CACHE_EXPIRE = 10130,   /* KW_DNS_CACHE_EXPIRE  */
200     KW_DNS_CACHE_EXPIRE_FAILED = 10131, /* KW_DNS_CACHE_EXPIRE_FAILED  */
201     KW_DNS_CACHE_HOSTS = 10132,    /* KW_DNS_CACHE_HOSTS  */
202     KW_PERSIST_ONLY = 10140,       /* KW_PERSIST_ONLY  */
203     KW_USE_RCPTID = 10141,         /* KW_USE_RCPTID  */
204     KW_USE_UNIQID = 10142,         /* KW_USE_UNIQID  */
205     KW_TZ_CONVERT = 10150,         /* KW_TZ_CONVERT  */
206     KW_TS_FORMAT = 10151,          /* KW_TS_FORMAT  */
207     KW_FRAC_DIGITS = 10152,        /* KW_FRAC_DIGITS  */
208     KW_LOG_FIFO_SIZE = 10160,      /* KW_LOG_FIFO_SIZE  */
209     KW_LOG_FETCH_LIMIT = 10162,    /* KW_LOG_FETCH_LIMIT  */
210     KW_LOG_IW_SIZE = 10163,        /* KW_LOG_IW_SIZE  */
211     KW_LOG_PREFIX = 10164,         /* KW_LOG_PREFIX  */
212     KW_PROGRAM_OVERRIDE = 10165,   /* KW_PROGRAM_OVERRIDE  */
213     KW_HOST_OVERRIDE = 10166,      /* KW_HOST_OVERRIDE  */
214     KW_THROTTLE = 10170,           /* KW_THROTTLE  */
215     KW_THREADED = 10171,           /* KW_THREADED  */
216     KW_PASS_UNIX_CREDENTIALS = 10231, /* KW_PASS_UNIX_CREDENTIALS  */
217     KW_PERSIST_NAME = 10302,       /* KW_PERSIST_NAME  */
218     KW_READ_OLD_RECORDS = 10304,   /* KW_READ_OLD_RECORDS  */
219     KW_USE_SYSLOGNG_PID = 10305,   /* KW_USE_SYSLOGNG_PID  */
220     KW_FLAGS = 10190,              /* KW_FLAGS  */
221     KW_PAD_SIZE = 10200,           /* KW_PAD_SIZE  */
222     KW_TIME_ZONE = 10201,          /* KW_TIME_ZONE  */
223     KW_RECV_TIME_ZONE = 10202,     /* KW_RECV_TIME_ZONE  */
224     KW_SEND_TIME_ZONE = 10203,     /* KW_SEND_TIME_ZONE  */
225     KW_LOCAL_TIME_ZONE = 10204,    /* KW_LOCAL_TIME_ZONE  */
226     KW_FORMAT = 10205,             /* KW_FORMAT  */
227     KW_TRUNCATE_SIZE = 10206,      /* KW_TRUNCATE_SIZE  */
228     KW_TIME_REOPEN = 10210,        /* KW_TIME_REOPEN  */
229     KW_TIME_REAP = 10211,          /* KW_TIME_REAP  */
230     KW_TIME_SLEEP = 10212,         /* KW_TIME_SLEEP  */
231     KW_TMPL_ESCAPE = 10220,        /* KW_TMPL_ESCAPE  */
232     KW_OPTIONAL = 10230,           /* KW_OPTIONAL  */
233     KW_CREATE_DIRS = 10240,        /* KW_CREATE_DIRS  */
234     KW_OWNER = 10250,              /* KW_OWNER  */
235     KW_GROUP = 10251,              /* KW_GROUP  */
236     KW_PERM = 10252,               /* KW_PERM  */
237     KW_DIR_OWNER = 10260,          /* KW_DIR_OWNER  */
238     KW_DIR_GROUP = 10261,          /* KW_DIR_GROUP  */
239     KW_DIR_PERM = 10262,           /* KW_DIR_PERM  */
240     KW_TEMPLATE = 10270,           /* KW_TEMPLATE  */
241     KW_TEMPLATE_ESCAPE = 10271,    /* KW_TEMPLATE_ESCAPE  */
242     KW_TEMPLATE_FUNCTION = 10272,  /* KW_TEMPLATE_FUNCTION  */
243     KW_DEFAULT_FACILITY = 10300,   /* KW_DEFAULT_FACILITY  */
244     KW_DEFAULT_SEVERITY = 10301,   /* KW_DEFAULT_SEVERITY  */
245     KW_PORT = 10323,               /* KW_PORT  */
246     KW_USE_TIME_RECVD = 10340,     /* KW_USE_TIME_RECVD  */
247     KW_FACILITY = 10350,           /* KW_FACILITY  */
248     KW_SEVERITY = 10351,           /* KW_SEVERITY  */
249     KW_HOST = 10352,               /* KW_HOST  */
250     KW_MATCH = 10353,              /* KW_MATCH  */
251     KW_MESSAGE = 10354,            /* KW_MESSAGE  */
252     KW_NETMASK = 10355,            /* KW_NETMASK  */
253     KW_TAGS = 10356,               /* KW_TAGS  */
254     KW_NETMASK6 = 10357,           /* KW_NETMASK6  */
255     KW_REWRITE = 10370,            /* KW_REWRITE  */
256     KW_CONDITION = 10371,          /* KW_CONDITION  */
257     KW_VALUE = 10372,              /* KW_VALUE  */
258     KW_YES = 10380,                /* KW_YES  */
259     KW_NO = 10381,                 /* KW_NO  */
260     KW_IFDEF = 10410,              /* KW_IFDEF  */
261     KW_ENDIF = 10411,              /* KW_ENDIF  */
262     LL_DOTDOT = 10420,             /* LL_DOTDOT  */
263     LL_DOTDOTDOT = 10421,          /* LL_DOTDOTDOT  */
264     LL_PRAGMA = 10422,             /* LL_PRAGMA  */
265     LL_EOL = 10423,                /* LL_EOL  */
266     LL_ERROR = 10424,              /* LL_ERROR  */
267     LL_ARROW = 10425,              /* LL_ARROW  */
268     LL_IDENTIFIER = 10430,         /* LL_IDENTIFIER  */
269     LL_NUMBER = 10431,             /* LL_NUMBER  */
270     LL_FLOAT = 10432,              /* LL_FLOAT  */
271     LL_STRING = 10433,             /* LL_STRING  */
272     LL_TOKEN = 10434,              /* LL_TOKEN  */
273     LL_BLOCK = 10435,              /* LL_BLOCK  */
274     KW_VALUE_PAIRS = 10500,        /* KW_VALUE_PAIRS  */
275     KW_EXCLUDE = 10502,            /* KW_EXCLUDE  */
276     KW_PAIR = 10503,               /* KW_PAIR  */
277     KW_KEY = 10504,                /* KW_KEY  */
278     KW_SCOPE = 10505,              /* KW_SCOPE  */
279     KW_SHIFT = 10506,              /* KW_SHIFT  */
280     KW_SHIFT_LEVELS = 10507,       /* KW_SHIFT_LEVELS  */
281     KW_REKEY = 10508,              /* KW_REKEY  */
282     KW_ADD_PREFIX = 10509,         /* KW_ADD_PREFIX  */
283     KW_REPLACE_PREFIX = 10510,     /* KW_REPLACE_PREFIX  */
284     KW_ON_ERROR = 10511,           /* KW_ON_ERROR  */
285     KW_RETRIES = 10512,            /* KW_RETRIES  */
286     KW_FETCH_NO_DATA_DELAY = 10513, /* KW_FETCH_NO_DATA_DELAY  */
287     KW_REGEXP_PARSER = 10515,      /* KW_REGEXP_PARSER  */
288     KW_PREFIX = 10516,             /* KW_PREFIX  */
289     KW_PATTERNS = 10517            /* KW_PATTERNS  */
290   };
291   typedef enum regexp_parser_tokentype regexp_parser_token_kind_t;
292 #endif
293 /* Token kinds.  */
294 #define REGEXP_PARSER_EMPTY -2
295 #define REGEXP_PARSER_EOF 0
296 #define REGEXP_PARSER_error 256
297 #define REGEXP_PARSER_UNDEF 10514
298 #define LL_CONTEXT_ROOT 1
299 #define LL_CONTEXT_DESTINATION 2
300 #define LL_CONTEXT_SOURCE 3
301 #define LL_CONTEXT_PARSER 4
302 #define LL_CONTEXT_REWRITE 5
303 #define LL_CONTEXT_FILTER 6
304 #define LL_CONTEXT_LOG 7
305 #define LL_CONTEXT_BLOCK_DEF 8
306 #define LL_CONTEXT_BLOCK_REF 9
307 #define LL_CONTEXT_BLOCK_CONTENT 10
308 #define LL_CONTEXT_BLOCK_ARG 11
309 #define LL_CONTEXT_PRAGMA 12
310 #define LL_CONTEXT_FORMAT 13
311 #define LL_CONTEXT_TEMPLATE_FUNC 14
312 #define LL_CONTEXT_INNER_DEST 15
313 #define LL_CONTEXT_INNER_SRC 16
314 #define LL_CONTEXT_CLIENT_PROTO 17
315 #define LL_CONTEXT_SERVER_PROTO 18
316 #define LL_CONTEXT_OPTIONS 19
317 #define LL_CONTEXT_CONFIG 20
318 #define LL_CONTEXT_MAX 21
319 #define KW_SOURCE 10000
320 #define KW_FILTER 10001
321 #define KW_PARSER 10002
322 #define KW_DESTINATION 10003
323 #define KW_LOG 10004
324 #define KW_OPTIONS 10005
325 #define KW_INCLUDE 10006
326 #define KW_BLOCK 10007
327 #define KW_JUNCTION 10008
328 #define KW_CHANNEL 10009
329 #define KW_IF 10010
330 #define KW_ELSE 10011
331 #define KW_ELIF 10012
332 #define KW_INTERNAL 10020
333 #define KW_SYSLOG 10060
334 #define KW_MARK_FREQ 10071
335 #define KW_STATS_FREQ 10072
336 #define KW_STATS_LEVEL 10073
337 #define KW_STATS_LIFETIME 10074
338 #define KW_FLUSH_LINES 10075
339 #define KW_SUPPRESS 10076
340 #define KW_FLUSH_TIMEOUT 10077
341 #define KW_LOG_MSG_SIZE 10078
342 #define KW_FILE_TEMPLATE 10079
343 #define KW_PROTO_TEMPLATE 10080
344 #define KW_MARK_MODE 10081
345 #define KW_ENCODING 10082
346 #define KW_TYPE 10083
347 #define KW_STATS_MAX_DYNAMIC 10084
348 #define KW_MIN_IW_SIZE_PER_READER 10085
349 #define KW_WORKERS 10086
350 #define KW_BATCH_LINES 10087
351 #define KW_BATCH_TIMEOUT 10088
352 #define KW_TRIM_LARGE_MESSAGES 10089
353 #define KW_CHAIN_HOSTNAMES 10090
354 #define KW_NORMALIZE_HOSTNAMES 10091
355 #define KW_KEEP_HOSTNAME 10092
356 #define KW_CHECK_HOSTNAME 10093
357 #define KW_BAD_HOSTNAME 10094
358 #define KW_KEEP_TIMESTAMP 10100
359 #define KW_USE_DNS 10110
360 #define KW_USE_FQDN 10111
361 #define KW_CUSTOM_DOMAIN 10112
362 #define KW_DNS_CACHE 10120
363 #define KW_DNS_CACHE_SIZE 10121
364 #define KW_DNS_CACHE_EXPIRE 10130
365 #define KW_DNS_CACHE_EXPIRE_FAILED 10131
366 #define KW_DNS_CACHE_HOSTS 10132
367 #define KW_PERSIST_ONLY 10140
368 #define KW_USE_RCPTID 10141
369 #define KW_USE_UNIQID 10142
370 #define KW_TZ_CONVERT 10150
371 #define KW_TS_FORMAT 10151
372 #define KW_FRAC_DIGITS 10152
373 #define KW_LOG_FIFO_SIZE 10160
374 #define KW_LOG_FETCH_LIMIT 10162
375 #define KW_LOG_IW_SIZE 10163
376 #define KW_LOG_PREFIX 10164
377 #define KW_PROGRAM_OVERRIDE 10165
378 #define KW_HOST_OVERRIDE 10166
379 #define KW_THROTTLE 10170
380 #define KW_THREADED 10171
381 #define KW_PASS_UNIX_CREDENTIALS 10231
382 #define KW_PERSIST_NAME 10302
383 #define KW_READ_OLD_RECORDS 10304
384 #define KW_USE_SYSLOGNG_PID 10305
385 #define KW_FLAGS 10190
386 #define KW_PAD_SIZE 10200
387 #define KW_TIME_ZONE 10201
388 #define KW_RECV_TIME_ZONE 10202
389 #define KW_SEND_TIME_ZONE 10203
390 #define KW_LOCAL_TIME_ZONE 10204
391 #define KW_FORMAT 10205
392 #define KW_TRUNCATE_SIZE 10206
393 #define KW_TIME_REOPEN 10210
394 #define KW_TIME_REAP 10211
395 #define KW_TIME_SLEEP 10212
396 #define KW_TMPL_ESCAPE 10220
397 #define KW_OPTIONAL 10230
398 #define KW_CREATE_DIRS 10240
399 #define KW_OWNER 10250
400 #define KW_GROUP 10251
401 #define KW_PERM 10252
402 #define KW_DIR_OWNER 10260
403 #define KW_DIR_GROUP 10261
404 #define KW_DIR_PERM 10262
405 #define KW_TEMPLATE 10270
406 #define KW_TEMPLATE_ESCAPE 10271
407 #define KW_TEMPLATE_FUNCTION 10272
408 #define KW_DEFAULT_FACILITY 10300
409 #define KW_DEFAULT_SEVERITY 10301
410 #define KW_PORT 10323
411 #define KW_USE_TIME_RECVD 10340
412 #define KW_FACILITY 10350
413 #define KW_SEVERITY 10351
414 #define KW_HOST 10352
415 #define KW_MATCH 10353
416 #define KW_MESSAGE 10354
417 #define KW_NETMASK 10355
418 #define KW_TAGS 10356
419 #define KW_NETMASK6 10357
420 #define KW_REWRITE 10370
421 #define KW_CONDITION 10371
422 #define KW_VALUE 10372
423 #define KW_YES 10380
424 #define KW_NO 10381
425 #define KW_IFDEF 10410
426 #define KW_ENDIF 10411
427 #define LL_DOTDOT 10420
428 #define LL_DOTDOTDOT 10421
429 #define LL_PRAGMA 10422
430 #define LL_EOL 10423
431 #define LL_ERROR 10424
432 #define LL_ARROW 10425
433 #define LL_IDENTIFIER 10430
434 #define LL_NUMBER 10431
435 #define LL_FLOAT 10432
436 #define LL_STRING 10433
437 #define LL_TOKEN 10434
438 #define LL_BLOCK 10435
439 #define KW_VALUE_PAIRS 10500
440 #define KW_EXCLUDE 10502
441 #define KW_PAIR 10503
442 #define KW_KEY 10504
443 #define KW_SCOPE 10505
444 #define KW_SHIFT 10506
445 #define KW_SHIFT_LEVELS 10507
446 #define KW_REKEY 10508
447 #define KW_ADD_PREFIX 10509
448 #define KW_REPLACE_PREFIX 10510
449 #define KW_ON_ERROR 10511
450 #define KW_RETRIES 10512
451 #define KW_FETCH_NO_DATA_DELAY 10513
452 #define KW_REGEXP_PARSER 10515
453 #define KW_PREFIX 10516
454 #define KW_PATTERNS 10517
455 
456 /* Value type.  */
457 #if ! defined REGEXP_PARSER_STYPE && ! defined REGEXP_PARSER_STYPE_IS_DECLARED
458 typedef CFG_STYPE REGEXP_PARSER_STYPE;
459 # define REGEXP_PARSER_STYPE_IS_TRIVIAL 1
460 # define REGEXP_PARSER_STYPE_IS_DECLARED 1
461 #endif
462 
463 /* Location type.  */
464 typedef CFG_LTYPE REGEXP_PARSER_LTYPE;
465 
466 
467 
468 
469 int regexp_parser_parse (CfgLexer *lexer, LogParser **instance, gpointer arg);
470 
471 
472 #endif /* !YY_REGEXP_PARSER_MODULES_REGEXP_PARSER_REGEXP_PARSER_GRAMMAR_H_INCLUDED  */
473 /* Symbol kind.  */
474 enum yysymbol_kind_t
475 {
476   YYSYMBOL_YYEMPTY = -2,
477   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
478   YYSYMBOL_YYerror = 1,                    /* error  */
479   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
480   YYSYMBOL_LL_CONTEXT_ROOT = 3,            /* LL_CONTEXT_ROOT  */
481   YYSYMBOL_LL_CONTEXT_DESTINATION = 4,     /* LL_CONTEXT_DESTINATION  */
482   YYSYMBOL_LL_CONTEXT_SOURCE = 5,          /* LL_CONTEXT_SOURCE  */
483   YYSYMBOL_LL_CONTEXT_PARSER = 6,          /* LL_CONTEXT_PARSER  */
484   YYSYMBOL_LL_CONTEXT_REWRITE = 7,         /* LL_CONTEXT_REWRITE  */
485   YYSYMBOL_LL_CONTEXT_FILTER = 8,          /* LL_CONTEXT_FILTER  */
486   YYSYMBOL_LL_CONTEXT_LOG = 9,             /* LL_CONTEXT_LOG  */
487   YYSYMBOL_LL_CONTEXT_BLOCK_DEF = 10,      /* LL_CONTEXT_BLOCK_DEF  */
488   YYSYMBOL_LL_CONTEXT_BLOCK_REF = 11,      /* LL_CONTEXT_BLOCK_REF  */
489   YYSYMBOL_LL_CONTEXT_BLOCK_CONTENT = 12,  /* LL_CONTEXT_BLOCK_CONTENT  */
490   YYSYMBOL_LL_CONTEXT_BLOCK_ARG = 13,      /* LL_CONTEXT_BLOCK_ARG  */
491   YYSYMBOL_LL_CONTEXT_PRAGMA = 14,         /* LL_CONTEXT_PRAGMA  */
492   YYSYMBOL_LL_CONTEXT_FORMAT = 15,         /* LL_CONTEXT_FORMAT  */
493   YYSYMBOL_LL_CONTEXT_TEMPLATE_FUNC = 16,  /* LL_CONTEXT_TEMPLATE_FUNC  */
494   YYSYMBOL_LL_CONTEXT_INNER_DEST = 17,     /* LL_CONTEXT_INNER_DEST  */
495   YYSYMBOL_LL_CONTEXT_INNER_SRC = 18,      /* LL_CONTEXT_INNER_SRC  */
496   YYSYMBOL_LL_CONTEXT_CLIENT_PROTO = 19,   /* LL_CONTEXT_CLIENT_PROTO  */
497   YYSYMBOL_LL_CONTEXT_SERVER_PROTO = 20,   /* LL_CONTEXT_SERVER_PROTO  */
498   YYSYMBOL_LL_CONTEXT_OPTIONS = 21,        /* LL_CONTEXT_OPTIONS  */
499   YYSYMBOL_LL_CONTEXT_CONFIG = 22,         /* LL_CONTEXT_CONFIG  */
500   YYSYMBOL_LL_CONTEXT_MAX = 23,            /* LL_CONTEXT_MAX  */
501   YYSYMBOL_KW_SOURCE = 24,                 /* KW_SOURCE  */
502   YYSYMBOL_KW_FILTER = 25,                 /* KW_FILTER  */
503   YYSYMBOL_KW_PARSER = 26,                 /* KW_PARSER  */
504   YYSYMBOL_KW_DESTINATION = 27,            /* KW_DESTINATION  */
505   YYSYMBOL_KW_LOG = 28,                    /* KW_LOG  */
506   YYSYMBOL_KW_OPTIONS = 29,                /* KW_OPTIONS  */
507   YYSYMBOL_KW_INCLUDE = 30,                /* KW_INCLUDE  */
508   YYSYMBOL_KW_BLOCK = 31,                  /* KW_BLOCK  */
509   YYSYMBOL_KW_JUNCTION = 32,               /* KW_JUNCTION  */
510   YYSYMBOL_KW_CHANNEL = 33,                /* KW_CHANNEL  */
511   YYSYMBOL_KW_IF = 34,                     /* KW_IF  */
512   YYSYMBOL_KW_ELSE = 35,                   /* KW_ELSE  */
513   YYSYMBOL_KW_ELIF = 36,                   /* KW_ELIF  */
514   YYSYMBOL_KW_INTERNAL = 37,               /* KW_INTERNAL  */
515   YYSYMBOL_KW_SYSLOG = 38,                 /* KW_SYSLOG  */
516   YYSYMBOL_KW_MARK_FREQ = 39,              /* KW_MARK_FREQ  */
517   YYSYMBOL_KW_STATS_FREQ = 40,             /* KW_STATS_FREQ  */
518   YYSYMBOL_KW_STATS_LEVEL = 41,            /* KW_STATS_LEVEL  */
519   YYSYMBOL_KW_STATS_LIFETIME = 42,         /* KW_STATS_LIFETIME  */
520   YYSYMBOL_KW_FLUSH_LINES = 43,            /* KW_FLUSH_LINES  */
521   YYSYMBOL_KW_SUPPRESS = 44,               /* KW_SUPPRESS  */
522   YYSYMBOL_KW_FLUSH_TIMEOUT = 45,          /* KW_FLUSH_TIMEOUT  */
523   YYSYMBOL_KW_LOG_MSG_SIZE = 46,           /* KW_LOG_MSG_SIZE  */
524   YYSYMBOL_KW_FILE_TEMPLATE = 47,          /* KW_FILE_TEMPLATE  */
525   YYSYMBOL_KW_PROTO_TEMPLATE = 48,         /* KW_PROTO_TEMPLATE  */
526   YYSYMBOL_KW_MARK_MODE = 49,              /* KW_MARK_MODE  */
527   YYSYMBOL_KW_ENCODING = 50,               /* KW_ENCODING  */
528   YYSYMBOL_KW_TYPE = 51,                   /* KW_TYPE  */
529   YYSYMBOL_KW_STATS_MAX_DYNAMIC = 52,      /* KW_STATS_MAX_DYNAMIC  */
530   YYSYMBOL_KW_MIN_IW_SIZE_PER_READER = 53, /* KW_MIN_IW_SIZE_PER_READER  */
531   YYSYMBOL_KW_WORKERS = 54,                /* KW_WORKERS  */
532   YYSYMBOL_KW_BATCH_LINES = 55,            /* KW_BATCH_LINES  */
533   YYSYMBOL_KW_BATCH_TIMEOUT = 56,          /* KW_BATCH_TIMEOUT  */
534   YYSYMBOL_KW_TRIM_LARGE_MESSAGES = 57,    /* KW_TRIM_LARGE_MESSAGES  */
535   YYSYMBOL_KW_CHAIN_HOSTNAMES = 58,        /* KW_CHAIN_HOSTNAMES  */
536   YYSYMBOL_KW_NORMALIZE_HOSTNAMES = 59,    /* KW_NORMALIZE_HOSTNAMES  */
537   YYSYMBOL_KW_KEEP_HOSTNAME = 60,          /* KW_KEEP_HOSTNAME  */
538   YYSYMBOL_KW_CHECK_HOSTNAME = 61,         /* KW_CHECK_HOSTNAME  */
539   YYSYMBOL_KW_BAD_HOSTNAME = 62,           /* KW_BAD_HOSTNAME  */
540   YYSYMBOL_KW_KEEP_TIMESTAMP = 63,         /* KW_KEEP_TIMESTAMP  */
541   YYSYMBOL_KW_USE_DNS = 64,                /* KW_USE_DNS  */
542   YYSYMBOL_KW_USE_FQDN = 65,               /* KW_USE_FQDN  */
543   YYSYMBOL_KW_CUSTOM_DOMAIN = 66,          /* KW_CUSTOM_DOMAIN  */
544   YYSYMBOL_KW_DNS_CACHE = 67,              /* KW_DNS_CACHE  */
545   YYSYMBOL_KW_DNS_CACHE_SIZE = 68,         /* KW_DNS_CACHE_SIZE  */
546   YYSYMBOL_KW_DNS_CACHE_EXPIRE = 69,       /* KW_DNS_CACHE_EXPIRE  */
547   YYSYMBOL_KW_DNS_CACHE_EXPIRE_FAILED = 70, /* KW_DNS_CACHE_EXPIRE_FAILED  */
548   YYSYMBOL_KW_DNS_CACHE_HOSTS = 71,        /* KW_DNS_CACHE_HOSTS  */
549   YYSYMBOL_KW_PERSIST_ONLY = 72,           /* KW_PERSIST_ONLY  */
550   YYSYMBOL_KW_USE_RCPTID = 73,             /* KW_USE_RCPTID  */
551   YYSYMBOL_KW_USE_UNIQID = 74,             /* KW_USE_UNIQID  */
552   YYSYMBOL_KW_TZ_CONVERT = 75,             /* KW_TZ_CONVERT  */
553   YYSYMBOL_KW_TS_FORMAT = 76,              /* KW_TS_FORMAT  */
554   YYSYMBOL_KW_FRAC_DIGITS = 77,            /* KW_FRAC_DIGITS  */
555   YYSYMBOL_KW_LOG_FIFO_SIZE = 78,          /* KW_LOG_FIFO_SIZE  */
556   YYSYMBOL_KW_LOG_FETCH_LIMIT = 79,        /* KW_LOG_FETCH_LIMIT  */
557   YYSYMBOL_KW_LOG_IW_SIZE = 80,            /* KW_LOG_IW_SIZE  */
558   YYSYMBOL_KW_LOG_PREFIX = 81,             /* KW_LOG_PREFIX  */
559   YYSYMBOL_KW_PROGRAM_OVERRIDE = 82,       /* KW_PROGRAM_OVERRIDE  */
560   YYSYMBOL_KW_HOST_OVERRIDE = 83,          /* KW_HOST_OVERRIDE  */
561   YYSYMBOL_KW_THROTTLE = 84,               /* KW_THROTTLE  */
562   YYSYMBOL_KW_THREADED = 85,               /* KW_THREADED  */
563   YYSYMBOL_KW_PASS_UNIX_CREDENTIALS = 86,  /* KW_PASS_UNIX_CREDENTIALS  */
564   YYSYMBOL_KW_PERSIST_NAME = 87,           /* KW_PERSIST_NAME  */
565   YYSYMBOL_KW_READ_OLD_RECORDS = 88,       /* KW_READ_OLD_RECORDS  */
566   YYSYMBOL_KW_USE_SYSLOGNG_PID = 89,       /* KW_USE_SYSLOGNG_PID  */
567   YYSYMBOL_KW_FLAGS = 90,                  /* KW_FLAGS  */
568   YYSYMBOL_KW_PAD_SIZE = 91,               /* KW_PAD_SIZE  */
569   YYSYMBOL_KW_TIME_ZONE = 92,              /* KW_TIME_ZONE  */
570   YYSYMBOL_KW_RECV_TIME_ZONE = 93,         /* KW_RECV_TIME_ZONE  */
571   YYSYMBOL_KW_SEND_TIME_ZONE = 94,         /* KW_SEND_TIME_ZONE  */
572   YYSYMBOL_KW_LOCAL_TIME_ZONE = 95,        /* KW_LOCAL_TIME_ZONE  */
573   YYSYMBOL_KW_FORMAT = 96,                 /* KW_FORMAT  */
574   YYSYMBOL_KW_TRUNCATE_SIZE = 97,          /* KW_TRUNCATE_SIZE  */
575   YYSYMBOL_KW_TIME_REOPEN = 98,            /* KW_TIME_REOPEN  */
576   YYSYMBOL_KW_TIME_REAP = 99,              /* KW_TIME_REAP  */
577   YYSYMBOL_KW_TIME_SLEEP = 100,            /* KW_TIME_SLEEP  */
578   YYSYMBOL_KW_TMPL_ESCAPE = 101,           /* KW_TMPL_ESCAPE  */
579   YYSYMBOL_KW_OPTIONAL = 102,              /* KW_OPTIONAL  */
580   YYSYMBOL_KW_CREATE_DIRS = 103,           /* KW_CREATE_DIRS  */
581   YYSYMBOL_KW_OWNER = 104,                 /* KW_OWNER  */
582   YYSYMBOL_KW_GROUP = 105,                 /* KW_GROUP  */
583   YYSYMBOL_KW_PERM = 106,                  /* KW_PERM  */
584   YYSYMBOL_KW_DIR_OWNER = 107,             /* KW_DIR_OWNER  */
585   YYSYMBOL_KW_DIR_GROUP = 108,             /* KW_DIR_GROUP  */
586   YYSYMBOL_KW_DIR_PERM = 109,              /* KW_DIR_PERM  */
587   YYSYMBOL_KW_TEMPLATE = 110,              /* KW_TEMPLATE  */
588   YYSYMBOL_KW_TEMPLATE_ESCAPE = 111,       /* KW_TEMPLATE_ESCAPE  */
589   YYSYMBOL_KW_TEMPLATE_FUNCTION = 112,     /* KW_TEMPLATE_FUNCTION  */
590   YYSYMBOL_KW_DEFAULT_FACILITY = 113,      /* KW_DEFAULT_FACILITY  */
591   YYSYMBOL_KW_DEFAULT_SEVERITY = 114,      /* KW_DEFAULT_SEVERITY  */
592   YYSYMBOL_KW_PORT = 115,                  /* KW_PORT  */
593   YYSYMBOL_KW_USE_TIME_RECVD = 116,        /* KW_USE_TIME_RECVD  */
594   YYSYMBOL_KW_FACILITY = 117,              /* KW_FACILITY  */
595   YYSYMBOL_KW_SEVERITY = 118,              /* KW_SEVERITY  */
596   YYSYMBOL_KW_HOST = 119,                  /* KW_HOST  */
597   YYSYMBOL_KW_MATCH = 120,                 /* KW_MATCH  */
598   YYSYMBOL_KW_MESSAGE = 121,               /* KW_MESSAGE  */
599   YYSYMBOL_KW_NETMASK = 122,               /* KW_NETMASK  */
600   YYSYMBOL_KW_TAGS = 123,                  /* KW_TAGS  */
601   YYSYMBOL_KW_NETMASK6 = 124,              /* KW_NETMASK6  */
602   YYSYMBOL_KW_REWRITE = 125,               /* KW_REWRITE  */
603   YYSYMBOL_KW_CONDITION = 126,             /* KW_CONDITION  */
604   YYSYMBOL_KW_VALUE = 127,                 /* KW_VALUE  */
605   YYSYMBOL_KW_YES = 128,                   /* KW_YES  */
606   YYSYMBOL_KW_NO = 129,                    /* KW_NO  */
607   YYSYMBOL_KW_IFDEF = 130,                 /* KW_IFDEF  */
608   YYSYMBOL_KW_ENDIF = 131,                 /* KW_ENDIF  */
609   YYSYMBOL_LL_DOTDOT = 132,                /* LL_DOTDOT  */
610   YYSYMBOL_LL_DOTDOTDOT = 133,             /* LL_DOTDOTDOT  */
611   YYSYMBOL_LL_PRAGMA = 134,                /* LL_PRAGMA  */
612   YYSYMBOL_LL_EOL = 135,                   /* LL_EOL  */
613   YYSYMBOL_LL_ERROR = 136,                 /* LL_ERROR  */
614   YYSYMBOL_LL_ARROW = 137,                 /* LL_ARROW  */
615   YYSYMBOL_LL_IDENTIFIER = 138,            /* LL_IDENTIFIER  */
616   YYSYMBOL_LL_NUMBER = 139,                /* LL_NUMBER  */
617   YYSYMBOL_LL_FLOAT = 140,                 /* LL_FLOAT  */
618   YYSYMBOL_LL_STRING = 141,                /* LL_STRING  */
619   YYSYMBOL_LL_TOKEN = 142,                 /* LL_TOKEN  */
620   YYSYMBOL_LL_BLOCK = 143,                 /* LL_BLOCK  */
621   YYSYMBOL_KW_VALUE_PAIRS = 144,           /* KW_VALUE_PAIRS  */
622   YYSYMBOL_KW_EXCLUDE = 145,               /* KW_EXCLUDE  */
623   YYSYMBOL_KW_PAIR = 146,                  /* KW_PAIR  */
624   YYSYMBOL_KW_KEY = 147,                   /* KW_KEY  */
625   YYSYMBOL_KW_SCOPE = 148,                 /* KW_SCOPE  */
626   YYSYMBOL_KW_SHIFT = 149,                 /* KW_SHIFT  */
627   YYSYMBOL_KW_SHIFT_LEVELS = 150,          /* KW_SHIFT_LEVELS  */
628   YYSYMBOL_KW_REKEY = 151,                 /* KW_REKEY  */
629   YYSYMBOL_KW_ADD_PREFIX = 152,            /* KW_ADD_PREFIX  */
630   YYSYMBOL_KW_REPLACE_PREFIX = 153,        /* KW_REPLACE_PREFIX  */
631   YYSYMBOL_KW_ON_ERROR = 154,              /* KW_ON_ERROR  */
632   YYSYMBOL_KW_RETRIES = 155,               /* KW_RETRIES  */
633   YYSYMBOL_KW_FETCH_NO_DATA_DELAY = 156,   /* KW_FETCH_NO_DATA_DELAY  */
634   YYSYMBOL_KW_REGEXP_PARSER = 157,         /* KW_REGEXP_PARSER  */
635   YYSYMBOL_KW_PREFIX = 158,                /* KW_PREFIX  */
636   YYSYMBOL_KW_PATTERNS = 159,              /* KW_PATTERNS  */
637   YYSYMBOL_160_ = 160,                     /* '('  */
638   YYSYMBOL_161_ = 161,                     /* ')'  */
639   YYSYMBOL_162_ = 162,                     /* '{'  */
640   YYSYMBOL_163_ = 163,                     /* '}'  */
641   YYSYMBOL_164_ = 164,                     /* ';'  */
642   YYSYMBOL_165_ = 165,                     /* ':'  */
643   YYSYMBOL_YYACCEPT = 166,                 /* $accept  */
644   YYSYMBOL_start = 167,                    /* start  */
645   YYSYMBOL_parser_expr_regexp = 168,       /* parser_expr_regexp  */
646   YYSYMBOL_169_1 = 169,                    /* $@1  */
647   YYSYMBOL_parser_regexp_opts = 170,       /* parser_regexp_opts  */
648   YYSYMBOL_parser_regexp_opt = 171,        /* parser_regexp_opt  */
649   YYSYMBOL_172_2 = 172,                    /* $@2  */
650   YYSYMBOL_string = 173,                   /* string  */
651   YYSYMBOL_string_list = 174,              /* string_list  */
652   YYSYMBOL_string_list_build = 175,        /* string_list_build  */
653   YYSYMBOL_parser_opt = 176,               /* parser_opt  */
654   YYSYMBOL_matcher_option = 177,           /* matcher_option  */
655   YYSYMBOL_matcher_flags = 178             /* matcher_flags  */
656 };
657 typedef enum yysymbol_kind_t yysymbol_kind_t;
658 
659 
660 
661 /* Unqualified %code blocks.  */
662 #line 28 "modules/regexp-parser/regexp-parser-grammar.y"
663 
664 
665 #include "regexp-parser.h"
666 #include "regexp-parser-parser.h"
667 #include "cfg-parser.h"
668 #include "cfg-grammar-internal.h"
669 
670 #line 55 "modules/regexp-parser/regexp-parser-grammar.y"
671 
672 
673 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
674   do {                                                                  \
675     if (N)                                                              \
676       {                                                                 \
677         (Current).level = YYRHSLOC(Rhs, 1).level;                       \
678         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;          \
679         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;        \
680         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;           \
681         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;         \
682       }                                                                 \
683     else                                                                \
684       {                                                                 \
685         (Current).level = YYRHSLOC(Rhs, 0).level;                       \
686         (Current).first_line   = (Current).last_line   =                \
687           YYRHSLOC (Rhs, 0).last_line;                                  \
688         (Current).first_column = (Current).last_column =                \
689           YYRHSLOC (Rhs, 0).last_column;                                \
690       }                                                                 \
691   } while (0)
692 
693 #define CHECK_ERROR_WITHOUT_MESSAGE(val, token) do {                    \
694     if (!(val))                                                         \
695       {                                                                 \
696         YYERROR;                                                        \
697       }                                                                 \
698   } while (0)
699 
700 #define CHECK_ERROR(val, token, errorfmt, ...) do {                     \
701     if (!(val))                                                         \
702       {                                                                 \
703         if (errorfmt)                                                   \
704           {                                                             \
705             gchar __buf[256];                                           \
706             g_snprintf(__buf, sizeof(__buf), errorfmt, ## __VA_ARGS__); \
707             yyerror(& (token), lexer, NULL, NULL, __buf);               \
708           }                                                             \
709         YYERROR;                                                        \
710       }                                                                 \
711   } while (0)
712 
713 #define CHECK_ERROR_GERROR(val, token, error, errorfmt, ...) do {       \
714     if (!(val))                                                         \
715       {                                                                 \
716         if (errorfmt)                                                   \
717           {                                                             \
718             gchar __buf[256];                                           \
719             g_snprintf(__buf, sizeof(__buf), errorfmt ", error=%s", ## __VA_ARGS__, error->message); \
720             yyerror(& (token), lexer, NULL, NULL, __buf);               \
721           }                                                             \
722         g_clear_error(&error);						\
723         YYERROR;                                                        \
724       }                                                                 \
725   } while (0)
726 
727 #define YYMAXDEPTH 20000
728 
729 
730 
731 #line 732 "modules/regexp-parser/regexp-parser-grammar.c"
732 
733 #ifdef short
734 # undef short
735 #endif
736 
737 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
738    <limits.h> and (if available) <stdint.h> are included
739    so that the code can choose integer types of a good width.  */
740 
741 #ifndef __PTRDIFF_MAX__
742 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
743 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
744 #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
745 #  define YY_STDINT_H
746 # endif
747 #endif
748 
749 /* Narrow types that promote to a signed type and that can represent a
750    signed or unsigned integer of at least N bits.  In tables they can
751    save space and decrease cache pressure.  Promoting to a signed type
752    helps avoid bugs in integer arithmetic.  */
753 
754 #ifdef __INT_LEAST8_MAX__
755 typedef __INT_LEAST8_TYPE__ yytype_int8;
756 #elif defined YY_STDINT_H
757 typedef int_least8_t yytype_int8;
758 #else
759 typedef signed char yytype_int8;
760 #endif
761 
762 #ifdef __INT_LEAST16_MAX__
763 typedef __INT_LEAST16_TYPE__ yytype_int16;
764 #elif defined YY_STDINT_H
765 typedef int_least16_t yytype_int16;
766 #else
767 typedef short yytype_int16;
768 #endif
769 
770 /* Work around bug in HP-UX 11.23, which defines these macros
771    incorrectly for preprocessor constants.  This workaround can likely
772    be removed in 2023, as HPE has promised support for HP-UX 11.23
773    (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
774    <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
775 #ifdef __hpux
776 # undef UINT_LEAST8_MAX
777 # undef UINT_LEAST16_MAX
778 # define UINT_LEAST8_MAX 255
779 # define UINT_LEAST16_MAX 65535
780 #endif
781 
782 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
783 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
784 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
785        && UINT_LEAST8_MAX <= INT_MAX)
786 typedef uint_least8_t yytype_uint8;
787 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
788 typedef unsigned char yytype_uint8;
789 #else
790 typedef short yytype_uint8;
791 #endif
792 
793 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
794 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
795 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
796        && UINT_LEAST16_MAX <= INT_MAX)
797 typedef uint_least16_t yytype_uint16;
798 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
799 typedef unsigned short yytype_uint16;
800 #else
801 typedef int yytype_uint16;
802 #endif
803 
804 #ifndef YYPTRDIFF_T
805 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
806 #  define YYPTRDIFF_T __PTRDIFF_TYPE__
807 #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
808 # elif defined PTRDIFF_MAX
809 #  ifndef ptrdiff_t
810 #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
811 #  endif
812 #  define YYPTRDIFF_T ptrdiff_t
813 #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
814 # else
815 #  define YYPTRDIFF_T long
816 #  define YYPTRDIFF_MAXIMUM LONG_MAX
817 # endif
818 #endif
819 
820 #ifndef YYSIZE_T
821 # ifdef __SIZE_TYPE__
822 #  define YYSIZE_T __SIZE_TYPE__
823 # elif defined size_t
824 #  define YYSIZE_T size_t
825 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
826 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
827 #  define YYSIZE_T size_t
828 # else
829 #  define YYSIZE_T unsigned
830 # endif
831 #endif
832 
833 #define YYSIZE_MAXIMUM                                  \
834   YY_CAST (YYPTRDIFF_T,                                 \
835            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
836             ? YYPTRDIFF_MAXIMUM                         \
837             : YY_CAST (YYSIZE_T, -1)))
838 
839 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
840 
841 
842 /* Stored state numbers (used for stacks). */
843 typedef yytype_int8 yy_state_t;
844 
845 /* State numbers in computations.  */
846 typedef int yy_state_fast_t;
847 
848 #ifndef YY_
849 # if defined YYENABLE_NLS && YYENABLE_NLS
850 #  if ENABLE_NLS
851 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
852 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
853 #  endif
854 # endif
855 # ifndef YY_
856 #  define YY_(Msgid) Msgid
857 # endif
858 #endif
859 
860 
861 #ifndef YY_ATTRIBUTE_PURE
862 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
863 #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
864 # else
865 #  define YY_ATTRIBUTE_PURE
866 # endif
867 #endif
868 
869 #ifndef YY_ATTRIBUTE_UNUSED
870 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
871 #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
872 # else
873 #  define YY_ATTRIBUTE_UNUSED
874 # endif
875 #endif
876 
877 /* Suppress unused-variable warnings by "using" E.  */
878 #if ! defined lint || defined __GNUC__
879 # define YY_USE(E) ((void) (E))
880 #else
881 # define YY_USE(E) /* empty */
882 #endif
883 
884 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
885 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
886 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
887 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
888     _Pragma ("GCC diagnostic push")                                     \
889     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
890 # else
891 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
892     _Pragma ("GCC diagnostic push")                                     \
893     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
894     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
895 # endif
896 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
897     _Pragma ("GCC diagnostic pop")
898 #else
899 # define YY_INITIAL_VALUE(Value) Value
900 #endif
901 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
902 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
903 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
904 #endif
905 #ifndef YY_INITIAL_VALUE
906 # define YY_INITIAL_VALUE(Value) /* Nothing. */
907 #endif
908 
909 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
910 # define YY_IGNORE_USELESS_CAST_BEGIN                          \
911     _Pragma ("GCC diagnostic push")                            \
912     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
913 # define YY_IGNORE_USELESS_CAST_END            \
914     _Pragma ("GCC diagnostic pop")
915 #endif
916 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
917 # define YY_IGNORE_USELESS_CAST_BEGIN
918 # define YY_IGNORE_USELESS_CAST_END
919 #endif
920 
921 
922 #define YY_ASSERT(E) ((void) (0 && (E)))
923 
924 #if 1
925 
926 /* The parser invokes alloca or malloc; define the necessary symbols.  */
927 
928 # ifdef YYSTACK_USE_ALLOCA
929 #  if YYSTACK_USE_ALLOCA
930 #   ifdef __GNUC__
931 #    define YYSTACK_ALLOC __builtin_alloca
932 #   elif defined __BUILTIN_VA_ARG_INCR
933 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
934 #   elif defined _AIX
935 #    define YYSTACK_ALLOC __alloca
936 #   elif defined _MSC_VER
937 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
938 #    define alloca _alloca
939 #   else
940 #    define YYSTACK_ALLOC alloca
941 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
942 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
943       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
944 #     ifndef EXIT_SUCCESS
945 #      define EXIT_SUCCESS 0
946 #     endif
947 #    endif
948 #   endif
949 #  endif
950 # endif
951 
952 # ifdef YYSTACK_ALLOC
953    /* Pacify GCC's 'empty if-body' warning.  */
954 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
955 #  ifndef YYSTACK_ALLOC_MAXIMUM
956     /* The OS might guarantee only one guard page at the bottom of the stack,
957        and a page size can be as small as 4096 bytes.  So we cannot safely
958        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
959        to allow for a few compiler-allocated temporary stack slots.  */
960 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
961 #  endif
962 # else
963 #  define YYSTACK_ALLOC YYMALLOC
964 #  define YYSTACK_FREE YYFREE
965 #  ifndef YYSTACK_ALLOC_MAXIMUM
966 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
967 #  endif
968 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
969        && ! ((defined YYMALLOC || defined malloc) \
970              && (defined YYFREE || defined free)))
971 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
972 #   ifndef EXIT_SUCCESS
973 #    define EXIT_SUCCESS 0
974 #   endif
975 #  endif
976 #  ifndef YYMALLOC
977 #   define YYMALLOC malloc
978 #   if ! defined malloc && ! defined EXIT_SUCCESS
979 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
980 #   endif
981 #  endif
982 #  ifndef YYFREE
983 #   define YYFREE free
984 #   if ! defined free && ! defined EXIT_SUCCESS
985 void free (void *); /* INFRINGES ON USER NAME SPACE */
986 #   endif
987 #  endif
988 # endif
989 #endif /* 1 */
990 
991 #if (! defined yyoverflow \
992      && (! defined __cplusplus \
993          || (defined REGEXP_PARSER_LTYPE_IS_TRIVIAL && REGEXP_PARSER_LTYPE_IS_TRIVIAL \
994              && defined REGEXP_PARSER_STYPE_IS_TRIVIAL && REGEXP_PARSER_STYPE_IS_TRIVIAL)))
995 
996 /* A type that is properly aligned for any stack member.  */
997 union yyalloc
998 {
999   yy_state_t yyss_alloc;
1000   YYSTYPE yyvs_alloc;
1001   YYLTYPE yyls_alloc;
1002 };
1003 
1004 /* The size of the maximum gap between one aligned stack and the next.  */
1005 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1006 
1007 /* The size of an array large to enough to hold all stacks, each with
1008    N elements.  */
1009 # define YYSTACK_BYTES(N) \
1010      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1011              + YYSIZEOF (YYLTYPE)) \
1012       + 2 * YYSTACK_GAP_MAXIMUM)
1013 
1014 # define YYCOPY_NEEDED 1
1015 
1016 /* Relocate STACK from its old location to the new one.  The
1017    local variables YYSIZE and YYSTACKSIZE give the old and new number of
1018    elements in the stack, and YYPTR gives the new location of the
1019    stack.  Advance YYPTR to a properly aligned location for the next
1020    stack.  */
1021 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
1022     do                                                                  \
1023       {                                                                 \
1024         YYPTRDIFF_T yynewbytes;                                         \
1025         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1026         Stack = &yyptr->Stack_alloc;                                    \
1027         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1028         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
1029       }                                                                 \
1030     while (0)
1031 
1032 #endif
1033 
1034 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1035 /* Copy COUNT objects from SRC to DST.  The source and destination do
1036    not overlap.  */
1037 # ifndef YYCOPY
1038 #  if defined __GNUC__ && 1 < __GNUC__
1039 #   define YYCOPY(Dst, Src, Count) \
1040       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1041 #  else
1042 #   define YYCOPY(Dst, Src, Count)              \
1043       do                                        \
1044         {                                       \
1045           YYPTRDIFF_T yyi;                      \
1046           for (yyi = 0; yyi < (Count); yyi++)   \
1047             (Dst)[yyi] = (Src)[yyi];            \
1048         }                                       \
1049       while (0)
1050 #  endif
1051 # endif
1052 #endif /* !YYCOPY_NEEDED */
1053 
1054 /* YYFINAL -- State number of the termination state.  */
1055 #define YYFINAL  5
1056 /* YYLAST -- Last index in YYTABLE.  */
1057 #define YYLAST   51
1058 
1059 /* YYNTOKENS -- Number of terminals.  */
1060 #define YYNTOKENS  166
1061 /* YYNNTS -- Number of nonterminals.  */
1062 #define YYNNTS  13
1063 /* YYNRULES -- Number of rules.  */
1064 #define YYNRULES  21
1065 /* YYNSTATES -- Number of states.  */
1066 #define YYNSTATES  42
1067 
1068 /* YYMAXUTOK -- Last valid token kind.  */
1069 #define YYMAXUTOK   10517
1070 
1071 
1072 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1073    as returned by yylex, with out-of-bounds checking.  */
1074 #define YYTRANSLATE(YYX)                                \
1075   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
1076    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
1077    : YYSYMBOL_YYUNDEF)
1078 
1079 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1080    as returned by yylex.  */
1081 static const yytype_uint8 yytranslate[] =
1082 {
1083        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1084       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1085       22,    23,     2,     2,     2,     2,     2,     2,     2,     2,
1086        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1087      160,   161,     2,     2,     2,     2,     2,     2,     2,     2,
1088        2,     2,     2,     2,     2,     2,     2,     2,   165,   164,
1089        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1090        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1091        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1092        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1093        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1094        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1095        2,     2,     2,   162,     2,   163,     2,     2,     2,     2,
1096        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1097        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1098        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1099        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1100        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1101        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1102        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1103        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1104        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1105        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1106        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1107        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1108        2,     2,     2,     2,     2,     2,     1,     2,     2,     2,
1109        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1110        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1111        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1112        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1113        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1114        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1115        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1116        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1117        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1118        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1119        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1120        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1121        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1122        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1123        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1124        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1125        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1126        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1127        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1128        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1129        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1130        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1131        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1132        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1133        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1134        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1135        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1136        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1137        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1138        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1139        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1140        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1141        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1142        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1143        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1144        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1145        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1146        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1147        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1148        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1149        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1150        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1151        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1152        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1153        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1154        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1155        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1156        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1157        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1158        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1159        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1160        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1161        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1162        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1163        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1164        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1165        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1166        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1167        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1168        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1169        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1170        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1171        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1172        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1173        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1174        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1175        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1176        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1177        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1178        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1179        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1180        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1181        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1182        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1183        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1184        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1185        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1186        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1187        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1188        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1189        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1190        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1191        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1192        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1193        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1194        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1195        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1196        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1197        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1198        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1199        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1200        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1201        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1202        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1203        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1204        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1205        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1206        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1207        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1208        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1209        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1210        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1211        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1212        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1213        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1214        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1215        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1216        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1217        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1218        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1219        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1220        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1221        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1222        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1223        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1224        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1225        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1226        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1227        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1228        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1229        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1230        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1231        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1232        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1233        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1234        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1235        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1236        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1237        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1238        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1239        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1240        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1241        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1242        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1243        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1244        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1245        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1246        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1247        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1248        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1249        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1250        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1251        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1252        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1253        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1254        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1255        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1256        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1257        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1258        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1259        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1260        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1261        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1262        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1263        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1264        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1265        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1266        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1267        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1268        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1269        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1270        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1271        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1272        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1273        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1274        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1275        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1276        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1277        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1278        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1279        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1280        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1281        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1282        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1283        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1284        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1285        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1286        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1287        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1288        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1289        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1290        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1291        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1292        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1293        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1294        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1295        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1296        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1297        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1298        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1299        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1300        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1301        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1302        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1303        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1304        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1305        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1306        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1307        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1308        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1309        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1310        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1311        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1312        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1313        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1314        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1315        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1316        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1317        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1318        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1319        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1320        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1321        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1322        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1323        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1324        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1325        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1326        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1327        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1328        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1329        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1330        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1331        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1332        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1333        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1334        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1335        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1336        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1337        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1338        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1339        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1340        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1341        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1342        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1343        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1344        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1345        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1346        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1347        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1348        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1349        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1350        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1351        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1352        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1353        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1354        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1355        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1356        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1357        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1358        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1359        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1360        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1361        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1362        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1363        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1364        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1365        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1366        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1367        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1368        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1369        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1370        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1371        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1372        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1373        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1374        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1375        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1376        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1377        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1378        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1379        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1380        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1381        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1382        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1383        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1384        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1385        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1386        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1387        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1388        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1389        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1390        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1391        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1392        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1393        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1394        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1395        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1396        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1397        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1398        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1399        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1400        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1401        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1402        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1403        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1404        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1405        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1406        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1407        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1408        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1409        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1410        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1411        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1412        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1413        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1414        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1415        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1416        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1417        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1418        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1419        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1420        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1421        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1422        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1423        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1424        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1425        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1426        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1427        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1428        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1429        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1430        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1431        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1432        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1433        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1434        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1435        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1436        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1437        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1438        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1439        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1440        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1441        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1442        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1443        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1444        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1445        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1446        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1447        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1448        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1449        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1450        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1451        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1452        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1453        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1454        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1455        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1456        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1457        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1458        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1459        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1460        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1461        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1462        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1463        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1464        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1465        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1466        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1467        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1468        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1469        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1470        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1471        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1472        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1473        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1474        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1475        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1476        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1477        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1478        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1479        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1480        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1481        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1482        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1483        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1484        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1485        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1486        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1487        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1488        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1489        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1490        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1491        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1492        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1493        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1494        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1495        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1496        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1497        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1498        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1499        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1500        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1501        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1502        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1503        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1504        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1505        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1506        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1507        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1508        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1509        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1510        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1511        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1512        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1513        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1514        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1515        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1516        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1517        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1518        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1519        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1520        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1521        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1522        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1523        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1524        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1525        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1526        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1527        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1528        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1529        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1530        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1531        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1532        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1533        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1534        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1535        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1536        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1537        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1538        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1539        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1540        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1541        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1542        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1543        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1544        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1545        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1546        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1547        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1548        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1549        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1550        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1551        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1552        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1553        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1554        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1555        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1556        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1557        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1559        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1560        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1561        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1562        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1563        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1566        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1567        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1568        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1569        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1570        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1571        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1572        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1573        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1574        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1575        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1576        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1577        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1578        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1579        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1580        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1581        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1582        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1583        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1584        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1585        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1586        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1587        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1588        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1589        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1590        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1591        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1592        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1593        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1594        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1595        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1596        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1597        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1598        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1599        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1600        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1601        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1602        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1603        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1604        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1605        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1606        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1607        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1608        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1609        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1610        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1611        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1612        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1613        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1614        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1615        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1616        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1617        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1618        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1619        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1620        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1621        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1622        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1623        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1624        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1625        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1626        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1627        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1628        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1629        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1630        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1631        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1632        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1633        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1634        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1635        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1636        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1637        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1638        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1639        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1640        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1641        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1642        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1643        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1644        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1645        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1646        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1647        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1648        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1649        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1650        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1651        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1652        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1653        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1654        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1655        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1656        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1657        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1658        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1659        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1660        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1661        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1662        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1663        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1664        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1665        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1666        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1667        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1668        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1669        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1670        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1671        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1672        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1673        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1674        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1675        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1676        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1677        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1678        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1679        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1680        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1681        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1682        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1683        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1684        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1685        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1686        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1687        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1688        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1689        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1690        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1691        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1692        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1693        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1694        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1695        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1696        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1697        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1698        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1699        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1700        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1701        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1702        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1703        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1704        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1705        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1706        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1707        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1708        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1709        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1710        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1711        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1712        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1713        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1714        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1715        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1716        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1717        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1718        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1719        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1720        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1721        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1722        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1723        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1724        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1725        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1726        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1727        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1728        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1729        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1730        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1731        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1732        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1733        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1734        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1735        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1736        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1737        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1738        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1739        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1740        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1741        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1742        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1743        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1744        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1745        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1746        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1747        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1748        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1749        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1750        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1751        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1752        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1753        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1754        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1755        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1756        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1757        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1758        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1759        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1760        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1761        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1762        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1763        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1764        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1765        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1766        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1767        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1768        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1769        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1770        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1771        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1772        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1773        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1774        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1775        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1776        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1777        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1778        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1779        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1780        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1781        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1782        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1783        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1784        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1785        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1786        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1787        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1788        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1789        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1790        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1791        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1792        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1793        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1794        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1795        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1796        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1797        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1798        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1799        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1800        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1801        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1802        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1803        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1804        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1805        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1806        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1807        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1808        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1809        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1810        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1811        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1812        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1813        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1814        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1815        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1816        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1817        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1818        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1819        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1820        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1821        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1822        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1823        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1824        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1825        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1826        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1827        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1828        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1829        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1830        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1831        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1832        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1833        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1834        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1835        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1836        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1837        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1838        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1839        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1840        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1841        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1842        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1843        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1844        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1845        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1846        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1847        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1848        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1849        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1850        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1851        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1852        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1853        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1854        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1855        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1856        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1857        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1858        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1859        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1860        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1861        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1862        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1863        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1864        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1865        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1866        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1867        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1868        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1869        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1870        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1871        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1872        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1873        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1874        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1875        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1876        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1877        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1878        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1879        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1880        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1881        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1882        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1883        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1884        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1885        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1886        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1887        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1888        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1889        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1890        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1891        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1892        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1893        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1894        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1895        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1896        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1897        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1898        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1899        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1900        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1901        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1902        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1903        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1904        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1905        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1906        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1907        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1908        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1909        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1910        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1911        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1912        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1913        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1914        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1915        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1916        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1917        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1918        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1919        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1920        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1921        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1922        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1923        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1924        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1925        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1926        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1927        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1928        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1929        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1930        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1931        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1932        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1933        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1934        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1935        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1936        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1937        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1938        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1939        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1940        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1941        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1942        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1943        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1944        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1945        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1946        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1947        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1948        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1949        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1950        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1951        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1952        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1953        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1954        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1955        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1956        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1957        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1958        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1959        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1960        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1961        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1962        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1963        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1964        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1965        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1966        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1967        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1968        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1969        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1970        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1971        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1972        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1973        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1974        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1975        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1976        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1977        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1978        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1979        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1980        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1981        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1982        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1983        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1984        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1985        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1986        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1987        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1988        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1989        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1990        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1991        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1992        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1993        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1994        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1995        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1996        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1997        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1998        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1999        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2000        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2001        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2002        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2003        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2004        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2005        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2006        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2007        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2008        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2009        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2010        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2011        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2012        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2013        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2014        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2015        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2016        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2017        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2018        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2019        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2020        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2021        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2022        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2023        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2024        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2025        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2026        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2027        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2028        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2029        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2030        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2031        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2032        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2033        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2034        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2035        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2036        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2037        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2038        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2039        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2040        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2041        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2042        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2043        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2044        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2045        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2046        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2047        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2048        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2049        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2050        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2051        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2052        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2053        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2054        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2055        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2056        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2057        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2058        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2059        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2060        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2061        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2062        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2063        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2064        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2065        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2066        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2067        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2068        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2069        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2070        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2071        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2072        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2073        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2074        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2075        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2076        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2077        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2078        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2079        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2080        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2081        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2082        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2083       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2084       34,    35,    36,     2,     2,     2,     2,     2,     2,     2,
2085       37,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2086        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2087        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2088        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2089       38,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2090        2,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2091       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2092       58,    59,    60,    61,    62,     2,     2,     2,     2,     2,
2093       63,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2094       64,    65,    66,     2,     2,     2,     2,     2,     2,     2,
2095       67,    68,     2,     2,     2,     2,     2,     2,     2,     2,
2096       69,    70,    71,     2,     2,     2,     2,     2,     2,     2,
2097       72,    73,    74,     2,     2,     2,     2,     2,     2,     2,
2098       75,    76,    77,     2,     2,     2,     2,     2,     2,     2,
2099       78,     2,    79,    80,    81,    82,    83,     2,     2,     2,
2100       84,    85,     2,     2,     2,     2,     2,     2,     2,     2,
2101        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2102       90,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2103       91,    92,    93,    94,    95,    96,    97,     2,     2,     2,
2104       98,    99,   100,     2,     2,     2,     2,     2,     2,     2,
2105      101,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2106      102,    86,     2,     2,     2,     2,     2,     2,     2,     2,
2107      103,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2108      104,   105,   106,     2,     2,     2,     2,     2,     2,     2,
2109      107,   108,   109,     2,     2,     2,     2,     2,     2,     2,
2110      110,   111,   112,     2,     2,     2,     2,     2,     2,     2,
2111        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2112        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2113      113,   114,    87,     2,    88,    89,     2,     2,     2,     2,
2114        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2115        2,     2,     2,   115,     2,     2,     2,     2,     2,     2,
2116        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2117      116,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2118      117,   118,   119,   120,   121,   122,   123,   124,     2,     2,
2119        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2120      125,   126,   127,     2,     2,     2,     2,     2,     2,     2,
2121      128,   129,     2,     2,     2,     2,     2,     2,     2,     2,
2122        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2123        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2124      130,   131,     2,     2,     2,     2,     2,     2,     2,     2,
2125      132,   133,   134,   135,   136,   137,     2,     2,     2,     2,
2126      138,   139,   140,   141,   142,   143,     2,     2,     2,     2,
2127        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2128        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2129        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2130        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2131        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2132        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2133      144,     2,   145,   146,   147,   148,   149,   150,   151,   152,
2134      153,   154,   155,   156,     2,   157,   158,   159
2135 };
2136 
2137 #if REGEXP_PARSER_DEBUG
2138 /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
2139 static const yytype_int16 yyrline[] =
2140 {
2141        0,   403,   403,   408,   407,   421,   422,   426,   426,   427,
2142      428,   429,   696,   697,   794,   798,   799,   831,  1097,  1098,
2143     1102,  1103
2144 };
2145 #endif
2146 
2147 /** Accessing symbol of state STATE.  */
2148 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
2149 
2150 #if 1
2151 /* The user-facing name of the symbol whose (internal) number is
2152    YYSYMBOL.  No bounds checking.  */
2153 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
2154 
2155 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2156    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
2157 static const char *const yytname[] =
2158 {
2159   "\"end of file\"", "error", "\"invalid token\"", "LL_CONTEXT_ROOT",
2160   "LL_CONTEXT_DESTINATION", "LL_CONTEXT_SOURCE", "LL_CONTEXT_PARSER",
2161   "LL_CONTEXT_REWRITE", "LL_CONTEXT_FILTER", "LL_CONTEXT_LOG",
2162   "LL_CONTEXT_BLOCK_DEF", "LL_CONTEXT_BLOCK_REF",
2163   "LL_CONTEXT_BLOCK_CONTENT", "LL_CONTEXT_BLOCK_ARG", "LL_CONTEXT_PRAGMA",
2164   "LL_CONTEXT_FORMAT", "LL_CONTEXT_TEMPLATE_FUNC", "LL_CONTEXT_INNER_DEST",
2165   "LL_CONTEXT_INNER_SRC", "LL_CONTEXT_CLIENT_PROTO",
2166   "LL_CONTEXT_SERVER_PROTO", "LL_CONTEXT_OPTIONS", "LL_CONTEXT_CONFIG",
2167   "LL_CONTEXT_MAX", "KW_SOURCE", "KW_FILTER", "KW_PARSER",
2168   "KW_DESTINATION", "KW_LOG", "KW_OPTIONS", "KW_INCLUDE", "KW_BLOCK",
2169   "KW_JUNCTION", "KW_CHANNEL", "KW_IF", "KW_ELSE", "KW_ELIF",
2170   "KW_INTERNAL", "KW_SYSLOG", "KW_MARK_FREQ", "KW_STATS_FREQ",
2171   "KW_STATS_LEVEL", "KW_STATS_LIFETIME", "KW_FLUSH_LINES", "KW_SUPPRESS",
2172   "KW_FLUSH_TIMEOUT", "KW_LOG_MSG_SIZE", "KW_FILE_TEMPLATE",
2173   "KW_PROTO_TEMPLATE", "KW_MARK_MODE", "KW_ENCODING", "KW_TYPE",
2174   "KW_STATS_MAX_DYNAMIC", "KW_MIN_IW_SIZE_PER_READER", "KW_WORKERS",
2175   "KW_BATCH_LINES", "KW_BATCH_TIMEOUT", "KW_TRIM_LARGE_MESSAGES",
2176   "KW_CHAIN_HOSTNAMES", "KW_NORMALIZE_HOSTNAMES", "KW_KEEP_HOSTNAME",
2177   "KW_CHECK_HOSTNAME", "KW_BAD_HOSTNAME", "KW_KEEP_TIMESTAMP",
2178   "KW_USE_DNS", "KW_USE_FQDN", "KW_CUSTOM_DOMAIN", "KW_DNS_CACHE",
2179   "KW_DNS_CACHE_SIZE", "KW_DNS_CACHE_EXPIRE", "KW_DNS_CACHE_EXPIRE_FAILED",
2180   "KW_DNS_CACHE_HOSTS", "KW_PERSIST_ONLY", "KW_USE_RCPTID",
2181   "KW_USE_UNIQID", "KW_TZ_CONVERT", "KW_TS_FORMAT", "KW_FRAC_DIGITS",
2182   "KW_LOG_FIFO_SIZE", "KW_LOG_FETCH_LIMIT", "KW_LOG_IW_SIZE",
2183   "KW_LOG_PREFIX", "KW_PROGRAM_OVERRIDE", "KW_HOST_OVERRIDE",
2184   "KW_THROTTLE", "KW_THREADED", "KW_PASS_UNIX_CREDENTIALS",
2185   "KW_PERSIST_NAME", "KW_READ_OLD_RECORDS", "KW_USE_SYSLOGNG_PID",
2186   "KW_FLAGS", "KW_PAD_SIZE", "KW_TIME_ZONE", "KW_RECV_TIME_ZONE",
2187   "KW_SEND_TIME_ZONE", "KW_LOCAL_TIME_ZONE", "KW_FORMAT",
2188   "KW_TRUNCATE_SIZE", "KW_TIME_REOPEN", "KW_TIME_REAP", "KW_TIME_SLEEP",
2189   "KW_TMPL_ESCAPE", "KW_OPTIONAL", "KW_CREATE_DIRS", "KW_OWNER",
2190   "KW_GROUP", "KW_PERM", "KW_DIR_OWNER", "KW_DIR_GROUP", "KW_DIR_PERM",
2191   "KW_TEMPLATE", "KW_TEMPLATE_ESCAPE", "KW_TEMPLATE_FUNCTION",
2192   "KW_DEFAULT_FACILITY", "KW_DEFAULT_SEVERITY", "KW_PORT",
2193   "KW_USE_TIME_RECVD", "KW_FACILITY", "KW_SEVERITY", "KW_HOST", "KW_MATCH",
2194   "KW_MESSAGE", "KW_NETMASK", "KW_TAGS", "KW_NETMASK6", "KW_REWRITE",
2195   "KW_CONDITION", "KW_VALUE", "KW_YES", "KW_NO", "KW_IFDEF", "KW_ENDIF",
2196   "LL_DOTDOT", "LL_DOTDOTDOT", "LL_PRAGMA", "LL_EOL", "LL_ERROR",
2197   "LL_ARROW", "LL_IDENTIFIER", "LL_NUMBER", "LL_FLOAT", "LL_STRING",
2198   "LL_TOKEN", "LL_BLOCK", "KW_VALUE_PAIRS", "KW_EXCLUDE", "KW_PAIR",
2199   "KW_KEY", "KW_SCOPE", "KW_SHIFT", "KW_SHIFT_LEVELS", "KW_REKEY",
2200   "KW_ADD_PREFIX", "KW_REPLACE_PREFIX", "KW_ON_ERROR", "KW_RETRIES",
2201   "KW_FETCH_NO_DATA_DELAY", "KW_REGEXP_PARSER", "KW_PREFIX", "KW_PATTERNS",
2202   "'('", "')'", "'{'", "'}'", "';'", "':'", "$accept", "start",
2203   "parser_expr_regexp", "$@1", "parser_regexp_opts", "parser_regexp_opt",
2204   "$@2", "string", "string_list", "string_list_build", "parser_opt",
2205   "matcher_option", "matcher_flags", YY_NULLPTR
2206 };
2207 
2208 static const char *
yysymbol_name(yysymbol_kind_t yysymbol)2209 yysymbol_name (yysymbol_kind_t yysymbol)
2210 {
2211   return yytname[yysymbol];
2212 }
2213 #endif
2214 
2215 #define YYPACT_NINF (-153)
2216 
2217 #define yypact_value_is_default(Yyn) \
2218   ((Yyn) == YYPACT_NINF)
2219 
2220 #define YYTABLE_NINF (-7)
2221 
2222 #define yytable_value_is_error(Yyn) \
2223   0
2224 
2225 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2226    STATE-NUM.  */
2227 static const yytype_int16 yypact[] =
2228 {
2229       -1,  -151,     8,  -150,  -153,  -153,  -153,  -110,  -149,  -148,
2230     -147,  -152,  -110,   -50,  -153,  -134,  -134,  -134,  -153,  -153,
2231     -146,  -145,  -153,  -153,  -153,  -142,  -141,  -134,  -140,  -153,
2232     -134,  -134,  -153,  -153,  -153,  -153,  -139,  -134,  -138,  -153,
2233     -153,  -153
2234 };
2235 
2236 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
2237    Performed when YYTABLE does not specify something else to do.  Zero
2238    means the default is an error.  */
2239 static const yytype_int8 yydefact[] =
2240 {
2241        0,     0,     0,     0,     2,     1,     3,     7,     0,     0,
2242        0,     0,     7,     0,    11,     0,     0,    16,     4,     5,
2243        0,     0,     8,    12,    13,     0,     0,    16,     0,    14,
2244        0,    21,    17,     9,    15,    10,     0,    21,     0,    18,
2245       20,    19
2246 };
2247 
2248 /* YYPGOTO[NTERM-NUM].  */
2249 static const yytype_int16 yypgoto[] =
2250 {
2251     -153,  -153,  -153,  -153,     4,  -153,  -153,   -13,  -153,    -2,
2252     -153,  -153,   -11
2253 };
2254 
2255 /* YYDEFGOTO[NTERM-NUM].  */
2256 static const yytype_int8 yydefgoto[] =
2257 {
2258        0,     2,     4,     7,    11,    12,    13,    27,    28,    29,
2259       14,    22,    38
2260 };
2261 
2262 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
2263    positive, shift that token.  If negative, reduce the rule whose
2264    number is the opposite.  If YYTABLE_NINF, syntax error.  */
2265 static const yytype_int8 yytable[] =
2266 {
2267        8,    20,    25,    26,    23,     1,     3,    24,     5,    18,
2268        6,    15,    16,    17,    30,    31,    19,    36,    37,    32,
2269       33,    35,    39,    41,    37,    34,    40,     0,     0,     0,
2270        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2271       21,     0,     0,     0,     0,     0,     0,     0,     9,    10,
2272        0,    -6
2273 };
2274 
2275 static const yytype_int16 yycheck[] =
2276 {
2277      110,    51,    15,    16,   138,     6,   157,   141,     0,   161,
2278      160,   160,   160,   160,   160,   160,    12,    30,    31,   161,
2279      161,   161,   161,   161,    37,    27,    37,    -1,    -1,    -1,
2280       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2281       90,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   158,   159,
2282       -1,   161
2283 };
2284 
2285 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
2286    state STATE-NUM.  */
2287 static const yytype_uint8 yystos[] =
2288 {
2289        0,     6,   167,   157,   168,     0,   160,   169,   110,   158,
2290      159,   170,   171,   172,   176,   160,   160,   160,   161,   170,
2291       51,    90,   177,   138,   141,   173,   173,   173,   174,   175,
2292      160,   160,   161,   161,   175,   161,   173,   173,   178,   161,
2293      178,   161
2294 };
2295 
2296 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
2297 static const yytype_uint8 yyr1[] =
2298 {
2299        0,   166,   167,   169,   168,   170,   170,   172,   171,   171,
2300      171,   171,   173,   173,   174,   175,   175,   176,   177,   177,
2301      178,   178
2302 };
2303 
2304 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
2305 static const yytype_int8 yyr2[] =
2306 {
2307        0,     2,     2,     0,     5,     2,     0,     0,     2,     4,
2308        4,     1,     1,     1,     1,     2,     0,     4,     4,     4,
2309        2,     0
2310 };
2311 
2312 
2313 enum { YYENOMEM = -2 };
2314 
2315 #define yyerrok         (yyerrstatus = 0)
2316 #define yyclearin       (yychar = REGEXP_PARSER_EMPTY)
2317 
2318 #define YYACCEPT        goto yyacceptlab
2319 #define YYABORT         goto yyabortlab
2320 #define YYERROR         goto yyerrorlab
2321 #define YYNOMEM         goto yyexhaustedlab
2322 
2323 
2324 #define YYRECOVERING()  (!!yyerrstatus)
2325 
2326 #define YYBACKUP(Token, Value)                                    \
2327   do                                                              \
2328     if (yychar == REGEXP_PARSER_EMPTY)                                        \
2329       {                                                           \
2330         yychar = (Token);                                         \
2331         yylval = (Value);                                         \
2332         YYPOPSTACK (yylen);                                       \
2333         yystate = *yyssp;                                         \
2334         goto yybackup;                                            \
2335       }                                                           \
2336     else                                                          \
2337       {                                                           \
2338         yyerror (&yylloc, lexer, instance, arg, YY_("syntax error: cannot back up")); \
2339         YYERROR;                                                  \
2340       }                                                           \
2341   while (0)
2342 
2343 /* Backward compatibility with an undocumented macro.
2344    Use REGEXP_PARSER_error or REGEXP_PARSER_UNDEF. */
2345 #define YYERRCODE REGEXP_PARSER_UNDEF
2346 
2347 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2348    If N is 0, then set CURRENT to the empty location which ends
2349    the previous symbol: RHS[0] (always defined).  */
2350 
2351 #ifndef YYLLOC_DEFAULT
2352 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2353     do                                                                  \
2354       if (N)                                                            \
2355         {                                                               \
2356           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2357           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2358           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2359           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2360         }                                                               \
2361       else                                                              \
2362         {                                                               \
2363           (Current).first_line   = (Current).last_line   =              \
2364             YYRHSLOC (Rhs, 0).last_line;                                \
2365           (Current).first_column = (Current).last_column =              \
2366             YYRHSLOC (Rhs, 0).last_column;                              \
2367         }                                                               \
2368     while (0)
2369 #endif
2370 
2371 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2372 
2373 
2374 /* Enable debugging if requested.  */
2375 #if REGEXP_PARSER_DEBUG
2376 
2377 # ifndef YYFPRINTF
2378 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2379 #  define YYFPRINTF fprintf
2380 # endif
2381 
2382 # define YYDPRINTF(Args)                        \
2383 do {                                            \
2384   if (yydebug)                                  \
2385     YYFPRINTF Args;                             \
2386 } while (0)
2387 
2388 
2389 /* YYLOCATION_PRINT -- Print the location on the stream.
2390    This macro was not mandated originally: define only if we know
2391    we won't break user code: when these are the locations we know.  */
2392 
2393 # ifndef YYLOCATION_PRINT
2394 
2395 #  if defined YY_LOCATION_PRINT
2396 
2397    /* Temporary convenience wrapper in case some people defined the
2398       undocumented and private YY_LOCATION_PRINT macros.  */
2399 #   define YYLOCATION_PRINT(File, Loc)  YY_LOCATION_PRINT(File, *(Loc))
2400 
2401 #  elif defined REGEXP_PARSER_LTYPE_IS_TRIVIAL && REGEXP_PARSER_LTYPE_IS_TRIVIAL
2402 
2403 /* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
2404 
2405 YY_ATTRIBUTE_UNUSED
2406 static int
yy_location_print_(FILE * yyo,YYLTYPE const * const yylocp)2407 yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
2408 {
2409   int res = 0;
2410   int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
2411   if (0 <= yylocp->first_line)
2412     {
2413       res += YYFPRINTF (yyo, "%d", yylocp->first_line);
2414       if (0 <= yylocp->first_column)
2415         res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
2416     }
2417   if (0 <= yylocp->last_line)
2418     {
2419       if (yylocp->first_line < yylocp->last_line)
2420         {
2421           res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
2422           if (0 <= end_col)
2423             res += YYFPRINTF (yyo, ".%d", end_col);
2424         }
2425       else if (0 <= end_col && yylocp->first_column < end_col)
2426         res += YYFPRINTF (yyo, "-%d", end_col);
2427     }
2428   return res;
2429 }
2430 
2431 #   define YYLOCATION_PRINT  yy_location_print_
2432 
2433     /* Temporary convenience wrapper in case some people defined the
2434        undocumented and private YY_LOCATION_PRINT macros.  */
2435 #   define YY_LOCATION_PRINT(File, Loc)  YYLOCATION_PRINT(File, &(Loc))
2436 
2437 #  else
2438 
2439 #   define YYLOCATION_PRINT(File, Loc) ((void) 0)
2440     /* Temporary convenience wrapper in case some people defined the
2441        undocumented and private YY_LOCATION_PRINT macros.  */
2442 #   define YY_LOCATION_PRINT  YYLOCATION_PRINT
2443 
2444 #  endif
2445 # endif /* !defined YYLOCATION_PRINT */
2446 
2447 
2448 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
2449 do {                                                                      \
2450   if (yydebug)                                                            \
2451     {                                                                     \
2452       YYFPRINTF (stderr, "%s ", Title);                                   \
2453       yy_symbol_print (stderr,                                            \
2454                   Kind, Value, Location, lexer, instance, arg); \
2455       YYFPRINTF (stderr, "\n");                                           \
2456     }                                                                     \
2457 } while (0)
2458 
2459 
2460 /*-----------------------------------.
2461 | Print this symbol's value on YYO.  |
2462 `-----------------------------------*/
2463 
2464 static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2465 yy_symbol_value_print (FILE *yyo,
2466                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2467 {
2468   FILE *yyoutput = yyo;
2469   YY_USE (yyoutput);
2470   YY_USE (yylocationp);
2471   YY_USE (lexer);
2472   YY_USE (instance);
2473   YY_USE (arg);
2474   if (!yyvaluep)
2475     return;
2476   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2477   YY_USE (yykind);
2478   YY_IGNORE_MAYBE_UNINITIALIZED_END
2479 }
2480 
2481 
2482 /*---------------------------.
2483 | Print this symbol on YYO.  |
2484 `---------------------------*/
2485 
2486 static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2487 yy_symbol_print (FILE *yyo,
2488                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2489 {
2490   YYFPRINTF (yyo, "%s %s (",
2491              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
2492 
2493   YYLOCATION_PRINT (yyo, yylocationp);
2494   YYFPRINTF (yyo, ": ");
2495   yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, lexer, instance, arg);
2496   YYFPRINTF (yyo, ")");
2497 }
2498 
2499 /*------------------------------------------------------------------.
2500 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2501 | TOP (included).                                                   |
2502 `------------------------------------------------------------------*/
2503 
2504 static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)2505 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2506 {
2507   YYFPRINTF (stderr, "Stack now");
2508   for (; yybottom <= yytop; yybottom++)
2509     {
2510       int yybot = *yybottom;
2511       YYFPRINTF (stderr, " %d", yybot);
2512     }
2513   YYFPRINTF (stderr, "\n");
2514 }
2515 
2516 # define YY_STACK_PRINT(Bottom, Top)                            \
2517 do {                                                            \
2518   if (yydebug)                                                  \
2519     yy_stack_print ((Bottom), (Top));                           \
2520 } while (0)
2521 
2522 
2523 /*------------------------------------------------.
2524 | Report that the YYRULE is going to be reduced.  |
2525 `------------------------------------------------*/
2526 
2527 static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,YYLTYPE * yylsp,int yyrule,CfgLexer * lexer,LogParser ** instance,gpointer arg)2528 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
2529                  int yyrule, CfgLexer *lexer, LogParser **instance, gpointer arg)
2530 {
2531   int yylno = yyrline[yyrule];
2532   int yynrhs = yyr2[yyrule];
2533   int yyi;
2534   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2535              yyrule - 1, yylno);
2536   /* The symbols being reduced.  */
2537   for (yyi = 0; yyi < yynrhs; yyi++)
2538     {
2539       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2540       yy_symbol_print (stderr,
2541                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
2542                        &yyvsp[(yyi + 1) - (yynrhs)],
2543                        &(yylsp[(yyi + 1) - (yynrhs)]), lexer, instance, arg);
2544       YYFPRINTF (stderr, "\n");
2545     }
2546 }
2547 
2548 # define YY_REDUCE_PRINT(Rule)          \
2549 do {                                    \
2550   if (yydebug)                          \
2551     yy_reduce_print (yyssp, yyvsp, yylsp, Rule, lexer, instance, arg); \
2552 } while (0)
2553 
2554 /* Nonzero means print parse trace.  It is left uninitialized so that
2555    multiple parsers can coexist.  */
2556 int yydebug;
2557 #else /* !REGEXP_PARSER_DEBUG */
2558 # define YYDPRINTF(Args) ((void) 0)
2559 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
2560 # define YY_STACK_PRINT(Bottom, Top)
2561 # define YY_REDUCE_PRINT(Rule)
2562 #endif /* !REGEXP_PARSER_DEBUG */
2563 
2564 
2565 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2566 #ifndef YYINITDEPTH
2567 # define YYINITDEPTH 200
2568 #endif
2569 
2570 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2571    if the built-in stack extension method is used).
2572 
2573    Do not make this value too large; the results are undefined if
2574    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2575    evaluated with infinite-precision integer arithmetic.  */
2576 
2577 #ifndef YYMAXDEPTH
2578 # define YYMAXDEPTH 10000
2579 #endif
2580 
2581 
2582 /* Context of a parse error.  */
2583 typedef struct
2584 {
2585   yy_state_t *yyssp;
2586   yysymbol_kind_t yytoken;
2587   YYLTYPE *yylloc;
2588 } yypcontext_t;
2589 
2590 /* Put in YYARG at most YYARGN of the expected tokens given the
2591    current YYCTX, and return the number of tokens stored in YYARG.  If
2592    YYARG is null, return the number of expected tokens (guaranteed to
2593    be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
2594    Return 0 if there are more than YYARGN expected tokens, yet fill
2595    YYARG up to YYARGN. */
2596 static int
yypcontext_expected_tokens(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2597 yypcontext_expected_tokens (const yypcontext_t *yyctx,
2598                             yysymbol_kind_t yyarg[], int yyargn)
2599 {
2600   /* Actual size of YYARG. */
2601   int yycount = 0;
2602   int yyn = yypact[+*yyctx->yyssp];
2603   if (!yypact_value_is_default (yyn))
2604     {
2605       /* Start YYX at -YYN if negative to avoid negative indexes in
2606          YYCHECK.  In other words, skip the first -YYN actions for
2607          this state because they are default actions.  */
2608       int yyxbegin = yyn < 0 ? -yyn : 0;
2609       /* Stay within bounds of both yycheck and yytname.  */
2610       int yychecklim = YYLAST - yyn + 1;
2611       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2612       int yyx;
2613       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2614         if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
2615             && !yytable_value_is_error (yytable[yyx + yyn]))
2616           {
2617             if (!yyarg)
2618               ++yycount;
2619             else if (yycount == yyargn)
2620               return 0;
2621             else
2622               yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
2623           }
2624     }
2625   if (yyarg && yycount == 0 && 0 < yyargn)
2626     yyarg[0] = YYSYMBOL_YYEMPTY;
2627   return yycount;
2628 }
2629 
2630 
2631 
2632 
2633 #ifndef yystrlen
2634 # if defined __GLIBC__ && defined _STRING_H
2635 #  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
2636 # else
2637 /* Return the length of YYSTR.  */
2638 static YYPTRDIFF_T
yystrlen(const char * yystr)2639 yystrlen (const char *yystr)
2640 {
2641   YYPTRDIFF_T yylen;
2642   for (yylen = 0; yystr[yylen]; yylen++)
2643     continue;
2644   return yylen;
2645 }
2646 # endif
2647 #endif
2648 
2649 #ifndef yystpcpy
2650 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2651 #  define yystpcpy stpcpy
2652 # else
2653 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2654    YYDEST.  */
2655 static char *
yystpcpy(char * yydest,const char * yysrc)2656 yystpcpy (char *yydest, const char *yysrc)
2657 {
2658   char *yyd = yydest;
2659   const char *yys = yysrc;
2660 
2661   while ((*yyd++ = *yys++) != '\0')
2662     continue;
2663 
2664   return yyd - 1;
2665 }
2666 # endif
2667 #endif
2668 
2669 #ifndef yytnamerr
2670 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2671    quotes and backslashes, so that it's suitable for yyerror.  The
2672    heuristic is that double-quoting is unnecessary unless the string
2673    contains an apostrophe, a comma, or backslash (other than
2674    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2675    null, do not copy; instead, return the length of what the result
2676    would have been.  */
2677 static YYPTRDIFF_T
yytnamerr(char * yyres,const char * yystr)2678 yytnamerr (char *yyres, const char *yystr)
2679 {
2680   if (*yystr == '"')
2681     {
2682       YYPTRDIFF_T yyn = 0;
2683       char const *yyp = yystr;
2684       for (;;)
2685         switch (*++yyp)
2686           {
2687           case '\'':
2688           case ',':
2689             goto do_not_strip_quotes;
2690 
2691           case '\\':
2692             if (*++yyp != '\\')
2693               goto do_not_strip_quotes;
2694             else
2695               goto append;
2696 
2697           append:
2698           default:
2699             if (yyres)
2700               yyres[yyn] = *yyp;
2701             yyn++;
2702             break;
2703 
2704           case '"':
2705             if (yyres)
2706               yyres[yyn] = '\0';
2707             return yyn;
2708           }
2709     do_not_strip_quotes: ;
2710     }
2711 
2712   if (yyres)
2713     return yystpcpy (yyres, yystr) - yyres;
2714   else
2715     return yystrlen (yystr);
2716 }
2717 #endif
2718 
2719 
2720 static int
yy_syntax_error_arguments(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2721 yy_syntax_error_arguments (const yypcontext_t *yyctx,
2722                            yysymbol_kind_t yyarg[], int yyargn)
2723 {
2724   /* Actual size of YYARG. */
2725   int yycount = 0;
2726   /* There are many possibilities here to consider:
2727      - If this state is a consistent state with a default action, then
2728        the only way this function was invoked is if the default action
2729        is an error action.  In that case, don't check for expected
2730        tokens because there are none.
2731      - The only way there can be no lookahead present (in yychar) is if
2732        this state is a consistent state with a default action.  Thus,
2733        detecting the absence of a lookahead is sufficient to determine
2734        that there is no unexpected or expected token to report.  In that
2735        case, just report a simple "syntax error".
2736      - Don't assume there isn't a lookahead just because this state is a
2737        consistent state with a default action.  There might have been a
2738        previous inconsistent state, consistent state with a non-default
2739        action, or user semantic action that manipulated yychar.
2740      - Of course, the expected token list depends on states to have
2741        correct lookahead information, and it depends on the parser not
2742        to perform extra reductions after fetching a lookahead from the
2743        scanner and before detecting a syntax error.  Thus, state merging
2744        (from LALR or IELR) and default reductions corrupt the expected
2745        token list.  However, the list is correct for canonical LR with
2746        one exception: it will still contain any token that will not be
2747        accepted due to an error action in a later state.
2748   */
2749   if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
2750     {
2751       int yyn;
2752       if (yyarg)
2753         yyarg[yycount] = yyctx->yytoken;
2754       ++yycount;
2755       yyn = yypcontext_expected_tokens (yyctx,
2756                                         yyarg ? yyarg + 1 : yyarg, yyargn - 1);
2757       if (yyn == YYENOMEM)
2758         return YYENOMEM;
2759       else
2760         yycount += yyn;
2761     }
2762   return yycount;
2763 }
2764 
2765 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2766    about the unexpected token YYTOKEN for the state stack whose top is
2767    YYSSP.
2768 
2769    Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
2770    not large enough to hold the message.  In that case, also set
2771    *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
2772    required number of bytes is too large to store.  */
2773 static int
yysyntax_error(YYPTRDIFF_T * yymsg_alloc,char ** yymsg,const yypcontext_t * yyctx)2774 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2775                 const yypcontext_t *yyctx)
2776 {
2777   enum { YYARGS_MAX = 5 };
2778   /* Internationalized format string. */
2779   const char *yyformat = YY_NULLPTR;
2780   /* Arguments of yyformat: reported tokens (one for the "unexpected",
2781      one per "expected"). */
2782   yysymbol_kind_t yyarg[YYARGS_MAX];
2783   /* Cumulated lengths of YYARG.  */
2784   YYPTRDIFF_T yysize = 0;
2785 
2786   /* Actual size of YYARG. */
2787   int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
2788   if (yycount == YYENOMEM)
2789     return YYENOMEM;
2790 
2791   switch (yycount)
2792     {
2793 #define YYCASE_(N, S)                       \
2794       case N:                               \
2795         yyformat = S;                       \
2796         break
2797     default: /* Avoid compiler warnings. */
2798       YYCASE_(0, YY_("syntax error"));
2799       YYCASE_(1, YY_("syntax error, unexpected %s"));
2800       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2801       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2802       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2803       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2804 #undef YYCASE_
2805     }
2806 
2807   /* Compute error message size.  Don't count the "%s"s, but reserve
2808      room for the terminator.  */
2809   yysize = yystrlen (yyformat) - 2 * yycount + 1;
2810   {
2811     int yyi;
2812     for (yyi = 0; yyi < yycount; ++yyi)
2813       {
2814         YYPTRDIFF_T yysize1
2815           = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
2816         if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2817           yysize = yysize1;
2818         else
2819           return YYENOMEM;
2820       }
2821   }
2822 
2823   if (*yymsg_alloc < yysize)
2824     {
2825       *yymsg_alloc = 2 * yysize;
2826       if (! (yysize <= *yymsg_alloc
2827              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2828         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2829       return -1;
2830     }
2831 
2832   /* Avoid sprintf, as that infringes on the user's name space.
2833      Don't have undefined behavior even if the translation
2834      produced a string with the wrong number of "%s"s.  */
2835   {
2836     char *yyp = *yymsg;
2837     int yyi = 0;
2838     while ((*yyp = *yyformat) != '\0')
2839       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2840         {
2841           yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
2842           yyformat += 2;
2843         }
2844       else
2845         {
2846           ++yyp;
2847           ++yyformat;
2848         }
2849   }
2850   return 0;
2851 }
2852 
2853 
2854 /*-----------------------------------------------.
2855 | Release the memory associated to this symbol.  |
2856 `-----------------------------------------------*/
2857 
2858 static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep,YYLTYPE * yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2859 yydestruct (const char *yymsg,
2860             yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2861 {
2862   YY_USE (yyvaluep);
2863   YY_USE (yylocationp);
2864   YY_USE (lexer);
2865   YY_USE (instance);
2866   YY_USE (arg);
2867   if (!yymsg)
2868     yymsg = "Deleting";
2869   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
2870 
2871   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2872   switch (yykind)
2873     {
2874     case YYSYMBOL_LL_IDENTIFIER: /* LL_IDENTIFIER  */
2875 #line 313 "modules/regexp-parser/regexp-parser-grammar.y"
2876             { free(((*yyvaluep).cptr)); }
2877 #line 2878 "modules/regexp-parser/regexp-parser-grammar.c"
2878         break;
2879 
2880     case YYSYMBOL_LL_STRING: /* LL_STRING  */
2881 #line 313 "modules/regexp-parser/regexp-parser-grammar.y"
2882             { free(((*yyvaluep).cptr)); }
2883 #line 2884 "modules/regexp-parser/regexp-parser-grammar.c"
2884         break;
2885 
2886     case YYSYMBOL_LL_BLOCK: /* LL_BLOCK  */
2887 #line 313 "modules/regexp-parser/regexp-parser-grammar.y"
2888             { free(((*yyvaluep).cptr)); }
2889 #line 2890 "modules/regexp-parser/regexp-parser-grammar.c"
2890         break;
2891 
2892     case YYSYMBOL_string: /* string  */
2893 #line 313 "modules/regexp-parser/regexp-parser-grammar.y"
2894             { free(((*yyvaluep).cptr)); }
2895 #line 2896 "modules/regexp-parser/regexp-parser-grammar.c"
2896         break;
2897 
2898       default:
2899         break;
2900     }
2901   YY_IGNORE_MAYBE_UNINITIALIZED_END
2902 }
2903 
2904 
2905 
2906 
2907 
2908 
2909 /*----------.
2910 | yyparse.  |
2911 `----------*/
2912 
2913 int
yyparse(CfgLexer * lexer,LogParser ** instance,gpointer arg)2914 yyparse (CfgLexer *lexer, LogParser **instance, gpointer arg)
2915 {
2916 /* Lookahead token kind.  */
2917 int yychar;
2918 
2919 
2920 /* The semantic value of the lookahead symbol.  */
2921 /* Default value used for initialization, for pacifying older GCCs
2922    or non-GCC compilers.  */
2923 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2924 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2925 
2926 /* Location data for the lookahead symbol.  */
2927 static YYLTYPE yyloc_default
2928 # if defined REGEXP_PARSER_LTYPE_IS_TRIVIAL && REGEXP_PARSER_LTYPE_IS_TRIVIAL
2929   = { 1, 1, 1, 1 }
2930 # endif
2931 ;
2932 YYLTYPE yylloc = yyloc_default;
2933 
2934     /* Number of syntax errors so far.  */
2935     int yynerrs = 0;
2936 
2937     yy_state_fast_t yystate = 0;
2938     /* Number of tokens to shift before error messages enabled.  */
2939     int yyerrstatus = 0;
2940 
2941     /* Refer to the stacks through separate pointers, to allow yyoverflow
2942        to reallocate them elsewhere.  */
2943 
2944     /* Their size.  */
2945     YYPTRDIFF_T yystacksize = YYINITDEPTH;
2946 
2947     /* The state stack: array, bottom, top.  */
2948     yy_state_t yyssa[YYINITDEPTH];
2949     yy_state_t *yyss = yyssa;
2950     yy_state_t *yyssp = yyss;
2951 
2952     /* The semantic value stack: array, bottom, top.  */
2953     YYSTYPE yyvsa[YYINITDEPTH];
2954     YYSTYPE *yyvs = yyvsa;
2955     YYSTYPE *yyvsp = yyvs;
2956 
2957     /* The location stack: array, bottom, top.  */
2958     YYLTYPE yylsa[YYINITDEPTH];
2959     YYLTYPE *yyls = yylsa;
2960     YYLTYPE *yylsp = yyls;
2961 
2962   int yyn;
2963   /* The return value of yyparse.  */
2964   int yyresult;
2965   /* Lookahead symbol kind.  */
2966   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
2967   /* The variables used to return semantic value and location from the
2968      action routines.  */
2969   YYSTYPE yyval;
2970   YYLTYPE yyloc;
2971 
2972   /* The locations where the error started and ended.  */
2973   YYLTYPE yyerror_range[3];
2974 
2975   /* Buffer for error messages, and its allocated size.  */
2976   char yymsgbuf[128];
2977   char *yymsg = yymsgbuf;
2978   YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
2979 
2980 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2981 
2982   /* The number of symbols on the RHS of the reduced rule.
2983      Keep to zero when no symbol should be popped.  */
2984   int yylen = 0;
2985 
2986   YYDPRINTF ((stderr, "Starting parse\n"));
2987 
2988   yychar = REGEXP_PARSER_EMPTY; /* Cause a token to be read.  */
2989 
2990   yylsp[0] = yylloc;
2991   goto yysetstate;
2992 
2993 
2994 /*------------------------------------------------------------.
2995 | yynewstate -- push a new state, which is found in yystate.  |
2996 `------------------------------------------------------------*/
2997 yynewstate:
2998   /* In all cases, when you get here, the value and location stacks
2999      have just been pushed.  So pushing a state here evens the stacks.  */
3000   yyssp++;
3001 
3002 
3003 /*--------------------------------------------------------------------.
3004 | yysetstate -- set current state (the top of the stack) to yystate.  |
3005 `--------------------------------------------------------------------*/
3006 yysetstate:
3007   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3008   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
3009   YY_IGNORE_USELESS_CAST_BEGIN
3010   *yyssp = YY_CAST (yy_state_t, yystate);
3011   YY_IGNORE_USELESS_CAST_END
3012   YY_STACK_PRINT (yyss, yyssp);
3013 
3014   if (yyss + yystacksize - 1 <= yyssp)
3015 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
3016     YYNOMEM;
3017 #else
3018     {
3019       /* Get the current used size of the three stacks, in elements.  */
3020       YYPTRDIFF_T yysize = yyssp - yyss + 1;
3021 
3022 # if defined yyoverflow
3023       {
3024         /* Give user a chance to reallocate the stack.  Use copies of
3025            these so that the &'s don't force the real ones into
3026            memory.  */
3027         yy_state_t *yyss1 = yyss;
3028         YYSTYPE *yyvs1 = yyvs;
3029         YYLTYPE *yyls1 = yyls;
3030 
3031         /* Each stack pointer address is followed by the size of the
3032            data in use in that stack, in bytes.  This used to be a
3033            conditional around just the two extra args, but that might
3034            be undefined if yyoverflow is a macro.  */
3035         yyoverflow (YY_("memory exhausted"),
3036                     &yyss1, yysize * YYSIZEOF (*yyssp),
3037                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
3038                     &yyls1, yysize * YYSIZEOF (*yylsp),
3039                     &yystacksize);
3040         yyss = yyss1;
3041         yyvs = yyvs1;
3042         yyls = yyls1;
3043       }
3044 # else /* defined YYSTACK_RELOCATE */
3045       /* Extend the stack our own way.  */
3046       if (YYMAXDEPTH <= yystacksize)
3047         YYNOMEM;
3048       yystacksize *= 2;
3049       if (YYMAXDEPTH < yystacksize)
3050         yystacksize = YYMAXDEPTH;
3051 
3052       {
3053         yy_state_t *yyss1 = yyss;
3054         union yyalloc *yyptr =
3055           YY_CAST (union yyalloc *,
3056                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
3057         if (! yyptr)
3058           YYNOMEM;
3059         YYSTACK_RELOCATE (yyss_alloc, yyss);
3060         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3061         YYSTACK_RELOCATE (yyls_alloc, yyls);
3062 #  undef YYSTACK_RELOCATE
3063         if (yyss1 != yyssa)
3064           YYSTACK_FREE (yyss1);
3065       }
3066 # endif
3067 
3068       yyssp = yyss + yysize - 1;
3069       yyvsp = yyvs + yysize - 1;
3070       yylsp = yyls + yysize - 1;
3071 
3072       YY_IGNORE_USELESS_CAST_BEGIN
3073       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3074                   YY_CAST (long, yystacksize)));
3075       YY_IGNORE_USELESS_CAST_END
3076 
3077       if (yyss + yystacksize - 1 <= yyssp)
3078         YYABORT;
3079     }
3080 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3081 
3082 
3083   if (yystate == YYFINAL)
3084     YYACCEPT;
3085 
3086   goto yybackup;
3087 
3088 
3089 /*-----------.
3090 | yybackup.  |
3091 `-----------*/
3092 yybackup:
3093   /* Do appropriate processing given the current state.  Read a
3094      lookahead token if we need one and don't already have one.  */
3095 
3096   /* First try to decide what to do without reference to lookahead token.  */
3097   yyn = yypact[yystate];
3098   if (yypact_value_is_default (yyn))
3099     goto yydefault;
3100 
3101   /* Not known => get a lookahead token if don't already have one.  */
3102 
3103   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
3104   if (yychar == REGEXP_PARSER_EMPTY)
3105     {
3106       YYDPRINTF ((stderr, "Reading a token\n"));
3107       yychar = yylex (&yylval, &yylloc, lexer);
3108     }
3109 
3110   if (yychar <= REGEXP_PARSER_EOF)
3111     {
3112       yychar = REGEXP_PARSER_EOF;
3113       yytoken = YYSYMBOL_YYEOF;
3114       YYDPRINTF ((stderr, "Now at end of input.\n"));
3115     }
3116   else if (yychar == REGEXP_PARSER_error)
3117     {
3118       /* The scanner already issued an error message, process directly
3119          to error recovery.  But do not keep the error token as
3120          lookahead, it is too special and may lead us to an endless
3121          loop in error recovery. */
3122       yychar = REGEXP_PARSER_UNDEF;
3123       yytoken = YYSYMBOL_YYerror;
3124       yyerror_range[1] = yylloc;
3125       goto yyerrlab1;
3126     }
3127   else
3128     {
3129       yytoken = YYTRANSLATE (yychar);
3130       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3131     }
3132 
3133   /* If the proper action on seeing token YYTOKEN is to reduce or to
3134      detect an error, take that action.  */
3135   yyn += yytoken;
3136   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3137     goto yydefault;
3138   yyn = yytable[yyn];
3139   if (yyn <= 0)
3140     {
3141       if (yytable_value_is_error (yyn))
3142         goto yyerrlab;
3143       yyn = -yyn;
3144       goto yyreduce;
3145     }
3146 
3147   /* Count tokens shifted since error; after three, turn off error
3148      status.  */
3149   if (yyerrstatus)
3150     yyerrstatus--;
3151 
3152   /* Shift the lookahead token.  */
3153   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3154   yystate = yyn;
3155   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3156   *++yyvsp = yylval;
3157   YY_IGNORE_MAYBE_UNINITIALIZED_END
3158   *++yylsp = yylloc;
3159 
3160   /* Discard the shifted token.  */
3161   yychar = REGEXP_PARSER_EMPTY;
3162   goto yynewstate;
3163 
3164 
3165 /*-----------------------------------------------------------.
3166 | yydefault -- do the default action for the current state.  |
3167 `-----------------------------------------------------------*/
3168 yydefault:
3169   yyn = yydefact[yystate];
3170   if (yyn == 0)
3171     goto yyerrlab;
3172   goto yyreduce;
3173 
3174 
3175 /*-----------------------------.
3176 | yyreduce -- do a reduction.  |
3177 `-----------------------------*/
3178 yyreduce:
3179   /* yyn is the number of a rule to reduce with.  */
3180   yylen = yyr2[yyn];
3181 
3182   /* If YYLEN is nonzero, implement the default value of the action:
3183      '$$ = $1'.
3184 
3185      Otherwise, the following line sets YYVAL to garbage.
3186      This behavior is undocumented and Bison
3187      users should not rely upon it.  Assigning to YYVAL
3188      unconditionally makes the parser a bit smaller, and it avoids a
3189      GCC warning that YYVAL may be used uninitialized.  */
3190   yyval = yyvsp[1-yylen];
3191 
3192   /* Default location. */
3193   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3194   yyerror_range[1] = yyloc;
3195   YY_REDUCE_PRINT (yyn);
3196   switch (yyn)
3197     {
3198   case 2: /* start: LL_CONTEXT_PARSER parser_expr_regexp  */
3199 #line 403 "modules/regexp-parser/regexp-parser-grammar.y"
3200                                                                 { YYACCEPT; }
3201 #line 3202 "modules/regexp-parser/regexp-parser-grammar.c"
3202     break;
3203 
3204   case 3: /* $@1: %empty  */
3205 #line 408 "modules/regexp-parser/regexp-parser-grammar.y"
3206           {
3207 	    last_parser = *instance = (LogParser *) regexp_parser_new(configuration);
3208 	  }
3209 #line 3210 "modules/regexp-parser/regexp-parser-grammar.c"
3210     break;
3211 
3212   case 4: /* parser_expr_regexp: KW_REGEXP_PARSER '(' $@1 parser_regexp_opts ')'  */
3213 #line 412 "modules/regexp-parser/regexp-parser-grammar.y"
3214           {
3215 		GError *error = NULL;
3216 
3217 		CHECK_ERROR_GERROR(regexp_parser_compile(last_parser, &error), (yyloc), error, "compiling the regexp failed");
3218 		(yyval.ptr) = last_parser;
3219 	  }
3220 #line 3221 "modules/regexp-parser/regexp-parser-grammar.c"
3221     break;
3222 
3223   case 7: /* $@2: %empty  */
3224 #line 426 "modules/regexp-parser/regexp-parser-grammar.y"
3225           { last_matcher_options = regexp_parser_get_matcher_options(last_parser); }
3226 #line 3227 "modules/regexp-parser/regexp-parser-grammar.c"
3227     break;
3228 
3229   case 9: /* parser_regexp_opt: KW_PREFIX '(' string ')'  */
3230 #line 427 "modules/regexp-parser/regexp-parser-grammar.y"
3231                                                 { regexp_parser_set_prefix(last_parser, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3232 #line 3233 "modules/regexp-parser/regexp-parser-grammar.c"
3233     break;
3234 
3235   case 10: /* parser_regexp_opt: KW_PATTERNS '(' string_list ')'  */
3236 #line 428 "modules/regexp-parser/regexp-parser-grammar.y"
3237                                                 { regexp_parser_set_patterns(last_parser, (yyvsp[-1].ptr)); }
3238 #line 3239 "modules/regexp-parser/regexp-parser-grammar.c"
3239     break;
3240 
3241   case 14: /* string_list: string_list_build  */
3242 #line 794 "modules/regexp-parser/regexp-parser-grammar.y"
3243                                                 { (yyval.ptr) = (yyvsp[0].ptr); }
3244 #line 3245 "modules/regexp-parser/regexp-parser-grammar.c"
3245     break;
3246 
3247   case 15: /* string_list_build: string string_list_build  */
3248 #line 798 "modules/regexp-parser/regexp-parser-grammar.y"
3249                                                 { (yyval.ptr) = g_list_prepend((yyvsp[0].ptr), g_strdup((yyvsp[-1].cptr))); free((yyvsp[-1].cptr)); }
3250 #line 3251 "modules/regexp-parser/regexp-parser-grammar.c"
3251     break;
3252 
3253   case 16: /* string_list_build: %empty  */
3254 #line 799 "modules/regexp-parser/regexp-parser-grammar.y"
3255                                                 { (yyval.ptr) = NULL; }
3256 #line 3257 "modules/regexp-parser/regexp-parser-grammar.c"
3257     break;
3258 
3259   case 17: /* parser_opt: KW_TEMPLATE '(' string ')'  */
3260 #line 831 "modules/regexp-parser/regexp-parser-grammar.y"
3261                                                 {
3262                                                   LogTemplate *template;
3263                                                   GError *error = NULL;
3264 
3265                                                   template = cfg_tree_check_inline_template(&configuration->tree, (yyvsp[-1].cptr), &error);
3266                                                   CHECK_ERROR_GERROR(template != NULL, (yylsp[-1]), error, "Error compiling template");
3267                                                   log_parser_set_template(last_parser, template);
3268                                                   free((yyvsp[-1].cptr));
3269                                                 }
3270 #line 3271 "modules/regexp-parser/regexp-parser-grammar.c"
3271     break;
3272 
3273   case 18: /* matcher_option: KW_TYPE '(' string ')'  */
3274 #line 1097 "modules/regexp-parser/regexp-parser-grammar.y"
3275                                                 { CHECK_ERROR(log_matcher_options_set_type(last_matcher_options, (yyvsp[-1].cptr)), (yylsp[-1]), "unknown matcher type \"%s\"", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3276 #line 3277 "modules/regexp-parser/regexp-parser-grammar.c"
3277     break;
3278 
3279   case 20: /* matcher_flags: string matcher_flags  */
3280 #line 1102 "modules/regexp-parser/regexp-parser-grammar.y"
3281                                                 { CHECK_ERROR(log_matcher_options_process_flag(last_matcher_options, (yyvsp[-1].cptr)), (yylsp[-1]), "unknown matcher flag \"%s\"", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3282 #line 3283 "modules/regexp-parser/regexp-parser-grammar.c"
3283     break;
3284 
3285 
3286 #line 3287 "modules/regexp-parser/regexp-parser-grammar.c"
3287 
3288       default: break;
3289     }
3290   /* User semantic actions sometimes alter yychar, and that requires
3291      that yytoken be updated with the new translation.  We take the
3292      approach of translating immediately before every use of yytoken.
3293      One alternative is translating here after every semantic action,
3294      but that translation would be missed if the semantic action invokes
3295      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3296      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
3297      incorrect destructor might then be invoked immediately.  In the
3298      case of YYERROR or YYBACKUP, subsequent parser actions might lead
3299      to an incorrect destructor call or verbose syntax error message
3300      before the lookahead is translated.  */
3301   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
3302 
3303   YYPOPSTACK (yylen);
3304   yylen = 0;
3305 
3306   *++yyvsp = yyval;
3307   *++yylsp = yyloc;
3308 
3309   /* Now 'shift' the result of the reduction.  Determine what state
3310      that goes to, based on the state we popped back to and the rule
3311      number reduced by.  */
3312   {
3313     const int yylhs = yyr1[yyn] - YYNTOKENS;
3314     const int yyi = yypgoto[yylhs] + *yyssp;
3315     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3316                ? yytable[yyi]
3317                : yydefgoto[yylhs]);
3318   }
3319 
3320   goto yynewstate;
3321 
3322 
3323 /*--------------------------------------.
3324 | yyerrlab -- here on detecting error.  |
3325 `--------------------------------------*/
3326 yyerrlab:
3327   /* Make sure we have latest lookahead translation.  See comments at
3328      user semantic actions for why this is necessary.  */
3329   yytoken = yychar == REGEXP_PARSER_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
3330   /* If not already recovering from an error, report this error.  */
3331   if (!yyerrstatus)
3332     {
3333       ++yynerrs;
3334       {
3335         yypcontext_t yyctx
3336           = {yyssp, yytoken, &yylloc};
3337         char const *yymsgp = YY_("syntax error");
3338         int yysyntax_error_status;
3339         yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3340         if (yysyntax_error_status == 0)
3341           yymsgp = yymsg;
3342         else if (yysyntax_error_status == -1)
3343           {
3344             if (yymsg != yymsgbuf)
3345               YYSTACK_FREE (yymsg);
3346             yymsg = YY_CAST (char *,
3347                              YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
3348             if (yymsg)
3349               {
3350                 yysyntax_error_status
3351                   = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3352                 yymsgp = yymsg;
3353               }
3354             else
3355               {
3356                 yymsg = yymsgbuf;
3357                 yymsg_alloc = sizeof yymsgbuf;
3358                 yysyntax_error_status = YYENOMEM;
3359               }
3360           }
3361         yyerror (&yylloc, lexer, instance, arg, yymsgp);
3362         if (yysyntax_error_status == YYENOMEM)
3363           YYNOMEM;
3364       }
3365     }
3366 
3367   yyerror_range[1] = yylloc;
3368   if (yyerrstatus == 3)
3369     {
3370       /* If just tried and failed to reuse lookahead token after an
3371          error, discard it.  */
3372 
3373       if (yychar <= REGEXP_PARSER_EOF)
3374         {
3375           /* Return failure if at end of input.  */
3376           if (yychar == REGEXP_PARSER_EOF)
3377             YYABORT;
3378         }
3379       else
3380         {
3381           yydestruct ("Error: discarding",
3382                       yytoken, &yylval, &yylloc, lexer, instance, arg);
3383           yychar = REGEXP_PARSER_EMPTY;
3384         }
3385     }
3386 
3387   /* Else will try to reuse lookahead token after shifting the error
3388      token.  */
3389   goto yyerrlab1;
3390 
3391 
3392 /*---------------------------------------------------.
3393 | yyerrorlab -- error raised explicitly by YYERROR.  |
3394 `---------------------------------------------------*/
3395 yyerrorlab:
3396   /* Pacify compilers when the user code never invokes YYERROR and the
3397      label yyerrorlab therefore never appears in user code.  */
3398   if (0)
3399     YYERROR;
3400   ++yynerrs;
3401 
3402   /* Do not reclaim the symbols of the rule whose action triggered
3403      this YYERROR.  */
3404   YYPOPSTACK (yylen);
3405   yylen = 0;
3406   YY_STACK_PRINT (yyss, yyssp);
3407   yystate = *yyssp;
3408   goto yyerrlab1;
3409 
3410 
3411 /*-------------------------------------------------------------.
3412 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
3413 `-------------------------------------------------------------*/
3414 yyerrlab1:
3415   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3416 
3417   /* Pop stack until we find a state that shifts the error token.  */
3418   for (;;)
3419     {
3420       yyn = yypact[yystate];
3421       if (!yypact_value_is_default (yyn))
3422         {
3423           yyn += YYSYMBOL_YYerror;
3424           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
3425             {
3426               yyn = yytable[yyn];
3427               if (0 < yyn)
3428                 break;
3429             }
3430         }
3431 
3432       /* Pop the current state because it cannot handle the error token.  */
3433       if (yyssp == yyss)
3434         YYABORT;
3435 
3436       yyerror_range[1] = *yylsp;
3437       yydestruct ("Error: popping",
3438                   YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, lexer, instance, arg);
3439       YYPOPSTACK (1);
3440       yystate = *yyssp;
3441       YY_STACK_PRINT (yyss, yyssp);
3442     }
3443 
3444   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3445   *++yyvsp = yylval;
3446   YY_IGNORE_MAYBE_UNINITIALIZED_END
3447 
3448   yyerror_range[2] = yylloc;
3449   ++yylsp;
3450   YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
3451 
3452   /* Shift the error token.  */
3453   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
3454 
3455   yystate = yyn;
3456   goto yynewstate;
3457 
3458 
3459 /*-------------------------------------.
3460 | yyacceptlab -- YYACCEPT comes here.  |
3461 `-------------------------------------*/
3462 yyacceptlab:
3463   yyresult = 0;
3464   goto yyreturnlab;
3465 
3466 
3467 /*-----------------------------------.
3468 | yyabortlab -- YYABORT comes here.  |
3469 `-----------------------------------*/
3470 yyabortlab:
3471   yyresult = 1;
3472   goto yyreturnlab;
3473 
3474 
3475 /*-----------------------------------------------------------.
3476 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
3477 `-----------------------------------------------------------*/
3478 yyexhaustedlab:
3479   yyerror (&yylloc, lexer, instance, arg, YY_("memory exhausted"));
3480   yyresult = 2;
3481   goto yyreturnlab;
3482 
3483 
3484 /*----------------------------------------------------------.
3485 | yyreturnlab -- parsing is finished, clean up and return.  |
3486 `----------------------------------------------------------*/
3487 yyreturnlab:
3488   if (yychar != REGEXP_PARSER_EMPTY)
3489     {
3490       /* Make sure we have latest lookahead translation.  See comments at
3491          user semantic actions for why this is necessary.  */
3492       yytoken = YYTRANSLATE (yychar);
3493       yydestruct ("Cleanup: discarding lookahead",
3494                   yytoken, &yylval, &yylloc, lexer, instance, arg);
3495     }
3496   /* Do not reclaim the symbols of the rule whose action triggered
3497      this YYABORT or YYACCEPT.  */
3498   YYPOPSTACK (yylen);
3499   YY_STACK_PRINT (yyss, yyssp);
3500   while (yyssp != yyss)
3501     {
3502       yydestruct ("Cleanup: popping",
3503                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, lexer, instance, arg);
3504       YYPOPSTACK (1);
3505     }
3506 #ifndef yyoverflow
3507   if (yyss != yyssa)
3508     YYSTACK_FREE (yyss);
3509 #endif
3510   if (yymsg != yymsgbuf)
3511     YYSTACK_FREE (yymsg);
3512   return yyresult;
3513 }
3514 
3515 #line 1197 "modules/regexp-parser/regexp-parser-grammar.y"
3516 
3517