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