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