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