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