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/csvparser/csvparser-grammar.y"
68 
69 #include "csvparser-parser.h"
70 
71 
72 #line 73 "modules/csvparser/csvparser-grammar.c"
73 /* Substitute the type names.  */
74 #define YYSTYPE         CSVPARSER_STYPE
75 #define YYLTYPE         CSVPARSER_LTYPE
76 /* Substitute the variable and function names.  */
77 #define yyparse         csvparser_parse
78 #define yylex           csvparser_lex
79 #define yyerror         csvparser_error
80 #define yydebug         csvparser_debug
81 #define yynerrs         csvparser_nerrs
82 
83 
84 # ifndef YY_CAST
85 #  ifdef __cplusplus
86 #   define YY_CAST(Type, Val) static_cast<Type> (Val)
87 #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
88 #  else
89 #   define YY_CAST(Type, Val) ((Type) (Val))
90 #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
91 #  endif
92 # endif
93 # ifndef YY_NULLPTR
94 #  if defined __cplusplus
95 #   if 201103L <= __cplusplus
96 #    define YY_NULLPTR nullptr
97 #   else
98 #    define YY_NULLPTR 0
99 #   endif
100 #  else
101 #   define YY_NULLPTR ((void*)0)
102 #  endif
103 # endif
104 
105 /* Use api.header.include to #include this header
106    instead of duplicating it here.  */
107 #ifndef YY_CSVPARSER_MODULES_CSVPARSER_CSVPARSER_GRAMMAR_H_INCLUDED
108 # define YY_CSVPARSER_MODULES_CSVPARSER_CSVPARSER_GRAMMAR_H_INCLUDED
109 /* Debug traces.  */
110 #ifndef CSVPARSER_DEBUG
111 # if defined YYDEBUG
112 #if YYDEBUG
113 #   define CSVPARSER_DEBUG 1
114 #  else
115 #   define CSVPARSER_DEBUG 0
116 #  endif
117 # else /* ! defined YYDEBUG */
118 #  define CSVPARSER_DEBUG 0
119 # endif /* ! defined YYDEBUG */
120 #endif  /* ! defined CSVPARSER_DEBUG */
121 #if CSVPARSER_DEBUG
122 extern int csvparser_debug;
123 #endif
124 
125 /* Token kinds.  */
126 #ifndef CSVPARSER_TOKENTYPE
127 # define CSVPARSER_TOKENTYPE
128   enum csvparser_tokentype
129   {
130     CSVPARSER_EMPTY = -2,
131     CSVPARSER_EOF = 0,             /* "end of file"  */
132     CSVPARSER_error = 256,         /* error  */
133     CSVPARSER_UNDEF = 10514,       /* "invalid token"  */
134     LL_CONTEXT_ROOT = 1,           /* LL_CONTEXT_ROOT  */
135     LL_CONTEXT_DESTINATION = 2,    /* LL_CONTEXT_DESTINATION  */
136     LL_CONTEXT_SOURCE = 3,         /* LL_CONTEXT_SOURCE  */
137     LL_CONTEXT_PARSER = 4,         /* LL_CONTEXT_PARSER  */
138     LL_CONTEXT_REWRITE = 5,        /* LL_CONTEXT_REWRITE  */
139     LL_CONTEXT_FILTER = 6,         /* LL_CONTEXT_FILTER  */
140     LL_CONTEXT_LOG = 7,            /* LL_CONTEXT_LOG  */
141     LL_CONTEXT_BLOCK_DEF = 8,      /* LL_CONTEXT_BLOCK_DEF  */
142     LL_CONTEXT_BLOCK_REF = 9,      /* LL_CONTEXT_BLOCK_REF  */
143     LL_CONTEXT_BLOCK_CONTENT = 10, /* LL_CONTEXT_BLOCK_CONTENT  */
144     LL_CONTEXT_BLOCK_ARG = 11,     /* LL_CONTEXT_BLOCK_ARG  */
145     LL_CONTEXT_PRAGMA = 12,        /* LL_CONTEXT_PRAGMA  */
146     LL_CONTEXT_FORMAT = 13,        /* LL_CONTEXT_FORMAT  */
147     LL_CONTEXT_TEMPLATE_FUNC = 14, /* LL_CONTEXT_TEMPLATE_FUNC  */
148     LL_CONTEXT_INNER_DEST = 15,    /* LL_CONTEXT_INNER_DEST  */
149     LL_CONTEXT_INNER_SRC = 16,     /* LL_CONTEXT_INNER_SRC  */
150     LL_CONTEXT_CLIENT_PROTO = 17,  /* LL_CONTEXT_CLIENT_PROTO  */
151     LL_CONTEXT_SERVER_PROTO = 18,  /* LL_CONTEXT_SERVER_PROTO  */
152     LL_CONTEXT_OPTIONS = 19,       /* LL_CONTEXT_OPTIONS  */
153     LL_CONTEXT_CONFIG = 20,        /* LL_CONTEXT_CONFIG  */
154     LL_CONTEXT_MAX = 21,           /* LL_CONTEXT_MAX  */
155     KW_SOURCE = 10000,             /* KW_SOURCE  */
156     KW_FILTER = 10001,             /* KW_FILTER  */
157     KW_PARSER = 10002,             /* KW_PARSER  */
158     KW_DESTINATION = 10003,        /* KW_DESTINATION  */
159     KW_LOG = 10004,                /* KW_LOG  */
160     KW_OPTIONS = 10005,            /* KW_OPTIONS  */
161     KW_INCLUDE = 10006,            /* KW_INCLUDE  */
162     KW_BLOCK = 10007,              /* KW_BLOCK  */
163     KW_JUNCTION = 10008,           /* KW_JUNCTION  */
164     KW_CHANNEL = 10009,            /* KW_CHANNEL  */
165     KW_IF = 10010,                 /* KW_IF  */
166     KW_ELSE = 10011,               /* KW_ELSE  */
167     KW_ELIF = 10012,               /* KW_ELIF  */
168     KW_INTERNAL = 10020,           /* KW_INTERNAL  */
169     KW_SYSLOG = 10060,             /* KW_SYSLOG  */
170     KW_MARK_FREQ = 10071,          /* KW_MARK_FREQ  */
171     KW_STATS_FREQ = 10072,         /* KW_STATS_FREQ  */
172     KW_STATS_LEVEL = 10073,        /* KW_STATS_LEVEL  */
173     KW_STATS_LIFETIME = 10074,     /* KW_STATS_LIFETIME  */
174     KW_FLUSH_LINES = 10075,        /* KW_FLUSH_LINES  */
175     KW_SUPPRESS = 10076,           /* KW_SUPPRESS  */
176     KW_FLUSH_TIMEOUT = 10077,      /* KW_FLUSH_TIMEOUT  */
177     KW_LOG_MSG_SIZE = 10078,       /* KW_LOG_MSG_SIZE  */
178     KW_FILE_TEMPLATE = 10079,      /* KW_FILE_TEMPLATE  */
179     KW_PROTO_TEMPLATE = 10080,     /* KW_PROTO_TEMPLATE  */
180     KW_MARK_MODE = 10081,          /* KW_MARK_MODE  */
181     KW_ENCODING = 10082,           /* KW_ENCODING  */
182     KW_TYPE = 10083,               /* KW_TYPE  */
183     KW_STATS_MAX_DYNAMIC = 10084,  /* KW_STATS_MAX_DYNAMIC  */
184     KW_MIN_IW_SIZE_PER_READER = 10085, /* KW_MIN_IW_SIZE_PER_READER  */
185     KW_WORKERS = 10086,            /* KW_WORKERS  */
186     KW_BATCH_LINES = 10087,        /* KW_BATCH_LINES  */
187     KW_BATCH_TIMEOUT = 10088,      /* KW_BATCH_TIMEOUT  */
188     KW_TRIM_LARGE_MESSAGES = 10089, /* KW_TRIM_LARGE_MESSAGES  */
189     KW_CHAIN_HOSTNAMES = 10090,    /* KW_CHAIN_HOSTNAMES  */
190     KW_NORMALIZE_HOSTNAMES = 10091, /* KW_NORMALIZE_HOSTNAMES  */
191     KW_KEEP_HOSTNAME = 10092,      /* KW_KEEP_HOSTNAME  */
192     KW_CHECK_HOSTNAME = 10093,     /* KW_CHECK_HOSTNAME  */
193     KW_BAD_HOSTNAME = 10094,       /* KW_BAD_HOSTNAME  */
194     KW_KEEP_TIMESTAMP = 10100,     /* KW_KEEP_TIMESTAMP  */
195     KW_USE_DNS = 10110,            /* KW_USE_DNS  */
196     KW_USE_FQDN = 10111,           /* KW_USE_FQDN  */
197     KW_CUSTOM_DOMAIN = 10112,      /* KW_CUSTOM_DOMAIN  */
198     KW_DNS_CACHE = 10120,          /* KW_DNS_CACHE  */
199     KW_DNS_CACHE_SIZE = 10121,     /* KW_DNS_CACHE_SIZE  */
200     KW_DNS_CACHE_EXPIRE = 10130,   /* KW_DNS_CACHE_EXPIRE  */
201     KW_DNS_CACHE_EXPIRE_FAILED = 10131, /* KW_DNS_CACHE_EXPIRE_FAILED  */
202     KW_DNS_CACHE_HOSTS = 10132,    /* KW_DNS_CACHE_HOSTS  */
203     KW_PERSIST_ONLY = 10140,       /* KW_PERSIST_ONLY  */
204     KW_USE_RCPTID = 10141,         /* KW_USE_RCPTID  */
205     KW_USE_UNIQID = 10142,         /* KW_USE_UNIQID  */
206     KW_TZ_CONVERT = 10150,         /* KW_TZ_CONVERT  */
207     KW_TS_FORMAT = 10151,          /* KW_TS_FORMAT  */
208     KW_FRAC_DIGITS = 10152,        /* KW_FRAC_DIGITS  */
209     KW_LOG_FIFO_SIZE = 10160,      /* KW_LOG_FIFO_SIZE  */
210     KW_LOG_FETCH_LIMIT = 10162,    /* KW_LOG_FETCH_LIMIT  */
211     KW_LOG_IW_SIZE = 10163,        /* KW_LOG_IW_SIZE  */
212     KW_LOG_PREFIX = 10164,         /* KW_LOG_PREFIX  */
213     KW_PROGRAM_OVERRIDE = 10165,   /* KW_PROGRAM_OVERRIDE  */
214     KW_HOST_OVERRIDE = 10166,      /* KW_HOST_OVERRIDE  */
215     KW_THROTTLE = 10170,           /* KW_THROTTLE  */
216     KW_THREADED = 10171,           /* KW_THREADED  */
217     KW_PASS_UNIX_CREDENTIALS = 10231, /* KW_PASS_UNIX_CREDENTIALS  */
218     KW_PERSIST_NAME = 10302,       /* KW_PERSIST_NAME  */
219     KW_READ_OLD_RECORDS = 10304,   /* KW_READ_OLD_RECORDS  */
220     KW_USE_SYSLOGNG_PID = 10305,   /* KW_USE_SYSLOGNG_PID  */
221     KW_FLAGS = 10190,              /* KW_FLAGS  */
222     KW_PAD_SIZE = 10200,           /* KW_PAD_SIZE  */
223     KW_TIME_ZONE = 10201,          /* KW_TIME_ZONE  */
224     KW_RECV_TIME_ZONE = 10202,     /* KW_RECV_TIME_ZONE  */
225     KW_SEND_TIME_ZONE = 10203,     /* KW_SEND_TIME_ZONE  */
226     KW_LOCAL_TIME_ZONE = 10204,    /* KW_LOCAL_TIME_ZONE  */
227     KW_FORMAT = 10205,             /* KW_FORMAT  */
228     KW_TRUNCATE_SIZE = 10206,      /* KW_TRUNCATE_SIZE  */
229     KW_TIME_REOPEN = 10210,        /* KW_TIME_REOPEN  */
230     KW_TIME_REAP = 10211,          /* KW_TIME_REAP  */
231     KW_TIME_SLEEP = 10212,         /* KW_TIME_SLEEP  */
232     KW_TMPL_ESCAPE = 10220,        /* KW_TMPL_ESCAPE  */
233     KW_OPTIONAL = 10230,           /* KW_OPTIONAL  */
234     KW_CREATE_DIRS = 10240,        /* KW_CREATE_DIRS  */
235     KW_OWNER = 10250,              /* KW_OWNER  */
236     KW_GROUP = 10251,              /* KW_GROUP  */
237     KW_PERM = 10252,               /* KW_PERM  */
238     KW_DIR_OWNER = 10260,          /* KW_DIR_OWNER  */
239     KW_DIR_GROUP = 10261,          /* KW_DIR_GROUP  */
240     KW_DIR_PERM = 10262,           /* KW_DIR_PERM  */
241     KW_TEMPLATE = 10270,           /* KW_TEMPLATE  */
242     KW_TEMPLATE_ESCAPE = 10271,    /* KW_TEMPLATE_ESCAPE  */
243     KW_TEMPLATE_FUNCTION = 10272,  /* KW_TEMPLATE_FUNCTION  */
244     KW_DEFAULT_FACILITY = 10300,   /* KW_DEFAULT_FACILITY  */
245     KW_DEFAULT_SEVERITY = 10301,   /* KW_DEFAULT_SEVERITY  */
246     KW_PORT = 10323,               /* KW_PORT  */
247     KW_USE_TIME_RECVD = 10340,     /* KW_USE_TIME_RECVD  */
248     KW_FACILITY = 10350,           /* KW_FACILITY  */
249     KW_SEVERITY = 10351,           /* KW_SEVERITY  */
250     KW_HOST = 10352,               /* KW_HOST  */
251     KW_MATCH = 10353,              /* KW_MATCH  */
252     KW_MESSAGE = 10354,            /* KW_MESSAGE  */
253     KW_NETMASK = 10355,            /* KW_NETMASK  */
254     KW_TAGS = 10356,               /* KW_TAGS  */
255     KW_NETMASK6 = 10357,           /* KW_NETMASK6  */
256     KW_REWRITE = 10370,            /* KW_REWRITE  */
257     KW_CONDITION = 10371,          /* KW_CONDITION  */
258     KW_VALUE = 10372,              /* KW_VALUE  */
259     KW_YES = 10380,                /* KW_YES  */
260     KW_NO = 10381,                 /* KW_NO  */
261     KW_IFDEF = 10410,              /* KW_IFDEF  */
262     KW_ENDIF = 10411,              /* KW_ENDIF  */
263     LL_DOTDOT = 10420,             /* LL_DOTDOT  */
264     LL_DOTDOTDOT = 10421,          /* LL_DOTDOTDOT  */
265     LL_PRAGMA = 10422,             /* LL_PRAGMA  */
266     LL_EOL = 10423,                /* LL_EOL  */
267     LL_ERROR = 10424,              /* LL_ERROR  */
268     LL_ARROW = 10425,              /* LL_ARROW  */
269     LL_IDENTIFIER = 10430,         /* LL_IDENTIFIER  */
270     LL_NUMBER = 10431,             /* LL_NUMBER  */
271     LL_FLOAT = 10432,              /* LL_FLOAT  */
272     LL_STRING = 10433,             /* LL_STRING  */
273     LL_TOKEN = 10434,              /* LL_TOKEN  */
274     LL_BLOCK = 10435,              /* LL_BLOCK  */
275     KW_VALUE_PAIRS = 10500,        /* KW_VALUE_PAIRS  */
276     KW_EXCLUDE = 10502,            /* KW_EXCLUDE  */
277     KW_PAIR = 10503,               /* KW_PAIR  */
278     KW_KEY = 10504,                /* KW_KEY  */
279     KW_SCOPE = 10505,              /* KW_SCOPE  */
280     KW_SHIFT = 10506,              /* KW_SHIFT  */
281     KW_SHIFT_LEVELS = 10507,       /* KW_SHIFT_LEVELS  */
282     KW_REKEY = 10508,              /* KW_REKEY  */
283     KW_ADD_PREFIX = 10509,         /* KW_ADD_PREFIX  */
284     KW_REPLACE_PREFIX = 10510,     /* KW_REPLACE_PREFIX  */
285     KW_ON_ERROR = 10511,           /* KW_ON_ERROR  */
286     KW_RETRIES = 10512,            /* KW_RETRIES  */
287     KW_FETCH_NO_DATA_DELAY = 10513, /* KW_FETCH_NO_DATA_DELAY  */
288     KW_CSV_PARSER = 10515,         /* KW_CSV_PARSER  */
289     KW_DIALECT = 10516,            /* KW_DIALECT  */
290     KW_PREFIX = 10517,             /* KW_PREFIX  */
291     KW_COLUMNS = 10518,            /* KW_COLUMNS  */
292     KW_DELIMITERS = 10519,         /* KW_DELIMITERS  */
293     KW_QUOTES = 10520,             /* KW_QUOTES  */
294     KW_QUOTE_PAIRS = 10521,        /* KW_QUOTE_PAIRS  */
295     KW_NULL = 10522,               /* KW_NULL  */
296     KW_CHARS = 10523,              /* KW_CHARS  */
297     KW_STRINGS = 10524,            /* KW_STRINGS  */
298     KW_DROP_INVALID = 10525        /* KW_DROP_INVALID  */
299   };
300   typedef enum csvparser_tokentype csvparser_token_kind_t;
301 #endif
302 /* Token kinds.  */
303 #define CSVPARSER_EMPTY -2
304 #define CSVPARSER_EOF 0
305 #define CSVPARSER_error 256
306 #define CSVPARSER_UNDEF 10514
307 #define LL_CONTEXT_ROOT 1
308 #define LL_CONTEXT_DESTINATION 2
309 #define LL_CONTEXT_SOURCE 3
310 #define LL_CONTEXT_PARSER 4
311 #define LL_CONTEXT_REWRITE 5
312 #define LL_CONTEXT_FILTER 6
313 #define LL_CONTEXT_LOG 7
314 #define LL_CONTEXT_BLOCK_DEF 8
315 #define LL_CONTEXT_BLOCK_REF 9
316 #define LL_CONTEXT_BLOCK_CONTENT 10
317 #define LL_CONTEXT_BLOCK_ARG 11
318 #define LL_CONTEXT_PRAGMA 12
319 #define LL_CONTEXT_FORMAT 13
320 #define LL_CONTEXT_TEMPLATE_FUNC 14
321 #define LL_CONTEXT_INNER_DEST 15
322 #define LL_CONTEXT_INNER_SRC 16
323 #define LL_CONTEXT_CLIENT_PROTO 17
324 #define LL_CONTEXT_SERVER_PROTO 18
325 #define LL_CONTEXT_OPTIONS 19
326 #define LL_CONTEXT_CONFIG 20
327 #define LL_CONTEXT_MAX 21
328 #define KW_SOURCE 10000
329 #define KW_FILTER 10001
330 #define KW_PARSER 10002
331 #define KW_DESTINATION 10003
332 #define KW_LOG 10004
333 #define KW_OPTIONS 10005
334 #define KW_INCLUDE 10006
335 #define KW_BLOCK 10007
336 #define KW_JUNCTION 10008
337 #define KW_CHANNEL 10009
338 #define KW_IF 10010
339 #define KW_ELSE 10011
340 #define KW_ELIF 10012
341 #define KW_INTERNAL 10020
342 #define KW_SYSLOG 10060
343 #define KW_MARK_FREQ 10071
344 #define KW_STATS_FREQ 10072
345 #define KW_STATS_LEVEL 10073
346 #define KW_STATS_LIFETIME 10074
347 #define KW_FLUSH_LINES 10075
348 #define KW_SUPPRESS 10076
349 #define KW_FLUSH_TIMEOUT 10077
350 #define KW_LOG_MSG_SIZE 10078
351 #define KW_FILE_TEMPLATE 10079
352 #define KW_PROTO_TEMPLATE 10080
353 #define KW_MARK_MODE 10081
354 #define KW_ENCODING 10082
355 #define KW_TYPE 10083
356 #define KW_STATS_MAX_DYNAMIC 10084
357 #define KW_MIN_IW_SIZE_PER_READER 10085
358 #define KW_WORKERS 10086
359 #define KW_BATCH_LINES 10087
360 #define KW_BATCH_TIMEOUT 10088
361 #define KW_TRIM_LARGE_MESSAGES 10089
362 #define KW_CHAIN_HOSTNAMES 10090
363 #define KW_NORMALIZE_HOSTNAMES 10091
364 #define KW_KEEP_HOSTNAME 10092
365 #define KW_CHECK_HOSTNAME 10093
366 #define KW_BAD_HOSTNAME 10094
367 #define KW_KEEP_TIMESTAMP 10100
368 #define KW_USE_DNS 10110
369 #define KW_USE_FQDN 10111
370 #define KW_CUSTOM_DOMAIN 10112
371 #define KW_DNS_CACHE 10120
372 #define KW_DNS_CACHE_SIZE 10121
373 #define KW_DNS_CACHE_EXPIRE 10130
374 #define KW_DNS_CACHE_EXPIRE_FAILED 10131
375 #define KW_DNS_CACHE_HOSTS 10132
376 #define KW_PERSIST_ONLY 10140
377 #define KW_USE_RCPTID 10141
378 #define KW_USE_UNIQID 10142
379 #define KW_TZ_CONVERT 10150
380 #define KW_TS_FORMAT 10151
381 #define KW_FRAC_DIGITS 10152
382 #define KW_LOG_FIFO_SIZE 10160
383 #define KW_LOG_FETCH_LIMIT 10162
384 #define KW_LOG_IW_SIZE 10163
385 #define KW_LOG_PREFIX 10164
386 #define KW_PROGRAM_OVERRIDE 10165
387 #define KW_HOST_OVERRIDE 10166
388 #define KW_THROTTLE 10170
389 #define KW_THREADED 10171
390 #define KW_PASS_UNIX_CREDENTIALS 10231
391 #define KW_PERSIST_NAME 10302
392 #define KW_READ_OLD_RECORDS 10304
393 #define KW_USE_SYSLOGNG_PID 10305
394 #define KW_FLAGS 10190
395 #define KW_PAD_SIZE 10200
396 #define KW_TIME_ZONE 10201
397 #define KW_RECV_TIME_ZONE 10202
398 #define KW_SEND_TIME_ZONE 10203
399 #define KW_LOCAL_TIME_ZONE 10204
400 #define KW_FORMAT 10205
401 #define KW_TRUNCATE_SIZE 10206
402 #define KW_TIME_REOPEN 10210
403 #define KW_TIME_REAP 10211
404 #define KW_TIME_SLEEP 10212
405 #define KW_TMPL_ESCAPE 10220
406 #define KW_OPTIONAL 10230
407 #define KW_CREATE_DIRS 10240
408 #define KW_OWNER 10250
409 #define KW_GROUP 10251
410 #define KW_PERM 10252
411 #define KW_DIR_OWNER 10260
412 #define KW_DIR_GROUP 10261
413 #define KW_DIR_PERM 10262
414 #define KW_TEMPLATE 10270
415 #define KW_TEMPLATE_ESCAPE 10271
416 #define KW_TEMPLATE_FUNCTION 10272
417 #define KW_DEFAULT_FACILITY 10300
418 #define KW_DEFAULT_SEVERITY 10301
419 #define KW_PORT 10323
420 #define KW_USE_TIME_RECVD 10340
421 #define KW_FACILITY 10350
422 #define KW_SEVERITY 10351
423 #define KW_HOST 10352
424 #define KW_MATCH 10353
425 #define KW_MESSAGE 10354
426 #define KW_NETMASK 10355
427 #define KW_TAGS 10356
428 #define KW_NETMASK6 10357
429 #define KW_REWRITE 10370
430 #define KW_CONDITION 10371
431 #define KW_VALUE 10372
432 #define KW_YES 10380
433 #define KW_NO 10381
434 #define KW_IFDEF 10410
435 #define KW_ENDIF 10411
436 #define LL_DOTDOT 10420
437 #define LL_DOTDOTDOT 10421
438 #define LL_PRAGMA 10422
439 #define LL_EOL 10423
440 #define LL_ERROR 10424
441 #define LL_ARROW 10425
442 #define LL_IDENTIFIER 10430
443 #define LL_NUMBER 10431
444 #define LL_FLOAT 10432
445 #define LL_STRING 10433
446 #define LL_TOKEN 10434
447 #define LL_BLOCK 10435
448 #define KW_VALUE_PAIRS 10500
449 #define KW_EXCLUDE 10502
450 #define KW_PAIR 10503
451 #define KW_KEY 10504
452 #define KW_SCOPE 10505
453 #define KW_SHIFT 10506
454 #define KW_SHIFT_LEVELS 10507
455 #define KW_REKEY 10508
456 #define KW_ADD_PREFIX 10509
457 #define KW_REPLACE_PREFIX 10510
458 #define KW_ON_ERROR 10511
459 #define KW_RETRIES 10512
460 #define KW_FETCH_NO_DATA_DELAY 10513
461 #define KW_CSV_PARSER 10515
462 #define KW_DIALECT 10516
463 #define KW_PREFIX 10517
464 #define KW_COLUMNS 10518
465 #define KW_DELIMITERS 10519
466 #define KW_QUOTES 10520
467 #define KW_QUOTE_PAIRS 10521
468 #define KW_NULL 10522
469 #define KW_CHARS 10523
470 #define KW_STRINGS 10524
471 #define KW_DROP_INVALID 10525
472 
473 /* Value type.  */
474 #if ! defined CSVPARSER_STYPE && ! defined CSVPARSER_STYPE_IS_DECLARED
475 typedef CFG_STYPE CSVPARSER_STYPE;
476 # define CSVPARSER_STYPE_IS_TRIVIAL 1
477 # define CSVPARSER_STYPE_IS_DECLARED 1
478 #endif
479 
480 /* Location type.  */
481 typedef CFG_LTYPE CSVPARSER_LTYPE;
482 
483 
484 
485 
486 int csvparser_parse (CfgLexer *lexer, LogParser **instance, gpointer arg);
487 
488 
489 #endif /* !YY_CSVPARSER_MODULES_CSVPARSER_CSVPARSER_GRAMMAR_H_INCLUDED  */
490 /* Symbol kind.  */
491 enum yysymbol_kind_t
492 {
493   YYSYMBOL_YYEMPTY = -2,
494   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
495   YYSYMBOL_YYerror = 1,                    /* error  */
496   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
497   YYSYMBOL_LL_CONTEXT_ROOT = 3,            /* LL_CONTEXT_ROOT  */
498   YYSYMBOL_LL_CONTEXT_DESTINATION = 4,     /* LL_CONTEXT_DESTINATION  */
499   YYSYMBOL_LL_CONTEXT_SOURCE = 5,          /* LL_CONTEXT_SOURCE  */
500   YYSYMBOL_LL_CONTEXT_PARSER = 6,          /* LL_CONTEXT_PARSER  */
501   YYSYMBOL_LL_CONTEXT_REWRITE = 7,         /* LL_CONTEXT_REWRITE  */
502   YYSYMBOL_LL_CONTEXT_FILTER = 8,          /* LL_CONTEXT_FILTER  */
503   YYSYMBOL_LL_CONTEXT_LOG = 9,             /* LL_CONTEXT_LOG  */
504   YYSYMBOL_LL_CONTEXT_BLOCK_DEF = 10,      /* LL_CONTEXT_BLOCK_DEF  */
505   YYSYMBOL_LL_CONTEXT_BLOCK_REF = 11,      /* LL_CONTEXT_BLOCK_REF  */
506   YYSYMBOL_LL_CONTEXT_BLOCK_CONTENT = 12,  /* LL_CONTEXT_BLOCK_CONTENT  */
507   YYSYMBOL_LL_CONTEXT_BLOCK_ARG = 13,      /* LL_CONTEXT_BLOCK_ARG  */
508   YYSYMBOL_LL_CONTEXT_PRAGMA = 14,         /* LL_CONTEXT_PRAGMA  */
509   YYSYMBOL_LL_CONTEXT_FORMAT = 15,         /* LL_CONTEXT_FORMAT  */
510   YYSYMBOL_LL_CONTEXT_TEMPLATE_FUNC = 16,  /* LL_CONTEXT_TEMPLATE_FUNC  */
511   YYSYMBOL_LL_CONTEXT_INNER_DEST = 17,     /* LL_CONTEXT_INNER_DEST  */
512   YYSYMBOL_LL_CONTEXT_INNER_SRC = 18,      /* LL_CONTEXT_INNER_SRC  */
513   YYSYMBOL_LL_CONTEXT_CLIENT_PROTO = 19,   /* LL_CONTEXT_CLIENT_PROTO  */
514   YYSYMBOL_LL_CONTEXT_SERVER_PROTO = 20,   /* LL_CONTEXT_SERVER_PROTO  */
515   YYSYMBOL_LL_CONTEXT_OPTIONS = 21,        /* LL_CONTEXT_OPTIONS  */
516   YYSYMBOL_LL_CONTEXT_CONFIG = 22,         /* LL_CONTEXT_CONFIG  */
517   YYSYMBOL_LL_CONTEXT_MAX = 23,            /* LL_CONTEXT_MAX  */
518   YYSYMBOL_KW_SOURCE = 24,                 /* KW_SOURCE  */
519   YYSYMBOL_KW_FILTER = 25,                 /* KW_FILTER  */
520   YYSYMBOL_KW_PARSER = 26,                 /* KW_PARSER  */
521   YYSYMBOL_KW_DESTINATION = 27,            /* KW_DESTINATION  */
522   YYSYMBOL_KW_LOG = 28,                    /* KW_LOG  */
523   YYSYMBOL_KW_OPTIONS = 29,                /* KW_OPTIONS  */
524   YYSYMBOL_KW_INCLUDE = 30,                /* KW_INCLUDE  */
525   YYSYMBOL_KW_BLOCK = 31,                  /* KW_BLOCK  */
526   YYSYMBOL_KW_JUNCTION = 32,               /* KW_JUNCTION  */
527   YYSYMBOL_KW_CHANNEL = 33,                /* KW_CHANNEL  */
528   YYSYMBOL_KW_IF = 34,                     /* KW_IF  */
529   YYSYMBOL_KW_ELSE = 35,                   /* KW_ELSE  */
530   YYSYMBOL_KW_ELIF = 36,                   /* KW_ELIF  */
531   YYSYMBOL_KW_INTERNAL = 37,               /* KW_INTERNAL  */
532   YYSYMBOL_KW_SYSLOG = 38,                 /* KW_SYSLOG  */
533   YYSYMBOL_KW_MARK_FREQ = 39,              /* KW_MARK_FREQ  */
534   YYSYMBOL_KW_STATS_FREQ = 40,             /* KW_STATS_FREQ  */
535   YYSYMBOL_KW_STATS_LEVEL = 41,            /* KW_STATS_LEVEL  */
536   YYSYMBOL_KW_STATS_LIFETIME = 42,         /* KW_STATS_LIFETIME  */
537   YYSYMBOL_KW_FLUSH_LINES = 43,            /* KW_FLUSH_LINES  */
538   YYSYMBOL_KW_SUPPRESS = 44,               /* KW_SUPPRESS  */
539   YYSYMBOL_KW_FLUSH_TIMEOUT = 45,          /* KW_FLUSH_TIMEOUT  */
540   YYSYMBOL_KW_LOG_MSG_SIZE = 46,           /* KW_LOG_MSG_SIZE  */
541   YYSYMBOL_KW_FILE_TEMPLATE = 47,          /* KW_FILE_TEMPLATE  */
542   YYSYMBOL_KW_PROTO_TEMPLATE = 48,         /* KW_PROTO_TEMPLATE  */
543   YYSYMBOL_KW_MARK_MODE = 49,              /* KW_MARK_MODE  */
544   YYSYMBOL_KW_ENCODING = 50,               /* KW_ENCODING  */
545   YYSYMBOL_KW_TYPE = 51,                   /* KW_TYPE  */
546   YYSYMBOL_KW_STATS_MAX_DYNAMIC = 52,      /* KW_STATS_MAX_DYNAMIC  */
547   YYSYMBOL_KW_MIN_IW_SIZE_PER_READER = 53, /* KW_MIN_IW_SIZE_PER_READER  */
548   YYSYMBOL_KW_WORKERS = 54,                /* KW_WORKERS  */
549   YYSYMBOL_KW_BATCH_LINES = 55,            /* KW_BATCH_LINES  */
550   YYSYMBOL_KW_BATCH_TIMEOUT = 56,          /* KW_BATCH_TIMEOUT  */
551   YYSYMBOL_KW_TRIM_LARGE_MESSAGES = 57,    /* KW_TRIM_LARGE_MESSAGES  */
552   YYSYMBOL_KW_CHAIN_HOSTNAMES = 58,        /* KW_CHAIN_HOSTNAMES  */
553   YYSYMBOL_KW_NORMALIZE_HOSTNAMES = 59,    /* KW_NORMALIZE_HOSTNAMES  */
554   YYSYMBOL_KW_KEEP_HOSTNAME = 60,          /* KW_KEEP_HOSTNAME  */
555   YYSYMBOL_KW_CHECK_HOSTNAME = 61,         /* KW_CHECK_HOSTNAME  */
556   YYSYMBOL_KW_BAD_HOSTNAME = 62,           /* KW_BAD_HOSTNAME  */
557   YYSYMBOL_KW_KEEP_TIMESTAMP = 63,         /* KW_KEEP_TIMESTAMP  */
558   YYSYMBOL_KW_USE_DNS = 64,                /* KW_USE_DNS  */
559   YYSYMBOL_KW_USE_FQDN = 65,               /* KW_USE_FQDN  */
560   YYSYMBOL_KW_CUSTOM_DOMAIN = 66,          /* KW_CUSTOM_DOMAIN  */
561   YYSYMBOL_KW_DNS_CACHE = 67,              /* KW_DNS_CACHE  */
562   YYSYMBOL_KW_DNS_CACHE_SIZE = 68,         /* KW_DNS_CACHE_SIZE  */
563   YYSYMBOL_KW_DNS_CACHE_EXPIRE = 69,       /* KW_DNS_CACHE_EXPIRE  */
564   YYSYMBOL_KW_DNS_CACHE_EXPIRE_FAILED = 70, /* KW_DNS_CACHE_EXPIRE_FAILED  */
565   YYSYMBOL_KW_DNS_CACHE_HOSTS = 71,        /* KW_DNS_CACHE_HOSTS  */
566   YYSYMBOL_KW_PERSIST_ONLY = 72,           /* KW_PERSIST_ONLY  */
567   YYSYMBOL_KW_USE_RCPTID = 73,             /* KW_USE_RCPTID  */
568   YYSYMBOL_KW_USE_UNIQID = 74,             /* KW_USE_UNIQID  */
569   YYSYMBOL_KW_TZ_CONVERT = 75,             /* KW_TZ_CONVERT  */
570   YYSYMBOL_KW_TS_FORMAT = 76,              /* KW_TS_FORMAT  */
571   YYSYMBOL_KW_FRAC_DIGITS = 77,            /* KW_FRAC_DIGITS  */
572   YYSYMBOL_KW_LOG_FIFO_SIZE = 78,          /* KW_LOG_FIFO_SIZE  */
573   YYSYMBOL_KW_LOG_FETCH_LIMIT = 79,        /* KW_LOG_FETCH_LIMIT  */
574   YYSYMBOL_KW_LOG_IW_SIZE = 80,            /* KW_LOG_IW_SIZE  */
575   YYSYMBOL_KW_LOG_PREFIX = 81,             /* KW_LOG_PREFIX  */
576   YYSYMBOL_KW_PROGRAM_OVERRIDE = 82,       /* KW_PROGRAM_OVERRIDE  */
577   YYSYMBOL_KW_HOST_OVERRIDE = 83,          /* KW_HOST_OVERRIDE  */
578   YYSYMBOL_KW_THROTTLE = 84,               /* KW_THROTTLE  */
579   YYSYMBOL_KW_THREADED = 85,               /* KW_THREADED  */
580   YYSYMBOL_KW_PASS_UNIX_CREDENTIALS = 86,  /* KW_PASS_UNIX_CREDENTIALS  */
581   YYSYMBOL_KW_PERSIST_NAME = 87,           /* KW_PERSIST_NAME  */
582   YYSYMBOL_KW_READ_OLD_RECORDS = 88,       /* KW_READ_OLD_RECORDS  */
583   YYSYMBOL_KW_USE_SYSLOGNG_PID = 89,       /* KW_USE_SYSLOGNG_PID  */
584   YYSYMBOL_KW_FLAGS = 90,                  /* KW_FLAGS  */
585   YYSYMBOL_KW_PAD_SIZE = 91,               /* KW_PAD_SIZE  */
586   YYSYMBOL_KW_TIME_ZONE = 92,              /* KW_TIME_ZONE  */
587   YYSYMBOL_KW_RECV_TIME_ZONE = 93,         /* KW_RECV_TIME_ZONE  */
588   YYSYMBOL_KW_SEND_TIME_ZONE = 94,         /* KW_SEND_TIME_ZONE  */
589   YYSYMBOL_KW_LOCAL_TIME_ZONE = 95,        /* KW_LOCAL_TIME_ZONE  */
590   YYSYMBOL_KW_FORMAT = 96,                 /* KW_FORMAT  */
591   YYSYMBOL_KW_TRUNCATE_SIZE = 97,          /* KW_TRUNCATE_SIZE  */
592   YYSYMBOL_KW_TIME_REOPEN = 98,            /* KW_TIME_REOPEN  */
593   YYSYMBOL_KW_TIME_REAP = 99,              /* KW_TIME_REAP  */
594   YYSYMBOL_KW_TIME_SLEEP = 100,            /* KW_TIME_SLEEP  */
595   YYSYMBOL_KW_TMPL_ESCAPE = 101,           /* KW_TMPL_ESCAPE  */
596   YYSYMBOL_KW_OPTIONAL = 102,              /* KW_OPTIONAL  */
597   YYSYMBOL_KW_CREATE_DIRS = 103,           /* KW_CREATE_DIRS  */
598   YYSYMBOL_KW_OWNER = 104,                 /* KW_OWNER  */
599   YYSYMBOL_KW_GROUP = 105,                 /* KW_GROUP  */
600   YYSYMBOL_KW_PERM = 106,                  /* KW_PERM  */
601   YYSYMBOL_KW_DIR_OWNER = 107,             /* KW_DIR_OWNER  */
602   YYSYMBOL_KW_DIR_GROUP = 108,             /* KW_DIR_GROUP  */
603   YYSYMBOL_KW_DIR_PERM = 109,              /* KW_DIR_PERM  */
604   YYSYMBOL_KW_TEMPLATE = 110,              /* KW_TEMPLATE  */
605   YYSYMBOL_KW_TEMPLATE_ESCAPE = 111,       /* KW_TEMPLATE_ESCAPE  */
606   YYSYMBOL_KW_TEMPLATE_FUNCTION = 112,     /* KW_TEMPLATE_FUNCTION  */
607   YYSYMBOL_KW_DEFAULT_FACILITY = 113,      /* KW_DEFAULT_FACILITY  */
608   YYSYMBOL_KW_DEFAULT_SEVERITY = 114,      /* KW_DEFAULT_SEVERITY  */
609   YYSYMBOL_KW_PORT = 115,                  /* KW_PORT  */
610   YYSYMBOL_KW_USE_TIME_RECVD = 116,        /* KW_USE_TIME_RECVD  */
611   YYSYMBOL_KW_FACILITY = 117,              /* KW_FACILITY  */
612   YYSYMBOL_KW_SEVERITY = 118,              /* KW_SEVERITY  */
613   YYSYMBOL_KW_HOST = 119,                  /* KW_HOST  */
614   YYSYMBOL_KW_MATCH = 120,                 /* KW_MATCH  */
615   YYSYMBOL_KW_MESSAGE = 121,               /* KW_MESSAGE  */
616   YYSYMBOL_KW_NETMASK = 122,               /* KW_NETMASK  */
617   YYSYMBOL_KW_TAGS = 123,                  /* KW_TAGS  */
618   YYSYMBOL_KW_NETMASK6 = 124,              /* KW_NETMASK6  */
619   YYSYMBOL_KW_REWRITE = 125,               /* KW_REWRITE  */
620   YYSYMBOL_KW_CONDITION = 126,             /* KW_CONDITION  */
621   YYSYMBOL_KW_VALUE = 127,                 /* KW_VALUE  */
622   YYSYMBOL_KW_YES = 128,                   /* KW_YES  */
623   YYSYMBOL_KW_NO = 129,                    /* KW_NO  */
624   YYSYMBOL_KW_IFDEF = 130,                 /* KW_IFDEF  */
625   YYSYMBOL_KW_ENDIF = 131,                 /* KW_ENDIF  */
626   YYSYMBOL_LL_DOTDOT = 132,                /* LL_DOTDOT  */
627   YYSYMBOL_LL_DOTDOTDOT = 133,             /* LL_DOTDOTDOT  */
628   YYSYMBOL_LL_PRAGMA = 134,                /* LL_PRAGMA  */
629   YYSYMBOL_LL_EOL = 135,                   /* LL_EOL  */
630   YYSYMBOL_LL_ERROR = 136,                 /* LL_ERROR  */
631   YYSYMBOL_LL_ARROW = 137,                 /* LL_ARROW  */
632   YYSYMBOL_LL_IDENTIFIER = 138,            /* LL_IDENTIFIER  */
633   YYSYMBOL_LL_NUMBER = 139,                /* LL_NUMBER  */
634   YYSYMBOL_LL_FLOAT = 140,                 /* LL_FLOAT  */
635   YYSYMBOL_LL_STRING = 141,                /* LL_STRING  */
636   YYSYMBOL_LL_TOKEN = 142,                 /* LL_TOKEN  */
637   YYSYMBOL_LL_BLOCK = 143,                 /* LL_BLOCK  */
638   YYSYMBOL_KW_VALUE_PAIRS = 144,           /* KW_VALUE_PAIRS  */
639   YYSYMBOL_KW_EXCLUDE = 145,               /* KW_EXCLUDE  */
640   YYSYMBOL_KW_PAIR = 146,                  /* KW_PAIR  */
641   YYSYMBOL_KW_KEY = 147,                   /* KW_KEY  */
642   YYSYMBOL_KW_SCOPE = 148,                 /* KW_SCOPE  */
643   YYSYMBOL_KW_SHIFT = 149,                 /* KW_SHIFT  */
644   YYSYMBOL_KW_SHIFT_LEVELS = 150,          /* KW_SHIFT_LEVELS  */
645   YYSYMBOL_KW_REKEY = 151,                 /* KW_REKEY  */
646   YYSYMBOL_KW_ADD_PREFIX = 152,            /* KW_ADD_PREFIX  */
647   YYSYMBOL_KW_REPLACE_PREFIX = 153,        /* KW_REPLACE_PREFIX  */
648   YYSYMBOL_KW_ON_ERROR = 154,              /* KW_ON_ERROR  */
649   YYSYMBOL_KW_RETRIES = 155,               /* KW_RETRIES  */
650   YYSYMBOL_KW_FETCH_NO_DATA_DELAY = 156,   /* KW_FETCH_NO_DATA_DELAY  */
651   YYSYMBOL_KW_CSV_PARSER = 157,            /* KW_CSV_PARSER  */
652   YYSYMBOL_KW_DIALECT = 158,               /* KW_DIALECT  */
653   YYSYMBOL_KW_PREFIX = 159,                /* KW_PREFIX  */
654   YYSYMBOL_KW_COLUMNS = 160,               /* KW_COLUMNS  */
655   YYSYMBOL_KW_DELIMITERS = 161,            /* KW_DELIMITERS  */
656   YYSYMBOL_KW_QUOTES = 162,                /* KW_QUOTES  */
657   YYSYMBOL_KW_QUOTE_PAIRS = 163,           /* KW_QUOTE_PAIRS  */
658   YYSYMBOL_KW_NULL = 164,                  /* KW_NULL  */
659   YYSYMBOL_KW_CHARS = 165,                 /* KW_CHARS  */
660   YYSYMBOL_KW_STRINGS = 166,               /* KW_STRINGS  */
661   YYSYMBOL_KW_DROP_INVALID = 167,          /* KW_DROP_INVALID  */
662   YYSYMBOL_168_ = 168,                     /* '('  */
663   YYSYMBOL_169_ = 169,                     /* ')'  */
664   YYSYMBOL_170_ = 170,                     /* '{'  */
665   YYSYMBOL_171_ = 171,                     /* '}'  */
666   YYSYMBOL_172_ = 172,                     /* ';'  */
667   YYSYMBOL_173_ = 173,                     /* ':'  */
668   YYSYMBOL_YYACCEPT = 174,                 /* $accept  */
669   YYSYMBOL_start = 175,                    /* start  */
670   YYSYMBOL_parser_expr_csv = 176,          /* parser_expr_csv  */
671   YYSYMBOL_177_1 = 177,                    /* $@1  */
672   YYSYMBOL_parser_csv_opts = 178,          /* parser_csv_opts  */
673   YYSYMBOL_parser_csv_opt = 179,           /* parser_csv_opt  */
674   YYSYMBOL_parser_csv_delimiters = 180,    /* parser_csv_delimiters  */
675   YYSYMBOL_parser_csv_delimiters_opts = 181, /* parser_csv_delimiters_opts  */
676   YYSYMBOL_parser_csv_delimiters_opt = 182, /* parser_csv_delimiters_opt  */
677   YYSYMBOL_parser_csv_flags = 183,         /* parser_csv_flags  */
678   YYSYMBOL_parser_csv_flag = 184,          /* parser_csv_flag  */
679   YYSYMBOL_parser_csv_dialect = 185,       /* parser_csv_dialect  */
680   YYSYMBOL_string = 186,                   /* string  */
681   YYSYMBOL_yesno = 187,                    /* yesno  */
682   YYSYMBOL_normalized_flag = 188,          /* normalized_flag  */
683   YYSYMBOL_string_list = 189,              /* string_list  */
684   YYSYMBOL_string_list_build = 190,        /* string_list_build  */
685   YYSYMBOL_parser_opt = 191                /* parser_opt  */
686 };
687 typedef enum yysymbol_kind_t yysymbol_kind_t;
688 
689 
690 
691 /* Unqualified %code blocks.  */
692 #line 30 "modules/csvparser/csvparser-grammar.y"
693 
694 
695 #include "csvparser.h"
696 #include "cfg-parser.h"
697 #include "cfg-grammar-internal.h"
698 #include "syslog-names.h"
699 #include "messages.h"
700 
701 #line 58 "modules/csvparser/csvparser-grammar.y"
702 
703 
704 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
705   do {                                                                  \
706     if (N)                                                              \
707       {                                                                 \
708         (Current).level = YYRHSLOC(Rhs, 1).level;                       \
709         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;          \
710         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;        \
711         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;           \
712         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;         \
713       }                                                                 \
714     else                                                                \
715       {                                                                 \
716         (Current).level = YYRHSLOC(Rhs, 0).level;                       \
717         (Current).first_line   = (Current).last_line   =                \
718           YYRHSLOC (Rhs, 0).last_line;                                  \
719         (Current).first_column = (Current).last_column =                \
720           YYRHSLOC (Rhs, 0).last_column;                                \
721       }                                                                 \
722   } while (0)
723 
724 #define CHECK_ERROR_WITHOUT_MESSAGE(val, token) do {                    \
725     if (!(val))                                                         \
726       {                                                                 \
727         YYERROR;                                                        \
728       }                                                                 \
729   } while (0)
730 
731 #define CHECK_ERROR(val, token, errorfmt, ...) do {                     \
732     if (!(val))                                                         \
733       {                                                                 \
734         if (errorfmt)                                                   \
735           {                                                             \
736             gchar __buf[256];                                           \
737             g_snprintf(__buf, sizeof(__buf), errorfmt, ## __VA_ARGS__); \
738             yyerror(& (token), lexer, NULL, NULL, __buf);               \
739           }                                                             \
740         YYERROR;                                                        \
741       }                                                                 \
742   } while (0)
743 
744 #define CHECK_ERROR_GERROR(val, token, error, errorfmt, ...) do {       \
745     if (!(val))                                                         \
746       {                                                                 \
747         if (errorfmt)                                                   \
748           {                                                             \
749             gchar __buf[256];                                           \
750             g_snprintf(__buf, sizeof(__buf), errorfmt ", error=%s", ## __VA_ARGS__, error->message); \
751             yyerror(& (token), lexer, NULL, NULL, __buf);               \
752           }                                                             \
753         g_clear_error(&error);						\
754         YYERROR;                                                        \
755       }                                                                 \
756   } while (0)
757 
758 #define YYMAXDEPTH 20000
759 
760 
761 
762 #line 763 "modules/csvparser/csvparser-grammar.c"
763 
764 #ifdef short
765 # undef short
766 #endif
767 
768 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
769    <limits.h> and (if available) <stdint.h> are included
770    so that the code can choose integer types of a good width.  */
771 
772 #ifndef __PTRDIFF_MAX__
773 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
774 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
775 #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
776 #  define YY_STDINT_H
777 # endif
778 #endif
779 
780 /* Narrow types that promote to a signed type and that can represent a
781    signed or unsigned integer of at least N bits.  In tables they can
782    save space and decrease cache pressure.  Promoting to a signed type
783    helps avoid bugs in integer arithmetic.  */
784 
785 #ifdef __INT_LEAST8_MAX__
786 typedef __INT_LEAST8_TYPE__ yytype_int8;
787 #elif defined YY_STDINT_H
788 typedef int_least8_t yytype_int8;
789 #else
790 typedef signed char yytype_int8;
791 #endif
792 
793 #ifdef __INT_LEAST16_MAX__
794 typedef __INT_LEAST16_TYPE__ yytype_int16;
795 #elif defined YY_STDINT_H
796 typedef int_least16_t yytype_int16;
797 #else
798 typedef short yytype_int16;
799 #endif
800 
801 /* Work around bug in HP-UX 11.23, which defines these macros
802    incorrectly for preprocessor constants.  This workaround can likely
803    be removed in 2023, as HPE has promised support for HP-UX 11.23
804    (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
805    <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
806 #ifdef __hpux
807 # undef UINT_LEAST8_MAX
808 # undef UINT_LEAST16_MAX
809 # define UINT_LEAST8_MAX 255
810 # define UINT_LEAST16_MAX 65535
811 #endif
812 
813 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
814 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
815 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
816        && UINT_LEAST8_MAX <= INT_MAX)
817 typedef uint_least8_t yytype_uint8;
818 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
819 typedef unsigned char yytype_uint8;
820 #else
821 typedef short yytype_uint8;
822 #endif
823 
824 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
825 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
826 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
827        && UINT_LEAST16_MAX <= INT_MAX)
828 typedef uint_least16_t yytype_uint16;
829 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
830 typedef unsigned short yytype_uint16;
831 #else
832 typedef int yytype_uint16;
833 #endif
834 
835 #ifndef YYPTRDIFF_T
836 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
837 #  define YYPTRDIFF_T __PTRDIFF_TYPE__
838 #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
839 # elif defined PTRDIFF_MAX
840 #  ifndef ptrdiff_t
841 #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
842 #  endif
843 #  define YYPTRDIFF_T ptrdiff_t
844 #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
845 # else
846 #  define YYPTRDIFF_T long
847 #  define YYPTRDIFF_MAXIMUM LONG_MAX
848 # endif
849 #endif
850 
851 #ifndef YYSIZE_T
852 # ifdef __SIZE_TYPE__
853 #  define YYSIZE_T __SIZE_TYPE__
854 # elif defined size_t
855 #  define YYSIZE_T size_t
856 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
857 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
858 #  define YYSIZE_T size_t
859 # else
860 #  define YYSIZE_T unsigned
861 # endif
862 #endif
863 
864 #define YYSIZE_MAXIMUM                                  \
865   YY_CAST (YYPTRDIFF_T,                                 \
866            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
867             ? YYPTRDIFF_MAXIMUM                         \
868             : YY_CAST (YYSIZE_T, -1)))
869 
870 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
871 
872 
873 /* Stored state numbers (used for stacks). */
874 typedef yytype_int8 yy_state_t;
875 
876 /* State numbers in computations.  */
877 typedef int yy_state_fast_t;
878 
879 #ifndef YY_
880 # if defined YYENABLE_NLS && YYENABLE_NLS
881 #  if ENABLE_NLS
882 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
883 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
884 #  endif
885 # endif
886 # ifndef YY_
887 #  define YY_(Msgid) Msgid
888 # endif
889 #endif
890 
891 
892 #ifndef YY_ATTRIBUTE_PURE
893 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
894 #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
895 # else
896 #  define YY_ATTRIBUTE_PURE
897 # endif
898 #endif
899 
900 #ifndef YY_ATTRIBUTE_UNUSED
901 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
902 #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
903 # else
904 #  define YY_ATTRIBUTE_UNUSED
905 # endif
906 #endif
907 
908 /* Suppress unused-variable warnings by "using" E.  */
909 #if ! defined lint || defined __GNUC__
910 # define YY_USE(E) ((void) (E))
911 #else
912 # define YY_USE(E) /* empty */
913 #endif
914 
915 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
916 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
917 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
918 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
919     _Pragma ("GCC diagnostic push")                                     \
920     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
921 # else
922 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
923     _Pragma ("GCC diagnostic push")                                     \
924     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
925     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
926 # endif
927 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
928     _Pragma ("GCC diagnostic pop")
929 #else
930 # define YY_INITIAL_VALUE(Value) Value
931 #endif
932 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
933 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
934 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
935 #endif
936 #ifndef YY_INITIAL_VALUE
937 # define YY_INITIAL_VALUE(Value) /* Nothing. */
938 #endif
939 
940 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
941 # define YY_IGNORE_USELESS_CAST_BEGIN                          \
942     _Pragma ("GCC diagnostic push")                            \
943     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
944 # define YY_IGNORE_USELESS_CAST_END            \
945     _Pragma ("GCC diagnostic pop")
946 #endif
947 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
948 # define YY_IGNORE_USELESS_CAST_BEGIN
949 # define YY_IGNORE_USELESS_CAST_END
950 #endif
951 
952 
953 #define YY_ASSERT(E) ((void) (0 && (E)))
954 
955 #if 1
956 
957 /* The parser invokes alloca or malloc; define the necessary symbols.  */
958 
959 # ifdef YYSTACK_USE_ALLOCA
960 #  if YYSTACK_USE_ALLOCA
961 #   ifdef __GNUC__
962 #    define YYSTACK_ALLOC __builtin_alloca
963 #   elif defined __BUILTIN_VA_ARG_INCR
964 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
965 #   elif defined _AIX
966 #    define YYSTACK_ALLOC __alloca
967 #   elif defined _MSC_VER
968 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
969 #    define alloca _alloca
970 #   else
971 #    define YYSTACK_ALLOC alloca
972 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
973 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
974       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
975 #     ifndef EXIT_SUCCESS
976 #      define EXIT_SUCCESS 0
977 #     endif
978 #    endif
979 #   endif
980 #  endif
981 # endif
982 
983 # ifdef YYSTACK_ALLOC
984    /* Pacify GCC's 'empty if-body' warning.  */
985 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
986 #  ifndef YYSTACK_ALLOC_MAXIMUM
987     /* The OS might guarantee only one guard page at the bottom of the stack,
988        and a page size can be as small as 4096 bytes.  So we cannot safely
989        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
990        to allow for a few compiler-allocated temporary stack slots.  */
991 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
992 #  endif
993 # else
994 #  define YYSTACK_ALLOC YYMALLOC
995 #  define YYSTACK_FREE YYFREE
996 #  ifndef YYSTACK_ALLOC_MAXIMUM
997 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
998 #  endif
999 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
1000        && ! ((defined YYMALLOC || defined malloc) \
1001              && (defined YYFREE || defined free)))
1002 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1003 #   ifndef EXIT_SUCCESS
1004 #    define EXIT_SUCCESS 0
1005 #   endif
1006 #  endif
1007 #  ifndef YYMALLOC
1008 #   define YYMALLOC malloc
1009 #   if ! defined malloc && ! defined EXIT_SUCCESS
1010 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1011 #   endif
1012 #  endif
1013 #  ifndef YYFREE
1014 #   define YYFREE free
1015 #   if ! defined free && ! defined EXIT_SUCCESS
1016 void free (void *); /* INFRINGES ON USER NAME SPACE */
1017 #   endif
1018 #  endif
1019 # endif
1020 #endif /* 1 */
1021 
1022 #if (! defined yyoverflow \
1023      && (! defined __cplusplus \
1024          || (defined CSVPARSER_LTYPE_IS_TRIVIAL && CSVPARSER_LTYPE_IS_TRIVIAL \
1025              && defined CSVPARSER_STYPE_IS_TRIVIAL && CSVPARSER_STYPE_IS_TRIVIAL)))
1026 
1027 /* A type that is properly aligned for any stack member.  */
1028 union yyalloc
1029 {
1030   yy_state_t yyss_alloc;
1031   YYSTYPE yyvs_alloc;
1032   YYLTYPE yyls_alloc;
1033 };
1034 
1035 /* The size of the maximum gap between one aligned stack and the next.  */
1036 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1037 
1038 /* The size of an array large to enough to hold all stacks, each with
1039    N elements.  */
1040 # define YYSTACK_BYTES(N) \
1041      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1042              + YYSIZEOF (YYLTYPE)) \
1043       + 2 * YYSTACK_GAP_MAXIMUM)
1044 
1045 # define YYCOPY_NEEDED 1
1046 
1047 /* Relocate STACK from its old location to the new one.  The
1048    local variables YYSIZE and YYSTACKSIZE give the old and new number of
1049    elements in the stack, and YYPTR gives the new location of the
1050    stack.  Advance YYPTR to a properly aligned location for the next
1051    stack.  */
1052 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
1053     do                                                                  \
1054       {                                                                 \
1055         YYPTRDIFF_T yynewbytes;                                         \
1056         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1057         Stack = &yyptr->Stack_alloc;                                    \
1058         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1059         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
1060       }                                                                 \
1061     while (0)
1062 
1063 #endif
1064 
1065 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1066 /* Copy COUNT objects from SRC to DST.  The source and destination do
1067    not overlap.  */
1068 # ifndef YYCOPY
1069 #  if defined __GNUC__ && 1 < __GNUC__
1070 #   define YYCOPY(Dst, Src, Count) \
1071       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1072 #  else
1073 #   define YYCOPY(Dst, Src, Count)              \
1074       do                                        \
1075         {                                       \
1076           YYPTRDIFF_T yyi;                      \
1077           for (yyi = 0; yyi < (Count); yyi++)   \
1078             (Dst)[yyi] = (Src)[yyi];            \
1079         }                                       \
1080       while (0)
1081 #  endif
1082 # endif
1083 #endif /* !YYCOPY_NEEDED */
1084 
1085 /* YYFINAL -- State number of the termination state.  */
1086 #define YYFINAL  5
1087 /* YYLAST -- Last index in YYTABLE.  */
1088 #define YYLAST   77
1089 
1090 /* YYNTOKENS -- Number of terminals.  */
1091 #define YYNTOKENS  174
1092 /* YYNNTS -- Number of nonterminals.  */
1093 #define YYNNTS  18
1094 /* YYNRULES -- Number of rules.  */
1095 #define YYNRULES  37
1096 /* YYNSTATES -- Number of states.  */
1097 #define YYNSTATES  79
1098 
1099 /* YYMAXUTOK -- Last valid token kind.  */
1100 #define YYMAXUTOK   10525
1101 
1102 
1103 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1104    as returned by yylex, with out-of-bounds checking.  */
1105 #define YYTRANSLATE(YYX)                                \
1106   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
1107    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
1108    : YYSYMBOL_YYUNDEF)
1109 
1110 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1111    as returned by yylex.  */
1112 static const yytype_uint8 yytranslate[] =
1113 {
1114        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1115       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1116       22,    23,     2,     2,     2,     2,     2,     2,     2,     2,
1117        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1118      168,   169,     2,     2,     2,     2,     2,     2,     2,     2,
1119        2,     2,     2,     2,     2,     2,     2,     2,   173,   172,
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,   170,     2,   171,     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,     1,     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        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2084        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2085        2,     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        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2090        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2091        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2092        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2093        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2094        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2095        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2096        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2097        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2098        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2099        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2100        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2101        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2102        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2103        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2104        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2105        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2106        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2107        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2108        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2109        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2110        2,     2,     2,     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        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2114       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2115       34,    35,    36,     2,     2,     2,     2,     2,     2,     2,
2116       37,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2117        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2118        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2119        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2120       38,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2121        2,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2122       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2123       58,    59,    60,    61,    62,     2,     2,     2,     2,     2,
2124       63,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2125       64,    65,    66,     2,     2,     2,     2,     2,     2,     2,
2126       67,    68,     2,     2,     2,     2,     2,     2,     2,     2,
2127       69,    70,    71,     2,     2,     2,     2,     2,     2,     2,
2128       72,    73,    74,     2,     2,     2,     2,     2,     2,     2,
2129       75,    76,    77,     2,     2,     2,     2,     2,     2,     2,
2130       78,     2,    79,    80,    81,    82,    83,     2,     2,     2,
2131       84,    85,     2,     2,     2,     2,     2,     2,     2,     2,
2132        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2133       90,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2134       91,    92,    93,    94,    95,    96,    97,     2,     2,     2,
2135       98,    99,   100,     2,     2,     2,     2,     2,     2,     2,
2136      101,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2137      102,    86,     2,     2,     2,     2,     2,     2,     2,     2,
2138      103,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2139      104,   105,   106,     2,     2,     2,     2,     2,     2,     2,
2140      107,   108,   109,     2,     2,     2,     2,     2,     2,     2,
2141      110,   111,   112,     2,     2,     2,     2,     2,     2,     2,
2142        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2143        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2144      113,   114,    87,     2,    88,    89,     2,     2,     2,     2,
2145        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2146        2,     2,     2,   115,     2,     2,     2,     2,     2,     2,
2147        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2148      116,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2149      117,   118,   119,   120,   121,   122,   123,   124,     2,     2,
2150        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2151      125,   126,   127,     2,     2,     2,     2,     2,     2,     2,
2152      128,   129,     2,     2,     2,     2,     2,     2,     2,     2,
2153        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2154        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2155      130,   131,     2,     2,     2,     2,     2,     2,     2,     2,
2156      132,   133,   134,   135,   136,   137,     2,     2,     2,     2,
2157      138,   139,   140,   141,   142,   143,     2,     2,     2,     2,
2158        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2159        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2160        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2161        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2162        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2163        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2164      144,     2,   145,   146,   147,   148,   149,   150,   151,   152,
2165      153,   154,   155,   156,     2,   157,   158,   159,   160,   161,
2166      162,   163,   164,   165,   166,   167
2167 };
2168 
2169 #if CSVPARSER_DEBUG
2170 /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
2171 static const yytype_int16 yyrline[] =
2172 {
2173        0,   417,   417,   423,   422,   432,   433,   438,   439,   440,
2174      442,   443,   444,   445,   446,   447,   448,   452,   453,   457,
2175      458,   462,   463,   467,   474,   478,   479,   483,   753,   754,
2176      758,   759,   760,   847,   851,   855,   856,   888
2177 };
2178 #endif
2179 
2180 /** Accessing symbol of state STATE.  */
2181 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
2182 
2183 #if 1
2184 /* The user-facing name of the symbol whose (internal) number is
2185    YYSYMBOL.  No bounds checking.  */
2186 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
2187 
2188 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2189    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
2190 static const char *const yytname[] =
2191 {
2192   "\"end of file\"", "error", "\"invalid token\"", "LL_CONTEXT_ROOT",
2193   "LL_CONTEXT_DESTINATION", "LL_CONTEXT_SOURCE", "LL_CONTEXT_PARSER",
2194   "LL_CONTEXT_REWRITE", "LL_CONTEXT_FILTER", "LL_CONTEXT_LOG",
2195   "LL_CONTEXT_BLOCK_DEF", "LL_CONTEXT_BLOCK_REF",
2196   "LL_CONTEXT_BLOCK_CONTENT", "LL_CONTEXT_BLOCK_ARG", "LL_CONTEXT_PRAGMA",
2197   "LL_CONTEXT_FORMAT", "LL_CONTEXT_TEMPLATE_FUNC", "LL_CONTEXT_INNER_DEST",
2198   "LL_CONTEXT_INNER_SRC", "LL_CONTEXT_CLIENT_PROTO",
2199   "LL_CONTEXT_SERVER_PROTO", "LL_CONTEXT_OPTIONS", "LL_CONTEXT_CONFIG",
2200   "LL_CONTEXT_MAX", "KW_SOURCE", "KW_FILTER", "KW_PARSER",
2201   "KW_DESTINATION", "KW_LOG", "KW_OPTIONS", "KW_INCLUDE", "KW_BLOCK",
2202   "KW_JUNCTION", "KW_CHANNEL", "KW_IF", "KW_ELSE", "KW_ELIF",
2203   "KW_INTERNAL", "KW_SYSLOG", "KW_MARK_FREQ", "KW_STATS_FREQ",
2204   "KW_STATS_LEVEL", "KW_STATS_LIFETIME", "KW_FLUSH_LINES", "KW_SUPPRESS",
2205   "KW_FLUSH_TIMEOUT", "KW_LOG_MSG_SIZE", "KW_FILE_TEMPLATE",
2206   "KW_PROTO_TEMPLATE", "KW_MARK_MODE", "KW_ENCODING", "KW_TYPE",
2207   "KW_STATS_MAX_DYNAMIC", "KW_MIN_IW_SIZE_PER_READER", "KW_WORKERS",
2208   "KW_BATCH_LINES", "KW_BATCH_TIMEOUT", "KW_TRIM_LARGE_MESSAGES",
2209   "KW_CHAIN_HOSTNAMES", "KW_NORMALIZE_HOSTNAMES", "KW_KEEP_HOSTNAME",
2210   "KW_CHECK_HOSTNAME", "KW_BAD_HOSTNAME", "KW_KEEP_TIMESTAMP",
2211   "KW_USE_DNS", "KW_USE_FQDN", "KW_CUSTOM_DOMAIN", "KW_DNS_CACHE",
2212   "KW_DNS_CACHE_SIZE", "KW_DNS_CACHE_EXPIRE", "KW_DNS_CACHE_EXPIRE_FAILED",
2213   "KW_DNS_CACHE_HOSTS", "KW_PERSIST_ONLY", "KW_USE_RCPTID",
2214   "KW_USE_UNIQID", "KW_TZ_CONVERT", "KW_TS_FORMAT", "KW_FRAC_DIGITS",
2215   "KW_LOG_FIFO_SIZE", "KW_LOG_FETCH_LIMIT", "KW_LOG_IW_SIZE",
2216   "KW_LOG_PREFIX", "KW_PROGRAM_OVERRIDE", "KW_HOST_OVERRIDE",
2217   "KW_THROTTLE", "KW_THREADED", "KW_PASS_UNIX_CREDENTIALS",
2218   "KW_PERSIST_NAME", "KW_READ_OLD_RECORDS", "KW_USE_SYSLOGNG_PID",
2219   "KW_FLAGS", "KW_PAD_SIZE", "KW_TIME_ZONE", "KW_RECV_TIME_ZONE",
2220   "KW_SEND_TIME_ZONE", "KW_LOCAL_TIME_ZONE", "KW_FORMAT",
2221   "KW_TRUNCATE_SIZE", "KW_TIME_REOPEN", "KW_TIME_REAP", "KW_TIME_SLEEP",
2222   "KW_TMPL_ESCAPE", "KW_OPTIONAL", "KW_CREATE_DIRS", "KW_OWNER",
2223   "KW_GROUP", "KW_PERM", "KW_DIR_OWNER", "KW_DIR_GROUP", "KW_DIR_PERM",
2224   "KW_TEMPLATE", "KW_TEMPLATE_ESCAPE", "KW_TEMPLATE_FUNCTION",
2225   "KW_DEFAULT_FACILITY", "KW_DEFAULT_SEVERITY", "KW_PORT",
2226   "KW_USE_TIME_RECVD", "KW_FACILITY", "KW_SEVERITY", "KW_HOST", "KW_MATCH",
2227   "KW_MESSAGE", "KW_NETMASK", "KW_TAGS", "KW_NETMASK6", "KW_REWRITE",
2228   "KW_CONDITION", "KW_VALUE", "KW_YES", "KW_NO", "KW_IFDEF", "KW_ENDIF",
2229   "LL_DOTDOT", "LL_DOTDOTDOT", "LL_PRAGMA", "LL_EOL", "LL_ERROR",
2230   "LL_ARROW", "LL_IDENTIFIER", "LL_NUMBER", "LL_FLOAT", "LL_STRING",
2231   "LL_TOKEN", "LL_BLOCK", "KW_VALUE_PAIRS", "KW_EXCLUDE", "KW_PAIR",
2232   "KW_KEY", "KW_SCOPE", "KW_SHIFT", "KW_SHIFT_LEVELS", "KW_REKEY",
2233   "KW_ADD_PREFIX", "KW_REPLACE_PREFIX", "KW_ON_ERROR", "KW_RETRIES",
2234   "KW_FETCH_NO_DATA_DELAY", "KW_CSV_PARSER", "KW_DIALECT", "KW_PREFIX",
2235   "KW_COLUMNS", "KW_DELIMITERS", "KW_QUOTES", "KW_QUOTE_PAIRS", "KW_NULL",
2236   "KW_CHARS", "KW_STRINGS", "KW_DROP_INVALID", "'('", "')'", "'{'", "'}'",
2237   "';'", "':'", "$accept", "start", "parser_expr_csv", "$@1",
2238   "parser_csv_opts", "parser_csv_opt", "parser_csv_delimiters",
2239   "parser_csv_delimiters_opts", "parser_csv_delimiters_opt",
2240   "parser_csv_flags", "parser_csv_flag", "parser_csv_dialect", "string",
2241   "yesno", "normalized_flag", "string_list", "string_list_build",
2242   "parser_opt", YY_NULLPTR
2243 };
2244 
2245 static const char *
yysymbol_name(yysymbol_kind_t yysymbol)2246 yysymbol_name (yysymbol_kind_t yysymbol)
2247 {
2248   return yytname[yysymbol];
2249 }
2250 #endif
2251 
2252 #define YYPACT_NINF (-148)
2253 
2254 #define yypact_value_is_default(Yyn) \
2255   ((Yyn) == YYPACT_NINF)
2256 
2257 #define YYTABLE_NINF (-1)
2258 
2259 #define yytable_value_is_error(Yyn) \
2260   0
2261 
2262 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2263    STATE-NUM.  */
2264 static const yytype_int16 yypact[] =
2265 {
2266       -4,  -142,    22,  -144,  -148,  -148,  -148,   -90,  -143,  -141,
2267     -140,  -139,  -138,  -137,  -136,  -135,  -134,  -133,  -132,   -90,
2268     -148,  -129,  -124,  -124,  -124,  -124,  -125,  -124,  -124,  -124,
2269     -118,  -148,  -148,  -148,  -148,  -148,  -130,  -129,  -148,  -148,
2270     -127,  -126,  -148,  -121,  -124,  -120,  -148,  -123,  -117,  -119,
2271     -148,  -147,  -148,  -116,  -115,  -114,  -148,  -148,  -148,  -113,
2272     -148,  -148,  -148,  -148,  -148,  -148,  -148,  -124,  -124,  -148,
2273     -148,  -148,  -148,  -148,  -148,  -112,  -111,  -148,  -148
2274 };
2275 
2276 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
2277    Performed when YYTABLE does not specify something else to do.  Zero
2278    means the default is an error.  */
2279 static const yytype_int8 yydefact[] =
2280 {
2281        0,     0,     0,     0,     2,     1,     3,     6,     0,     0,
2282        0,     0,     0,     0,     0,     0,     0,     0,     0,     6,
2283       16,    24,     0,     0,     0,    36,    20,     0,     0,     0,
2284        0,     4,     5,    28,    29,    26,     0,    24,    33,    25,
2285        0,     0,    27,     0,    36,     0,    34,     0,     0,     0,
2286       18,    20,    17,     0,     0,     0,    30,    31,    32,     0,
2287        7,    23,    37,    10,     8,    35,    15,     0,    36,    11,
2288       19,    12,    13,    14,     9,     0,     0,    21,    22
2289 };
2290 
2291 /* YYPGOTO[NTERM-NUM].  */
2292 static const yytype_int16 yypgoto[] =
2293 {
2294     -148,  -148,  -148,  -148,     7,  -148,  -148,   -15,  -148,    15,
2295     -148,  -148,   -21,  -148,    21,    -9,    16,  -148
2296 };
2297 
2298 /* YYDEFGOTO[NTERM-NUM].  */
2299 static const yytype_int8 yydefgoto[] =
2300 {
2301        0,     2,     4,     7,    18,    19,    49,    50,    51,    36,
2302       37,    41,    38,    59,    39,    45,    46,    20
2303 };
2304 
2305 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
2306    positive, shift that token.  If negative, reduce the rule whose
2307    number is the opposite.  If YYTABLE_NINF, syntax error.  */
2308 static const yytype_int8 yytable[] =
2309 {
2310        8,    40,     1,    43,    44,    52,    53,    54,    55,    33,
2311       56,    57,    34,    33,    33,     3,    34,    34,    47,    48,
2312        9,    58,     5,    44,     6,    21,    32,    22,    23,    24,
2313       25,    26,    27,    28,    29,    30,    70,    31,    35,    60,
2314       47,    48,    62,    63,    42,    67,    75,    44,    64,    66,
2315       69,    68,    61,    71,    72,    73,    74,    77,    78,    76,
2316       65,     0,     0,     0,     0,     0,     0,     0,    10,    11,
2317       12,    13,    14,    15,    16,     0,     0,    17
2318 };
2319 
2320 static const yytype_int16 yycheck[] =
2321 {
2322       90,    22,     6,    24,    25,    26,    27,    28,    29,   138,
2323      128,   129,   141,   138,   138,   157,   141,   141,   165,   166,
2324      110,   139,     0,    44,   168,   168,    19,   168,   168,   168,
2325      168,   168,   168,   168,   168,   168,    51,   169,   167,   169,
2326      165,   166,   169,   169,    23,   168,    67,    68,   169,   169,
2327      169,   168,    37,   169,   169,   169,   169,   169,   169,    68,
2328       44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   158,   159,
2329      160,   161,   162,   163,   164,    -1,    -1,   167
2330 };
2331 
2332 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
2333    state STATE-NUM.  */
2334 static const yytype_uint8 yystos[] =
2335 {
2336        0,     6,   175,   157,   176,     0,   168,   177,    90,   110,
2337      158,   159,   160,   161,   162,   163,   164,   167,   178,   179,
2338      191,   168,   168,   168,   168,   168,   168,   168,   168,   168,
2339      168,   169,   178,   138,   141,   167,   183,   184,   186,   188,
2340      186,   185,   188,   186,   186,   189,   190,   165,   166,   180,
2341      181,   182,   186,   186,   186,   186,   128,   129,   139,   187,
2342      169,   183,   169,   169,   169,   190,   169,   168,   168,   169,
2343      181,   169,   169,   169,   169,   186,   189,   169,   169
2344 };
2345 
2346 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
2347 static const yytype_uint8 yyr1[] =
2348 {
2349        0,   174,   175,   177,   176,   178,   178,   179,   179,   179,
2350      179,   179,   179,   179,   179,   179,   179,   180,   180,   181,
2351      181,   182,   182,   183,   183,   184,   184,   185,   186,   186,
2352      187,   187,   187,   188,   189,   190,   190,   191
2353 };
2354 
2355 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
2356 static const yytype_int8 yyr2[] =
2357 {
2358        0,     2,     2,     0,     5,     2,     0,     4,     4,     4,
2359        4,     4,     4,     4,     4,     4,     1,     1,     1,     2,
2360        0,     4,     4,     2,     0,     1,     1,     1,     1,     1,
2361        1,     1,     1,     1,     1,     2,     0,     4
2362 };
2363 
2364 
2365 enum { YYENOMEM = -2 };
2366 
2367 #define yyerrok         (yyerrstatus = 0)
2368 #define yyclearin       (yychar = CSVPARSER_EMPTY)
2369 
2370 #define YYACCEPT        goto yyacceptlab
2371 #define YYABORT         goto yyabortlab
2372 #define YYERROR         goto yyerrorlab
2373 #define YYNOMEM         goto yyexhaustedlab
2374 
2375 
2376 #define YYRECOVERING()  (!!yyerrstatus)
2377 
2378 #define YYBACKUP(Token, Value)                                    \
2379   do                                                              \
2380     if (yychar == CSVPARSER_EMPTY)                                        \
2381       {                                                           \
2382         yychar = (Token);                                         \
2383         yylval = (Value);                                         \
2384         YYPOPSTACK (yylen);                                       \
2385         yystate = *yyssp;                                         \
2386         goto yybackup;                                            \
2387       }                                                           \
2388     else                                                          \
2389       {                                                           \
2390         yyerror (&yylloc, lexer, instance, arg, YY_("syntax error: cannot back up")); \
2391         YYERROR;                                                  \
2392       }                                                           \
2393   while (0)
2394 
2395 /* Backward compatibility with an undocumented macro.
2396    Use CSVPARSER_error or CSVPARSER_UNDEF. */
2397 #define YYERRCODE CSVPARSER_UNDEF
2398 
2399 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2400    If N is 0, then set CURRENT to the empty location which ends
2401    the previous symbol: RHS[0] (always defined).  */
2402 
2403 #ifndef YYLLOC_DEFAULT
2404 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2405     do                                                                  \
2406       if (N)                                                            \
2407         {                                                               \
2408           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2409           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2410           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2411           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2412         }                                                               \
2413       else                                                              \
2414         {                                                               \
2415           (Current).first_line   = (Current).last_line   =              \
2416             YYRHSLOC (Rhs, 0).last_line;                                \
2417           (Current).first_column = (Current).last_column =              \
2418             YYRHSLOC (Rhs, 0).last_column;                              \
2419         }                                                               \
2420     while (0)
2421 #endif
2422 
2423 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2424 
2425 
2426 /* Enable debugging if requested.  */
2427 #if CSVPARSER_DEBUG
2428 
2429 # ifndef YYFPRINTF
2430 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2431 #  define YYFPRINTF fprintf
2432 # endif
2433 
2434 # define YYDPRINTF(Args)                        \
2435 do {                                            \
2436   if (yydebug)                                  \
2437     YYFPRINTF Args;                             \
2438 } while (0)
2439 
2440 
2441 /* YYLOCATION_PRINT -- Print the location on the stream.
2442    This macro was not mandated originally: define only if we know
2443    we won't break user code: when these are the locations we know.  */
2444 
2445 # ifndef YYLOCATION_PRINT
2446 
2447 #  if defined YY_LOCATION_PRINT
2448 
2449    /* Temporary convenience wrapper in case some people defined the
2450       undocumented and private YY_LOCATION_PRINT macros.  */
2451 #   define YYLOCATION_PRINT(File, Loc)  YY_LOCATION_PRINT(File, *(Loc))
2452 
2453 #  elif defined CSVPARSER_LTYPE_IS_TRIVIAL && CSVPARSER_LTYPE_IS_TRIVIAL
2454 
2455 /* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
2456 
2457 YY_ATTRIBUTE_UNUSED
2458 static int
yy_location_print_(FILE * yyo,YYLTYPE const * const yylocp)2459 yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
2460 {
2461   int res = 0;
2462   int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
2463   if (0 <= yylocp->first_line)
2464     {
2465       res += YYFPRINTF (yyo, "%d", yylocp->first_line);
2466       if (0 <= yylocp->first_column)
2467         res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
2468     }
2469   if (0 <= yylocp->last_line)
2470     {
2471       if (yylocp->first_line < yylocp->last_line)
2472         {
2473           res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
2474           if (0 <= end_col)
2475             res += YYFPRINTF (yyo, ".%d", end_col);
2476         }
2477       else if (0 <= end_col && yylocp->first_column < end_col)
2478         res += YYFPRINTF (yyo, "-%d", end_col);
2479     }
2480   return res;
2481 }
2482 
2483 #   define YYLOCATION_PRINT  yy_location_print_
2484 
2485     /* Temporary convenience wrapper in case some people defined the
2486        undocumented and private YY_LOCATION_PRINT macros.  */
2487 #   define YY_LOCATION_PRINT(File, Loc)  YYLOCATION_PRINT(File, &(Loc))
2488 
2489 #  else
2490 
2491 #   define YYLOCATION_PRINT(File, Loc) ((void) 0)
2492     /* Temporary convenience wrapper in case some people defined the
2493        undocumented and private YY_LOCATION_PRINT macros.  */
2494 #   define YY_LOCATION_PRINT  YYLOCATION_PRINT
2495 
2496 #  endif
2497 # endif /* !defined YYLOCATION_PRINT */
2498 
2499 
2500 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
2501 do {                                                                      \
2502   if (yydebug)                                                            \
2503     {                                                                     \
2504       YYFPRINTF (stderr, "%s ", Title);                                   \
2505       yy_symbol_print (stderr,                                            \
2506                   Kind, Value, Location, lexer, instance, arg); \
2507       YYFPRINTF (stderr, "\n");                                           \
2508     }                                                                     \
2509 } while (0)
2510 
2511 
2512 /*-----------------------------------.
2513 | Print this symbol's value on YYO.  |
2514 `-----------------------------------*/
2515 
2516 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)2517 yy_symbol_value_print (FILE *yyo,
2518                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2519 {
2520   FILE *yyoutput = yyo;
2521   YY_USE (yyoutput);
2522   YY_USE (yylocationp);
2523   YY_USE (lexer);
2524   YY_USE (instance);
2525   YY_USE (arg);
2526   if (!yyvaluep)
2527     return;
2528   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2529   YY_USE (yykind);
2530   YY_IGNORE_MAYBE_UNINITIALIZED_END
2531 }
2532 
2533 
2534 /*---------------------------.
2535 | Print this symbol on YYO.  |
2536 `---------------------------*/
2537 
2538 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)2539 yy_symbol_print (FILE *yyo,
2540                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2541 {
2542   YYFPRINTF (yyo, "%s %s (",
2543              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
2544 
2545   YYLOCATION_PRINT (yyo, yylocationp);
2546   YYFPRINTF (yyo, ": ");
2547   yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, lexer, instance, arg);
2548   YYFPRINTF (yyo, ")");
2549 }
2550 
2551 /*------------------------------------------------------------------.
2552 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2553 | TOP (included).                                                   |
2554 `------------------------------------------------------------------*/
2555 
2556 static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)2557 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2558 {
2559   YYFPRINTF (stderr, "Stack now");
2560   for (; yybottom <= yytop; yybottom++)
2561     {
2562       int yybot = *yybottom;
2563       YYFPRINTF (stderr, " %d", yybot);
2564     }
2565   YYFPRINTF (stderr, "\n");
2566 }
2567 
2568 # define YY_STACK_PRINT(Bottom, Top)                            \
2569 do {                                                            \
2570   if (yydebug)                                                  \
2571     yy_stack_print ((Bottom), (Top));                           \
2572 } while (0)
2573 
2574 
2575 /*------------------------------------------------.
2576 | Report that the YYRULE is going to be reduced.  |
2577 `------------------------------------------------*/
2578 
2579 static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,YYLTYPE * yylsp,int yyrule,CfgLexer * lexer,LogParser ** instance,gpointer arg)2580 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
2581                  int yyrule, CfgLexer *lexer, LogParser **instance, gpointer arg)
2582 {
2583   int yylno = yyrline[yyrule];
2584   int yynrhs = yyr2[yyrule];
2585   int yyi;
2586   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2587              yyrule - 1, yylno);
2588   /* The symbols being reduced.  */
2589   for (yyi = 0; yyi < yynrhs; yyi++)
2590     {
2591       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2592       yy_symbol_print (stderr,
2593                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
2594                        &yyvsp[(yyi + 1) - (yynrhs)],
2595                        &(yylsp[(yyi + 1) - (yynrhs)]), lexer, instance, arg);
2596       YYFPRINTF (stderr, "\n");
2597     }
2598 }
2599 
2600 # define YY_REDUCE_PRINT(Rule)          \
2601 do {                                    \
2602   if (yydebug)                          \
2603     yy_reduce_print (yyssp, yyvsp, yylsp, Rule, lexer, instance, arg); \
2604 } while (0)
2605 
2606 /* Nonzero means print parse trace.  It is left uninitialized so that
2607    multiple parsers can coexist.  */
2608 int yydebug;
2609 #else /* !CSVPARSER_DEBUG */
2610 # define YYDPRINTF(Args) ((void) 0)
2611 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
2612 # define YY_STACK_PRINT(Bottom, Top)
2613 # define YY_REDUCE_PRINT(Rule)
2614 #endif /* !CSVPARSER_DEBUG */
2615 
2616 
2617 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2618 #ifndef YYINITDEPTH
2619 # define YYINITDEPTH 200
2620 #endif
2621 
2622 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2623    if the built-in stack extension method is used).
2624 
2625    Do not make this value too large; the results are undefined if
2626    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2627    evaluated with infinite-precision integer arithmetic.  */
2628 
2629 #ifndef YYMAXDEPTH
2630 # define YYMAXDEPTH 10000
2631 #endif
2632 
2633 
2634 /* Context of a parse error.  */
2635 typedef struct
2636 {
2637   yy_state_t *yyssp;
2638   yysymbol_kind_t yytoken;
2639   YYLTYPE *yylloc;
2640 } yypcontext_t;
2641 
2642 /* Put in YYARG at most YYARGN of the expected tokens given the
2643    current YYCTX, and return the number of tokens stored in YYARG.  If
2644    YYARG is null, return the number of expected tokens (guaranteed to
2645    be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
2646    Return 0 if there are more than YYARGN expected tokens, yet fill
2647    YYARG up to YYARGN. */
2648 static int
yypcontext_expected_tokens(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2649 yypcontext_expected_tokens (const yypcontext_t *yyctx,
2650                             yysymbol_kind_t yyarg[], int yyargn)
2651 {
2652   /* Actual size of YYARG. */
2653   int yycount = 0;
2654   int yyn = yypact[+*yyctx->yyssp];
2655   if (!yypact_value_is_default (yyn))
2656     {
2657       /* Start YYX at -YYN if negative to avoid negative indexes in
2658          YYCHECK.  In other words, skip the first -YYN actions for
2659          this state because they are default actions.  */
2660       int yyxbegin = yyn < 0 ? -yyn : 0;
2661       /* Stay within bounds of both yycheck and yytname.  */
2662       int yychecklim = YYLAST - yyn + 1;
2663       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2664       int yyx;
2665       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2666         if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
2667             && !yytable_value_is_error (yytable[yyx + yyn]))
2668           {
2669             if (!yyarg)
2670               ++yycount;
2671             else if (yycount == yyargn)
2672               return 0;
2673             else
2674               yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
2675           }
2676     }
2677   if (yyarg && yycount == 0 && 0 < yyargn)
2678     yyarg[0] = YYSYMBOL_YYEMPTY;
2679   return yycount;
2680 }
2681 
2682 
2683 
2684 
2685 #ifndef yystrlen
2686 # if defined __GLIBC__ && defined _STRING_H
2687 #  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
2688 # else
2689 /* Return the length of YYSTR.  */
2690 static YYPTRDIFF_T
yystrlen(const char * yystr)2691 yystrlen (const char *yystr)
2692 {
2693   YYPTRDIFF_T yylen;
2694   for (yylen = 0; yystr[yylen]; yylen++)
2695     continue;
2696   return yylen;
2697 }
2698 # endif
2699 #endif
2700 
2701 #ifndef yystpcpy
2702 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2703 #  define yystpcpy stpcpy
2704 # else
2705 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2706    YYDEST.  */
2707 static char *
yystpcpy(char * yydest,const char * yysrc)2708 yystpcpy (char *yydest, const char *yysrc)
2709 {
2710   char *yyd = yydest;
2711   const char *yys = yysrc;
2712 
2713   while ((*yyd++ = *yys++) != '\0')
2714     continue;
2715 
2716   return yyd - 1;
2717 }
2718 # endif
2719 #endif
2720 
2721 #ifndef yytnamerr
2722 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2723    quotes and backslashes, so that it's suitable for yyerror.  The
2724    heuristic is that double-quoting is unnecessary unless the string
2725    contains an apostrophe, a comma, or backslash (other than
2726    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2727    null, do not copy; instead, return the length of what the result
2728    would have been.  */
2729 static YYPTRDIFF_T
yytnamerr(char * yyres,const char * yystr)2730 yytnamerr (char *yyres, const char *yystr)
2731 {
2732   if (*yystr == '"')
2733     {
2734       YYPTRDIFF_T yyn = 0;
2735       char const *yyp = yystr;
2736       for (;;)
2737         switch (*++yyp)
2738           {
2739           case '\'':
2740           case ',':
2741             goto do_not_strip_quotes;
2742 
2743           case '\\':
2744             if (*++yyp != '\\')
2745               goto do_not_strip_quotes;
2746             else
2747               goto append;
2748 
2749           append:
2750           default:
2751             if (yyres)
2752               yyres[yyn] = *yyp;
2753             yyn++;
2754             break;
2755 
2756           case '"':
2757             if (yyres)
2758               yyres[yyn] = '\0';
2759             return yyn;
2760           }
2761     do_not_strip_quotes: ;
2762     }
2763 
2764   if (yyres)
2765     return yystpcpy (yyres, yystr) - yyres;
2766   else
2767     return yystrlen (yystr);
2768 }
2769 #endif
2770 
2771 
2772 static int
yy_syntax_error_arguments(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2773 yy_syntax_error_arguments (const yypcontext_t *yyctx,
2774                            yysymbol_kind_t yyarg[], int yyargn)
2775 {
2776   /* Actual size of YYARG. */
2777   int yycount = 0;
2778   /* There are many possibilities here to consider:
2779      - If this state is a consistent state with a default action, then
2780        the only way this function was invoked is if the default action
2781        is an error action.  In that case, don't check for expected
2782        tokens because there are none.
2783      - The only way there can be no lookahead present (in yychar) is if
2784        this state is a consistent state with a default action.  Thus,
2785        detecting the absence of a lookahead is sufficient to determine
2786        that there is no unexpected or expected token to report.  In that
2787        case, just report a simple "syntax error".
2788      - Don't assume there isn't a lookahead just because this state is a
2789        consistent state with a default action.  There might have been a
2790        previous inconsistent state, consistent state with a non-default
2791        action, or user semantic action that manipulated yychar.
2792      - Of course, the expected token list depends on states to have
2793        correct lookahead information, and it depends on the parser not
2794        to perform extra reductions after fetching a lookahead from the
2795        scanner and before detecting a syntax error.  Thus, state merging
2796        (from LALR or IELR) and default reductions corrupt the expected
2797        token list.  However, the list is correct for canonical LR with
2798        one exception: it will still contain any token that will not be
2799        accepted due to an error action in a later state.
2800   */
2801   if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
2802     {
2803       int yyn;
2804       if (yyarg)
2805         yyarg[yycount] = yyctx->yytoken;
2806       ++yycount;
2807       yyn = yypcontext_expected_tokens (yyctx,
2808                                         yyarg ? yyarg + 1 : yyarg, yyargn - 1);
2809       if (yyn == YYENOMEM)
2810         return YYENOMEM;
2811       else
2812         yycount += yyn;
2813     }
2814   return yycount;
2815 }
2816 
2817 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2818    about the unexpected token YYTOKEN for the state stack whose top is
2819    YYSSP.
2820 
2821    Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
2822    not large enough to hold the message.  In that case, also set
2823    *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
2824    required number of bytes is too large to store.  */
2825 static int
yysyntax_error(YYPTRDIFF_T * yymsg_alloc,char ** yymsg,const yypcontext_t * yyctx)2826 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2827                 const yypcontext_t *yyctx)
2828 {
2829   enum { YYARGS_MAX = 5 };
2830   /* Internationalized format string. */
2831   const char *yyformat = YY_NULLPTR;
2832   /* Arguments of yyformat: reported tokens (one for the "unexpected",
2833      one per "expected"). */
2834   yysymbol_kind_t yyarg[YYARGS_MAX];
2835   /* Cumulated lengths of YYARG.  */
2836   YYPTRDIFF_T yysize = 0;
2837 
2838   /* Actual size of YYARG. */
2839   int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
2840   if (yycount == YYENOMEM)
2841     return YYENOMEM;
2842 
2843   switch (yycount)
2844     {
2845 #define YYCASE_(N, S)                       \
2846       case N:                               \
2847         yyformat = S;                       \
2848         break
2849     default: /* Avoid compiler warnings. */
2850       YYCASE_(0, YY_("syntax error"));
2851       YYCASE_(1, YY_("syntax error, unexpected %s"));
2852       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2853       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2854       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2855       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2856 #undef YYCASE_
2857     }
2858 
2859   /* Compute error message size.  Don't count the "%s"s, but reserve
2860      room for the terminator.  */
2861   yysize = yystrlen (yyformat) - 2 * yycount + 1;
2862   {
2863     int yyi;
2864     for (yyi = 0; yyi < yycount; ++yyi)
2865       {
2866         YYPTRDIFF_T yysize1
2867           = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
2868         if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2869           yysize = yysize1;
2870         else
2871           return YYENOMEM;
2872       }
2873   }
2874 
2875   if (*yymsg_alloc < yysize)
2876     {
2877       *yymsg_alloc = 2 * yysize;
2878       if (! (yysize <= *yymsg_alloc
2879              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2880         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2881       return -1;
2882     }
2883 
2884   /* Avoid sprintf, as that infringes on the user's name space.
2885      Don't have undefined behavior even if the translation
2886      produced a string with the wrong number of "%s"s.  */
2887   {
2888     char *yyp = *yymsg;
2889     int yyi = 0;
2890     while ((*yyp = *yyformat) != '\0')
2891       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2892         {
2893           yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
2894           yyformat += 2;
2895         }
2896       else
2897         {
2898           ++yyp;
2899           ++yyformat;
2900         }
2901   }
2902   return 0;
2903 }
2904 
2905 
2906 /*-----------------------------------------------.
2907 | Release the memory associated to this symbol.  |
2908 `-----------------------------------------------*/
2909 
2910 static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep,YYLTYPE * yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2911 yydestruct (const char *yymsg,
2912             yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2913 {
2914   YY_USE (yyvaluep);
2915   YY_USE (yylocationp);
2916   YY_USE (lexer);
2917   YY_USE (instance);
2918   YY_USE (arg);
2919   if (!yymsg)
2920     yymsg = "Deleting";
2921   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
2922 
2923   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2924   switch (yykind)
2925     {
2926     case YYSYMBOL_LL_IDENTIFIER: /* LL_IDENTIFIER  */
2927 #line 316 "modules/csvparser/csvparser-grammar.y"
2928             { free(((*yyvaluep).cptr)); }
2929 #line 2930 "modules/csvparser/csvparser-grammar.c"
2930         break;
2931 
2932     case YYSYMBOL_LL_STRING: /* LL_STRING  */
2933 #line 316 "modules/csvparser/csvparser-grammar.y"
2934             { free(((*yyvaluep).cptr)); }
2935 #line 2936 "modules/csvparser/csvparser-grammar.c"
2936         break;
2937 
2938     case YYSYMBOL_LL_BLOCK: /* LL_BLOCK  */
2939 #line 316 "modules/csvparser/csvparser-grammar.y"
2940             { free(((*yyvaluep).cptr)); }
2941 #line 2942 "modules/csvparser/csvparser-grammar.c"
2942         break;
2943 
2944     case YYSYMBOL_parser_csv_flag: /* parser_csv_flag  */
2945 #line 316 "modules/csvparser/csvparser-grammar.y"
2946             { free(((*yyvaluep).cptr)); }
2947 #line 2948 "modules/csvparser/csvparser-grammar.c"
2948         break;
2949 
2950     case YYSYMBOL_string: /* string  */
2951 #line 316 "modules/csvparser/csvparser-grammar.y"
2952             { free(((*yyvaluep).cptr)); }
2953 #line 2954 "modules/csvparser/csvparser-grammar.c"
2954         break;
2955 
2956     case YYSYMBOL_normalized_flag: /* normalized_flag  */
2957 #line 316 "modules/csvparser/csvparser-grammar.y"
2958             { free(((*yyvaluep).cptr)); }
2959 #line 2960 "modules/csvparser/csvparser-grammar.c"
2960         break;
2961 
2962       default:
2963         break;
2964     }
2965   YY_IGNORE_MAYBE_UNINITIALIZED_END
2966 }
2967 
2968 
2969 
2970 
2971 
2972 
2973 /*----------.
2974 | yyparse.  |
2975 `----------*/
2976 
2977 int
yyparse(CfgLexer * lexer,LogParser ** instance,gpointer arg)2978 yyparse (CfgLexer *lexer, LogParser **instance, gpointer arg)
2979 {
2980 /* Lookahead token kind.  */
2981 int yychar;
2982 
2983 
2984 /* The semantic value of the lookahead symbol.  */
2985 /* Default value used for initialization, for pacifying older GCCs
2986    or non-GCC compilers.  */
2987 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2988 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2989 
2990 /* Location data for the lookahead symbol.  */
2991 static YYLTYPE yyloc_default
2992 # if defined CSVPARSER_LTYPE_IS_TRIVIAL && CSVPARSER_LTYPE_IS_TRIVIAL
2993   = { 1, 1, 1, 1 }
2994 # endif
2995 ;
2996 YYLTYPE yylloc = yyloc_default;
2997 
2998     /* Number of syntax errors so far.  */
2999     int yynerrs = 0;
3000 
3001     yy_state_fast_t yystate = 0;
3002     /* Number of tokens to shift before error messages enabled.  */
3003     int yyerrstatus = 0;
3004 
3005     /* Refer to the stacks through separate pointers, to allow yyoverflow
3006        to reallocate them elsewhere.  */
3007 
3008     /* Their size.  */
3009     YYPTRDIFF_T yystacksize = YYINITDEPTH;
3010 
3011     /* The state stack: array, bottom, top.  */
3012     yy_state_t yyssa[YYINITDEPTH];
3013     yy_state_t *yyss = yyssa;
3014     yy_state_t *yyssp = yyss;
3015 
3016     /* The semantic value stack: array, bottom, top.  */
3017     YYSTYPE yyvsa[YYINITDEPTH];
3018     YYSTYPE *yyvs = yyvsa;
3019     YYSTYPE *yyvsp = yyvs;
3020 
3021     /* The location stack: array, bottom, top.  */
3022     YYLTYPE yylsa[YYINITDEPTH];
3023     YYLTYPE *yyls = yylsa;
3024     YYLTYPE *yylsp = yyls;
3025 
3026   int yyn;
3027   /* The return value of yyparse.  */
3028   int yyresult;
3029   /* Lookahead symbol kind.  */
3030   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
3031   /* The variables used to return semantic value and location from the
3032      action routines.  */
3033   YYSTYPE yyval;
3034   YYLTYPE yyloc;
3035 
3036   /* The locations where the error started and ended.  */
3037   YYLTYPE yyerror_range[3];
3038 
3039   /* Buffer for error messages, and its allocated size.  */
3040   char yymsgbuf[128];
3041   char *yymsg = yymsgbuf;
3042   YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
3043 
3044 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
3045 
3046   /* The number of symbols on the RHS of the reduced rule.
3047      Keep to zero when no symbol should be popped.  */
3048   int yylen = 0;
3049 
3050   YYDPRINTF ((stderr, "Starting parse\n"));
3051 
3052   yychar = CSVPARSER_EMPTY; /* Cause a token to be read.  */
3053 
3054   yylsp[0] = yylloc;
3055   goto yysetstate;
3056 
3057 
3058 /*------------------------------------------------------------.
3059 | yynewstate -- push a new state, which is found in yystate.  |
3060 `------------------------------------------------------------*/
3061 yynewstate:
3062   /* In all cases, when you get here, the value and location stacks
3063      have just been pushed.  So pushing a state here evens the stacks.  */
3064   yyssp++;
3065 
3066 
3067 /*--------------------------------------------------------------------.
3068 | yysetstate -- set current state (the top of the stack) to yystate.  |
3069 `--------------------------------------------------------------------*/
3070 yysetstate:
3071   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3072   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
3073   YY_IGNORE_USELESS_CAST_BEGIN
3074   *yyssp = YY_CAST (yy_state_t, yystate);
3075   YY_IGNORE_USELESS_CAST_END
3076   YY_STACK_PRINT (yyss, yyssp);
3077 
3078   if (yyss + yystacksize - 1 <= yyssp)
3079 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
3080     YYNOMEM;
3081 #else
3082     {
3083       /* Get the current used size of the three stacks, in elements.  */
3084       YYPTRDIFF_T yysize = yyssp - yyss + 1;
3085 
3086 # if defined yyoverflow
3087       {
3088         /* Give user a chance to reallocate the stack.  Use copies of
3089            these so that the &'s don't force the real ones into
3090            memory.  */
3091         yy_state_t *yyss1 = yyss;
3092         YYSTYPE *yyvs1 = yyvs;
3093         YYLTYPE *yyls1 = yyls;
3094 
3095         /* Each stack pointer address is followed by the size of the
3096            data in use in that stack, in bytes.  This used to be a
3097            conditional around just the two extra args, but that might
3098            be undefined if yyoverflow is a macro.  */
3099         yyoverflow (YY_("memory exhausted"),
3100                     &yyss1, yysize * YYSIZEOF (*yyssp),
3101                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
3102                     &yyls1, yysize * YYSIZEOF (*yylsp),
3103                     &yystacksize);
3104         yyss = yyss1;
3105         yyvs = yyvs1;
3106         yyls = yyls1;
3107       }
3108 # else /* defined YYSTACK_RELOCATE */
3109       /* Extend the stack our own way.  */
3110       if (YYMAXDEPTH <= yystacksize)
3111         YYNOMEM;
3112       yystacksize *= 2;
3113       if (YYMAXDEPTH < yystacksize)
3114         yystacksize = YYMAXDEPTH;
3115 
3116       {
3117         yy_state_t *yyss1 = yyss;
3118         union yyalloc *yyptr =
3119           YY_CAST (union yyalloc *,
3120                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
3121         if (! yyptr)
3122           YYNOMEM;
3123         YYSTACK_RELOCATE (yyss_alloc, yyss);
3124         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3125         YYSTACK_RELOCATE (yyls_alloc, yyls);
3126 #  undef YYSTACK_RELOCATE
3127         if (yyss1 != yyssa)
3128           YYSTACK_FREE (yyss1);
3129       }
3130 # endif
3131 
3132       yyssp = yyss + yysize - 1;
3133       yyvsp = yyvs + yysize - 1;
3134       yylsp = yyls + yysize - 1;
3135 
3136       YY_IGNORE_USELESS_CAST_BEGIN
3137       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3138                   YY_CAST (long, yystacksize)));
3139       YY_IGNORE_USELESS_CAST_END
3140 
3141       if (yyss + yystacksize - 1 <= yyssp)
3142         YYABORT;
3143     }
3144 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3145 
3146 
3147   if (yystate == YYFINAL)
3148     YYACCEPT;
3149 
3150   goto yybackup;
3151 
3152 
3153 /*-----------.
3154 | yybackup.  |
3155 `-----------*/
3156 yybackup:
3157   /* Do appropriate processing given the current state.  Read a
3158      lookahead token if we need one and don't already have one.  */
3159 
3160   /* First try to decide what to do without reference to lookahead token.  */
3161   yyn = yypact[yystate];
3162   if (yypact_value_is_default (yyn))
3163     goto yydefault;
3164 
3165   /* Not known => get a lookahead token if don't already have one.  */
3166 
3167   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
3168   if (yychar == CSVPARSER_EMPTY)
3169     {
3170       YYDPRINTF ((stderr, "Reading a token\n"));
3171       yychar = yylex (&yylval, &yylloc, lexer);
3172     }
3173 
3174   if (yychar <= CSVPARSER_EOF)
3175     {
3176       yychar = CSVPARSER_EOF;
3177       yytoken = YYSYMBOL_YYEOF;
3178       YYDPRINTF ((stderr, "Now at end of input.\n"));
3179     }
3180   else if (yychar == CSVPARSER_error)
3181     {
3182       /* The scanner already issued an error message, process directly
3183          to error recovery.  But do not keep the error token as
3184          lookahead, it is too special and may lead us to an endless
3185          loop in error recovery. */
3186       yychar = CSVPARSER_UNDEF;
3187       yytoken = YYSYMBOL_YYerror;
3188       yyerror_range[1] = yylloc;
3189       goto yyerrlab1;
3190     }
3191   else
3192     {
3193       yytoken = YYTRANSLATE (yychar);
3194       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3195     }
3196 
3197   /* If the proper action on seeing token YYTOKEN is to reduce or to
3198      detect an error, take that action.  */
3199   yyn += yytoken;
3200   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3201     goto yydefault;
3202   yyn = yytable[yyn];
3203   if (yyn <= 0)
3204     {
3205       if (yytable_value_is_error (yyn))
3206         goto yyerrlab;
3207       yyn = -yyn;
3208       goto yyreduce;
3209     }
3210 
3211   /* Count tokens shifted since error; after three, turn off error
3212      status.  */
3213   if (yyerrstatus)
3214     yyerrstatus--;
3215 
3216   /* Shift the lookahead token.  */
3217   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3218   yystate = yyn;
3219   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3220   *++yyvsp = yylval;
3221   YY_IGNORE_MAYBE_UNINITIALIZED_END
3222   *++yylsp = yylloc;
3223 
3224   /* Discard the shifted token.  */
3225   yychar = CSVPARSER_EMPTY;
3226   goto yynewstate;
3227 
3228 
3229 /*-----------------------------------------------------------.
3230 | yydefault -- do the default action for the current state.  |
3231 `-----------------------------------------------------------*/
3232 yydefault:
3233   yyn = yydefact[yystate];
3234   if (yyn == 0)
3235     goto yyerrlab;
3236   goto yyreduce;
3237 
3238 
3239 /*-----------------------------.
3240 | yyreduce -- do a reduction.  |
3241 `-----------------------------*/
3242 yyreduce:
3243   /* yyn is the number of a rule to reduce with.  */
3244   yylen = yyr2[yyn];
3245 
3246   /* If YYLEN is nonzero, implement the default value of the action:
3247      '$$ = $1'.
3248 
3249      Otherwise, the following line sets YYVAL to garbage.
3250      This behavior is undocumented and Bison
3251      users should not rely upon it.  Assigning to YYVAL
3252      unconditionally makes the parser a bit smaller, and it avoids a
3253      GCC warning that YYVAL may be used uninitialized.  */
3254   yyval = yyvsp[1-yylen];
3255 
3256   /* Default location. */
3257   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3258   yyerror_range[1] = yyloc;
3259   YY_REDUCE_PRINT (yyn);
3260   switch (yyn)
3261     {
3262   case 2: /* start: LL_CONTEXT_PARSER parser_expr_csv  */
3263 #line 417 "modules/csvparser/csvparser-grammar.y"
3264                                                              { YYACCEPT; }
3265 #line 3266 "modules/csvparser/csvparser-grammar.c"
3266     break;
3267 
3268   case 3: /* $@1: %empty  */
3269 #line 423 "modules/csvparser/csvparser-grammar.y"
3270           {
3271             last_parser = *instance = csv_parser_new(configuration);
3272           }
3273 #line 3274 "modules/csvparser/csvparser-grammar.c"
3274     break;
3275 
3276   case 4: /* parser_expr_csv: KW_CSV_PARSER '(' $@1 parser_csv_opts ')'  */
3277 #line 427 "modules/csvparser/csvparser-grammar.y"
3278                                                 { (yyval.ptr) = last_parser; }
3279 #line 3280 "modules/csvparser/csvparser-grammar.c"
3280     break;
3281 
3282   case 7: /* parser_csv_opt: KW_FLAGS '(' parser_csv_flags ')'  */
3283 #line 438 "modules/csvparser/csvparser-grammar.y"
3284                                                 { CHECK_ERROR(csv_parser_set_flags(last_parser, (yyvsp[-1].num)), (yylsp[-1]), "only one escape style can be used in the flags argument"); }
3285 #line 3286 "modules/csvparser/csvparser-grammar.c"
3286     break;
3287 
3288   case 8: /* parser_csv_opt: KW_PREFIX '(' string ')'  */
3289 #line 439 "modules/csvparser/csvparser-grammar.y"
3290                                                 { csv_parser_set_prefix(last_parser, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3291 #line 3292 "modules/csvparser/csvparser-grammar.c"
3292     break;
3293 
3294   case 9: /* parser_csv_opt: KW_DROP_INVALID '(' yesno ')'  */
3295 #line 440 "modules/csvparser/csvparser-grammar.y"
3296                                                 { csv_parser_set_drop_invalid(last_parser, (yyvsp[-1].num)); }
3297 #line 3298 "modules/csvparser/csvparser-grammar.c"
3298     break;
3299 
3300   case 10: /* parser_csv_opt: KW_DIALECT '(' parser_csv_dialect ')'  */
3301 #line 442 "modules/csvparser/csvparser-grammar.y"
3302                                                 { csv_scanner_options_set_dialect(csv_parser_get_scanner_options(last_parser), (yyvsp[-1].num)); }
3303 #line 3304 "modules/csvparser/csvparser-grammar.c"
3304     break;
3305 
3306   case 12: /* parser_csv_opt: KW_QUOTES '(' string ')'  */
3307 #line 444 "modules/csvparser/csvparser-grammar.y"
3308                                                 { csv_scanner_options_set_quotes(csv_parser_get_scanner_options(last_parser), (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3309 #line 3310 "modules/csvparser/csvparser-grammar.c"
3310     break;
3311 
3312   case 13: /* parser_csv_opt: KW_QUOTE_PAIRS '(' string ')'  */
3313 #line 445 "modules/csvparser/csvparser-grammar.y"
3314                                                 { csv_scanner_options_set_quote_pairs(csv_parser_get_scanner_options(last_parser), (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3315 #line 3316 "modules/csvparser/csvparser-grammar.c"
3316     break;
3317 
3318   case 14: /* parser_csv_opt: KW_NULL '(' string ')'  */
3319 #line 446 "modules/csvparser/csvparser-grammar.y"
3320                                                 { csv_scanner_options_set_null_value(csv_parser_get_scanner_options(last_parser), (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3321 #line 3322 "modules/csvparser/csvparser-grammar.c"
3322     break;
3323 
3324   case 15: /* parser_csv_opt: KW_COLUMNS '(' string_list ')'  */
3325 #line 447 "modules/csvparser/csvparser-grammar.y"
3326                                                 { csv_scanner_options_set_columns(csv_parser_get_scanner_options(last_parser), (yyvsp[-1].ptr)); }
3327 #line 3328 "modules/csvparser/csvparser-grammar.c"
3328     break;
3329 
3330   case 17: /* parser_csv_delimiters: string  */
3331 #line 452 "modules/csvparser/csvparser-grammar.y"
3332                                                 {  csv_scanner_options_set_delimiters(csv_parser_get_scanner_options(last_parser), (yyvsp[0].cptr)); free((yyvsp[0].cptr));  }
3333 #line 3334 "modules/csvparser/csvparser-grammar.c"
3334     break;
3335 
3336   case 21: /* parser_csv_delimiters_opt: KW_CHARS '(' string ')'  */
3337 #line 462 "modules/csvparser/csvparser-grammar.y"
3338                                                 { csv_scanner_options_set_delimiters(csv_parser_get_scanner_options(last_parser), (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3339 #line 3340 "modules/csvparser/csvparser-grammar.c"
3340     break;
3341 
3342   case 22: /* parser_csv_delimiters_opt: KW_STRINGS '(' string_list ')'  */
3343 #line 463 "modules/csvparser/csvparser-grammar.y"
3344                                                 { csv_scanner_options_set_string_delimiters(csv_parser_get_scanner_options(last_parser), (yyvsp[-1].ptr)); }
3345 #line 3346 "modules/csvparser/csvparser-grammar.c"
3346     break;
3347 
3348   case 23: /* parser_csv_flags: parser_csv_flag parser_csv_flags  */
3349 #line 468 "modules/csvparser/csvparser-grammar.y"
3350           {
3351             guint32 flag = csv_parser_lookup_flag((yyvsp[-1].cptr));
3352             CHECK_ERROR(flag != 0, (yylsp[-1]), "unknown csv-parser() flag %s", (yyvsp[-1].cptr));
3353             (yyval.num) = flag | (yyvsp[0].num);
3354             free((yyvsp[-1].cptr));
3355           }
3356 #line 3357 "modules/csvparser/csvparser-grammar.c"
3357     break;
3358 
3359   case 24: /* parser_csv_flags: %empty  */
3360 #line 474 "modules/csvparser/csvparser-grammar.y"
3361                                                 { (yyval.num) = 0; }
3362 #line 3363 "modules/csvparser/csvparser-grammar.c"
3363     break;
3364 
3365   case 25: /* parser_csv_flag: normalized_flag  */
3366 #line 478 "modules/csvparser/csvparser-grammar.y"
3367                                                 { (yyval.cptr) = (yyvsp[0].cptr); }
3368 #line 3369 "modules/csvparser/csvparser-grammar.c"
3369     break;
3370 
3371   case 26: /* parser_csv_flag: KW_DROP_INVALID  */
3372 #line 479 "modules/csvparser/csvparser-grammar.y"
3373                                                 { (yyval.cptr) = strdup(lexer->token_text->str); }
3374 #line 3375 "modules/csvparser/csvparser-grammar.c"
3375     break;
3376 
3377   case 27: /* parser_csv_dialect: normalized_flag  */
3378 #line 483 "modules/csvparser/csvparser-grammar.y"
3379                                                 {
3380                                                   gint mode = csv_parser_lookup_dialect((yyvsp[0].cptr));
3381                                                   CHECK_ERROR(mode >= 0, (yylsp[0]), "unknown dialect() argument for csv-parser()");
3382                                                   free((yyvsp[0].cptr));
3383                                                 }
3384 #line 3385 "modules/csvparser/csvparser-grammar.c"
3385     break;
3386 
3387   case 30: /* yesno: KW_YES  */
3388 #line 758 "modules/csvparser/csvparser-grammar.y"
3389                                                 { (yyval.num) = 1; }
3390 #line 3391 "modules/csvparser/csvparser-grammar.c"
3391     break;
3392 
3393   case 31: /* yesno: KW_NO  */
3394 #line 759 "modules/csvparser/csvparser-grammar.y"
3395                                                 { (yyval.num) = 0; }
3396 #line 3397 "modules/csvparser/csvparser-grammar.c"
3397     break;
3398 
3399   case 32: /* yesno: LL_NUMBER  */
3400 #line 760 "modules/csvparser/csvparser-grammar.y"
3401                                                 { (yyval.num) = (yyvsp[0].num); }
3402 #line 3403 "modules/csvparser/csvparser-grammar.c"
3403     break;
3404 
3405   case 33: /* normalized_flag: string  */
3406 #line 847 "modules/csvparser/csvparser-grammar.y"
3407                                                 { (yyval.cptr) = normalize_flag((yyvsp[0].cptr)); free((yyvsp[0].cptr)); }
3408 #line 3409 "modules/csvparser/csvparser-grammar.c"
3409     break;
3410 
3411   case 34: /* string_list: string_list_build  */
3412 #line 851 "modules/csvparser/csvparser-grammar.y"
3413                                                 { (yyval.ptr) = (yyvsp[0].ptr); }
3414 #line 3415 "modules/csvparser/csvparser-grammar.c"
3415     break;
3416 
3417   case 35: /* string_list_build: string string_list_build  */
3418 #line 855 "modules/csvparser/csvparser-grammar.y"
3419                                                 { (yyval.ptr) = g_list_prepend((yyvsp[0].ptr), g_strdup((yyvsp[-1].cptr))); free((yyvsp[-1].cptr)); }
3420 #line 3421 "modules/csvparser/csvparser-grammar.c"
3421     break;
3422 
3423   case 36: /* string_list_build: %empty  */
3424 #line 856 "modules/csvparser/csvparser-grammar.y"
3425                                                 { (yyval.ptr) = NULL; }
3426 #line 3427 "modules/csvparser/csvparser-grammar.c"
3427     break;
3428 
3429   case 37: /* parser_opt: KW_TEMPLATE '(' string ')'  */
3430 #line 888 "modules/csvparser/csvparser-grammar.y"
3431                                                 {
3432                                                   LogTemplate *template;
3433                                                   GError *error = NULL;
3434 
3435                                                   template = cfg_tree_check_inline_template(&configuration->tree, (yyvsp[-1].cptr), &error);
3436                                                   CHECK_ERROR_GERROR(template != NULL, (yylsp[-1]), error, "Error compiling template");
3437                                                   log_parser_set_template(last_parser, template);
3438                                                   free((yyvsp[-1].cptr));
3439                                                 }
3440 #line 3441 "modules/csvparser/csvparser-grammar.c"
3441     break;
3442 
3443 
3444 #line 3445 "modules/csvparser/csvparser-grammar.c"
3445 
3446       default: break;
3447     }
3448   /* User semantic actions sometimes alter yychar, and that requires
3449      that yytoken be updated with the new translation.  We take the
3450      approach of translating immediately before every use of yytoken.
3451      One alternative is translating here after every semantic action,
3452      but that translation would be missed if the semantic action invokes
3453      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3454      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
3455      incorrect destructor might then be invoked immediately.  In the
3456      case of YYERROR or YYBACKUP, subsequent parser actions might lead
3457      to an incorrect destructor call or verbose syntax error message
3458      before the lookahead is translated.  */
3459   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
3460 
3461   YYPOPSTACK (yylen);
3462   yylen = 0;
3463 
3464   *++yyvsp = yyval;
3465   *++yylsp = yyloc;
3466 
3467   /* Now 'shift' the result of the reduction.  Determine what state
3468      that goes to, based on the state we popped back to and the rule
3469      number reduced by.  */
3470   {
3471     const int yylhs = yyr1[yyn] - YYNTOKENS;
3472     const int yyi = yypgoto[yylhs] + *yyssp;
3473     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3474                ? yytable[yyi]
3475                : yydefgoto[yylhs]);
3476   }
3477 
3478   goto yynewstate;
3479 
3480 
3481 /*--------------------------------------.
3482 | yyerrlab -- here on detecting error.  |
3483 `--------------------------------------*/
3484 yyerrlab:
3485   /* Make sure we have latest lookahead translation.  See comments at
3486      user semantic actions for why this is necessary.  */
3487   yytoken = yychar == CSVPARSER_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
3488   /* If not already recovering from an error, report this error.  */
3489   if (!yyerrstatus)
3490     {
3491       ++yynerrs;
3492       {
3493         yypcontext_t yyctx
3494           = {yyssp, yytoken, &yylloc};
3495         char const *yymsgp = YY_("syntax error");
3496         int yysyntax_error_status;
3497         yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3498         if (yysyntax_error_status == 0)
3499           yymsgp = yymsg;
3500         else if (yysyntax_error_status == -1)
3501           {
3502             if (yymsg != yymsgbuf)
3503               YYSTACK_FREE (yymsg);
3504             yymsg = YY_CAST (char *,
3505                              YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
3506             if (yymsg)
3507               {
3508                 yysyntax_error_status
3509                   = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3510                 yymsgp = yymsg;
3511               }
3512             else
3513               {
3514                 yymsg = yymsgbuf;
3515                 yymsg_alloc = sizeof yymsgbuf;
3516                 yysyntax_error_status = YYENOMEM;
3517               }
3518           }
3519         yyerror (&yylloc, lexer, instance, arg, yymsgp);
3520         if (yysyntax_error_status == YYENOMEM)
3521           YYNOMEM;
3522       }
3523     }
3524 
3525   yyerror_range[1] = yylloc;
3526   if (yyerrstatus == 3)
3527     {
3528       /* If just tried and failed to reuse lookahead token after an
3529          error, discard it.  */
3530 
3531       if (yychar <= CSVPARSER_EOF)
3532         {
3533           /* Return failure if at end of input.  */
3534           if (yychar == CSVPARSER_EOF)
3535             YYABORT;
3536         }
3537       else
3538         {
3539           yydestruct ("Error: discarding",
3540                       yytoken, &yylval, &yylloc, lexer, instance, arg);
3541           yychar = CSVPARSER_EMPTY;
3542         }
3543     }
3544 
3545   /* Else will try to reuse lookahead token after shifting the error
3546      token.  */
3547   goto yyerrlab1;
3548 
3549 
3550 /*---------------------------------------------------.
3551 | yyerrorlab -- error raised explicitly by YYERROR.  |
3552 `---------------------------------------------------*/
3553 yyerrorlab:
3554   /* Pacify compilers when the user code never invokes YYERROR and the
3555      label yyerrorlab therefore never appears in user code.  */
3556   if (0)
3557     YYERROR;
3558   ++yynerrs;
3559 
3560   /* Do not reclaim the symbols of the rule whose action triggered
3561      this YYERROR.  */
3562   YYPOPSTACK (yylen);
3563   yylen = 0;
3564   YY_STACK_PRINT (yyss, yyssp);
3565   yystate = *yyssp;
3566   goto yyerrlab1;
3567 
3568 
3569 /*-------------------------------------------------------------.
3570 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
3571 `-------------------------------------------------------------*/
3572 yyerrlab1:
3573   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3574 
3575   /* Pop stack until we find a state that shifts the error token.  */
3576   for (;;)
3577     {
3578       yyn = yypact[yystate];
3579       if (!yypact_value_is_default (yyn))
3580         {
3581           yyn += YYSYMBOL_YYerror;
3582           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
3583             {
3584               yyn = yytable[yyn];
3585               if (0 < yyn)
3586                 break;
3587             }
3588         }
3589 
3590       /* Pop the current state because it cannot handle the error token.  */
3591       if (yyssp == yyss)
3592         YYABORT;
3593 
3594       yyerror_range[1] = *yylsp;
3595       yydestruct ("Error: popping",
3596                   YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, lexer, instance, arg);
3597       YYPOPSTACK (1);
3598       yystate = *yyssp;
3599       YY_STACK_PRINT (yyss, yyssp);
3600     }
3601 
3602   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3603   *++yyvsp = yylval;
3604   YY_IGNORE_MAYBE_UNINITIALIZED_END
3605 
3606   yyerror_range[2] = yylloc;
3607   ++yylsp;
3608   YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
3609 
3610   /* Shift the error token.  */
3611   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
3612 
3613   yystate = yyn;
3614   goto yynewstate;
3615 
3616 
3617 /*-------------------------------------.
3618 | yyacceptlab -- YYACCEPT comes here.  |
3619 `-------------------------------------*/
3620 yyacceptlab:
3621   yyresult = 0;
3622   goto yyreturnlab;
3623 
3624 
3625 /*-----------------------------------.
3626 | yyabortlab -- YYABORT comes here.  |
3627 `-----------------------------------*/
3628 yyabortlab:
3629   yyresult = 1;
3630   goto yyreturnlab;
3631 
3632 
3633 /*-----------------------------------------------------------.
3634 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
3635 `-----------------------------------------------------------*/
3636 yyexhaustedlab:
3637   yyerror (&yylloc, lexer, instance, arg, YY_("memory exhausted"));
3638   yyresult = 2;
3639   goto yyreturnlab;
3640 
3641 
3642 /*----------------------------------------------------------.
3643 | yyreturnlab -- parsing is finished, clean up and return.  |
3644 `----------------------------------------------------------*/
3645 yyreturnlab:
3646   if (yychar != CSVPARSER_EMPTY)
3647     {
3648       /* Make sure we have latest lookahead translation.  See comments at
3649          user semantic actions for why this is necessary.  */
3650       yytoken = YYTRANSLATE (yychar);
3651       yydestruct ("Cleanup: discarding lookahead",
3652                   yytoken, &yylval, &yylloc, lexer, instance, arg);
3653     }
3654   /* Do not reclaim the symbols of the rule whose action triggered
3655      this YYABORT or YYACCEPT.  */
3656   YYPOPSTACK (yylen);
3657   YY_STACK_PRINT (yyss, yyssp);
3658   while (yyssp != yyss)
3659     {
3660       yydestruct ("Cleanup: popping",
3661                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, lexer, instance, arg);
3662       YYPOPSTACK (1);
3663     }
3664 #ifndef yyoverflow
3665   if (yyss != yyssa)
3666     YYSTACK_FREE (yyss);
3667 #endif
3668   if (yymsg != yymsgbuf)
3669     YYSTACK_FREE (yymsg);
3670   return yyresult;
3671 }
3672 
3673 #line 1254 "modules/csvparser/csvparser-grammar.y"
3674 
3675