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