From 94a6478e05bcdd03b01c763b88f0dd65be126f18 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Fri, 29 May 2015 14:51:36 +0000 Subject: [PATCH] - SOA negative TTL is capped at minimumttl in its rdata section. - cache-max-negative-ttl config option, default 3600. git-svn-id: file:///svn/unbound/trunk@3431 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 2 + doc/example.conf.in | 3 + doc/unbound-control.8.in | 3 +- doc/unbound.conf.5.in | 4 + testcode/unitmsgparse.c | 3 + testdata/iter_domain_sale.rpl | 3 +- testdata/iter_domain_sale_nschange.rpl | 6 +- util/config_file.c | 5 + util/config_file.h | 2 + util/configlexer.c | 2206 ++++++++++++------------ util/configlexer.lex | 1 + util/configparser.c | 1008 +++++------ util/configparser.h | 6 +- util/configparser.y | 13 +- util/data/msgparse.h | 2 + util/data/msgreply.c | 29 +- 16 files changed, 1693 insertions(+), 1603 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 50c27740a..f06654de4 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,7 @@ 29 May 2015: Wouter - Fix that unparseable error responses are ratelimited. + - SOA negative TTL is capped at minimumttl in its rdata section. + - cache-max-negative-ttl config option, default 3600. 26 May 2015: Wouter - Document that ratelimit works with unbound-control set_option. diff --git a/doc/example.conf.in b/doc/example.conf.in index 277d8f476..efe64f394 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -139,6 +139,9 @@ server: # cache. Items are not cached for longer. In seconds. # cache-max-ttl: 86400 + # the time to live (TTL) value cap for negative responses in the cache + # cache-max-negative-ttl: 3600 + # the time to live (TTL) value for cached roundtrip times, lameness and # EDNS version information for hosts. In seconds. # infra-host-ttl: 900 diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in index e004e4005..9c7a7cf00 100644 --- a/doc/unbound-control.8.in +++ b/doc/unbound-control.8.in @@ -177,7 +177,8 @@ harden\-glue, harden\-dnssec\-stripped, harden\-below\-nxdomain, harden\-referral\-path, prefetch, prefetch\-key, log\-queries, hide\-identity, hide\-version, identity, version, val\-log\-level, val\-log\-squelch, ignore\-cd\-flag, add\-holddown, del\-holddown, -keep\-missing, tcp\-upstream, ssl\-upstream, max\-udp\-size, ratelimit. +keep\-missing, tcp\-upstream, ssl\-upstream, max\-udp\-size, ratelimit, +cache\-max\-ttl, cache\-min\-ttl, cache\-max\-negative\-ttl. .TP .B get_option \fIopt Get the value of the option. Give the option name without a trailing ':'. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 650c3651e..8836ed50c 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -302,6 +302,10 @@ Zero makes sure the data in the cache is as the domain owner intended, higher values, especially more than an hour or so, can lead to trouble as the data in the cache does not match up with the actual data any more. .TP +.B cache\-max\-negative\-ttl: \fI +Time to live maximum for negative responses, these have a SOA in the +authority section that is limited in time. Default is 3600. +.TP .B infra\-host\-ttl: \fI Time to live for entries in the host cache. The host cache contains roundtrip timing, lameness and EDNS support information. Default is 900. diff --git a/testcode/unitmsgparse.c b/testcode/unitmsgparse.c index ba4e234c8..627d10b78 100644 --- a/testcode/unitmsgparse.c +++ b/testcode/unitmsgparse.c @@ -497,9 +497,11 @@ testfromdrillfile(sldns_buffer* pkt, struct alloc_cache* alloc, void msgparse_test(void) { + time_t origttl = MAX_NEG_TTL; sldns_buffer* pkt = sldns_buffer_new(65553); sldns_buffer* out = sldns_buffer_new(65553); struct alloc_cache super_a, alloc; + MAX_NEG_TTL = 86400; /* init */ alloc_init(&super_a, NULL, 0); alloc_init(&alloc, &super_a, 2); @@ -536,4 +538,5 @@ void msgparse_test(void) alloc_clear(&super_a); sldns_buffer_free(pkt); sldns_buffer_free(out); + MAX_NEG_TTL = origttl; } diff --git a/testdata/iter_domain_sale.rpl b/testdata/iter_domain_sale.rpl index 724b51dad..ff612780a 100644 --- a/testdata/iter_domain_sale.rpl +++ b/testdata/iter_domain_sale.rpl @@ -238,7 +238,8 @@ SECTION QUESTION nx1.example.com. IN A SECTION ANSWER SECTION AUTHORITY -example.com. 3600 IN SOA a. b. 1 2 3 4 5 +; at TTL 5 because TTL is capped at min-ttl of 5 in rdata of SOA +example.com. 5 IN SOA a. b. 1 2 3 4 5 example.com. 1800 IN NS ns.example.com. SECTION ADDITIONAL ns.example.com. 1800 IN A 1.2.3.4 diff --git a/testdata/iter_domain_sale_nschange.rpl b/testdata/iter_domain_sale_nschange.rpl index a7d9f11b8..bc396f67c 100644 --- a/testdata/iter_domain_sale_nschange.rpl +++ b/testdata/iter_domain_sale_nschange.rpl @@ -285,7 +285,8 @@ SECTION QUESTION nx1.example.com. IN A SECTION ANSWER SECTION AUTHORITY -example.com. 3600 IN SOA a. b. 1 2 3 4 5 +; at TTL 5 because TTL capped at ttl of minttl in rdata of SOA. +example.com. 5 IN SOA a. b. 1 2 3 4 5 example.com. 3600 IN NS nsb.example.com. SECTION ADDITIONAL nsb.example.com. 3600 IN A 1.2.3.4 @@ -306,7 +307,8 @@ SECTION QUESTION nx1.example.com. IN A SECTION ANSWER SECTION AUTHORITY -example.com. 3600 IN SOA a. b. 1 2 3 4 5 +; at TTL 5 because TTL capped at ttl of minttl in rdata of SOA. +example.com. 5 IN SOA a. b. 1 2 3 4 5 example.com. 1800 IN NS nsb.example.com. SECTION ADDITIONAL nsb.example.com. 3600 IN A 1.2.3.4 diff --git a/util/config_file.c b/util/config_file.c index ac709bd6f..5d31301fa 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -132,6 +132,7 @@ config_create(void) cfg->bogus_ttl = 60; cfg->min_ttl = 0; cfg->max_ttl = 3600 * 24; + cfg->max_negative_ttl = 3600; cfg->prefetch = 0; cfg->prefetch_key = 0; cfg->infra_cache_slabs = 4; @@ -389,6 +390,8 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_YNO("prefetch-key:", prefetch_key) else if(strcmp(opt, "cache-max-ttl:") == 0) { IS_NUMBER_OR_ZERO; cfg->max_ttl = atoi(val); MAX_TTL=(time_t)cfg->max_ttl;} + else if(strcmp(opt, "cache-max-negative-ttl:") == 0) + { IS_NUMBER_OR_ZERO; cfg->max_negative_ttl = atoi(val); MAX_NEG_TTL=(time_t)cfg->max_negative_ttl;} else if(strcmp(opt, "cache-min-ttl:") == 0) { IS_NUMBER_OR_ZERO; cfg->min_ttl = atoi(val); MIN_TTL=(time_t)cfg->min_ttl;} else if(strcmp(opt, "infra-cache-min-rtt:") == 0) { @@ -652,6 +655,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_YNO(opt, "prefetch-key", prefetch_key) else O_YNO(opt, "prefetch", prefetch) else O_DEC(opt, "cache-max-ttl", max_ttl) + else O_DEC(opt, "cache-max-negative-ttl", max_negative_ttl) else O_DEC(opt, "cache-min-ttl", min_ttl) else O_DEC(opt, "infra-host-ttl", host_ttl) else O_DEC(opt, "infra-cache-slabs", infra_cache_slabs) @@ -1233,6 +1237,7 @@ config_apply(struct config_file* config) { MAX_TTL = (time_t)config->max_ttl; MIN_TTL = (time_t)config->min_ttl; + MAX_NEG_TTL = (time_t)config->max_negative_ttl; RTT_MIN_TIMEOUT = config->infra_cache_min_rtt; EDNS_ADVERTISED_SIZE = (uint16_t)config->edns_buffer_size; MINIMAL_RESPONSES = config->minimal_responses; diff --git a/util/config_file.h b/util/config_file.h index 6f82b5e61..1c3c31dcf 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -191,6 +191,8 @@ struct config_file { int max_ttl; /** the number of seconds minimum TTL used for RRsets and messages */ int min_ttl; + /** the number of seconds maximal negative TTL for SOA in auth */ + int max_negative_ttl; /** if prefetching of messages should be performed. */ int prefetch; /** if prefetching of DNSKEYs should be performed. */ diff --git a/util/configlexer.c b/util/configlexer.c index 018df08a8..83087781f 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -363,8 +363,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 173 -#define YY_END_OF_BUFFER 174 +#define YY_NUM_RULES 174 +#define YY_END_OF_BUFFER 175 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -372,197 +372,198 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1718] = +static yyconst flex_int16_t yy_accept[1731] = { 0, - 1, 1, 155, 155, 159, 159, 163, 163, 167, 167, - 1, 1, 174, 171, 1, 153, 153, 172, 2, 172, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 155, - 156, 156, 157, 172, 159, 160, 160, 161, 172, 166, - 163, 164, 164, 165, 172, 167, 168, 168, 169, 172, - 170, 154, 2, 158, 172, 170, 171, 0, 1, 2, - 2, 2, 2, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 155, 0, 159, 0, 166, 0, 163, - 167, 0, 170, 0, 2, 2, 170, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 170, 171, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 170, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 69, 171, 171, 171, 171, 171, 6, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 170, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 170, 171, 171, 171, 171, 171, 30, - 171, 171, 171, 171, 171, 171, 171, 171, 134, 171, - 12, 13, 171, 15, 14, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 127, 171, 171, 171, 171, 171, 171, - 3, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 170, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 162, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 33, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 34, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 84, 162, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 83, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 67, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 20, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 31, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 32, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 22, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 147, 171, 171, - 171, 171, 171, 171, 26, 171, 27, 171, 171, 171, - 70, 171, 71, 171, 68, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 5, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 86, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 171, 171, 23, - 171, 171, 171, 171, 171, 111, 110, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 35, - 171, 171, 171, 171, 171, 171, 171, 171, 73, 72, - 171, 171, 171, 171, 171, 171, 171, 107, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 52, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 56, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 109, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 4, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 104, - 171, 171, 171, 171, 171, 171, 171, 171, 120, 171, - 105, 171, 132, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 21, 171, 171, 171, 171, 75, 171, - - 76, 74, 171, 171, 171, 171, 171, 171, 171, 82, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 106, 171, 171, 171, 171, 131, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 66, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 28, 171, 171, 17, 171, 171, 171, 16, - 171, 91, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 42, 43, 171, 171, 171, - 171, 171, 171, 171, 171, 135, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 77, - - 171, 171, 171, 171, 171, 171, 81, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 85, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 126, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 95, 171, 99, - 171, 171, 171, 171, 80, 171, 62, 171, 118, 171, - 171, 171, 171, 133, 171, 171, 171, 171, 171, 171, - 171, 140, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 98, 171, 171, 171, 171, 171, 44, - - 45, 171, 29, 51, 100, 171, 112, 108, 171, 171, - 38, 171, 102, 171, 171, 171, 171, 171, 7, 171, - 65, 171, 171, 171, 149, 171, 117, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 87, 139, 171, 171, 171, 171, 171, - 171, 171, 171, 128, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 101, 171, - 37, 39, 171, 171, 171, 171, 171, 64, 171, 171, - 171, 148, 171, 171, 171, 171, 122, 18, 19, 171, - - 171, 171, 171, 171, 171, 171, 61, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 124, 121, 171, 171, - 171, 171, 171, 171, 171, 171, 36, 171, 171, 171, - 171, 171, 171, 171, 11, 171, 171, 171, 171, 171, - 171, 171, 171, 10, 171, 171, 171, 152, 171, 40, - 171, 130, 123, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 94, 93, 171, 125, 119, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 46, 171, 129, - 171, 171, 171, 171, 171, 171, 41, 171, 171, 171, - - 88, 90, 113, 171, 171, 171, 92, 171, 171, 171, - 171, 171, 171, 171, 171, 136, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 24, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 138, 171, - 171, 116, 171, 171, 171, 171, 171, 171, 171, 49, - 171, 25, 171, 9, 171, 171, 171, 171, 114, 53, - 171, 171, 171, 97, 171, 171, 171, 171, 171, 171, - 137, 78, 171, 171, 171, 171, 55, 59, 54, 171, - 47, 171, 8, 171, 150, 171, 171, 96, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 60, 58, 171, - 48, 171, 171, 115, 171, 171, 89, 171, 171, 171, - 171, 171, 171, 79, 57, 50, 151, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 63, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 103, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 143, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 171, 171, 141, 171, 144, 145, 171, - 171, 171, 171, 171, 142, 146, 0 + 1, 1, 156, 156, 160, 160, 164, 164, 168, 168, + 1, 1, 175, 172, 1, 154, 154, 173, 2, 173, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 156, + 157, 157, 158, 173, 160, 161, 161, 162, 173, 167, + 164, 165, 165, 166, 173, 168, 169, 169, 170, 173, + 171, 155, 2, 159, 173, 171, 172, 0, 1, 2, + 2, 2, 2, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 156, 0, 160, 0, 167, 0, 164, + 168, 0, 171, 0, 2, 2, 171, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 171, 172, 172, 172, + + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 171, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 70, 172, 172, 172, 172, 172, 6, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 171, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 171, 172, 172, 172, 172, 172, 30, + 172, 172, 172, 172, 172, 172, 172, 172, 135, 172, + 12, 13, 172, 15, 14, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 128, 172, 172, 172, 172, 172, 172, + 3, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 171, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 163, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 33, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 34, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 85, 163, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 84, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 68, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 20, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 31, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 32, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 22, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 148, 172, 172, + 172, 172, 172, 172, 26, 172, 27, 172, 172, 172, + 71, 172, 72, 172, 69, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 5, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 87, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 23, 172, 172, 172, 172, 172, 112, 111, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 35, 172, 172, 172, 172, 172, 172, 172, 172, 74, + 73, 172, 172, 172, 172, 172, 172, 172, 108, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 53, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 57, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 110, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 4, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 105, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 121, 172, 106, 172, 133, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 21, 172, 172, 172, + + 172, 76, 172, 77, 75, 172, 172, 172, 172, 172, + 172, 172, 83, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 107, 172, 172, 172, 172, 132, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 67, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 28, 172, 172, 17, 172, + 172, 172, 16, 172, 92, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 42, + 44, 172, 172, 172, 172, 172, 172, 172, 172, 136, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 78, 172, 172, 172, 172, 172, 172, + 82, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 86, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 127, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 96, 172, 100, 172, 172, 172, 172, 81, 172, + 172, 63, 172, 119, 172, 172, 172, 172, 134, 172, + 172, 172, 172, 172, 172, 172, 141, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 99, 172, + + 172, 172, 172, 172, 45, 46, 172, 29, 52, 101, + 172, 113, 109, 172, 172, 38, 172, 103, 172, 172, + 172, 172, 172, 7, 172, 66, 172, 172, 172, 150, + 172, 118, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 88, + 140, 172, 172, 172, 172, 172, 172, 172, 172, 129, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 102, 172, 37, 39, 172, 172, + 172, 172, 172, 65, 172, 172, 172, 149, 172, 172, + + 172, 172, 123, 18, 19, 172, 172, 172, 172, 172, + 172, 172, 62, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 125, 122, 172, 172, 172, 172, 172, + 172, 172, 172, 36, 172, 172, 172, 172, 172, 172, + 172, 11, 172, 172, 172, 172, 172, 172, 172, 172, + 10, 172, 172, 172, 153, 172, 40, 172, 131, 124, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 95, 94, 172, 172, 126, 120, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 47, 172, 130, 172, 172, + + 172, 172, 172, 172, 41, 172, 172, 172, 89, 91, + 114, 172, 172, 172, 93, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 137, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 24, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 139, 172, + 172, 117, 172, 172, 172, 172, 172, 172, 172, 50, + 172, 25, 172, 9, 172, 172, 172, 172, 115, 54, + 172, 172, 172, 98, 172, 172, 172, 172, 172, 172, + 172, 138, 79, 172, 172, 172, 172, 56, 60, 55, + + 172, 48, 172, 8, 172, 151, 172, 172, 97, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 61, + 59, 172, 49, 172, 172, 116, 172, 172, 90, 43, + 172, 172, 172, 172, 172, 172, 80, 58, 51, 152, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 64, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 104, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 144, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 142, 172, + 145, 146, 172, 172, 172, 172, 172, 143, 147, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -605,15 +606,15 @@ static yyconst flex_int32_t yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1732] = +static yyconst flex_int16_t yy_base[1745] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 2802, 2541, 50, 3409, 3409, 3409, 129, 94, + 87, 108, 2883, 2837, 50, 3431, 3431, 3431, 129, 94, 70, 104, 130, 90, 92, 115, 127, 95, 84, 111, - 137, 148, 50, 150, 161, 158, 154, 167, 182, 2324, - 3409, 3409, 3409, 70, 2014, 3409, 3409, 3409, 42, 1939, - 1899, 3409, 3409, 3409, 199, 1573, 3409, 3409, 3409, 141, - 1198, 3409, 203, 3409, 207, 122, 861, 213, 120, 0, + 137, 148, 50, 150, 161, 158, 154, 167, 182, 2287, + 3431, 3431, 3431, 70, 2251, 3431, 3431, 3431, 42, 1839, + 1625, 3431, 3431, 3431, 199, 1573, 3431, 3431, 3431, 141, + 1198, 3431, 203, 3431, 207, 122, 861, 213, 120, 0, 224, 0, 0, 103, 147, 140, 206, 171, 170, 208, 210, 211, 200, 226, 217, 214, 225, 227, 232, 180, 230, 235, 242, 229, 246, 247, 240, 249, 252, 253, @@ -641,7 +642,7 @@ static yyconst flex_int16_t yy_base[1732] = 660, 661, 662, 663, 674, 673, 667, 685, 681, 682, 664, 683, 689, 690, 697, 693, 694, 695, 696, 698, - 701, 704, 708, 3409, 710, 705, 712, 713, 715, 3409, + 701, 704, 708, 3431, 710, 705, 712, 713, 715, 3431, 716, 717, 718, 719, 724, 723, 735, 721, 733, 738, 740, 734, 741, 742, 743, 763, 745, 750, 752, 748, 753, 760, 756, 767, 770, 772, 775, 774, 754, 777, @@ -655,347 +656,349 @@ static yyconst flex_int16_t yy_base[1732] = 912, 916, 923, 924, 917, 925, 928, 929, 930, 931, 933, 932, 935, 938, 939, 945, 942, 943, 948, 953, 955, 957, 958, 959, 962, 963, 967, 965, 966, 975, - 976, 978, 980, 979, 982, 986, 981, 988, 991, 3409, - 1001, 995, 992, 998, 892, 1003, 1005, 1031, 3409, 1007, - 3409, 3409, 1006, 3409, 3409, 1008, 1009, 1010, 1018, 1054, + 976, 978, 980, 979, 982, 986, 981, 988, 991, 3431, + 1001, 995, 992, 998, 892, 1003, 1005, 1031, 3431, 1007, + 3431, 3431, 1006, 3431, 3431, 1008, 1009, 1010, 1018, 1054, 1019, 1011, 1012, 1025, 1027, 1032, 1033, 1020, 1041, 1044, 1046, 1038, 1045, 1048, 1052, 1062, 1049, 1059, 1069, 1071, 1080, 1081, 1079, 1078, 1083, 1085, 1068, 1087, 1088, 1090, - 1094, 1101, 1097, 3409, 1098, 1100, 1099, 1104, 1106, 1108, - 3409, 1109, 1110, 1112, 1114, 1117, 1118, 1120, 1122, 1123, + 1094, 1101, 1097, 3431, 1098, 1100, 1099, 1104, 1106, 1108, + 3431, 1109, 1110, 1112, 1114, 1117, 1118, 1120, 1122, 1123, 1124, 1127, 1128, 1125, 1132, 1135, 1145, 1151, 1144, 1137, 1147, 1150, 1153, 1157, 1165, 1161, 1154, 1162, 1168, 1166, 1170, 1177, 1167, 1179, 1171, 1173, 1178, 1180, 1201, 1181, 1184, 1188, 1187, 1189, 1191, 1193, 1211, 1203, 1209, 1216, 1219, 1208, 1220, 1225, 1228, 1235, 1226, 1227, 1230, 1237, - 1195, 1240, 1239, 1242, 1246, 1251, 1248, 3409, 1258, 1254, + 1195, 1240, 1239, 1242, 1246, 1251, 1248, 3431, 1258, 1254, 1255, 1259, 1262, 1260, 1264, 1266, 1263, 1268, 1269, 1270, - 1276, 1283, 3409, 1271, 1277, 1281, 1286, 1287, 1288, 1294, + 1276, 1283, 3431, 1271, 1277, 1281, 1286, 1287, 1288, 1294, - 1297, 1304, 3409, 1306, 1307, 1309, 1300, 1302, 1310, 1313, + 1297, 1304, 3431, 1306, 1307, 1309, 1300, 1302, 1310, 1313, 1314, 1318, 1319, 1315, 1322, 1325, 1327, 1328, 1329, 1333, 1332, 1334, 1339, 1341, 1340, 1343, 1342, 1346, 1344, 1351, 1357, 1361, 1358, 1365, 1362, 1366, 1367, 1372, 1369, 1374, - 1370, 1371, 3409, 125, 1376, 1377, 1375, 1391, 1393, 1394, + 1370, 1371, 3431, 125, 1376, 1377, 1375, 1391, 1393, 1394, 1397, 1384, 1400, 1401, 1403, 1385, 1405, 1407, 1409, 1410, 1411, 1412, 1415, 1419, 1422, 1413, 1430, 1421, 1425, 1431, 1423, 1435, 1437, 1378, 1438, 1443, 1444, 1441, 1445, 1446, - 1449, 1450, 1454, 1451, 1452, 1453, 3409, 1469, 1461, 1455, + 1449, 1450, 1454, 1451, 1452, 1453, 3431, 1469, 1461, 1455, 1467, 1471, 1478, 1474, 1479, 1481, 1482, 1488, 1484, 1490, 1492, 1498, 1496, 1501, 1486, 1489, 1508, 1509, 1510, 1512, - 1511, 1502, 3409, 1514, 1517, 1519, 1531, 1521, 1522, 1528, - 1524, 1533, 1523, 1540, 1534, 1543, 3409, 1544, 1545, 1546, + 1511, 1502, 3431, 1514, 1517, 1519, 1531, 1521, 1522, 1528, + 1524, 1533, 1523, 1540, 1534, 1543, 3431, 1544, 1545, 1546, 1553, 1554, 1556, 1557, 1559, 1560, 1561, 1563, 1564, 1567, - 1570, 1572, 1575, 3409, 1581, 1584, 1585, 1591, 1583, 1577, - 1587, 1594, 1589, 1595, 1602, 1599, 1600, 1601, 1603, 1604, - 1606, 1607, 1610, 1611, 1608, 1612, 3409, 1630, 1614, 1627, - 1622, 1633, 1639, 1636, 1637, 1638, 1615, 1642, 1644, 1643, - 1645, 1646, 1651, 1652, 1653, 1655, 1658, 1656, 1654, 1672, - 1663, 1662, 1674, 1666, 1676, 1664, 1684, 1691, 1692, 1677, - - 3409, 1694, 1688, 1690, 1696, 1697, 1703, 1700, 1701, 1704, - 1705, 1707, 1708, 1717, 1709, 1711, 1713, 1715, 1719, 1718, - 1721, 1724, 1722, 1737, 1729, 1735, 1743, 3409, 1738, 1747, - 1748, 1750, 1740, 1756, 3409, 1752, 3409, 1759, 1765, 1768, - 3409, 1772, 3409, 1774, 3409, 1775, 1776, 1767, 1755, 1769, - 1779, 1781, 1786, 1787, 1788, 1790, 1791, 1757, 1792, 1793, - 3409, 1795, 1794, 1799, 1797, 1801, 1805, 1803, 1804, 1810, - 1824, 1809, 1825, 1816, 1827, 1822, 3409, 1818, 1831, 1833, - 1834, 1835, 1844, 1843, 1837, 1847, 1836, 1855, 1856, 1849, - 1857, 1840, 1860, 1862, 1868, 1864, 1865, 1872, 1869, 1866, - - 1873, 1876, 1877, 1878, 1879, 1886, 1882, 1883, 1885, 3409, - 1889, 1895, 1897, 1899, 1898, 3409, 3409, 1901, 1909, 1913, - 1905, 1907, 1915, 1917, 1919, 1925, 1923, 1924, 1927, 1930, - 1931, 1932, 1933, 1935, 1937, 1938, 1941, 1946, 1947, 3409, - 1954, 1950, 1964, 1960, 1952, 1967, 1961, 1970, 3409, 3409, - 1963, 1969, 1975, 1976, 1983, 1980, 1981, 3409, 1977, 1984, - 1985, 1986, 1987, 1989, 1994, 2000, 2002, 2004, 2007, 2008, - 2003, 2010, 2009, 2006, 2023, 2012, 2013, 2026, 3409, 2027, - 2031, 2028, 2032, 2033, 2034, 2035, 2038, 2039, 2044, 2041, - 2052, 2054, 2045, 2053, 2047, 2058, 2055, 2060, 2063, 2065, - - 2073, 2071, 3409, 2081, 2070, 2082, 2078, 2080, 2083, 2090, - 2086, 2087, 2089, 2091, 2092, 2093, 2095, 2096, 2101, 2097, - 3409, 2104, 2116, 2108, 2112, 2118, 2110, 2120, 2124, 2125, - 3409, 2126, 2133, 2129, 2130, 2135, 2138, 2139, 2132, 2142, - 2144, 2140, 2145, 2155, 2146, 2151, 2153, 2157, 2160, 2165, - 2162, 2167, 2159, 2172, 2179, 2176, 2182, 2188, 2184, 2185, - 2192, 2189, 2190, 2191, 2193, 2200, 2198, 2204, 2196, 3409, - 2202, 2207, 2212, 2209, 2213, 2216, 2217, 2215, 3409, 2222, - 3409, 2214, 3409, 2225, 2231, 2228, 2232, 2233, 2234, 2235, - 2238, 2245, 2236, 3409, 2246, 2242, 2252, 2254, 3409, 2256, - - 3409, 3409, 2244, 2257, 2267, 2249, 2264, 2268, 2273, 3409, - 2269, 2274, 2277, 2275, 2279, 2280, 2281, 2283, 2282, 2285, - 2286, 3409, 2291, 2287, 2290, 2298, 3409, 2288, 2304, 2299, - 2309, 2310, 2311, 2313, 2301, 2315, 2322, 2321, 3409, 2320, - 2323, 2328, 2329, 2330, 2336, 2333, 2332, 2340, 2342, 2341, - 2346, 2345, 3409, 2348, 2356, 3409, 2347, 2349, 2358, 3409, - 2359, 3409, 2362, 2363, 2364, 2366, 2371, 2367, 2373, 2377, - 2379, 2380, 2381, 2387, 2382, 3409, 3409, 2392, 2384, 2398, - 2399, 2395, 2388, 2403, 2402, 3409, 2404, 2405, 2409, 2411, - 2412, 2413, 2414, 2416, 2418, 2419, 2420, 2421, 2423, 3409, - - 2427, 2424, 2433, 2428, 2439, 2435, 3409, 2437, 2438, 2440, - 2443, 2445, 2454, 2460, 2462, 2463, 2465, 2467, 2469, 2470, - 2472, 2474, 2475, 3409, 2477, 2479, 2480, 2484, 2485, 2481, - 2488, 2492, 2496, 2486, 2498, 3409, 2490, 2500, 2502, 2510, - 2501, 2512, 2504, 2516, 2514, 2507, 2521, 2518, 2522, 2524, - 2527, 2525, 2528, 2529, 2533, 2536, 2542, 3409, 2534, 3409, - 2539, 2549, 2556, 2552, 3409, 2544, 3409, 2555, 3409, 2557, - 2558, 2562, 2565, 3409, 2569, 2566, 2570, 2572, 2573, 2574, - 2575, 3409, 2577, 2583, 2579, 2585, 2588, 2589, 2591, 2592, - 2594, 2601, 2598, 3409, 2597, 2600, 2607, 2606, 2444, 3409, - - 3409, 2609, 3409, 3409, 3409, 2616, 3409, 3409, 2617, 2619, - 3409, 2621, 3409, 2628, 2624, 2611, 2626, 2629, 3409, 2631, - 3409, 2637, 2633, 2635, 3409, 2639, 3409, 2636, 2640, 2643, - 2644, 2646, 2653, 2655, 2647, 2656, 2658, 2660, 2661, 2662, - 2663, 2665, 2666, 2668, 2669, 2671, 2676, 2677, 2678, 2680, - 2681, 2688, 2693, 3409, 3409, 2679, 2690, 2682, 2695, 2697, - 2698, 2701, 2702, 3409, 2710, 2705, 2713, 2707, 2711, 2712, - 2716, 2717, 2724, 2726, 2725, 2727, 2728, 2731, 3409, 2733, - 3409, 3409, 2734, 2735, 2740, 2741, 2737, 3409, 2744, 2746, - 2749, 3409, 2758, 2750, 2760, 2764, 3409, 3409, 3409, 2765, - - 2753, 2761, 2767, 2768, 2771, 2774, 3409, 2776, 2778, 2779, - 2777, 2781, 2786, 2793, 2795, 2797, 3409, 3409, 2803, 2800, - 2801, 2799, 2787, 2805, 2807, 2809, 3409, 2811, 2810, 2816, - 2815, 2817, 2818, 2822, 3409, 2820, 2823, 2825, 2833, 2827, - 2835, 2830, 2837, 3409, 2840, 2841, 2845, 3409, 2846, 3409, - 2851, 3409, 3409, 2848, 2852, 2855, 2857, 2862, 2864, 2859, - 2865, 2871, 2870, 2872, 3409, 3409, 2867, 3409, 3409, 2874, - 2875, 2878, 2881, 2883, 2885, 2886, 2882, 2887, 2888, 2893, - 2895, 2898, 2899, 2900, 2904, 2902, 2907, 3409, 2909, 3409, - 2910, 2915, 2916, 2908, 2918, 2921, 3409, 2923, 2924, 2925, - - 3409, 3409, 3409, 2929, 2937, 2933, 3409, 2935, 2939, 2941, - 2944, 2943, 2951, 2945, 2953, 3409, 2947, 2954, 2956, 2959, - 2958, 2957, 2960, 2964, 2971, 2965, 2975, 2968, 2978, 2980, - 3409, 2982, 2983, 2988, 2984, 2986, 2993, 2995, 2990, 2999, - 2996, 3001, 3002, 3005, 3004, 3012, 3013, 3018, 3409, 3020, - 3006, 3409, 3021, 3015, 3022, 3033, 3035, 3037, 3038, 3409, - 3040, 3409, 3041, 3409, 3045, 3046, 3048, 3049, 3409, 3409, - 3050, 3052, 3056, 3409, 3057, 3053, 3059, 3060, 3063, 3064, - 3409, 3409, 3065, 3067, 3073, 3024, 3409, 3409, 3409, 3080, - 3409, 3070, 3409, 3068, 3409, 3087, 3076, 3409, 3081, 3089, - - 3083, 3090, 3092, 3093, 3095, 3096, 3102, 3409, 3409, 3104, - 3409, 3107, 3110, 3409, 3111, 3116, 3409, 3119, 3112, 3120, - 3118, 3121, 3122, 3409, 3409, 3409, 3409, 3124, 3127, 3129, - 3130, 3132, 3135, 3131, 3133, 3141, 3134, 3152, 3153, 3136, - 3144, 3160, 3154, 3409, 3162, 3145, 3170, 3171, 3167, 3163, - 3169, 3172, 3173, 3174, 3178, 3175, 3179, 3180, 3182, 3189, - 3193, 3195, 3197, 3196, 3204, 3206, 3203, 3207, 3208, 3214, - 3211, 3212, 3409, 3213, 3216, 3217, 3219, 3220, 3223, 3222, - 3233, 3237, 3224, 3239, 3231, 3243, 3240, 3244, 3245, 3248, - 3249, 3409, 3252, 3254, 3255, 3256, 3260, 3258, 3262, 3265, - - 3270, 3271, 3273, 3280, 3276, 3409, 3282, 3409, 3409, 3284, - 3267, 3285, 3291, 3293, 3409, 3409, 3409, 3317, 3324, 3331, - 3338, 3345, 94, 3352, 3359, 3366, 3373, 3380, 3387, 3394, - 3401 + 1570, 1572, 1575, 3431, 1581, 1584, 1585, 1591, 1583, 1577, + 1587, 1594, 1589, 1595, 1602, 1599, 1600, 1603, 1604, 1605, + 1601, 1607, 1608, 1611, 1610, 1612, 3431, 1628, 1625, 1629, + 1636, 1630, 1640, 1639, 1631, 1641, 1624, 1645, 1646, 1647, + 1648, 1649, 1652, 1654, 1655, 1656, 1657, 1658, 1659, 1667, + 1661, 1662, 1675, 1676, 1679, 1678, 1681, 1687, 1688, 1689, + + 3431, 1693, 1694, 1695, 1696, 1697, 1703, 1705, 1701, 1706, + 1707, 1708, 1709, 1718, 1711, 1717, 1719, 1721, 1714, 1722, + 1724, 1731, 1729, 1737, 1735, 1742, 1744, 3431, 1745, 1753, + 1749, 1755, 1747, 1761, 3431, 1757, 3431, 1764, 1770, 1773, + 3431, 1777, 3431, 1779, 3431, 1723, 1780, 1772, 1758, 1760, + 1784, 1782, 1786, 1788, 1790, 1792, 1793, 1762, 1794, 1795, + 3431, 1798, 1796, 1801, 1806, 1799, 1803, 1809, 1805, 1815, + 1807, 1826, 1820, 1827, 1824, 1829, 1830, 3431, 1831, 1832, + 1834, 1837, 1841, 1848, 1845, 1842, 1849, 1835, 1853, 1863, + 1861, 1852, 1864, 1865, 1866, 1872, 1868, 1869, 1876, 1873, + + 1877, 1879, 1880, 1882, 1881, 1884, 1892, 1886, 1888, 1889, + 3431, 1898, 1890, 1894, 1902, 1904, 3431, 3431, 1913, 1915, + 1916, 1907, 1917, 1909, 1922, 1924, 1930, 1936, 1919, 1927, + 1929, 1932, 1937, 1938, 1941, 1943, 1944, 1950, 1945, 1948, + 3431, 1958, 1952, 1960, 1961, 1963, 1969, 1968, 1971, 3431, + 3431, 1976, 1972, 1973, 1975, 1982, 1979, 1978, 3431, 1986, + 1988, 1993, 1997, 1999, 2000, 1987, 1990, 2008, 1989, 2011, + 2001, 2012, 2014, 2020, 2016, 2017, 2019, 2022, 2023, 2030, + 3431, 2027, 2032, 2034, 2037, 2038, 2039, 2040, 2043, 2041, + 2044, 2045, 2053, 2054, 2056, 2057, 2058, 2062, 2059, 2066, + + 2068, 2069, 2075, 2071, 3431, 2085, 2072, 2086, 2082, 2084, + 2087, 2094, 2091, 2092, 2093, 2095, 2097, 2096, 2099, 2100, + 2101, 2108, 3431, 2109, 2120, 2106, 2116, 2122, 2114, 2124, + 2127, 2129, 3431, 2130, 2137, 2134, 2136, 2139, 2141, 2133, + 2144, 2147, 2148, 2149, 2150, 2155, 2157, 2152, 2158, 2160, + 2161, 2163, 2168, 2175, 2165, 2169, 2182, 2181, 2190, 2192, + 2178, 2188, 2196, 2193, 2194, 2195, 2197, 2206, 2199, 2208, + 2202, 3431, 2209, 2210, 2216, 2218, 2213, 2219, 2223, 2220, + 2227, 3431, 2224, 3431, 2230, 3431, 2231, 2235, 2232, 2237, + 2238, 2239, 2240, 2245, 2253, 2241, 3431, 2259, 2247, 2254, + + 2257, 3431, 2262, 3431, 3431, 2249, 2267, 2273, 2269, 2274, + 2270, 2277, 3431, 2278, 2279, 2282, 2280, 2284, 2288, 2290, + 2291, 2292, 2293, 2294, 3431, 2296, 2295, 2298, 2306, 3431, + 2304, 2309, 2310, 2312, 2319, 2320, 2322, 2311, 2323, 2331, + 2328, 3431, 2330, 2324, 2335, 2332, 2337, 2344, 2340, 2346, + 2341, 2342, 2350, 2355, 2356, 3431, 2358, 2360, 3431, 2359, + 2361, 2362, 3431, 2367, 3431, 2369, 2370, 2366, 2371, 2377, + 2374, 2387, 2379, 2384, 2389, 2382, 2393, 2396, 2390, 3431, + 3431, 2400, 2397, 2402, 2407, 2403, 2405, 2409, 2412, 3431, + 2413, 2416, 2417, 2418, 2419, 2425, 2420, 2427, 2428, 2422, + + 2429, 2430, 2431, 3431, 2435, 2439, 2441, 2444, 2442, 2445, + 3431, 2447, 2448, 2449, 2453, 2455, 2469, 2472, 2474, 2464, + 2476, 2479, 2481, 2482, 2484, 2486, 2487, 3431, 2452, 2489, + 2490, 2492, 2493, 2494, 2495, 2496, 2503, 2499, 2505, 3431, + 2507, 2508, 2510, 2516, 2513, 2520, 2517, 2521, 2524, 2525, + 2526, 2527, 2528, 2529, 2534, 2536, 2535, 2538, 2540, 2553, + 2542, 3431, 2545, 3431, 2549, 2555, 2562, 2559, 3431, 2561, + 2563, 3431, 2566, 3431, 2564, 2569, 2570, 2580, 3431, 2582, + 2571, 2583, 2575, 2577, 2573, 2588, 3431, 2593, 2595, 2600, + 2596, 2586, 2594, 2603, 2602, 2604, 2610, 2611, 3431, 2612, + + 2613, 2619, 2615, 2459, 3431, 3431, 2620, 3431, 3431, 3431, + 2625, 3431, 3431, 2626, 2630, 3431, 2633, 3431, 2639, 2635, + 2627, 2616, 2637, 3431, 2641, 3431, 2649, 2645, 2646, 3431, + 2648, 3431, 2650, 2651, 2652, 2654, 2657, 2665, 2668, 2658, + 2660, 2662, 2669, 2671, 2672, 2673, 2676, 2679, 2680, 2682, + 2684, 2685, 2686, 2687, 2689, 2690, 2691, 2699, 2704, 3431, + 3431, 2692, 2701, 2694, 2707, 2708, 2710, 2713, 2714, 3431, + 2721, 2723, 2718, 2722, 2724, 2726, 2729, 2728, 2734, 2740, + 2736, 2738, 2739, 2741, 3431, 2743, 3431, 3431, 2746, 2748, + 2750, 2752, 2755, 3431, 2756, 2764, 2757, 3431, 2769, 2759, + + 2772, 2775, 3431, 3431, 3431, 2776, 2765, 2779, 2780, 2781, + 2782, 2783, 3431, 2784, 2789, 2790, 2792, 2797, 2803, 2798, + 2800, 2809, 2811, 3431, 3431, 2817, 2814, 2815, 2804, 2806, + 2816, 2822, 2819, 3431, 2823, 2825, 2828, 2829, 2830, 2832, + 2835, 3431, 2834, 2836, 2840, 2846, 2842, 2848, 2849, 2850, + 3431, 2852, 2854, 2858, 3431, 2862, 3431, 2865, 3431, 3431, + 2860, 2868, 2871, 2876, 2878, 2882, 2866, 2872, 2888, 2890, + 2887, 3431, 3431, 2879, 2897, 3431, 3431, 2893, 2894, 2895, + 2896, 2898, 2901, 2902, 2906, 2903, 2904, 2907, 2909, 2915, + 2917, 2918, 2919, 2923, 2926, 3431, 2924, 3431, 2929, 2931, + + 2932, 2933, 2935, 2940, 3431, 2941, 2939, 2934, 3431, 3431, + 3431, 2952, 2953, 2955, 3431, 2956, 2958, 2945, 2960, 2963, + 2962, 2971, 2969, 2973, 3431, 2970, 2975, 2977, 2974, 2979, + 2982, 2983, 2984, 2986, 2985, 2996, 2987, 3000, 3003, 3431, + 3005, 2993, 3009, 3001, 2997, 3017, 3021, 3007, 3012, 3014, + 3023, 3018, 3025, 3027, 3028, 3036, 3033, 3038, 3431, 3040, + 3029, 3431, 3041, 3035, 3052, 3043, 3054, 3056, 3058, 3431, + 3060, 3431, 3061, 3431, 3065, 3066, 3068, 3069, 3431, 3431, + 3070, 3072, 3076, 3431, 3077, 3073, 3079, 3080, 3083, 3084, + 3086, 3431, 3431, 3087, 3089, 3093, 3090, 3431, 3431, 3431, + + 3099, 3431, 3102, 3431, 3095, 3431, 3104, 3108, 3431, 3110, + 3112, 3114, 3115, 3116, 3117, 3119, 3120, 3118, 3122, 3431, + 3431, 3127, 3431, 3130, 3133, 3431, 3134, 3135, 3431, 3431, + 3144, 3141, 3142, 3143, 3145, 3148, 3431, 3431, 3431, 3431, + 3149, 3150, 3152, 3154, 3151, 3156, 3157, 3159, 3161, 3158, + 3166, 3175, 3168, 3176, 3183, 3181, 3431, 3177, 3179, 3189, + 3190, 3186, 3188, 3187, 3194, 3196, 3197, 3199, 3202, 3204, + 3211, 3203, 3213, 3218, 3219, 3220, 3207, 3232, 3229, 3230, + 3217, 3231, 3238, 3234, 3235, 3431, 3239, 3240, 3241, 3242, + 3245, 3247, 3243, 3256, 3263, 3249, 3251, 3261, 3266, 3267, + + 3268, 3269, 3271, 3270, 3431, 3272, 3273, 3279, 3281, 3282, + 3284, 3285, 3286, 3291, 3292, 3294, 3296, 3301, 3431, 3297, + 3431, 3431, 3305, 3306, 3307, 3312, 3314, 3431, 3431, 3431, + 3339, 3346, 3353, 3360, 3367, 94, 3374, 3381, 3388, 3395, + 3402, 3409, 3416, 3423 } ; -static yyconst flex_int16_t yy_def[1732] = +static yyconst flex_int16_t yy_def[1745] = { 0, - 1717, 1, 1718, 1718, 1719, 1719, 1720, 1720, 1721, 1721, - 1722, 1722, 1717, 1723, 1717, 1717, 1717, 1717, 1724, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1725, - 1717, 1717, 1717, 1725, 1726, 1717, 1717, 1717, 1726, 1727, - 1717, 1717, 1717, 1717, 1727, 1728, 1717, 1717, 1717, 1728, - 1729, 1717, 1730, 1717, 1729, 1729, 1723, 1723, 1717, 1731, - 1724, 1731, 1724, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1725, 1725, 1726, 1726, 1727, 1727, 1717, - 1728, 1728, 1729, 1729, 1730, 1730, 1729, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1729, 1723, 1723, 1723, - - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1729, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1717, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1729, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1729, 1723, 1723, 1723, 1723, 1723, 1717, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, - 1717, 1717, 1723, 1717, 1717, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, - 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1729, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - - 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1717, 1729, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - - 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, - 1723, 1723, 1723, 1723, 1717, 1723, 1717, 1723, 1723, 1723, - 1717, 1723, 1717, 1723, 1717, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, - 1723, 1723, 1723, 1723, 1723, 1717, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1717, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - - 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, - 1717, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1717, 1723, - - 1717, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1717, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1717, 1723, 1723, 1717, 1723, 1723, 1723, 1717, - 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1717, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, - - 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1717, - 1723, 1723, 1723, 1723, 1717, 1723, 1717, 1723, 1717, 1723, - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1717, - - 1717, 1723, 1717, 1717, 1717, 1723, 1717, 1717, 1723, 1723, - 1717, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1717, 1723, - 1717, 1723, 1723, 1723, 1717, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1717, 1717, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, - 1717, 1717, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, - 1723, 1717, 1723, 1723, 1723, 1723, 1717, 1717, 1717, 1723, - - 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1717, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1717, 1723, 1717, - 1723, 1717, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1717, 1717, 1723, 1717, 1717, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1717, - 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, - - 1717, 1717, 1717, 1723, 1723, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1723, - 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, - 1723, 1717, 1723, 1717, 1723, 1723, 1723, 1723, 1717, 1717, - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, - 1717, 1717, 1723, 1723, 1723, 1723, 1717, 1717, 1717, 1723, - 1717, 1723, 1717, 1723, 1717, 1723, 1723, 1717, 1723, 1723, - - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1717, 1717, 1723, - 1717, 1723, 1723, 1717, 1723, 1723, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1717, 1717, 1717, 1717, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - 1723, 1717, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, - - 1723, 1723, 1723, 1723, 1723, 1717, 1723, 1717, 1717, 1723, - 1723, 1723, 1723, 1723, 1717, 1717, 0, 1717, 1717, 1717, - 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, - 1717 + 1730, 1, 1731, 1731, 1732, 1732, 1733, 1733, 1734, 1734, + 1735, 1735, 1730, 1736, 1730, 1730, 1730, 1730, 1737, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1738, + 1730, 1730, 1730, 1738, 1739, 1730, 1730, 1730, 1739, 1740, + 1730, 1730, 1730, 1730, 1740, 1741, 1730, 1730, 1730, 1741, + 1742, 1730, 1743, 1730, 1742, 1742, 1736, 1736, 1730, 1744, + 1737, 1744, 1737, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1738, 1738, 1739, 1739, 1740, 1740, 1730, + 1741, 1741, 1742, 1742, 1743, 1743, 1742, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1742, 1736, 1736, 1736, + + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1742, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1730, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1742, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1742, 1736, 1736, 1736, 1736, 1736, 1730, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, + 1730, 1730, 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, + 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1742, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1730, 1742, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, + 1736, 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1736, 1736, + 1730, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1730, 1736, 1736, 1736, 1736, 1736, 1730, 1730, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, + 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1730, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, + + 1736, 1730, 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1730, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1730, 1736, + 1736, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, + 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, + 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1730, 1736, + 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1730, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, + + 1736, 1736, 1736, 1736, 1730, 1730, 1736, 1730, 1730, 1730, + 1736, 1730, 1730, 1736, 1736, 1730, 1736, 1730, 1736, 1736, + 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1730, + 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, + 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1730, 1736, 1730, 1730, 1736, 1736, + 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1730, 1736, 1736, + + 1736, 1736, 1730, 1730, 1730, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1730, 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1730, 1730, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1730, 1730, 1736, 1736, 1730, 1730, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1736, + + 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1730, 1730, + 1730, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, + 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, + 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1730, 1730, + 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1730, 1730, 1730, + + 1736, 1730, 1736, 1730, 1736, 1730, 1736, 1736, 1730, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, + 1730, 1736, 1730, 1736, 1736, 1730, 1736, 1736, 1730, 1730, + 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1730, 1730, 1730, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, + + 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, + 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, + 1730, 1730, 1736, 1736, 1736, 1736, 1736, 1730, 1730, 0, + 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, + 1730, 1730, 1730, 1730 } ; -static yyconst flex_int16_t yy_nxt[3449] = +static yyconst flex_int16_t yy_nxt[3471] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, @@ -1174,211 +1177,213 @@ static yyconst flex_int16_t yy_nxt[3449] = 852, 855, 846, 68, 853, 68, 68, 68, 857, 68, 851, 68, 856, 68, 858, 861, 68, 68, 859, 864, - 860, 68, 68, 68, 68, 68, 68, 869, 68, 68, - 68, 862, 68, 68, 68, 867, 68, 68, 873, 875, - 863, 865, 866, 868, 68, 878, 880, 876, 870, 68, - 872, 877, 68, 874, 871, 68, 882, 879, 68, 68, - 68, 68, 883, 886, 68, 68, 68, 68, 68, 881, - 884, 888, 891, 68, 68, 68, 68, 68, 68, 885, - 68, 898, 887, 889, 68, 68, 68, 890, 68, 894, - 900, 892, 895, 893, 68, 896, 68, 897, 68, 68, - 909, 899, 901, 903, 904, 902, 68, 905, 907, 908, - - 68, 906, 68, 68, 68, 910, 68, 912, 68, 68, - 915, 917, 68, 68, 916, 68, 68, 68, 911, 68, - 68, 68, 913, 68, 923, 68, 922, 68, 914, 68, - 68, 68, 918, 68, 68, 919, 68, 931, 921, 932, - 924, 68, 925, 920, 926, 928, 927, 68, 930, 68, - 68, 929, 68, 933, 934, 68, 935, 936, 940, 68, - 68, 937, 68, 944, 68, 941, 942, 68, 68, 68, - 939, 68, 943, 963, 938, 948, 946, 68, 947, 68, - 68, 68, 945, 949, 68, 950, 68, 68, 68, 952, - 951, 68, 954, 68, 953, 955, 956, 958, 68, 68, - - 68, 960, 68, 68, 68, 68, 68, 68, 957, 68, - 965, 68, 968, 68, 962, 68, 68, 68, 973, 959, - 967, 68, 68, 964, 961, 966, 971, 974, 68, 969, - 68, 975, 977, 970, 68, 972, 68, 68, 979, 68, - 980, 976, 978, 68, 982, 68, 68, 68, 68, 68, - 985, 988, 68, 986, 981, 68, 68, 983, 990, 68, - 989, 68, 995, 994, 991, 987, 984, 68, 68, 68, - 993, 997, 68, 992, 68, 1000, 68, 68, 68, 999, - 68, 68, 1002, 1003, 68, 68, 1004, 996, 68, 68, - 68, 68, 998, 1011, 68, 68, 1005, 68, 68, 1001, - - 130, 68, 1009, 1008, 1010, 1006, 1015, 68, 1007, 68, - 68, 68, 1021, 68, 1012, 1013, 1017, 68, 1014, 68, - 1018, 68, 1016, 1019, 1022, 68, 1020, 68, 1025, 68, - 1023, 68, 1030, 1024, 1031, 68, 68, 68, 1027, 68, - 1029, 1028, 68, 68, 68, 68, 1026, 68, 1038, 68, - 68, 129, 1033, 68, 1041, 1040, 1032, 1035, 68, 68, - 1034, 1046, 68, 1037, 68, 1039, 68, 1043, 1042, 1036, - 1044, 1048, 68, 68, 1051, 68, 68, 1045, 1049, 68, - 1047, 68, 68, 1055, 1050, 1053, 1052, 68, 68, 68, - 1059, 1054, 68, 68, 1056, 68, 68, 68, 68, 68, - - 1063, 68, 1064, 1065, 1066, 1057, 68, 1058, 1060, 1062, - 1067, 1061, 68, 1070, 68, 68, 68, 1075, 68, 68, - 68, 68, 68, 1079, 68, 68, 127, 1069, 1080, 1068, - 1071, 1072, 1073, 1076, 1074, 68, 1077, 1081, 68, 68, - 68, 1078, 1083, 68, 68, 68, 68, 68, 1082, 1085, - 68, 68, 1084, 68, 1086, 1089, 68, 68, 1087, 68, - 1090, 1095, 1088, 1094, 68, 68, 68, 68, 1093, 1099, - 68, 1101, 68, 1091, 1102, 68, 1092, 68, 1096, 1098, - 1104, 1103, 68, 68, 1097, 68, 1105, 1100, 1106, 1108, - 68, 1110, 68, 68, 68, 68, 1111, 1112, 68, 68, - - 1107, 68, 68, 68, 68, 68, 1122, 68, 68, 68, - 1113, 1114, 1115, 68, 1124, 1109, 68, 1116, 1120, 1117, - 68, 1118, 68, 1119, 68, 1126, 1121, 1127, 68, 1125, - 68, 1129, 68, 1132, 1123, 1128, 68, 68, 68, 1130, - 1136, 68, 68, 1135, 68, 68, 1139, 68, 1131, 1138, - 68, 68, 68, 1134, 68, 1140, 68, 68, 68, 1144, - 1141, 1137, 1133, 68, 1142, 68, 1143, 68, 1147, 68, - 1145, 68, 68, 1148, 68, 1151, 1153, 68, 1156, 68, - 1150, 1152, 1149, 1146, 68, 1154, 1159, 1160, 68, 1161, - 1155, 68, 1157, 1162, 68, 1163, 68, 68, 1158, 1166, - - 68, 68, 68, 68, 68, 68, 1168, 1171, 68, 1165, - 68, 1173, 68, 1167, 68, 1169, 68, 1175, 1176, 68, - 1174, 68, 1164, 1177, 68, 68, 68, 68, 68, 68, - 1170, 1179, 1172, 1180, 68, 1181, 1182, 68, 1184, 1183, - 68, 1178, 1186, 68, 68, 68, 68, 68, 68, 1185, - 68, 1191, 1193, 1188, 68, 1192, 68, 68, 68, 1195, - 1187, 68, 1194, 1189, 68, 1190, 68, 1200, 68, 68, - 1196, 1201, 1197, 1198, 1203, 1199, 68, 1205, 1204, 68, - 68, 68, 1206, 1202, 1207, 68, 68, 68, 1208, 68, - 1210, 68, 68, 68, 68, 68, 1211, 68, 68, 68, - - 68, 1220, 68, 68, 1213, 1214, 1209, 1215, 1219, 1216, - 68, 68, 1212, 68, 1223, 1224, 68, 1217, 1218, 1222, - 1221, 68, 68, 68, 1227, 68, 1226, 68, 1228, 1232, - 1229, 1230, 68, 68, 68, 68, 125, 1225, 1233, 1236, - 68, 68, 68, 1239, 68, 68, 1241, 1231, 68, 1235, - 1240, 1234, 68, 68, 68, 1245, 1237, 68, 68, 68, - 68, 68, 1238, 1243, 1242, 1248, 1244, 1246, 68, 1247, - 68, 68, 1250, 1249, 68, 68, 68, 1253, 68, 68, - 1254, 1251, 1258, 68, 1260, 68, 1252, 1257, 1259, 68, - 1255, 68, 68, 68, 68, 1262, 68, 1263, 1265, 68, - - 68, 1256, 1266, 1267, 68, 1268, 1264, 68, 1261, 1269, - 68, 68, 1270, 1274, 68, 68, 68, 68, 1272, 1271, - 1273, 68, 1276, 68, 68, 68, 68, 1282, 68, 1279, - 68, 68, 68, 68, 1283, 68, 68, 1285, 1278, 68, - 68, 1275, 1281, 1280, 1277, 68, 1284, 68, 1294, 68, - 68, 68, 68, 1295, 1287, 68, 68, 68, 1377, 1286, - 1289, 1291, 1288, 1292, 1290, 1296, 68, 1299, 1293, 1297, - 1298, 1300, 68, 1301, 68, 68, 1303, 68, 1304, 68, - 1305, 68, 68, 1307, 68, 1308, 68, 68, 1302, 68, - 1311, 68, 68, 68, 1310, 1313, 68, 68, 68, 1315, - - 68, 1306, 68, 1316, 68, 1317, 1309, 1319, 68, 1321, - 68, 1312, 68, 68, 68, 1314, 68, 1320, 1324, 68, - 1318, 1325, 68, 1327, 68, 1322, 68, 1323, 68, 1329, - 68, 1331, 1326, 68, 68, 1330, 68, 68, 1332, 68, - 68, 68, 1328, 1341, 1336, 68, 68, 1334, 68, 1338, - 1339, 68, 1337, 68, 68, 1333, 68, 1335, 1342, 1340, - 1344, 68, 1345, 1346, 68, 1347, 1343, 68, 68, 68, - 68, 1349, 1351, 1348, 68, 1352, 1354, 68, 68, 1350, - 1355, 68, 68, 1357, 68, 68, 68, 68, 1361, 68, - 1364, 68, 1356, 1362, 1353, 68, 1358, 68, 1363, 1359, - - 68, 68, 1365, 68, 68, 1360, 68, 1368, 1371, 68, - 68, 1370, 68, 68, 1375, 1367, 1372, 1374, 68, 68, - 1366, 68, 1378, 68, 1369, 1373, 1376, 1379, 68, 68, - 1381, 68, 1382, 68, 1380, 1383, 68, 1384, 68, 1385, - 68, 68, 1388, 68, 1389, 68, 1387, 68, 68, 68, - 1392, 68, 68, 1393, 1394, 68, 68, 1397, 68, 68, - 1386, 1396, 1391, 1390, 1398, 68, 1399, 68, 68, 1395, - 68, 1400, 68, 68, 68, 68, 1407, 68, 68, 1405, - 68, 68, 1402, 68, 1403, 1404, 1401, 1408, 68, 68, - 68, 68, 68, 68, 68, 1406, 1411, 1415, 1416, 1417, - - 68, 1410, 68, 1413, 1418, 68, 1409, 68, 1414, 68, - 68, 1419, 1412, 68, 68, 1426, 1421, 68, 1423, 68, - 1420, 1427, 68, 68, 68, 68, 1428, 1422, 68, 68, - 1424, 1425, 1429, 1436, 1430, 1435, 68, 68, 68, 68, - 68, 1431, 1432, 68, 1433, 68, 68, 68, 1434, 68, - 1443, 1444, 68, 68, 1438, 1437, 68, 1448, 68, 1439, - 1447, 68, 68, 1440, 1441, 68, 1442, 1446, 1445, 1450, - 68, 1452, 68, 68, 1449, 1453, 68, 68, 1454, 68, - 68, 1451, 1456, 68, 1457, 1458, 68, 1455, 68, 68, - 68, 68, 1465, 68, 1460, 1462, 1463, 1466, 68, 68, - - 1467, 1717, 1459, 1461, 1464, 68, 1468, 68, 1469, 68, - 1470, 68, 68, 68, 1474, 68, 1471, 68, 1472, 68, - 1473, 68, 68, 68, 1476, 1475, 1478, 68, 68, 68, - 68, 1483, 68, 1477, 68, 68, 1481, 68, 1482, 68, - 1479, 1480, 68, 1484, 1488, 68, 1490, 68, 1489, 68, - 1491, 1485, 68, 68, 1492, 1486, 1487, 68, 68, 1496, - 68, 1493, 1497, 68, 68, 1499, 1494, 68, 1501, 68, - 1500, 68, 1495, 1502, 68, 1503, 68, 68, 1506, 68, - 1498, 1507, 68, 68, 68, 1509, 68, 68, 1508, 1504, - 68, 1505, 1512, 68, 68, 68, 1516, 68, 68, 68, - - 68, 1520, 1518, 1510, 1511, 68, 1521, 68, 1513, 1515, - 68, 68, 68, 1514, 68, 1523, 68, 1517, 1519, 68, - 68, 68, 68, 1522, 1529, 1526, 1531, 68, 68, 1533, - 68, 1524, 1532, 68, 1527, 68, 68, 68, 1525, 1528, - 1530, 68, 1535, 1534, 1536, 68, 1539, 68, 1537, 68, - 1540, 68, 1542, 68, 1541, 68, 68, 68, 1547, 68, - 1543, 1545, 1538, 68, 1549, 68, 68, 1552, 68, 68, - 68, 68, 68, 1546, 1544, 1553, 68, 68, 1550, 1554, - 68, 1551, 1548, 68, 1557, 1555, 1560, 68, 1558, 1562, - 68, 1556, 68, 1564, 68, 68, 68, 1563, 68, 1561, - - 68, 1566, 68, 1559, 1569, 68, 1570, 68, 68, 1717, - 1567, 68, 1574, 68, 68, 1565, 68, 68, 68, 1578, - 1568, 1571, 1576, 1572, 68, 68, 1575, 68, 1573, 1581, - 68, 1582, 68, 68, 68, 1577, 68, 1583, 1584, 1586, - 1610, 1585, 1579, 1580, 1587, 68, 1588, 68, 1589, 68, - 68, 1591, 68, 68, 1592, 1590, 1593, 68, 68, 1595, - 68, 68, 68, 1598, 68, 68, 1596, 1594, 68, 68, - 1597, 68, 68, 1599, 1600, 68, 68, 68, 1608, 68, - 68, 1606, 68, 1601, 1609, 68, 1612, 1602, 68, 1603, - 1604, 1611, 68, 68, 1613, 68, 1605, 1607, 1614, 68, - - 1617, 68, 68, 1615, 68, 68, 1717, 68, 68, 1717, - 1621, 1616, 1622, 1624, 68, 1625, 68, 1619, 1626, 68, - 1618, 1627, 68, 68, 68, 1620, 1630, 1623, 68, 1629, - 68, 68, 68, 68, 68, 1628, 68, 1632, 1631, 68, - 1636, 68, 68, 68, 68, 68, 68, 68, 68, 1633, - 1635, 1634, 1644, 68, 1638, 1645, 68, 68, 1717, 1637, - 1643, 1639, 1640, 1641, 68, 68, 68, 1650, 1642, 1646, - 1647, 1649, 68, 1648, 68, 68, 1653, 1654, 1655, 68, - 1651, 68, 68, 68, 68, 68, 68, 68, 1657, 1652, - 68, 68, 68, 1656, 68, 1717, 1664, 1665, 1659, 1661, - - 1658, 68, 1667, 1662, 1660, 68, 1663, 68, 68, 68, - 1668, 1672, 1669, 1666, 1670, 68, 68, 1673, 68, 68, - 68, 1677, 1674, 68, 68, 68, 68, 1671, 68, 68, - 1680, 68, 68, 1684, 68, 68, 68, 1679, 1675, 1676, - 1685, 1689, 1678, 68, 1683, 68, 1687, 1681, 1682, 68, - 1688, 68, 68, 1686, 1692, 68, 68, 68, 1690, 1693, - 68, 68, 1691, 1694, 68, 1696, 68, 68, 68, 1698, - 68, 1699, 68, 1702, 68, 1717, 1695, 68, 1705, 68, - 1697, 1706, 68, 68, 1708, 68, 1700, 1701, 68, 1703, - 1707, 1709, 68, 1704, 68, 1710, 68, 68, 1713, 1711, - - 1717, 1712, 1715, 68, 1716, 68, 1717, 1717, 1717, 1717, - 1717, 1717, 1717, 1717, 1717, 1717, 1714, 40, 40, 40, - 40, 40, 40, 40, 45, 45, 45, 45, 45, 45, - 45, 50, 50, 50, 50, 50, 50, 50, 56, 56, - 56, 56, 56, 56, 56, 61, 61, 61, 61, 61, - 61, 61, 71, 71, 1717, 71, 71, 71, 71, 124, - 124, 1717, 1717, 1717, 124, 124, 126, 126, 1717, 1717, - 126, 1717, 126, 128, 1717, 1717, 1717, 1717, 1717, 128, - 131, 131, 1717, 1717, 1717, 131, 131, 133, 1717, 1717, - 1717, 1717, 1717, 133, 135, 135, 1717, 135, 135, 135, - - 135, 72, 72, 1717, 72, 72, 72, 72, 13, 1717, - 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, - 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, - 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, - 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717 + 860, 68, 68, 68, 68, 68, 68, 68, 870, 68, + 68, 862, 68, 68, 68, 865, 130, 868, 874, 876, + 863, 866, 867, 871, 869, 877, 68, 68, 873, 878, + 68, 68, 68, 68, 872, 875, 879, 883, 68, 880, + 881, 68, 68, 68, 885, 884, 882, 68, 68, 68, + 68, 68, 887, 889, 68, 892, 68, 68, 68, 68, + 68, 68, 886, 68, 68, 888, 899, 890, 901, 68, + 891, 895, 893, 896, 897, 894, 900, 68, 68, 898, + 68, 68, 902, 68, 908, 909, 903, 905, 907, 68, + + 68, 68, 910, 904, 911, 68, 68, 68, 68, 68, + 916, 906, 913, 68, 917, 68, 918, 68, 68, 68, + 68, 68, 914, 68, 912, 924, 68, 923, 915, 68, + 68, 68, 919, 68, 68, 68, 68, 920, 952, 922, + 929, 68, 925, 68, 932, 921, 933, 68, 926, 68, + 927, 931, 928, 934, 68, 930, 68, 68, 937, 68, + 935, 68, 938, 936, 941, 68, 942, 68, 945, 68, + 68, 943, 68, 68, 68, 939, 68, 940, 964, 944, + 949, 947, 68, 948, 68, 68, 956, 946, 950, 68, + 951, 68, 68, 953, 68, 955, 68, 959, 68, 954, + + 68, 957, 68, 961, 68, 68, 68, 68, 68, 958, + 68, 68, 966, 68, 969, 68, 963, 68, 68, 68, + 960, 68, 968, 970, 976, 965, 962, 68, 967, 975, + 973, 971, 68, 977, 979, 972, 68, 974, 68, 68, + 981, 68, 68, 68, 68, 984, 68, 68, 982, 68, + 980, 129, 978, 68, 68, 990, 987, 68, 985, 988, + 68, 68, 991, 992, 68, 68, 993, 983, 995, 986, + 996, 989, 994, 68, 997, 68, 68, 68, 68, 1002, + 68, 68, 998, 1001, 68, 68, 1004, 1005, 68, 68, + 1006, 68, 68, 68, 68, 999, 68, 1000, 68, 1013, + + 68, 68, 68, 1003, 68, 1011, 68, 1007, 1010, 1012, + 68, 1008, 1009, 1019, 68, 1017, 68, 1018, 1014, 68, + 1015, 68, 1016, 1020, 1023, 68, 1021, 68, 68, 68, + 1024, 68, 1022, 1025, 68, 1026, 68, 1032, 1027, 68, + 1028, 68, 68, 1029, 68, 1031, 1030, 1033, 68, 68, + 68, 1034, 1035, 68, 1040, 68, 68, 68, 1037, 1036, + 68, 1042, 68, 1043, 68, 1048, 1045, 1050, 1039, 1046, + 68, 1041, 68, 68, 1038, 68, 1053, 1044, 1047, 1051, + 68, 68, 1049, 68, 68, 68, 1055, 68, 68, 1061, + 68, 68, 1056, 1054, 68, 1052, 1057, 1058, 68, 68, + + 68, 68, 68, 1059, 1065, 68, 1060, 1062, 1063, 68, + 1066, 68, 68, 68, 1067, 1073, 1068, 1071, 1064, 1072, + 68, 1069, 1070, 68, 68, 1075, 68, 1078, 68, 68, + 1074, 68, 68, 1082, 68, 68, 1076, 1081, 1083, 68, + 1079, 1084, 68, 1086, 68, 1077, 68, 1080, 1085, 68, + 68, 68, 68, 68, 1088, 68, 68, 68, 1087, 1089, + 1092, 1098, 1093, 1090, 1097, 68, 68, 1091, 68, 68, + 68, 68, 1096, 1102, 68, 1094, 1095, 1104, 68, 1105, + 68, 68, 1107, 68, 68, 1106, 1108, 68, 1100, 1099, + 1101, 1103, 1109, 1111, 68, 1113, 68, 68, 68, 68, + + 1114, 1115, 1110, 68, 68, 68, 68, 68, 68, 68, + 1125, 68, 68, 68, 1127, 1116, 1117, 1118, 68, 1112, + 68, 68, 1119, 1123, 1120, 1121, 68, 1122, 68, 1124, + 1129, 1130, 68, 1131, 68, 1132, 68, 1135, 1126, 68, + 1128, 68, 68, 1133, 1139, 68, 68, 1138, 68, 68, + 1142, 68, 1134, 68, 1144, 1141, 68, 1137, 1143, 68, + 68, 68, 68, 1147, 68, 1136, 1140, 68, 1150, 68, + 68, 1146, 68, 68, 1156, 68, 1145, 68, 1154, 1148, + 68, 68, 1155, 1152, 1151, 1153, 1159, 68, 1149, 1162, + 68, 1157, 1163, 68, 68, 1161, 1158, 1164, 1160, 1166, + + 68, 1165, 68, 1169, 68, 68, 68, 68, 68, 68, + 1171, 68, 1168, 1174, 68, 1176, 1167, 1170, 68, 1172, + 68, 68, 68, 1179, 1178, 68, 1177, 1180, 68, 1181, + 68, 68, 68, 1175, 1173, 68, 68, 1183, 1185, 68, + 1184, 1187, 68, 68, 68, 1182, 1190, 68, 1186, 68, + 68, 68, 68, 68, 1188, 1189, 1195, 68, 1192, 68, + 1197, 68, 1196, 127, 1191, 68, 68, 1198, 1193, 68, + 1194, 68, 1199, 1204, 68, 1202, 1205, 1201, 1203, 68, + 1207, 68, 68, 1200, 1210, 68, 68, 1209, 1211, 68, + 68, 68, 68, 1206, 68, 1214, 68, 1212, 1208, 125, + + 68, 1215, 68, 68, 68, 68, 68, 68, 68, 1224, + 68, 1213, 1217, 1223, 1218, 1219, 68, 1216, 68, 1220, + 1228, 68, 68, 68, 68, 1221, 1222, 1226, 1225, 1230, + 1227, 68, 68, 1231, 68, 68, 68, 1232, 1236, 1233, + 68, 1234, 68, 68, 68, 1237, 1240, 68, 1229, 68, + 1239, 1243, 68, 68, 68, 1235, 68, 1244, 68, 1241, + 1245, 1238, 68, 1247, 1249, 1246, 1248, 68, 68, 1242, + 68, 68, 68, 68, 68, 1252, 1250, 1253, 68, 68, + 1251, 68, 68, 68, 1254, 1257, 68, 1258, 1262, 68, + 1256, 68, 1261, 1255, 68, 1263, 68, 1259, 1264, 68, + + 1266, 68, 68, 1260, 1269, 68, 1267, 1268, 68, 68, + 1265, 1272, 68, 1274, 68, 68, 1270, 68, 1273, 68, + 1275, 68, 1271, 1279, 68, 68, 1278, 1276, 68, 68, + 68, 68, 68, 1281, 68, 1277, 1284, 68, 1287, 68, + 68, 68, 68, 68, 1288, 1283, 1290, 68, 1286, 1289, + 1280, 68, 1282, 68, 68, 1285, 68, 68, 1299, 68, + 68, 68, 1292, 1300, 68, 68, 1297, 68, 1291, 1315, + 1293, 68, 1295, 1383, 1301, 1294, 68, 1296, 1298, 1302, + 1303, 68, 1304, 1305, 68, 1306, 68, 1308, 68, 1307, + 1309, 68, 1310, 68, 68, 1312, 68, 1313, 68, 68, + + 1316, 68, 68, 1318, 68, 68, 68, 68, 68, 1322, + 1321, 68, 1320, 1311, 1324, 68, 1326, 68, 1314, 68, + 68, 1317, 68, 1319, 1323, 68, 1329, 1330, 68, 68, + 1325, 1332, 68, 68, 1334, 1328, 68, 68, 68, 68, + 68, 68, 1327, 1337, 1331, 1335, 68, 68, 68, 1336, + 68, 1341, 68, 1339, 68, 1333, 1343, 68, 1347, 1344, + 1346, 68, 1340, 1342, 1338, 68, 1345, 68, 1350, 1351, + 1349, 68, 1352, 68, 68, 68, 68, 1348, 68, 1357, + 1353, 68, 68, 68, 1355, 68, 1358, 68, 1354, 68, + 1356, 1360, 68, 1361, 68, 68, 1363, 1362, 68, 1364, + + 68, 1367, 1359, 1365, 1366, 68, 68, 68, 68, 1368, + 1369, 1370, 68, 1371, 68, 68, 68, 1377, 1372, 1374, + 1373, 1376, 68, 68, 68, 68, 1381, 68, 68, 1378, + 1380, 68, 68, 1384, 1375, 1382, 1385, 68, 68, 68, + 1379, 1387, 68, 1386, 1388, 68, 1389, 68, 1390, 68, + 1392, 68, 1394, 68, 1393, 1391, 1395, 68, 68, 1398, + 68, 68, 68, 68, 68, 1400, 68, 1399, 1403, 68, + 68, 1402, 68, 1397, 68, 1396, 1404, 68, 1401, 1405, + 68, 68, 1406, 68, 68, 68, 1408, 1413, 68, 1411, + 1407, 68, 68, 1409, 68, 1410, 68, 68, 68, 68, + + 1414, 68, 68, 68, 68, 1412, 68, 1422, 1423, 1417, + 1424, 68, 1419, 68, 1416, 1425, 68, 1420, 1415, 68, + 68, 1418, 68, 1421, 1426, 68, 68, 1433, 1428, 1430, + 68, 1427, 1434, 68, 68, 68, 68, 1436, 68, 1429, + 68, 68, 1431, 1432, 1435, 1442, 68, 1443, 68, 1437, + 68, 68, 68, 68, 1438, 68, 1439, 1440, 68, 1441, + 68, 1451, 68, 1450, 68, 1445, 1444, 68, 68, 68, + 1446, 68, 1454, 1447, 1448, 1455, 68, 68, 1449, 1452, + 1457, 68, 1456, 1459, 68, 1453, 1460, 68, 68, 1461, + 1458, 68, 68, 68, 68, 68, 68, 1464, 1465, 1462, + + 1463, 68, 68, 1467, 68, 1474, 1469, 1470, 1472, 68, + 68, 1468, 68, 1466, 1473, 68, 68, 1475, 68, 1471, + 1476, 68, 1477, 68, 1478, 1481, 68, 68, 68, 68, + 1479, 68, 1480, 1482, 68, 68, 1483, 68, 1486, 1484, + 68, 68, 68, 1485, 68, 1491, 68, 68, 68, 68, + 1489, 1490, 68, 1488, 68, 1487, 1492, 1496, 68, 1498, + 68, 68, 68, 1497, 68, 1493, 68, 1500, 1494, 1499, + 68, 1495, 68, 1501, 68, 1504, 1505, 68, 68, 1502, + 68, 1507, 1730, 68, 68, 1503, 1508, 1509, 68, 1510, + 68, 68, 1506, 1511, 68, 1514, 1512, 1517, 1513, 68, + + 68, 1515, 68, 1516, 1518, 68, 68, 68, 68, 68, + 68, 1521, 1525, 68, 68, 68, 68, 1529, 68, 68, + 1530, 68, 1519, 1520, 1524, 1522, 1527, 68, 1523, 68, + 68, 68, 1532, 1526, 1528, 68, 68, 1531, 68, 1538, + 1535, 68, 1540, 68, 68, 68, 68, 68, 1541, 1533, + 1730, 68, 68, 68, 1542, 1536, 1534, 68, 1537, 1539, + 1543, 1544, 1545, 1546, 68, 68, 1549, 68, 68, 1548, + 68, 1547, 68, 1551, 68, 68, 1550, 1553, 1557, 1552, + 1555, 68, 68, 68, 1559, 68, 68, 68, 1562, 68, + 1563, 68, 1556, 1554, 68, 68, 68, 68, 68, 68, + + 1564, 1560, 1561, 1568, 1567, 68, 1558, 1570, 68, 68, + 1565, 1572, 68, 68, 1566, 68, 1574, 68, 1571, 68, + 1573, 68, 1576, 1569, 68, 1575, 68, 1577, 1579, 68, + 68, 1578, 1580, 68, 1584, 68, 1582, 68, 1581, 68, + 68, 68, 1585, 1589, 1587, 68, 1583, 68, 68, 1592, + 68, 1593, 68, 68, 1598, 68, 1730, 1586, 1595, 1588, + 1594, 1596, 1590, 1591, 68, 1599, 68, 1600, 68, 1597, + 68, 1602, 68, 68, 1603, 1601, 1604, 68, 68, 1606, + 68, 68, 68, 1609, 68, 68, 1607, 1605, 68, 68, + 1608, 68, 68, 1610, 1611, 68, 68, 1612, 68, 68, + + 1620, 68, 68, 1618, 1621, 68, 1622, 68, 1614, 1613, + 1623, 68, 1615, 1616, 68, 1626, 68, 1617, 1624, 1619, + 68, 1625, 68, 1629, 68, 1630, 68, 68, 68, 68, + 68, 68, 68, 1637, 68, 1627, 1634, 1635, 1638, 68, + 1628, 1639, 68, 1632, 1640, 68, 68, 68, 1642, 1636, + 1633, 1643, 1631, 68, 68, 68, 68, 68, 1641, 1645, + 68, 68, 68, 68, 68, 1649, 68, 1644, 68, 68, + 68, 68, 1657, 68, 1646, 1647, 1648, 1651, 68, 1658, + 68, 1653, 1650, 1659, 1654, 1652, 1656, 68, 68, 68, + 1663, 68, 1660, 68, 1655, 68, 1667, 1668, 68, 68, + + 68, 68, 68, 1662, 1665, 1661, 68, 1664, 68, 68, + 1666, 68, 1669, 1670, 68, 68, 68, 1730, 1671, 68, + 1672, 1677, 1674, 68, 1675, 68, 1680, 1673, 1678, 68, + 68, 68, 68, 1676, 1679, 1681, 1682, 1683, 1684, 1685, + 1686, 68, 68, 68, 68, 1690, 68, 68, 1688, 1687, + 68, 68, 68, 68, 68, 68, 1693, 68, 1697, 68, + 1692, 68, 1689, 68, 1698, 1691, 1702, 1696, 68, 1700, + 1703, 1694, 1695, 68, 1699, 68, 1701, 1705, 68, 68, + 68, 68, 68, 68, 68, 68, 1706, 1707, 1709, 1711, + 1712, 68, 1704, 68, 68, 1715, 68, 68, 68, 1718, + + 1708, 1710, 1719, 68, 68, 1721, 68, 1722, 68, 68, + 1713, 1720, 1714, 68, 1724, 1716, 1717, 68, 68, 68, + 1723, 1730, 1725, 1728, 68, 1729, 68, 1730, 1730, 1730, + 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1726, 1727, 40, + 40, 40, 40, 40, 40, 40, 45, 45, 45, 45, + 45, 45, 45, 50, 50, 50, 50, 50, 50, 50, + 56, 56, 56, 56, 56, 56, 56, 61, 61, 61, + 61, 61, 61, 61, 71, 71, 1730, 71, 71, 71, + 71, 124, 124, 1730, 1730, 1730, 124, 124, 126, 126, + 1730, 1730, 126, 1730, 126, 128, 1730, 1730, 1730, 1730, + + 1730, 128, 131, 131, 1730, 1730, 1730, 131, 131, 133, + 1730, 1730, 1730, 1730, 1730, 133, 135, 135, 1730, 135, + 135, 135, 135, 72, 72, 1730, 72, 72, 72, 72, + 13, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, + 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, + 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, + 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730 } ; -static yyconst flex_int16_t yy_chk[3449] = +static yyconst flex_int16_t yy_chk[3471] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1389,7 +1394,7 @@ static yyconst flex_int16_t yy_chk[3449] = 9, 153, 33, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 44, 44, 7, 8, 8, 8, 8, 10, 8, 21, 33, 153, 21, 21, 8, 11, 11, - 11, 11, 11, 11, 1723, 20, 29, 20, 20, 11, + 11, 11, 11, 11, 1736, 20, 29, 20, 20, 11, 20, 29, 24, 21, 25, 20, 24, 28, 11, 12, 12, 12, 12, 12, 12, 74, 22, 22, 74, 25, @@ -1557,208 +1562,210 @@ static yyconst flex_int16_t yy_chk[3449] = 742, 746, 736, 745, 743, 749, 746, 747, 748, 751, 741, 753, 747, 748, 749, 752, 752, 754, 750, 755, - 751, 756, 757, 758, 755, 759, 760, 760, 761, 762, - 765, 753, 763, 764, 766, 758, 769, 777, 764, 766, - 754, 756, 757, 759, 771, 769, 771, 768, 761, 770, - 763, 768, 768, 765, 762, 772, 773, 770, 774, 775, - 776, 773, 774, 777, 778, 780, 779, 781, 782, 772, - 775, 779, 782, 783, 784, 785, 789, 786, 788, 776, - 787, 789, 778, 780, 792, 791, 796, 781, 794, 785, - 791, 783, 786, 784, 790, 787, 793, 788, 795, 800, - 800, 790, 792, 794, 795, 793, 797, 796, 798, 799, - - 803, 797, 804, 798, 799, 802, 802, 804, 805, 806, - 807, 808, 808, 809, 807, 807, 810, 811, 803, 812, - 813, 815, 805, 816, 814, 817, 813, 818, 806, 814, - 820, 819, 809, 821, 823, 810, 822, 822, 812, 823, - 815, 825, 816, 811, 817, 819, 818, 826, 821, 824, - 829, 820, 833, 824, 825, 827, 826, 827, 830, 830, - 831, 827, 832, 834, 836, 831, 832, 849, 834, 858, - 829, 838, 833, 858, 827, 840, 838, 839, 839, 848, - 840, 850, 836, 842, 842, 844, 844, 846, 847, 847, - 846, 851, 849, 852, 848, 850, 851, 853, 853, 854, - - 855, 855, 856, 857, 859, 860, 863, 862, 852, 865, - 860, 864, 864, 866, 857, 868, 869, 867, 869, 854, - 863, 872, 870, 859, 856, 862, 867, 870, 874, 865, - 878, 871, 873, 866, 876, 868, 871, 873, 875, 875, - 876, 872, 874, 879, 879, 880, 881, 882, 887, 885, - 882, 883, 892, 882, 878, 884, 883, 880, 885, 886, - 884, 890, 890, 889, 886, 882, 881, 888, 889, 891, - 888, 892, 893, 887, 894, 895, 896, 897, 900, 894, - 895, 899, 897, 898, 898, 901, 899, 891, 902, 903, - 904, 905, 893, 906, 907, 908, 900, 909, 906, 896, - - 51, 911, 904, 903, 905, 901, 911, 912, 902, 913, - 915, 914, 918, 918, 907, 908, 913, 921, 909, 922, - 914, 919, 912, 914, 919, 920, 915, 923, 922, 924, - 920, 925, 926, 921, 927, 927, 928, 926, 924, 929, - 925, 924, 930, 931, 932, 933, 923, 934, 934, 935, - 936, 50, 929, 937, 937, 936, 928, 931, 938, 939, - 930, 941, 942, 933, 945, 935, 941, 938, 937, 932, - 938, 943, 944, 947, 946, 951, 943, 939, 944, 946, - 942, 952, 948, 951, 945, 948, 947, 953, 954, 959, - 955, 948, 956, 957, 952, 955, 960, 961, 962, 963, - - 960, 964, 961, 962, 963, 953, 965, 954, 956, 959, - 964, 957, 966, 967, 967, 971, 968, 972, 974, 969, - 970, 973, 972, 976, 976, 977, 45, 966, 977, 965, - 968, 969, 970, 973, 971, 975, 974, 978, 978, 980, - 982, 975, 981, 981, 983, 984, 985, 986, 980, 983, - 987, 988, 982, 990, 984, 987, 989, 993, 985, 995, - 988, 992, 986, 991, 991, 994, 992, 997, 990, 996, - 996, 998, 998, 988, 999, 999, 989, 1000, 993, 995, - 1001, 1000, 1005, 1002, 994, 1001, 1002, 997, 1004, 1006, - 1007, 1008, 1008, 1004, 1006, 1009, 1009, 1010, 1011, 1012, - - 1005, 1013, 1010, 1014, 1015, 1016, 1017, 1017, 1018, 1020, - 1011, 1011, 1011, 1019, 1019, 1007, 1022, 1011, 1015, 1012, - 1024, 1013, 1027, 1014, 1025, 1022, 1016, 1023, 1023, 1020, - 1026, 1025, 1028, 1028, 1018, 1024, 1029, 1030, 1032, 1026, - 1033, 1034, 1035, 1032, 1039, 1033, 1036, 1036, 1027, 1035, - 1037, 1038, 1042, 1030, 1040, 1037, 1041, 1043, 1045, 1041, - 1038, 1034, 1029, 1046, 1039, 1047, 1040, 1044, 1044, 1048, - 1042, 1053, 1049, 1045, 1051, 1048, 1050, 1050, 1052, 1052, - 1047, 1049, 1046, 1043, 1054, 1051, 1055, 1056, 1056, 1057, - 1051, 1055, 1053, 1057, 1057, 1058, 1059, 1060, 1054, 1061, - - 1058, 1062, 1063, 1064, 1061, 1065, 1063, 1066, 1069, 1060, - 1067, 1068, 1066, 1062, 1071, 1064, 1068, 1071, 1072, 1072, - 1069, 1074, 1059, 1073, 1073, 1075, 1082, 1078, 1076, 1077, - 1065, 1075, 1067, 1076, 1080, 1077, 1078, 1084, 1082, 1080, - 1086, 1074, 1085, 1085, 1087, 1088, 1089, 1090, 1093, 1084, - 1091, 1090, 1092, 1087, 1096, 1091, 1103, 1092, 1095, 1095, - 1086, 1106, 1093, 1088, 1097, 1089, 1098, 1100, 1100, 1104, - 1095, 1103, 1096, 1097, 1105, 1098, 1107, 1107, 1106, 1105, - 1108, 1111, 1108, 1104, 1109, 1109, 1112, 1114, 1111, 1113, - 1113, 1115, 1116, 1117, 1119, 1118, 1114, 1120, 1121, 1124, - - 1128, 1124, 1125, 1123, 1116, 1117, 1112, 1118, 1123, 1119, - 1126, 1130, 1115, 1135, 1128, 1129, 1129, 1120, 1121, 1126, - 1125, 1131, 1132, 1133, 1132, 1134, 1131, 1136, 1133, 1137, - 1134, 1135, 1140, 1138, 1137, 1141, 40, 1130, 1138, 1142, - 1142, 1143, 1144, 1145, 1147, 1146, 1147, 1136, 1145, 1141, - 1146, 1140, 1148, 1150, 1149, 1150, 1143, 1152, 1151, 1157, - 1154, 1158, 1144, 1149, 1148, 1154, 1149, 1151, 1155, 1152, - 1159, 1161, 1157, 1155, 1163, 1164, 1165, 1161, 1166, 1168, - 1163, 1158, 1167, 1167, 1169, 1169, 1159, 1166, 1168, 1170, - 1164, 1171, 1172, 1173, 1175, 1171, 1179, 1172, 1174, 1174, - - 1183, 1165, 1175, 1178, 1178, 1179, 1173, 1182, 1170, 1180, - 1180, 1181, 1181, 1185, 1185, 1184, 1187, 1188, 1183, 1182, - 1184, 1189, 1188, 1190, 1191, 1192, 1193, 1194, 1194, 1191, - 1195, 1196, 1197, 1198, 1195, 1199, 1202, 1197, 1190, 1201, - 1204, 1187, 1193, 1192, 1189, 1203, 1196, 1206, 1208, 1208, - 1209, 1205, 1210, 1209, 1199, 1211, 1299, 1212, 1299, 1198, - 1202, 1204, 1201, 1205, 1203, 1210, 1213, 1213, 1206, 1211, - 1212, 1214, 1214, 1215, 1215, 1216, 1217, 1217, 1218, 1218, - 1219, 1219, 1220, 1221, 1221, 1222, 1222, 1223, 1216, 1225, - 1226, 1226, 1227, 1230, 1225, 1228, 1228, 1229, 1234, 1230, - - 1231, 1220, 1237, 1231, 1232, 1232, 1223, 1233, 1233, 1235, - 1235, 1227, 1238, 1241, 1239, 1229, 1243, 1234, 1239, 1246, - 1232, 1240, 1240, 1242, 1242, 1237, 1245, 1238, 1244, 1244, - 1248, 1246, 1241, 1247, 1249, 1245, 1250, 1252, 1247, 1251, - 1253, 1254, 1243, 1256, 1251, 1255, 1259, 1249, 1256, 1253, - 1254, 1261, 1252, 14, 1257, 1248, 1266, 1250, 1257, 1255, - 1261, 1262, 1262, 1263, 1264, 1264, 1259, 1268, 1263, 1270, - 1271, 1266, 1270, 1264, 1272, 1271, 1273, 1273, 1276, 1268, - 1275, 1275, 1277, 1277, 1278, 1279, 1280, 1281, 1281, 1283, - 1285, 1285, 1276, 1283, 1272, 1284, 1278, 1286, 1284, 1279, - - 1287, 1288, 1286, 1289, 1290, 1280, 1291, 1289, 1292, 1295, - 1293, 1291, 1296, 1292, 1297, 1288, 1293, 1296, 1298, 1297, - 1287, 1302, 1302, 1316, 1290, 1295, 1298, 1306, 1306, 1309, - 1310, 1310, 1312, 1312, 1309, 1314, 1315, 1315, 1317, 1316, - 1314, 1318, 1320, 1320, 1322, 1323, 1318, 1324, 1328, 1322, - 1326, 1326, 1329, 1328, 1329, 1330, 1331, 1332, 1332, 1335, - 1317, 1331, 1324, 1323, 1333, 1333, 1334, 1334, 1336, 1330, - 1337, 1335, 1338, 1339, 1340, 1341, 1342, 1342, 1343, 1340, - 1344, 1345, 1337, 1346, 1338, 1339, 1336, 1343, 1347, 1348, - 1349, 1356, 1350, 1351, 1358, 1341, 1346, 1350, 1351, 1352, - - 1352, 1345, 1357, 1348, 1353, 1353, 1344, 1359, 1349, 1360, - 1361, 1356, 1347, 1362, 1363, 1363, 1358, 1366, 1360, 1368, - 1357, 1365, 1365, 1369, 1370, 1367, 1366, 1359, 1371, 1372, - 1361, 1362, 1367, 1374, 1368, 1373, 1373, 1375, 1374, 1376, - 1377, 1369, 1370, 1378, 1371, 1380, 1383, 1384, 1372, 1387, - 1384, 1385, 1385, 1386, 1376, 1375, 1389, 1390, 1390, 1377, - 1389, 1391, 1394, 1378, 1380, 1401, 1383, 1387, 1386, 1393, - 1393, 1395, 1395, 1402, 1391, 1396, 1396, 1400, 1400, 1403, - 1404, 1394, 1402, 1405, 1403, 1404, 1406, 1401, 1408, 1411, - 1409, 1410, 1412, 1412, 1406, 1409, 1410, 1413, 1413, 1423, - - 1414, 13, 1405, 1408, 1411, 1414, 1415, 1415, 1416, 1416, - 1419, 1422, 1420, 1421, 1423, 1419, 1420, 1424, 1421, 1425, - 1422, 1426, 1429, 1428, 1425, 1424, 1428, 1431, 1430, 1432, - 1433, 1433, 1436, 1426, 1434, 1437, 1431, 1438, 1432, 1440, - 1429, 1430, 1442, 1434, 1439, 1439, 1441, 1441, 1440, 1443, - 1442, 1436, 1445, 1446, 1443, 1437, 1438, 1447, 1449, 1449, - 1454, 1445, 1451, 1451, 1455, 1455, 1446, 1456, 1457, 1457, - 1456, 1460, 1447, 1458, 1458, 1459, 1459, 1461, 1462, 1467, - 1454, 1463, 1463, 1462, 1464, 1467, 1470, 1471, 1464, 1460, - 1472, 1461, 1471, 1473, 1477, 1474, 1475, 1475, 1476, 1478, - - 1479, 1479, 1477, 1470, 1470, 1480, 1480, 1481, 1472, 1474, - 1482, 1483, 1484, 1473, 1486, 1482, 1485, 1476, 1478, 1487, - 1494, 1489, 1491, 1481, 1489, 1485, 1492, 1492, 1493, 1494, - 1495, 1483, 1493, 1496, 1486, 1498, 1499, 1500, 1484, 1487, - 1491, 1504, 1496, 1495, 1498, 1506, 1504, 1508, 1499, 1505, - 1505, 1509, 1508, 1510, 1506, 1512, 1511, 1514, 1513, 1517, - 1509, 1511, 1500, 1513, 1515, 1515, 1518, 1519, 1519, 1522, - 1521, 1520, 1523, 1512, 1510, 1520, 1524, 1526, 1517, 1521, - 1528, 1518, 1514, 1525, 1524, 1522, 1527, 1527, 1525, 1529, - 1529, 1523, 1530, 1532, 1532, 1533, 1535, 1530, 1536, 1528, - - 1534, 1534, 1539, 1526, 1537, 1537, 1538, 1538, 1541, 0, - 1535, 1540, 1542, 1542, 1543, 1533, 1545, 1544, 1551, 1546, - 1536, 1539, 1544, 1540, 1546, 1547, 1543, 1554, 1541, 1548, - 1548, 1550, 1550, 1553, 1555, 1545, 1586, 1551, 1553, 1555, - 1586, 1554, 1547, 1547, 1556, 1556, 1557, 1557, 1558, 1558, - 1559, 1561, 1561, 1563, 1563, 1559, 1565, 1565, 1566, 1567, - 1567, 1568, 1571, 1572, 1572, 1576, 1568, 1566, 1573, 1575, - 1571, 1577, 1578, 1573, 1575, 1579, 1580, 1583, 1584, 1584, - 1594, 1580, 1592, 1576, 1585, 1585, 1592, 1577, 1597, 1578, - 1578, 1590, 1590, 1599, 1594, 1601, 1579, 1583, 1596, 1596, - - 1600, 1600, 1602, 1597, 1603, 1604, 0, 1605, 1606, 0, - 1604, 1599, 1605, 1607, 1607, 1610, 1610, 1602, 1612, 1612, - 1601, 1613, 1613, 1615, 1619, 1603, 1618, 1606, 1616, 1616, - 1621, 1618, 1620, 1622, 1623, 1615, 1628, 1620, 1619, 1629, - 1628, 1630, 1631, 1634, 1632, 1635, 1637, 1633, 1640, 1621, - 1623, 1622, 1636, 1636, 1630, 1637, 1641, 1646, 0, 1629, - 1635, 1631, 1632, 1633, 1638, 1639, 1643, 1642, 1634, 1638, - 1639, 1641, 1642, 1640, 1645, 1650, 1646, 1647, 1648, 1649, - 1643, 1651, 1647, 1648, 1652, 1653, 1654, 1656, 1650, 1645, - 1655, 1657, 1658, 1649, 1659, 0, 1657, 1658, 1652, 1654, - - 1651, 1660, 1660, 1655, 1653, 1661, 1656, 1662, 1664, 1663, - 1661, 1665, 1662, 1659, 1663, 1667, 1665, 1666, 1666, 1668, - 1669, 1670, 1667, 1671, 1672, 1674, 1670, 1664, 1675, 1676, - 1674, 1677, 1678, 1678, 1680, 1679, 1683, 1672, 1668, 1669, - 1679, 1683, 1671, 1685, 1677, 1681, 1681, 1675, 1676, 1682, - 1682, 1684, 1687, 1680, 1686, 1686, 1688, 1689, 1684, 1687, - 1690, 1691, 1685, 1688, 1693, 1690, 1694, 1695, 1696, 1693, - 1698, 1694, 1697, 1697, 1699, 0, 1689, 1700, 1700, 1711, - 1691, 1701, 1701, 1702, 1703, 1703, 1695, 1696, 1705, 1698, - 1702, 1704, 1704, 1699, 1707, 1705, 1710, 1712, 1711, 1707, - - 0, 1710, 1713, 1713, 1714, 1714, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1712, 1718, 1718, 1718, - 1718, 1718, 1718, 1718, 1719, 1719, 1719, 1719, 1719, 1719, - 1719, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1721, 1721, - 1721, 1721, 1721, 1721, 1721, 1722, 1722, 1722, 1722, 1722, - 1722, 1722, 1724, 1724, 0, 1724, 1724, 1724, 1724, 1725, - 1725, 0, 0, 0, 1725, 1725, 1726, 1726, 0, 0, - 1726, 0, 1726, 1727, 0, 0, 0, 0, 0, 1727, - 1728, 1728, 0, 0, 0, 1728, 1728, 1729, 0, 0, - 0, 0, 0, 1729, 1730, 1730, 0, 1730, 1730, 1730, - - 1730, 1731, 1731, 0, 1731, 1731, 1731, 1731, 1717, 1717, - 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, - 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, - 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, - 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717 + 751, 756, 757, 761, 755, 758, 759, 760, 760, 762, + 763, 753, 765, 764, 766, 756, 51, 758, 764, 766, + 754, 756, 757, 761, 759, 768, 777, 769, 763, 768, + 768, 770, 772, 775, 762, 765, 769, 773, 771, 770, + 771, 774, 773, 776, 775, 774, 772, 778, 779, 780, + 781, 782, 777, 779, 783, 782, 784, 785, 786, 787, + 788, 789, 776, 791, 792, 778, 789, 780, 791, 790, + 781, 785, 783, 786, 787, 784, 790, 793, 794, 788, + 796, 795, 792, 797, 798, 799, 793, 795, 797, 798, + + 799, 800, 800, 794, 802, 802, 803, 804, 805, 806, + 807, 796, 804, 809, 807, 807, 808, 808, 810, 811, + 812, 813, 805, 815, 803, 814, 819, 813, 806, 816, + 814, 817, 809, 818, 820, 846, 821, 810, 846, 812, + 819, 823, 815, 822, 822, 811, 823, 825, 816, 824, + 817, 821, 818, 824, 826, 820, 827, 829, 827, 833, + 825, 831, 827, 826, 830, 830, 831, 832, 834, 836, + 849, 832, 850, 834, 858, 827, 838, 829, 858, 833, + 840, 838, 839, 839, 848, 840, 850, 836, 842, 842, + 844, 844, 847, 847, 852, 849, 851, 853, 853, 848, + + 854, 851, 855, 855, 856, 857, 859, 860, 863, 852, + 862, 866, 860, 864, 864, 867, 857, 869, 865, 871, + 854, 868, 863, 865, 871, 859, 856, 870, 862, 870, + 868, 866, 873, 872, 874, 867, 875, 869, 872, 874, + 876, 876, 877, 879, 880, 880, 881, 888, 877, 882, + 875, 50, 873, 883, 886, 884, 883, 885, 881, 883, + 884, 887, 885, 886, 892, 889, 887, 879, 889, 882, + 890, 883, 888, 891, 891, 890, 893, 894, 895, 896, + 897, 898, 892, 895, 896, 900, 898, 899, 899, 901, + 900, 902, 903, 905, 904, 893, 906, 894, 908, 907, + + 909, 910, 913, 897, 907, 905, 914, 901, 904, 906, + 912, 902, 903, 914, 915, 912, 916, 913, 908, 922, + 909, 924, 910, 915, 919, 919, 915, 920, 921, 923, + 920, 929, 916, 921, 925, 922, 926, 927, 923, 930, + 924, 931, 927, 925, 932, 926, 925, 928, 928, 933, + 934, 929, 930, 935, 935, 936, 937, 939, 932, 931, + 940, 937, 938, 938, 943, 942, 939, 944, 934, 939, + 942, 936, 944, 945, 933, 946, 947, 938, 940, 945, + 948, 947, 943, 949, 953, 954, 949, 955, 952, 956, + 958, 957, 949, 948, 956, 946, 952, 953, 960, 966, + + 961, 969, 967, 954, 961, 962, 955, 957, 958, 963, + 962, 964, 965, 971, 963, 969, 964, 967, 960, 968, + 968, 965, 966, 970, 972, 971, 973, 974, 975, 976, + 970, 977, 974, 978, 978, 979, 972, 977, 979, 982, + 975, 980, 980, 983, 983, 973, 984, 976, 982, 985, + 986, 987, 988, 990, 985, 989, 991, 992, 984, 986, + 989, 994, 990, 987, 993, 993, 994, 988, 995, 996, + 997, 999, 992, 998, 998, 990, 991, 1000, 1000, 1001, + 1001, 1002, 1003, 1004, 1007, 1002, 1004, 1003, 996, 995, + 997, 999, 1006, 1008, 1009, 1010, 1010, 1006, 1008, 1011, + + 1011, 1012, 1007, 1013, 1014, 1015, 1012, 1016, 1018, 1017, + 1019, 1019, 1020, 1021, 1021, 1013, 1013, 1013, 1026, 1009, + 1022, 1024, 1013, 1017, 1014, 1015, 1029, 1016, 1027, 1018, + 1024, 1025, 1025, 1026, 1028, 1027, 1030, 1030, 1020, 1031, + 1022, 1032, 1034, 1028, 1035, 1040, 1036, 1034, 1037, 1035, + 1038, 1038, 1029, 1039, 1040, 1037, 1041, 1032, 1039, 1042, + 1043, 1044, 1045, 1043, 1048, 1031, 1036, 1046, 1046, 1047, + 1049, 1042, 1050, 1051, 1052, 1052, 1041, 1055, 1050, 1044, + 1053, 1056, 1051, 1048, 1047, 1049, 1054, 1054, 1045, 1057, + 1061, 1053, 1058, 1058, 1057, 1056, 1053, 1059, 1055, 1060, + + 1062, 1059, 1059, 1063, 1060, 1064, 1065, 1066, 1063, 1067, + 1065, 1069, 1062, 1068, 1071, 1070, 1061, 1064, 1068, 1066, + 1070, 1073, 1074, 1074, 1073, 1077, 1071, 1075, 1075, 1076, + 1076, 1078, 1080, 1069, 1067, 1079, 1083, 1078, 1080, 1081, + 1079, 1083, 1085, 1087, 1089, 1077, 1088, 1088, 1081, 1090, + 1091, 1092, 1093, 1096, 1085, 1087, 1093, 1094, 1090, 1099, + 1095, 1106, 1094, 45, 1089, 1095, 1100, 1096, 1091, 1101, + 1092, 1098, 1098, 1103, 1103, 1100, 1106, 1099, 1101, 1107, + 1108, 1109, 1111, 1098, 1111, 1108, 1110, 1110, 1112, 1112, + 1114, 1115, 1117, 1107, 1116, 1116, 1118, 1114, 1109, 40, + + 1119, 1117, 1120, 1121, 1122, 1123, 1124, 1127, 1126, 1127, + 1128, 1115, 1119, 1126, 1120, 1121, 1131, 1118, 1129, 1122, + 1132, 1132, 1133, 1138, 1134, 1123, 1124, 1129, 1128, 1134, + 1131, 1135, 1136, 1135, 1137, 1139, 1144, 1136, 1140, 1137, + 1141, 1138, 1143, 1140, 1146, 1141, 1145, 1145, 1133, 1147, + 1144, 1148, 1149, 1151, 1152, 1139, 1148, 1149, 1150, 1146, + 1150, 1143, 1153, 1152, 1153, 1151, 1152, 1154, 1155, 1147, + 1157, 1160, 1158, 1161, 1162, 1157, 1154, 1158, 1168, 1164, + 1155, 1166, 1167, 1169, 1160, 1164, 1171, 1166, 1170, 1170, + 1162, 1173, 1169, 1161, 1176, 1171, 1174, 1167, 1172, 1172, + + 1174, 1175, 1179, 1168, 1177, 1177, 1175, 1176, 1178, 1183, + 1173, 1182, 1182, 1184, 1184, 1186, 1178, 1187, 1183, 1185, + 1185, 1188, 1179, 1189, 1189, 1191, 1188, 1186, 1192, 1193, + 1194, 1195, 1197, 1192, 1200, 1187, 1195, 1196, 1198, 1198, + 1199, 1201, 1202, 1203, 1199, 1194, 1201, 1205, 1197, 1200, + 1191, 1206, 1193, 1207, 1209, 1196, 1208, 1210, 1212, 1212, + 1213, 1214, 1203, 1213, 1229, 1215, 1209, 1216, 1202, 1229, + 1205, 1304, 1207, 1304, 1214, 1206, 1220, 1208, 1210, 1215, + 1216, 1217, 1217, 1218, 1218, 1219, 1219, 1221, 1221, 1220, + 1222, 1222, 1223, 1223, 1224, 1225, 1225, 1226, 1226, 1227, + + 1230, 1230, 1231, 1232, 1232, 1233, 1234, 1235, 1236, 1236, + 1235, 1238, 1234, 1224, 1237, 1237, 1239, 1239, 1227, 1241, + 1242, 1231, 1243, 1233, 1236, 1245, 1243, 1244, 1244, 1247, + 1238, 1246, 1246, 1248, 1248, 1242, 1249, 1250, 1251, 1252, + 1253, 1254, 1241, 1251, 1245, 1249, 1255, 1257, 1256, 1250, + 1258, 1255, 1259, 1253, 1261, 1247, 1257, 1263, 1261, 1258, + 1260, 1265, 1254, 1256, 1252, 1260, 1259, 1266, 1266, 1267, + 1265, 1268, 1268, 1270, 1267, 1271, 1275, 1263, 1273, 1275, + 1268, 1276, 1277, 1281, 1271, 1285, 1276, 1283, 1270, 1284, + 1273, 1278, 1278, 1280, 1280, 1282, 1282, 1281, 1292, 1283, + + 1286, 1286, 1277, 1284, 1285, 1288, 1293, 1289, 1291, 1288, + 1289, 1290, 1290, 1291, 1295, 1294, 1296, 1297, 1292, 1294, + 1293, 1296, 1297, 1298, 1300, 1301, 1302, 1303, 1322, 1298, + 1301, 1302, 1307, 1307, 1295, 1303, 1311, 1311, 1314, 1321, + 1300, 1315, 1315, 1314, 1317, 1317, 1319, 1320, 1320, 1323, + 1322, 1319, 1325, 1325, 1323, 1321, 1327, 1328, 1329, 1331, + 1331, 1327, 1333, 1334, 1335, 1334, 1336, 1333, 1337, 1337, + 1340, 1336, 1341, 1329, 1342, 1328, 1338, 1338, 1335, 1339, + 1339, 1343, 1340, 1344, 1345, 1346, 1342, 1347, 1347, 1345, + 1341, 1348, 1349, 1343, 1350, 1344, 1351, 1352, 1353, 1354, + + 1348, 1355, 1356, 1357, 1362, 1346, 1364, 1356, 1357, 1351, + 1358, 1358, 1353, 1363, 1350, 1359, 1359, 1354, 1349, 1365, + 1366, 1352, 1367, 1355, 1362, 1368, 1369, 1369, 1364, 1366, + 1373, 1363, 1371, 1371, 1374, 1372, 1375, 1373, 1376, 1365, + 1378, 1377, 1367, 1368, 1372, 1379, 1379, 1380, 1381, 1374, + 1382, 1383, 1380, 1384, 1375, 1386, 1376, 1377, 1389, 1378, + 1390, 1391, 1391, 1390, 1392, 1382, 1381, 1393, 1395, 1397, + 1383, 1400, 1395, 1384, 1386, 1396, 1396, 1407, 1389, 1392, + 1399, 1399, 1397, 1401, 1401, 1393, 1402, 1402, 1406, 1406, + 1400, 1408, 1409, 1410, 1411, 1412, 1414, 1409, 1410, 1407, + + 1408, 1415, 1416, 1412, 1417, 1420, 1415, 1416, 1418, 1418, + 1420, 1414, 1421, 1411, 1419, 1419, 1429, 1421, 1430, 1417, + 1422, 1422, 1423, 1423, 1426, 1429, 1427, 1428, 1431, 1426, + 1427, 1433, 1428, 1430, 1432, 1435, 1431, 1436, 1435, 1432, + 1437, 1438, 1439, 1433, 1440, 1440, 1443, 1441, 1444, 14, + 1438, 1439, 1445, 1437, 1447, 1436, 1441, 1446, 1446, 1448, + 1448, 1449, 1450, 1447, 1452, 1443, 1453, 1450, 1444, 1449, + 1454, 1445, 1461, 1452, 1456, 1456, 1458, 1458, 1467, 1453, + 1462, 1462, 13, 1463, 1468, 1454, 1463, 1464, 1464, 1465, + 1465, 1474, 1461, 1466, 1466, 1469, 1467, 1474, 1468, 1471, + + 1469, 1470, 1470, 1471, 1475, 1478, 1479, 1480, 1481, 1475, + 1482, 1479, 1483, 1483, 1484, 1486, 1487, 1487, 1485, 1488, + 1488, 1489, 1478, 1478, 1482, 1480, 1485, 1490, 1481, 1491, + 1492, 1493, 1490, 1484, 1486, 1494, 1497, 1489, 1495, 1497, + 1493, 1499, 1500, 1500, 1501, 1502, 1508, 1503, 1501, 1491, + 0, 1507, 1504, 1506, 1502, 1494, 1492, 1518, 1495, 1499, + 1503, 1504, 1506, 1507, 1512, 1513, 1513, 1514, 1516, 1512, + 1517, 1508, 1519, 1516, 1521, 1520, 1514, 1518, 1522, 1517, + 1520, 1523, 1526, 1522, 1524, 1524, 1529, 1527, 1528, 1528, + 1529, 1530, 1521, 1519, 1531, 1532, 1533, 1535, 1534, 1537, + + 1530, 1526, 1527, 1534, 1533, 1542, 1523, 1536, 1536, 1545, + 1531, 1538, 1538, 1544, 1532, 1539, 1541, 1541, 1537, 1548, + 1539, 1543, 1543, 1535, 1549, 1542, 1550, 1544, 1546, 1546, + 1552, 1545, 1547, 1547, 1551, 1551, 1549, 1553, 1548, 1554, + 1555, 1561, 1552, 1556, 1554, 1557, 1550, 1564, 1556, 1558, + 1558, 1560, 1560, 1563, 1566, 1566, 0, 1553, 1563, 1555, + 1561, 1564, 1557, 1557, 1565, 1567, 1567, 1568, 1568, 1565, + 1569, 1571, 1571, 1573, 1573, 1569, 1575, 1575, 1576, 1577, + 1577, 1578, 1581, 1582, 1582, 1586, 1578, 1576, 1583, 1585, + 1581, 1587, 1588, 1583, 1585, 1589, 1590, 1586, 1591, 1594, + + 1595, 1595, 1597, 1591, 1596, 1596, 1597, 1605, 1588, 1587, + 1601, 1601, 1589, 1589, 1603, 1607, 1607, 1590, 1603, 1594, + 1608, 1605, 1610, 1611, 1611, 1612, 1612, 1613, 1614, 1615, + 1618, 1616, 1617, 1619, 1619, 1608, 1616, 1617, 1622, 1622, + 1610, 1624, 1624, 1614, 1625, 1625, 1627, 1628, 1628, 1618, + 1615, 1631, 1613, 1632, 1633, 1634, 1631, 1635, 1627, 1633, + 1636, 1641, 1642, 1645, 1643, 1641, 1644, 1632, 1646, 1647, + 1650, 1648, 1649, 1649, 1634, 1635, 1636, 1643, 1651, 1650, + 1653, 1645, 1642, 1651, 1646, 1644, 1648, 1652, 1654, 1658, + 1655, 1659, 1652, 1656, 1647, 1655, 1660, 1661, 1662, 1664, + + 1663, 1660, 1661, 1654, 1658, 1653, 1665, 1656, 1666, 1667, + 1659, 1668, 1662, 1663, 1669, 1672, 1670, 0, 1664, 1677, + 1665, 1670, 1667, 1671, 1668, 1673, 1673, 1666, 1671, 1681, + 1674, 1675, 1676, 1669, 1672, 1674, 1675, 1676, 1677, 1678, + 1679, 1679, 1680, 1682, 1678, 1683, 1684, 1685, 1681, 1680, + 1683, 1687, 1688, 1689, 1690, 1693, 1687, 1691, 1691, 1692, + 1685, 1696, 1682, 1697, 1692, 1684, 1696, 1690, 1694, 1694, + 1697, 1688, 1689, 1698, 1693, 1695, 1695, 1699, 1699, 1700, + 1701, 1702, 1704, 1703, 1706, 1707, 1700, 1701, 1703, 1706, + 1707, 1708, 1698, 1709, 1710, 1710, 1711, 1712, 1713, 1713, + + 1702, 1704, 1714, 1714, 1715, 1716, 1716, 1717, 1717, 1720, + 1708, 1715, 1709, 1718, 1720, 1711, 1712, 1723, 1724, 1725, + 1718, 0, 1723, 1726, 1726, 1727, 1727, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1724, 1725, 1731, + 1731, 1731, 1731, 1731, 1731, 1731, 1732, 1732, 1732, 1732, + 1732, 1732, 1732, 1733, 1733, 1733, 1733, 1733, 1733, 1733, + 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1735, 1735, 1735, + 1735, 1735, 1735, 1735, 1737, 1737, 0, 1737, 1737, 1737, + 1737, 1738, 1738, 0, 0, 0, 1738, 1738, 1739, 1739, + 0, 0, 1739, 0, 1739, 1740, 0, 0, 0, 0, + + 0, 1740, 1741, 1741, 0, 0, 0, 1741, 1741, 1742, + 0, 0, 0, 0, 0, 1742, 1743, 1743, 0, 1743, + 1743, 1743, 1743, 1744, 1744, 0, 1744, 1744, 1744, 1744, + 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, + 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, + 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, + 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730 } ; static yy_state_type yy_last_accepting_state; @@ -1959,7 +1966,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1961 "" +#line 1968 "" #define INITIAL 0 #define quotedstring 1 @@ -2146,7 +2153,7 @@ YY_DECL #line 197 "./util/configlexer.lex" -#line 2148 "" +#line 2155 "" if ( !(yy_init) ) { @@ -2205,13 +2212,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 >= 1718 ) + if ( yy_current_state >= 1731 ) 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] != 3409 ); + while ( yy_base[yy_current_state] != 3431 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2451,595 +2458,600 @@ YY_RULE_SETUP case 43: YY_RULE_SETUP #line 243 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MIN_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } YY_BREAK case 44: YY_RULE_SETUP #line 244 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_HOST_TTL) } +{ YDVAR(1, VAR_CACHE_MIN_TTL) } YY_BREAK case 45: YY_RULE_SETUP #line 245 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_LAME_TTL) } +{ YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 46: YY_RULE_SETUP #line 246 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } +{ YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 47: YY_RULE_SETUP #line 247 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } +{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 48: YY_RULE_SETUP #line 248 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } +{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 49: YY_RULE_SETUP #line 249 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } +{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 50: YY_RULE_SETUP #line 250 "./util/configlexer.lex" -{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } +{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } YY_BREAK case 51: YY_RULE_SETUP #line 251 "./util/configlexer.lex" -{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } +{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 52: YY_RULE_SETUP #line 252 "./util/configlexer.lex" -{ YDVAR(1, VAR_DELAY_CLOSE) } +{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 53: YY_RULE_SETUP #line 253 "./util/configlexer.lex" -{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } +{ YDVAR(1, VAR_DELAY_CLOSE) } YY_BREAK case 54: YY_RULE_SETUP #line 254 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } +{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 55: YY_RULE_SETUP #line 255 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } +{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 56: YY_RULE_SETUP #line 256 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_GLUE) } +{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 57: YY_RULE_SETUP #line 257 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } +{ YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 58: YY_RULE_SETUP #line 258 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } +{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } YY_BREAK case 59: YY_RULE_SETUP #line 259 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } +{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } YY_BREAK case 60: YY_RULE_SETUP #line 260 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 61: YY_RULE_SETUP #line 261 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } +{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } YY_BREAK case 62: YY_RULE_SETUP #line 262 "./util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 63: YY_RULE_SETUP #line 263 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } +{ YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 64: YY_RULE_SETUP #line 264 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_ADDRESS) } +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 65: YY_RULE_SETUP #line 265 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_DOMAIN) } +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 66: YY_RULE_SETUP #line 266 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH_KEY) } +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 67: YY_RULE_SETUP #line 267 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH) } +{ YDVAR(1, VAR_PREFETCH_KEY) } YY_BREAK case 68: YY_RULE_SETUP #line 268 "./util/configlexer.lex" -{ YDVAR(0, VAR_STUB_ZONE) } +{ YDVAR(1, VAR_PREFETCH) } YY_BREAK case 69: YY_RULE_SETUP #line 269 "./util/configlexer.lex" -{ YDVAR(1, VAR_NAME) } +{ YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 70: YY_RULE_SETUP #line 270 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_ADDR) } +{ YDVAR(1, VAR_NAME) } YY_BREAK case 71: YY_RULE_SETUP #line 271 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_HOST) } +{ YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 72: YY_RULE_SETUP #line 272 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_PRIME) } +{ YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 73: YY_RULE_SETUP #line 273 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_FIRST) } +{ YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 74: YY_RULE_SETUP #line 274 "./util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_FIRST) } YY_BREAK case 75: YY_RULE_SETUP #line 275 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 76: YY_RULE_SETUP #line 276 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 77: YY_RULE_SETUP #line 277 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_FIRST) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 78: YY_RULE_SETUP #line 278 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 79: YY_RULE_SETUP #line 279 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 80: YY_RULE_SETUP #line 280 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 81: YY_RULE_SETUP #line 281 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 82: YY_RULE_SETUP #line 282 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 83: YY_RULE_SETUP #line 283 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 84: YY_RULE_SETUP #line 284 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 85: YY_RULE_SETUP #line 285 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 86: YY_RULE_SETUP #line 286 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 87: YY_RULE_SETUP #line 287 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 88: YY_RULE_SETUP #line 288 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 89: YY_RULE_SETUP #line 289 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 90: YY_RULE_SETUP #line 290 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 91: YY_RULE_SETUP #line 291 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 92: YY_RULE_SETUP #line 292 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 93: YY_RULE_SETUP #line 293 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 94: YY_RULE_SETUP #line 294 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 95: YY_RULE_SETUP #line 295 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 96: YY_RULE_SETUP #line 296 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 97: YY_RULE_SETUP #line 297 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 98: YY_RULE_SETUP #line 298 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 99: YY_RULE_SETUP #line 299 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 100: YY_RULE_SETUP #line 300 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 101: YY_RULE_SETUP #line 301 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 102: YY_RULE_SETUP #line 302 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 103: YY_RULE_SETUP #line 303 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 104: YY_RULE_SETUP -#line 305 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 304 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 105: YY_RULE_SETUP #line 306 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 106: YY_RULE_SETUP #line 307 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 107: YY_RULE_SETUP #line 308 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 108: YY_RULE_SETUP #line 309 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 109: YY_RULE_SETUP #line 310 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 110: YY_RULE_SETUP #line 311 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 111: YY_RULE_SETUP #line 312 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 112: YY_RULE_SETUP #line 313 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 113: YY_RULE_SETUP #line 314 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 114: YY_RULE_SETUP #line 315 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 115: YY_RULE_SETUP #line 316 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 116: YY_RULE_SETUP #line 317 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 117: YY_RULE_SETUP #line 318 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 118: YY_RULE_SETUP #line 319 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 119: YY_RULE_SETUP #line 320 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 120: YY_RULE_SETUP #line 321 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 121: YY_RULE_SETUP #line 322 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 122: YY_RULE_SETUP #line 323 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 123: YY_RULE_SETUP #line 324 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 124: YY_RULE_SETUP #line 325 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 125: YY_RULE_SETUP #line 326 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 126: YY_RULE_SETUP #line 327 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 127: YY_RULE_SETUP #line 328 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 128: YY_RULE_SETUP #line 329 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 129: YY_RULE_SETUP #line 330 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 130: YY_RULE_SETUP #line 331 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 131: YY_RULE_SETUP #line 332 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 132: YY_RULE_SETUP #line 333 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 133: YY_RULE_SETUP #line 334 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 134: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 135: YY_RULE_SETUP #line 336 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 136: YY_RULE_SETUP #line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 137: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 138: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 139: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 140: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 141: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 142: YY_RULE_SETUP -#line 344 "./util/configlexer.lex" +#line 343 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 143: YY_RULE_SETUP -#line 346 "./util/configlexer.lex" +#line 345 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 144: YY_RULE_SETUP -#line 348 "./util/configlexer.lex" +#line 347 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 145: YY_RULE_SETUP -#line 350 "./util/configlexer.lex" +#line 349 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 146: YY_RULE_SETUP -#line 352 "./util/configlexer.lex" +#line 351 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 147: YY_RULE_SETUP -#line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +#line 353 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 148: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 149: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 150: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 151: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 152: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 153: -/* rule 153 can match eol */ YY_RULE_SETUP #line 360 "./util/configlexer.lex" +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } + YY_BREAK +case 154: +/* rule 154 can match eol */ +YY_RULE_SETUP +#line 361 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 154: +case 155: YY_RULE_SETUP -#line 363 "./util/configlexer.lex" +#line 364 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 364 "./util/configlexer.lex" +#line 365 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP -#line 369 "./util/configlexer.lex" +#line 370 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 156: -/* rule 156 can match eol */ +case 157: +/* rule 157 can match eol */ YY_RULE_SETUP -#line 370 "./util/configlexer.lex" +#line 371 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 372 "./util/configlexer.lex" +#line 373 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3052,34 +3064,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 158: +case 159: YY_RULE_SETUP -#line 384 "./util/configlexer.lex" +#line 385 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 385 "./util/configlexer.lex" +#line 386 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 390 "./util/configlexer.lex" +#line 391 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 160: -/* rule 160 can match eol */ +case 161: +/* rule 161 can match eol */ YY_RULE_SETUP -#line 391 "./util/configlexer.lex" +#line 392 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 393 "./util/configlexer.lex" +#line 394 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3092,38 +3104,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 162: +case 163: YY_RULE_SETUP -#line 405 "./util/configlexer.lex" +#line 406 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 407 "./util/configlexer.lex" +#line 408 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 163: -YY_RULE_SETUP -#line 411 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 164: -/* rule 164 can match eol */ YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 165: +/* rule 165 can match eol */ YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 166: YY_RULE_SETUP #line 414 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 167: +YY_RULE_SETUP +#line 415 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -3131,27 +3143,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 419 "./util/configlexer.lex" +#line 420 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 423 "./util/configlexer.lex" +#line 424 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 168: -/* rule 168 can match eol */ +case 169: +/* rule 169 can match eol */ YY_RULE_SETUP -#line 424 "./util/configlexer.lex" +#line 425 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 426 "./util/configlexer.lex" +#line 427 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -3161,7 +3173,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 432 "./util/configlexer.lex" +#line 433 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -3173,33 +3185,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 443 "./util/configlexer.lex" +#line 444 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 447 "./util/configlexer.lex" +#line 448 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 451 "./util/configlexer.lex" +#line 452 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 455 "./util/configlexer.lex" +#line 456 "./util/configlexer.lex" ECHO; YY_BREAK -#line 3201 "" +#line 3213 "" case YY_END_OF_BUFFER: { @@ -3489,7 +3501,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 >= 1718 ) + if ( yy_current_state >= 1731 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3517,11 +3529,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 >= 1718 ) + if ( yy_current_state >= 1731 ) 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 == 1717); + yy_is_jam = (yy_current_state == 1730); return yy_is_jam ? 0 : yy_current_state; } @@ -4154,7 +4166,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 455 "./util/configlexer.lex" +#line 456 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 0edb7bb45..5622f2170 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -240,6 +240,7 @@ msg-cache-slabs{COLON} { YDVAR(1, VAR_MSG_CACHE_SLABS) } rrset-cache-size{COLON} { YDVAR(1, VAR_RRSET_CACHE_SIZE) } rrset-cache-slabs{COLON} { YDVAR(1, VAR_RRSET_CACHE_SLABS) } cache-max-ttl{COLON} { YDVAR(1, VAR_CACHE_MAX_TTL) } +cache-max-negative-ttl{COLON} { YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } cache-min-ttl{COLON} { YDVAR(1, VAR_CACHE_MIN_TTL) } infra-host-ttl{COLON} { YDVAR(1, VAR_INFRA_HOST_TTL) } infra-lame-ttl{COLON} { YDVAR(1, VAR_INFRA_LAME_TTL) } diff --git a/util/configparser.c b/util/configparser.c index 063cd9669..f7ebd5d51 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -283,7 +283,8 @@ extern int yydebug; VAR_RATELIMIT_FOR_DOMAIN = 411, VAR_RATELIMIT_BELOW_DOMAIN = 412, VAR_RATELIMIT_FACTOR = 413, - VAR_CAPS_WHITELIST = 414 + VAR_CAPS_WHITELIST = 414, + VAR_CACHE_MAX_NEGATIVE_TTL = 415 }; #endif /* Tokens. */ @@ -444,6 +445,7 @@ extern int yydebug; #define VAR_RATELIMIT_BELOW_DOMAIN 412 #define VAR_RATELIMIT_FACTOR 413 #define VAR_CAPS_WHITELIST 414 +#define VAR_CACHE_MAX_NEGATIVE_TTL 415 @@ -457,7 +459,7 @@ typedef union YYSTYPE /* Line 387 of yacc.c */ -#line 461 "util/configparser.c" +#line 463 "util/configparser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -485,7 +487,7 @@ int yyparse (); /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ -#line 489 "util/configparser.c" +#line 491 "util/configparser.c" #ifdef short # undef short @@ -705,20 +707,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 299 +#define YYLAST 301 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 160 +#define YYNTOKENS 161 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 165 +#define YYNNTS 166 /* YYNRULES -- Number of rules. */ -#define YYNRULES 315 +#define YYNRULES 317 /* YYNRULES -- Number of states. */ -#define YYNSTATES 464 +#define YYNSTATES 467 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 414 +#define YYMAXUTOK 415 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -767,7 +769,7 @@ static const yytype_uint8 yytranslate[] = 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 + 155, 156, 157, 158, 159, 160 }; #if YYDEBUG @@ -787,110 +789,110 @@ static const yytype_uint16 yyprhs[] = 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, - 245, 247, 249, 251, 253, 255, 257, 259, 261, 264, - 265, 267, 269, 271, 273, 275, 277, 280, 281, 283, - 285, 287, 289, 292, 295, 298, 301, 304, 307, 310, - 313, 316, 319, 322, 325, 328, 331, 334, 337, 340, - 343, 346, 349, 352, 355, 358, 361, 364, 367, 370, - 373, 376, 379, 382, 385, 388, 391, 394, 397, 400, - 403, 406, 409, 412, 415, 418, 421, 424, 427, 430, - 433, 436, 439, 442, 445, 448, 451, 454, 457, 460, - 463, 466, 469, 472, 475, 478, 481, 484, 487, 490, - 493, 496, 499, 502, 505, 508, 511, 514, 517, 520, - 523, 526, 529, 532, 536, 539, 542, 545, 548, 551, - 554, 557, 560, 563, 566, 569, 572, 575, 578, 581, - 584, 587, 590, 594, 597, 600, 603, 606, 609, 612, - 615, 618, 621, 624, 628, 632, 635, 638, 641, 644, - 647, 650, 653, 656, 659, 662, 664, 667, 668, 670, - 672, 674, 676, 678, 680, 682, 684, 687, 690, 693, - 696, 699, 702, 705, 708, 710, 713, 714, 716, 718, - 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, - 741, 744, 747, 750, 753, 756, 759, 762, 765, 768, - 771, 774, 776, 779, 780, 782 + 245, 247, 249, 251, 253, 255, 257, 259, 261, 263, + 266, 267, 269, 271, 273, 275, 277, 279, 282, 283, + 285, 287, 289, 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, 414, 417, 420, 423, 426, 429, + 432, 435, 438, 441, 444, 447, 450, 453, 456, 459, + 462, 465, 468, 471, 474, 477, 480, 483, 486, 489, + 492, 495, 498, 501, 504, 507, 510, 513, 516, 519, + 522, 525, 528, 531, 534, 538, 541, 544, 547, 550, + 553, 556, 559, 562, 565, 568, 571, 574, 577, 580, + 583, 586, 589, 592, 595, 599, 602, 605, 608, 611, + 614, 617, 620, 623, 626, 629, 633, 637, 640, 643, + 646, 649, 652, 655, 658, 661, 664, 667, 669, 672, + 673, 675, 677, 679, 681, 683, 685, 687, 689, 692, + 695, 698, 701, 704, 707, 710, 713, 715, 718, 719, + 721, 723, 725, 727, 729, 731, 733, 735, 737, 739, + 741, 743, 746, 749, 752, 755, 758, 761, 764, 767, + 770, 773, 776, 779, 781, 784, 785, 787 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 161, 0, -1, -1, 161, 162, -1, 163, 164, -1, - 166, 167, -1, 169, 170, -1, 321, 322, -1, 295, - 296, -1, 306, 307, -1, 11, -1, 164, 165, -1, - -1, 172, -1, 173, -1, 177, -1, 180, -1, 186, - -1, 187, -1, 188, -1, 189, -1, 178, -1, 199, - -1, 200, -1, 201, -1, 202, -1, 203, -1, 222, - -1, 223, -1, 224, -1, 228, -1, 229, -1, 183, - -1, 230, -1, 231, -1, 234, -1, 232, -1, 233, - -1, 236, -1, 237, -1, 238, -1, 251, -1, 212, - -1, 213, -1, 214, -1, 215, -1, 239, -1, 254, - -1, 208, -1, 210, -1, 255, -1, 260, -1, 261, - -1, 262, -1, 184, -1, 221, -1, 269, -1, 270, - -1, 209, -1, 265, -1, 196, -1, 179, -1, 204, - -1, 252, -1, 258, -1, 240, -1, 253, -1, 272, - -1, 273, -1, 185, -1, 174, -1, 195, -1, 244, - -1, 175, -1, 181, -1, 182, -1, 205, -1, 206, - -1, 271, -1, 242, -1, 246, -1, 247, -1, 176, - -1, 274, -1, 225, -1, 250, -1, 197, -1, 211, - -1, 256, -1, 257, -1, 259, -1, 264, -1, 207, - -1, 266, -1, 267, -1, 268, -1, 216, -1, 220, - -1, 248, -1, 249, -1, 217, -1, 241, -1, 263, - -1, 198, -1, 190, -1, 191, -1, 192, -1, 193, - -1, 194, -1, 275, -1, 276, -1, 277, -1, 218, - -1, 226, -1, 227, -1, 278, -1, 279, -1, 235, - -1, 243, -1, 219, -1, 280, -1, 282, -1, 281, - -1, 283, -1, 284, -1, 285, -1, 245, -1, 38, - -1, 167, 168, -1, -1, 286, -1, 287, -1, 288, - -1, 290, -1, 289, -1, 44, -1, 170, 171, -1, - -1, 291, -1, 292, -1, 293, -1, 294, -1, 13, - 10, -1, 12, 10, -1, 76, 10, -1, 79, 10, - -1, 97, 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, 123, 10, -1, 124, 10, -1, 125, - 10, -1, 126, 10, -1, 127, 10, -1, 77, 10, - -1, 66, 10, -1, 102, 10, -1, 122, 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, 110, 10, -1, 54, 10, -1, - 64, 10, -1, 55, 10, -1, 103, 10, -1, 48, - 10, -1, 49, 10, -1, 50, 10, -1, 51, 10, - -1, 114, 10, -1, 118, 10, -1, 119, 10, -1, - 152, 10, -1, 115, 10, -1, 61, 10, -1, 26, - 10, -1, 27, 10, -1, 28, 10, -1, 99, 10, - -1, 133, 10, -1, 134, 10, -1, 29, 10, -1, - 30, 10, -1, 32, 10, -1, 33, 10, -1, 35, - 10, -1, 36, 10, -1, 34, 10, -1, 135, 10, - -1, 41, 10, -1, 42, 10, -1, 43, 10, -1, - 52, 10, -1, 71, 10, -1, 120, 10, -1, 85, - 10, -1, 151, 10, -1, 78, 10, -1, 159, 10, - -1, 86, 10, -1, 87, 10, -1, 116, 10, -1, - 117, 10, -1, 101, 10, -1, 47, 10, -1, 69, - 10, -1, 72, 10, 10, -1, 53, 10, -1, 56, - 10, -1, 106, 10, -1, 107, 10, -1, 70, 10, - -1, 108, 10, -1, 57, 10, -1, 58, 10, -1, - 59, 10, -1, 121, 10, -1, 109, 10, -1, 65, - 10, -1, 112, 10, -1, 113, 10, -1, 111, 10, - -1, 62, 10, -1, 63, 10, -1, 84, 10, -1, - 73, 10, 10, -1, 74, 10, -1, 98, 10, -1, - 130, 10, -1, 131, 10, -1, 132, 10, -1, 136, - 10, -1, 137, 10, -1, 153, 10, -1, 155, 10, - -1, 154, 10, -1, 156, 10, 10, -1, 157, 10, - 10, -1, 158, 10, -1, 37, 10, -1, 39, 10, - -1, 40, 10, -1, 129, 10, -1, 100, 10, -1, - 37, 10, -1, 45, 10, -1, 46, 10, -1, 128, - 10, -1, 88, -1, 296, 297, -1, -1, 298, -1, - 300, -1, 299, -1, 302, -1, 303, -1, 304, -1, - 305, -1, 301, -1, 89, 10, -1, 91, 10, -1, - 90, 10, -1, 96, 10, -1, 92, 10, -1, 93, - 10, -1, 94, 10, -1, 95, 10, -1, 138, -1, - 307, 308, -1, -1, 309, -1, 310, -1, 311, -1, - 312, -1, 313, -1, 314, -1, 315, -1, 316, -1, - 317, -1, 318, -1, 319, -1, 320, -1, 139, 10, - -1, 140, 10, -1, 141, 10, -1, 142, 10, -1, - 143, 10, -1, 144, 10, -1, 145, 10, -1, 146, - 10, -1, 147, 10, -1, 148, 10, -1, 149, 10, - -1, 150, 10, -1, 104, -1, 322, 323, -1, -1, - 324, -1, 105, 10, -1 + 162, 0, -1, -1, 162, 163, -1, 164, 165, -1, + 167, 168, -1, 170, 171, -1, 323, 324, -1, 297, + 298, -1, 308, 309, -1, 11, -1, 165, 166, -1, + -1, 173, -1, 174, -1, 178, -1, 181, -1, 187, + -1, 188, -1, 189, -1, 190, -1, 179, -1, 200, + -1, 201, -1, 202, -1, 203, -1, 204, -1, 223, + -1, 224, -1, 225, -1, 229, -1, 230, -1, 184, + -1, 231, -1, 232, -1, 235, -1, 233, -1, 234, + -1, 237, -1, 238, -1, 239, -1, 252, -1, 213, + -1, 214, -1, 215, -1, 216, -1, 240, -1, 255, + -1, 209, -1, 211, -1, 256, -1, 262, -1, 263, + -1, 264, -1, 185, -1, 222, -1, 271, -1, 272, + -1, 210, -1, 267, -1, 197, -1, 180, -1, 205, + -1, 253, -1, 259, -1, 241, -1, 254, -1, 274, + -1, 275, -1, 186, -1, 175, -1, 196, -1, 245, + -1, 176, -1, 182, -1, 183, -1, 206, -1, 207, + -1, 273, -1, 243, -1, 247, -1, 248, -1, 177, + -1, 276, -1, 226, -1, 251, -1, 198, -1, 212, + -1, 257, -1, 258, -1, 261, -1, 266, -1, 208, + -1, 268, -1, 269, -1, 270, -1, 217, -1, 221, + -1, 249, -1, 250, -1, 218, -1, 242, -1, 265, + -1, 199, -1, 191, -1, 192, -1, 193, -1, 194, + -1, 195, -1, 277, -1, 278, -1, 279, -1, 219, + -1, 227, -1, 228, -1, 280, -1, 281, -1, 236, + -1, 244, -1, 220, -1, 282, -1, 284, -1, 283, + -1, 285, -1, 286, -1, 287, -1, 246, -1, 260, + -1, 38, -1, 168, 169, -1, -1, 288, -1, 289, + -1, 290, -1, 292, -1, 291, -1, 44, -1, 171, + 172, -1, -1, 293, -1, 294, -1, 295, -1, 296, + -1, 13, 10, -1, 12, 10, -1, 76, 10, -1, + 79, 10, -1, 97, 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, 123, 10, -1, 124, 10, + -1, 125, 10, -1, 126, 10, -1, 127, 10, -1, + 77, 10, -1, 66, 10, -1, 102, 10, -1, 122, + 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, 110, 10, -1, 54, + 10, -1, 64, 10, -1, 55, 10, -1, 103, 10, + -1, 48, 10, -1, 49, 10, -1, 50, 10, -1, + 51, 10, -1, 114, 10, -1, 118, 10, -1, 119, + 10, -1, 152, 10, -1, 115, 10, -1, 61, 10, + -1, 26, 10, -1, 27, 10, -1, 28, 10, -1, + 99, 10, -1, 133, 10, -1, 134, 10, -1, 29, + 10, -1, 30, 10, -1, 32, 10, -1, 33, 10, + -1, 35, 10, -1, 36, 10, -1, 34, 10, -1, + 135, 10, -1, 41, 10, -1, 42, 10, -1, 43, + 10, -1, 52, 10, -1, 71, 10, -1, 120, 10, + -1, 85, 10, -1, 151, 10, -1, 78, 10, -1, + 159, 10, -1, 86, 10, -1, 87, 10, -1, 116, + 10, -1, 117, 10, -1, 101, 10, -1, 47, 10, + -1, 69, 10, -1, 72, 10, 10, -1, 53, 10, + -1, 56, 10, -1, 106, 10, -1, 107, 10, -1, + 70, 10, -1, 160, 10, -1, 108, 10, -1, 57, + 10, -1, 58, 10, -1, 59, 10, -1, 121, 10, + -1, 109, 10, -1, 65, 10, -1, 112, 10, -1, + 113, 10, -1, 111, 10, -1, 62, 10, -1, 63, + 10, -1, 84, 10, -1, 73, 10, 10, -1, 74, + 10, -1, 98, 10, -1, 130, 10, -1, 131, 10, + -1, 132, 10, -1, 136, 10, -1, 137, 10, -1, + 153, 10, -1, 155, 10, -1, 154, 10, -1, 156, + 10, 10, -1, 157, 10, 10, -1, 158, 10, -1, + 37, 10, -1, 39, 10, -1, 40, 10, -1, 129, + 10, -1, 100, 10, -1, 37, 10, -1, 45, 10, + -1, 46, 10, -1, 128, 10, -1, 88, -1, 298, + 299, -1, -1, 300, -1, 302, -1, 301, -1, 304, + -1, 305, -1, 306, -1, 307, -1, 303, -1, 89, + 10, -1, 91, 10, -1, 90, 10, -1, 96, 10, + -1, 92, 10, -1, 93, 10, -1, 94, 10, -1, + 95, 10, -1, 138, -1, 309, 310, -1, -1, 311, + -1, 312, -1, 313, -1, 314, -1, 315, -1, 316, + -1, 317, -1, 318, -1, 319, -1, 320, -1, 321, + -1, 322, -1, 139, 10, -1, 140, 10, -1, 141, + 10, -1, 142, 10, -1, 143, 10, -1, 144, 10, + -1, 145, 10, -1, 146, 10, -1, 147, 10, -1, + 148, 10, -1, 149, 10, -1, 150, 10, -1, 104, + -1, 324, 325, -1, -1, 326, -1, 105, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -908,26 +910,26 @@ static const yytype_uint16 yyrline[] = 174, 174, 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, 179, 180, 180, 180, 181, 181, 181, 182, 182, 182, 183, 183, 184, 184, 185, - 185, 185, 186, 186, 187, 187, 188, 190, 202, 203, - 204, 204, 204, 204, 204, 206, 218, 219, 220, 220, - 220, 220, 222, 231, 240, 251, 260, 269, 278, 291, - 306, 315, 324, 333, 342, 351, 360, 369, 378, 387, - 396, 405, 414, 421, 428, 437, 446, 460, 469, 478, - 485, 492, 499, 507, 514, 521, 528, 535, 543, 551, - 559, 566, 573, 582, 591, 598, 605, 613, 621, 631, - 641, 654, 665, 673, 686, 695, 704, 713, 723, 731, - 744, 753, 761, 770, 778, 791, 800, 807, 817, 827, - 837, 847, 857, 867, 877, 887, 894, 901, 908, 917, - 926, 935, 942, 952, 969, 976, 994, 1007, 1020, 1029, - 1038, 1047, 1057, 1067, 1076, 1085, 1092, 1101, 1110, 1119, - 1127, 1140, 1148, 1172, 1179, 1194, 1204, 1214, 1221, 1228, - 1237, 1246, 1254, 1267, 1280, 1293, 1302, 1312, 1319, 1326, - 1335, 1345, 1355, 1362, 1369, 1378, 1383, 1384, 1385, 1385, - 1385, 1386, 1386, 1386, 1387, 1387, 1389, 1399, 1408, 1415, - 1425, 1432, 1439, 1446, 1453, 1458, 1459, 1460, 1460, 1461, - 1461, 1462, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1470, - 1478, 1485, 1493, 1501, 1508, 1515, 1524, 1533, 1542, 1551, - 1560, 1569, 1574, 1575, 1576, 1578 + 185, 185, 186, 186, 187, 187, 188, 188, 190, 202, + 203, 204, 204, 204, 204, 204, 206, 218, 219, 220, + 220, 220, 220, 222, 231, 240, 251, 260, 269, 278, + 291, 306, 315, 324, 333, 342, 351, 360, 369, 378, + 387, 396, 405, 414, 421, 428, 437, 446, 460, 469, + 478, 485, 492, 499, 507, 514, 521, 528, 535, 543, + 551, 559, 566, 573, 582, 591, 598, 605, 613, 621, + 631, 641, 654, 665, 673, 686, 695, 704, 713, 723, + 731, 744, 753, 761, 770, 778, 791, 800, 807, 817, + 827, 837, 847, 857, 867, 877, 887, 894, 901, 908, + 917, 926, 935, 942, 952, 969, 976, 994, 1007, 1020, + 1029, 1038, 1047, 1056, 1066, 1076, 1085, 1094, 1101, 1110, + 1119, 1128, 1136, 1149, 1157, 1181, 1188, 1203, 1213, 1223, + 1230, 1237, 1246, 1255, 1263, 1276, 1289, 1302, 1311, 1321, + 1328, 1335, 1344, 1354, 1364, 1371, 1378, 1387, 1392, 1393, + 1394, 1394, 1394, 1395, 1395, 1395, 1396, 1396, 1398, 1408, + 1417, 1424, 1434, 1441, 1448, 1455, 1462, 1467, 1468, 1469, + 1469, 1470, 1470, 1471, 1471, 1472, 1473, 1474, 1475, 1476, + 1477, 1479, 1487, 1494, 1502, 1510, 1517, 1524, 1533, 1542, + 1551, 1560, 1569, 1578, 1583, 1584, 1585, 1587 }; #endif @@ -992,17 +994,17 @@ static const char *const yytname[] = "VAR_HARDEN_ALGO_DOWNGRADE", "VAR_IP_TRANSPARENT", "VAR_RATELIMIT", "VAR_RATELIMIT_SLABS", "VAR_RATELIMIT_SIZE", "VAR_RATELIMIT_FOR_DOMAIN", "VAR_RATELIMIT_BELOW_DOMAIN", "VAR_RATELIMIT_FACTOR", - "VAR_CAPS_WHITELIST", "$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_tcp_upstream", + "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", "$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_tcp_upstream", "server_ssl_upstream", "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", "server_log_queries", @@ -1032,7 +1034,8 @@ static const char *const yytname[] = "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_cache_max_ttl", "server_cache_max_negative_ttl", + "server_cache_min_ttl", "server_bogus_ttl", "server_val_clean_additional", "server_val_permissive_mode", "server_ignore_cd_flag", "server_val_log_level", "server_val_nsec3_keysize_iterations", "server_add_holddown", @@ -1081,28 +1084,29 @@ static const yytype_uint16 yytoknum[] = 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414 + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 160, 161, 161, 162, 162, 162, 162, 162, 162, - 163, 164, 164, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 166, 167, 167, - 168, 168, 168, 168, 168, 169, 170, 170, 171, 171, - 171, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 0, 161, 162, 162, 163, 163, 163, 163, 163, 163, + 164, 165, 165, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 167, 168, + 168, 169, 169, 169, 169, 169, 170, 171, 171, 172, + 172, 172, 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, @@ -1114,12 +1118,12 @@ static const yytype_uint16 yyr1[] = 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 296, 297, 297, - 297, 297, 297, 297, 297, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 307, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 309, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 298, + 299, 299, 299, 299, 299, 299, 299, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 309, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 322, 323, 324 + 320, 321, 322, 323, 324, 324, 325, 326 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1137,26 +1141,26 @@ 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, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, + 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, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 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, 3, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 2, 0, 1, 2 + 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 0, 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. @@ -1164,8 +1168,8 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 10, 127, 135, 265, 311, 284, 3, - 12, 129, 137, 267, 286, 313, 4, 5, 6, 8, + 2, 0, 1, 10, 128, 136, 267, 313, 286, 3, + 12, 130, 138, 269, 288, 315, 4, 5, 6, 8, 9, 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, @@ -1177,62 +1181,62 @@ static const yytype_uint16 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, 0, 0, 0, 11, 13, 14, 70, - 73, 82, 15, 21, 61, 16, 74, 75, 32, 54, - 69, 17, 18, 19, 20, 104, 105, 106, 107, 108, - 71, 60, 86, 103, 22, 23, 24, 25, 26, 62, - 76, 77, 92, 48, 58, 49, 87, 42, 43, 44, - 45, 96, 100, 112, 119, 97, 55, 27, 28, 29, - 84, 113, 114, 30, 31, 33, 34, 36, 37, 35, - 117, 38, 39, 40, 46, 65, 101, 79, 118, 72, - 126, 80, 81, 98, 99, 85, 41, 63, 66, 47, - 50, 88, 89, 64, 90, 51, 52, 53, 102, 91, - 59, 93, 94, 95, 56, 57, 78, 67, 68, 83, - 109, 110, 111, 115, 116, 120, 122, 121, 123, 124, - 125, 0, 0, 0, 0, 0, 128, 130, 131, 132, - 134, 133, 0, 0, 0, 0, 136, 138, 139, 140, - 141, 0, 0, 0, 0, 0, 0, 0, 0, 266, - 268, 270, 269, 275, 271, 272, 273, 274, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 11, 13, 14, + 70, 73, 82, 15, 21, 61, 16, 74, 75, 32, + 54, 69, 17, 18, 19, 20, 104, 105, 106, 107, + 108, 71, 60, 86, 103, 22, 23, 24, 25, 26, + 62, 76, 77, 92, 48, 58, 49, 87, 42, 43, + 44, 45, 96, 100, 112, 119, 97, 55, 27, 28, + 29, 84, 113, 114, 30, 31, 33, 34, 36, 37, + 35, 117, 38, 39, 40, 46, 65, 101, 79, 118, + 72, 126, 80, 81, 98, 99, 85, 41, 63, 66, + 47, 50, 88, 89, 64, 127, 90, 51, 52, 53, + 102, 91, 59, 93, 94, 95, 56, 57, 78, 67, + 68, 83, 109, 110, 111, 115, 116, 120, 122, 121, + 123, 124, 125, 0, 0, 0, 0, 0, 129, 131, + 132, 133, 135, 134, 0, 0, 0, 0, 137, 139, + 140, 141, 142, 0, 0, 0, 0, 0, 0, 0, + 0, 268, 270, 272, 271, 277, 273, 274, 275, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 285, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 312, 314, 143, 142, 147, 150, - 148, 156, 157, 158, 159, 169, 170, 171, 172, 173, - 192, 193, 194, 198, 199, 153, 200, 201, 204, 202, - 203, 206, 207, 208, 221, 182, 183, 184, 185, 209, - 224, 178, 180, 225, 230, 231, 232, 154, 191, 239, - 240, 179, 235, 166, 149, 174, 222, 228, 210, 0, - 0, 243, 155, 144, 165, 214, 145, 151, 152, 175, - 176, 241, 212, 216, 217, 146, 244, 195, 220, 167, - 181, 226, 227, 229, 234, 177, 238, 236, 237, 186, - 190, 218, 219, 187, 188, 211, 233, 168, 160, 161, - 162, 163, 164, 245, 246, 247, 196, 197, 205, 248, - 249, 213, 189, 250, 252, 251, 0, 0, 255, 215, - 256, 257, 258, 260, 259, 261, 262, 263, 264, 276, - 278, 277, 280, 281, 282, 283, 279, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 315, - 223, 242, 253, 254 + 0, 0, 287, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 0, 314, 316, 144, 143, + 148, 151, 149, 157, 158, 159, 160, 170, 171, 172, + 173, 174, 193, 194, 195, 199, 200, 154, 201, 202, + 205, 203, 204, 207, 208, 209, 222, 183, 184, 185, + 186, 210, 225, 179, 181, 226, 232, 233, 234, 155, + 192, 241, 242, 180, 237, 167, 150, 175, 223, 229, + 211, 0, 0, 245, 156, 145, 166, 215, 146, 152, + 153, 176, 177, 243, 213, 217, 218, 147, 246, 196, + 221, 168, 182, 227, 228, 231, 236, 178, 240, 238, + 239, 187, 191, 219, 220, 188, 189, 212, 235, 169, + 161, 162, 163, 164, 165, 247, 248, 249, 197, 198, + 206, 250, 251, 214, 190, 252, 254, 253, 0, 0, + 257, 216, 230, 258, 259, 260, 262, 261, 263, 264, + 265, 266, 278, 280, 279, 282, 283, 284, 285, 281, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 317, 224, 244, 255, 256 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 9, 10, 16, 136, 11, 17, 256, 12, - 18, 266, 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, 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, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 257, 258, 259, 260, - 261, 267, 268, 269, 270, 13, 19, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 14, 20, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 15, 21, 314, 315 + -1, 1, 9, 10, 16, 137, 11, 17, 258, 12, + 18, 268, 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, 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, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 259, 260, 261, + 262, 263, 269, 270, 271, 272, 13, 19, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 14, 20, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 15, 21, 316, 317 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -1243,17 +1247,17 @@ static const yytype_int16 yypact[] = -81, 116, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -12, 89, 47, -13, 22, -80, 16, 17, 18, 23, 24, 78, 107, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 138, 139, - 140, 141, 142, 143, 145, 146, 147, 148, 149, 163, - 164, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 209, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, -81, -81, -81, -81, + 121, 122, 123, 124, 125, 126, 127, 128, 139, 140, + 141, 142, 143, 145, 146, 147, 148, 149, 163, 164, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, @@ -1265,28 +1269,28 @@ static const yytype_int16 yypact[] = -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, 256, 257, 258, 259, 260, -81, -81, -81, -81, - -81, -81, 261, 262, 263, 264, -81, -81, -81, -81, - -81, 265, 266, 267, 268, 269, 270, 271, 272, -81, - -81, -81, -81, -81, -81, -81, -81, -81, 273, 274, + -81, -81, -81, 258, 259, 260, 261, 262, -81, -81, + -81, -81, -81, -81, 263, 264, 265, 266, -81, -81, + -81, -81, -81, 267, 268, 269, 270, 271, 272, 273, + 274, -81, -81, -81, -81, -81, -81, -81, -81, -81, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, -81, -81, -81, -81, -81, -81, -81, -81, + -81, -81, -81, -81, -81, 287, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, 285, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81, -81, -81, 286, - 287, -81, -81, -81, -81, -81, -81, -81, -81, -81, + -81, 288, 289, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, 288, 289, -81, -81, + -81, -81, -81, -81, -81, -81, -81, -81, 290, 291, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81 + -81, -81, -81, -81, -81, -81, -81 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1308,7 +1312,7 @@ static const yytype_int8 yypgoto[] = -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81 + -81, -81, -81, -81, -81, -81 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1319,34 +1323,35 @@ static const yytype_uint16 yytable[] = { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 313, 316, 317, 318, 47, - 48, 49, 0, 319, 320, 50, 51, 52, 53, 54, + 42, 43, 44, 45, 46, 315, 318, 319, 320, 47, + 48, 49, 0, 321, 322, 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, 88, 89, 90, 271, 272, 273, 274, - 275, 276, 277, 278, 262, 91, 92, 93, 321, 94, - 95, 96, 263, 264, 97, 98, 99, 100, 101, 102, + 85, 86, 87, 88, 89, 90, 273, 274, 275, 276, + 277, 278, 279, 280, 264, 91, 92, 93, 323, 94, + 95, 96, 265, 266, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 2, 322, 119, 120, - 121, 122, 123, 124, 125, 126, 251, 3, 252, 253, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 332, 333, - 334, 335, 336, 337, 4, 338, 339, 340, 341, 342, - 5, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 343, 344, 265, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 254, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 6, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 255, 385, - 7, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 8, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463 + 113, 114, 115, 116, 117, 118, 2, 324, 119, 120, + 121, 122, 123, 124, 125, 126, 253, 3, 254, 255, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 334, + 335, 336, 337, 338, 4, 339, 340, 341, 342, 343, + 5, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 344, 345, 267, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 256, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 6, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 257, 386, + 7, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 8, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466 }; #define yypact_value_is_default(Yystate) \ @@ -1371,7 +1376,7 @@ static const yytype_int16 yycheck[] = 122, 123, 124, 125, 126, 127, 0, 10, 130, 131, 132, 133, 134, 135, 136, 137, 37, 11, 39, 40, 10, 10, 10, 10, 10, 10, 10, 10, 10, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 10, 10, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 10, 10, 10, 10, 10, 38, 10, 10, 10, 10, 10, 44, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 10, 10, 128, 10, 10, 10, 10, @@ -1386,16 +1391,17 @@ static const yytype_int16 yycheck[] = 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, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 161, 0, 11, 38, 44, 88, 104, 138, 162, - 163, 166, 169, 295, 306, 321, 164, 167, 170, 296, - 307, 322, 12, 13, 14, 15, 16, 17, 18, 19, + 0, 162, 0, 11, 38, 44, 88, 104, 138, 163, + 164, 167, 170, 297, 308, 323, 165, 168, 171, 298, + 309, 324, 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, 50, 51, 52, 53, 54, 55, 56, @@ -1406,7 +1412,7 @@ static const yytype_uint16 yystos[] = 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135, 136, 137, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 165, 172, 173, 174, + 154, 155, 156, 157, 158, 159, 160, 166, 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, @@ -1418,13 +1424,13 @@ static const yytype_uint16 yystos[] = 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 37, 39, 40, 100, 129, 168, 286, 287, 288, - 289, 290, 37, 45, 46, 128, 171, 291, 292, 293, - 294, 89, 90, 91, 92, 93, 94, 95, 96, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 105, 323, 324, 10, 10, 10, 10, + 285, 286, 287, 37, 39, 40, 100, 129, 169, 288, + 289, 290, 291, 292, 37, 45, 46, 128, 172, 293, + 294, 295, 296, 89, 90, 91, 92, 93, 94, 95, + 96, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 105, 325, 326, 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, @@ -1439,7 +1445,7 @@ static const yytype_uint16 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, 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -2247,7 +2253,7 @@ yyreduce: } break; - case 127: + case 128: /* Line 1792 of yacc.c */ #line 191 "./util/configparser.y" { @@ -2262,7 +2268,7 @@ yyreduce: } break; - case 135: + case 136: /* Line 1792 of yacc.c */ #line 207 "./util/configparser.y" { @@ -2277,7 +2283,7 @@ yyreduce: } break; - case 142: + case 143: /* Line 1792 of yacc.c */ #line 223 "./util/configparser.y" { @@ -2289,7 +2295,7 @@ yyreduce: } break; - case 143: + case 144: /* Line 1792 of yacc.c */ #line 232 "./util/configparser.y" { @@ -2301,7 +2307,7 @@ yyreduce: } break; - case 144: + case 145: /* Line 1792 of yacc.c */ #line 241 "./util/configparser.y" { @@ -2315,7 +2321,7 @@ yyreduce: } break; - case 145: + case 146: /* Line 1792 of yacc.c */ #line 252 "./util/configparser.y" { @@ -2327,7 +2333,7 @@ yyreduce: } break; - case 146: + case 147: /* Line 1792 of yacc.c */ #line 261 "./util/configparser.y" { @@ -2339,7 +2345,7 @@ yyreduce: } break; - case 147: + case 148: /* Line 1792 of yacc.c */ #line 270 "./util/configparser.y" { @@ -2351,7 +2357,7 @@ yyreduce: } break; - case 148: + case 149: /* Line 1792 of yacc.c */ #line 279 "./util/configparser.y" { @@ -2367,7 +2373,7 @@ yyreduce: } break; - case 149: + case 150: /* Line 1792 of yacc.c */ #line 292 "./util/configparser.y" { @@ -2385,7 +2391,7 @@ yyreduce: } break; - case 150: + case 151: /* Line 1792 of yacc.c */ #line 307 "./util/configparser.y" { @@ -2397,7 +2403,7 @@ yyreduce: } break; - case 151: + case 152: /* Line 1792 of yacc.c */ #line 316 "./util/configparser.y" { @@ -2409,7 +2415,7 @@ yyreduce: } break; - case 152: + case 153: /* Line 1792 of yacc.c */ #line 325 "./util/configparser.y" { @@ -2421,7 +2427,7 @@ yyreduce: } break; - case 153: + case 154: /* Line 1792 of yacc.c */ #line 334 "./util/configparser.y" { @@ -2433,7 +2439,7 @@ yyreduce: } break; - case 154: + case 155: /* Line 1792 of yacc.c */ #line 343 "./util/configparser.y" { @@ -2445,7 +2451,7 @@ yyreduce: } break; - case 155: + case 156: /* Line 1792 of yacc.c */ #line 352 "./util/configparser.y" { @@ -2457,7 +2463,7 @@ yyreduce: } break; - case 156: + case 157: /* Line 1792 of yacc.c */ #line 361 "./util/configparser.y" { @@ -2469,7 +2475,7 @@ yyreduce: } break; - case 157: + case 158: /* Line 1792 of yacc.c */ #line 370 "./util/configparser.y" { @@ -2481,7 +2487,7 @@ yyreduce: } break; - case 158: + case 159: /* Line 1792 of yacc.c */ #line 379 "./util/configparser.y" { @@ -2493,7 +2499,7 @@ yyreduce: } break; - case 159: + case 160: /* Line 1792 of yacc.c */ #line 388 "./util/configparser.y" { @@ -2505,7 +2511,7 @@ yyreduce: } break; - case 160: + case 161: /* Line 1792 of yacc.c */ #line 397 "./util/configparser.y" { @@ -2517,7 +2523,7 @@ yyreduce: } break; - case 161: + case 162: /* Line 1792 of yacc.c */ #line 406 "./util/configparser.y" { @@ -2529,7 +2535,7 @@ yyreduce: } break; - case 162: + case 163: /* Line 1792 of yacc.c */ #line 415 "./util/configparser.y" { @@ -2539,7 +2545,7 @@ yyreduce: } break; - case 163: + case 164: /* Line 1792 of yacc.c */ #line 422 "./util/configparser.y" { @@ -2549,7 +2555,7 @@ yyreduce: } break; - case 164: + case 165: /* Line 1792 of yacc.c */ #line 429 "./util/configparser.y" { @@ -2561,7 +2567,7 @@ yyreduce: } break; - case 165: + case 166: /* Line 1792 of yacc.c */ #line 438 "./util/configparser.y" { @@ -2573,7 +2579,7 @@ yyreduce: } break; - case 166: + case 167: /* Line 1792 of yacc.c */ #line 447 "./util/configparser.y" { @@ -2590,7 +2596,7 @@ yyreduce: } break; - case 167: + case 168: /* Line 1792 of yacc.c */ #line 461 "./util/configparser.y" { @@ -2602,7 +2608,7 @@ yyreduce: } break; - case 168: + case 169: /* Line 1792 of yacc.c */ #line 470 "./util/configparser.y" { @@ -2614,7 +2620,7 @@ yyreduce: } break; - case 169: + case 170: /* Line 1792 of yacc.c */ #line 479 "./util/configparser.y" { @@ -2624,7 +2630,7 @@ yyreduce: } break; - case 170: + case 171: /* Line 1792 of yacc.c */ #line 486 "./util/configparser.y" { @@ -2634,7 +2640,7 @@ yyreduce: } break; - case 171: + case 172: /* Line 1792 of yacc.c */ #line 493 "./util/configparser.y" { @@ -2644,7 +2650,7 @@ yyreduce: } break; - case 172: + case 173: /* Line 1792 of yacc.c */ #line 500 "./util/configparser.y" { @@ -2655,7 +2661,7 @@ yyreduce: } break; - case 173: + case 174: /* Line 1792 of yacc.c */ #line 508 "./util/configparser.y" { @@ -2665,7 +2671,7 @@ yyreduce: } break; - case 174: + case 175: /* Line 1792 of yacc.c */ #line 515 "./util/configparser.y" { @@ -2675,7 +2681,7 @@ yyreduce: } break; - case 175: + case 176: /* Line 1792 of yacc.c */ #line 522 "./util/configparser.y" { @@ -2685,7 +2691,7 @@ yyreduce: } break; - case 176: + case 177: /* Line 1792 of yacc.c */ #line 529 "./util/configparser.y" { @@ -2695,7 +2701,7 @@ yyreduce: } break; - case 177: + case 178: /* Line 1792 of yacc.c */ #line 536 "./util/configparser.y" { @@ -2706,7 +2712,7 @@ yyreduce: } break; - case 178: + case 179: /* Line 1792 of yacc.c */ #line 544 "./util/configparser.y" { @@ -2717,7 +2723,7 @@ yyreduce: } break; - case 179: + case 180: /* Line 1792 of yacc.c */ #line 552 "./util/configparser.y" { @@ -2728,7 +2734,7 @@ yyreduce: } break; - case 180: + case 181: /* Line 1792 of yacc.c */ #line 560 "./util/configparser.y" { @@ -2738,7 +2744,7 @@ yyreduce: } break; - case 181: + case 182: /* Line 1792 of yacc.c */ #line 567 "./util/configparser.y" { @@ -2748,7 +2754,7 @@ yyreduce: } break; - case 182: + case 183: /* Line 1792 of yacc.c */ #line 574 "./util/configparser.y" { @@ -2760,7 +2766,7 @@ yyreduce: } break; - case 183: + case 184: /* Line 1792 of yacc.c */ #line 583 "./util/configparser.y" { @@ -2772,7 +2778,7 @@ yyreduce: } break; - case 184: + case 185: /* Line 1792 of yacc.c */ #line 592 "./util/configparser.y" { @@ -2782,7 +2788,7 @@ yyreduce: } break; - case 185: + case 186: /* Line 1792 of yacc.c */ #line 599 "./util/configparser.y" { @@ -2792,7 +2798,7 @@ yyreduce: } break; - case 186: + case 187: /* Line 1792 of yacc.c */ #line 606 "./util/configparser.y" { @@ -2803,7 +2809,7 @@ yyreduce: } break; - case 187: + case 188: /* Line 1792 of yacc.c */ #line 614 "./util/configparser.y" { @@ -2814,7 +2820,7 @@ yyreduce: } break; - case 188: + case 189: /* Line 1792 of yacc.c */ #line 622 "./util/configparser.y" { @@ -2827,7 +2833,7 @@ yyreduce: } break; - case 189: + case 190: /* Line 1792 of yacc.c */ #line 632 "./util/configparser.y" { @@ -2840,7 +2846,7 @@ yyreduce: } break; - case 190: + case 191: /* Line 1792 of yacc.c */ #line 642 "./util/configparser.y" { @@ -2856,7 +2862,7 @@ yyreduce: } break; - case 191: + case 192: /* Line 1792 of yacc.c */ #line 655 "./util/configparser.y" { @@ -2870,7 +2876,7 @@ yyreduce: } break; - case 192: + case 193: /* Line 1792 of yacc.c */ #line 666 "./util/configparser.y" { @@ -2881,7 +2887,7 @@ yyreduce: } break; - case 193: + case 194: /* Line 1792 of yacc.c */ #line 674 "./util/configparser.y" { @@ -2897,7 +2903,7 @@ yyreduce: } break; - case 194: + case 195: /* Line 1792 of yacc.c */ #line 687 "./util/configparser.y" { @@ -2909,7 +2915,7 @@ yyreduce: } break; - case 195: + case 196: /* Line 1792 of yacc.c */ #line 696 "./util/configparser.y" { @@ -2921,7 +2927,7 @@ yyreduce: } break; - case 196: + case 197: /* Line 1792 of yacc.c */ #line 705 "./util/configparser.y" { @@ -2933,7 +2939,7 @@ yyreduce: } break; - case 197: + case 198: /* Line 1792 of yacc.c */ #line 714 "./util/configparser.y" { @@ -2946,7 +2952,7 @@ yyreduce: } break; - case 198: + case 199: /* Line 1792 of yacc.c */ #line 724 "./util/configparser.y" { @@ -2957,7 +2963,7 @@ yyreduce: } break; - case 199: + case 200: /* Line 1792 of yacc.c */ #line 732 "./util/configparser.y" { @@ -2973,7 +2979,7 @@ yyreduce: } break; - case 200: + case 201: /* Line 1792 of yacc.c */ #line 745 "./util/configparser.y" { @@ -2985,7 +2991,7 @@ yyreduce: } break; - case 201: + case 202: /* Line 1792 of yacc.c */ #line 754 "./util/configparser.y" { @@ -2996,7 +3002,7 @@ yyreduce: } break; - case 202: + case 203: /* Line 1792 of yacc.c */ #line 762 "./util/configparser.y" { @@ -3008,7 +3014,7 @@ yyreduce: } break; - case 203: + case 204: /* Line 1792 of yacc.c */ #line 771 "./util/configparser.y" { @@ -3019,7 +3025,7 @@ yyreduce: } break; - case 204: + case 205: /* Line 1792 of yacc.c */ #line 779 "./util/configparser.y" { @@ -3035,7 +3041,7 @@ yyreduce: } break; - case 205: + case 206: /* Line 1792 of yacc.c */ #line 792 "./util/configparser.y" { @@ -3047,7 +3053,7 @@ yyreduce: } break; - case 206: + case 207: /* Line 1792 of yacc.c */ #line 801 "./util/configparser.y" { @@ -3057,7 +3063,7 @@ yyreduce: } break; - case 207: + case 208: /* Line 1792 of yacc.c */ #line 808 "./util/configparser.y" { @@ -3070,7 +3076,7 @@ yyreduce: } break; - case 208: + case 209: /* Line 1792 of yacc.c */ #line 818 "./util/configparser.y" { @@ -3083,7 +3089,7 @@ yyreduce: } break; - case 209: + case 210: /* Line 1792 of yacc.c */ #line 828 "./util/configparser.y" { @@ -3096,7 +3102,7 @@ yyreduce: } break; - case 210: + case 211: /* Line 1792 of yacc.c */ #line 838 "./util/configparser.y" { @@ -3109,7 +3115,7 @@ yyreduce: } break; - case 211: + case 212: /* Line 1792 of yacc.c */ #line 848 "./util/configparser.y" { @@ -3122,7 +3128,7 @@ yyreduce: } break; - case 212: + case 213: /* Line 1792 of yacc.c */ #line 858 "./util/configparser.y" { @@ -3135,7 +3141,7 @@ yyreduce: } break; - case 213: + case 214: /* Line 1792 of yacc.c */ #line 868 "./util/configparser.y" { @@ -3148,7 +3154,7 @@ yyreduce: } break; - case 214: + case 215: /* Line 1792 of yacc.c */ #line 878 "./util/configparser.y" { @@ -3161,7 +3167,7 @@ yyreduce: } break; - case 215: + case 216: /* Line 1792 of yacc.c */ #line 888 "./util/configparser.y" { @@ -3171,7 +3177,7 @@ yyreduce: } break; - case 216: + case 217: /* Line 1792 of yacc.c */ #line 895 "./util/configparser.y" { @@ -3181,7 +3187,7 @@ yyreduce: } break; - case 217: + case 218: /* Line 1792 of yacc.c */ #line 902 "./util/configparser.y" { @@ -3191,7 +3197,7 @@ yyreduce: } break; - case 218: + case 219: /* Line 1792 of yacc.c */ #line 909 "./util/configparser.y" { @@ -3203,7 +3209,7 @@ yyreduce: } break; - case 219: + case 220: /* Line 1792 of yacc.c */ #line 918 "./util/configparser.y" { @@ -3215,7 +3221,7 @@ yyreduce: } break; - case 220: + case 221: /* Line 1792 of yacc.c */ #line 927 "./util/configparser.y" { @@ -3227,7 +3233,7 @@ yyreduce: } break; - case 221: + case 222: /* Line 1792 of yacc.c */ #line 936 "./util/configparser.y" { @@ -3237,7 +3243,7 @@ yyreduce: } break; - case 222: + case 223: /* Line 1792 of yacc.c */ #line 943 "./util/configparser.y" { @@ -3250,7 +3256,7 @@ yyreduce: } break; - case 223: + case 224: /* Line 1792 of yacc.c */ #line 953 "./util/configparser.y" { @@ -3270,7 +3276,7 @@ yyreduce: } break; - case 224: + case 225: /* Line 1792 of yacc.c */ #line 970 "./util/configparser.y" { @@ -3280,7 +3286,7 @@ yyreduce: } break; - case 225: + case 226: /* Line 1792 of yacc.c */ #line 977 "./util/configparser.y" { @@ -3301,7 +3307,7 @@ yyreduce: } break; - case 226: + case 227: /* Line 1792 of yacc.c */ #line 995 "./util/configparser.y" { @@ -3317,7 +3323,7 @@ yyreduce: } break; - case 227: + case 228: /* Line 1792 of yacc.c */ #line 1008 "./util/configparser.y" { @@ -3333,7 +3339,7 @@ yyreduce: } break; - case 228: + case 229: /* Line 1792 of yacc.c */ #line 1021 "./util/configparser.y" { @@ -3345,9 +3351,21 @@ yyreduce: } break; - case 229: + case 230: /* Line 1792 of yacc.c */ #line 1030 "./util/configparser.y" + { + OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 231: +/* Line 1792 of yacc.c */ +#line 1039 "./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) @@ -3357,9 +3375,9 @@ yyreduce: } break; - case 230: + case 232: /* Line 1792 of yacc.c */ -#line 1039 "./util/configparser.y" +#line 1048 "./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) @@ -3369,9 +3387,9 @@ yyreduce: } break; - case 231: + case 233: /* Line 1792 of yacc.c */ -#line 1048 "./util/configparser.y" +#line 1057 "./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) @@ -3382,9 +3400,9 @@ yyreduce: } break; - case 232: + case 234: /* Line 1792 of yacc.c */ -#line 1058 "./util/configparser.y" +#line 1067 "./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) @@ -3395,9 +3413,9 @@ yyreduce: } break; - case 233: + case 235: /* Line 1792 of yacc.c */ -#line 1068 "./util/configparser.y" +#line 1077 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3407,9 +3425,9 @@ yyreduce: } break; - case 234: + case 236: /* Line 1792 of yacc.c */ -#line 1077 "./util/configparser.y" +#line 1086 "./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) @@ -3419,9 +3437,9 @@ yyreduce: } break; - case 235: + case 237: /* Line 1792 of yacc.c */ -#line 1086 "./util/configparser.y" +#line 1095 "./util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -3429,9 +3447,9 @@ yyreduce: } break; - case 236: + case 238: /* Line 1792 of yacc.c */ -#line 1093 "./util/configparser.y" +#line 1102 "./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) @@ -3441,9 +3459,9 @@ yyreduce: } break; - case 237: + case 239: /* Line 1792 of yacc.c */ -#line 1102 "./util/configparser.y" +#line 1111 "./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) @@ -3453,9 +3471,9 @@ yyreduce: } break; - case 238: + case 240: /* Line 1792 of yacc.c */ -#line 1111 "./util/configparser.y" +#line 1120 "./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) @@ -3465,9 +3483,9 @@ yyreduce: } break; - case 239: + case 241: /* Line 1792 of yacc.c */ -#line 1120 "./util/configparser.y" +#line 1129 "./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)) @@ -3476,9 +3494,9 @@ yyreduce: } break; - case 240: + case 242: /* Line 1792 of yacc.c */ -#line 1128 "./util/configparser.y" +#line 1137 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3492,9 +3510,9 @@ yyreduce: } break; - case 241: + case 243: /* Line 1792 of yacc.c */ -#line 1141 "./util/configparser.y" +#line 1150 "./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)) @@ -3503,9 +3521,9 @@ yyreduce: } break; - case 242: + case 244: /* Line 1792 of yacc.c */ -#line 1149 "./util/configparser.y" +#line 1158 "./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 && @@ -3530,9 +3548,9 @@ yyreduce: } break; - case 243: + case 245: /* Line 1792 of yacc.c */ -#line 1173 "./util/configparser.y" +#line 1182 "./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))) @@ -3540,9 +3558,9 @@ yyreduce: } break; - case 244: + case 246: /* Line 1792 of yacc.c */ -#line 1180 "./util/configparser.y" +#line 1189 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -3558,9 +3576,9 @@ yyreduce: } break; - case 245: + case 247: /* Line 1792 of yacc.c */ -#line 1195 "./util/configparser.y" +#line 1204 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3571,9 +3589,9 @@ yyreduce: } break; - case 246: + case 248: /* Line 1792 of yacc.c */ -#line 1205 "./util/configparser.y" +#line 1214 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3584,9 +3602,9 @@ yyreduce: } break; - case 247: + case 249: /* Line 1792 of yacc.c */ -#line 1215 "./util/configparser.y" +#line 1224 "./util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[(2) - (2)].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[(2) - (2)].str)); @@ -3594,9 +3612,9 @@ yyreduce: } break; - case 248: + case 250: /* Line 1792 of yacc.c */ -#line 1222 "./util/configparser.y" +#line 1231 "./util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dns64_prefix); @@ -3604,9 +3622,9 @@ yyreduce: } break; - case 249: + case 251: /* Line 1792 of yacc.c */ -#line 1229 "./util/configparser.y" +#line 1238 "./util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3616,9 +3634,9 @@ yyreduce: } break; - case 250: + case 252: /* Line 1792 of yacc.c */ -#line 1238 "./util/configparser.y" +#line 1247 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3628,9 +3646,9 @@ yyreduce: } break; - case 251: + case 253: /* Line 1792 of yacc.c */ -#line 1247 "./util/configparser.y" +#line 1256 "./util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->ratelimit_size)) @@ -3639,9 +3657,9 @@ yyreduce: } break; - case 252: + case 254: /* Line 1792 of yacc.c */ -#line 1255 "./util/configparser.y" +#line 1264 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3655,9 +3673,9 @@ yyreduce: } break; - case 253: + case 255: /* Line 1792 of yacc.c */ -#line 1268 "./util/configparser.y" +#line 1277 "./util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) { @@ -3671,9 +3689,9 @@ yyreduce: } break; - case 254: + case 256: /* Line 1792 of yacc.c */ -#line 1281 "./util/configparser.y" +#line 1290 "./util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) { @@ -3687,9 +3705,9 @@ yyreduce: } break; - case 255: + case 257: /* Line 1792 of yacc.c */ -#line 1294 "./util/configparser.y" +#line 1303 "./util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3699,9 +3717,9 @@ yyreduce: } break; - case 256: + case 258: /* Line 1792 of yacc.c */ -#line 1303 "./util/configparser.y" +#line 1312 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->stubs->name) @@ -3712,9 +3730,9 @@ yyreduce: } break; - case 257: + case 259: /* Line 1792 of yacc.c */ -#line 1313 "./util/configparser.y" +#line 1322 "./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))) @@ -3722,9 +3740,9 @@ yyreduce: } break; - case 258: + case 260: /* Line 1792 of yacc.c */ -#line 1320 "./util/configparser.y" +#line 1329 "./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))) @@ -3732,9 +3750,9 @@ yyreduce: } break; - case 259: + case 261: /* Line 1792 of yacc.c */ -#line 1327 "./util/configparser.y" +#line 1336 "./util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3744,9 +3762,9 @@ yyreduce: } break; - case 260: + case 262: /* Line 1792 of yacc.c */ -#line 1336 "./util/configparser.y" +#line 1345 "./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) @@ -3757,9 +3775,9 @@ yyreduce: } break; - case 261: + case 263: /* Line 1792 of yacc.c */ -#line 1346 "./util/configparser.y" +#line 1355 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->forwards->name) @@ -3770,9 +3788,9 @@ yyreduce: } break; - case 262: + case 264: /* Line 1792 of yacc.c */ -#line 1356 "./util/configparser.y" +#line 1365 "./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))) @@ -3780,9 +3798,9 @@ yyreduce: } break; - case 263: + case 265: /* Line 1792 of yacc.c */ -#line 1363 "./util/configparser.y" +#line 1372 "./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))) @@ -3790,9 +3808,9 @@ yyreduce: } break; - case 264: + case 266: /* Line 1792 of yacc.c */ -#line 1370 "./util/configparser.y" +#line 1379 "./util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3802,17 +3820,17 @@ yyreduce: } break; - case 265: + case 267: /* Line 1792 of yacc.c */ -#line 1379 "./util/configparser.y" +#line 1388 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 276: + case 278: /* Line 1792 of yacc.c */ -#line 1390 "./util/configparser.y" +#line 1399 "./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) @@ -3823,9 +3841,9 @@ yyreduce: } break; - case 277: + case 279: /* Line 1792 of yacc.c */ -#line 1400 "./util/configparser.y" +#line 1409 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3835,9 +3853,9 @@ yyreduce: } break; - case 278: + case 280: /* Line 1792 of yacc.c */ -#line 1409 "./util/configparser.y" +#line 1418 "./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))) @@ -3845,9 +3863,9 @@ yyreduce: } break; - case 279: + case 281: /* Line 1792 of yacc.c */ -#line 1416 "./util/configparser.y" +#line 1425 "./util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3858,9 +3876,9 @@ yyreduce: } break; - case 280: + case 282: /* Line 1792 of yacc.c */ -#line 1426 "./util/configparser.y" +#line 1435 "./util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -3868,9 +3886,9 @@ yyreduce: } break; - case 281: + case 283: /* Line 1792 of yacc.c */ -#line 1433 "./util/configparser.y" +#line 1442 "./util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -3878,9 +3896,9 @@ yyreduce: } break; - case 282: + case 284: /* Line 1792 of yacc.c */ -#line 1440 "./util/configparser.y" +#line 1449 "./util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -3888,9 +3906,9 @@ yyreduce: } break; - case 283: + case 285: /* Line 1792 of yacc.c */ -#line 1447 "./util/configparser.y" +#line 1456 "./util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -3898,17 +3916,17 @@ yyreduce: } break; - case 284: + case 286: /* Line 1792 of yacc.c */ -#line 1454 "./util/configparser.y" +#line 1463 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } break; - case 299: + case 301: /* Line 1792 of yacc.c */ -#line 1471 "./util/configparser.y" +#line 1480 "./util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3917,9 +3935,9 @@ yyreduce: } break; - case 300: + case 302: /* Line 1792 of yacc.c */ -#line 1479 "./util/configparser.y" +#line 1488 "./util/configparser.y" { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dnstap_socket_path); @@ -3927,9 +3945,9 @@ yyreduce: } break; - case 301: + case 303: /* Line 1792 of yacc.c */ -#line 1486 "./util/configparser.y" +#line 1495 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3938,9 +3956,9 @@ yyreduce: } break; - case 302: + case 304: /* Line 1792 of yacc.c */ -#line 1494 "./util/configparser.y" +#line 1503 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3949,9 +3967,9 @@ yyreduce: } break; - case 303: + case 305: /* Line 1792 of yacc.c */ -#line 1502 "./util/configparser.y" +#line 1511 "./util/configparser.y" { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dnstap_identity); @@ -3959,9 +3977,9 @@ yyreduce: } break; - case 304: + case 306: /* Line 1792 of yacc.c */ -#line 1509 "./util/configparser.y" +#line 1518 "./util/configparser.y" { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dnstap_version); @@ -3969,9 +3987,9 @@ yyreduce: } break; - case 305: + case 307: /* Line 1792 of yacc.c */ -#line 1516 "./util/configparser.y" +#line 1525 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3981,9 +3999,9 @@ yyreduce: } break; - case 306: + case 308: /* Line 1792 of yacc.c */ -#line 1525 "./util/configparser.y" +#line 1534 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3993,9 +4011,9 @@ yyreduce: } break; - case 307: + case 309: /* Line 1792 of yacc.c */ -#line 1534 "./util/configparser.y" +#line 1543 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4005,9 +4023,9 @@ yyreduce: } break; - case 308: + case 310: /* Line 1792 of yacc.c */ -#line 1543 "./util/configparser.y" +#line 1552 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4017,9 +4035,9 @@ yyreduce: } break; - case 309: + case 311: /* Line 1792 of yacc.c */ -#line 1552 "./util/configparser.y" +#line 1561 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4029,9 +4047,9 @@ yyreduce: } break; - case 310: + case 312: /* Line 1792 of yacc.c */ -#line 1561 "./util/configparser.y" +#line 1570 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4041,17 +4059,17 @@ yyreduce: } break; - case 311: + case 313: /* Line 1792 of yacc.c */ -#line 1570 "./util/configparser.y" +#line 1579 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } break; - case 315: + case 317: /* Line 1792 of yacc.c */ -#line 1579 "./util/configparser.y" +#line 1588 "./util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->python_script); @@ -4061,7 +4079,7 @@ yyreduce: /* Line 1792 of yacc.c */ -#line 4065 "util/configparser.c" +#line 4083 "util/configparser.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4293,7 +4311,7 @@ yyreturn: /* Line 2055 of yacc.c */ -#line 1584 "./util/configparser.y" +#line 1593 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index c1ff9a5dd..52ec99221 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -202,7 +202,8 @@ extern int yydebug; VAR_RATELIMIT_FOR_DOMAIN = 411, VAR_RATELIMIT_BELOW_DOMAIN = 412, VAR_RATELIMIT_FACTOR = 413, - VAR_CAPS_WHITELIST = 414 + VAR_CAPS_WHITELIST = 414, + VAR_CACHE_MAX_NEGATIVE_TTL = 415 }; #endif /* Tokens. */ @@ -363,6 +364,7 @@ extern int yydebug; #define VAR_RATELIMIT_BELOW_DOMAIN 412 #define VAR_RATELIMIT_FACTOR 413 #define VAR_CAPS_WHITELIST 414 +#define VAR_CACHE_MAX_NEGATIVE_TTL 415 @@ -376,7 +378,7 @@ typedef union YYSTYPE /* Line 2058 of yacc.c */ -#line 380 "util/configparser.h" +#line 382 "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 ddb188fe4..ad7f3d292 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -121,7 +121,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_HARDEN_ALGO_DOWNGRADE VAR_IP_TRANSPARENT %token VAR_RATELIMIT VAR_RATELIMIT_SLABS VAR_RATELIMIT_SIZE %token VAR_RATELIMIT_FOR_DOMAIN VAR_RATELIMIT_BELOW_DOMAIN VAR_RATELIMIT_FACTOR -%token VAR_CAPS_WHITELIST +%token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -185,7 +185,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_ip_transparent | server_ratelimit | server_ratelimit_slabs | server_ratelimit_size | server_ratelimit_for_domain | server_ratelimit_below_domain | server_ratelimit_factor | - server_caps_whitelist + server_caps_whitelist | server_cache_max_negative_ttl ; stubstart: VAR_STUB_ZONE { @@ -1026,6 +1026,15 @@ server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG free($2); } ; +server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG + { + OUTYY(("P(server_cache_max_negative_ttl:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->max_negative_ttl = atoi($2); + free($2); + } + ; server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG { OUTYY(("P(server_cache_min_ttl:%s)\n", $2)); diff --git a/util/data/msgparse.h b/util/data/msgparse.h index 1a5ced356..44497c8ca 100644 --- a/util/data/msgparse.h +++ b/util/data/msgparse.h @@ -76,6 +76,8 @@ struct regional; extern time_t MAX_TTL; /** Minimum TTL that is allowed. */ extern time_t MIN_TTL; +/** Maximum Negative TTL that is allowed */ +extern time_t MAX_NEG_TTL; /** Negative cache time (for entries without any RRs.) */ #define NORR_TTL 5 /* seconds */ diff --git a/util/data/msgreply.c b/util/data/msgreply.c index dc27be905..b1d3df639 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -57,6 +57,8 @@ time_t MAX_TTL = 3600 * 24 * 10; /* ten days */ /** MIN TTL default for messages and rrsets */ time_t MIN_TTL = 0; +/** MAX Negative TTL, for SOA records in authority section */ +time_t MAX_NEG_TTL = 3600; /* one hour */ /** allocate qinfo, return 0 on error */ static int @@ -153,10 +155,23 @@ repinfo_alloc_rrset_keys(struct reply_info* rep, struct alloc_cache* alloc, return 1; } +/** find the minimumttl in the rdata of SOA record */ +static time_t +soa_find_minttl(struct rr_parse* rr) +{ + uint16_t rlen = sldns_read_uint16(rr->ttl_data+4); + if(rlen < 20) + return 0; /* rdata too small for SOA (dname, dname, 5*32bit) */ + /* minimum TTL is the last 32bit value in the rdata of the record */ + /* at position ttl_data + 4(ttl) + 2(rdatalen) + rdatalen - 4(timeval)*/ + return (time_t)sldns_read_uint32(rr->ttl_data+6+rlen-4); +} + /** do the rdata copy */ static int rdata_copy(sldns_buffer* pkt, struct packed_rrset_data* data, uint8_t* to, - struct rr_parse* rr, time_t* rr_ttl, uint16_t type) + struct rr_parse* rr, time_t* rr_ttl, uint16_t type, + sldns_pkt_section section) { uint16_t pkt_len; const sldns_rr_descriptor* desc; @@ -165,6 +180,14 @@ rdata_copy(sldns_buffer* pkt, struct packed_rrset_data* data, uint8_t* to, /* RFC 2181 Section 8. if msb of ttl is set treat as if zero. */ if(*rr_ttl & 0x80000000U) *rr_ttl = 0; + if(type == LDNS_RR_TYPE_SOA && section == LDNS_SECTION_AUTHORITY) { + /* negative response. see if TTL of SOA record larger than the + * minimum-ttl in the rdata of the SOA record */ + if(*rr_ttl > soa_find_minttl(rr)) + *rr_ttl = soa_find_minttl(rr); + if(*rr_ttl > MAX_NEG_TTL) + *rr_ttl = MAX_NEG_TTL; + } if(*rr_ttl < MIN_TTL) *rr_ttl = MIN_TTL; if(*rr_ttl < data->ttl) @@ -254,7 +277,7 @@ parse_rr_copy(sldns_buffer* pkt, struct rrset_parse* pset, data->rr_data[i] = nextrdata; nextrdata += rr->size; if(!rdata_copy(pkt, data, data->rr_data[i], rr, - &data->rr_ttl[i], pset->type)) + &data->rr_ttl[i], pset->type, pset->section)) return 0; rr = rr->next; } @@ -265,7 +288,7 @@ parse_rr_copy(sldns_buffer* pkt, struct rrset_parse* pset, data->rr_data[i] = nextrdata; nextrdata += rr->size; if(!rdata_copy(pkt, data, data->rr_data[i], rr, - &data->rr_ttl[i], LDNS_RR_TYPE_RRSIG)) + &data->rr_ttl[i], LDNS_RR_TYPE_RRSIG, pset->section)) return 0; rr = rr->next; } -- 2.47.2