From: Wouter Wijngaards Date: Thu, 29 Oct 2009 10:37:44 +0000 (+0000) Subject: edns-buffer-size option. X-Git-Tag: release-1.4.0rc1~23 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5b66f07e389e5fda24e51021c85944bb3aa9734a;p=thirdparty%2Funbound.git edns-buffer-size option. git-svn-id: file:///svn/unbound/trunk@1881 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index 066ce1f46..43de8fb2b 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,6 @@ 29 October 2009: Wouter - iana portlist updated. + - edns-buffer-size option, default 4096. 28 October 2009: Wouter - removed abort on prealloc failure, error still printed but softfail. diff --git a/doc/example.conf.in b/doc/example.conf.in index 159097114..f285e2fff 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -77,6 +77,10 @@ server: # 0 is system default. Use 4m to catch query spikes for busy servers. # so-rcvbuf: 0 + # EDNS reassembly buffer to advertise to UDP peers (the actual buffer + # is set with msg-buffer-size). 1480 can solve fragmentation (timeouts). + # edns-buffer-size: 4096 + # buffer size for handling DNS data. No messages larger than this # size can be sent or received, by UDP or TCP. In bytes. # msg-buffer-size: 65552 diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 823a6c7ec..6e4c29c66 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -165,6 +165,17 @@ to 0, or if do_tcp is "no", no TCP queries to authoritative servers are done. Number of incoming TCP buffers to allocate per thread. Default is 10. If set to 0, or if do_tcp is "no", no TCP queries from clients are accepted. .TP +.B edns\-buffer\-size: \fI +Number of bytes size to advertise as the EDNS reassembly buffer size. +This is the value put into datagrams over UDP towards peers. The actual +buffer size is determined by msg\-buffer\-size (both for TCP and UDP). Do +not set lower than that value. Default is 4096 which is RFC recommended. +If you have fragmentation reassembly problems, usually seen as timeouts, +then a value of 1480 can fix it. Setting to 512 bypasses even the most +stringent path MTU problems, but is seen as extreme, since the amount +of TCP fallback generated is excessive (probably also for this resolver, +consider tuning the outgoing tcp number). +.TP .B msg\-buffer\-size: \fI Number of bytes size of the message buffers. Default is 65552 bytes, enough for 64 Kb packets, the maximum DNS message size. No message larger than this diff --git a/smallapp/unbound-checkconf.c b/smallapp/unbound-checkconf.c index 22259c0c9..0e57966bd 100644 --- a/smallapp/unbound-checkconf.c +++ b/smallapp/unbound-checkconf.c @@ -135,6 +135,7 @@ print_option(struct config_file* cfg, const char* opt) else O_DEC(opt, "outgoing-range", outgoing_num_ports) else O_DEC(opt, "outgoing-num-tcp", outgoing_num_tcp) else O_DEC(opt, "incoming-num-tcp", incoming_num_tcp) + else O_DEC(opt, "edns-buffer-size", edns_buffer_size) else O_DEC(opt, "msg-buffer-size", msg_buffer_size) else O_MEM(opt, "msg-cache-size", msg_cache_size) else O_DEC(opt, "msg-cache-slabs", msg_cache_slabs) @@ -442,6 +443,9 @@ morechecks(struct config_file* cfg, const char* fname) fatal_exit("ip4 and ip6 are both disabled, pointless"); if(!cfg->do_udp && !cfg->do_tcp) fatal_exit("udp and tcp are both disabled, pointless"); + if(cfg->edns_buffer_size > cfg->msg_buffer_size) + fatal_exit("edns-buffer-size larger than msg-buffer-size, " + "answers will not fit in processing buffer"); if(cfg->chrootdir && cfg->chrootdir[0] && cfg->chrootdir[strlen(cfg->chrootdir)-1] == '/') diff --git a/util/config_file.c b/util/config_file.c index 5aa30addb..36e832730 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -95,6 +95,7 @@ config_create() cfg->outgoing_num_tcp = 2; /* leaves 64-52=12 for: 4if,1stop,thread4 */ cfg->incoming_num_tcp = 2; #endif + cfg->edns_buffer_size = 4096; /* 4k from rfc recommendation */ cfg->msg_buffer_size = 65552; /* 64 k + a small margin */ cfg->msg_cache_size = 4 * 1024 * 1024; cfg->msg_cache_slabs = 4; @@ -277,6 +278,9 @@ int config_set_option(struct config_file* cfg, const char* opt, } else if(strcmp(opt, "incoming-num-tcp:") == 0) { IS_NUMBER_OR_ZERO; cfg->incoming_num_tcp = (size_t)atoi(val); + } else if(strcmp(opt, "edns-buffer-size:") == 0) { + IS_NONZERO_NUMBER; + cfg->edns_buffer_size = (size_t)atoi(val); } else if(strcmp(opt, "msg-buffer-size:") == 0) { IS_NONZERO_NUMBER; cfg->msg_buffer_size = (size_t)atoi(val); @@ -850,6 +854,7 @@ config_apply(struct config_file* config) { MAX_TTL = (uint32_t)config->max_ttl; MIN_TTL = (uint32_t)config->min_ttl; + EDNS_ADVERTISED_SIZE = (uint16_t)config->edns_buffer_size; log_set_time_asc(config->log_time_ascii); } diff --git a/util/config_file.h b/util/config_file.h index c8379db65..fe71bfdac 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -86,6 +86,8 @@ struct config_file { /** allowed udp port numbers, array with 0 if not allowed */ int* outgoing_avail_ports; + /** EDNS buffer size to use */ + size_t edns_buffer_size; /** number of bytes buffer size for DNS messages */ size_t msg_buffer_size; /** size of the message cache */ diff --git a/util/configlexer.c b/util/configlexer.c index bb753c5dc..57933b939 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -362,8 +362,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 126 -#define YY_END_OF_BUFFER 127 +#define YY_NUM_RULES 127 +#define YY_END_OF_BUFFER 128 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -371,138 +371,141 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1187] = +static yyconst flex_int16_t yy_accept[1203] = { 0, - 1, 1, 108, 108, 112, 112, 116, 116, 120, 120, - 1, 1, 127, 124, 1, 106, 106, 125, 124, 125, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 108, - 109, 109, 110, 125, 112, 113, 113, 114, 125, 119, - 116, 117, 117, 118, 125, 120, 121, 121, 122, 125, - 123, 107, 123, 111, 125, 123, 124, 0, 1, 0, - 124, 0, 2, 0, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 108, 0, 112, 0, 119, - 0, 116, 120, 0, 123, 0, 123, 0, 123, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 123, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 123, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 52, 124, 124, 124, - 124, 124, 6, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 123, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 123, 124, 124, 124, - 124, 21, 124, 124, 124, 124, 124, 12, 13, 124, - 15, 14, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 104, 124, 124, 124, 124, 3, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 115, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 24, 124, 124, 124, 124, - 124, 124, 124, 25, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 65, 115, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 64, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 22, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 23, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 17, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 20, 124, 53, 54, - 124, 51, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 5, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 67, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 90, 89, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 26, - 124, 124, 124, 124, 55, 124, 124, 124, 124, 124, - 87, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 44, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 4, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 84, 124, - 124, 124, 124, 124, 124, 124, 98, 85, 124, 16, - 124, 124, 124, 57, 58, 56, 124, 124, 124, 124, - 124, 63, 124, 124, 124, 124, 124, 124, 124, 124, - 86, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 72, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 32, - 33, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 62, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 66, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 103, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 76, 124, 79, 124, 124, 124, 124, 61, - 124, 124, 96, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 34, 35, - 124, 40, 80, 124, 91, 88, 124, 28, 124, 82, - 124, 124, 124, 124, 124, 7, 124, 50, 95, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 68, 124, 124, 105, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 81, 27, 29, 124, 124, 124, - 124, 124, 49, 124, 124, 124, 99, 124, 124, 124, - 124, 124, 124, 47, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 101, 124, 124, 124, 124, 124, 124, - 124, 11, 124, 124, 124, 124, 124, 124, 10, 124, - 124, 30, 124, 100, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 75, 74, 124, 102, 97, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 36, 124, - 124, 124, 124, 124, 31, 124, 124, 124, 69, 71, - - 124, 124, 124, 73, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 18, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 94, 124, 124, 124, 124, 124, 124, 19, 124, 9, - 124, 124, 92, 41, 124, 124, 124, 78, 124, 59, - 124, 124, 43, 46, 42, 124, 37, 124, 8, 124, - 124, 77, 124, 124, 124, 124, 38, 124, 93, 124, - 124, 70, 60, 45, 39, 124, 124, 124, 124, 48, - 124, 124, 124, 124, 83, 0 + 1, 1, 109, 109, 113, 113, 117, 117, 121, 121, + 1, 1, 128, 125, 1, 107, 107, 126, 125, 126, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 109, + 110, 110, 111, 126, 113, 114, 114, 115, 126, 120, + 117, 118, 118, 119, 126, 121, 122, 122, 123, 126, + 124, 108, 124, 112, 126, 124, 125, 0, 1, 0, + 125, 0, 2, 0, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 109, 0, 113, 0, + 120, 0, 117, 121, 0, 124, 0, 124, 0, 124, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 124, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 124, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 53, 125, 125, 125, 125, 125, 6, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + + 125, 124, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 124, 125, 125, 125, 125, 21, 125, 125, 125, + 125, 125, 12, 13, 125, 15, 14, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 105, 125, + 125, 125, 125, 3, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 124, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 116, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 24, 125, 125, 125, 125, 125, 125, 125, + 25, 125, 125, 125, 125, 125, 125, 125, 125, 125, + + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 66, + 116, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 65, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 22, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + + 125, 125, 125, 125, 125, 125, 125, 125, 23, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 17, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 20, 125, 54, 55, 125, + 52, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 5, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 68, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 91, 90, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 26, + 125, 125, 125, 125, 56, 125, 125, 125, 125, 125, + 88, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 45, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 4, 125, 125, 125, 125, 125, 125, 125, + + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 85, + 125, 125, 125, 125, 125, 125, 125, 99, 86, 125, + 16, 125, 125, 125, 125, 58, 59, 57, 125, 125, + 125, 125, 125, 64, 125, 125, 125, 125, 125, 125, + 125, 125, 87, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 73, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 33, 34, 125, 125, 125, 125, 125, 125, 125, + + 125, 125, 125, 125, 125, 125, 125, 63, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 67, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 104, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 77, 125, 80, 125, 125, + 125, 125, 62, 125, 125, 97, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 35, 36, 125, 41, 81, 125, 92, 89, + 125, 29, 125, 83, 125, 125, 125, 125, 125, 7, + 125, 51, 96, 125, 125, 125, 125, 125, 125, 125, + + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 69, 125, 125, 106, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 82, + 28, 30, 125, 125, 125, 125, 125, 50, 125, 125, + 125, 100, 125, 125, 125, 125, 125, 125, 48, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 102, 125, + 125, 27, 125, 125, 125, 125, 125, 11, 125, 125, + 125, 125, 125, 125, 10, 125, 125, 31, 125, 101, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 76, 75, 125, 103, 98, 125, 125, 125, 125, 125, + + 125, 125, 125, 125, 37, 125, 125, 125, 125, 125, + 32, 125, 125, 125, 70, 72, 125, 125, 125, 74, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 18, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 95, 125, 125, 125, + 125, 125, 125, 19, 125, 9, 125, 125, 93, 42, + 125, 125, 125, 79, 125, 60, 125, 125, 44, 47, + 43, 125, 38, 125, 8, 125, 125, 78, 125, 125, + 125, 125, 39, 125, 94, 125, 125, 71, 61, 46, + 40, 125, 125, 125, 125, 49, 125, 125, 125, 125, + + 84, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -545,549 +548,556 @@ static yyconst flex_int32_t yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1201] = +static yyconst flex_int16_t yy_base[1217] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 2288, 2273, 50, 2375, 2375, 2375, 129, 94, - 70, 124, 122, 71, 89, 105, 112, 92, 110, 94, - 130, 135, 61, 133, 147, 154, 143, 141, 163, 2272, - 2375, 2375, 2375, 58, 2271, 2375, 2375, 2375, 42, 2270, - 2279, 2375, 2375, 2375, 181, 2267, 2375, 2375, 2375, 175, - 2205, 2375, 187, 2375, 191, 157, 2043, 197, 157, 1759, - 208, 1661, 2375, 1448, 190, 201, 184, 192, 72, 203, - 194, 209, 62, 215, 211, 212, 214, 216, 213, 219, - 221, 224, 234, 238, 226, 223, 243, 235, 244, 247, - - 245, 246, 252, 253, 138, 254, 256, 262, 258, 260, - 261, 265, 270, 268, 267, 1198, 285, 1145, 290, 786, - 298, 753, 676, 302, 401, 306, 312, 401, 283, 291, - 310, 299, 103, 307, 308, 316, 313, 320, 329, 323, - 321, 309, 327, 325, 334, 339, 317, 336, 337, 340, - 347, 344, 358, 346, 360, 361, 368, 370, 352, 369, - 362, 371, 372, 373, 374, 376, 377, 378, 383, 269, - 379, 385, 389, 392, 400, 405, 397, 398, 406, 413, - 411, 412, 384, 415, 418, 419, 425, 422, 428, 429, - 430, 431, 433, 435, 437, 444, 441, 445, 446, 448, - - 450, 451, 457, 453, 455, 454, 460, 458, 462, 472, - 473, 475, 478, 477, 480, 481, 483, 484, 490, 487, - 489, 488, 496, 502, 501, 499, 500, 508, 503, 528, - 509, 512, 513, 510, 518, 515, 525, 516, 522, 523, - 526, 539, 545, 551, 532, 541, 554, 555, 556, 558, - 559, 562, 563, 561, 566, 579, 577, 580, 568, 586, - 593, 582, 578, 589, 592, 595, 2375, 597, 599, 600, - 601, 602, 2375, 603, 604, 606, 607, 617, 609, 616, - 605, 621, 619, 630, 626, 631, 628, 633, 636, 640, - 641, 642, 643, 644, 645, 648, 655, 658, 664, 657, - - 650, 660, 672, 663, 666, 674, 564, 677, 680, 682, - 688, 685, 687, 696, 692, 694, 700, 699, 701, 693, - 702, 704, 708, 709, 717, 705, 719, 721, 715, 724, - 731, 727, 732, 734, 736, 730, 738, 739, 740, 751, - 754, 753, 755, 761, 757, 723, 763, 764, 765, 766, - 773, 769, 771, 772, 774, 776, 778, 780, 784, 785, - 788, 794, 782, 796, 797, 798, 802, 801, 805, 808, - 810, 2375, 818, 816, 814, 815, 821, 2375, 2375, 817, - 2375, 2375, 822, 824, 830, 837, 833, 827, 826, 840, - 835, 846, 843, 852, 854, 848, 850, 859, 860, 862, - - 865, 864, 871, 866, 873, 875, 876, 879, 878, 887, - 893, 880, 2375, 889, 882, 890, 895, 2375, 897, 900, - 901, 902, 903, 908, 904, 911, 919, 913, 907, 915, - 923, 916, 929, 936, 932, 920, 933, 939, 924, 941, - 943, 945, 947, 948, 949, 950, 974, 952, 953, 954, - 957, 955, 958, 966, 962, 968, 975, 980, 984, 986, - 991, 992, 996, 2375, 998, 997, 999, 1001, 1002, 1003, - 1004, 1008, 1006, 1010, 1020, 2375, 1016, 1017, 1025, 1027, - 1019, 1033, 1040, 2375, 1037, 1036, 1029, 1042, 1043, 1045, - 1047, 959, 1048, 1049, 1053, 1055, 1054, 1056, 1057, 1058, - - 1070, 1071, 1063, 1075, 1064, 1072, 1009, 1080, 1077, 1079, - 1081, 1082, 2375, 319, 1084, 1087, 1085, 1094, 1096, 1092, - 1090, 1099, 1101, 1093, 1103, 1110, 1111, 1112, 1114, 1115, - 1116, 1120, 1117, 1122, 1123, 1125, 1126, 1127, 1128, 1130, - 1131, 2375, 1138, 1139, 1136, 1148, 1159, 1149, 1151, 1166, - 1163, 1165, 1167, 1141, 1157, 1174, 1176, 1172, 1178, 1179, - 1180, 1181, 1173, 1185, 1183, 1186, 1187, 1189, 1201, 1190, - 1204, 1207, 1208, 1211, 1192, 1215, 1216, 1217, 1218, 1219, - 2375, 1225, 1227, 1228, 1234, 1230, 1231, 1232, 1237, 1238, - 1240, 1246, 1242, 1244, 1247, 1248, 1251, 1245, 1254, 1252, - - 2375, 1260, 1253, 1256, 1261, 1257, 1269, 1267, 1268, 1276, - 1278, 1280, 1284, 1281, 1285, 1288, 1290, 1291, 1297, 1298, - 1300, 2375, 1302, 1304, 1305, 1313, 1310, 1306, 1314, 1321, - 1315, 1317, 1319, 1322, 1323, 1326, 1327, 1328, 1331, 1330, - 1339, 1332, 1345, 1346, 1333, 1354, 2375, 1355, 2375, 2375, - 1357, 2375, 1358, 1359, 1340, 1362, 1360, 1364, 1366, 1368, - 1370, 1371, 1372, 1377, 1373, 2375, 1379, 1380, 1383, 1381, - 1385, 1387, 1388, 1393, 1400, 1389, 1399, 1402, 2375, 1406, - 1391, 1412, 1403, 1410, 1414, 1417, 1418, 1420, 1421, 1424, - 1425, 1427, 1429, 1431, 1435, 1432, 1433, 1436, 1439, 1441, - - 1437, 1440, 2375, 2375, 1455, 1450, 1451, 1460, 1462, 1466, - 1464, 1465, 1467, 1468, 1473, 1474, 1475, 1477, 1478, 2375, - 1484, 1488, 1489, 1491, 2375, 1482, 1481, 1497, 1498, 1501, - 2375, 1502, 1503, 1504, 1505, 1506, 1508, 1512, 1513, 1521, - 1515, 1518, 1524, 1531, 1525, 1523, 1527, 1539, 1543, 1540, - 1545, 1551, 1532, 1534, 1548, 1556, 1558, 1559, 2375, 1565, - 1550, 1566, 1552, 1564, 1572, 1569, 1570, 1571, 1573, 1574, - 1576, 1578, 1579, 1582, 1585, 1589, 1592, 1584, 1586, 1597, - 1598, 2375, 1600, 1608, 1599, 1606, 1607, 1609, 1611, 1615, - 1616, 1620, 1624, 1617, 1622, 1632, 1642, 1634, 1628, 1644, - - 1643, 1621, 1645, 1646, 1652, 1648, 1654, 1650, 2375, 1653, - 1659, 1661, 1663, 1667, 1668, 1664, 2375, 2375, 1665, 2375, - 1675, 1666, 1679, 2375, 2375, 2375, 1683, 1680, 1681, 1689, - 1686, 2375, 1690, 1692, 1694, 1695, 1696, 1699, 1698, 1700, - 2375, 1701, 1702, 1703, 1705, 1717, 1709, 1718, 1722, 1725, - 1726, 1719, 1712, 1733, 1729, 1727, 1736, 1739, 1740, 1742, - 1744, 1743, 1745, 1741, 1747, 1756, 2375, 1759, 1748, 1757, - 1768, 1760, 1771, 1764, 1772, 1774, 1775, 1778, 1781, 2375, - 2375, 1782, 1785, 1786, 1780, 1790, 1793, 1794, 1796, 1798, - 1799, 1800, 1802, 1803, 2375, 1804, 1806, 1810, 1811, 1816, - - 1826, 1820, 1828, 1830, 1813, 1835, 1837, 2375, 1838, 1840, - 1822, 1845, 1831, 1842, 1805, 1846, 1851, 1852, 1854, 2375, - 1856, 1857, 1858, 1860, 1861, 1863, 1864, 1865, 1867, 1868, - 1875, 1874, 2375, 1873, 2375, 1879, 1881, 1890, 1886, 2375, - 1889, 1891, 2375, 1894, 1896, 1899, 1902, 1905, 1910, 1892, - 1900, 1911, 1918, 1915, 1907, 1914, 1917, 1922, 2375, 2375, - 1926, 2375, 2375, 1929, 2375, 2375, 1931, 2375, 1933, 2375, - 1939, 1935, 1937, 1938, 1940, 2375, 1942, 2375, 2375, 1943, - 1944, 1947, 1950, 1951, 1954, 1955, 1956, 1957, 1958, 1962, - 1964, 1959, 1966, 1970, 1965, 1974, 1975, 1971, 1977, 1980, - - 2375, 1981, 1990, 2375, 1987, 1984, 1992, 1995, 1994, 1998, - 2005, 2001, 2003, 2004, 2375, 2375, 2375, 2006, 2009, 2008, - 2014, 2015, 2375, 2018, 2019, 2021, 2375, 2027, 2023, 2025, - 2030, 2031, 2032, 2375, 2037, 2039, 2041, 2042, 2048, 2050, - 2056, 2054, 2059, 2375, 2055, 2061, 2062, 2063, 2066, 2067, - 2069, 2375, 2064, 2070, 2077, 2071, 2074, 2079, 2375, 2081, - 2085, 2375, 2087, 2375, 2088, 2091, 2093, 2095, 2100, 2097, - 2102, 2106, 2104, 2105, 2375, 2375, 2107, 2375, 2375, 2110, - 2111, 2112, 2114, 2117, 2118, 2120, 2123, 2121, 2375, 2124, - 2125, 2134, 2135, 2128, 2375, 2136, 2140, 2126, 2375, 2375, - - 2142, 2148, 2144, 2375, 2150, 2154, 2156, 2157, 2159, 2160, - 2161, 2162, 2164, 2165, 2166, 2168, 2173, 2375, 2182, 2174, - 2171, 2184, 2187, 2177, 2188, 2179, 2190, 2192, 2198, 2195, - 2375, 2201, 2203, 2208, 2210, 2211, 2213, 2375, 2217, 2375, - 2220, 2221, 2375, 2375, 2215, 2225, 2222, 2375, 2228, 2375, - 2229, 2230, 2375, 2375, 2375, 2232, 2375, 2235, 2375, 2237, - 2238, 2375, 2240, 2242, 2244, 2246, 2375, 2248, 2375, 2250, - 2251, 2375, 2375, 2375, 2375, 2255, 2254, 2257, 2260, 2375, - 2261, 2263, 2264, 2266, 2375, 2375, 2296, 2302, 2308, 2314, - 2320, 125, 2326, 2332, 2338, 2344, 2350, 2356, 2362, 2368 - + 87, 108, 2319, 2305, 50, 2405, 2405, 2405, 129, 94, + 70, 124, 122, 90, 89, 106, 112, 95, 130, 133, + 136, 140, 50, 138, 144, 152, 142, 150, 165, 2304, + 2405, 2405, 2405, 70, 2303, 2405, 2405, 2405, 42, 2302, + 2310, 2405, 2405, 2405, 182, 2298, 2405, 2405, 2405, 186, + 2233, 2405, 190, 2405, 194, 154, 1839, 200, 116, 1664, + 211, 1241, 2405, 1173, 193, 204, 72, 195, 197, 206, + 146, 207, 187, 217, 213, 214, 218, 219, 222, 216, + 229, 84, 223, 238, 239, 224, 233, 240, 242, 244, + + 250, 251, 252, 253, 257, 256, 258, 260, 267, 265, + 263, 259, 268, 274, 272, 275, 1108, 291, 795, 294, + 717, 298, 700, 574, 303, 276, 307, 313, 185, 297, + 306, 314, 308, 310, 312, 315, 321, 317, 324, 336, + 325, 320, 328, 329, 330, 332, 341, 331, 342, 344, + 338, 347, 353, 361, 359, 351, 369, 366, 373, 375, + 367, 376, 377, 378, 379, 380, 381, 383, 384, 385, + 389, 111, 386, 391, 398, 407, 413, 392, 404, 396, + 412, 419, 417, 390, 418, 421, 423, 427, 430, 424, + 432, 434, 435, 433, 443, 441, 444, 446, 453, 449, + + 450, 452, 456, 454, 458, 464, 460, 461, 462, 466, + 467, 474, 481, 483, 468, 478, 487, 490, 491, 484, + 494, 500, 497, 498, 501, 502, 510, 507, 506, 508, + 513, 509, 533, 515, 518, 519, 520, 528, 521, 529, + 531, 538, 542, 534, 544, 550, 562, 546, 556, 561, + 564, 563, 567, 568, 569, 570, 573, 576, 575, 590, + 581, 588, 589, 594, 596, 597, 525, 598, 599, 600, + 2405, 604, 607, 608, 609, 610, 2405, 611, 612, 614, + 613, 629, 615, 617, 623, 635, 625, 632, 630, 640, + 634, 646, 638, 644, 648, 649, 652, 655, 657, 654, + + 662, 665, 672, 658, 664, 671, 676, 678, 679, 680, + 683, 681, 688, 693, 701, 698, 700, 707, 685, 703, + 705, 715, 712, 713, 704, 714, 711, 720, 721, 731, + 727, 730, 734, 729, 735, 744, 737, 745, 746, 747, + 741, 750, 751, 753, 762, 768, 765, 766, 772, 773, + 770, 776, 777, 778, 779, 786, 754, 783, 784, 782, + 785, 788, 793, 797, 799, 803, 805, 791, 807, 811, + 812, 813, 816, 817, 815, 822, 2405, 829, 828, 825, + 827, 830, 2405, 2405, 833, 2405, 2405, 837, 834, 838, + 844, 851, 847, 841, 848, 854, 849, 860, 857, 864, + + 868, 862, 866, 867, 876, 874, 878, 880, 881, 886, + 887, 888, 890, 893, 894, 900, 902, 891, 2405, 903, + 904, 911, 913, 2405, 905, 914, 915, 909, 920, 907, + 925, 922, 932, 930, 933, 935, 937, 917, 939, 946, + 945, 943, 944, 954, 950, 956, 959, 951, 960, 953, + 962, 963, 987, 965, 968, 967, 971, 973, 974, 975, + 983, 999, 991, 989, 979, 997, 976, 995, 1004, 1011, + 2405, 1013, 1012, 1014, 1006, 1016, 1017, 1018, 1022, 1020, + 1024, 1034, 2405, 1028, 1030, 1031, 1039, 1032, 1045, 1047, + 2405, 1048, 1050, 1051, 1054, 1055, 1056, 1057, 1059, 1060, + + 1064, 1067, 1068, 1070, 1071, 1069, 1073, 1083, 1085, 1077, + 1089, 1079, 1086, 1090, 1095, 1093, 1094, 1096, 1097, 2405, + 82, 1099, 1101, 1104, 1110, 1112, 1109, 1106, 1117, 1118, + 1119, 1121, 1126, 1127, 1128, 1130, 1129, 1133, 1132, 1139, + 1140, 1141, 1142, 1144, 1146, 1147, 1152, 1149, 1150, 2405, + 1154, 1158, 1157, 1170, 1179, 1160, 1162, 1181, 1182, 1180, + 1186, 1184, 1172, 1193, 1194, 1191, 1195, 1192, 1200, 1197, + 1202, 1203, 1205, 1207, 1209, 1211, 1214, 1216, 1219, 1222, + 1223, 1226, 1229, 1230, 1232, 1233, 1234, 1239, 2405, 1247, + 1248, 1245, 1257, 1244, 1241, 1254, 1256, 1258, 1259, 1266, + + 1263, 1264, 1262, 1267, 1269, 1270, 1272, 1271, 2405, 1286, + 1273, 1274, 1288, 1279, 1276, 1287, 1298, 1300, 1301, 1302, + 1303, 1304, 1305, 1306, 1311, 1308, 1313, 1321, 1324, 1327, + 2405, 1325, 1322, 1312, 1338, 1335, 1332, 1339, 1346, 1340, + 1342, 1343, 1344, 1350, 1347, 1352, 1348, 1353, 1356, 1365, + 1355, 1371, 1372, 1358, 1381, 2405, 1384, 2405, 2405, 1383, + 2405, 1385, 1380, 1366, 1387, 1386, 1390, 1373, 1396, 1394, + 1398, 1399, 1400, 1402, 2405, 1404, 1406, 1410, 1405, 1408, + 1412, 1275, 1413, 1426, 1414, 1415, 1354, 2405, 1430, 1417, + 1424, 1436, 1437, 1423, 1433, 1439, 1440, 1447, 1443, 1449, + + 1450, 1451, 1452, 1455, 1459, 1456, 1457, 1458, 1460, 1462, + 1472, 1464, 2405, 2405, 1482, 1465, 1473, 1478, 1486, 1488, + 1494, 1489, 1491, 1496, 1497, 1498, 1499, 1501, 1502, 2405, + 1508, 1510, 1506, 1515, 2405, 1513, 1507, 1519, 1523, 1522, + 2405, 1526, 1527, 1528, 1529, 1530, 1532, 1536, 1537, 1543, + 1544, 1545, 1548, 1554, 1550, 1547, 1555, 1564, 1567, 1568, + 1570, 1556, 1553, 1571, 1572, 1576, 1579, 1581, 1582, 2405, + 1588, 1573, 1589, 1586, 1594, 1600, 1587, 1596, 1597, 1598, + 1602, 1604, 1605, 1607, 1609, 1610, 1613, 1612, 1614, 1624, + 1615, 1622, 2405, 1627, 1633, 1626, 1630, 1634, 1635, 1636, + + 1642, 1643, 1645, 1649, 1647, 1650, 1653, 1660, 1666, 1663, + 1670, 1667, 1669, 1671, 1652, 1681, 1672, 1685, 1674, 2405, + 1684, 1689, 1691, 1692, 1695, 1693, 1696, 2405, 2405, 1697, + 2405, 1701, 1703, 1706, 1707, 2405, 2405, 2405, 1717, 1708, + 1710, 1461, 1719, 2405, 1704, 1722, 1714, 1720, 1726, 1727, + 1728, 1729, 2405, 1731, 1740, 1730, 1737, 1734, 1741, 1745, + 1751, 1747, 1754, 1744, 1755, 1761, 1758, 1757, 1760, 1765, + 1766, 1768, 1770, 1769, 1771, 1772, 1773, 1782, 2405, 1785, + 1783, 1786, 1794, 1787, 1798, 1790, 1678, 1799, 1800, 1802, + 1803, 2405, 2405, 1805, 1807, 1815, 1810, 1812, 1819, 1818, + + 1820, 1821, 1824, 1826, 1827, 1828, 1829, 2405, 1831, 1836, + 1838, 1841, 1853, 1855, 1844, 1859, 1861, 1837, 1863, 1865, + 2405, 1830, 1867, 1868, 1870, 1871, 1872, 1873, 1874, 1880, + 1877, 1882, 2405, 1884, 1885, 1891, 1886, 1888, 1894, 1895, + 1897, 1899, 1901, 1907, 1905, 2405, 1903, 2405, 1904, 1916, + 1919, 1920, 2405, 1918, 1922, 2405, 1924, 1925, 1932, 1935, + 1937, 1942, 1938, 1906, 1928, 1944, 1950, 1946, 1947, 1951, + 1953, 1955, 2405, 2405, 1958, 2405, 2405, 1965, 2405, 2405, + 1967, 2405, 1969, 2405, 1975, 1971, 1960, 1962, 1973, 2405, + 1980, 2405, 2405, 1977, 1981, 1985, 1987, 1988, 1936, 1989, + + 1991, 1992, 1974, 1996, 1993, 1997, 1998, 1999, 2005, 1832, + 2006, 2008, 2009, 2011, 2405, 2007, 2015, 2405, 2020, 2017, + 2021, 2022, 2027, 2028, 2031, 2037, 2033, 2034, 2035, 2405, + 2405, 2405, 2036, 2038, 2045, 2042, 2046, 2405, 2050, 2051, + 2059, 2405, 2060, 2052, 2054, 2062, 2066, 2065, 2405, 2068, + 2072, 2075, 2069, 2079, 2082, 2090, 2087, 2089, 2405, 2091, + 2092, 2405, 2094, 2093, 2098, 2099, 2101, 2405, 2076, 2103, + 2106, 2108, 2111, 2109, 2405, 2112, 2113, 2405, 2116, 2405, + 2118, 2123, 2125, 2130, 2132, 2127, 2120, 2140, 2137, 2139, + 2405, 2405, 2141, 2405, 2405, 2133, 2142, 2144, 2146, 2148, + + 2149, 2151, 2155, 2154, 2405, 2156, 2157, 2161, 2166, 2158, + 2405, 2171, 2172, 2165, 2405, 2405, 2168, 2178, 2176, 2405, + 2181, 2182, 2183, 2188, 2193, 2189, 2187, 2196, 2194, 2195, + 2197, 2201, 2207, 2405, 2209, 2198, 2210, 2214, 2220, 2211, + 2215, 2217, 2223, 2224, 2226, 2228, 2405, 2229, 2239, 2241, + 2243, 2244, 2246, 2405, 2250, 2405, 2253, 2254, 2405, 2405, + 2248, 2258, 2255, 2405, 2261, 2405, 2262, 2231, 2405, 2405, + 2405, 2264, 2405, 2265, 2405, 2268, 2270, 2405, 2271, 2273, + 2275, 2277, 2405, 2279, 2405, 2280, 2283, 2405, 2405, 2405, + 2405, 2286, 2281, 2288, 2291, 2405, 2293, 2295, 2294, 2297, + + 2405, 2405, 2326, 2332, 2338, 2344, 2350, 61, 2356, 2362, + 2368, 2374, 2380, 2386, 2392, 2398 } ; -static yyconst flex_int16_t yy_def[1201] = +static yyconst flex_int16_t yy_def[1217] = { 0, - 1186, 1, 1187, 1187, 1188, 1188, 1189, 1189, 1190, 1190, - 1191, 1191, 1186, 1192, 1186, 1186, 1186, 1186, 1193, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1194, - 1186, 1186, 1186, 1194, 1195, 1186, 1186, 1186, 1195, 1196, - 1186, 1186, 1186, 1186, 1196, 1197, 1186, 1186, 1186, 1197, - 1198, 1186, 1199, 1186, 1198, 1198, 1192, 1192, 1186, 1200, - 1193, 1200, 1186, 1193, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1194, 1194, 1195, 1195, 1196, - 1196, 1186, 1197, 1197, 1198, 1198, 1199, 1199, 1198, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1198, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1198, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, 1192, 1192, - 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1198, 1192, 1192, - - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1198, 1192, 1192, 1192, - 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1186, 1186, 1192, - 1186, 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1186, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1198, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1186, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1186, 1198, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - - 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, 1186, 1186, - 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1186, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - - 1192, 1192, 1186, 1186, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, - 1192, 1192, 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1192, - 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1186, 1192, 1186, - 1192, 1192, 1192, 1186, 1186, 1186, 1192, 1192, 1192, 1192, - 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, - 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1192, - - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1186, 1192, 1186, 1192, 1192, 1192, 1192, 1186, - 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1186, - 1192, 1186, 1186, 1192, 1186, 1186, 1192, 1186, 1192, 1186, - 1192, 1192, 1192, 1192, 1192, 1186, 1192, 1186, 1186, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - - 1186, 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1186, 1186, 1186, 1192, 1192, 1192, - 1192, 1192, 1186, 1192, 1192, 1192, 1186, 1192, 1192, 1192, - 1192, 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, - 1192, 1186, 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1186, 1186, 1192, 1186, 1186, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, - 1192, 1192, 1192, 1192, 1186, 1192, 1192, 1192, 1186, 1186, - - 1192, 1192, 1192, 1186, 1192, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, 1186, - 1192, 1192, 1186, 1186, 1192, 1192, 1192, 1186, 1192, 1186, - 1192, 1192, 1186, 1186, 1186, 1192, 1186, 1192, 1186, 1192, - 1192, 1186, 1192, 1192, 1192, 1192, 1186, 1192, 1186, 1192, - 1192, 1186, 1186, 1186, 1186, 1192, 1192, 1192, 1192, 1186, - 1192, 1192, 1192, 1192, 1186, 0, 1186, 1186, 1186, 1186, - 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186 - + 1202, 1, 1203, 1203, 1204, 1204, 1205, 1205, 1206, 1206, + 1207, 1207, 1202, 1208, 1202, 1202, 1202, 1202, 1209, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1210, + 1202, 1202, 1202, 1210, 1211, 1202, 1202, 1202, 1211, 1212, + 1202, 1202, 1202, 1202, 1212, 1213, 1202, 1202, 1202, 1213, + 1214, 1202, 1215, 1202, 1214, 1214, 1208, 1208, 1202, 1216, + 1209, 1216, 1202, 1209, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1210, 1210, 1211, 1211, + 1212, 1212, 1202, 1213, 1213, 1214, 1214, 1215, 1215, 1214, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1214, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1214, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1202, 1208, 1208, 1208, 1208, 1208, 1202, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + + 1208, 1214, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1214, 1208, 1208, 1208, 1208, 1202, 1208, 1208, 1208, + 1208, 1208, 1202, 1202, 1208, 1202, 1202, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, 1208, + 1208, 1208, 1208, 1202, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1214, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, + 1214, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1202, 1208, 1202, 1202, 1208, + 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1202, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1202, 1202, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, + 1208, 1208, 1208, 1208, 1202, 1208, 1208, 1208, 1208, 1208, + 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, 1202, 1208, + 1202, 1208, 1208, 1208, 1208, 1202, 1202, 1202, 1208, 1208, + 1208, 1208, 1208, 1202, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1202, 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1202, 1208, 1202, 1208, 1208, + 1208, 1208, 1202, 1208, 1208, 1202, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1202, 1202, 1208, 1202, 1202, 1208, 1202, 1202, + 1208, 1202, 1208, 1202, 1208, 1208, 1208, 1208, 1208, 1202, + 1208, 1202, 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1202, 1208, 1208, 1202, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, + 1202, 1202, 1208, 1208, 1208, 1208, 1208, 1202, 1208, 1208, + 1208, 1202, 1208, 1208, 1208, 1208, 1208, 1208, 1202, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1202, 1208, + 1208, 1202, 1208, 1208, 1208, 1208, 1208, 1202, 1208, 1208, + 1208, 1208, 1208, 1208, 1202, 1208, 1208, 1202, 1208, 1202, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1202, 1202, 1208, 1202, 1202, 1208, 1208, 1208, 1208, 1208, + + 1208, 1208, 1208, 1208, 1202, 1208, 1208, 1208, 1208, 1208, + 1202, 1208, 1208, 1208, 1202, 1202, 1208, 1208, 1208, 1202, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1202, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1202, 1208, 1208, 1208, + 1208, 1208, 1208, 1202, 1208, 1202, 1208, 1208, 1202, 1202, + 1208, 1208, 1208, 1202, 1208, 1202, 1208, 1208, 1202, 1202, + 1202, 1208, 1202, 1208, 1202, 1208, 1208, 1202, 1208, 1208, + 1208, 1208, 1202, 1208, 1202, 1208, 1208, 1202, 1202, 1202, + 1202, 1208, 1208, 1208, 1208, 1202, 1208, 1208, 1208, 1208, + + 1202, 0, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202 } ; -static yyconst flex_int16_t yy_nxt[2415] = +static yyconst flex_int16_t yy_nxt[2445] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, 26, 27, 28, 29, 30, 31, 32, 33, 34, 14, 35, 36, 37, 38, 39, 14, 14, 14, 14, 41, - 42, 43, 41, 42, 43, 118, 46, 47, 118, 44, + 42, 43, 41, 42, 43, 119, 46, 47, 119, 44, 48, 69, 44, 46, 47, 70, 49, 48, 57, 58, - 59, 116, 116, 49, 51, 52, 53, 54, 60, 18, - 57, 58, 59, 68, 68, 55, 51, 52, 53, 54, - 60, 18, 68, 68, 68, 75, 76, 55, 15, 16, - 17, 62, 63, 64, 99, 67, 138, 67, 67, 65, - - 67, 68, 134, 77, 68, 67, 68, 85, 66, 15, - 16, 17, 62, 63, 64, 68, 86, 68, 87, 91, - 65, 93, 68, 181, 68, 67, 88, 92, 89, 66, - 72, 73, 72, 72, 68, 72, 68, 78, 90, 81, - 72, 74, 68, 82, 79, 68, 83, 68, 96, 84, - 68, 80, 97, 68, 100, 68, 110, 94, 69, 68, - 101, 95, 70, 102, 104, 165, 68, 112, 98, 126, - 103, 107, 113, 111, 105, 68, 114, 106, 123, 123, - 115, 108, 120, 129, 120, 120, 109, 120, 72, 73, - 72, 72, 125, 72, 125, 125, 68, 125, 67, 128, - - 67, 67, 68, 67, 68, 130, 68, 133, 67, 72, - 73, 72, 72, 68, 72, 68, 132, 131, 136, 72, - 74, 68, 139, 68, 68, 68, 68, 68, 68, 135, - 145, 68, 144, 68, 146, 68, 68, 147, 68, 137, - 140, 150, 142, 141, 143, 155, 68, 68, 156, 152, - 68, 148, 149, 153, 154, 68, 68, 68, 68, 68, - 158, 151, 157, 160, 68, 68, 68, 162, 68, 168, - 68, 169, 68, 68, 68, 161, 159, 68, 164, 68, - 68, 68, 68, 224, 163, 166, 167, 174, 116, 116, - 171, 170, 175, 118, 172, 126, 118, 176, 177, 120, - - 173, 120, 120, 68, 120, 123, 123, 125, 178, 125, - 125, 68, 125, 72, 73, 72, 72, 179, 72, 68, - 68, 68, 68, 184, 128, 68, 180, 186, 68, 68, - 185, 126, 68, 68, 182, 68, 192, 68, 193, 68, - 183, 68, 196, 195, 194, 187, 68, 200, 68, 68, - 188, 68, 68, 201, 204, 189, 68, 205, 68, 68, - 197, 190, 191, 198, 68, 206, 199, 209, 203, 202, - 68, 213, 68, 68, 68, 211, 207, 212, 210, 208, - 68, 68, 68, 68, 68, 68, 68, 214, 68, 68, - 68, 68, 217, 220, 215, 68, 68, 68, 225, 228, - - 218, 68, 227, 73, 68, 216, 219, 230, 222, 126, - 68, 221, 68, 126, 239, 223, 226, 68, 68, 231, - 236, 233, 229, 68, 68, 68, 235, 68, 237, 234, - 68, 68, 242, 241, 68, 240, 232, 68, 243, 238, - 68, 68, 68, 68, 246, 68, 247, 68, 250, 68, - 244, 252, 248, 68, 251, 245, 68, 68, 68, 249, - 68, 256, 68, 68, 259, 68, 68, 68, 260, 68, - 68, 255, 68, 253, 68, 258, 265, 266, 254, 261, - 257, 263, 264, 267, 68, 68, 262, 68, 268, 68, - 68, 273, 68, 68, 274, 68, 68, 277, 272, 68, - - 68, 68, 68, 280, 269, 271, 279, 270, 68, 282, - 275, 68, 68, 68, 68, 68, 276, 281, 283, 278, - 68, 68, 68, 286, 68, 126, 285, 68, 68, 288, - 68, 284, 302, 297, 68, 68, 296, 68, 68, 287, - 68, 299, 289, 290, 68, 300, 298, 301, 303, 304, - 305, 68, 291, 68, 292, 293, 294, 68, 306, 295, - 309, 310, 308, 68, 311, 307, 68, 68, 68, 312, - 68, 68, 315, 68, 68, 68, 68, 321, 68, 376, - 68, 314, 313, 318, 320, 317, 323, 322, 316, 68, - 68, 68, 68, 326, 68, 324, 319, 325, 68, 327, - - 328, 68, 330, 329, 68, 68, 331, 68, 333, 68, - 334, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 336, 68, 337, 341, 343, 332, 338, 342, 68, 68, - 340, 68, 335, 68, 347, 339, 346, 352, 68, 344, - 68, 348, 68, 68, 355, 68, 357, 353, 68, 349, - 345, 351, 68, 68, 68, 68, 68, 68, 354, 350, - 68, 363, 68, 358, 359, 356, 364, 68, 360, 68, - 126, 368, 68, 361, 367, 68, 68, 362, 68, 365, - 370, 369, 366, 372, 68, 371, 68, 373, 124, 68, - 374, 378, 68, 379, 68, 380, 381, 68, 382, 68, - - 68, 375, 377, 383, 68, 68, 68, 386, 68, 384, - 385, 68, 68, 68, 68, 387, 68, 68, 388, 390, - 68, 68, 395, 392, 396, 389, 397, 68, 393, 68, - 391, 68, 394, 68, 398, 68, 68, 399, 403, 68, - 401, 402, 68, 68, 68, 404, 68, 405, 68, 406, - 68, 68, 68, 407, 122, 420, 410, 411, 412, 400, - 408, 414, 413, 68, 409, 68, 68, 68, 417, 68, - 416, 419, 418, 68, 415, 68, 68, 68, 68, 421, - 425, 68, 426, 68, 68, 68, 68, 427, 68, 428, - 68, 422, 68, 424, 68, 423, 68, 68, 121, 432, - - 68, 433, 429, 431, 434, 435, 68, 430, 68, 68, - 68, 436, 437, 68, 126, 438, 442, 68, 439, 441, - 68, 443, 68, 445, 440, 447, 68, 68, 68, 68, - 68, 446, 448, 68, 68, 450, 68, 455, 68, 68, - 454, 444, 68, 453, 449, 68, 452, 68, 451, 68, - 461, 464, 68, 456, 465, 68, 457, 462, 68, 466, - 68, 458, 68, 463, 68, 468, 68, 459, 460, 469, - 467, 68, 68, 473, 68, 476, 68, 68, 68, 472, - 470, 471, 475, 68, 478, 68, 477, 68, 68, 474, - 68, 68, 68, 479, 68, 480, 482, 483, 484, 68, - - 485, 68, 68, 489, 487, 68, 481, 68, 488, 68, - 490, 486, 68, 68, 68, 68, 68, 494, 491, 68, - 68, 493, 498, 68, 496, 68, 500, 68, 68, 501, - 492, 68, 68, 495, 497, 68, 68, 499, 502, 503, - 504, 68, 506, 507, 68, 68, 511, 508, 68, 505, - 509, 68, 513, 68, 514, 126, 512, 68, 510, 68, - 68, 68, 68, 516, 68, 68, 68, 68, 525, 68, - 68, 68, 515, 531, 68, 532, 519, 569, 68, 517, - 68, 527, 533, 528, 530, 518, 68, 68, 529, 520, - 526, 521, 68, 537, 535, 522, 68, 523, 68, 536, - - 534, 538, 524, 68, 68, 543, 539, 542, 68, 68, - 68, 68, 544, 68, 68, 68, 68, 540, 68, 547, - 68, 68, 68, 541, 548, 550, 546, 553, 68, 68, - 545, 68, 68, 584, 555, 549, 552, 68, 551, 68, - 558, 68, 556, 554, 557, 68, 559, 560, 68, 68, - 561, 563, 68, 562, 68, 68, 564, 68, 566, 68, - 68, 68, 567, 570, 568, 68, 68, 68, 68, 68, - 68, 574, 576, 575, 565, 68, 68, 578, 579, 571, - 573, 577, 68, 68, 68, 572, 581, 68, 585, 68, - 580, 68, 68, 68, 68, 582, 68, 68, 583, 68, - - 587, 593, 68, 594, 68, 68, 68, 586, 68, 595, - 590, 68, 588, 68, 591, 68, 596, 592, 598, 589, - 599, 601, 68, 68, 68, 597, 68, 68, 68, 68, - 600, 604, 68, 603, 68, 68, 607, 68, 68, 68, - 68, 602, 68, 68, 608, 613, 605, 606, 68, 609, - 68, 68, 616, 68, 610, 614, 612, 119, 611, 618, - 68, 68, 615, 68, 617, 620, 621, 629, 619, 68, - 622, 68, 624, 625, 623, 68, 626, 68, 68, 68, - 628, 631, 627, 632, 68, 68, 68, 630, 68, 633, - 68, 68, 68, 68, 634, 68, 639, 68, 68, 68, - - 635, 68, 68, 641, 68, 636, 644, 637, 640, 638, - 117, 642, 647, 68, 643, 649, 68, 645, 650, 68, - 68, 648, 652, 68, 653, 651, 646, 68, 68, 68, - 68, 68, 659, 655, 660, 654, 657, 68, 658, 68, - 68, 662, 68, 68, 68, 661, 68, 656, 666, 68, - 68, 663, 68, 669, 68, 665, 68, 68, 68, 68, - 68, 673, 664, 68, 68, 68, 68, 678, 68, 68, - 667, 679, 68, 68, 670, 668, 671, 672, 682, 68, - 68, 68, 675, 674, 676, 684, 681, 677, 68, 683, - 68, 680, 68, 68, 686, 688, 68, 68, 685, 689, - - 68, 690, 68, 68, 696, 697, 692, 687, 695, 68, - 68, 691, 68, 698, 68, 693, 68, 68, 68, 699, - 702, 704, 68, 694, 703, 68, 68, 68, 707, 68, - 700, 68, 706, 68, 68, 68, 701, 705, 68, 68, - 68, 715, 68, 68, 68, 68, 708, 716, 709, 712, - 710, 68, 68, 711, 714, 717, 720, 68, 68, 713, - 718, 723, 724, 721, 719, 722, 68, 68, 725, 68, - 68, 68, 68, 726, 68, 731, 68, 728, 68, 729, - 68, 733, 68, 68, 68, 68, 727, 730, 736, 68, - 738, 68, 68, 68, 735, 68, 741, 68, 732, 68, - - 68, 68, 745, 68, 734, 68, 740, 747, 737, 739, - 746, 68, 68, 742, 68, 68, 754, 743, 68, 744, - 750, 748, 68, 751, 68, 749, 68, 753, 752, 68, - 68, 759, 68, 68, 757, 758, 68, 68, 760, 68, - 755, 68, 766, 68, 68, 68, 756, 68, 68, 68, - 73, 68, 68, 68, 761, 764, 765, 762, 772, 763, - 771, 773, 68, 68, 767, 768, 770, 68, 774, 769, - 775, 776, 68, 781, 68, 782, 68, 68, 68, 68, - 68, 778, 777, 780, 779, 68, 68, 68, 788, 68, - 68, 791, 784, 68, 68, 792, 68, 783, 785, 786, - - 68, 68, 796, 68, 787, 789, 794, 793, 790, 68, - 68, 797, 795, 68, 68, 68, 68, 68, 68, 802, - 68, 803, 804, 805, 68, 68, 799, 68, 798, 806, - 68, 800, 809, 68, 801, 68, 68, 68, 813, 68, - 808, 810, 811, 68, 68, 816, 68, 807, 812, 814, - 817, 68, 68, 815, 818, 68, 820, 68, 821, 824, - 68, 819, 68, 68, 68, 822, 823, 825, 68, 826, - 68, 68, 828, 830, 827, 832, 68, 68, 68, 833, - 829, 68, 68, 68, 68, 68, 68, 841, 68, 831, - 68, 68, 843, 834, 68, 835, 68, 68, 68, 849, - - 836, 68, 837, 838, 68, 839, 845, 840, 846, 68, - 68, 68, 68, 847, 844, 853, 842, 852, 68, 68, - 68, 68, 848, 68, 856, 855, 851, 68, 68, 68, - 857, 854, 68, 68, 68, 850, 68, 872, 861, 865, - 68, 868, 859, 858, 68, 862, 68, 860, 864, 866, - 863, 870, 869, 867, 68, 68, 68, 68, 68, 875, - 68, 877, 68, 73, 68, 68, 68, 871, 879, 873, - 880, 68, 881, 68, 878, 68, 68, 68, 68, 68, - 68, 882, 876, 874, 883, 885, 884, 68, 887, 886, - 891, 68, 68, 68, 893, 68, 889, 895, 68, 888, - - 890, 68, 68, 894, 68, 897, 68, 68, 68, 892, - 68, 68, 68, 68, 68, 68, 905, 68, 904, 899, - 900, 68, 896, 901, 68, 902, 907, 898, 908, 68, - 68, 68, 903, 906, 68, 910, 911, 68, 68, 68, - 916, 68, 912, 913, 915, 68, 917, 909, 68, 914, - 920, 68, 68, 68, 68, 68, 68, 68, 918, 68, - 68, 73, 919, 922, 921, 924, 923, 925, 68, 68, - 926, 68, 68, 927, 929, 928, 68, 930, 932, 933, - 68, 934, 935, 68, 68, 931, 68, 68, 937, 940, - 68, 938, 68, 68, 68, 936, 943, 68, 68, 944, - - 939, 941, 68, 942, 945, 68, 68, 946, 68, 947, - 68, 68, 68, 949, 68, 68, 68, 68, 68, 955, - 973, 948, 68, 68, 958, 68, 953, 959, 68, 950, - 951, 956, 68, 952, 68, 957, 954, 960, 68, 962, - 68, 963, 68, 68, 964, 961, 965, 68, 966, 68, - 68, 968, 68, 969, 68, 967, 970, 68, 68, 974, - 972, 971, 976, 68, 68, 978, 68, 979, 68, 68, - 68, 981, 68, 68, 975, 68, 68, 68, 983, 68, - 68, 985, 989, 977, 982, 68, 68, 68, 987, 988, - 990, 68, 986, 68, 993, 980, 984, 994, 68, 995, - - 992, 68, 68, 68, 68, 991, 68, 996, 68, 999, - 1001, 68, 68, 1000, 68, 998, 997, 68, 1002, 68, - 1003, 1004, 68, 68, 1005, 1008, 68, 68, 1007, 68, - 68, 1011, 1006, 1009, 68, 1010, 1013, 1012, 68, 1014, - 1015, 68, 1016, 68, 1017, 68, 1018, 68, 1019, 68, - 68, 68, 68, 1023, 68, 68, 68, 1022, 1025, 68, - 1024, 1027, 68, 68, 1026, 1020, 68, 68, 68, 68, - 68, 68, 1021, 1034, 68, 1028, 68, 68, 68, 1030, - 1031, 1032, 68, 68, 1029, 1035, 68, 68, 1042, 68, - 1033, 1044, 68, 68, 1043, 1038, 68, 1036, 1037, 68, - - 1040, 1039, 68, 1046, 68, 1041, 68, 68, 1047, 1052, - 68, 1045, 1053, 68, 1048, 68, 68, 68, 68, 1059, - 68, 68, 1049, 1050, 1058, 1051, 68, 68, 1054, 1062, - 68, 68, 1064, 68, 1055, 68, 1056, 68, 1057, 68, - 1065, 1060, 68, 68, 68, 1061, 1067, 1068, 1069, 68, - 1063, 68, 1070, 68, 68, 68, 1072, 1066, 1073, 1075, - 68, 1076, 68, 1077, 1071, 1078, 68, 68, 68, 1074, - 1079, 68, 1080, 68, 68, 68, 68, 1082, 68, 68, - 1085, 68, 68, 68, 1083, 1081, 68, 1084, 1089, 68, - 1086, 68, 1090, 68, 1091, 1087, 1092, 68, 1095, 68, - - 68, 1088, 1093, 68, 1097, 68, 1099, 68, 1098, 68, - 1094, 1100, 68, 1103, 68, 1104, 68, 68, 68, 68, - 1096, 1105, 68, 68, 68, 1106, 68, 1101, 1102, 68, - 68, 1108, 68, 68, 1111, 68, 68, 68, 68, 1116, - 68, 1107, 1110, 1109, 1114, 1118, 68, 68, 68, 1120, - 1112, 1119, 68, 1115, 68, 1117, 68, 1121, 1113, 1124, - 68, 1125, 68, 1123, 1122, 1126, 68, 1127, 68, 68, - 1131, 68, 68, 68, 68, 1128, 68, 68, 68, 1138, - 68, 1135, 1134, 68, 1130, 68, 68, 1129, 1132, 68, - 1139, 68, 1133, 1140, 68, 1143, 68, 1137, 1144, 68, - - 68, 1148, 68, 1136, 68, 1142, 1141, 68, 1145, 1150, - 68, 1147, 1146, 68, 1153, 68, 1149, 126, 1152, 1154, - 68, 1155, 68, 68, 1157, 68, 1151, 68, 1156, 68, - 1158, 1159, 68, 68, 68, 1161, 1162, 68, 1160, 1163, - 68, 68, 68, 1167, 68, 1164, 1166, 68, 1169, 68, - 68, 1168, 68, 1172, 68, 1173, 68, 1174, 68, 1175, - 68, 1165, 68, 68, 1177, 1170, 68, 68, 1180, 68, - 1171, 1178, 68, 68, 1176, 68, 68, 1185, 68, 124, - 122, 1181, 121, 119, 117, 68, 1179, 1186, 1182, 1183, - 1186, 1186, 1186, 1186, 1186, 1184, 40, 40, 40, 40, - + 59, 67, 68, 49, 51, 52, 53, 54, 60, 18, + 57, 58, 59, 117, 117, 55, 51, 52, 53, 54, + 60, 18, 68, 100, 68, 75, 76, 55, 15, 16, + 17, 62, 63, 64, 127, 67, 68, 67, 67, 65, + + 67, 68, 68, 77, 133, 67, 85, 68, 66, 15, + 16, 17, 62, 63, 64, 151, 87, 69, 68, 88, + 65, 70, 92, 68, 68, 227, 86, 89, 90, 66, + 72, 73, 72, 72, 68, 72, 68, 78, 91, 81, + 72, 74, 68, 82, 79, 68, 83, 93, 68, 84, + 68, 80, 68, 97, 68, 111, 68, 98, 68, 101, + 94, 105, 68, 95, 68, 102, 127, 96, 103, 108, + 137, 106, 112, 99, 107, 104, 113, 68, 115, 109, + 130, 114, 116, 121, 110, 121, 121, 73, 121, 124, + 124, 72, 73, 72, 72, 126, 72, 126, 126, 68, + + 126, 67, 129, 67, 67, 68, 67, 68, 131, 68, + 134, 67, 72, 73, 72, 72, 68, 72, 68, 68, + 132, 139, 72, 74, 140, 68, 68, 135, 68, 68, + 68, 68, 136, 147, 68, 68, 68, 138, 146, 142, + 152, 68, 141, 157, 148, 68, 143, 149, 144, 145, + 68, 68, 68, 154, 68, 156, 68, 155, 158, 159, + 153, 150, 68, 68, 68, 68, 162, 160, 68, 68, + 68, 68, 68, 164, 170, 68, 161, 68, 171, 68, + 68, 163, 166, 167, 68, 165, 68, 68, 127, 168, + 169, 176, 174, 173, 117, 117, 177, 119, 172, 121, + + 119, 121, 121, 175, 121, 178, 124, 124, 126, 127, + 126, 126, 179, 126, 72, 73, 72, 72, 68, 72, + 68, 181, 68, 180, 68, 129, 68, 68, 186, 68, + 183, 188, 68, 68, 187, 182, 68, 68, 194, 184, + 68, 68, 68, 68, 68, 196, 198, 185, 68, 199, + 68, 195, 189, 68, 68, 201, 68, 190, 202, 68, + 207, 204, 191, 68, 197, 68, 209, 200, 192, 193, + 205, 68, 203, 68, 208, 206, 212, 210, 68, 68, + 214, 68, 215, 213, 211, 68, 216, 68, 68, 68, + 68, 68, 68, 68, 217, 68, 68, 68, 68, 220, + + 223, 68, 68, 68, 68, 228, 234, 221, 68, 218, + 68, 230, 219, 222, 231, 225, 127, 241, 224, 68, + 233, 226, 229, 235, 68, 68, 239, 237, 236, 68, + 68, 68, 238, 68, 240, 68, 68, 232, 244, 68, + 245, 243, 68, 246, 68, 68, 68, 68, 242, 249, + 252, 250, 247, 68, 251, 68, 68, 254, 68, 248, + 256, 68, 68, 255, 68, 68, 68, 253, 68, 260, + 68, 263, 68, 68, 68, 264, 68, 259, 68, 68, + 68, 257, 262, 258, 261, 265, 68, 267, 269, 270, + 68, 268, 271, 68, 266, 68, 68, 273, 272, 68, + + 274, 277, 68, 68, 278, 275, 68, 281, 276, 68, + 68, 279, 68, 68, 68, 283, 284, 286, 68, 68, + 68, 68, 68, 285, 287, 68, 280, 68, 290, 282, + 68, 127, 68, 68, 289, 292, 306, 68, 288, 301, + 68, 68, 300, 68, 291, 68, 68, 293, 294, 335, + 68, 303, 302, 305, 68, 304, 68, 295, 68, 296, + 297, 298, 68, 307, 299, 308, 310, 312, 68, 309, + 311, 313, 314, 68, 68, 68, 68, 319, 315, 68, + 68, 68, 68, 320, 316, 68, 125, 68, 68, 317, + 318, 323, 326, 68, 325, 322, 327, 328, 321, 329, + + 68, 68, 68, 333, 324, 330, 68, 332, 68, 68, + 68, 68, 68, 338, 331, 336, 68, 339, 334, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 341, 68, + 342, 346, 337, 347, 343, 68, 348, 68, 345, 357, + 340, 68, 68, 344, 68, 349, 68, 68, 352, 358, + 68, 350, 68, 360, 351, 353, 68, 356, 68, 362, + 68, 68, 359, 354, 68, 363, 68, 68, 364, 68, + 68, 361, 368, 355, 68, 365, 68, 127, 369, 373, + 366, 372, 374, 68, 68, 370, 367, 377, 68, 371, + 68, 68, 68, 68, 375, 68, 376, 68, 381, 383, + + 68, 123, 378, 379, 384, 68, 382, 380, 385, 386, + 68, 387, 68, 68, 388, 68, 68, 68, 389, 68, + 390, 391, 392, 68, 68, 68, 68, 68, 393, 122, + 394, 396, 68, 68, 401, 398, 395, 397, 402, 68, + 399, 68, 68, 68, 400, 404, 68, 68, 403, 68, + 405, 409, 408, 68, 407, 410, 68, 68, 68, 68, + 411, 412, 68, 68, 413, 68, 68, 432, 416, 418, + 417, 414, 406, 419, 68, 420, 415, 68, 68, 423, + 68, 422, 68, 424, 68, 68, 421, 425, 68, 68, + 68, 68, 427, 431, 68, 68, 68, 68, 68, 433, + + 68, 434, 426, 68, 428, 68, 430, 120, 429, 68, + 435, 68, 438, 437, 439, 68, 436, 68, 440, 68, + 441, 443, 442, 68, 68, 127, 444, 68, 68, 68, + 447, 448, 445, 449, 68, 451, 453, 68, 446, 68, + 68, 68, 68, 452, 454, 68, 68, 456, 450, 68, + 68, 462, 460, 68, 461, 455, 68, 457, 459, 68, + 68, 68, 458, 68, 468, 471, 68, 463, 472, 68, + 464, 469, 68, 473, 68, 465, 68, 475, 68, 68, + 68, 466, 467, 476, 474, 470, 68, 479, 68, 480, + 68, 483, 68, 68, 477, 482, 484, 478, 68, 68, + + 68, 481, 68, 68, 485, 68, 68, 486, 487, 492, + 489, 491, 68, 490, 68, 68, 68, 68, 494, 68, + 488, 68, 493, 68, 496, 68, 68, 68, 497, 68, + 495, 501, 68, 504, 68, 500, 498, 68, 499, 507, + 502, 503, 68, 505, 68, 68, 508, 68, 506, 68, + 512, 68, 513, 514, 511, 68, 68, 68, 68, 510, + 515, 518, 68, 68, 509, 68, 68, 520, 68, 517, + 521, 127, 68, 516, 68, 68, 523, 68, 522, 68, + 68, 532, 519, 68, 524, 68, 68, 68, 68, 526, + 539, 68, 545, 538, 534, 68, 547, 535, 525, 68, + + 537, 68, 527, 68, 528, 533, 536, 68, 529, 68, + 530, 68, 540, 544, 546, 531, 68, 543, 68, 541, + 551, 548, 550, 68, 68, 68, 68, 552, 68, 68, + 68, 554, 68, 555, 68, 549, 68, 542, 556, 558, + 68, 561, 68, 68, 68, 553, 68, 563, 564, 557, + 560, 68, 559, 566, 568, 562, 565, 68, 567, 68, + 68, 569, 68, 68, 570, 571, 68, 68, 68, 68, + 574, 68, 68, 575, 576, 578, 68, 577, 572, 68, + 68, 68, 68, 68, 584, 68, 573, 582, 583, 68, + 586, 68, 587, 581, 579, 68, 585, 68, 68, 580, + + 589, 68, 68, 593, 588, 68, 68, 68, 68, 68, + 590, 68, 591, 68, 592, 595, 68, 601, 68, 602, + 118, 68, 68, 594, 68, 598, 603, 596, 599, 68, + 68, 68, 604, 68, 597, 606, 600, 609, 68, 68, + 68, 68, 68, 605, 68, 68, 607, 612, 608, 611, + 614, 68, 68, 68, 68, 616, 68, 610, 68, 68, + 613, 68, 68, 615, 68, 622, 68, 617, 618, 68, + 68, 625, 68, 619, 68, 73, 621, 620, 627, 623, + 626, 624, 68, 633, 68, 632, 630, 629, 634, 628, + 631, 68, 68, 68, 68, 635, 68, 636, 68, 637, + + 640, 641, 639, 68, 68, 68, 68, 68, 642, 68, + 638, 643, 68, 644, 68, 68, 648, 68, 645, 68, + 646, 68, 647, 68, 649, 656, 68, 653, 68, 651, + 658, 68, 650, 659, 68, 68, 652, 661, 68, 654, + 660, 68, 68, 73, 68, 68, 68, 657, 655, 664, + 663, 68, 666, 68, 668, 669, 68, 68, 667, 68, + 68, 662, 670, 665, 671, 672, 68, 675, 68, 68, + 68, 68, 673, 678, 68, 68, 68, 674, 68, 68, + 682, 68, 68, 68, 68, 68, 68, 68, 68, 755, + 676, 68, 681, 687, 677, 679, 680, 688, 68, 68, + + 68, 683, 685, 694, 690, 691, 686, 684, 693, 692, + 68, 689, 68, 68, 68, 68, 68, 68, 68, 698, + 68, 700, 699, 68, 68, 68, 696, 702, 706, 695, + 705, 707, 697, 68, 68, 701, 68, 68, 703, 68, + 708, 704, 709, 711, 68, 712, 714, 68, 710, 713, + 68, 68, 68, 717, 68, 68, 68, 716, 68, 68, + 68, 725, 68, 715, 68, 68, 68, 68, 68, 726, + 68, 718, 760, 719, 720, 721, 722, 68, 68, 724, + 723, 727, 730, 68, 68, 68, 728, 729, 733, 731, + 732, 734, 68, 68, 735, 68, 68, 68, 68, 68, + + 736, 741, 68, 738, 739, 742, 68, 737, 68, 743, + 68, 68, 68, 740, 68, 746, 68, 68, 68, 748, + 68, 745, 68, 751, 68, 68, 68, 68, 744, 68, + 756, 747, 750, 757, 749, 68, 68, 752, 68, 763, + 753, 759, 68, 764, 754, 68, 758, 761, 68, 68, + 765, 68, 68, 766, 762, 68, 768, 769, 770, 68, + 771, 68, 68, 68, 68, 767, 777, 68, 68, 68, + 68, 68, 68, 68, 68, 907, 68, 68, 775, 772, + 776, 782, 773, 774, 68, 68, 787, 781, 778, 779, + 68, 780, 785, 783, 68, 792, 784, 786, 68, 789, + + 68, 68, 790, 68, 788, 793, 68, 791, 68, 68, + 68, 68, 799, 68, 68, 802, 795, 803, 68, 68, + 68, 794, 68, 797, 804, 68, 796, 68, 798, 800, + 805, 68, 801, 807, 68, 68, 806, 808, 68, 68, + 68, 68, 68, 813, 68, 814, 815, 816, 68, 68, + 809, 810, 811, 817, 820, 68, 68, 68, 812, 68, + 68, 824, 68, 832, 819, 68, 68, 68, 68, 822, + 821, 818, 823, 827, 825, 828, 68, 826, 829, 68, + 68, 831, 68, 68, 68, 68, 833, 836, 68, 830, + 837, 68, 838, 68, 68, 840, 842, 839, 68, 68, + + 68, 68, 834, 841, 835, 844, 68, 845, 68, 68, + 68, 846, 68, 847, 68, 853, 68, 68, 848, 68, + 855, 68, 68, 843, 68, 68, 68, 68, 849, 850, + 851, 857, 858, 859, 68, 852, 68, 861, 68, 68, + 865, 856, 68, 854, 864, 68, 68, 68, 68, 867, + 863, 868, 860, 862, 68, 68, 869, 68, 866, 68, + 877, 68, 68, 873, 68, 68, 73, 878, 870, 871, + 874, 879, 68, 880, 872, 68, 876, 882, 68, 68, + 875, 68, 68, 68, 68, 884, 68, 881, 887, 886, + 68, 883, 889, 68, 950, 885, 68, 68, 890, 891, + + 892, 68, 893, 68, 68, 68, 888, 68, 68, 68, + 894, 896, 895, 68, 899, 68, 68, 897, 68, 68, + 68, 898, 68, 906, 904, 900, 68, 902, 903, 68, + 908, 68, 68, 901, 68, 910, 909, 905, 68, 68, + 68, 68, 68, 68, 912, 921, 68, 911, 917, 68, + 913, 914, 68, 68, 918, 915, 68, 68, 920, 68, + 919, 916, 923, 68, 925, 924, 68, 68, 929, 68, + 68, 926, 68, 68, 927, 930, 933, 68, 68, 922, + 68, 68, 68, 68, 68, 68, 932, 928, 931, 935, + 934, 937, 936, 938, 68, 68, 939, 68, 68, 68, + + 942, 941, 68, 943, 940, 946, 68, 945, 947, 948, + 68, 68, 68, 953, 68, 68, 951, 68, 956, 68, + 944, 949, 68, 954, 68, 952, 955, 68, 957, 959, + 68, 68, 68, 68, 958, 960, 68, 962, 68, 68, + 68, 68, 68, 68, 68, 961, 969, 981, 68, 68, + 68, 68, 967, 68, 972, 964, 68, 965, 1055, 963, + 966, 970, 968, 971, 973, 68, 974, 68, 978, 975, + 976, 68, 977, 68, 979, 68, 980, 68, 982, 68, + 68, 984, 68, 68, 68, 68, 68, 988, 987, 68, + 986, 990, 68, 992, 68, 993, 68, 68, 68, 983, + + 68, 985, 989, 68, 995, 997, 68, 68, 991, 68, + 996, 68, 999, 68, 1003, 68, 68, 68, 68, 68, + 1001, 1004, 1002, 994, 1000, 1006, 1008, 998, 68, 1007, + 68, 68, 68, 1009, 68, 1005, 68, 68, 1020, 1013, + 68, 1010, 1014, 1015, 68, 1011, 1012, 68, 68, 68, + 68, 1016, 1017, 1018, 68, 1019, 68, 1023, 68, 68, + 1021, 1022, 68, 68, 1024, 68, 1044, 68, 1026, 1028, + 68, 1029, 68, 1027, 68, 1025, 1030, 68, 1031, 68, + 1032, 68, 1033, 68, 1034, 68, 68, 68, 1035, 68, + 1037, 1038, 68, 68, 1039, 1040, 1036, 68, 1042, 68, + + 68, 68, 1041, 68, 68, 68, 1048, 1049, 68, 68, + 68, 68, 1043, 1045, 1050, 1046, 1047, 68, 68, 68, + 68, 68, 1059, 68, 1053, 1057, 1058, 68, 1061, 68, + 1052, 1062, 68, 68, 68, 1051, 1056, 1060, 1063, 68, + 68, 1054, 1068, 68, 1069, 68, 68, 68, 68, 68, + 68, 1064, 1065, 1074, 68, 1066, 1075, 68, 68, 1067, + 1070, 1078, 68, 68, 68, 1071, 68, 1072, 1073, 1076, + 1080, 68, 68, 1081, 68, 1083, 1077, 68, 68, 1084, + 68, 68, 1079, 1085, 68, 1086, 1082, 68, 68, 1088, + 1091, 68, 1089, 1092, 68, 1087, 1090, 1093, 1094, 68, + + 1095, 68, 68, 68, 68, 68, 68, 1103, 1096, 1098, + 68, 68, 1101, 68, 1099, 68, 1097, 1105, 68, 1100, + 68, 68, 1102, 68, 68, 68, 1108, 1111, 68, 1106, + 68, 1107, 68, 1109, 1104, 68, 1113, 68, 1110, 68, + 1114, 1115, 68, 1116, 68, 68, 1118, 1119, 1120, 68, + 1112, 68, 68, 68, 68, 1121, 68, 1117, 68, 1122, + 68, 68, 1124, 68, 1123, 1127, 68, 68, 68, 68, + 68, 1132, 1134, 68, 1126, 1125, 1130, 68, 68, 1136, + 68, 1128, 1135, 68, 68, 1140, 1131, 1133, 68, 1129, + 68, 1141, 1137, 68, 68, 68, 1138, 1142, 1143, 68, + + 68, 68, 1139, 1144, 1147, 68, 68, 68, 68, 68, + 68, 1151, 1154, 68, 1145, 1146, 1150, 1148, 1149, 68, + 1156, 68, 68, 68, 1155, 1159, 68, 68, 1153, 68, + 1157, 1160, 68, 1152, 1164, 68, 68, 1166, 68, 1162, + 68, 68, 1161, 68, 1158, 127, 1168, 1182, 1165, 1163, + 1169, 68, 1170, 68, 1171, 68, 68, 1173, 68, 1167, + 68, 1172, 68, 1174, 1175, 68, 68, 68, 1177, 1178, + 68, 1176, 1179, 68, 68, 1183, 68, 68, 1180, 1185, + 68, 1184, 68, 68, 1188, 68, 1189, 68, 1190, 68, + 1191, 68, 68, 68, 1181, 68, 1193, 1186, 68, 1196, + + 68, 1187, 1194, 68, 1192, 68, 68, 68, 1201, 68, + 125, 123, 1197, 1195, 122, 120, 118, 68, 1202, 1202, + 1198, 1199, 1202, 1202, 1202, 1200, 40, 40, 40, 40, 40, 40, 45, 45, 45, 45, 45, 45, 50, 50, 50, 50, 50, 50, 56, 56, 56, 56, 56, 56, 61, 61, 61, 61, 61, 61, 71, 71, 71, 71, - 71, 71, 116, 116, 1186, 1186, 116, 116, 118, 118, - 1186, 118, 1186, 118, 120, 1186, 1186, 1186, 1186, 120, - 123, 123, 1186, 1186, 123, 123, 125, 1186, 1186, 1186, - 1186, 125, 127, 127, 127, 127, 127, 127, 72, 72, - 72, 72, 72, 72, 13, 1186, 1186, 1186, 1186, 1186, - 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, - 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, - - 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, - 1186, 1186, 1186, 1186 + 71, 71, 117, 117, 1202, 1202, 117, 117, 119, 119, + 1202, 119, 1202, 119, 121, 1202, 1202, 1202, 1202, 121, + 124, 124, 1202, 1202, 124, 124, 126, 1202, 1202, 1202, + 1202, 126, 128, 128, 128, 128, 128, 128, 72, 72, + + 72, 72, 72, 72, 13, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202 } ; -static yyconst flex_int16_t yy_chk[2415] = +static yyconst flex_int16_t yy_chk[2445] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1095,266 +1105,269 @@ static yyconst flex_int16_t yy_chk[2415] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4, 49, 5, 5, 49, 3, 5, 15, 4, 6, 6, 15, 5, 6, 9, 9, - 9, 44, 44, 6, 7, 7, 7, 7, 9, 7, - 10, 10, 10, 33, 83, 7, 8, 8, 8, 8, - 10, 8, 21, 24, 79, 21, 21, 8, 11, 11, - 11, 11, 11, 11, 33, 20, 83, 20, 20, 11, - - 20, 25, 79, 21, 28, 20, 30, 24, 11, 12, - 12, 12, 12, 12, 12, 133, 25, 26, 26, 28, - 12, 30, 29, 133, 27, 1192, 26, 29, 27, 12, + 9, 1208, 33, 6, 7, 7, 7, 7, 9, 7, + 10, 10, 10, 44, 44, 7, 8, 8, 8, 8, + 10, 8, 21, 33, 77, 21, 21, 8, 11, 11, + 11, 11, 11, 11, 521, 20, 92, 20, 20, 11, + + 20, 25, 24, 21, 77, 20, 24, 28, 11, 12, + 12, 12, 12, 12, 12, 92, 25, 69, 26, 26, + 12, 69, 28, 172, 27, 172, 24, 26, 27, 12, 19, 19, 19, 19, 23, 19, 22, 22, 27, 23, - 19, 19, 31, 23, 22, 34, 23, 32, 32, 23, - 105, 22, 32, 38, 34, 37, 37, 31, 69, 35, - 34, 31, 69, 34, 35, 105, 36, 38, 32, 66, - 34, 36, 38, 37, 35, 39, 39, 35, 60, 60, - 39, 36, 55, 66, 55, 55, 36, 55, 63, 63, - 63, 63, 65, 63, 65, 65, 77, 65, 68, 63, - - 68, 68, 75, 68, 78, 75, 81, 78, 68, 71, - 71, 71, 71, 76, 71, 80, 77, 76, 81, 71, - 71, 82, 84, 85, 86, 89, 87, 84, 88, 80, - 89, 90, 88, 91, 90, 96, 92, 90, 95, 82, - 84, 92, 86, 85, 87, 95, 93, 98, 96, 93, - 94, 90, 91, 93, 94, 97, 99, 101, 102, 100, - 98, 92, 97, 100, 103, 104, 106, 102, 107, 108, - 109, 109, 110, 111, 108, 101, 99, 112, 104, 115, - 114, 170, 113, 170, 103, 106, 107, 113, 117, 117, - 110, 109, 114, 119, 111, 129, 119, 115, 129, 121, - - 112, 121, 121, 130, 121, 124, 124, 126, 130, 126, - 126, 132, 126, 127, 127, 127, 127, 131, 127, 134, - 135, 142, 131, 136, 127, 137, 132, 138, 136, 147, - 137, 514, 138, 141, 134, 140, 140, 144, 141, 143, - 135, 139, 144, 143, 142, 139, 145, 147, 148, 149, - 139, 146, 150, 148, 151, 139, 152, 152, 154, 151, - 145, 139, 139, 146, 159, 153, 146, 155, 150, 149, - 153, 159, 155, 156, 161, 157, 153, 158, 156, 154, - 157, 160, 158, 162, 163, 164, 165, 160, 166, 167, - 168, 171, 163, 166, 161, 169, 183, 172, 171, 174, - - 164, 173, 173, 128, 174, 162, 165, 175, 168, 177, - 178, 167, 175, 125, 183, 169, 172, 176, 179, 176, - 180, 177, 174, 181, 182, 180, 179, 184, 181, 178, - 185, 186, 186, 185, 188, 184, 176, 187, 187, 182, - 189, 190, 191, 192, 190, 193, 191, 194, 194, 195, - 188, 196, 192, 197, 195, 189, 196, 198, 199, 193, - 200, 200, 201, 202, 203, 204, 206, 205, 204, 203, - 208, 199, 207, 197, 209, 202, 209, 209, 198, 205, - 201, 207, 208, 210, 210, 211, 206, 212, 211, 214, - 213, 215, 215, 216, 216, 217, 218, 219, 214, 220, - - 222, 221, 219, 222, 212, 213, 221, 212, 223, 224, - 217, 226, 227, 225, 224, 229, 218, 223, 225, 220, - 228, 231, 234, 228, 232, 233, 227, 236, 238, 229, - 235, 226, 237, 232, 239, 240, 231, 237, 241, 228, - 230, 234, 230, 230, 245, 235, 233, 236, 238, 239, - 240, 242, 230, 246, 230, 230, 230, 243, 241, 230, - 244, 244, 243, 244, 245, 242, 247, 248, 249, 246, - 250, 251, 249, 254, 252, 253, 307, 254, 255, 307, - 259, 248, 247, 252, 253, 251, 256, 255, 250, 257, - 263, 256, 258, 259, 262, 257, 252, 258, 260, 260, - - 261, 264, 263, 262, 265, 261, 264, 266, 266, 268, - 268, 269, 270, 271, 272, 274, 275, 281, 276, 277, - 270, 279, 271, 276, 278, 265, 272, 277, 280, 278, - 275, 283, 269, 282, 282, 274, 281, 284, 285, 279, - 287, 282, 284, 286, 286, 288, 288, 284, 289, 282, - 280, 283, 290, 291, 292, 293, 294, 295, 285, 282, - 296, 294, 301, 289, 290, 287, 295, 297, 291, 300, - 298, 299, 302, 292, 298, 304, 299, 293, 305, 296, - 301, 300, 297, 303, 303, 302, 306, 304, 123, 308, - 305, 309, 309, 310, 310, 311, 312, 312, 313, 313, - - 311, 306, 308, 314, 315, 320, 316, 317, 314, 315, - 316, 318, 317, 319, 321, 318, 322, 326, 319, 321, - 323, 324, 324, 323, 325, 320, 326, 329, 323, 325, - 322, 327, 323, 328, 327, 346, 330, 328, 331, 332, - 329, 330, 336, 331, 333, 332, 334, 333, 335, 334, - 337, 338, 339, 335, 122, 346, 338, 339, 340, 328, - 336, 341, 340, 340, 337, 342, 341, 343, 344, 345, - 343, 345, 344, 344, 342, 347, 348, 349, 350, 347, - 351, 352, 352, 353, 354, 351, 355, 353, 356, 354, - 357, 348, 358, 350, 363, 349, 359, 360, 120, 358, - - 361, 359, 355, 357, 360, 361, 362, 356, 364, 365, - 366, 362, 363, 368, 367, 364, 368, 369, 365, 367, - 370, 369, 371, 371, 366, 373, 375, 376, 374, 380, - 373, 371, 374, 377, 383, 376, 384, 385, 389, 388, - 384, 370, 385, 383, 375, 387, 380, 391, 377, 386, - 387, 390, 390, 386, 391, 393, 386, 388, 392, 392, - 396, 386, 397, 389, 394, 394, 395, 386, 386, 395, - 393, 398, 399, 399, 400, 402, 402, 401, 404, 398, - 396, 397, 401, 403, 404, 405, 403, 406, 407, 400, - 409, 408, 412, 405, 415, 406, 408, 409, 410, 410, - - 411, 414, 416, 416, 414, 411, 407, 417, 415, 419, - 417, 412, 420, 421, 422, 423, 425, 421, 417, 429, - 424, 420, 425, 426, 423, 428, 427, 430, 432, 428, - 419, 427, 436, 422, 424, 431, 439, 426, 429, 430, - 431, 433, 433, 434, 435, 437, 438, 435, 434, 432, - 436, 438, 440, 440, 441, 441, 439, 442, 437, 443, - 444, 445, 446, 443, 448, 449, 450, 452, 448, 451, - 453, 492, 442, 454, 455, 455, 446, 492, 454, 444, - 456, 450, 455, 451, 453, 445, 447, 457, 452, 447, - 449, 447, 458, 458, 456, 447, 459, 447, 460, 457, - - 455, 459, 447, 461, 462, 465, 460, 463, 463, 466, - 465, 467, 466, 468, 469, 470, 471, 461, 473, 469, - 472, 507, 474, 462, 470, 472, 468, 475, 477, 478, - 467, 481, 475, 507, 478, 471, 474, 479, 473, 480, - 481, 487, 479, 477, 480, 482, 482, 483, 486, 485, - 485, 486, 483, 485, 488, 489, 487, 490, 489, 491, - 493, 494, 490, 493, 491, 495, 497, 496, 498, 499, - 500, 497, 499, 498, 488, 503, 505, 501, 502, 494, - 496, 500, 501, 502, 506, 495, 504, 504, 508, 509, - 503, 510, 508, 511, 512, 505, 515, 517, 506, 516, - - 510, 518, 521, 519, 520, 524, 518, 509, 519, 520, - 515, 522, 511, 523, 516, 525, 521, 517, 523, 512, - 524, 526, 526, 527, 528, 522, 529, 530, 531, 533, - 525, 529, 532, 528, 534, 535, 532, 536, 537, 538, - 539, 527, 540, 541, 533, 538, 530, 531, 545, 534, - 543, 544, 541, 554, 535, 539, 537, 118, 536, 544, - 546, 548, 540, 549, 543, 546, 547, 554, 545, 555, - 547, 547, 549, 550, 548, 551, 551, 552, 550, 553, - 553, 556, 552, 557, 558, 563, 556, 555, 557, 558, - 559, 560, 561, 562, 559, 565, 561, 564, 566, 567, - - 560, 568, 570, 563, 575, 560, 566, 560, 562, 560, - 116, 564, 569, 569, 565, 571, 571, 567, 572, 572, - 573, 570, 574, 574, 575, 573, 568, 576, 577, 578, - 579, 580, 582, 577, 583, 576, 579, 582, 580, 583, - 584, 585, 586, 587, 588, 584, 585, 578, 589, 589, - 590, 586, 591, 592, 593, 588, 594, 598, 592, 595, - 596, 596, 587, 597, 600, 603, 599, 602, 604, 606, - 590, 602, 602, 605, 593, 591, 594, 595, 605, 608, - 609, 607, 598, 597, 599, 607, 604, 600, 610, 606, - 611, 603, 612, 614, 609, 611, 613, 615, 608, 612, - - 616, 613, 617, 618, 619, 620, 615, 610, 618, 619, - 620, 614, 621, 621, 623, 616, 624, 625, 628, 623, - 626, 627, 627, 617, 626, 626, 629, 631, 630, 632, - 624, 633, 629, 630, 634, 635, 625, 628, 636, 637, - 638, 638, 640, 639, 642, 645, 631, 639, 632, 635, - 633, 641, 655, 634, 637, 640, 643, 643, 644, 636, - 641, 646, 648, 644, 642, 645, 646, 648, 651, 651, - 653, 654, 657, 653, 656, 658, 658, 655, 659, 656, - 660, 660, 661, 662, 663, 665, 654, 657, 663, 664, - 665, 667, 668, 670, 662, 669, 669, 671, 659, 672, - - 673, 676, 673, 681, 661, 674, 668, 675, 664, 667, - 674, 677, 675, 670, 678, 683, 683, 671, 680, 672, - 678, 676, 684, 680, 682, 677, 685, 682, 681, 686, - 687, 688, 688, 689, 686, 687, 690, 691, 689, 692, - 684, 693, 695, 694, 696, 697, 685, 695, 698, 701, - 74, 699, 702, 700, 690, 693, 694, 691, 701, 692, - 700, 701, 706, 707, 696, 697, 699, 705, 702, 698, - 705, 706, 708, 710, 709, 711, 711, 712, 710, 713, - 714, 708, 707, 709, 708, 715, 716, 717, 717, 718, - 719, 721, 713, 727, 726, 722, 721, 712, 714, 715, - - 722, 723, 726, 724, 716, 718, 724, 723, 719, 728, - 729, 727, 724, 730, 732, 733, 734, 735, 736, 733, - 737, 734, 735, 736, 738, 739, 729, 741, 728, 737, - 742, 730, 740, 740, 732, 746, 743, 745, 744, 747, - 739, 741, 742, 744, 753, 747, 754, 738, 743, 745, - 748, 748, 750, 746, 749, 749, 751, 751, 752, 755, - 755, 750, 761, 752, 763, 753, 754, 756, 756, 757, - 757, 758, 760, 762, 758, 764, 764, 760, 762, 765, - 761, 766, 767, 768, 765, 769, 770, 771, 771, 763, - 772, 773, 773, 766, 774, 766, 778, 775, 779, 779, - - 766, 776, 767, 768, 777, 769, 775, 770, 776, 780, - 781, 785, 783, 777, 774, 784, 772, 783, 786, 787, - 784, 788, 778, 789, 787, 786, 781, 790, 791, 794, - 788, 785, 792, 802, 795, 780, 793, 802, 792, 796, - 799, 798, 790, 789, 796, 793, 798, 791, 795, 797, - 794, 800, 799, 797, 797, 801, 800, 803, 804, 805, - 806, 807, 808, 72, 805, 810, 807, 801, 810, 803, - 811, 811, 812, 812, 808, 813, 816, 819, 822, 814, - 815, 813, 806, 804, 814, 816, 815, 821, 821, 819, - 827, 823, 828, 829, 829, 827, 822, 831, 831, 821, - - 823, 830, 833, 830, 834, 834, 835, 836, 837, 828, - 839, 838, 840, 842, 843, 844, 843, 845, 842, 836, - 837, 847, 833, 838, 853, 839, 845, 835, 846, 846, - 848, 852, 840, 844, 849, 848, 849, 850, 851, 856, - 854, 855, 850, 851, 853, 854, 855, 847, 857, 852, - 858, 858, 859, 864, 860, 862, 861, 863, 856, 865, - 869, 70, 857, 860, 859, 861, 860, 862, 866, 870, - 863, 868, 872, 864, 866, 865, 874, 868, 870, 871, - 871, 872, 873, 873, 875, 869, 876, 877, 875, 878, - 878, 876, 885, 879, 882, 874, 883, 883, 884, 884, - - 877, 879, 886, 882, 885, 887, 888, 886, 889, 887, - 890, 891, 892, 889, 893, 894, 896, 915, 897, 896, - 915, 888, 898, 899, 899, 905, 893, 900, 900, 890, - 891, 897, 902, 892, 911, 898, 894, 901, 901, 903, - 903, 904, 904, 913, 905, 902, 906, 906, 907, 907, - 909, 910, 910, 911, 914, 909, 912, 912, 916, 916, - 914, 913, 917, 917, 918, 919, 919, 921, 921, 922, - 923, 923, 924, 925, 916, 926, 927, 928, 925, 929, - 930, 927, 931, 918, 924, 934, 932, 931, 929, 930, - 932, 936, 928, 937, 937, 922, 926, 938, 939, 939, - - 936, 941, 938, 942, 950, 934, 944, 939, 945, 944, - 946, 946, 951, 945, 947, 942, 941, 948, 947, 955, - 948, 949, 949, 952, 950, 953, 956, 954, 952, 957, - 953, 956, 951, 954, 958, 955, 958, 957, 961, 961, - 964, 964, 967, 967, 969, 969, 971, 972, 972, 973, - 974, 971, 975, 977, 977, 980, 981, 975, 981, 982, - 980, 983, 983, 984, 982, 973, 985, 986, 987, 988, - 989, 992, 974, 990, 990, 984, 991, 995, 993, 986, - 987, 988, 994, 998, 985, 991, 996, 997, 998, 999, - 989, 1000, 1000, 1002, 999, 994, 1006, 992, 993, 1005, - - 996, 995, 1003, 1003, 1007, 997, 1009, 1008, 1005, 1010, - 1010, 1002, 1011, 1012, 1006, 1013, 1014, 1011, 1018, 1020, - 1020, 1019, 1007, 1008, 1019, 1009, 1021, 1022, 1012, 1024, - 1024, 1025, 1026, 1026, 1013, 1029, 1014, 1030, 1018, 1028, - 1028, 1021, 1031, 1032, 1033, 1022, 1030, 1031, 1032, 1035, - 1025, 1036, 1033, 1037, 1038, 67, 1036, 1029, 1037, 1039, - 1039, 1040, 1040, 1041, 1035, 1042, 1042, 1045, 1041, 1038, - 1043, 1043, 1045, 1046, 1047, 1048, 1053, 1047, 1049, 1050, - 1050, 1051, 1054, 1056, 1048, 1046, 1057, 1049, 1055, 1055, - 1051, 1058, 1056, 1060, 1057, 1053, 1058, 1061, 1063, 1063, - - 1065, 1054, 1060, 1066, 1066, 1067, 1068, 1068, 1067, 1070, - 1061, 1069, 1069, 1072, 1071, 1073, 1073, 1074, 1072, 1077, - 1065, 1074, 1080, 1081, 1082, 1077, 1083, 1070, 1071, 1084, - 1085, 1081, 1086, 1088, 1084, 1087, 1090, 1091, 1098, 1090, - 1094, 1080, 1083, 1082, 1087, 1092, 1092, 1093, 1096, 1094, - 1085, 1093, 1097, 1088, 1101, 1091, 1103, 1096, 1086, 1101, - 1102, 1102, 1105, 1098, 1097, 1103, 1106, 1105, 1107, 1108, - 1109, 1109, 1110, 1111, 1112, 1106, 1113, 1114, 1115, 1116, - 1116, 1113, 1112, 1121, 1108, 1117, 1120, 1107, 1110, 1124, - 1117, 1126, 1111, 1119, 1119, 1122, 1122, 1115, 1123, 1123, - - 1125, 1127, 1127, 1114, 1128, 1121, 1120, 1130, 1124, 1129, - 1129, 1126, 1125, 1132, 1133, 1133, 1128, 61, 1132, 1134, - 1134, 1135, 1135, 1136, 1137, 1137, 1130, 1145, 1136, 1139, - 1139, 1141, 1141, 1142, 1147, 1145, 1146, 1146, 1142, 1147, - 1149, 1151, 1152, 1156, 1156, 1149, 1152, 1158, 1160, 1160, - 1161, 1158, 1163, 1164, 1164, 1165, 1165, 1166, 1166, 1168, - 1168, 1151, 1170, 1171, 1171, 1161, 1177, 1176, 1178, 1178, - 1163, 1176, 1179, 1181, 1170, 1182, 1183, 1184, 1184, 56, - 51, 1179, 50, 45, 40, 14, 1177, 13, 1181, 1182, - 0, 0, 0, 0, 0, 1183, 1187, 1187, 1187, 1187, - - 1187, 1187, 1188, 1188, 1188, 1188, 1188, 1188, 1189, 1189, - 1189, 1189, 1189, 1189, 1190, 1190, 1190, 1190, 1190, 1190, - 1191, 1191, 1191, 1191, 1191, 1191, 1193, 1193, 1193, 1193, - 1193, 1193, 1194, 1194, 0, 0, 1194, 1194, 1195, 1195, - 0, 1195, 0, 1195, 1196, 0, 0, 0, 0, 1196, - 1197, 1197, 0, 0, 1197, 1197, 1198, 0, 0, 0, - 0, 1198, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1200, - 1200, 1200, 1200, 1200, 1186, 1186, 1186, 1186, 1186, 1186, - 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, - 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, - - 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, - 1186, 1186, 1186, 1186 + 19, 19, 29, 23, 22, 30, 23, 29, 31, 23, + 34, 22, 32, 32, 37, 37, 35, 32, 81, 34, + 30, 35, 38, 31, 36, 34, 66, 31, 34, 36, + 81, 35, 37, 32, 35, 34, 38, 39, 39, 36, + 66, 38, 39, 55, 36, 55, 55, 129, 55, 60, + 60, 63, 63, 63, 63, 65, 63, 65, 65, 83, + + 65, 68, 63, 68, 68, 75, 68, 78, 75, 79, + 78, 68, 71, 71, 71, 71, 76, 71, 80, 82, + 76, 83, 71, 71, 84, 85, 86, 79, 90, 84, + 87, 88, 80, 90, 89, 93, 96, 82, 89, 85, + 93, 91, 84, 96, 91, 97, 86, 91, 87, 88, + 94, 95, 98, 94, 99, 95, 100, 94, 97, 98, + 93, 91, 101, 102, 103, 104, 101, 99, 106, 105, + 107, 112, 108, 103, 109, 111, 100, 110, 110, 109, + 113, 102, 105, 106, 115, 104, 114, 116, 126, 107, + 108, 114, 112, 111, 118, 118, 115, 120, 110, 122, + + 120, 122, 122, 113, 122, 116, 125, 125, 127, 130, + 127, 127, 130, 127, 128, 128, 128, 128, 131, 128, + 133, 132, 134, 131, 135, 128, 132, 136, 137, 138, + 134, 139, 142, 137, 138, 133, 139, 141, 141, 135, + 143, 144, 145, 148, 146, 143, 145, 136, 140, 146, + 151, 142, 140, 147, 149, 148, 150, 140, 148, 152, + 153, 150, 140, 156, 144, 153, 155, 147, 140, 140, + 151, 155, 149, 154, 154, 152, 157, 155, 158, 161, + 159, 157, 160, 158, 156, 159, 161, 160, 162, 163, + 164, 165, 166, 167, 162, 168, 169, 170, 173, 165, + + 168, 171, 184, 174, 178, 173, 178, 166, 180, 163, + 175, 175, 164, 167, 176, 170, 179, 184, 169, 176, + 177, 171, 174, 178, 181, 177, 182, 180, 179, 183, + 185, 182, 181, 186, 183, 187, 190, 176, 187, 188, + 188, 186, 189, 189, 191, 194, 192, 193, 185, 192, + 195, 193, 190, 196, 194, 195, 197, 197, 198, 191, + 199, 200, 201, 198, 202, 199, 204, 196, 203, 203, + 205, 206, 207, 208, 209, 207, 206, 202, 210, 211, + 215, 200, 205, 201, 204, 208, 212, 210, 212, 212, + 216, 211, 213, 213, 209, 214, 220, 215, 214, 217, + + 215, 218, 218, 219, 219, 216, 221, 222, 217, 223, + 224, 220, 222, 225, 226, 224, 225, 227, 229, 228, + 230, 232, 227, 226, 228, 231, 221, 234, 231, 223, + 235, 236, 237, 239, 230, 232, 240, 267, 229, 235, + 238, 240, 234, 241, 231, 233, 244, 233, 233, 267, + 242, 237, 236, 239, 243, 238, 245, 233, 248, 233, + 233, 233, 246, 241, 233, 242, 244, 246, 249, 243, + 245, 247, 247, 250, 247, 252, 251, 252, 248, 253, + 254, 255, 256, 253, 249, 257, 124, 259, 258, 250, + 251, 256, 258, 261, 257, 255, 259, 260, 254, 261, + + 262, 263, 260, 265, 256, 262, 264, 264, 265, 266, + 268, 269, 270, 270, 263, 268, 272, 272, 266, 273, + 274, 275, 276, 278, 279, 281, 280, 283, 274, 284, + 275, 280, 269, 281, 276, 285, 282, 287, 279, 288, + 273, 282, 289, 278, 288, 283, 291, 286, 286, 288, + 293, 284, 290, 290, 285, 286, 294, 287, 292, 292, + 295, 296, 289, 286, 297, 293, 300, 298, 294, 299, + 304, 291, 298, 286, 301, 295, 305, 302, 299, 303, + 296, 302, 304, 306, 303, 300, 297, 307, 307, 301, + 308, 309, 310, 312, 305, 311, 306, 319, 311, 313, + + 313, 123, 308, 309, 314, 314, 312, 310, 315, 316, + 316, 317, 317, 315, 318, 320, 325, 321, 319, 318, + 320, 321, 322, 327, 323, 324, 326, 322, 323, 121, + 324, 326, 328, 329, 329, 328, 325, 327, 330, 331, + 328, 334, 332, 330, 328, 332, 333, 335, 331, 337, + 333, 336, 335, 341, 334, 337, 336, 338, 339, 340, + 338, 339, 342, 343, 340, 344, 357, 357, 343, 345, + 344, 341, 333, 345, 345, 346, 342, 347, 348, 349, + 346, 348, 351, 349, 349, 350, 347, 350, 352, 353, + 354, 355, 352, 356, 360, 358, 359, 361, 356, 358, + + 362, 359, 351, 368, 353, 363, 355, 119, 354, 364, + 360, 365, 363, 362, 364, 366, 361, 367, 365, 369, + 366, 368, 367, 370, 371, 372, 369, 375, 373, 374, + 372, 373, 370, 374, 376, 376, 378, 380, 371, 381, + 379, 378, 382, 376, 379, 385, 389, 381, 375, 388, + 390, 391, 389, 394, 390, 380, 391, 382, 388, 393, + 395, 397, 385, 392, 393, 396, 396, 392, 397, 399, + 392, 394, 398, 398, 402, 392, 400, 400, 403, 404, + 401, 392, 392, 401, 399, 395, 406, 404, 405, 405, + 407, 408, 408, 409, 402, 407, 409, 403, 410, 411, + + 412, 406, 413, 418, 410, 414, 415, 411, 412, 417, + 414, 416, 416, 415, 417, 420, 421, 425, 420, 430, + 413, 428, 418, 422, 422, 423, 426, 427, 423, 438, + 421, 427, 429, 430, 432, 426, 423, 431, 425, 433, + 428, 429, 434, 431, 433, 435, 434, 436, 432, 437, + 438, 439, 439, 440, 437, 442, 443, 441, 440, 436, + 441, 444, 445, 448, 435, 450, 444, 446, 446, 443, + 447, 447, 449, 442, 451, 452, 449, 454, 448, 456, + 455, 454, 445, 457, 450, 458, 459, 460, 467, 452, + 461, 465, 465, 460, 456, 461, 467, 457, 451, 453, + + 459, 464, 453, 463, 453, 455, 458, 468, 453, 466, + 453, 462, 462, 464, 466, 453, 469, 463, 475, 462, + 472, 468, 470, 470, 473, 472, 474, 473, 476, 477, + 478, 475, 480, 476, 479, 469, 481, 462, 477, 479, + 484, 482, 485, 486, 488, 474, 482, 485, 486, 478, + 481, 487, 480, 488, 490, 484, 487, 489, 489, 490, + 492, 492, 493, 494, 492, 493, 495, 496, 497, 498, + 496, 499, 500, 497, 498, 500, 501, 499, 494, 502, + 503, 506, 504, 505, 506, 507, 495, 504, 505, 510, + 508, 512, 509, 503, 501, 508, 507, 509, 513, 502, + + 511, 511, 514, 515, 510, 516, 517, 515, 518, 519, + 512, 522, 513, 523, 514, 517, 524, 525, 528, 526, + 117, 527, 525, 516, 526, 522, 527, 518, 523, 529, + 530, 531, 528, 532, 519, 530, 524, 533, 533, 534, + 535, 537, 536, 529, 539, 538, 531, 536, 532, 535, + 538, 540, 541, 542, 543, 540, 544, 534, 545, 546, + 537, 548, 549, 539, 547, 546, 551, 541, 542, 553, + 552, 549, 556, 543, 557, 74, 545, 544, 552, 547, + 551, 548, 554, 557, 563, 556, 555, 554, 558, 553, + 555, 555, 560, 558, 559, 559, 562, 560, 561, 561, + + 564, 565, 563, 566, 568, 564, 565, 567, 566, 570, + 562, 567, 569, 568, 571, 572, 569, 573, 568, 574, + 568, 575, 568, 576, 570, 577, 577, 574, 578, 572, + 579, 579, 571, 580, 580, 581, 573, 582, 582, 575, + 581, 583, 584, 72, 585, 586, 587, 578, 576, 585, + 584, 588, 587, 595, 590, 591, 594, 592, 588, 590, + 591, 583, 592, 586, 593, 594, 596, 597, 597, 593, + 598, 599, 595, 600, 603, 601, 602, 596, 600, 604, + 604, 605, 606, 608, 607, 611, 612, 682, 615, 682, + 598, 614, 603, 610, 599, 601, 602, 610, 610, 616, + + 613, 605, 607, 616, 612, 613, 608, 606, 615, 614, + 617, 611, 618, 619, 620, 621, 622, 623, 624, 620, + 626, 622, 621, 625, 634, 627, 618, 624, 628, 617, + 627, 629, 619, 628, 633, 623, 629, 632, 625, 630, + 630, 626, 632, 634, 637, 635, 636, 636, 633, 635, + 635, 638, 640, 639, 641, 642, 643, 638, 639, 645, + 647, 647, 644, 637, 646, 648, 687, 651, 649, 648, + 654, 640, 687, 641, 642, 643, 644, 650, 664, 646, + 645, 649, 652, 652, 653, 668, 650, 651, 655, 653, + 654, 657, 663, 655, 660, 660, 657, 662, 666, 665, + + 662, 667, 667, 664, 665, 668, 670, 663, 669, 669, + 671, 672, 673, 666, 674, 672, 676, 679, 677, 674, + 680, 671, 678, 678, 681, 683, 685, 686, 670, 690, + 683, 673, 677, 684, 676, 694, 691, 679, 684, 691, + 680, 686, 689, 692, 681, 695, 685, 689, 692, 693, + 693, 696, 697, 694, 690, 699, 696, 697, 698, 698, + 699, 700, 701, 702, 703, 695, 705, 704, 706, 707, + 708, 705, 709, 842, 710, 842, 712, 716, 703, 700, + 704, 710, 701, 702, 711, 717, 716, 709, 706, 707, + 718, 708, 712, 711, 715, 720, 711, 715, 719, 718, + + 720, 722, 718, 723, 717, 721, 721, 719, 724, 725, + 726, 727, 727, 728, 729, 731, 723, 732, 733, 737, + 731, 722, 732, 725, 733, 736, 724, 734, 726, 728, + 734, 738, 729, 736, 740, 739, 734, 737, 742, 743, + 744, 745, 746, 743, 747, 744, 745, 746, 748, 749, + 738, 739, 740, 747, 750, 750, 751, 752, 742, 756, + 753, 754, 755, 762, 749, 763, 754, 757, 762, 752, + 751, 748, 753, 757, 755, 758, 758, 756, 759, 759, + 760, 761, 761, 764, 765, 772, 763, 766, 766, 760, + 767, 767, 768, 768, 769, 771, 773, 769, 774, 777, + + 771, 773, 764, 772, 765, 775, 775, 776, 778, 779, + 780, 777, 776, 777, 781, 782, 782, 783, 777, 784, + 784, 785, 786, 774, 788, 787, 789, 791, 778, 779, + 780, 786, 787, 788, 792, 781, 790, 790, 796, 794, + 795, 785, 797, 783, 794, 795, 798, 799, 800, 797, + 792, 798, 789, 791, 801, 802, 799, 803, 796, 805, + 807, 804, 806, 803, 815, 807, 70, 808, 800, 801, + 804, 808, 808, 809, 802, 810, 806, 811, 809, 812, + 805, 813, 811, 814, 817, 813, 819, 810, 816, 815, + 887, 812, 818, 816, 887, 814, 821, 818, 819, 821, + + 822, 822, 823, 823, 824, 826, 817, 825, 827, 830, + 824, 826, 825, 832, 832, 833, 845, 827, 834, 835, + 840, 830, 841, 841, 839, 832, 847, 834, 835, 839, + 843, 843, 848, 833, 846, 846, 845, 840, 849, 850, + 851, 852, 856, 854, 848, 858, 858, 847, 854, 857, + 849, 850, 855, 859, 855, 851, 864, 860, 857, 862, + 856, 852, 860, 861, 862, 861, 863, 865, 866, 868, + 867, 863, 869, 866, 864, 867, 870, 870, 871, 859, + 872, 874, 873, 875, 876, 877, 869, 865, 868, 872, + 871, 873, 872, 874, 878, 881, 875, 880, 882, 884, + + 878, 877, 886, 880, 876, 883, 883, 882, 884, 885, + 885, 888, 889, 890, 890, 891, 888, 894, 895, 895, + 881, 886, 897, 891, 898, 889, 894, 896, 896, 898, + 900, 899, 901, 902, 897, 899, 903, 901, 904, 905, + 906, 907, 922, 909, 1010, 900, 909, 922, 910, 918, + 911, 67, 906, 912, 912, 903, 915, 904, 1010, 902, + 905, 910, 907, 911, 913, 913, 914, 914, 918, 915, + 916, 916, 917, 917, 919, 919, 920, 920, 923, 923, + 924, 925, 925, 926, 927, 928, 929, 929, 928, 931, + 927, 930, 930, 932, 932, 934, 934, 935, 937, 924, + + 938, 926, 929, 936, 936, 938, 939, 940, 931, 941, + 937, 942, 940, 943, 944, 947, 949, 945, 964, 944, + 942, 945, 943, 935, 941, 949, 951, 939, 950, 950, + 954, 951, 952, 952, 955, 947, 957, 958, 964, 957, + 965, 952, 958, 959, 959, 954, 955, 960, 999, 961, + 963, 960, 961, 962, 962, 963, 966, 967, 968, 969, + 965, 966, 967, 970, 968, 971, 999, 972, 970, 972, + 975, 975, 987, 971, 988, 969, 978, 978, 981, 981, + 983, 983, 985, 986, 986, 989, 1003, 985, 987, 994, + 989, 991, 991, 995, 994, 995, 988, 996, 997, 997, + + 998, 1000, 996, 1001, 1002, 1005, 1003, 1004, 1004, 1006, + 1007, 1008, 998, 1000, 1005, 1001, 1002, 1009, 1011, 1016, + 1012, 1013, 1014, 1014, 1008, 1012, 1013, 1017, 1017, 1020, + 1007, 1019, 1019, 1021, 1022, 1006, 1011, 1016, 1020, 1023, + 1024, 1009, 1025, 1025, 1026, 1027, 1028, 1029, 1033, 1026, + 1034, 1021, 1022, 1034, 1036, 1023, 1035, 1035, 1037, 1024, + 1027, 1039, 1039, 1040, 1044, 1028, 1045, 1029, 1033, 1036, + 1041, 1041, 1043, 1043, 1046, 1045, 1037, 1048, 1047, 1046, + 1050, 1053, 1040, 1047, 1051, 1048, 1044, 1052, 1069, 1051, + 1054, 1054, 1052, 1055, 1055, 1050, 1053, 1056, 1057, 1057, + + 1058, 1058, 1056, 1060, 1061, 1064, 1063, 1069, 1060, 1063, + 1065, 1066, 1066, 1067, 1064, 1070, 1061, 1071, 1071, 1065, + 1072, 1074, 1067, 1073, 1076, 1077, 1074, 1079, 1079, 1072, + 1081, 1073, 1087, 1076, 1070, 1082, 1082, 1083, 1077, 1086, + 1083, 1084, 1084, 1085, 1085, 1096, 1087, 1088, 1089, 1089, + 1081, 1090, 1088, 1093, 1097, 1090, 1098, 1086, 1099, 1093, + 1100, 1101, 1097, 1102, 1096, 1100, 1104, 1103, 1106, 1107, + 1110, 1106, 1108, 1108, 1099, 1098, 1103, 1114, 1109, 1110, + 1117, 1101, 1109, 1112, 1113, 1117, 1104, 1107, 1119, 1102, + 1118, 1118, 1112, 1121, 1122, 1123, 1113, 1119, 1121, 1127, + + 1124, 1126, 1114, 1122, 1125, 1125, 1129, 1130, 1128, 1131, + 1136, 1129, 1132, 1132, 1123, 1124, 1128, 1126, 1127, 1133, + 1135, 1135, 1137, 1140, 1133, 1138, 1138, 1141, 1131, 1142, + 1136, 1139, 1139, 1130, 1143, 1143, 1144, 1145, 1145, 1141, + 1146, 1148, 1140, 1168, 1137, 61, 1148, 1168, 1144, 1142, + 1149, 1149, 1150, 1150, 1151, 1151, 1152, 1153, 1153, 1146, + 1161, 1152, 1155, 1155, 1157, 1157, 1158, 1163, 1161, 1162, + 1162, 1158, 1163, 1165, 1167, 1172, 1172, 1174, 1165, 1176, + 1176, 1174, 1177, 1179, 1180, 1180, 1181, 1181, 1182, 1182, + 1184, 1184, 1186, 1193, 1167, 1187, 1187, 1177, 1192, 1194, + + 1194, 1179, 1192, 1195, 1186, 1197, 1199, 1198, 1200, 1200, + 56, 51, 1195, 1193, 50, 45, 40, 14, 13, 0, + 1197, 1198, 0, 0, 0, 1199, 1203, 1203, 1203, 1203, + 1203, 1203, 1204, 1204, 1204, 1204, 1204, 1204, 1205, 1205, + 1205, 1205, 1205, 1205, 1206, 1206, 1206, 1206, 1206, 1206, + 1207, 1207, 1207, 1207, 1207, 1207, 1209, 1209, 1209, 1209, + 1209, 1209, 1210, 1210, 0, 0, 1210, 1210, 1211, 1211, + 0, 1211, 0, 1211, 1212, 0, 0, 0, 0, 1212, + 1213, 1213, 0, 0, 1213, 1213, 1214, 0, 0, 0, + 0, 1214, 1215, 1215, 1215, 1215, 1215, 1215, 1216, 1216, + + 1216, 1216, 1216, 1216, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202 } ; static yy_state_type yy_last_accepting_state; @@ -1481,7 +1494,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1483 "" +#line 1496 "" #define INITIAL 0 #define quotedstring 1 @@ -1668,7 +1681,7 @@ YY_DECL #line 123 "util/configlexer.lex" -#line 1670 "" +#line 1683 "" if ( !(yy_init) ) { @@ -1727,13 +1740,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1187 ) + if ( yy_current_state >= 1203 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 2375 ); + while ( yy_base[yy_current_state] != 2405 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1895,434 +1908,439 @@ YY_RULE_SETUP case 27: YY_RULE_SETUP #line 152 "util/configlexer.lex" -{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } +{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } YY_BREAK case 28: YY_RULE_SETUP #line 153 "util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SIZE) } +{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } YY_BREAK case 29: YY_RULE_SETUP #line 154 "util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SLABS) } +{ YDVAR(1, VAR_MSG_CACHE_SIZE) } YY_BREAK case 30: YY_RULE_SETUP #line 155 "util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } +{ YDVAR(1, VAR_MSG_CACHE_SLABS) } YY_BREAK case 31: YY_RULE_SETUP #line 156 "util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } +{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } YY_BREAK case 32: YY_RULE_SETUP #line 157 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } YY_BREAK case 33: YY_RULE_SETUP #line 158 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MIN_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_TTL) } YY_BREAK case 34: YY_RULE_SETUP #line 159 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_HOST_TTL) } +{ YDVAR(1, VAR_CACHE_MIN_TTL) } YY_BREAK case 35: YY_RULE_SETUP #line 160 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_LAME_TTL) } +{ YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 36: YY_RULE_SETUP #line 161 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } +{ YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 37: YY_RULE_SETUP #line 162 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } +{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 38: YY_RULE_SETUP #line 163 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } +{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 39: YY_RULE_SETUP #line 164 "util/configlexer.lex" -{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } +{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 40: YY_RULE_SETUP #line 165 "util/configlexer.lex" -{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } +{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 41: YY_RULE_SETUP #line 166 "util/configlexer.lex" -{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } +{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 42: YY_RULE_SETUP #line 167 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } +{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 43: YY_RULE_SETUP #line 168 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } +{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 44: YY_RULE_SETUP #line 169 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_GLUE) } +{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 45: YY_RULE_SETUP #line 170 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_DNNSEC_STRIPPED) } +{ YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 46: YY_RULE_SETUP #line 171 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } +{ YDVAR(1, VAR_HARDEN_DNNSEC_STRIPPED) } YY_BREAK case 47: YY_RULE_SETUP #line 172 "util/configlexer.lex" -{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 48: YY_RULE_SETUP #line 173 "util/configlexer.lex" -{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 49: YY_RULE_SETUP #line 174 "util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_ADDRESS) } +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 50: YY_RULE_SETUP #line 175 "util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_DOMAIN) } +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 51: YY_RULE_SETUP #line 176 "util/configlexer.lex" -{ YDVAR(0, VAR_STUB_ZONE) } +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 52: YY_RULE_SETUP #line 177 "util/configlexer.lex" -{ YDVAR(1, VAR_NAME) } +{ YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 53: YY_RULE_SETUP #line 178 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_ADDR) } +{ YDVAR(1, VAR_NAME) } YY_BREAK case 54: YY_RULE_SETUP #line 179 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_HOST) } +{ YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 55: YY_RULE_SETUP #line 180 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_PRIME) } +{ YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 56: YY_RULE_SETUP #line 181 "util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 57: YY_RULE_SETUP #line 182 "util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 58: YY_RULE_SETUP #line 183 "util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 59: YY_RULE_SETUP #line 184 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 60: YY_RULE_SETUP #line 185 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 61: YY_RULE_SETUP #line 186 "util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 62: YY_RULE_SETUP #line 187 "util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 63: YY_RULE_SETUP #line 188 "util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 64: YY_RULE_SETUP #line 189 "util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 65: YY_RULE_SETUP #line 190 "util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 66: YY_RULE_SETUP #line 191 "util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 67: YY_RULE_SETUP #line 192 "util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 68: YY_RULE_SETUP #line 193 "util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 69: YY_RULE_SETUP #line 194 "util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 70: YY_RULE_SETUP #line 195 "util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 71: YY_RULE_SETUP #line 196 "util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 72: YY_RULE_SETUP #line 197 "util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 73: YY_RULE_SETUP #line 198 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 74: YY_RULE_SETUP #line 199 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 75: YY_RULE_SETUP #line 200 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 76: YY_RULE_SETUP #line 201 "util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 77: YY_RULE_SETUP #line 202 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 78: YY_RULE_SETUP #line 203 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 79: YY_RULE_SETUP #line 204 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 80: YY_RULE_SETUP #line 205 "util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 81: YY_RULE_SETUP #line 206 "util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 82: YY_RULE_SETUP #line 207 "util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 83: YY_RULE_SETUP #line 208 "util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 84: YY_RULE_SETUP -#line 210 "util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 209 "util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 85: YY_RULE_SETUP #line 211 "util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 86: YY_RULE_SETUP #line 212 "util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 87: YY_RULE_SETUP #line 213 "util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 88: YY_RULE_SETUP #line 214 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 89: YY_RULE_SETUP #line 215 "util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 90: YY_RULE_SETUP #line 216 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 91: YY_RULE_SETUP #line 217 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 92: YY_RULE_SETUP #line 218 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 93: YY_RULE_SETUP #line 219 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 94: YY_RULE_SETUP #line 220 "util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 95: YY_RULE_SETUP #line 221 "util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 96: YY_RULE_SETUP #line 222 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 97: YY_RULE_SETUP #line 223 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 98: YY_RULE_SETUP #line 224 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 99: YY_RULE_SETUP #line 225 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 100: YY_RULE_SETUP #line 226 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 101: YY_RULE_SETUP #line 227 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 102: YY_RULE_SETUP #line 228 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 103: YY_RULE_SETUP #line 229 "util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 104: YY_RULE_SETUP #line 230 "util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 105: YY_RULE_SETUP #line 231 "util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 106: -/* rule 106 can match eol */ YY_RULE_SETUP #line 232 "util/configlexer.lex" +{ YDVAR(1, VAR_DOMAIN_INSECURE) } + YY_BREAK +case 107: +/* rule 107 can match eol */ +YY_RULE_SETUP +#line 233 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 107: +case 108: YY_RULE_SETUP -#line 235 "util/configlexer.lex" +#line 236 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 236 "util/configlexer.lex" +#line 237 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 241 "util/configlexer.lex" +#line 242 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 109: -/* rule 109 can match eol */ +case 110: +/* rule 110 can match eol */ YY_RULE_SETUP -#line 242 "util/configlexer.lex" +#line 243 "util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 244 "util/configlexer.lex" +#line 245 "util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2335,34 +2353,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 111: +case 112: YY_RULE_SETUP -#line 256 "util/configlexer.lex" +#line 257 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 257 "util/configlexer.lex" +#line 258 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 262 "util/configlexer.lex" +#line 263 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 113: -/* rule 113 can match eol */ +case 114: +/* rule 114 can match eol */ YY_RULE_SETUP -#line 263 "util/configlexer.lex" +#line 264 "util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 265 "util/configlexer.lex" +#line 266 "util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2375,38 +2393,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 115: +case 116: YY_RULE_SETUP -#line 277 "util/configlexer.lex" +#line 278 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 279 "util/configlexer.lex" +#line 280 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 116: -YY_RULE_SETUP -#line 283 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 117: -/* rule 117 can match eol */ YY_RULE_SETUP #line 284 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 118: +/* rule 118 can match eol */ YY_RULE_SETUP #line 285 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 119: YY_RULE_SETUP #line 286 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 120: +YY_RULE_SETUP +#line 287 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -2414,27 +2432,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 291 "util/configlexer.lex" +#line 292 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 120: +case 121: YY_RULE_SETUP -#line 295 "util/configlexer.lex" +#line 296 "util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 121: -/* rule 121 can match eol */ +case 122: +/* rule 122 can match eol */ YY_RULE_SETUP -#line 296 "util/configlexer.lex" +#line 297 "util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 122: +case 123: YY_RULE_SETUP -#line 298 "util/configlexer.lex" +#line 299 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -2444,7 +2462,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 304 "util/configlexer.lex" +#line 305 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2455,33 +2473,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 123: +case 124: YY_RULE_SETUP -#line 314 "util/configlexer.lex" +#line 315 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 124: +case 125: YY_RULE_SETUP -#line 318 "util/configlexer.lex" +#line 319 "util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 322 "util/configlexer.lex" +#line 323 "util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 326 "util/configlexer.lex" +#line 327 "util/configlexer.lex" ECHO; YY_BREAK -#line 2483 "" +#line 2501 "" case YY_END_OF_BUFFER: { @@ -2771,7 +2789,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1187 ) + if ( yy_current_state >= 1203 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2799,11 +2817,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1187 ) + if ( yy_current_state >= 1203 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1186); + yy_is_jam = (yy_current_state == 1202); return yy_is_jam ? 0 : yy_current_state; } @@ -3440,7 +3458,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 326 "util/configlexer.lex" +#line 327 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index c81720718..24402ef27 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -149,6 +149,7 @@ directory{COLON} { YDVAR(1, VAR_DIRECTORY) } logfile{COLON} { YDVAR(1, VAR_LOGFILE) } pidfile{COLON} { YDVAR(1, VAR_PIDFILE) } root-hints{COLON} { YDVAR(1, VAR_ROOT_HINTS) } +edns-buffer-size{COLON} { YDVAR(1, VAR_EDNS_BUFFER_SIZE) } msg-buffer-size{COLON} { YDVAR(1, VAR_MSG_BUFFER_SIZE) } msg-cache-size{COLON} { YDVAR(1, VAR_MSG_CACHE_SIZE) } msg-cache-slabs{COLON} { YDVAR(1, VAR_MSG_CACHE_SLABS) } diff --git a/util/configparser.c b/util/configparser.c index e4c844548..af9ed8ec3 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -234,7 +234,8 @@ extern struct config_parser_state* cfg_parser; VAR_KEEP_MISSING = 365, VAR_ADD_HOLDDOWN = 366, VAR_DEL_HOLDDOWN = 367, - VAR_SO_RCVBUF = 368 + VAR_SO_RCVBUF = 368, + VAR_EDNS_BUFFER_SIZE = 369 }; #endif /* Tokens. */ @@ -349,6 +350,7 @@ extern struct config_parser_state* cfg_parser; #define VAR_ADD_HOLDDOWN 366 #define VAR_DEL_HOLDDOWN 367 #define VAR_SO_RCVBUF 368 +#define VAR_EDNS_BUFFER_SIZE 369 @@ -365,7 +367,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 369 "util/configparser.c" +#line 371 "util/configparser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -377,7 +379,7 @@ typedef union YYSTYPE /* Line 264 of yacc.c */ -#line 381 "util/configparser.c" +#line 383 "util/configparser.c" #ifdef short # undef short @@ -592,20 +594,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 207 +#define YYLAST 209 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 114 +#define YYNTOKENS 115 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 117 +#define YYNNTS 118 /* YYNRULES -- Number of rules. */ -#define YYNRULES 221 +#define YYNRULES 223 /* YYNRULES -- Number of states. */ -#define YYNSTATES 323 +#define YYNSTATES 326 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 368 +#define YYMAXUTOK 369 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -649,7 +651,7 @@ static const yytype_uint8 yytranslate[] = 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113 + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114 }; #if YYDEBUG @@ -666,80 +668,81 @@ static const yytype_uint16 yyprhs[] = 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, - 184, 186, 188, 190, 192, 194, 196, 198, 201, 202, - 204, 206, 208, 210, 212, 215, 216, 218, 220, 222, - 225, 228, 231, 234, 237, 240, 243, 246, 249, 252, - 255, 258, 261, 264, 267, 270, 273, 276, 279, 282, - 285, 288, 291, 294, 297, 300, 303, 306, 309, 312, - 315, 318, 321, 324, 327, 330, 333, 336, 339, 342, - 345, 348, 351, 354, 357, 360, 363, 366, 369, 372, - 375, 378, 381, 384, 387, 390, 393, 396, 399, 402, - 405, 408, 411, 415, 418, 421, 424, 427, 430, 433, - 436, 439, 442, 445, 448, 451, 454, 457, 460, 463, - 466, 470, 473, 476, 479, 482, 485, 488, 491, 494, - 497, 499, 502, 503, 505, 507, 509, 511, 513, 515, - 517, 520, 523, 526, 529, 532, 535, 538, 540, 543, - 544, 546 + 184, 186, 188, 190, 192, 194, 196, 198, 200, 203, + 204, 206, 208, 210, 212, 214, 217, 218, 220, 222, + 224, 227, 230, 233, 236, 239, 242, 245, 248, 251, + 254, 257, 260, 263, 266, 269, 272, 275, 278, 281, + 284, 287, 290, 293, 296, 299, 302, 305, 308, 311, + 314, 317, 320, 323, 326, 329, 332, 335, 338, 341, + 344, 347, 350, 353, 356, 359, 362, 365, 368, 371, + 374, 377, 380, 383, 386, 389, 392, 395, 398, 401, + 404, 407, 410, 413, 416, 420, 423, 426, 429, 432, + 435, 438, 441, 444, 447, 450, 453, 456, 459, 462, + 465, 468, 471, 475, 478, 481, 484, 487, 490, 493, + 496, 499, 502, 504, 507, 508, 510, 512, 514, 516, + 518, 520, 522, 525, 528, 531, 534, 537, 540, 543, + 545, 548, 549, 551 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 115, 0, -1, -1, 115, 116, -1, 117, 118, -1, - 120, 121, -1, 123, 124, -1, 227, 228, -1, 217, - 218, -1, 11, -1, 118, 119, -1, -1, 126, -1, - 127, -1, 131, -1, 134, -1, 140, -1, 141, -1, - 142, -1, 143, -1, 132, -1, 147, -1, 148, -1, - 149, -1, 150, -1, 151, -1, 166, -1, 167, -1, - 168, -1, 170, -1, 171, -1, 137, -1, 172, -1, - 173, -1, 176, -1, 174, -1, 175, -1, 177, -1, - 178, -1, 179, -1, 187, -1, 160, -1, 161, -1, - 162, -1, 163, -1, 180, -1, 190, -1, 156, -1, - 158, -1, 191, -1, 196, -1, 197, -1, 198, -1, - 138, -1, 165, -1, 204, -1, 205, -1, 157, -1, - 200, -1, 145, -1, 133, -1, 152, -1, 188, -1, - 194, -1, 181, -1, 189, -1, 207, -1, 208, -1, - 139, -1, 128, -1, 144, -1, 183, -1, 129, -1, - 135, -1, 136, -1, 153, -1, 154, -1, 206, -1, - 182, -1, 184, -1, 185, -1, 130, -1, 209, -1, - 169, -1, 186, -1, 146, -1, 159, -1, 192, -1, - 193, -1, 195, -1, 199, -1, 155, -1, 201, -1, - 202, -1, 203, -1, 164, -1, 38, -1, 121, 122, - -1, -1, 210, -1, 211, -1, 212, -1, 213, -1, - 44, -1, 124, 125, -1, -1, 214, -1, 215, -1, - 216, -1, 13, 10, -1, 12, 10, -1, 76, 10, - -1, 79, 10, -1, 96, 10, -1, 14, 10, -1, - 16, 10, -1, 67, 10, -1, 15, 10, -1, 80, - 10, -1, 81, 10, -1, 31, 10, -1, 60, 10, - -1, 75, 10, -1, 17, 10, -1, 18, 10, -1, - 19, 10, -1, 20, 10, -1, 77, 10, -1, 66, - 10, -1, 101, 10, -1, 21, 10, -1, 22, 10, - -1, 23, 10, -1, 24, 10, -1, 25, 10, -1, - 68, 10, -1, 82, 10, -1, 83, 10, -1, 109, - 10, -1, 54, 10, -1, 64, 10, -1, 55, 10, - -1, 102, 10, -1, 48, 10, -1, 49, 10, -1, - 50, 10, -1, 51, 10, -1, 113, 10, -1, 61, - 10, -1, 26, 10, -1, 27, 10, -1, 28, 10, - -1, 98, 10, -1, 29, 10, -1, 30, 10, -1, - 32, 10, -1, 33, 10, -1, 35, 10, -1, 36, - 10, -1, 34, 10, -1, 41, 10, -1, 42, 10, - -1, 43, 10, -1, 52, 10, -1, 71, 10, -1, - 85, 10, -1, 78, 10, -1, 86, 10, -1, 87, - 10, -1, 100, 10, -1, 47, 10, -1, 69, 10, - -1, 72, 10, 10, -1, 53, 10, -1, 56, 10, - -1, 105, 10, -1, 106, 10, -1, 70, 10, -1, - 107, 10, -1, 57, 10, -1, 58, 10, -1, 59, - 10, -1, 108, 10, -1, 65, 10, -1, 111, 10, - -1, 112, 10, -1, 110, 10, -1, 62, 10, -1, - 63, 10, -1, 84, 10, -1, 73, 10, 10, -1, - 74, 10, -1, 97, 10, -1, 37, 10, -1, 39, - 10, -1, 40, 10, -1, 99, 10, -1, 37, 10, - -1, 45, 10, -1, 46, 10, -1, 88, -1, 218, - 219, -1, -1, 220, -1, 222, -1, 221, -1, 223, - -1, 224, -1, 225, -1, 226, -1, 89, 10, -1, - 91, 10, -1, 90, 10, -1, 92, 10, -1, 93, - 10, -1, 94, 10, -1, 95, 10, -1, 103, -1, - 228, 229, -1, -1, 230, -1, 104, 10, -1 + 116, 0, -1, -1, 116, 117, -1, 118, 119, -1, + 121, 122, -1, 124, 125, -1, 229, 230, -1, 219, + 220, -1, 11, -1, 119, 120, -1, -1, 127, -1, + 128, -1, 132, -1, 135, -1, 141, -1, 142, -1, + 143, -1, 144, -1, 133, -1, 148, -1, 149, -1, + 150, -1, 151, -1, 152, -1, 168, -1, 169, -1, + 170, -1, 172, -1, 173, -1, 138, -1, 174, -1, + 175, -1, 178, -1, 176, -1, 177, -1, 179, -1, + 180, -1, 181, -1, 189, -1, 161, -1, 162, -1, + 163, -1, 164, -1, 182, -1, 192, -1, 157, -1, + 159, -1, 193, -1, 198, -1, 199, -1, 200, -1, + 139, -1, 167, -1, 206, -1, 207, -1, 158, -1, + 202, -1, 146, -1, 134, -1, 153, -1, 190, -1, + 196, -1, 183, -1, 191, -1, 209, -1, 210, -1, + 140, -1, 129, -1, 145, -1, 185, -1, 130, -1, + 136, -1, 137, -1, 154, -1, 155, -1, 208, -1, + 184, -1, 186, -1, 187, -1, 131, -1, 211, -1, + 171, -1, 188, -1, 147, -1, 160, -1, 194, -1, + 195, -1, 197, -1, 201, -1, 156, -1, 203, -1, + 204, -1, 205, -1, 165, -1, 166, -1, 38, -1, + 122, 123, -1, -1, 212, -1, 213, -1, 214, -1, + 215, -1, 44, -1, 125, 126, -1, -1, 216, -1, + 217, -1, 218, -1, 13, 10, -1, 12, 10, -1, + 76, 10, -1, 79, 10, -1, 96, 10, -1, 14, + 10, -1, 16, 10, -1, 67, 10, -1, 15, 10, + -1, 80, 10, -1, 81, 10, -1, 31, 10, -1, + 60, 10, -1, 75, 10, -1, 17, 10, -1, 18, + 10, -1, 19, 10, -1, 20, 10, -1, 77, 10, + -1, 66, 10, -1, 101, 10, -1, 21, 10, -1, + 22, 10, -1, 23, 10, -1, 24, 10, -1, 25, + 10, -1, 68, 10, -1, 82, 10, -1, 83, 10, + -1, 109, 10, -1, 54, 10, -1, 64, 10, -1, + 55, 10, -1, 102, 10, -1, 48, 10, -1, 49, + 10, -1, 50, 10, -1, 51, 10, -1, 113, 10, + -1, 114, 10, -1, 61, 10, -1, 26, 10, -1, + 27, 10, -1, 28, 10, -1, 98, 10, -1, 29, + 10, -1, 30, 10, -1, 32, 10, -1, 33, 10, + -1, 35, 10, -1, 36, 10, -1, 34, 10, -1, + 41, 10, -1, 42, 10, -1, 43, 10, -1, 52, + 10, -1, 71, 10, -1, 85, 10, -1, 78, 10, + -1, 86, 10, -1, 87, 10, -1, 100, 10, -1, + 47, 10, -1, 69, 10, -1, 72, 10, 10, -1, + 53, 10, -1, 56, 10, -1, 105, 10, -1, 106, + 10, -1, 70, 10, -1, 107, 10, -1, 57, 10, + -1, 58, 10, -1, 59, 10, -1, 108, 10, -1, + 65, 10, -1, 111, 10, -1, 112, 10, -1, 110, + 10, -1, 62, 10, -1, 63, 10, -1, 84, 10, + -1, 73, 10, 10, -1, 74, 10, -1, 97, 10, + -1, 37, 10, -1, 39, 10, -1, 40, 10, -1, + 99, 10, -1, 37, 10, -1, 45, 10, -1, 46, + 10, -1, 88, -1, 220, 221, -1, -1, 222, -1, + 224, -1, 223, -1, 225, -1, 226, -1, 227, -1, + 228, -1, 89, 10, -1, 91, 10, -1, 90, 10, + -1, 92, 10, -1, 93, 10, -1, 94, 10, -1, + 95, 10, -1, 103, -1, 230, 231, -1, -1, 232, + -1, 104, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -754,20 +757,20 @@ static const yytype_uint16 yyrline[] = 140, 140, 141, 141, 142, 142, 143, 143, 143, 144, 144, 145, 145, 146, 146, 147, 147, 147, 148, 148, 149, 149, 150, 150, 151, 151, 152, 152, 153, 153, - 153, 154, 154, 155, 155, 155, 157, 169, 170, 171, - 171, 171, 171, 173, 185, 186, 187, 187, 187, 189, - 198, 207, 218, 227, 236, 245, 258, 273, 282, 291, - 300, 309, 318, 327, 336, 345, 354, 363, 372, 386, - 395, 402, 409, 416, 424, 431, 438, 445, 452, 460, - 468, 476, 483, 490, 499, 508, 515, 522, 530, 541, - 549, 562, 571, 580, 588, 601, 610, 619, 628, 637, - 650, 657, 667, 677, 687, 697, 707, 717, 724, 731, - 740, 747, 757, 771, 778, 796, 809, 822, 831, 840, - 849, 859, 869, 878, 885, 894, 903, 912, 920, 933, - 941, 961, 968, 983, 990, 997, 1004, 1014, 1021, 1028, - 1035, 1040, 1041, 1042, 1042, 1042, 1043, 1043, 1043, 1044, - 1046, 1056, 1065, 1072, 1079, 1086, 1093, 1100, 1105, 1106, - 1107, 1109 + 153, 154, 154, 155, 155, 155, 156, 158, 170, 171, + 172, 172, 172, 172, 174, 186, 187, 188, 188, 188, + 190, 199, 208, 219, 228, 237, 246, 259, 274, 283, + 292, 301, 310, 319, 328, 337, 346, 355, 364, 373, + 387, 396, 403, 410, 417, 425, 432, 439, 446, 453, + 461, 469, 477, 484, 491, 500, 509, 516, 523, 531, + 544, 555, 563, 576, 585, 594, 602, 615, 624, 633, + 642, 651, 664, 671, 681, 691, 701, 711, 721, 731, + 738, 745, 754, 761, 771, 785, 792, 810, 823, 836, + 845, 854, 863, 873, 883, 892, 899, 908, 917, 926, + 934, 947, 955, 975, 982, 997, 1004, 1011, 1018, 1028, + 1035, 1042, 1049, 1054, 1055, 1056, 1056, 1056, 1057, 1057, + 1057, 1058, 1060, 1070, 1079, 1086, 1093, 1100, 1107, 1114, + 1119, 1120, 1121, 1123 }; #endif @@ -811,17 +814,18 @@ static const char *const yytname[] = "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT", "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_CACHE_MIN_TTL", "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", "VAR_KEEP_MISSING", - "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF", "$accept", - "toplevelvars", "toplevelvar", "serverstart", "contents_server", - "content_server", "stubstart", "contents_stub", "content_stub", - "forwardstart", "contents_forward", "content_forward", - "server_num_threads", "server_verbosity", "server_statistics_interval", - "server_statistics_cumulative", "server_extended_statistics", - "server_port", "server_interface", "server_outgoing_interface", - "server_outgoing_range", "server_outgoing_port_permit", - "server_outgoing_port_avoid", "server_outgoing_num_tcp", - "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", - "server_do_ip6", "server_do_udp", "server_do_tcp", "server_do_daemonize", + "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF", + "VAR_EDNS_BUFFER_SIZE", "$accept", "toplevelvars", "toplevelvar", + "serverstart", "contents_server", "content_server", "stubstart", + "contents_stub", "content_stub", "forwardstart", "contents_forward", + "content_forward", "server_num_threads", "server_verbosity", + "server_statistics_interval", "server_statistics_cumulative", + "server_extended_statistics", "server_port", "server_interface", + "server_outgoing_interface", "server_outgoing_range", + "server_outgoing_port_permit", "server_outgoing_port_avoid", + "server_outgoing_num_tcp", "server_incoming_num_tcp", + "server_interface_automatic", "server_do_ip4", "server_do_ip6", + "server_do_udp", "server_do_tcp", "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", "server_chroot", "server_username", "server_directory", "server_logfile", "server_pidfile", "server_root_hints", "server_dlv_anchor_file", @@ -829,22 +833,22 @@ static const char *const yytname[] = "server_trust_anchor_file", "server_trusted_keys_file", "server_trust_anchor", "server_domain_insecure", "server_hide_identity", "server_hide_version", "server_identity", "server_version", - "server_so_rcvbuf", "server_msg_buffer_size", "server_msg_cache_size", - "server_msg_cache_slabs", "server_num_queries_per_thread", - "server_jostle_timeout", "server_rrset_cache_size", - "server_rrset_cache_slabs", "server_infra_host_ttl", - "server_infra_lame_ttl", "server_infra_cache_numhosts", - "server_infra_cache_lame_size", "server_infra_cache_slabs", - "server_target_fetch_policy", "server_harden_short_bufsize", - "server_harden_large_queries", "server_harden_glue", - "server_harden_dnssec_stripped", "server_harden_referral_path", - "server_use_caps_for_id", "server_private_address", - "server_private_domain", "server_unwanted_reply_threshold", - "server_do_not_query_address", "server_do_not_query_localhost", - "server_access_control", "server_module_conf", - "server_val_override_date", "server_val_sig_skew_min", - "server_val_sig_skew_max", "server_cache_max_ttl", - "server_cache_min_ttl", "server_bogus_ttl", + "server_so_rcvbuf", "server_edns_buffer_size", "server_msg_buffer_size", + "server_msg_cache_size", "server_msg_cache_slabs", + "server_num_queries_per_thread", "server_jostle_timeout", + "server_rrset_cache_size", "server_rrset_cache_slabs", + "server_infra_host_ttl", "server_infra_lame_ttl", + "server_infra_cache_numhosts", "server_infra_cache_lame_size", + "server_infra_cache_slabs", "server_target_fetch_policy", + "server_harden_short_bufsize", "server_harden_large_queries", + "server_harden_glue", "server_harden_dnssec_stripped", + "server_harden_referral_path", "server_use_caps_for_id", + "server_private_address", "server_private_domain", + "server_unwanted_reply_threshold", "server_do_not_query_address", + "server_do_not_query_localhost", "server_access_control", + "server_module_conf", "server_val_override_date", + "server_val_sig_skew_min", "server_val_sig_skew_max", + "server_cache_max_ttl", "server_cache_min_ttl", "server_bogus_ttl", "server_val_clean_additional", "server_val_permissive_mode", "server_val_log_level", "server_val_nsec3_keysize_iterations", "server_add_holddown", "server_del_holddown", "server_keep_missing", @@ -875,24 +879,24 @@ static const yytype_uint16 yytoknum[] = 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368 + 365, 366, 367, 368, 369 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 114, 115, 115, 116, 116, 116, 116, 116, 117, - 118, 118, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 120, 121, 121, 122, - 122, 122, 122, 123, 124, 124, 125, 125, 125, 126, + 0, 115, 116, 116, 117, 117, 117, 117, 117, 118, + 119, 119, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 121, 122, 122, + 123, 123, 123, 123, 124, 125, 125, 126, 126, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, @@ -902,9 +906,9 @@ static const yytype_uint8 yyr1[] = 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 218, 219, 219, 219, 219, 219, 219, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 228, - 229, 230 + 217, 218, 219, 220, 220, 221, 221, 221, 221, 221, + 221, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 230, 231, 232 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -919,20 +923,20 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 1, 2, 0, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 2 + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -940,8 +944,8 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 9, 96, 103, 200, 217, 3, 11, - 98, 105, 202, 219, 4, 5, 6, 8, 7, 0, + 2, 0, 1, 9, 97, 104, 202, 219, 3, 11, + 99, 106, 204, 221, 4, 5, 6, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -950,46 +954,46 @@ static const yytype_uint8 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 12, 13, 69, 72, 81, 14, - 20, 60, 15, 73, 74, 31, 53, 68, 16, 17, - 18, 19, 70, 59, 85, 21, 22, 23, 24, 25, - 61, 75, 76, 91, 47, 57, 48, 86, 41, 42, - 43, 44, 95, 54, 26, 27, 28, 83, 29, 30, - 32, 33, 35, 36, 34, 37, 38, 39, 45, 64, - 78, 71, 79, 80, 84, 40, 62, 65, 46, 49, - 87, 88, 63, 89, 50, 51, 52, 90, 58, 92, - 93, 94, 55, 56, 77, 66, 67, 82, 0, 0, - 0, 0, 97, 99, 100, 101, 102, 0, 0, 0, - 104, 106, 107, 108, 0, 0, 0, 0, 0, 0, - 0, 201, 203, 205, 204, 206, 207, 208, 209, 0, - 218, 220, 110, 109, 114, 117, 115, 123, 124, 125, - 126, 130, 131, 132, 133, 134, 149, 150, 151, 153, - 154, 120, 155, 156, 159, 157, 158, 160, 161, 162, - 170, 143, 144, 145, 146, 163, 173, 139, 141, 174, - 179, 180, 181, 121, 148, 187, 188, 140, 183, 128, - 116, 135, 171, 177, 164, 0, 0, 191, 122, 111, - 127, 166, 112, 118, 119, 136, 137, 189, 165, 167, - 168, 113, 192, 152, 169, 129, 142, 175, 176, 178, - 182, 138, 186, 184, 185, 147, 193, 194, 195, 196, - 197, 198, 199, 210, 212, 211, 213, 214, 215, 216, - 221, 172, 190 + 0, 0, 0, 0, 10, 12, 13, 69, 72, 81, + 14, 20, 60, 15, 73, 74, 31, 53, 68, 16, + 17, 18, 19, 70, 59, 85, 21, 22, 23, 24, + 25, 61, 75, 76, 91, 47, 57, 48, 86, 41, + 42, 43, 44, 95, 96, 54, 26, 27, 28, 83, + 29, 30, 32, 33, 35, 36, 34, 37, 38, 39, + 45, 64, 78, 71, 79, 80, 84, 40, 62, 65, + 46, 49, 87, 88, 63, 89, 50, 51, 52, 90, + 58, 92, 93, 94, 55, 56, 77, 66, 67, 82, + 0, 0, 0, 0, 98, 100, 101, 102, 103, 0, + 0, 0, 105, 107, 108, 109, 0, 0, 0, 0, + 0, 0, 0, 203, 205, 207, 206, 208, 209, 210, + 211, 0, 220, 222, 111, 110, 115, 118, 116, 124, + 125, 126, 127, 131, 132, 133, 134, 135, 151, 152, + 153, 155, 156, 121, 157, 158, 161, 159, 160, 162, + 163, 164, 172, 144, 145, 146, 147, 165, 175, 140, + 142, 176, 181, 182, 183, 122, 150, 189, 190, 141, + 185, 129, 117, 136, 173, 179, 166, 0, 0, 193, + 123, 112, 128, 168, 113, 119, 120, 137, 138, 191, + 167, 169, 170, 114, 194, 154, 171, 130, 143, 177, + 178, 180, 184, 139, 188, 186, 187, 148, 149, 195, + 196, 197, 198, 199, 200, 201, 212, 214, 213, 215, + 216, 217, 218, 223, 174, 192 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 8, 9, 14, 103, 10, 15, 192, 11, - 16, 200, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 193, 194, 195, 196, - 201, 202, 203, 12, 17, 211, 212, 213, 214, 215, - 216, 217, 218, 13, 18, 220, 221 + -1, 1, 8, 9, 14, 104, 10, 15, 194, 11, + 16, 202, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 195, 196, 197, + 198, 203, 204, 205, 12, 17, 213, 214, 215, 216, + 217, 218, 219, 220, 13, 18, 222, 223 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -1007,7 +1011,7 @@ static const yytype_int16 yypact[] = 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 119, 120, 121, -103, -103, -103, -103, -103, -103, -103, + 119, 120, 121, 122, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, @@ -1015,21 +1019,21 @@ static const yytype_int16 yypact[] = -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, -103, 122, 126, - 127, 128, -103, -103, -103, -103, -103, 170, 171, 172, - -103, -103, -103, -103, 173, 174, 175, 176, 177, 181, - 185, -103, -103, -103, -103, -103, -103, -103, -103, 186, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + 126, 127, 128, 170, -103, -103, -103, -103, -103, 171, + 172, 173, -103, -103, -103, -103, 174, 175, 176, 177, + 181, 185, 186, -103, -103, -103, -103, -103, -103, -103, + -103, 197, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, 196, 197, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, 198, 199, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103 + -103, -103, -103, -103, -103, -103 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1046,7 +1050,7 @@ static const yytype_int8 yypgoto[] = -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103 + -103, -103, -103, -103, -103, -103, -103, -103 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1056,27 +1060,27 @@ static const yytype_int8 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 2, 188, 219, 189, 190, 197, 222, 223, 224, 225, - 0, 3, 226, 198, 199, 204, 205, 206, 207, 208, - 209, 210, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 4, 243, - 244, 245, 246, 247, 5, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 191, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 6, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, 7, 19, 20, 21, 22, 23, 24, + 2, 190, 221, 191, 192, 199, 224, 225, 226, 227, + 0, 3, 228, 200, 201, 206, 207, 208, 209, 210, + 211, 212, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 4, 245, + 246, 247, 248, 249, 5, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 193, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 6, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 0, 7, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 303, - 304, 305, 306, 44, 45, 46, 307, 308, 309, 47, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 305, + 306, 307, 308, 44, 45, 46, 309, 310, 311, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 310, 311, 312, 313, 314, 315, 316, 317, 88, 89, - 90, 318, 91, 92, 93, 319, 320, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 321, 322 + 312, 313, 314, 315, 316, 317, 318, 319, 88, 89, + 90, 320, 91, 92, 93, 321, 322, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 323, 324, 325 }; static const yytype_int8 yycheck[] = @@ -1101,15 +1105,15 @@ static const yytype_int8 yycheck[] = 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 10, 10, 10, 10, 10, 10, 10, 10, 96, 97, 98, 10, 100, 101, 102, 10, 10, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 10, 10 + 108, 109, 110, 111, 112, 113, 114, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 115, 0, 11, 38, 44, 88, 103, 116, 117, - 120, 123, 217, 227, 118, 121, 124, 218, 228, 12, + 0, 116, 0, 11, 38, 44, 88, 103, 117, 118, + 121, 124, 219, 229, 119, 122, 125, 220, 230, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 41, 42, 43, 47, 48, 49, @@ -1118,7 +1122,7 @@ static const yytype_uint8 yystos[] = 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 96, 97, 98, 100, 101, 102, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 119, 126, 127, 128, 129, 130, 131, + 111, 112, 113, 114, 120, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, @@ -1126,11 +1130,11 @@ static const yytype_uint8 yystos[] = 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 37, 39, - 40, 99, 122, 210, 211, 212, 213, 37, 45, 46, - 125, 214, 215, 216, 89, 90, 91, 92, 93, 94, - 95, 219, 220, 221, 222, 223, 224, 225, 226, 104, - 229, 230, 10, 10, 10, 10, 10, 10, 10, 10, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 37, 39, 40, 99, 123, 212, 213, 214, 215, 37, + 45, 46, 126, 216, 217, 218, 89, 90, 91, 92, + 93, 94, 95, 221, 222, 223, 224, 225, 226, 227, + 228, 104, 231, 232, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1140,7 +1144,7 @@ static const yytype_uint8 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10 + 10, 10, 10, 10, 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -1960,10 +1964,10 @@ yyreduce: } break; - case 96: + case 97: /* Line 1455 of yacc.c */ -#line 158 "util/configparser.y" +#line 159 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -1976,10 +1980,10 @@ yyreduce: } break; - case 103: + case 104: /* Line 1455 of yacc.c */ -#line 174 "util/configparser.y" +#line 175 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -1992,10 +1996,10 @@ yyreduce: } break; - case 109: + case 110: /* Line 1455 of yacc.c */ -#line 190 "util/configparser.y" +#line 191 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2005,10 +2009,10 @@ yyreduce: } break; - case 110: + case 111: /* Line 1455 of yacc.c */ -#line 199 "util/configparser.y" +#line 200 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2018,10 +2022,10 @@ yyreduce: } break; - case 111: + case 112: /* Line 1455 of yacc.c */ -#line 208 "util/configparser.y" +#line 209 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) @@ -2033,10 +2037,10 @@ yyreduce: } break; - case 112: + case 113: /* Line 1455 of yacc.c */ -#line 219 "util/configparser.y" +#line 220 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2046,10 +2050,10 @@ yyreduce: } break; - case 113: + case 114: /* Line 1455 of yacc.c */ -#line 228 "util/configparser.y" +#line 229 "util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2059,10 +2063,10 @@ yyreduce: } break; - case 114: + case 115: /* Line 1455 of yacc.c */ -#line 237 "util/configparser.y" +#line 238 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2072,10 +2076,10 @@ yyreduce: } break; - case 115: + case 116: /* Line 1455 of yacc.c */ -#line 246 "util/configparser.y" +#line 247 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2089,10 +2093,10 @@ yyreduce: } break; - case 116: + case 117: /* Line 1455 of yacc.c */ -#line 259 "util/configparser.y" +#line 260 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2108,10 +2112,10 @@ yyreduce: } break; - case 117: + case 118: /* Line 1455 of yacc.c */ -#line 274 "util/configparser.y" +#line 275 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2121,10 +2125,10 @@ yyreduce: } break; - case 118: + case 119: /* Line 1455 of yacc.c */ -#line 283 "util/configparser.y" +#line 284 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, @@ -2134,10 +2138,10 @@ yyreduce: } break; - case 119: + case 120: /* Line 1455 of yacc.c */ -#line 292 "util/configparser.y" +#line 293 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, @@ -2147,10 +2151,10 @@ yyreduce: } break; - case 120: + case 121: /* Line 1455 of yacc.c */ -#line 301 "util/configparser.y" +#line 302 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2160,10 +2164,10 @@ yyreduce: } break; - case 121: + case 122: /* Line 1455 of yacc.c */ -#line 310 "util/configparser.y" +#line 311 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2173,10 +2177,10 @@ yyreduce: } break; - case 122: + case 123: /* Line 1455 of yacc.c */ -#line 319 "util/configparser.y" +#line 320 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2186,10 +2190,10 @@ yyreduce: } break; - case 123: + case 124: /* Line 1455 of yacc.c */ -#line 328 "util/configparser.y" +#line 329 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2199,10 +2203,10 @@ yyreduce: } break; - case 124: + case 125: /* Line 1455 of yacc.c */ -#line 337 "util/configparser.y" +#line 338 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2212,10 +2216,10 @@ yyreduce: } break; - case 125: + case 126: /* Line 1455 of yacc.c */ -#line 346 "util/configparser.y" +#line 347 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2225,10 +2229,10 @@ yyreduce: } break; - case 126: + case 127: /* Line 1455 of yacc.c */ -#line 355 "util/configparser.y" +#line 356 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2238,10 +2242,10 @@ yyreduce: } break; - case 127: + case 128: /* Line 1455 of yacc.c */ -#line 364 "util/configparser.y" +#line 365 "util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2251,10 +2255,10 @@ yyreduce: } break; - case 128: + case 129: /* Line 1455 of yacc.c */ -#line 373 "util/configparser.y" +#line 374 "util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2269,10 +2273,10 @@ yyreduce: } break; - case 129: + case 130: /* Line 1455 of yacc.c */ -#line 387 "util/configparser.y" +#line 388 "util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2282,10 +2286,10 @@ yyreduce: } break; - case 130: + case 131: /* Line 1455 of yacc.c */ -#line 396 "util/configparser.y" +#line 397 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2293,10 +2297,10 @@ yyreduce: } break; - case 131: + case 132: /* Line 1455 of yacc.c */ -#line 403 "util/configparser.y" +#line 404 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2304,10 +2308,10 @@ yyreduce: } break; - case 132: + case 133: /* Line 1455 of yacc.c */ -#line 410 "util/configparser.y" +#line 411 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2315,10 +2319,10 @@ yyreduce: } break; - case 133: + case 134: /* Line 1455 of yacc.c */ -#line 417 "util/configparser.y" +#line 418 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2327,10 +2331,10 @@ yyreduce: } break; - case 134: + case 135: /* Line 1455 of yacc.c */ -#line 425 "util/configparser.y" +#line 426 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2338,10 +2342,10 @@ yyreduce: } break; - case 135: + case 136: /* Line 1455 of yacc.c */ -#line 432 "util/configparser.y" +#line 433 "util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) @@ -2349,10 +2353,10 @@ yyreduce: } break; - case 136: + case 137: /* Line 1455 of yacc.c */ -#line 439 "util/configparser.y" +#line 440 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dlv_anchor_file); @@ -2360,10 +2364,10 @@ yyreduce: } break; - case 137: + case 138: /* Line 1455 of yacc.c */ -#line 446 "util/configparser.y" +#line 447 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2371,10 +2375,10 @@ yyreduce: } break; - case 138: + case 139: /* Line 1455 of yacc.c */ -#line 453 "util/configparser.y" +#line 454 "util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2383,10 +2387,10 @@ yyreduce: } break; - case 139: + case 140: /* Line 1455 of yacc.c */ -#line 461 "util/configparser.y" +#line 462 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2395,10 +2399,10 @@ yyreduce: } break; - case 140: + case 141: /* Line 1455 of yacc.c */ -#line 469 "util/configparser.y" +#line 470 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2407,10 +2411,10 @@ yyreduce: } break; - case 141: + case 142: /* Line 1455 of yacc.c */ -#line 477 "util/configparser.y" +#line 478 "util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2418,10 +2422,10 @@ yyreduce: } break; - case 142: + case 143: /* Line 1455 of yacc.c */ -#line 484 "util/configparser.y" +#line 485 "util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str))) @@ -2429,10 +2433,10 @@ yyreduce: } break; - case 143: + case 144: /* Line 1455 of yacc.c */ -#line 491 "util/configparser.y" +#line 492 "util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2442,10 +2446,10 @@ yyreduce: } break; - case 144: + case 145: /* Line 1455 of yacc.c */ -#line 500 "util/configparser.y" +#line 501 "util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2455,10 +2459,10 @@ yyreduce: } break; - case 145: + case 146: /* Line 1455 of yacc.c */ -#line 509 "util/configparser.y" +#line 510 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2466,10 +2470,10 @@ yyreduce: } break; - case 146: + case 147: /* Line 1455 of yacc.c */ -#line 516 "util/configparser.y" +#line 517 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2477,10 +2481,10 @@ yyreduce: } break; - case 147: + case 148: /* Line 1455 of yacc.c */ -#line 523 "util/configparser.y" +#line 524 "util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->socket_rcvbuf)) @@ -2489,10 +2493,27 @@ yyreduce: } break; - case 148: + case 149: + +/* Line 1455 of yacc.c */ +#line 532 "util/configparser.y" + { + OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else if (atoi((yyvsp[(2) - (2)].str)) < 12) + yyerror("edns buffer size too small"); + else if (atoi((yyvsp[(2) - (2)].str)) > 65535) + cfg_parser->cfg->edns_buffer_size = 65535; + else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 150: /* Line 1455 of yacc.c */ -#line 531 "util/configparser.y" +#line 545 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2504,10 +2525,10 @@ yyreduce: } break; - case 149: + case 151: /* Line 1455 of yacc.c */ -#line 542 "util/configparser.y" +#line 556 "util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) @@ -2516,10 +2537,10 @@ yyreduce: } break; - case 150: + case 152: /* Line 1455 of yacc.c */ -#line 550 "util/configparser.y" +#line 564 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2533,10 +2554,10 @@ yyreduce: } break; - case 151: + case 153: /* Line 1455 of yacc.c */ -#line 563 "util/configparser.y" +#line 577 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2546,10 +2567,10 @@ yyreduce: } break; - case 152: + case 154: /* Line 1455 of yacc.c */ -#line 572 "util/configparser.y" +#line 586 "util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2559,10 +2580,10 @@ yyreduce: } break; - case 153: + case 155: /* Line 1455 of yacc.c */ -#line 581 "util/configparser.y" +#line 595 "util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) @@ -2571,10 +2592,10 @@ yyreduce: } break; - case 154: + case 156: /* Line 1455 of yacc.c */ -#line 589 "util/configparser.y" +#line 603 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2588,10 +2609,10 @@ yyreduce: } break; - case 155: + case 157: /* Line 1455 of yacc.c */ -#line 602 "util/configparser.y" +#line 616 "util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2601,10 +2622,10 @@ yyreduce: } break; - case 156: + case 158: /* Line 1455 of yacc.c */ -#line 611 "util/configparser.y" +#line 625 "util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2614,10 +2635,10 @@ yyreduce: } break; - case 157: + case 159: /* Line 1455 of yacc.c */ -#line 620 "util/configparser.y" +#line 634 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2627,10 +2648,10 @@ yyreduce: } break; - case 158: + case 160: /* Line 1455 of yacc.c */ -#line 629 "util/configparser.y" +#line 643 "util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg-> @@ -2640,10 +2661,10 @@ yyreduce: } break; - case 159: + case 161: /* Line 1455 of yacc.c */ -#line 638 "util/configparser.y" +#line 652 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2657,10 +2678,10 @@ yyreduce: } break; - case 160: + case 162: /* Line 1455 of yacc.c */ -#line 651 "util/configparser.y" +#line 665 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2668,10 +2689,10 @@ yyreduce: } break; - case 161: + case 163: /* Line 1455 of yacc.c */ -#line 658 "util/configparser.y" +#line 672 "util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2682,10 +2703,10 @@ yyreduce: } break; - case 162: + case 164: /* Line 1455 of yacc.c */ -#line 668 "util/configparser.y" +#line 682 "util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2696,10 +2717,10 @@ yyreduce: } break; - case 163: + case 165: /* Line 1455 of yacc.c */ -#line 678 "util/configparser.y" +#line 692 "util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2710,10 +2731,10 @@ yyreduce: } break; - case 164: + case 166: /* Line 1455 of yacc.c */ -#line 688 "util/configparser.y" +#line 702 "util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2724,10 +2745,10 @@ yyreduce: } break; - case 165: + case 167: /* Line 1455 of yacc.c */ -#line 698 "util/configparser.y" +#line 712 "util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2738,10 +2759,10 @@ yyreduce: } break; - case 166: + case 168: /* Line 1455 of yacc.c */ -#line 708 "util/configparser.y" +#line 722 "util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2752,10 +2773,10 @@ yyreduce: } break; - case 167: + case 169: /* Line 1455 of yacc.c */ -#line 718 "util/configparser.y" +#line 732 "util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) @@ -2763,10 +2784,10 @@ yyreduce: } break; - case 168: + case 170: /* Line 1455 of yacc.c */ -#line 725 "util/configparser.y" +#line 739 "util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) @@ -2774,10 +2795,10 @@ yyreduce: } break; - case 169: + case 171: /* Line 1455 of yacc.c */ -#line 732 "util/configparser.y" +#line 746 "util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2787,10 +2808,10 @@ yyreduce: } break; - case 170: + case 172: /* Line 1455 of yacc.c */ -#line 741 "util/configparser.y" +#line 755 "util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) @@ -2798,10 +2819,10 @@ yyreduce: } break; - case 171: + case 173: /* Line 1455 of yacc.c */ -#line 748 "util/configparser.y" +#line 762 "util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2812,10 +2833,10 @@ yyreduce: } break; - case 172: + case 174: /* Line 1455 of yacc.c */ -#line 758 "util/configparser.y" +#line 772 "util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && @@ -2830,10 +2851,10 @@ yyreduce: } break; - case 173: + case 175: /* Line 1455 of yacc.c */ -#line 772 "util/configparser.y" +#line 786 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2841,10 +2862,10 @@ yyreduce: } break; - case 174: + case 176: /* Line 1455 of yacc.c */ -#line 779 "util/configparser.y" +#line 793 "util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2863,10 +2884,10 @@ yyreduce: } break; - case 175: + case 177: /* Line 1455 of yacc.c */ -#line 797 "util/configparser.y" +#line 811 "util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2880,10 +2901,10 @@ yyreduce: } break; - case 176: + case 178: /* Line 1455 of yacc.c */ -#line 810 "util/configparser.y" +#line 824 "util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2897,10 +2918,10 @@ yyreduce: } break; - case 177: + case 179: /* Line 1455 of yacc.c */ -#line 823 "util/configparser.y" +#line 837 "util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2910,10 +2931,10 @@ yyreduce: } break; - case 178: + case 180: /* Line 1455 of yacc.c */ -#line 832 "util/configparser.y" +#line 846 "util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2923,10 +2944,10 @@ yyreduce: } break; - case 179: + case 181: /* Line 1455 of yacc.c */ -#line 841 "util/configparser.y" +#line 855 "util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2936,10 +2957,10 @@ yyreduce: } break; - case 180: + case 182: /* Line 1455 of yacc.c */ -#line 850 "util/configparser.y" +#line 864 "util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2950,10 +2971,10 @@ yyreduce: } break; - case 181: + case 183: /* Line 1455 of yacc.c */ -#line 860 "util/configparser.y" +#line 874 "util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2964,10 +2985,10 @@ yyreduce: } break; - case 182: + case 184: /* Line 1455 of yacc.c */ -#line 870 "util/configparser.y" +#line 884 "util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2977,10 +2998,10 @@ yyreduce: } break; - case 183: + case 185: /* Line 1455 of yacc.c */ -#line 879 "util/configparser.y" +#line 893 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -2988,10 +3009,10 @@ yyreduce: } break; - case 184: + case 186: /* Line 1455 of yacc.c */ -#line 886 "util/configparser.y" +#line 900 "util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3001,10 +3022,10 @@ yyreduce: } break; - case 185: + case 187: /* Line 1455 of yacc.c */ -#line 895 "util/configparser.y" +#line 909 "util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3014,10 +3035,10 @@ yyreduce: } break; - case 186: + case 188: /* Line 1455 of yacc.c */ -#line 904 "util/configparser.y" +#line 918 "util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3027,10 +3048,10 @@ yyreduce: } break; - case 187: + case 189: /* Line 1455 of yacc.c */ -#line 913 "util/configparser.y" +#line 927 "util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) @@ -3039,10 +3060,10 @@ yyreduce: } break; - case 188: + case 190: /* Line 1455 of yacc.c */ -#line 921 "util/configparser.y" +#line 935 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3056,10 +3077,10 @@ yyreduce: } break; - case 189: + case 191: /* Line 1455 of yacc.c */ -#line 934 "util/configparser.y" +#line 948 "util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) @@ -3068,10 +3089,10 @@ yyreduce: } break; - case 190: + case 192: /* Line 1455 of yacc.c */ -#line 942 "util/configparser.y" +#line 956 "util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && @@ -3092,10 +3113,10 @@ yyreduce: } break; - case 191: + case 193: /* Line 1455 of yacc.c */ -#line 962 "util/configparser.y" +#line 976 "util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) @@ -3103,10 +3124,10 @@ yyreduce: } break; - case 192: + case 194: /* Line 1455 of yacc.c */ -#line 969 "util/configparser.y" +#line 983 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -3122,10 +3143,10 @@ yyreduce: } break; - case 193: + case 195: /* Line 1455 of yacc.c */ -#line 984 "util/configparser.y" +#line 998 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -3133,10 +3154,10 @@ yyreduce: } break; - case 194: + case 196: /* Line 1455 of yacc.c */ -#line 991 "util/configparser.y" +#line 1005 "util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) @@ -3144,10 +3165,10 @@ yyreduce: } break; - case 195: + case 197: /* Line 1455 of yacc.c */ -#line 998 "util/configparser.y" +#line 1012 "util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) @@ -3155,10 +3176,10 @@ yyreduce: } break; - case 196: + case 198: /* Line 1455 of yacc.c */ -#line 1005 "util/configparser.y" +#line 1019 "util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3169,10 +3190,10 @@ yyreduce: } break; - case 197: + case 199: /* Line 1455 of yacc.c */ -#line 1015 "util/configparser.y" +#line 1029 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -3180,10 +3201,10 @@ yyreduce: } break; - case 198: + case 200: /* Line 1455 of yacc.c */ -#line 1022 "util/configparser.y" +#line 1036 "util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) @@ -3191,10 +3212,10 @@ yyreduce: } break; - case 199: + case 201: /* Line 1455 of yacc.c */ -#line 1029 "util/configparser.y" +#line 1043 "util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) @@ -3202,19 +3223,19 @@ yyreduce: } break; - case 200: + case 202: /* Line 1455 of yacc.c */ -#line 1036 "util/configparser.y" +#line 1050 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 210: + case 212: /* Line 1455 of yacc.c */ -#line 1047 "util/configparser.y" +#line 1061 "util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3225,10 +3246,10 @@ yyreduce: } break; - case 211: + case 213: /* Line 1455 of yacc.c */ -#line 1057 "util/configparser.y" +#line 1071 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3238,10 +3259,10 @@ yyreduce: } break; - case 212: + case 214: /* Line 1455 of yacc.c */ -#line 1066 "util/configparser.y" +#line 1080 "util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) @@ -3249,10 +3270,10 @@ yyreduce: } break; - case 213: + case 215: /* Line 1455 of yacc.c */ -#line 1073 "util/configparser.y" +#line 1087 "util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -3260,10 +3281,10 @@ yyreduce: } break; - case 214: + case 216: /* Line 1455 of yacc.c */ -#line 1080 "util/configparser.y" +#line 1094 "util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -3271,10 +3292,10 @@ yyreduce: } break; - case 215: + case 217: /* Line 1455 of yacc.c */ -#line 1087 "util/configparser.y" +#line 1101 "util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -3282,10 +3303,10 @@ yyreduce: } break; - case 216: + case 218: /* Line 1455 of yacc.c */ -#line 1094 "util/configparser.y" +#line 1108 "util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -3293,19 +3314,19 @@ yyreduce: } break; - case 217: + case 219: /* Line 1455 of yacc.c */ -#line 1101 "util/configparser.y" +#line 1115 "util/configparser.y" { OUTYY(("\nP(python:)\n")); } break; - case 221: + case 223: /* Line 1455 of yacc.c */ -#line 1110 "util/configparser.y" +#line 1124 "util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->python_script); @@ -3316,7 +3337,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 3320 "util/configparser.c" +#line 3341 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3528,7 +3549,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 1115 "util/configparser.y" +#line 1129 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 8c026bb6e..2f2fddbae 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -149,7 +149,8 @@ VAR_KEEP_MISSING = 365, VAR_ADD_HOLDDOWN = 366, VAR_DEL_HOLDDOWN = 367, - VAR_SO_RCVBUF = 368 + VAR_SO_RCVBUF = 368, + VAR_EDNS_BUFFER_SIZE = 369 }; #endif /* Tokens. */ @@ -264,6 +265,7 @@ #define VAR_ADD_HOLDDOWN 366 #define VAR_DEL_HOLDDOWN 367 #define VAR_SO_RCVBUF 368 +#define VAR_EDNS_BUFFER_SIZE 369 @@ -280,7 +282,7 @@ typedef union YYSTYPE /* Line 1676 of yacc.c */ -#line 284 "util/configparser.h" +#line 286 "util/configparser.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/util/configparser.y b/util/configparser.y index 6b4463fc5..481907eec 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -100,7 +100,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_DOMAIN_INSECURE VAR_PYTHON VAR_PYTHON_SCRIPT VAR_VAL_SIG_SKEW_MIN %token VAR_VAL_SIG_SKEW_MAX VAR_CACHE_MIN_TTL VAR_VAL_LOG_LEVEL %token VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING VAR_ADD_HOLDDOWN -%token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF +%token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -152,7 +152,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_domain_insecure | server_val_sig_skew_min | server_val_sig_skew_max | server_cache_min_ttl | server_val_log_level | server_auto_trust_anchor_file | server_add_holddown | - server_del_holddown | server_keep_missing | server_so_rcvbuf + server_del_holddown | server_keep_missing | server_so_rcvbuf | + server_edns_buffer_size ; stubstart: VAR_STUB_ZONE { @@ -527,6 +528,19 @@ server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG free($2); } ; +server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG + { + OUTYY(("P(server_edns_buffer_size:%s)\n", $2)); + if(atoi($2) == 0) + yyerror("number expected"); + else if (atoi($2) < 12) + yyerror("edns buffer size too small"); + else if (atoi($2) > 65535) + cfg_parser->cfg->edns_buffer_size = 65535; + else cfg_parser->cfg->edns_buffer_size = atoi($2); + free($2); + } + ; server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG { OUTYY(("P(server_msg_buffer_size:%s)\n", $2)); diff --git a/util/net_help.c b/util/net_help.c index 7f47c8326..204995ead 100644 --- a/util/net_help.c +++ b/util/net_help.c @@ -47,6 +47,8 @@ /** max length of an IP address (the address portion) that we allow */ #define MAX_ADDR_STRLEN 128 /* characters */ +/** default value for EDNS ADVERTISED size */ +uint16_t EDNS_ADVERTISED_SIZE = 4096; /* returns true is string addr is an ip6 specced address */ int diff --git a/util/net_help.h b/util/net_help.h index ec57df6fd..9ac96ebc3 100644 --- a/util/net_help.h +++ b/util/net_help.h @@ -80,7 +80,7 @@ struct regional; /** Advertised version of EDNS capabilities */ #define EDNS_ADVERTISED_VERSION 0 /** Advertised size of EDNS capabilities */ -#define EDNS_ADVERTISED_SIZE 4096 +extern uint16_t EDNS_ADVERTISED_SIZE; /** bits for EDNS bitfield */ #define EDNS_DO 0x8000 /* Dnssec Ok */ /** byte size of ip4 address */