From ca38a8bd55a0139be98e40a736bee5b7744b050f Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 10 May 2011 11:20:14 +0000 Subject: [PATCH] - feature, ignore-cd-flag: yesno to provide dnssec to legacy servers. git-svn-id: file:///svn/unbound/trunk@2414 be551aaa-1e26-0410-a405-d3ace91eadb9 --- daemon/worker.c | 6 +- doc/Changelog | 1 + doc/example.conf.in | 5 + doc/unbound.conf.5.in | 8 + services/mesh.c | 3 +- util/config_file.c | 3 + util/config_file.h | 2 + util/configlexer.c | 2090 +++++++++++++++++++++-------------------- util/configlexer.lex | 1 + util/configparser.c | 1157 ++++++++++++----------- util/configparser.h | 17 +- util/configparser.y | 12 +- 12 files changed, 1690 insertions(+), 1615 deletions(-) diff --git a/daemon/worker.c b/daemon/worker.c index 6d667f377..0b0ef679b 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -446,7 +446,8 @@ answer_norec_from_cache(struct worker* worker, struct query_info* qinfo, uint16_t udpsize = edns->udp_size; int secure = 0; uint32_t timenow = *worker->env.now; - int must_validate = !(flags&BIT_CD) && worker->env.need_to_validate; + int must_validate = (!(flags&BIT_CD) || worker->env.cfg->ignore_cd) + && worker->env.need_to_validate; struct dns_msg *msg = NULL; struct delegpt *dp; @@ -522,7 +523,8 @@ answer_from_cache(struct worker* worker, struct query_info* qinfo, uint32_t timenow = *worker->env.now; uint16_t udpsize = edns->udp_size; int secure; - int must_validate = !(flags&BIT_CD) && worker->env.need_to_validate; + int must_validate = (!(flags&BIT_CD) || worker->env.cfg->ignore_cd) + && worker->env.need_to_validate; /* see if it is possible */ if(rep->ttl < timenow) { /* the rrsets may have been updated in the meantime. diff --git a/doc/Changelog b/doc/Changelog index 9272b67c8..c8814c7bb 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 10 May 2011: Wouter - bug#386: --enable-allsymbols option links all binaries to libunbound and reduces install size significantly. + - feature, ignore-cd-flag: yesno to provide dnssec to legacy servers. 14 April 2011: Wouter - configure created with newer autoconf 2.66. diff --git a/doc/example.conf.in b/doc/example.conf.in index 8f2567ecf..1df9bb7b8 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -378,6 +378,11 @@ server: # replies if the message is found secure. The default is off. # val-permissive-mode: no + # Ignore the CD flag in incoming queries and refuse them bogus data. + # Enable it if the only clients of unbound are legacy servers (w2008) + # that set CD but cannot validate themselves. + # ignore-cd-flag: no + # Have the validator log failed validations for your diagnosis. # 0: off. 1: A line per failed user query. 2: With reason and bad IP. # val-log-level: 0 diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 06f37d171..b323f25ac 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -657,6 +657,14 @@ receives the bogus data. For messages that are found to be secure the AD bit is set in replies. Also logging is performed as for full validation. The default value is "no". .TP +.B ignore\-cd\-flag: \fI +Instruct unbound to ignore the CD flag from clients and refuse to +return bogus answers to them. Thus, the CD (Checking Disabled) flag +does not disable checking any more. This is useful if legacy (w2008) +servers that set the CD flag but cannot validate DNSSEC themselves are +the clients, and then unbound provides them with DNSSEC protection. +The default value is "no". +.TP .B val\-nsec3\-keysize\-iterations: \fI<"list of values"> List of keysize and iteration count values, separated by spaces, surrounded by quotes. Default is "1024 150 2048 500 4096 2500". This determines the diff --git a/services/mesh.c b/services/mesh.c index 0fe738c07..660c1fd76 100644 --- a/services/mesh.c +++ b/services/mesh.c @@ -772,7 +772,8 @@ mesh_send_reply(struct mesh_state* m, int rcode, struct reply_info* rep, struct timeval duration; int secure; /* examine security status */ - if(m->s.env->need_to_validate && !(r->qflags&BIT_CD) && rep && + if(m->s.env->need_to_validate && (!(r->qflags&BIT_CD) || + m->s.env->cfg->ignore_cd) && rep && rep->security <= sec_status_bogus) { rcode = LDNS_RCODE_SERVFAIL; if(m->s.env->cfg->stat_extended) diff --git a/util/config_file.c b/util/config_file.c index cd2f8503b..55e695f70 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -177,6 +177,7 @@ config_create(void) cfg->val_log_level = 0; cfg->val_log_squelch = 0; cfg->val_permissive_mode = 0; + cfg->ignore_cd = 0; cfg->add_holddown = 30*24*3600; cfg->del_holddown = 30*24*3600; cfg->keep_missing = 366*24*3600; /* one year plus a little leeway */ @@ -382,6 +383,7 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_NUMBER_OR_ZERO("val-log-level:", val_log_level) else S_YNO("val-log-squelch:", val_log_squelch) else S_YNO("val-permissive-mode:", val_permissive_mode) + else S_YNO("ignore-cd-flag:", ignore_cd) else S_STR("val-nsec3-keysize-iterations:", val_nsec3_key_iterations) else S_UNSIGNED_OR_ZERO("add-holddown:", add_holddown) else S_UNSIGNED_OR_ZERO("del-holddown:", del_holddown) @@ -599,6 +601,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_YNO(opt, "val-clean-additional", val_clean_additional) else O_DEC(opt, "val-log-level", val_log_level) else O_YNO(opt, "val-permissive-mode", val_permissive_mode) + else O_YNO(opt, "ignore-cd-flag", ignore_cd) else O_STR(opt, "val-nsec3-keysize-iterations",val_nsec3_key_iterations) else O_UNS(opt, "add-holddown", add_holddown) else O_UNS(opt, "del-holddown", del_holddown) diff --git a/util/config_file.h b/util/config_file.h index 7a014f542..4e3867114 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -236,6 +236,8 @@ struct config_file { int val_log_squelch; /** should validator allow bogus messages to go through */ int val_permissive_mode; + /** ignore the CD flag in incoming queries and refuse them bogus data */ + int ignore_cd; /** nsec3 maximum iterations per key size, string */ char* val_nsec3_key_iterations; /** autotrust add holddown time, in seconds */ diff --git a/util/configlexer.c b/util/configlexer.c index 9877393a8..c6e215017 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -362,8 +362,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 131 -#define YY_END_OF_BUFFER 132 +#define YY_NUM_RULES 132 +#define YY_END_OF_BUFFER 133 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -371,144 +371,145 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1236] = +static yyconst flex_int16_t yy_accept[1250] = { 0, - 1, 1, 113, 113, 117, 117, 121, 121, 125, 125, - 1, 1, 132, 129, 1, 111, 111, 130, 2, 130, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 113, - 114, 114, 115, 130, 117, 118, 118, 119, 130, 124, - 121, 122, 122, 123, 130, 125, 126, 126, 127, 130, - 128, 112, 2, 116, 130, 128, 129, 0, 1, 2, - 2, 2, 2, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 113, 0, 117, 0, 124, - 0, 121, 125, 0, 128, 0, 2, 2, 128, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 128, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 128, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 57, 129, 129, 129, 129, 129, 6, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - - 129, 129, 129, 129, 129, 128, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 128, 129, 129, - 129, 129, 22, 129, 129, 129, 129, 129, 12, 13, - 129, 15, 14, 129, 129, 129, 129, 129, 129, 129, - - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 109, 129, 129, 129, 129, - 3, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 128, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 120, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 25, 129, 129, 129, 129, 129, 129, 129, 26, - - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 70, 120, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 69, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 55, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - - 129, 129, 129, 23, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 24, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 17, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 20, 21, 129, 58, 59, 129, 56, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 5, 129, 129, 129, 129, 129, 129, 129, - - 129, 129, 129, 129, 129, 72, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 95, 94, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 27, - 129, 129, 129, 129, 60, 129, 129, 129, 129, 129, - 92, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 46, 129, 129, 129, 129, 129, 129, 129, 129, 129, - - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 4, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 89, 129, 129, 129, 129, 129, 129, 129, 103, - 90, 129, 16, 129, 129, 129, 129, 62, 63, 61, - 129, 129, 129, 129, 129, 129, 68, 129, 129, 129, - 129, 129, 129, 129, 129, 91, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 54, 129, 129, 129, 129, 129, 129, 129, 129, 129, - - 129, 129, 77, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 34, 35, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 67, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 71, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 108, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 81, 129, 84, 129, 129, 129, 129, 66, 129, 129, - 101, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 36, 37, - - 129, 42, 85, 129, 96, 93, 129, 30, 129, 87, - 129, 129, 129, 129, 129, 7, 129, 53, 100, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 73, 129, 129, 110, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 86, 29, 31, 129, - 129, 129, 129, 129, 52, 129, 129, 129, 104, 129, - 129, 129, 129, 129, 129, 50, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 106, 129, 129, 28, 129, - 129, 129, 129, 129, 129, 11, 129, 129, 129, 129, - - 129, 129, 10, 129, 129, 32, 129, 105, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 80, 79, - 129, 107, 102, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 38, 129, 129, 129, 129, 129, 33, - 129, 129, 129, 74, 76, 129, 129, 129, 78, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 18, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 99, 129, 129, 129, - 129, 129, 129, 129, 19, 129, 9, 129, 129, 97, - 43, 129, 129, 129, 83, 129, 64, 129, 129, 129, - - 45, 49, 44, 129, 39, 129, 8, 129, 129, 82, - 129, 129, 129, 48, 129, 40, 129, 98, 129, 129, - 75, 65, 47, 41, 129, 129, 129, 129, 51, 129, - 129, 129, 129, 88, 0 + 1, 1, 114, 114, 118, 118, 122, 122, 126, 126, + 1, 1, 133, 130, 1, 112, 112, 131, 2, 131, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 114, + 115, 115, 116, 131, 118, 119, 119, 120, 131, 125, + 122, 123, 123, 124, 131, 126, 127, 127, 128, 131, + 129, 113, 2, 117, 131, 129, 130, 0, 1, 2, + 2, 2, 2, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 114, 0, 118, 0, + 125, 0, 122, 126, 0, 129, 0, 2, 2, 129, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 57, 130, 130, 130, + 130, 130, 6, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + + 130, 130, 130, 130, 130, 130, 130, 130, 130, 129, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 129, 130, 130, 130, 130, 22, 130, 130, + 130, 130, 130, 12, 13, 130, 15, 14, 130, 130, + + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 110, 130, 130, 130, 130, 3, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 121, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 25, 130, + + 130, 130, 130, 130, 130, 130, 26, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 70, 121, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 69, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 55, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 23, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 24, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 17, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 20, 21, 130, 58, 59, 130, 56, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + + 130, 5, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 72, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 96, 95, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 27, + 130, 130, 130, 130, 60, 130, 130, 130, 130, 130, + 93, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + + 46, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 4, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 90, 130, 130, 130, 130, 130, 130, 130, + 104, 91, 130, 16, 130, 130, 130, 130, 62, 63, + 61, 130, 130, 130, 130, 130, 130, 68, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 92, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + + 130, 130, 54, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 77, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 34, 35, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 67, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 71, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 109, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 81, 130, 85, 130, 130, 130, 130, + 66, 130, 130, 102, 130, 130, 130, 130, 130, 130, + + 130, 130, 130, 130, 130, 130, 130, 84, 130, 130, + 130, 130, 36, 37, 130, 42, 86, 130, 97, 94, + 130, 30, 130, 88, 130, 130, 130, 130, 130, 7, + 130, 53, 101, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 73, 130, 130, 111, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 87, 29, 31, 130, 130, 130, 130, 130, 52, 130, + 130, 130, 105, 130, 130, 130, 130, 130, 130, 50, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 107, + + 130, 130, 28, 130, 130, 130, 130, 130, 130, 11, + 130, 130, 130, 130, 130, 130, 10, 130, 130, 32, + 130, 106, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 80, 79, 130, 108, 103, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 38, 130, 130, + 130, 130, 130, 33, 130, 130, 130, 74, 76, 130, + 130, 130, 78, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 18, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 100, 130, 130, 130, 130, 130, 130, 130, 19, 130, + + 9, 130, 130, 98, 43, 130, 130, 130, 83, 130, + 64, 130, 130, 130, 45, 49, 44, 130, 39, 130, + 8, 130, 130, 82, 130, 130, 130, 48, 130, 40, + 130, 99, 130, 130, 75, 65, 47, 41, 130, 130, + 130, 130, 51, 130, 130, 130, 130, 89, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -551,571 +552,577 @@ static yyconst flex_int32_t yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1250] = +static yyconst flex_int16_t yy_base[1264] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 2230, 2128, 50, 2482, 2482, 2482, 129, 94, + 87, 108, 2401, 2387, 50, 2505, 2505, 2505, 129, 94, 70, 104, 122, 90, 92, 115, 126, 95, 84, 132, - 133, 138, 50, 135, 136, 156, 145, 155, 157, 1820, - 2482, 2482, 2482, 70, 1695, 2482, 2482, 2482, 42, 1498, - 1461, 2482, 2482, 2482, 176, 1377, 2482, 2482, 2482, 181, - 1342, 2482, 186, 2482, 190, 111, 1093, 196, 120, 0, - 207, 0, 0, 103, 189, 183, 191, 192, 197, 200, - 202, 142, 209, 205, 208, 213, 214, 217, 218, 224, - 215, 233, 236, 225, 235, 237, 240, 241, 226, 245, - - 248, 251, 252, 255, 259, 257, 253, 267, 263, 261, - 265, 49, 270, 269, 273, 995, 286, 848, 289, 811, - 296, 710, 466, 301, 282, 305, 309, 0, 302, 306, - 312, 289, 308, 295, 313, 319, 315, 322, 334, 323, - 318, 321, 327, 325, 330, 328, 332, 331, 336, 339, - 340, 351, 352, 362, 345, 363, 360, 369, 372, 370, - 373, 361, 374, 371, 375, 376, 378, 382, 384, 385, - 388, 390, 389, 386, 394, 402, 412, 399, 409, 400, - 414, 415, 411, 413, 417, 423, 424, 425, 429, 432, - 434, 433, 437, 438, 444, 440, 442, 445, 451, 452, - - 453, 455, 456, 458, 459, 465, 461, 463, 462, 469, - 467, 481, 486, 470, 477, 480, 487, 489, 493, 490, - 492, 499, 505, 501, 503, 506, 502, 504, 515, 512, - 511, 514, 520, 518, 540, 522, 524, 525, 526, 529, - 527, 535, 538, 534, 536, 541, 548, 560, 566, 550, - 553, 557, 567, 572, 571, 568, 576, 578, 579, 580, - 582, 594, 577, 592, 585, 595, 604, 593, 601, 603, - 605, 606, 2482, 609, 611, 612, 614, 615, 2482, 616, - 617, 619, 624, 622, 639, 625, 618, 631, 628, 641, - 638, 650, 644, 651, 621, 653, 648, 656, 659, 660, - - 661, 665, 662, 666, 669, 672, 678, 675, 677, 680, - 682, 686, 688, 689, 691, 690, 697, 702, 710, 707, - 709, 716, 692, 712, 714, 720, 719, 721, 722, 724, - 725, 728, 732, 735, 734, 738, 744, 737, 746, 752, - 749, 753, 754, 758, 727, 759, 760, 761, 762, 776, - 774, 768, 778, 784, 780, 785, 766, 788, 789, 772, - 791, 798, 794, 796, 797, 799, 801, 803, 805, 808, - 807, 817, 818, 809, 819, 821, 810, 828, 829, 831, - 825, 836, 2482, 839, 838, 840, 841, 844, 2482, 2482, - 149, 2482, 2482, 843, 847, 850, 856, 860, 861, 855, - - 857, 869, 863, 874, 865, 876, 881, 871, 883, 885, - 886, 888, 889, 896, 897, 892, 899, 901, 890, 905, - 904, 913, 906, 920, 916, 2482, 918, 917, 922, 925, - 2482, 919, 924, 929, 926, 927, 932, 933, 937, 934, - 944, 949, 942, 950, 951, 952, 954, 963, 957, 959, - 965, 969, 966, 968, 971, 972, 975, 974, 976, 980, - 1001, 981, 982, 983, 988, 984, 989, 990, 997, 1008, - 1013, 1011, 1014, 1019, 1022, 991, 1015, 1021, 1024, 2482, - 1033, 1032, 1030, 1031, 1036, 1037, 1038, 1042, 1039, 1048, - 1050, 2482, 1043, 1051, 1055, 1061, 1054, 1052, 1069, 2482, - - 1072, 1073, 1065, 1070, 1075, 1076, 1078, 1081, 1082, 1084, - 1089, 1080, 1087, 1091, 1094, 1096, 1097, 1102, 1108, 1110, - 1106, 1112, 1109, 1115, 1114, 1120, 1117, 1118, 1119, 1122, - 2482, 216, 1123, 1124, 1125, 1136, 1146, 1143, 1130, 1140, - 1150, 1134, 1142, 1133, 1151, 1152, 1153, 1156, 1159, 1160, - 1162, 1163, 1165, 1170, 1167, 1168, 1172, 1171, 1173, 1174, - 1176, 2482, 1181, 1183, 1184, 1187, 1198, 1196, 1199, 1205, - 1201, 1206, 1212, 1203, 1207, 1215, 1219, 1216, 1218, 1220, - 1224, 2482, 1223, 1226, 1228, 1230, 1231, 1232, 1233, 1237, - 1243, 1248, 1239, 1253, 1255, 1256, 1260, 1245, 1249, 1263, - - 1264, 1266, 1267, 2482, 1275, 1276, 1273, 1284, 1277, 1269, - 1280, 1290, 1281, 1283, 1292, 1285, 1293, 1294, 1295, 1297, - 1298, 1300, 1299, 2482, 1308, 1302, 1309, 1310, 1311, 1304, - 1316, 1314, 1321, 1319, 1325, 1326, 1330, 1336, 1332, 1338, - 1339, 1340, 1343, 1351, 1357, 1355, 2482, 1353, 1345, 1349, - 1365, 1363, 1366, 1367, 1374, 1370, 1371, 1372, 1375, 1378, - 1376, 1380, 1381, 1379, 1383, 1386, 1393, 1388, 1401, 1398, - 1396, 1409, 2482, 2482, 1410, 2482, 2482, 1407, 2482, 1411, - 1412, 1413, 1415, 1417, 1419, 1421, 1422, 1424, 1425, 1426, - 1428, 1429, 2482, 1431, 1437, 1439, 1433, 1435, 1442, 1443, - - 1452, 1459, 1444, 1456, 1460, 2482, 1458, 1448, 1465, 1472, - 1474, 1461, 1469, 1471, 1477, 1478, 1481, 1482, 1484, 1485, - 1486, 1490, 1488, 1496, 1492, 1493, 1494, 1495, 1507, 1499, - 1503, 2482, 2482, 1517, 1509, 1497, 1521, 1522, 1528, 1525, - 1526, 1527, 1529, 1534, 1532, 1535, 1536, 1538, 1541, 2482, - 1544, 1550, 1543, 1552, 2482, 1556, 1542, 1551, 1558, 1562, - 2482, 1563, 1565, 1566, 1567, 1568, 1575, 1576, 1577, 1579, - 1581, 1582, 1585, 1591, 1588, 1587, 1590, 1602, 1604, 1589, - 1607, 1613, 1593, 1609, 1610, 1612, 1616, 1618, 1624, 1620, - 2482, 1626, 1622, 1632, 1625, 1634, 1636, 1629, 1635, 1637, - - 1638, 1639, 1645, 1642, 1646, 1649, 1652, 1656, 1653, 1651, - 1664, 1654, 1659, 2482, 1666, 1672, 1670, 1674, 1679, 1682, - 1676, 1673, 1683, 1684, 1686, 1688, 1689, 1691, 1699, 1701, - 1707, 1704, 1711, 1708, 1709, 1712, 1714, 1722, 1715, 1723, - 1719, 2482, 1725, 1727, 1730, 1732, 1735, 1736, 1734, 2482, - 2482, 1721, 2482, 1744, 1741, 1746, 1748, 2482, 2482, 2482, - 1747, 1754, 1750, 1751, 1758, 1763, 2482, 1753, 1764, 1766, - 1768, 1769, 1770, 1771, 1772, 2482, 1774, 1775, 1776, 1784, - 1789, 1778, 1785, 1795, 1791, 1798, 1783, 1799, 1805, 1802, - 2482, 1806, 1808, 1810, 1811, 1812, 1817, 1815, 1816, 1813, - - 1814, 1828, 2482, 1831, 1818, 1832, 1836, 1838, 1840, 1842, - 1844, 1845, 1846, 1852, 1849, 2482, 2482, 1853, 1855, 1863, - 1856, 1860, 1866, 1858, 1867, 1869, 1871, 1874, 1875, 1876, - 1877, 1878, 2482, 1879, 1880, 1883, 1884, 1887, 1892, 1888, - 1903, 1905, 1881, 1907, 1909, 2482, 1910, 1912, 1913, 1917, - 1918, 1914, 1919, 1923, 1926, 1921, 1928, 2482, 1930, 1931, - 1933, 1935, 1937, 1938, 1941, 1943, 1944, 1945, 1955, 1948, - 2482, 1949, 2482, 1951, 1961, 1968, 1964, 2482, 1956, 1966, - 2482, 1967, 1972, 1975, 1976, 1979, 1984, 1981, 1985, 1987, - 1988, 1989, 1995, 1992, 1993, 1996, 1999, 2000, 2482, 2482, - - 2003, 2482, 2482, 2011, 2482, 2482, 2013, 2482, 2015, 2482, - 2021, 2017, 2006, 1997, 2020, 2482, 2024, 2482, 2482, 2026, - 2027, 2028, 2035, 2030, 2032, 2036, 2037, 2039, 2038, 2041, - 2043, 2044, 2045, 2046, 2047, 2053, 2054, 2055, 2056, 2063, - 2482, 2057, 2068, 2482, 2074, 2076, 2064, 2066, 2077, 2078, - 2080, 2082, 2088, 2086, 2087, 2089, 2482, 2482, 2482, 2090, - 2093, 2092, 2097, 2098, 2482, 2103, 2100, 2105, 2482, 2107, - 2111, 2113, 2115, 2118, 2117, 2482, 2114, 2121, 2127, 2124, - 2131, 2135, 2141, 2138, 2143, 2482, 2140, 2144, 2482, 2146, - 2147, 2148, 2150, 2151, 2153, 2482, 2154, 2155, 2164, 2158, - - 2161, 2165, 2482, 2166, 2168, 2482, 2172, 2482, 2176, 2177, - 2179, 2184, 2186, 2180, 2187, 2193, 2190, 2191, 2482, 2482, - 2194, 2482, 2482, 2192, 2197, 2199, 2202, 2204, 2207, 2206, - 2208, 2210, 2209, 2482, 2213, 2214, 2222, 2223, 2215, 2482, - 2228, 2230, 2225, 2482, 2482, 2231, 2238, 2235, 2482, 2240, - 2243, 2241, 2233, 2247, 2249, 2251, 2253, 2254, 2256, 2255, - 2257, 2264, 2265, 2482, 2269, 2259, 2266, 2274, 2278, 2271, - 2275, 2280, 2283, 2284, 2286, 2289, 2482, 2291, 2292, 2294, - 2299, 2302, 2304, 2307, 2482, 2310, 2482, 2313, 2314, 2482, - 2482, 2295, 2316, 2317, 2482, 2318, 2482, 2320, 2325, 2326, - - 2482, 2482, 2482, 2328, 2482, 2329, 2482, 2332, 2321, 2482, - 2334, 2338, 2342, 2482, 2344, 2482, 2346, 2482, 2335, 2348, - 2482, 2482, 2482, 2482, 2350, 2339, 2356, 2351, 2482, 2353, - 2357, 2358, 2362, 2482, 2482, 2390, 2397, 2404, 2411, 2418, - 94, 2425, 2432, 2439, 2446, 2453, 2460, 2467, 2474 + 135, 138, 50, 142, 148, 141, 144, 155, 170, 2386, + 2505, 2505, 2505, 70, 2318, 2505, 2505, 2505, 42, 2151, + 1985, 2505, 2505, 2505, 187, 1905, 2505, 2505, 2505, 173, + 1741, 2505, 191, 2505, 195, 111, 1712, 201, 120, 0, + 212, 0, 0, 103, 168, 177, 149, 196, 188, 198, + 199, 136, 213, 205, 207, 215, 216, 218, 220, 209, + 229, 221, 231, 238, 224, 230, 239, 243, 242, 244, + + 247, 248, 253, 254, 246, 257, 260, 263, 270, 267, + 269, 173, 49, 271, 261, 275, 1511, 286, 1145, 289, + 1065, 300, 915, 865, 293, 772, 306, 310, 0, 303, + 307, 313, 290, 309, 296, 314, 320, 316, 323, 335, + 324, 319, 322, 328, 282, 326, 329, 330, 342, 332, + 336, 333, 346, 352, 358, 365, 340, 368, 364, 372, + 375, 366, 374, 376, 377, 378, 379, 382, 381, 384, + 385, 386, 388, 390, 391, 393, 394, 411, 414, 413, + 410, 399, 416, 425, 421, 402, 419, 423, 427, 433, + 435, 428, 438, 439, 441, 440, 448, 446, 450, 447, + + 459, 455, 456, 457, 458, 461, 463, 464, 470, 466, + 467, 468, 473, 472, 483, 490, 477, 487, 491, 492, + 494, 495, 496, 498, 499, 508, 502, 505, 509, 511, + 514, 520, 516, 517, 518, 524, 526, 544, 530, 529, + 528, 531, 533, 534, 541, 535, 542, 551, 552, 539, + 562, 571, 561, 564, 570, 565, 573, 574, 576, 577, + 583, 584, 582, 585, 588, 595, 596, 598, 599, 600, + 609, 606, 607, 608, 610, 616, 2505, 620, 611, 614, + 618, 623, 2505, 624, 625, 626, 628, 629, 639, 630, + 636, 638, 641, 646, 643, 656, 649, 652, 650, 664, + + 655, 659, 666, 657, 667, 668, 674, 677, 678, 680, + 687, 679, 685, 686, 695, 688, 690, 692, 698, 697, + 705, 709, 711, 713, 715, 721, 717, 718, 720, 727, + 725, 726, 719, 733, 730, 732, 737, 741, 748, 744, + 747, 751, 752, 754, 761, 757, 764, 766, 768, 758, + 760, 770, 778, 779, 787, 785, 762, 788, 794, 734, + 790, 783, 795, 796, 797, 798, 805, 801, 804, 807, + 806, 809, 810, 814, 819, 818, 826, 827, 816, 829, + 830, 833, 835, 817, 837, 838, 842, 2505, 849, 846, + 845, 848, 852, 2505, 2505, 853, 2505, 2505, 855, 854, + + 857, 871, 872, 868, 862, 858, 875, 882, 885, 886, + 888, 893, 895, 869, 877, 897, 899, 901, 902, 909, + 910, 906, 911, 914, 915, 918, 917, 921, 926, 930, + 927, 2505, 928, 929, 935, 937, 2505, 932, 938, 941, + 945, 939, 942, 947, 954, 952, 962, 963, 955, 944, + 964, 965, 970, 973, 972, 976, 977, 983, 979, 981, + 985, 982, 987, 988, 989, 992, 1014, 996, 993, 995, + 998, 1001, 1002, 1003, 1020, 1026, 1024, 1021, 1028, 1004, + 1031, 1033, 1032, 1037, 1039, 1043, 2505, 1049, 1008, 1042, + 1045, 1048, 1050, 1051, 1055, 1054, 1057, 1067, 2505, 1063, + + 1064, 1068, 1072, 1066, 1079, 1081, 2505, 1087, 1084, 1089, + 1083, 1090, 1091, 1095, 1096, 1093, 1097, 1102, 1104, 1106, + 1107, 1108, 1109, 1112, 337, 1116, 1123, 1117, 1125, 1119, + 1121, 1127, 1133, 1128, 1131, 1130, 1134, 2505, 403, 1136, + 1137, 1141, 1147, 1148, 1151, 1144, 1153, 1155, 1154, 1157, + 1163, 1164, 1165, 1166, 1168, 1170, 1173, 1176, 1178, 1179, + 1177, 1181, 1183, 1184, 1185, 1186, 1188, 1190, 2505, 1203, + 1195, 1197, 1196, 1206, 1215, 1207, 1212, 1218, 1222, 1219, + 1225, 1217, 1227, 1233, 1234, 1230, 1232, 1237, 1238, 2505, + 1239, 1241, 1240, 1247, 1244, 1242, 1248, 1252, 1260, 1265, + + 1254, 1268, 1270, 1257, 1272, 1274, 1275, 1276, 1278, 1279, + 1280, 2505, 1289, 1291, 1288, 1295, 1292, 1297, 1298, 1300, + 1282, 1303, 1310, 1304, 1307, 1311, 1312, 1308, 1306, 1314, + 1315, 2505, 1322, 1318, 1319, 1320, 1323, 1330, 1335, 1333, + 1334, 1336, 1340, 1342, 1346, 1349, 1343, 1355, 1345, 1356, + 1357, 1358, 1370, 1371, 1367, 2505, 1369, 1372, 1373, 1380, + 1377, 1381, 1382, 1389, 1383, 1385, 1387, 1390, 1391, 1393, + 1395, 1396, 1394, 1403, 1398, 1408, 1401, 1413, 1415, 1416, + 1423, 2505, 2505, 1424, 2505, 2505, 1426, 2505, 1427, 1422, + 1428, 1429, 1431, 1433, 1435, 1438, 1440, 1441, 1443, 1442, + + 1444, 2505, 1445, 1450, 1456, 1448, 1451, 1454, 1458, 1465, + 1472, 1459, 1466, 1469, 2505, 1473, 1476, 1481, 1482, 1485, + 1487, 1483, 1488, 1489, 1490, 1492, 1494, 1496, 1497, 1498, + 1502, 1507, 1500, 1509, 1506, 1508, 1510, 1515, 1520, 1523, + 1521, 2505, 2505, 1522, 1524, 1529, 1534, 1536, 1544, 1541, + 1538, 1542, 1547, 1549, 1550, 1551, 1552, 1554, 1556, 2505, + 1562, 1564, 1560, 1568, 2505, 1572, 1561, 1567, 1573, 1576, + 2505, 1578, 1581, 1582, 1583, 1590, 1584, 1591, 1592, 1597, + 1599, 1600, 1603, 1606, 1604, 1602, 1605, 1609, 1618, 1610, + 1622, 1628, 1624, 1625, 1626, 1630, 1632, 1634, 1640, 1636, + + 2505, 1642, 1638, 1648, 1627, 1650, 1653, 1660, 1647, 1651, + 1657, 1658, 1641, 1664, 1665, 1667, 1669, 1670, 1673, 1672, + 1674, 1675, 1682, 1683, 2505, 1685, 1692, 1684, 1686, 1695, + 1696, 1688, 1698, 1702, 1703, 1705, 1706, 1707, 1709, 1719, + 1721, 1729, 1713, 1731, 1727, 1730, 1732, 1710, 1738, 1736, + 1742, 1740, 2505, 1743, 1748, 1750, 1745, 1754, 1755, 1753, + 2505, 2505, 1756, 2505, 1763, 1760, 1757, 1765, 2505, 2505, + 2505, 1767, 1776, 1769, 1772, 1777, 1783, 2505, 1780, 1770, + 1784, 1788, 1789, 1791, 1792, 1793, 1794, 2505, 1795, 1796, + 1797, 1802, 1806, 1799, 1807, 1816, 1817, 1819, 1810, 1813, + + 1826, 1827, 2505, 1820, 1823, 1830, 1831, 1835, 1836, 1834, + 1838, 1840, 1841, 1842, 2505, 1849, 1850, 1852, 1854, 1856, + 1859, 1862, 1863, 1864, 1866, 1871, 1868, 2505, 2505, 1873, + 1878, 1883, 1874, 1880, 1887, 1888, 1889, 1872, 1890, 1892, + 1893, 1896, 1895, 1897, 2505, 1900, 1901, 1902, 1906, 1910, + 1914, 1921, 1922, 1924, 1926, 1908, 1929, 1931, 2505, 1932, + 1934, 1936, 1939, 1940, 1941, 1942, 1943, 1949, 1946, 1951, + 2505, 1953, 1954, 1956, 1960, 1961, 1962, 1963, 1964, 1967, + 1969, 1975, 1973, 2505, 1971, 2505, 1981, 1984, 1987, 1988, + 2505, 1986, 1992, 2505, 1993, 1994, 2003, 2005, 1995, 2007, + + 2008, 2000, 2010, 2011, 2012, 2021, 2018, 2505, 2019, 2022, + 2015, 2026, 2505, 2505, 2029, 2505, 2505, 2033, 2505, 2505, + 2037, 2505, 2039, 2505, 2045, 2041, 2034, 2025, 2043, 2505, + 2052, 2505, 2505, 2044, 2053, 2054, 2057, 2046, 2060, 2061, + 2062, 2063, 2064, 2066, 2067, 2068, 2069, 2070, 2071, 2072, + 2079, 2077, 2080, 2088, 2505, 2081, 2090, 2505, 2093, 2096, + 2098, 2100, 2101, 2104, 2102, 2107, 2108, 2109, 2110, 2111, + 2505, 2505, 2505, 2112, 2114, 2116, 2122, 2123, 2505, 2126, + 2127, 2134, 2505, 2135, 2128, 2130, 2138, 2140, 2144, 2505, + 2142, 2148, 2149, 2147, 2156, 2159, 2165, 2164, 2167, 2505, + + 2168, 2169, 2505, 2171, 2170, 2175, 2176, 2177, 2179, 2505, + 2161, 2172, 2187, 2189, 2182, 2192, 2505, 2193, 2194, 2505, + 2196, 2505, 2199, 2200, 2203, 2205, 2209, 2210, 2211, 2217, + 2214, 2216, 2505, 2505, 2215, 2505, 2505, 2218, 2222, 2223, + 2226, 2224, 2229, 2231, 2232, 2235, 2233, 2505, 2236, 2238, + 2246, 2243, 2241, 2505, 2248, 2249, 2252, 2505, 2505, 2254, + 2262, 2255, 2505, 2260, 2266, 2267, 2268, 2270, 2271, 2272, + 2273, 2274, 2276, 2278, 2279, 2285, 2289, 2505, 2291, 2287, + 2293, 2296, 2300, 2297, 2301, 2302, 2306, 2308, 2310, 2311, + 2505, 2303, 2314, 2324, 2326, 2328, 2329, 2332, 2505, 2335, + + 2505, 2338, 2339, 2505, 2505, 2333, 2343, 2340, 2505, 2346, + 2505, 2347, 2349, 2350, 2505, 2505, 2505, 2353, 2505, 2355, + 2505, 2357, 2358, 2505, 2360, 2362, 2364, 2505, 2366, 2505, + 2369, 2505, 2370, 2371, 2505, 2505, 2505, 2505, 2375, 2374, + 2377, 2312, 2505, 2380, 2383, 2381, 2385, 2505, 2505, 2413, + 2420, 2427, 2434, 2441, 94, 2448, 2455, 2462, 2469, 2476, + 2483, 2490, 2497 } ; -static yyconst flex_int16_t yy_def[1250] = +static yyconst flex_int16_t yy_def[1264] = { 0, - 1235, 1, 1236, 1236, 1237, 1237, 1238, 1238, 1239, 1239, - 1240, 1240, 1235, 1241, 1235, 1235, 1235, 1235, 1242, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1243, - 1235, 1235, 1235, 1243, 1244, 1235, 1235, 1235, 1244, 1245, - 1235, 1235, 1235, 1235, 1245, 1246, 1235, 1235, 1235, 1246, - 1247, 1235, 1248, 1235, 1247, 1247, 1241, 1241, 1235, 1249, - 1242, 1249, 1242, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1243, 1243, 1244, 1244, 1245, - 1245, 1235, 1246, 1246, 1247, 1247, 1248, 1248, 1247, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1247, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1247, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1235, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1247, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1247, 1241, 1241, - 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1235, 1235, - 1241, 1235, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, - 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1247, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, - - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1235, 1247, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1235, 1235, 1241, 1235, 1235, 1241, 1235, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1235, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, - 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, - 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, - 1235, 1241, 1235, 1241, 1241, 1241, 1241, 1235, 1235, 1235, - 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1235, 1235, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1235, 1241, 1235, 1241, 1241, 1241, 1241, 1235, 1241, 1241, - 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1235, - - 1241, 1235, 1235, 1241, 1235, 1235, 1241, 1235, 1241, 1235, - 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1235, 1235, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1235, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1235, 1235, 1241, - 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1235, 1241, - 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1235, 1241, - 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, - - 1241, 1241, 1235, 1241, 1241, 1235, 1241, 1235, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1235, - 1241, 1235, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1235, - 1241, 1241, 1241, 1235, 1235, 1241, 1241, 1241, 1235, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1235, 1241, 1235, 1241, 1241, 1235, - 1235, 1241, 1241, 1241, 1235, 1241, 1235, 1241, 1241, 1241, - - 1235, 1235, 1235, 1241, 1235, 1241, 1235, 1241, 1241, 1235, - 1241, 1241, 1241, 1235, 1241, 1235, 1241, 1235, 1241, 1241, - 1235, 1235, 1235, 1235, 1241, 1241, 1241, 1241, 1235, 1241, - 1241, 1241, 1241, 1235, 0, 1235, 1235, 1235, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235 + 1249, 1, 1250, 1250, 1251, 1251, 1252, 1252, 1253, 1253, + 1254, 1254, 1249, 1255, 1249, 1249, 1249, 1249, 1256, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1257, + 1249, 1249, 1249, 1257, 1258, 1249, 1249, 1249, 1258, 1259, + 1249, 1249, 1249, 1249, 1259, 1260, 1249, 1249, 1249, 1260, + 1261, 1249, 1262, 1249, 1261, 1261, 1255, 1255, 1249, 1263, + 1256, 1263, 1256, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1257, 1257, 1258, 1258, + 1259, 1259, 1249, 1260, 1260, 1261, 1261, 1262, 1262, 1261, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1261, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1261, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1255, + 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1261, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1261, 1255, 1255, 1255, 1255, 1249, 1255, 1255, + 1255, 1255, 1255, 1249, 1249, 1255, 1249, 1249, 1255, 1255, + + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1249, 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1261, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, + + 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1261, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1249, 1249, 1255, 1249, 1249, 1255, 1249, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + + 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1249, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, + 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, + 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + + 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1249, 1249, 1255, 1249, 1255, 1255, 1255, 1255, 1249, 1249, + 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + + 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1249, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1249, 1255, 1249, 1255, 1255, 1255, 1255, + 1249, 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, + + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, 1255, + 1255, 1255, 1249, 1249, 1255, 1249, 1249, 1255, 1249, 1249, + 1255, 1249, 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1249, + 1255, 1249, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1249, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1249, 1249, 1249, 1255, 1255, 1255, 1255, 1255, 1249, 1255, + 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1249, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, + + 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1249, + 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, 1255, 1249, + 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1249, 1249, 1255, 1249, 1249, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, 1255, + 1255, 1255, 1255, 1249, 1255, 1255, 1255, 1249, 1249, 1255, + 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1249, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1249, 1255, + + 1249, 1255, 1255, 1249, 1249, 1255, 1255, 1255, 1249, 1255, + 1249, 1255, 1255, 1255, 1249, 1249, 1249, 1255, 1249, 1255, + 1249, 1255, 1255, 1249, 1255, 1255, 1255, 1249, 1255, 1249, + 1255, 1249, 1255, 1255, 1249, 1249, 1249, 1249, 1255, 1255, + 1255, 1255, 1249, 1255, 1255, 1255, 1255, 1249, 0, 1249, + 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, + 1249, 1249, 1249 } ; -static yyconst flex_int16_t yy_nxt[2522] = +static yyconst flex_int16_t yy_nxt[2545] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, 26, 27, 28, 29, 30, 31, 32, 33, 34, 14, 35, 36, 37, 38, 39, 14, 14, 14, 14, 41, - 42, 43, 41, 42, 43, 118, 46, 47, 118, 44, + 42, 43, 41, 42, 43, 119, 46, 47, 119, 44, 48, 69, 44, 46, 47, 70, 49, 48, 57, 58, 59, 68, 68, 49, 51, 52, 53, 54, 60, 18, - 57, 58, 59, 116, 116, 55, 51, 52, 53, 54, - 60, 18, 68, 99, 175, 74, 75, 55, 15, 16, + 57, 58, 59, 117, 117, 55, 51, 52, 53, 54, + 60, 18, 68, 100, 177, 74, 75, 55, 15, 16, 17, 62, 63, 64, 67, 67, 68, 67, 67, 65, - 67, 92, 68, 76, 68, 67, 84, 68, 66, 15, - 16, 17, 62, 63, 64, 68, 68, 77, 130, 86, - 65, 69, 91, 126, 78, 70, 85, 68, 87, 66, - 72, 79, 72, 72, 68, 72, 88, 129, 68, 80, - 72, 73, 89, 81, 68, 68, 82, 68, 68, 83, - 68, 96, 90, 104, 68, 97, 100, 68, 110, 93, - 94, 68, 101, 105, 95, 102, 106, 68, 68, 68, - 114, 98, 103, 107, 115, 111, 138, 120, 466, 120, - 120, 112, 120, 108, 123, 123, 113, 72, 109, 72, - 72, 125, 72, 125, 125, 68, 125, 67, 128, 67, - - 67, 68, 67, 68, 68, 131, 133, 67, 72, 68, - 72, 72, 68, 72, 68, 132, 139, 68, 72, 73, - 68, 68, 134, 135, 136, 68, 68, 68, 126, 68, - 68, 141, 137, 145, 140, 146, 68, 68, 68, 147, - 142, 155, 148, 143, 144, 68, 150, 68, 68, 68, - 151, 153, 68, 68, 156, 154, 149, 68, 160, 158, - 68, 161, 157, 68, 68, 68, 159, 68, 163, 68, - 152, 68, 164, 68, 170, 68, 171, 68, 162, 68, - 166, 68, 68, 169, 165, 68, 167, 176, 168, 116, - 116, 173, 118, 177, 126, 118, 172, 120, 174, 120, - - 120, 68, 120, 178, 123, 123, 125, 68, 125, 125, - 72, 125, 72, 72, 126, 72, 182, 179, 68, 181, - 68, 128, 184, 180, 68, 68, 186, 68, 183, 188, - 68, 68, 187, 68, 68, 68, 194, 68, 196, 68, - 68, 198, 68, 68, 68, 185, 68, 199, 68, 195, - 189, 68, 68, 204, 200, 190, 201, 68, 207, 202, - 191, 203, 197, 68, 68, 208, 192, 193, 206, 209, - 212, 205, 68, 68, 68, 68, 214, 213, 211, 215, - 210, 68, 68, 68, 68, 68, 68, 68, 68, 216, - 68, 217, 219, 218, 68, 221, 68, 68, 68, 224, - - 68, 68, 68, 222, 229, 220, 68, 232, 230, 233, - 223, 68, 68, 236, 68, 226, 227, 231, 225, 235, - 228, 126, 241, 68, 68, 68, 68, 68, 242, 68, - 237, 239, 234, 238, 240, 68, 68, 68, 247, 246, - 243, 68, 248, 245, 68, 68, 68, 244, 251, 68, - 68, 254, 68, 252, 68, 256, 68, 68, 258, 253, - 249, 250, 257, 68, 68, 68, 255, 68, 68, 262, - 68, 68, 265, 68, 68, 68, 266, 68, 124, 68, - 261, 68, 68, 264, 259, 274, 260, 267, 263, 68, - 269, 270, 68, 68, 268, 271, 272, 273, 68, 68, - - 279, 68, 68, 281, 68, 68, 275, 277, 278, 276, - 280, 68, 284, 68, 68, 68, 68, 68, 68, 282, - 286, 287, 290, 68, 68, 289, 68, 68, 288, 291, - 68, 283, 68, 285, 68, 294, 68, 126, 68, 68, - 293, 68, 310, 292, 296, 305, 68, 68, 68, 304, - 68, 295, 68, 68, 297, 298, 308, 307, 306, 309, - 68, 312, 68, 313, 299, 68, 300, 301, 302, 68, - 311, 303, 68, 314, 315, 317, 318, 316, 68, 68, - 68, 320, 319, 68, 68, 321, 323, 324, 68, 68, - 68, 68, 68, 322, 68, 333, 330, 68, 325, 327, - - 329, 332, 326, 331, 68, 68, 68, 68, 336, 334, - 335, 337, 328, 68, 338, 68, 68, 68, 68, 342, - 340, 68, 343, 68, 68, 339, 68, 68, 68, 68, - 68, 68, 345, 68, 68, 346, 68, 68, 341, 347, - 68, 351, 352, 68, 344, 350, 353, 356, 348, 349, - 68, 68, 355, 68, 358, 354, 68, 363, 367, 357, - 68, 359, 68, 68, 366, 68, 368, 364, 68, 360, - 362, 68, 68, 68, 68, 369, 365, 68, 68, 361, - 370, 68, 374, 375, 126, 379, 371, 68, 378, 68, - 68, 372, 68, 383, 68, 373, 377, 376, 68, 380, - - 68, 68, 68, 68, 68, 382, 387, 381, 389, 68, - 384, 122, 385, 390, 68, 388, 386, 391, 392, 68, - 393, 68, 68, 394, 68, 395, 68, 398, 68, 396, - 397, 68, 68, 68, 68, 399, 68, 68, 400, 68, - 68, 402, 408, 404, 68, 407, 68, 68, 405, 68, - 68, 403, 406, 410, 401, 409, 68, 420, 68, 415, - 411, 68, 413, 414, 68, 68, 68, 416, 417, 418, - 68, 68, 68, 68, 68, 419, 423, 422, 68, 424, - 68, 427, 412, 425, 68, 421, 68, 426, 68, 428, - 68, 430, 68, 429, 432, 431, 68, 68, 434, 433, - - 68, 68, 437, 68, 435, 439, 68, 440, 68, 68, - 68, 68, 441, 68, 442, 68, 436, 68, 438, 68, - 68, 68, 68, 121, 446, 447, 448, 443, 445, 68, - 68, 68, 444, 68, 449, 450, 454, 68, 452, 451, - 126, 68, 453, 68, 456, 455, 461, 457, 68, 459, - 68, 68, 68, 68, 462, 68, 68, 460, 458, 68, - 119, 464, 68, 470, 467, 468, 469, 68, 68, 68, - 463, 465, 68, 68, 471, 68, 472, 68, 477, 473, - 480, 68, 481, 68, 474, 478, 68, 482, 68, 484, - 475, 476, 483, 68, 479, 68, 485, 68, 68, 489, - - 68, 68, 68, 486, 68, 488, 491, 492, 68, 68, - 494, 68, 493, 68, 487, 490, 68, 68, 68, 495, - 497, 496, 498, 499, 500, 68, 501, 502, 68, 68, - 68, 68, 68, 504, 68, 506, 68, 68, 68, 68, - 507, 68, 512, 505, 68, 68, 68, 503, 508, 68, - 511, 518, 509, 514, 68, 516, 68, 510, 513, 515, - 517, 68, 68, 68, 68, 519, 68, 524, 522, 68, - 525, 68, 526, 520, 521, 68, 529, 68, 68, 531, - 68, 68, 532, 126, 68, 523, 68, 68, 68, 527, - 528, 534, 68, 68, 68, 68, 68, 543, 530, 533, - - 68, 68, 68, 68, 550, 535, 537, 117, 549, 68, - 545, 559, 536, 68, 546, 548, 538, 547, 539, 544, - 68, 551, 540, 68, 541, 68, 68, 68, 552, 542, - 554, 68, 557, 68, 68, 562, 68, 555, 556, 558, - 563, 560, 68, 68, 68, 68, 553, 564, 68, 68, - 68, 68, 561, 567, 68, 68, 566, 573, 568, 570, - 68, 565, 68, 68, 68, 579, 68, 68, 575, 569, - 574, 571, 576, 68, 572, 578, 580, 68, 577, 581, - 585, 68, 68, 582, 68, 68, 583, 68, 68, 584, - 68, 588, 68, 68, 68, 589, 68, 586, 590, 68, - - 591, 68, 592, 68, 593, 68, 68, 587, 68, 68, - 594, 597, 599, 598, 68, 601, 596, 602, 68, 595, - 68, 68, 68, 604, 68, 600, 68, 68, 608, 68, - 68, 68, 68, 603, 68, 68, 68, 68, 607, 610, - 605, 606, 68, 616, 624, 68, 68, 609, 68, 613, - 611, 614, 68, 617, 68, 68, 619, 615, 68, 612, - 618, 622, 68, 68, 68, 68, 620, 621, 68, 623, - 627, 68, 68, 626, 68, 68, 629, 68, 631, 68, - 68, 625, 68, 68, 68, 68, 68, 628, 68, 638, - 632, 630, 633, 68, 634, 68, 68, 641, 635, 68, - - 639, 636, 637, 643, 645, 646, 640, 642, 68, 647, - 68, 68, 650, 68, 651, 68, 644, 68, 68, 68, - 649, 648, 656, 652, 68, 653, 657, 68, 68, 654, - 68, 68, 68, 658, 659, 68, 68, 655, 68, 665, - 68, 660, 68, 68, 68, 68, 661, 664, 662, 68, - 663, 68, 670, 666, 673, 68, 668, 68, 667, 674, - 68, 68, 669, 671, 676, 68, 677, 68, 68, 681, - 675, 679, 68, 678, 672, 68, 68, 680, 68, 68, - 682, 68, 686, 687, 684, 68, 685, 68, 68, 68, - 688, 689, 68, 68, 683, 68, 68, 68, 690, 696, - - 691, 693, 68, 692, 68, 68, 68, 68, 700, 68, - 68, 68, 68, 694, 68, 705, 68, 697, 695, 706, - 68, 68, 68, 68, 699, 698, 68, 709, 68, 701, - 703, 68, 712, 68, 704, 702, 711, 68, 68, 708, - 707, 710, 68, 717, 68, 713, 715, 714, 68, 718, - 68, 68, 68, 719, 126, 68, 716, 68, 725, 721, - 724, 68, 720, 68, 726, 68, 722, 68, 727, 68, - 728, 729, 731, 723, 733, 68, 732, 68, 68, 68, - 730, 736, 68, 68, 68, 735, 68, 68, 68, 124, - 68, 68, 68, 68, 744, 68, 745, 734, 68, 746, - - 68, 737, 738, 739, 741, 68, 740, 743, 68, 742, - 68, 747, 750, 68, 748, 751, 753, 754, 755, 68, - 749, 68, 68, 68, 68, 68, 756, 68, 752, 68, - 761, 68, 759, 68, 68, 763, 68, 68, 68, 757, - 68, 68, 766, 68, 760, 68, 768, 68, 765, 68, - 758, 68, 771, 762, 68, 68, 68, 775, 764, 767, - 68, 769, 122, 770, 68, 772, 777, 773, 68, 776, - 68, 68, 68, 68, 774, 781, 778, 68, 780, 784, - 783, 68, 779, 68, 68, 782, 68, 785, 788, 68, - 68, 786, 791, 68, 68, 790, 68, 68, 68, 792, - - 68, 787, 68, 798, 68, 68, 68, 68, 68, 68, - 121, 68, 789, 797, 793, 68, 796, 794, 795, 68, - 804, 68, 802, 805, 799, 800, 803, 801, 809, 68, - 808, 806, 807, 68, 68, 813, 814, 68, 68, 68, - 68, 68, 810, 812, 68, 811, 68, 68, 68, 821, - 68, 824, 816, 68, 68, 68, 68, 825, 815, 817, - 818, 826, 68, 68, 68, 820, 822, 827, 68, 819, - 68, 823, 830, 828, 68, 68, 829, 68, 68, 68, - 68, 835, 831, 836, 837, 838, 832, 68, 68, 68, - 842, 68, 833, 68, 68, 834, 839, 68, 846, 68, - - 68, 68, 68, 68, 841, 68, 844, 843, 849, 845, - 852, 840, 847, 850, 68, 851, 68, 848, 853, 68, - 854, 68, 68, 858, 68, 68, 855, 859, 68, 860, - 68, 861, 68, 863, 68, 862, 68, 68, 68, 865, - 856, 68, 857, 868, 68, 867, 68, 68, 68, 68, - 68, 68, 864, 869, 68, 870, 876, 68, 68, 878, - 871, 68, 866, 68, 68, 68, 68, 872, 68, 873, - 874, 68, 875, 880, 882, 881, 68, 884, 68, 888, - 877, 879, 68, 887, 68, 68, 68, 886, 68, 883, - 891, 68, 885, 890, 68, 68, 68, 893, 68, 892, - - 68, 68, 889, 68, 897, 894, 901, 119, 902, 898, - 895, 68, 903, 68, 904, 896, 68, 900, 906, 68, - 68, 68, 899, 68, 68, 908, 68, 68, 905, 911, - 913, 68, 907, 68, 68, 68, 909, 68, 916, 68, - 915, 917, 68, 914, 68, 922, 68, 68, 68, 912, - 918, 910, 919, 68, 920, 921, 68, 923, 68, 68, - 68, 929, 68, 68, 931, 68, 68, 926, 924, 927, - 68, 925, 932, 928, 933, 68, 68, 935, 68, 930, - 68, 68, 68, 68, 68, 934, 68, 68, 68, 943, - 68, 942, 937, 938, 939, 68, 68, 68, 940, 936, - - 946, 68, 948, 68, 941, 945, 944, 68, 950, 949, - 68, 68, 954, 952, 68, 951, 947, 68, 68, 955, - 68, 958, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 953, 117, 960, 957, 959, 961, 956, 962, 963, - 68, 964, 966, 68, 68, 965, 967, 971, 68, 968, - 68, 973, 68, 970, 68, 969, 68, 68, 68, 972, - 975, 68, 976, 978, 68, 68, 981, 68, 68, 979, - 68, 977, 68, 974, 980, 68, 982, 984, 68, 68, - 983, 68, 985, 68, 987, 986, 68, 68, 68, 68, - 68, 68, 68, 68, 995, 68, 68, 998, 999, 68, - - 68, 993, 989, 1000, 68, 996, 991, 988, 997, 992, - 990, 994, 1004, 1001, 1002, 68, 1003, 68, 1005, 68, - 1006, 68, 68, 1008, 68, 68, 68, 1007, 1010, 68, - 68, 68, 1012, 68, 1013, 68, 1014, 1016, 68, 1018, - 68, 1019, 68, 68, 1009, 68, 1021, 68, 1011, 68, - 68, 1015, 1017, 68, 1023, 68, 68, 68, 1025, 1022, - 68, 68, 1029, 68, 1030, 1027, 1028, 68, 68, 1020, - 1026, 1024, 1032, 68, 1033, 1034, 68, 1035, 68, 68, - 68, 1031, 1039, 1037, 68, 1036, 1041, 68, 68, 1040, - 1038, 68, 1042, 68, 1043, 1044, 68, 68, 1045, 68, - - 68, 68, 1050, 1047, 68, 68, 1049, 68, 68, 68, - 1051, 68, 68, 1053, 1055, 68, 1056, 1046, 68, 1054, - 1048, 1052, 1057, 68, 1058, 68, 1059, 68, 1060, 68, - 1061, 1063, 68, 68, 1062, 1065, 68, 1064, 68, 68, - 68, 1067, 68, 1066, 68, 1068, 1069, 68, 68, 68, - 68, 68, 1076, 68, 1070, 68, 68, 68, 68, 68, - 1072, 1073, 1071, 1074, 1077, 68, 68, 68, 68, 68, - 1075, 1080, 1084, 1085, 1086, 68, 68, 1079, 68, 1082, - 68, 1088, 1078, 1081, 1083, 1089, 68, 1087, 68, 68, - 68, 1091, 68, 1096, 68, 1097, 1092, 1090, 68, 68, - - 68, 68, 68, 1103, 68, 68, 1094, 1093, 1102, 68, - 68, 1095, 68, 1098, 1106, 68, 1108, 68, 1099, 68, - 1109, 1100, 1101, 68, 1104, 68, 68, 68, 1105, 68, - 68, 1107, 1112, 68, 1111, 1113, 68, 1114, 1116, 68, - 68, 1115, 1119, 68, 1117, 1110, 1120, 68, 1121, 1122, - 68, 1118, 68, 68, 1123, 68, 68, 1124, 68, 68, - 68, 1126, 68, 68, 1130, 68, 68, 68, 1125, 1128, - 68, 1129, 1127, 68, 1131, 1134, 68, 68, 68, 1135, - 68, 1136, 1137, 1140, 68, 1132, 1133, 1138, 68, 68, - 1142, 68, 68, 1139, 1143, 1144, 68, 1145, 68, 68, - - 1148, 1149, 68, 68, 68, 68, 68, 1150, 1141, 68, - 1146, 68, 1151, 1147, 68, 1155, 68, 1153, 68, 68, - 68, 68, 68, 1152, 1157, 68, 68, 68, 1162, 1235, - 1154, 1160, 1156, 1164, 68, 68, 1166, 68, 1158, 1165, - 68, 1161, 68, 68, 1163, 68, 1159, 68, 1170, 1167, - 68, 1171, 68, 68, 1168, 68, 1172, 1173, 1177, 68, - 1176, 68, 1169, 68, 1174, 68, 68, 68, 68, 68, - 1178, 68, 1175, 1182, 1181, 1185, 68, 68, 68, 1179, - 1187, 68, 1186, 68, 1180, 1190, 68, 68, 1184, 1191, - 68, 1188, 68, 1183, 1195, 68, 68, 1197, 68, 1193, - - 1189, 68, 1192, 68, 68, 1201, 68, 68, 1196, 1200, - 1202, 68, 1194, 1203, 68, 1209, 68, 1199, 1205, 68, - 1198, 1204, 68, 1206, 1207, 68, 68, 1210, 68, 68, - 68, 1208, 68, 68, 1211, 1212, 1214, 68, 68, 1216, - 68, 68, 1215, 1218, 68, 1217, 68, 68, 1219, 1221, - 68, 68, 1213, 1222, 68, 1223, 68, 1224, 68, 1225, - 68, 1226, 68, 68, 1220, 68, 1227, 1229, 68, 68, - 68, 1228, 1230, 1234, 68, 1235, 1235, 1235, 1235, 1235, - 1231, 1235, 1235, 1232, 1235, 1235, 1235, 1235, 1235, 1233, - 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, 1235, 71, 71, - 71, 71, 116, 116, 1235, 1235, 1235, 116, 116, 118, - 118, 1235, 1235, 118, 1235, 118, 120, 1235, 1235, 1235, - 1235, 1235, 120, 123, 123, 1235, 1235, 1235, 123, 123, - 125, 1235, 1235, 1235, 1235, 1235, 125, 127, 127, 1235, - 127, 127, 127, 127, 72, 72, 1235, 72, 72, 72, - 72, 13, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - 1235 + 67, 93, 68, 76, 68, 67, 84, 68, 66, 15, + 16, 17, 62, 63, 64, 68, 68, 77, 131, 86, + 65, 69, 92, 127, 78, 70, 85, 68, 87, 66, + 72, 79, 72, 72, 68, 72, 88, 130, 68, 80, + 72, 73, 89, 81, 68, 90, 82, 68, 68, 83, + 68, 97, 91, 68, 68, 98, 68, 111, 108, 94, + 68, 68, 95, 101, 134, 105, 96, 68, 109, 102, + 139, 99, 103, 110, 112, 106, 124, 124, 107, 104, + 68, 113, 68, 115, 132, 68, 114, 116, 121, 68, + 121, 121, 72, 121, 72, 72, 126, 72, 126, 126, + + 68, 126, 67, 129, 67, 67, 176, 67, 68, 133, + 68, 68, 67, 72, 136, 72, 72, 68, 72, 68, + 140, 68, 137, 72, 73, 68, 135, 68, 68, 138, + 68, 142, 68, 68, 146, 148, 68, 147, 141, 143, + 157, 68, 68, 68, 149, 144, 145, 150, 153, 158, + 68, 68, 152, 155, 68, 68, 68, 156, 68, 68, + 68, 151, 160, 163, 159, 68, 68, 161, 154, 68, + 165, 168, 68, 68, 166, 68, 162, 172, 164, 68, + 173, 68, 68, 68, 169, 179, 167, 68, 178, 117, + 117, 170, 119, 171, 68, 119, 124, 124, 200, 175, + + 174, 121, 68, 121, 121, 180, 121, 126, 68, 126, + 126, 72, 126, 72, 72, 127, 72, 184, 181, 68, + 183, 68, 129, 186, 182, 68, 68, 188, 68, 185, + 190, 68, 68, 189, 68, 68, 68, 196, 68, 198, + 68, 68, 68, 201, 68, 68, 187, 68, 68, 68, + 197, 191, 68, 207, 68, 202, 192, 203, 68, 210, + 608, 193, 206, 199, 68, 208, 204, 194, 195, 205, + 68, 211, 212, 214, 209, 215, 68, 68, 68, 217, + 68, 216, 218, 213, 68, 219, 68, 68, 68, 68, + 68, 68, 220, 68, 68, 222, 68, 68, 68, 224, + + 68, 227, 68, 68, 232, 68, 68, 235, 221, 225, + 233, 68, 223, 226, 68, 127, 229, 230, 236, 228, + 231, 238, 127, 68, 234, 68, 68, 239, 68, 246, + 242, 68, 244, 68, 241, 68, 243, 68, 245, 68, + 68, 237, 249, 248, 240, 68, 250, 68, 251, 247, + 68, 68, 68, 68, 254, 257, 252, 255, 68, 68, + 68, 256, 68, 259, 260, 253, 261, 68, 68, 68, + 68, 68, 258, 68, 266, 68, 68, 269, 68, 68, + 68, 270, 68, 265, 68, 68, 263, 262, 268, 68, + 264, 271, 278, 267, 273, 68, 274, 275, 276, 68, + + 272, 277, 68, 68, 68, 283, 68, 68, 68, 285, + 68, 68, 284, 282, 68, 288, 279, 68, 281, 280, + 68, 68, 290, 68, 291, 286, 68, 294, 68, 68, + 68, 287, 68, 295, 289, 293, 68, 292, 68, 298, + 127, 68, 68, 68, 297, 68, 68, 68, 314, 296, + 309, 68, 300, 68, 68, 299, 68, 308, 301, 302, + 312, 310, 311, 68, 68, 319, 313, 315, 303, 316, + 304, 305, 306, 68, 68, 307, 68, 68, 317, 320, + 321, 322, 68, 68, 318, 68, 68, 327, 68, 68, + 328, 326, 324, 323, 68, 68, 68, 68, 325, 334, + + 68, 335, 337, 330, 331, 333, 329, 68, 68, 336, + 68, 68, 68, 341, 338, 339, 342, 332, 68, 68, + 68, 68, 68, 68, 340, 345, 68, 343, 68, 347, + 68, 344, 68, 348, 350, 68, 68, 68, 68, 351, + 68, 68, 68, 346, 349, 356, 358, 352, 68, 357, + 68, 68, 355, 68, 361, 68, 353, 354, 68, 363, + 359, 68, 68, 368, 68, 371, 364, 68, 68, 68, + 360, 68, 362, 369, 365, 367, 68, 373, 68, 68, + 68, 370, 374, 375, 366, 379, 68, 372, 377, 68, + 68, 68, 127, 376, 384, 380, 383, 68, 68, 68, + + 68, 378, 68, 385, 68, 382, 388, 68, 381, 68, + 68, 387, 389, 392, 390, 386, 394, 68, 396, 391, + 395, 68, 393, 68, 397, 68, 398, 68, 399, 68, + 68, 68, 68, 68, 403, 401, 402, 68, 68, 68, + 407, 404, 68, 405, 68, 68, 68, 408, 438, 68, + 400, 406, 410, 68, 413, 414, 68, 411, 409, 68, + 68, 412, 416, 68, 68, 415, 68, 417, 421, 68, + 68, 420, 68, 68, 68, 422, 68, 419, 68, 423, + 68, 424, 68, 434, 127, 425, 427, 428, 426, 418, + 68, 68, 433, 429, 431, 68, 430, 68, 432, 68, + + 68, 436, 68, 435, 439, 437, 68, 68, 68, 68, + 68, 441, 445, 68, 446, 440, 68, 68, 68, 68, + 447, 68, 68, 442, 448, 444, 68, 443, 68, 68, + 68, 68, 462, 452, 449, 451, 453, 454, 68, 68, + 450, 68, 68, 455, 456, 68, 457, 127, 458, 68, + 68, 459, 461, 463, 68, 465, 467, 68, 68, 460, + 68, 68, 468, 466, 68, 68, 68, 68, 470, 68, + 68, 464, 474, 475, 68, 469, 473, 125, 476, 471, + 68, 68, 472, 68, 68, 483, 477, 68, 478, 68, + 486, 479, 484, 487, 68, 485, 480, 68, 68, 489, + + 68, 493, 481, 482, 488, 68, 491, 68, 494, 68, + 492, 68, 496, 68, 68, 490, 123, 495, 68, 498, + 499, 68, 68, 68, 501, 500, 68, 68, 497, 68, + 68, 502, 507, 68, 503, 505, 506, 509, 68, 68, + 68, 68, 68, 511, 68, 504, 508, 68, 513, 68, + 68, 68, 514, 68, 68, 512, 68, 68, 510, 68, + 515, 519, 518, 521, 68, 516, 68, 68, 528, 525, + 520, 517, 523, 522, 68, 68, 68, 68, 524, 526, + 532, 529, 68, 531, 68, 68, 527, 533, 68, 68, + 536, 68, 538, 68, 68, 68, 539, 127, 530, 68, + + 68, 68, 535, 541, 68, 68, 534, 68, 68, 540, + 68, 537, 550, 68, 68, 68, 68, 564, 544, 542, + 68, 556, 552, 572, 553, 543, 68, 557, 555, 545, + 551, 546, 68, 68, 554, 547, 68, 548, 68, 558, + 68, 561, 549, 68, 68, 68, 559, 562, 565, 68, + 569, 68, 563, 566, 68, 68, 571, 68, 567, 570, + 68, 68, 68, 68, 560, 575, 68, 68, 568, 68, + 574, 576, 578, 573, 581, 68, 68, 122, 68, 68, + 68, 583, 577, 580, 68, 584, 579, 586, 588, 585, + 582, 68, 587, 68, 589, 68, 68, 591, 590, 68, + + 592, 68, 68, 68, 593, 68, 596, 68, 68, 68, + 594, 599, 597, 598, 68, 600, 68, 601, 68, 68, + 68, 68, 595, 609, 68, 605, 606, 607, 68, 68, + 610, 68, 604, 68, 602, 68, 612, 68, 603, 68, + 68, 616, 68, 68, 611, 68, 68, 614, 68, 68, + 613, 615, 618, 68, 624, 625, 68, 120, 617, 68, + 68, 619, 621, 68, 622, 68, 68, 68, 626, 68, + 627, 620, 629, 623, 632, 68, 68, 68, 68, 628, + 68, 630, 68, 635, 631, 68, 634, 637, 68, 68, + 68, 68, 639, 68, 633, 68, 68, 68, 68, 636, + + 68, 642, 68, 646, 638, 640, 641, 68, 68, 68, + 650, 649, 643, 647, 645, 68, 644, 652, 68, 68, + 648, 651, 655, 654, 68, 659, 656, 68, 653, 68, + 68, 68, 657, 658, 68, 660, 661, 68, 662, 68, + 665, 666, 68, 663, 68, 68, 68, 667, 668, 68, + 68, 68, 68, 68, 68, 674, 68, 664, 669, 68, + 68, 673, 679, 670, 68, 671, 68, 672, 675, 68, + 676, 682, 68, 677, 687, 678, 683, 68, 680, 685, + 68, 686, 68, 688, 68, 684, 68, 68, 68, 681, + 68, 68, 68, 691, 68, 690, 695, 693, 696, 694, + + 68, 68, 698, 68, 68, 697, 689, 68, 692, 68, + 68, 702, 68, 699, 703, 68, 68, 705, 68, 68, + 68, 701, 68, 68, 68, 709, 68, 68, 700, 714, + 68, 68, 68, 715, 68, 68, 706, 718, 704, 707, + 710, 708, 68, 711, 712, 68, 68, 68, 68, 717, + 713, 721, 68, 719, 68, 68, 716, 68, 68, 726, + 723, 68, 720, 724, 722, 727, 728, 68, 68, 68, + 68, 725, 731, 729, 732, 734, 730, 735, 736, 68, + 737, 68, 68, 68, 68, 68, 738, 741, 743, 68, + 733, 742, 68, 68, 68, 68, 746, 68, 739, 68, + + 745, 68, 68, 68, 740, 68, 68, 68, 68, 754, + 68, 755, 744, 68, 747, 68, 748, 751, 749, 756, + 68, 750, 753, 757, 760, 68, 752, 68, 68, 758, + 763, 764, 761, 759, 68, 68, 68, 765, 68, 68, + 68, 68, 766, 68, 771, 68, 769, 68, 762, 767, + 68, 773, 68, 68, 68, 68, 68, 68, 770, 776, + 68, 778, 68, 68, 775, 768, 68, 772, 68, 781, + 68, 68, 785, 777, 774, 779, 780, 68, 68, 787, + 782, 68, 786, 783, 68, 68, 784, 790, 68, 794, + 791, 788, 789, 68, 68, 68, 793, 68, 795, 68, + + 68, 68, 68, 801, 68, 798, 68, 800, 68, 68, + 68, 802, 68, 792, 68, 797, 809, 796, 68, 68, + 68, 68, 68, 118, 799, 808, 803, 68, 806, 804, + 805, 807, 68, 68, 68, 68, 68, 818, 810, 814, + 811, 68, 813, 812, 815, 819, 68, 816, 68, 817, + 68, 824, 825, 68, 68, 821, 68, 823, 822, 68, + 820, 68, 68, 68, 68, 832, 68, 827, 68, 835, + 826, 836, 68, 68, 68, 829, 68, 828, 837, 68, + 68, 831, 833, 838, 68, 68, 834, 830, 68, 839, + 68, 841, 840, 68, 68, 68, 68, 846, 842, 847, + + 848, 843, 68, 68, 68, 850, 844, 849, 853, 68, + 845, 68, 68, 857, 68, 68, 68, 68, 68, 852, + 861, 68, 68, 860, 855, 854, 851, 856, 858, 862, + 68, 863, 859, 864, 68, 865, 68, 68, 68, 68, + 68, 869, 68, 870, 68, 871, 68, 872, 68, 874, + 68, 873, 68, 68, 68, 876, 867, 866, 868, 68, + 68, 878, 68, 68, 877, 68, 879, 880, 875, 68, + 68, 881, 68, 882, 887, 888, 68, 68, 883, 68, + 890, 68, 68, 884, 68, 68, 68, 68, 896, 885, + 886, 892, 893, 894, 68, 68, 68, 68, 68, 900, + + 68, 891, 899, 889, 68, 902, 903, 68, 68, 905, + 68, 898, 895, 904, 68, 68, 901, 68, 68, 68, + 897, 68, 68, 909, 68, 68, 913, 910, 914, 907, + 906, 68, 915, 68, 908, 912, 916, 917, 918, 68, + 911, 68, 68, 68, 68, 923, 920, 922, 68, 925, + 68, 919, 68, 127, 68, 68, 921, 68, 927, 928, + 68, 929, 68, 930, 926, 68, 68, 68, 68, 68, + 924, 931, 68, 932, 933, 68, 935, 68, 938, 68, + 934, 68, 68, 941, 68, 943, 939, 936, 68, 68, + 937, 944, 68, 940, 945, 68, 68, 948, 942, 946, + + 68, 68, 947, 68, 68, 68, 68, 68, 68, 68, + 956, 68, 955, 950, 68, 951, 952, 959, 68, 68, + 953, 949, 68, 958, 961, 68, 954, 957, 68, 68, + 962, 68, 68, 967, 963, 68, 964, 960, 68, 68, + 965, 971, 68, 68, 968, 966, 68, 68, 68, 970, + 68, 969, 68, 68, 68, 972, 973, 975, 976, 974, + 980, 68, 68, 977, 68, 984, 68, 981, 68, 979, + 986, 68, 978, 983, 68, 68, 68, 985, 68, 988, + 68, 989, 991, 68, 68, 68, 68, 982, 992, 994, + 68, 990, 68, 987, 993, 68, 995, 997, 996, 68, + + 68, 68, 68, 998, 68, 68, 1000, 68, 68, 68, + 1001, 1008, 68, 68, 68, 999, 1009, 125, 68, 1006, + 68, 1002, 68, 1012, 1004, 1013, 68, 1010, 1003, 1005, + 1007, 1011, 1014, 68, 68, 1016, 68, 1017, 68, 1018, + 1019, 68, 1020, 68, 68, 1022, 68, 1015, 68, 1021, + 1024, 68, 68, 68, 68, 68, 1028, 1027, 68, 1026, + 1030, 68, 1032, 68, 1033, 68, 68, 1023, 68, 1035, + 1025, 1029, 68, 68, 68, 68, 68, 1031, 1037, 68, + 1039, 68, 1043, 68, 1036, 68, 123, 68, 1041, 1044, + 1042, 1040, 1034, 68, 1048, 1038, 68, 1047, 68, 68, + + 68, 1049, 1046, 1045, 68, 68, 68, 68, 1053, 1050, + 1057, 1054, 68, 1051, 1055, 68, 1052, 68, 1058, 68, + 68, 1056, 68, 68, 68, 1059, 1061, 68, 1064, 1063, + 68, 68, 1060, 68, 68, 1068, 1065, 68, 68, 1067, + 1069, 68, 1070, 1062, 1071, 68, 68, 1066, 1072, 68, + 1073, 68, 1074, 68, 1075, 68, 68, 68, 68, 1077, + 1078, 1080, 1076, 1079, 68, 68, 68, 1081, 1083, 68, + 1084, 1082, 68, 68, 68, 68, 68, 1090, 68, 68, + 68, 68, 68, 68, 68, 1086, 1087, 1088, 1091, 68, + 1085, 68, 68, 68, 1098, 1094, 1089, 1099, 1096, 1100, + + 68, 1093, 68, 1102, 1103, 68, 1092, 1095, 68, 1097, + 68, 1101, 68, 68, 68, 1111, 68, 1104, 1110, 68, + 68, 68, 68, 68, 68, 1105, 68, 1117, 68, 1116, + 1106, 1107, 1108, 1109, 68, 68, 1112, 1120, 68, 68, + 68, 1113, 68, 1114, 1115, 1122, 68, 68, 1123, 1118, + 68, 1125, 68, 1119, 68, 1126, 68, 1127, 1121, 68, + 68, 68, 1124, 122, 1128, 1130, 1131, 1133, 68, 1129, + 1134, 68, 1135, 68, 1132, 1136, 68, 68, 1137, 68, + 68, 68, 68, 68, 68, 1138, 1140, 68, 68, 68, + 1144, 68, 1146, 1139, 68, 1141, 1142, 1143, 1148, 68, + + 1145, 68, 1150, 1147, 68, 68, 68, 1154, 68, 1151, + 1149, 68, 68, 1156, 1152, 68, 1158, 68, 1157, 1153, + 1159, 68, 68, 68, 1162, 1163, 68, 68, 68, 68, + 68, 1155, 1164, 1165, 68, 68, 68, 1161, 68, 1169, + 1160, 68, 1167, 68, 68, 68, 1171, 68, 68, 1166, + 68, 1176, 1170, 68, 1168, 68, 1174, 1178, 68, 1179, + 68, 68, 1180, 1172, 68, 1175, 68, 68, 1177, 1181, + 1173, 1184, 68, 1182, 68, 1185, 1186, 1187, 68, 68, + 68, 1191, 68, 68, 68, 68, 68, 1188, 68, 1183, + 68, 68, 1192, 1196, 1195, 1190, 1199, 68, 1189, 68, + + 1193, 68, 1201, 68, 1194, 68, 1200, 1204, 68, 68, + 1198, 1205, 68, 68, 68, 68, 1197, 1209, 68, 1202, + 68, 1211, 68, 68, 68, 1207, 68, 1203, 1206, 1213, + 120, 1214, 1210, 1244, 1208, 1215, 68, 1216, 68, 1217, + 68, 68, 1212, 1219, 68, 68, 1218, 68, 1220, 1221, + 68, 68, 68, 1223, 1224, 68, 1222, 1225, 68, 68, + 1228, 68, 68, 1226, 1230, 68, 1229, 68, 1232, 68, + 68, 1231, 68, 1235, 68, 1236, 68, 1237, 68, 1227, + 1238, 68, 68, 68, 1240, 1233, 68, 68, 1243, 68, + 1234, 1241, 68, 68, 1239, 68, 1248, 68, 118, 68, + + 1249, 1249, 1249, 1249, 1249, 1249, 1242, 1245, 1249, 1246, + 1249, 1249, 1247, 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, + 1249, 71, 71, 71, 71, 117, 117, 1249, 1249, 1249, + 117, 117, 119, 119, 1249, 1249, 119, 1249, 119, 121, + 1249, 1249, 1249, 1249, 1249, 121, 124, 124, 1249, 1249, + 1249, 124, 124, 126, 1249, 1249, 1249, 1249, 1249, 126, + 128, 128, 1249, 128, 128, 128, 128, 72, 72, 1249, + + 72, 72, 72, 72, 13, 1249, 1249, 1249, 1249, 1249, + 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, + 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, + 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, + 1249, 1249, 1249, 1249 } ; -static yyconst flex_int16_t yy_chk[2522] = +static yyconst flex_int16_t yy_chk[2545] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1123,278 +1130,280 @@ static yyconst flex_int16_t yy_chk[2522] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4, 49, 5, 5, 49, 3, 5, 15, 4, 6, 6, 15, 5, 6, 9, 9, - 9, 112, 33, 6, 7, 7, 7, 7, 9, 7, + 9, 113, 33, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 44, 44, 7, 8, 8, 8, 8, - 10, 8, 21, 33, 112, 21, 21, 8, 11, 11, - 11, 11, 11, 11, 1241, 20, 29, 20, 20, 11, + 10, 8, 21, 33, 113, 21, 21, 8, 11, 11, + 11, 11, 11, 11, 1255, 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, 12, 69, 28, 66, 22, 69, 24, 26, 26, 12, 19, 22, 19, 19, 23, 19, 26, 66, 27, 23, - 19, 19, 27, 23, 30, 31, 23, 34, 35, 23, - 32, 32, 27, 35, 82, 32, 34, 37, 37, 30, - 31, 391, 34, 35, 31, 34, 35, 38, 36, 39, - 39, 32, 34, 36, 39, 37, 82, 55, 391, 55, - 55, 38, 55, 36, 60, 60, 38, 63, 36, 63, - 63, 65, 63, 65, 65, 76, 65, 68, 63, 68, - - 68, 75, 68, 77, 78, 75, 77, 68, 71, 79, - 71, 71, 80, 71, 81, 76, 83, 84, 71, 71, - 85, 83, 78, 79, 80, 86, 87, 91, 532, 88, - 89, 84, 81, 88, 83, 89, 90, 94, 99, 90, - 85, 94, 90, 86, 87, 92, 91, 95, 93, 96, - 92, 93, 97, 98, 95, 93, 90, 100, 99, 97, - 101, 100, 96, 102, 103, 107, 98, 104, 102, 106, - 92, 105, 102, 110, 108, 109, 109, 111, 101, 108, - 104, 114, 113, 107, 103, 115, 105, 113, 106, 117, - 117, 110, 119, 114, 125, 119, 109, 121, 111, 121, - - 121, 132, 121, 115, 124, 124, 126, 134, 126, 126, - 127, 126, 127, 127, 129, 127, 132, 129, 130, 131, - 133, 127, 134, 130, 131, 135, 136, 137, 133, 138, - 141, 136, 137, 142, 138, 140, 140, 144, 142, 143, - 146, 144, 145, 148, 147, 135, 139, 145, 149, 141, - 139, 150, 151, 149, 146, 139, 147, 155, 152, 147, - 139, 148, 143, 152, 153, 153, 139, 139, 151, 154, - 156, 150, 157, 162, 154, 156, 158, 157, 155, 159, - 154, 158, 160, 164, 159, 161, 163, 165, 166, 160, - 167, 161, 163, 162, 168, 165, 169, 170, 174, 168, - - 171, 173, 172, 166, 172, 164, 175, 175, 173, 176, - 167, 178, 180, 178, 176, 170, 170, 174, 169, 177, - 171, 179, 182, 183, 177, 184, 181, 182, 183, 185, - 178, 180, 176, 179, 181, 186, 187, 188, 188, 187, - 184, 189, 189, 186, 190, 192, 191, 185, 192, 193, - 194, 195, 196, 193, 197, 197, 195, 198, 199, 194, - 190, 191, 198, 199, 200, 201, 196, 202, 203, 203, - 204, 205, 206, 207, 209, 208, 207, 206, 123, 211, - 202, 210, 214, 205, 200, 214, 201, 208, 204, 215, - 210, 211, 216, 212, 209, 212, 212, 213, 213, 217, - - 218, 218, 220, 220, 221, 219, 215, 216, 217, 215, - 219, 222, 223, 224, 227, 225, 228, 223, 226, 221, - 225, 226, 229, 231, 230, 228, 232, 229, 227, 230, - 234, 222, 233, 224, 236, 233, 237, 238, 239, 241, - 232, 240, 242, 231, 234, 237, 244, 242, 245, 236, - 243, 233, 235, 246, 235, 235, 240, 239, 238, 241, - 247, 244, 250, 245, 235, 251, 235, 235, 235, 252, - 243, 235, 248, 246, 247, 249, 249, 248, 249, 253, - 256, 251, 250, 255, 254, 252, 254, 255, 257, 263, - 258, 259, 260, 253, 261, 263, 260, 265, 256, 258, - - 259, 262, 257, 261, 264, 268, 262, 266, 266, 264, - 265, 267, 258, 269, 268, 270, 267, 271, 272, 272, - 270, 274, 274, 275, 276, 269, 277, 278, 280, 281, - 287, 282, 276, 295, 284, 277, 283, 286, 271, 278, - 289, 283, 284, 288, 275, 282, 285, 288, 280, 281, - 291, 285, 287, 290, 290, 286, 293, 292, 295, 289, - 297, 290, 292, 294, 294, 296, 296, 292, 298, 290, - 291, 299, 300, 301, 303, 297, 293, 302, 304, 290, - 298, 305, 302, 303, 306, 307, 299, 308, 306, 309, - 307, 300, 310, 311, 311, 301, 305, 304, 312, 308, - - 313, 314, 316, 315, 323, 310, 315, 309, 317, 317, - 312, 122, 313, 318, 318, 316, 314, 319, 320, 320, - 321, 321, 319, 322, 324, 323, 325, 326, 322, 324, - 325, 327, 326, 328, 329, 327, 330, 331, 328, 345, - 332, 330, 334, 332, 333, 333, 335, 334, 332, 338, - 336, 331, 332, 336, 329, 335, 337, 345, 339, 340, - 337, 341, 338, 339, 340, 342, 343, 341, 342, 343, - 344, 346, 347, 348, 349, 344, 348, 347, 357, 349, - 352, 351, 337, 350, 360, 346, 351, 350, 350, 352, - 353, 354, 355, 353, 355, 354, 354, 356, 357, 356, - - 358, 359, 360, 361, 358, 362, 363, 363, 364, 365, - 362, 366, 364, 367, 365, 368, 359, 369, 361, 371, - 370, 374, 377, 120, 369, 370, 371, 366, 368, 372, - 373, 375, 367, 376, 372, 373, 377, 381, 375, 374, - 378, 379, 376, 380, 379, 378, 384, 380, 382, 382, - 385, 384, 386, 387, 385, 394, 388, 382, 381, 395, - 118, 387, 396, 397, 394, 395, 396, 400, 397, 401, - 386, 388, 398, 399, 398, 403, 398, 405, 399, 398, - 402, 402, 403, 408, 398, 400, 404, 404, 406, 406, - 398, 398, 405, 407, 401, 409, 407, 410, 411, 411, - - 412, 413, 419, 408, 416, 410, 413, 414, 414, 415, - 416, 417, 415, 418, 409, 412, 421, 420, 423, 417, - 419, 418, 420, 421, 422, 422, 423, 424, 425, 428, - 427, 432, 424, 427, 429, 429, 433, 430, 435, 436, - 430, 434, 435, 428, 437, 438, 440, 425, 430, 439, - 434, 441, 432, 437, 443, 439, 441, 433, 436, 438, - 440, 442, 444, 445, 446, 442, 447, 447, 445, 449, - 448, 450, 449, 443, 444, 448, 452, 451, 453, 454, - 454, 452, 455, 455, 456, 446, 458, 457, 459, 450, - 451, 457, 460, 462, 463, 464, 466, 462, 453, 456, - - 465, 467, 468, 476, 469, 458, 460, 116, 468, 469, - 464, 476, 459, 461, 465, 467, 461, 466, 461, 463, - 470, 470, 461, 472, 461, 471, 473, 477, 470, 461, - 471, 474, 474, 478, 475, 479, 479, 472, 473, 475, - 481, 477, 483, 484, 482, 481, 470, 482, 485, 486, - 487, 489, 478, 485, 488, 493, 484, 491, 486, 488, - 490, 483, 491, 494, 498, 498, 497, 495, 494, 487, - 493, 489, 495, 496, 490, 497, 499, 503, 496, 501, - 503, 499, 504, 501, 501, 502, 502, 505, 506, 502, - 507, 506, 512, 508, 509, 507, 510, 504, 508, 513, - - 509, 511, 510, 514, 511, 67, 515, 505, 516, 517, - 512, 515, 517, 516, 518, 519, 514, 520, 521, 513, - 519, 523, 520, 522, 522, 518, 525, 524, 526, 527, - 528, 529, 526, 521, 530, 533, 534, 535, 525, 528, - 523, 524, 539, 536, 544, 544, 542, 527, 536, 533, - 529, 534, 540, 537, 543, 538, 539, 535, 537, 530, - 538, 542, 541, 545, 546, 547, 540, 541, 548, 543, - 547, 549, 550, 546, 551, 552, 549, 553, 551, 555, - 556, 545, 554, 558, 557, 559, 560, 548, 561, 558, - 552, 550, 553, 563, 554, 564, 565, 561, 555, 566, - - 559, 556, 557, 564, 566, 567, 560, 563, 568, 567, - 567, 569, 570, 571, 571, 574, 565, 570, 572, 575, - 569, 568, 576, 572, 573, 573, 577, 576, 578, 574, - 579, 577, 580, 578, 579, 583, 581, 575, 584, 583, - 585, 580, 586, 587, 588, 589, 580, 581, 580, 590, - 580, 593, 588, 584, 591, 591, 586, 598, 585, 592, - 592, 599, 587, 589, 594, 594, 595, 595, 596, 599, - 593, 597, 597, 596, 590, 600, 601, 598, 602, 603, - 600, 610, 605, 606, 602, 607, 603, 605, 606, 609, - 607, 608, 611, 613, 601, 614, 608, 616, 609, 615, - - 610, 612, 612, 611, 615, 617, 618, 619, 619, 620, - 621, 623, 622, 613, 626, 625, 630, 616, 614, 625, - 625, 627, 628, 629, 618, 617, 632, 628, 631, 620, - 622, 634, 631, 633, 623, 621, 630, 635, 636, 627, - 626, 629, 637, 636, 639, 632, 634, 633, 638, 637, - 640, 641, 642, 638, 61, 643, 635, 649, 644, 640, - 643, 650, 639, 644, 645, 648, 641, 646, 646, 645, - 648, 649, 651, 642, 652, 652, 651, 651, 653, 654, - 650, 655, 656, 657, 658, 654, 655, 659, 661, 56, - 660, 664, 662, 663, 663, 665, 664, 653, 666, 665, - - 668, 656, 657, 658, 660, 667, 659, 662, 671, 661, - 670, 666, 669, 669, 667, 670, 672, 675, 678, 678, - 668, 672, 675, 680, 681, 682, 680, 683, 671, 684, - 685, 685, 683, 686, 687, 687, 688, 689, 690, 681, - 691, 692, 690, 694, 684, 697, 692, 698, 689, 695, - 682, 696, 696, 686, 699, 700, 703, 700, 688, 691, - 708, 694, 51, 695, 701, 697, 702, 698, 704, 701, - 707, 702, 705, 712, 699, 707, 703, 709, 705, 710, - 709, 713, 704, 714, 710, 708, 711, 711, 714, 715, - 716, 712, 717, 717, 718, 716, 719, 720, 721, 718, - - 723, 713, 722, 724, 725, 726, 727, 728, 724, 736, - 50, 730, 715, 723, 719, 731, 722, 720, 721, 729, - 730, 735, 728, 730, 725, 726, 729, 727, 736, 734, - 735, 731, 734, 737, 738, 739, 740, 740, 741, 742, - 739, 743, 737, 738, 745, 737, 744, 746, 747, 747, - 748, 751, 742, 749, 757, 753, 751, 752, 741, 743, - 744, 753, 752, 758, 754, 746, 748, 754, 756, 745, - 759, 749, 757, 754, 760, 762, 756, 763, 764, 765, - 766, 763, 758, 764, 765, 766, 759, 767, 768, 769, - 770, 770, 760, 771, 772, 762, 767, 773, 774, 776, - - 775, 780, 777, 774, 769, 783, 772, 771, 777, 773, - 780, 768, 775, 778, 778, 779, 779, 776, 781, 781, - 782, 784, 785, 786, 786, 782, 783, 787, 787, 788, - 788, 789, 790, 792, 793, 790, 789, 795, 792, 794, - 784, 798, 785, 797, 794, 796, 796, 799, 797, 800, - 801, 802, 793, 798, 804, 798, 803, 803, 805, 805, - 798, 806, 795, 810, 807, 809, 812, 799, 808, 800, - 801, 813, 802, 807, 809, 808, 811, 811, 815, 816, - 804, 806, 817, 815, 816, 822, 818, 813, 821, 810, - 819, 819, 812, 818, 820, 823, 824, 821, 825, 820, - - 826, 827, 817, 828, 825, 822, 829, 45, 830, 826, - 823, 829, 830, 830, 831, 824, 832, 828, 833, 831, - 834, 835, 827, 833, 836, 835, 837, 839, 832, 838, - 840, 841, 834, 852, 838, 840, 836, 843, 844, 844, - 843, 845, 845, 841, 846, 852, 849, 847, 848, 839, - 846, 837, 847, 855, 848, 849, 854, 854, 856, 861, - 857, 862, 863, 864, 864, 868, 862, 856, 854, 857, - 865, 855, 865, 861, 866, 866, 869, 869, 870, 863, - 871, 872, 873, 874, 875, 868, 877, 878, 879, 878, - 882, 877, 871, 872, 873, 887, 880, 883, 874, 870, - - 881, 881, 883, 885, 875, 880, 879, 884, 885, 884, - 886, 888, 889, 887, 890, 886, 882, 889, 892, 890, - 893, 894, 894, 895, 896, 900, 901, 898, 899, 897, - 905, 888, 40, 896, 893, 895, 896, 892, 897, 898, - 902, 899, 901, 904, 906, 900, 902, 907, 907, 904, - 908, 909, 909, 906, 910, 905, 911, 912, 913, 908, - 911, 915, 912, 914, 914, 918, 919, 919, 921, 915, - 924, 913, 922, 910, 918, 920, 920, 922, 923, 925, - 921, 926, 923, 927, 925, 924, 928, 929, 930, 931, - 932, 934, 935, 943, 934, 936, 937, 937, 938, 938, - - 940, 931, 927, 939, 939, 935, 929, 926, 936, 930, - 928, 932, 943, 940, 941, 941, 942, 942, 944, 944, - 945, 945, 947, 948, 948, 949, 952, 947, 950, 950, - 951, 953, 952, 956, 953, 954, 954, 955, 955, 957, - 957, 959, 959, 960, 949, 961, 961, 962, 951, 963, - 964, 954, 956, 965, 963, 966, 967, 968, 965, 962, - 970, 972, 969, 974, 970, 967, 968, 969, 979, 960, - 966, 964, 974, 975, 975, 976, 977, 977, 980, 982, - 976, 972, 982, 979, 983, 977, 984, 984, 985, 983, - 980, 986, 985, 988, 986, 987, 987, 989, 988, 990, - - 991, 992, 993, 990, 994, 995, 992, 993, 996, 1014, - 994, 997, 998, 996, 998, 1001, 1001, 989, 1013, 997, - 991, 995, 1004, 1004, 1007, 1007, 1009, 1009, 1011, 1012, - 1012, 1014, 1015, 1011, 1013, 1017, 1017, 1015, 1020, 1021, - 1022, 1021, 1024, 1020, 1025, 1022, 1023, 1023, 1026, 1027, - 1029, 1028, 1030, 1030, 1024, 1031, 1032, 1033, 1034, 1035, - 1026, 1027, 1025, 1028, 1031, 1036, 1037, 1038, 1039, 1042, - 1029, 1034, 1038, 1039, 1040, 1040, 1047, 1033, 1048, 1036, - 1043, 1043, 1032, 1035, 1037, 1045, 1045, 1042, 1046, 1049, - 1050, 1047, 1051, 1052, 1052, 1053, 1048, 1046, 1054, 1055, - - 1053, 1056, 1060, 1062, 1062, 1061, 1050, 1049, 1061, 1063, - 1064, 1051, 1067, 1054, 1066, 1066, 1068, 1068, 1055, 1070, - 1070, 1056, 1060, 1071, 1063, 1072, 1077, 1073, 1064, 1075, - 1074, 1067, 1073, 1078, 1072, 1074, 1080, 1075, 1078, 1079, - 14, 1077, 1081, 1081, 1079, 1071, 1082, 1082, 1083, 1084, - 1084, 1080, 1087, 1083, 1085, 1085, 1088, 1087, 1090, 1091, - 1092, 1090, 1093, 1094, 1094, 1095, 1097, 1098, 1088, 1092, - 1100, 1093, 1091, 1101, 1095, 1099, 1099, 1102, 1104, 1100, - 1105, 1101, 1102, 1107, 1107, 1097, 1098, 1104, 1109, 1110, - 1110, 1111, 1114, 1105, 1111, 1112, 1112, 1113, 1113, 1115, - - 1116, 1117, 1117, 1118, 1124, 1116, 1121, 1118, 1109, 1125, - 1114, 1126, 1121, 1115, 1127, 1127, 1128, 1125, 1130, 1129, - 1131, 1133, 1132, 1124, 1129, 1135, 1136, 1139, 1135, 13, - 1126, 1132, 1128, 1137, 1137, 1138, 1139, 1143, 1130, 1138, - 1141, 1133, 1142, 1146, 1136, 1153, 1131, 1148, 1146, 1141, - 1147, 1147, 1150, 1152, 1142, 1151, 1148, 1150, 1154, 1154, - 1153, 1155, 1143, 1156, 1151, 1157, 1158, 1160, 1159, 1161, - 1155, 1166, 1152, 1159, 1158, 1162, 1162, 1163, 1167, 1156, - 1165, 1165, 1163, 1170, 1157, 1168, 1168, 1171, 1161, 1169, - 1169, 1166, 1172, 1160, 1173, 1173, 1174, 1175, 1175, 1171, - - 1167, 1176, 1170, 1178, 1179, 1180, 1180, 1192, 1174, 1179, - 1181, 1181, 1172, 1182, 1182, 1192, 1183, 1178, 1184, 1184, - 1176, 1183, 1186, 1186, 1188, 1188, 1189, 1193, 1193, 1194, - 1196, 1189, 1198, 1209, 1194, 1196, 1199, 1199, 1200, 1204, - 1204, 1206, 1200, 1208, 1208, 1206, 1211, 1219, 1209, 1212, - 1212, 1226, 1198, 1213, 1213, 1215, 1215, 1217, 1217, 1219, - 1220, 1220, 1225, 1228, 1211, 1230, 1225, 1227, 1227, 1231, - 1232, 1226, 1228, 1233, 1233, 0, 0, 0, 0, 0, - 1230, 0, 0, 1231, 0, 0, 0, 0, 0, 1232, - 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1237, 1237, 1237, - - 1237, 1237, 1237, 1237, 1238, 1238, 1238, 1238, 1238, 1238, - 1238, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1240, 1240, - 1240, 1240, 1240, 1240, 1240, 1242, 1242, 0, 1242, 1242, - 1242, 1242, 1243, 1243, 0, 0, 0, 1243, 1243, 1244, - 1244, 0, 0, 1244, 0, 1244, 1245, 0, 0, 0, - 0, 0, 1245, 1246, 1246, 0, 0, 0, 1246, 1246, - 1247, 0, 0, 0, 0, 0, 1247, 1248, 1248, 0, - 1248, 1248, 1248, 1248, 1249, 1249, 0, 1249, 1249, 1249, - 1249, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - 1235 + 19, 19, 27, 23, 30, 27, 23, 31, 82, 23, + 32, 32, 27, 36, 34, 32, 37, 37, 36, 30, + 35, 77, 31, 34, 77, 35, 31, 38, 36, 34, + 82, 32, 34, 36, 37, 35, 60, 60, 35, 34, + 75, 38, 39, 39, 75, 112, 38, 39, 55, 76, + 55, 55, 63, 55, 63, 63, 65, 63, 65, 65, + + 79, 65, 68, 63, 68, 68, 112, 68, 78, 76, + 80, 81, 68, 71, 79, 71, 71, 84, 71, 85, + 83, 90, 80, 71, 71, 83, 78, 86, 87, 81, + 88, 84, 89, 92, 88, 90, 95, 89, 83, 85, + 95, 91, 96, 93, 91, 86, 87, 91, 93, 96, + 94, 97, 92, 94, 99, 98, 100, 94, 105, 101, + 102, 91, 98, 101, 97, 103, 104, 99, 93, 106, + 103, 105, 107, 115, 103, 108, 100, 109, 102, 110, + 110, 111, 109, 114, 106, 115, 104, 116, 114, 118, + 118, 107, 120, 108, 145, 120, 125, 125, 145, 111, + + 110, 122, 133, 122, 122, 116, 122, 127, 135, 127, + 127, 128, 127, 128, 128, 130, 128, 133, 130, 131, + 132, 134, 128, 135, 131, 132, 136, 137, 138, 134, + 139, 142, 137, 138, 143, 139, 141, 141, 146, 143, + 144, 147, 148, 146, 150, 152, 136, 140, 151, 525, + 142, 140, 157, 151, 149, 147, 140, 148, 153, 154, + 525, 140, 150, 144, 154, 152, 149, 140, 140, 149, + 155, 155, 156, 157, 153, 158, 159, 156, 162, 160, + 158, 159, 161, 156, 160, 162, 163, 161, 164, 165, + 166, 167, 163, 169, 168, 165, 170, 171, 172, 167, + + 173, 170, 174, 175, 174, 176, 177, 177, 164, 168, + 175, 182, 166, 169, 186, 539, 172, 172, 178, 171, + 173, 179, 181, 178, 176, 180, 179, 180, 183, 186, + 182, 187, 184, 185, 181, 188, 183, 184, 185, 189, + 192, 178, 189, 188, 180, 190, 190, 191, 191, 187, + 193, 194, 196, 195, 194, 197, 192, 195, 198, 200, + 197, 196, 199, 199, 200, 193, 201, 202, 203, 204, + 205, 201, 198, 206, 206, 207, 208, 209, 210, 211, + 212, 210, 209, 205, 214, 213, 203, 202, 208, 217, + 204, 211, 217, 207, 213, 215, 214, 215, 215, 218, + + 212, 216, 216, 219, 220, 221, 221, 222, 223, 223, + 224, 225, 222, 220, 227, 226, 218, 228, 219, 218, + 226, 229, 228, 230, 229, 224, 231, 232, 233, 234, + 235, 225, 232, 233, 227, 231, 236, 230, 237, 236, + 241, 240, 239, 242, 235, 243, 244, 246, 245, 234, + 240, 250, 237, 245, 247, 236, 238, 239, 238, 238, + 243, 241, 242, 248, 249, 250, 244, 246, 238, 247, + 238, 238, 238, 253, 251, 238, 254, 256, 248, 251, + 252, 252, 255, 252, 249, 257, 258, 257, 259, 260, + 258, 256, 254, 253, 263, 261, 262, 264, 255, 263, + + 265, 264, 266, 260, 261, 262, 259, 266, 267, 265, + 268, 269, 270, 270, 267, 268, 271, 261, 272, 273, + 274, 271, 275, 279, 269, 274, 280, 272, 276, 276, + 281, 273, 278, 278, 280, 282, 284, 285, 286, 281, + 287, 288, 290, 275, 279, 287, 289, 282, 291, 288, + 292, 289, 286, 293, 292, 295, 284, 285, 294, 294, + 290, 297, 299, 296, 298, 298, 294, 301, 296, 304, + 291, 302, 293, 296, 294, 295, 300, 300, 303, 305, + 306, 297, 301, 302, 294, 306, 307, 299, 304, 308, + 309, 312, 310, 303, 311, 307, 310, 313, 314, 311, + + 316, 305, 317, 312, 318, 309, 315, 315, 308, 320, + 319, 314, 316, 319, 317, 313, 321, 321, 323, 318, + 322, 322, 320, 323, 324, 324, 325, 325, 326, 327, + 328, 333, 329, 326, 330, 328, 329, 331, 332, 330, + 334, 331, 335, 332, 336, 334, 360, 335, 360, 337, + 327, 333, 337, 338, 338, 339, 340, 337, 336, 341, + 339, 337, 341, 342, 343, 340, 344, 342, 345, 346, + 350, 344, 351, 345, 357, 346, 347, 343, 348, 347, + 349, 348, 352, 357, 126, 349, 351, 352, 350, 342, + 353, 354, 356, 353, 355, 362, 354, 356, 355, 355, + + 358, 359, 361, 358, 361, 359, 359, 363, 364, 365, + 366, 363, 367, 368, 368, 362, 369, 367, 371, 370, + 369, 372, 373, 364, 370, 366, 374, 365, 379, 384, + 376, 375, 384, 374, 371, 373, 375, 376, 377, 378, + 372, 380, 381, 377, 378, 382, 379, 383, 380, 385, + 386, 381, 383, 385, 387, 387, 389, 391, 390, 382, + 392, 389, 390, 387, 393, 396, 400, 399, 392, 401, + 406, 386, 400, 401, 405, 391, 399, 124, 402, 393, + 404, 414, 396, 402, 403, 404, 403, 407, 403, 415, + 407, 403, 405, 408, 408, 406, 403, 409, 410, 410, + + 411, 414, 403, 403, 409, 412, 412, 413, 415, 416, + 413, 417, 417, 418, 419, 411, 123, 416, 422, 419, + 420, 420, 421, 423, 422, 421, 424, 425, 418, 427, + 426, 423, 428, 428, 424, 426, 427, 430, 429, 431, + 433, 434, 430, 433, 438, 425, 429, 435, 435, 436, + 439, 442, 436, 440, 443, 434, 450, 441, 431, 444, + 436, 441, 440, 443, 446, 438, 445, 449, 450, 447, + 442, 439, 445, 444, 447, 448, 451, 452, 446, 448, + 454, 451, 453, 453, 455, 454, 449, 455, 456, 457, + 458, 459, 460, 460, 462, 458, 461, 461, 452, 463, + + 464, 465, 457, 463, 466, 469, 456, 470, 468, 462, + 471, 459, 468, 472, 473, 474, 480, 480, 466, 464, + 489, 474, 470, 489, 471, 465, 467, 475, 473, 467, + 469, 467, 475, 478, 472, 467, 477, 467, 476, 476, + 479, 477, 467, 481, 483, 482, 476, 478, 481, 484, + 485, 485, 479, 482, 490, 486, 488, 491, 483, 486, + 492, 488, 493, 494, 476, 492, 496, 495, 484, 497, + 491, 493, 495, 490, 498, 500, 501, 121, 504, 498, + 502, 501, 494, 497, 503, 502, 496, 504, 506, 503, + 500, 505, 505, 506, 508, 511, 509, 509, 508, 508, + + 509, 510, 512, 513, 510, 516, 513, 514, 515, 517, + 511, 516, 514, 515, 518, 517, 519, 518, 520, 521, + 522, 523, 512, 526, 524, 522, 523, 524, 526, 528, + 527, 530, 521, 531, 519, 527, 529, 529, 520, 532, + 534, 533, 536, 535, 528, 533, 537, 531, 540, 541, + 530, 532, 535, 542, 543, 544, 546, 119, 534, 543, + 544, 536, 540, 545, 541, 547, 549, 548, 545, 550, + 546, 537, 548, 542, 551, 551, 552, 553, 554, 547, + 555, 549, 556, 554, 550, 557, 553, 556, 558, 561, + 559, 560, 558, 562, 552, 563, 564, 565, 566, 555, + + 567, 561, 568, 565, 557, 559, 560, 571, 573, 572, + 570, 568, 562, 566, 564, 570, 563, 572, 574, 576, + 567, 571, 575, 574, 577, 578, 575, 575, 573, 582, + 578, 580, 576, 577, 579, 579, 580, 581, 581, 583, + 584, 585, 586, 582, 587, 584, 585, 586, 587, 588, + 589, 591, 593, 592, 596, 591, 595, 583, 588, 594, + 597, 589, 596, 588, 598, 588, 601, 588, 592, 604, + 593, 599, 599, 594, 604, 595, 600, 600, 597, 602, + 602, 603, 603, 605, 605, 601, 606, 607, 608, 598, + 609, 610, 611, 608, 621, 607, 613, 610, 614, 611, + + 615, 613, 616, 614, 617, 615, 606, 616, 609, 618, + 619, 620, 620, 617, 621, 622, 624, 623, 629, 625, + 628, 619, 623, 626, 627, 627, 630, 631, 618, 633, + 634, 635, 636, 633, 633, 637, 624, 636, 622, 625, + 628, 626, 638, 629, 630, 640, 641, 639, 642, 635, + 631, 639, 643, 637, 644, 647, 634, 649, 645, 644, + 641, 646, 638, 642, 640, 645, 646, 648, 650, 651, + 652, 643, 649, 647, 650, 652, 648, 653, 654, 655, + 655, 657, 653, 654, 658, 659, 657, 660, 661, 661, + 651, 660, 660, 662, 663, 665, 664, 666, 658, 667, + + 663, 664, 668, 669, 659, 670, 673, 671, 672, 672, + 675, 673, 662, 677, 665, 674, 666, 669, 667, 674, + 676, 668, 671, 675, 678, 678, 670, 679, 680, 676, + 681, 684, 679, 677, 690, 681, 684, 687, 687, 689, + 691, 692, 689, 693, 694, 694, 692, 695, 680, 690, + 696, 696, 697, 698, 700, 699, 701, 703, 693, 699, + 706, 701, 704, 707, 698, 691, 708, 695, 705, 705, + 709, 712, 709, 700, 697, 703, 704, 710, 713, 711, + 706, 714, 710, 707, 711, 716, 708, 714, 717, 719, + 716, 712, 713, 718, 719, 722, 718, 720, 720, 721, + + 723, 724, 725, 726, 726, 723, 727, 725, 728, 729, + 730, 727, 733, 717, 731, 722, 734, 721, 735, 732, + 736, 734, 737, 117, 724, 733, 728, 738, 731, 729, + 730, 732, 739, 741, 744, 740, 745, 744, 735, 739, + 736, 746, 738, 737, 740, 745, 747, 740, 748, 741, + 751, 749, 750, 750, 752, 747, 749, 748, 747, 753, + 746, 754, 755, 756, 757, 757, 758, 752, 759, 761, + 751, 762, 763, 767, 761, 754, 762, 753, 763, 768, + 764, 756, 758, 764, 766, 769, 759, 755, 770, 764, + 772, 767, 766, 773, 774, 775, 777, 773, 768, 774, + + 775, 769, 776, 778, 779, 777, 770, 776, 780, 780, + 772, 781, 782, 784, 786, 783, 785, 787, 784, 779, + 788, 788, 790, 787, 782, 781, 778, 783, 785, 789, + 789, 790, 786, 791, 791, 792, 793, 794, 795, 805, + 792, 796, 796, 797, 797, 798, 798, 799, 800, 802, + 803, 800, 799, 813, 802, 804, 794, 793, 795, 809, + 804, 806, 806, 810, 805, 807, 807, 808, 803, 811, + 812, 809, 808, 809, 813, 814, 814, 815, 809, 816, + 816, 817, 818, 810, 820, 819, 821, 822, 822, 811, + 812, 818, 819, 820, 823, 824, 828, 826, 829, 827, + + 832, 817, 826, 815, 827, 829, 830, 830, 831, 832, + 833, 824, 821, 831, 834, 835, 828, 836, 837, 838, + 823, 839, 848, 836, 67, 843, 840, 837, 841, 834, + 833, 840, 841, 841, 835, 839, 842, 843, 844, 845, + 838, 842, 846, 844, 847, 849, 846, 848, 850, 851, + 849, 845, 852, 61, 851, 854, 847, 857, 854, 855, + 855, 856, 856, 857, 852, 860, 858, 859, 863, 867, + 850, 858, 866, 859, 860, 865, 865, 868, 867, 872, + 863, 874, 880, 873, 875, 875, 868, 865, 873, 876, + 866, 876, 879, 872, 877, 877, 881, 881, 874, 879, + + 882, 883, 880, 884, 885, 886, 887, 889, 890, 891, + 890, 894, 889, 883, 892, 884, 885, 893, 893, 895, + 886, 882, 899, 892, 895, 900, 887, 891, 896, 897, + 896, 898, 904, 901, 897, 905, 898, 894, 901, 902, + 899, 906, 906, 907, 902, 900, 910, 908, 909, 905, + 911, 904, 912, 913, 914, 907, 908, 909, 910, 908, + 914, 916, 917, 911, 918, 919, 919, 916, 920, 913, + 921, 921, 912, 918, 922, 923, 924, 920, 925, 923, + 927, 924, 926, 926, 938, 930, 933, 917, 927, 931, + 931, 925, 934, 922, 930, 932, 932, 934, 933, 935, + + 936, 937, 939, 935, 940, 941, 937, 943, 942, 944, + 938, 946, 946, 947, 948, 936, 947, 56, 949, 943, + 956, 939, 950, 950, 941, 951, 951, 948, 940, 942, + 944, 949, 952, 952, 953, 954, 954, 955, 955, 956, + 957, 957, 958, 958, 960, 961, 961, 953, 962, 960, + 963, 963, 964, 965, 966, 967, 967, 966, 969, 965, + 968, 968, 970, 970, 972, 972, 973, 962, 974, 974, + 964, 967, 975, 976, 977, 978, 979, 969, 976, 980, + 978, 981, 982, 985, 975, 983, 51, 982, 980, 983, + 981, 979, 973, 987, 989, 977, 988, 988, 992, 989, + + 990, 990, 987, 985, 993, 995, 996, 999, 995, 990, + 999, 996, 1002, 992, 997, 997, 993, 998, 1000, 1000, + 1001, 998, 1003, 1004, 1005, 1001, 1003, 1011, 1006, 1005, + 1007, 1009, 1002, 1006, 1010, 1011, 1007, 1028, 1012, 1010, + 1012, 1015, 1015, 1004, 1018, 1018, 1027, 1009, 1021, 1021, + 1023, 1023, 1025, 1026, 1026, 1029, 1034, 1025, 1038, 1028, + 1029, 1034, 1027, 1031, 1031, 1035, 1036, 1035, 1037, 1037, + 1038, 1036, 1039, 1040, 1041, 1042, 1043, 1044, 1044, 1045, + 1046, 1047, 1048, 1049, 1050, 1040, 1041, 1042, 1045, 1052, + 1039, 1051, 1053, 1056, 1052, 1048, 1043, 1053, 1050, 1054, + + 1054, 1047, 1057, 1057, 1059, 1059, 1046, 1049, 1060, 1051, + 1061, 1056, 1062, 1063, 1065, 1067, 1064, 1060, 1066, 1066, + 1067, 1068, 1069, 1070, 1074, 1061, 1075, 1076, 1076, 1075, + 1062, 1063, 1064, 1065, 1077, 1078, 1068, 1080, 1080, 1081, + 1085, 1069, 1086, 1070, 1074, 1082, 1082, 1084, 1084, 1077, + 1087, 1086, 1088, 1078, 1091, 1087, 1089, 1088, 1081, 1094, + 1092, 1093, 1085, 50, 1089, 1092, 1093, 1095, 1095, 1091, + 1096, 1096, 1097, 1111, 1094, 1098, 1098, 1097, 1099, 1099, + 1101, 1102, 1105, 1104, 1112, 1101, 1104, 1106, 1107, 1108, + 1108, 1109, 1111, 1102, 1115, 1105, 1106, 1107, 1113, 1113, + + 1109, 1114, 1115, 1112, 1116, 1118, 1119, 1121, 1121, 1116, + 1114, 1123, 1124, 1124, 1118, 1125, 1126, 1126, 1125, 1119, + 1127, 1127, 1128, 1129, 1130, 1131, 1131, 1135, 1132, 1130, + 1138, 1123, 1132, 1135, 1139, 1140, 1142, 1129, 1141, 1141, + 1128, 1143, 1139, 1144, 1145, 1147, 1143, 1146, 1149, 1138, + 1150, 1149, 1142, 1153, 1140, 1152, 1146, 1151, 1151, 1152, + 1155, 1156, 1153, 1144, 1157, 1147, 1160, 1162, 1150, 1155, + 1145, 1160, 1164, 1156, 1161, 1161, 1162, 1164, 1165, 1166, + 1167, 1168, 1168, 1169, 1170, 1171, 1172, 1165, 1173, 1157, + 1174, 1175, 1169, 1173, 1172, 1167, 1176, 1176, 1166, 1180, + + 1170, 1177, 1179, 1179, 1171, 1181, 1177, 1182, 1182, 1184, + 1175, 1183, 1183, 1185, 1186, 1192, 1174, 1187, 1187, 1180, + 1188, 1189, 1189, 1190, 1242, 1185, 1193, 1181, 1184, 1192, + 45, 1193, 1188, 1242, 1186, 1194, 1194, 1195, 1195, 1196, + 1196, 1197, 1190, 1198, 1198, 1206, 1197, 1200, 1200, 1202, + 1202, 1203, 1208, 1206, 1207, 1207, 1203, 1208, 1210, 1212, + 1213, 1213, 1214, 1210, 1218, 1218, 1214, 1220, 1222, 1222, + 1223, 1220, 1225, 1226, 1226, 1227, 1227, 1229, 1229, 1212, + 1231, 1231, 1233, 1234, 1234, 1223, 1240, 1239, 1241, 1241, + 1225, 1239, 1244, 1246, 1233, 1245, 1247, 1247, 40, 14, + + 13, 0, 0, 0, 0, 0, 1240, 1244, 0, 1245, + 0, 0, 1246, 1250, 1250, 1250, 1250, 1250, 1250, 1250, + 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1252, 1252, 1252, + 1252, 1252, 1252, 1252, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1256, 1256, + 0, 1256, 1256, 1256, 1256, 1257, 1257, 0, 0, 0, + 1257, 1257, 1258, 1258, 0, 0, 1258, 0, 1258, 1259, + 0, 0, 0, 0, 0, 1259, 1260, 1260, 0, 0, + 0, 1260, 1260, 1261, 0, 0, 0, 0, 0, 1261, + 1262, 1262, 0, 1262, 1262, 1262, 1262, 1263, 1263, 0, + + 1263, 1263, 1263, 1263, 1249, 1249, 1249, 1249, 1249, 1249, + 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, + 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, + 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, + 1249, 1249, 1249, 1249 } ; static yy_state_type yy_last_accepting_state; @@ -1518,7 +1527,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1520 "" +#line 1529 "" #define INITIAL 0 #define quotedstring 1 @@ -1705,7 +1714,7 @@ YY_DECL #line 120 "util/configlexer.lex" -#line 1707 "" +#line 1716 "" if ( !(yy_init) ) { @@ -1764,13 +1773,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 >= 1236 ) + if ( yy_current_state >= 1250 ) 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] != 2482 ); + while ( yy_base[yy_current_state] != 2505 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2215,174 +2224,179 @@ YY_RULE_SETUP case 84: YY_RULE_SETUP #line 207 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 85: YY_RULE_SETUP #line 208 "util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 86: YY_RULE_SETUP #line 209 "util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 87: YY_RULE_SETUP #line 210 "util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 88: YY_RULE_SETUP #line 211 "util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 89: YY_RULE_SETUP -#line 213 "util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 212 "util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 90: YY_RULE_SETUP #line 214 "util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 91: YY_RULE_SETUP #line 215 "util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 92: YY_RULE_SETUP #line 216 "util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 93: YY_RULE_SETUP #line 217 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 94: YY_RULE_SETUP #line 218 "util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 95: YY_RULE_SETUP #line 219 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 96: YY_RULE_SETUP #line 220 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 97: YY_RULE_SETUP #line 221 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 98: YY_RULE_SETUP #line 222 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 99: YY_RULE_SETUP #line 223 "util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 100: YY_RULE_SETUP #line 224 "util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 101: YY_RULE_SETUP #line 225 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 102: YY_RULE_SETUP #line 226 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 103: YY_RULE_SETUP #line 227 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 104: YY_RULE_SETUP #line 228 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 105: YY_RULE_SETUP #line 229 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 106: YY_RULE_SETUP #line 230 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 107: YY_RULE_SETUP #line 231 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 108: YY_RULE_SETUP #line 232 "util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 109: YY_RULE_SETUP #line 233 "util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 110: YY_RULE_SETUP #line 234 "util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 111: -/* rule 111 can match eol */ YY_RULE_SETUP #line 235 "util/configlexer.lex" +{ YDVAR(1, VAR_DOMAIN_INSECURE) } + YY_BREAK +case 112: +/* rule 112 can match eol */ +YY_RULE_SETUP +#line 236 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 112: +case 113: YY_RULE_SETUP -#line 238 "util/configlexer.lex" +#line 239 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 239 "util/configlexer.lex" +#line 240 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 244 "util/configlexer.lex" +#line 245 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 114: -/* rule 114 can match eol */ +case 115: +/* rule 115 can match eol */ YY_RULE_SETUP -#line 245 "util/configlexer.lex" +#line 246 "util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 115: +case 116: YY_RULE_SETUP -#line 247 "util/configlexer.lex" +#line 248 "util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2395,34 +2409,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 116: +case 117: YY_RULE_SETUP -#line 259 "util/configlexer.lex" +#line 260 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 260 "util/configlexer.lex" +#line 261 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 117: +case 118: YY_RULE_SETUP -#line 265 "util/configlexer.lex" +#line 266 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 118: -/* rule 118 can match eol */ +case 119: +/* rule 119 can match eol */ YY_RULE_SETUP -#line 266 "util/configlexer.lex" +#line 267 "util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 119: +case 120: YY_RULE_SETUP -#line 268 "util/configlexer.lex" +#line 269 "util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2435,38 +2449,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 120: +case 121: YY_RULE_SETUP -#line 280 "util/configlexer.lex" +#line 281 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 282 "util/configlexer.lex" +#line 283 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 121: -YY_RULE_SETUP -#line 286 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 122: -/* rule 122 can match eol */ YY_RULE_SETUP #line 287 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 123: +/* rule 123 can match eol */ YY_RULE_SETUP #line 288 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 124: YY_RULE_SETUP #line 289 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 125: +YY_RULE_SETUP +#line 290 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -2474,27 +2488,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 294 "util/configlexer.lex" +#line 295 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 298 "util/configlexer.lex" +#line 299 "util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 126: -/* rule 126 can match eol */ +case 127: +/* rule 127 can match eol */ YY_RULE_SETUP -#line 299 "util/configlexer.lex" +#line 300 "util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 301 "util/configlexer.lex" +#line 302 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -2504,7 +2518,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 307 "util/configlexer.lex" +#line 308 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2515,33 +2529,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 317 "util/configlexer.lex" +#line 318 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 321 "util/configlexer.lex" +#line 322 "util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 325 "util/configlexer.lex" +#line 326 "util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 131: +case 132: YY_RULE_SETUP -#line 329 "util/configlexer.lex" +#line 330 "util/configlexer.lex" ECHO; YY_BREAK -#line 2543 "" +#line 2557 "" case YY_END_OF_BUFFER: { @@ -2831,7 +2845,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 >= 1236 ) + if ( yy_current_state >= 1250 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2859,11 +2873,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 >= 1236 ) + if ( yy_current_state >= 1250 ) 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 == 1235); + yy_is_jam = (yy_current_state == 1249); return yy_is_jam ? 0 : yy_current_state; } @@ -3500,7 +3514,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 329 "util/configlexer.lex" +#line 330 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 5ccb9ec68..d9f70180b 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -204,6 +204,7 @@ val-sig-skew-max{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } val-bogus-ttl{COLON} { YDVAR(1, VAR_BOGUS_TTL) } val-clean-additional{COLON} { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } val-permissive-mode{COLON} { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +ignore-cd-flag{COLON} { YDVAR(1, VAR_IGNORE_CD_FLAG) } val-log-level{COLON} { YDVAR(1, VAR_VAL_LOG_LEVEL) } key-cache-size{COLON} { YDVAR(1, VAR_KEY_CACHE_SIZE) } key-cache-slabs{COLON} { YDVAR(1, VAR_KEY_CACHE_SLABS) } diff --git a/util/configparser.c b/util/configparser.c index 754ee7420..cfd15e8ad 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,10 +1,9 @@ - -/* A Bison parser, made by GNU Bison 2.4.1. */ +/* A Bison parser, made by GNU Bison 2.4.3. */ /* Skeleton implementation for Bison's Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -46,7 +45,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.4.1" +#define YYBISON_VERSION "2.4.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -97,7 +96,7 @@ extern struct config_parser_state* cfg_parser; /* Line 189 of yacc.c */ -#line 101 "util/configparser.c" +#line 100 "util/configparser.c" /* Enabling traces. */ #ifndef YYDEBUG @@ -239,7 +238,8 @@ extern struct config_parser_state* cfg_parser; VAR_PREFETCH = 370, VAR_PREFETCH_KEY = 371, VAR_SO_SNDBUF = 372, - VAR_HARDEN_BELOW_NXDOMAIN = 373 + VAR_HARDEN_BELOW_NXDOMAIN = 373, + VAR_IGNORE_CD_FLAG = 374 }; #endif /* Tokens. */ @@ -359,6 +359,7 @@ extern struct config_parser_state* cfg_parser; #define VAR_PREFETCH_KEY 371 #define VAR_SO_SNDBUF 372 #define VAR_HARDEN_BELOW_NXDOMAIN 373 +#define VAR_IGNORE_CD_FLAG 374 @@ -375,7 +376,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 379 "util/configparser.c" +#line 380 "util/configparser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -387,7 +388,7 @@ typedef union YYSTYPE /* Line 264 of yacc.c */ -#line 391 "util/configparser.c" +#line 392 "util/configparser.c" #ifdef short # undef short @@ -437,7 +438,7 @@ typedef short int yytype_int16; #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ -# if YYENABLE_NLS +# if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) @@ -602,20 +603,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 216 +#define YYLAST 217 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 119 +#define YYNTOKENS 120 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 122 +#define YYNNTS 123 /* YYNRULES -- Number of rules. */ -#define YYNRULES 231 +#define YYNRULES 233 /* YYNRULES -- Number of states. */ -#define YYNSTATES 338 +#define YYNSTATES 341 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 373 +#define YYMAXUTOK 374 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -660,7 +661,7 @@ static const yytype_uint8 yytranslate[] = 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118 + 115, 116, 117, 118, 119 }; #if YYDEBUG @@ -678,112 +679,112 @@ static const yytype_uint16 yyprhs[] = 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, - 204, 206, 208, 211, 212, 214, 216, 218, 220, 222, - 225, 226, 228, 230, 232, 235, 238, 241, 244, 247, - 250, 253, 256, 259, 262, 265, 268, 271, 274, 277, - 280, 283, 286, 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, 440, 443, 446, 449, 452, 455, 458, - 461, 464, 467, 470, 473, 476, 479, 482, 485, 488, - 491, 495, 498, 501, 504, 507, 510, 513, 516, 519, - 522, 524, 527, 528, 530, 532, 534, 536, 538, 540, - 542, 545, 548, 551, 554, 557, 560, 563, 565, 568, - 569, 571 + 204, 206, 208, 210, 213, 214, 216, 218, 220, 222, + 224, 227, 228, 230, 232, 234, 237, 240, 243, 246, + 249, 252, 255, 258, 261, 264, 267, 270, 273, 276, + 279, 282, 285, 288, 291, 294, 297, 300, 303, 306, + 309, 312, 315, 318, 321, 324, 327, 330, 333, 336, + 339, 342, 345, 348, 351, 354, 357, 360, 363, 366, + 369, 372, 375, 378, 381, 384, 387, 390, 393, 396, + 399, 402, 405, 408, 411, 414, 417, 420, 423, 426, + 429, 432, 435, 438, 442, 445, 448, 451, 454, 457, + 460, 463, 466, 469, 472, 475, 478, 481, 484, 487, + 490, 493, 496, 500, 503, 506, 509, 512, 515, 518, + 521, 524, 527, 529, 532, 533, 535, 537, 539, 541, + 543, 545, 547, 550, 553, 556, 559, 562, 565, 568, + 570, 573, 574, 576 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 120, 0, -1, -1, 120, 121, -1, 122, 123, -1, - 125, 126, -1, 128, 129, -1, 237, 238, -1, 227, - 228, -1, 11, -1, 123, 124, -1, -1, 131, -1, - 132, -1, 136, -1, 139, -1, 145, -1, 146, -1, - 147, -1, 148, -1, 137, -1, 152, -1, 153, -1, - 154, -1, 155, -1, 156, -1, 173, -1, 174, -1, - 175, -1, 177, -1, 178, -1, 142, -1, 179, -1, - 180, -1, 183, -1, 181, -1, 182, -1, 184, -1, - 185, -1, 186, -1, 197, -1, 165, -1, 166, -1, - 167, -1, 168, -1, 187, -1, 200, -1, 161, -1, - 163, -1, 201, -1, 206, -1, 207, -1, 208, -1, - 143, -1, 172, -1, 214, -1, 215, -1, 162, -1, - 210, -1, 150, -1, 138, -1, 157, -1, 198, -1, - 204, -1, 188, -1, 199, -1, 217, -1, 218, -1, - 144, -1, 133, -1, 149, -1, 191, -1, 134, -1, - 140, -1, 141, -1, 158, -1, 159, -1, 216, -1, - 190, -1, 192, -1, 193, -1, 135, -1, 219, -1, - 176, -1, 196, -1, 151, -1, 164, -1, 202, -1, - 203, -1, 205, -1, 209, -1, 160, -1, 211, -1, - 212, -1, 213, -1, 169, -1, 171, -1, 194, -1, - 195, -1, 170, -1, 189, -1, 38, -1, 126, 127, - -1, -1, 220, -1, 221, -1, 222, -1, 223, -1, - 44, -1, 129, 130, -1, -1, 224, -1, 225, -1, - 226, -1, 13, 10, -1, 12, 10, -1, 76, 10, - -1, 79, 10, -1, 96, 10, -1, 14, 10, -1, - 16, 10, -1, 67, 10, -1, 15, 10, -1, 80, - 10, -1, 81, 10, -1, 31, 10, -1, 60, 10, - -1, 75, 10, -1, 17, 10, -1, 18, 10, -1, - 19, 10, -1, 20, 10, -1, 77, 10, -1, 66, - 10, -1, 101, 10, -1, 21, 10, -1, 22, 10, - -1, 23, 10, -1, 24, 10, -1, 25, 10, -1, - 68, 10, -1, 82, 10, -1, 83, 10, -1, 109, - 10, -1, 54, 10, -1, 64, 10, -1, 55, 10, - -1, 102, 10, -1, 48, 10, -1, 49, 10, -1, - 50, 10, -1, 51, 10, -1, 113, 10, -1, 117, - 10, -1, 114, 10, -1, 61, 10, -1, 26, 10, - -1, 27, 10, -1, 28, 10, -1, 98, 10, -1, - 29, 10, -1, 30, 10, -1, 32, 10, -1, 33, - 10, -1, 35, 10, -1, 36, 10, -1, 34, 10, - -1, 41, 10, -1, 42, 10, -1, 43, 10, -1, - 52, 10, -1, 71, 10, -1, 118, 10, -1, 85, - 10, -1, 78, 10, -1, 86, 10, -1, 87, 10, - -1, 115, 10, -1, 116, 10, -1, 100, 10, -1, - 47, 10, -1, 69, 10, -1, 72, 10, 10, -1, - 53, 10, -1, 56, 10, -1, 105, 10, -1, 106, - 10, -1, 70, 10, -1, 107, 10, -1, 57, 10, - -1, 58, 10, -1, 59, 10, -1, 108, 10, -1, - 65, 10, -1, 111, 10, -1, 112, 10, -1, 110, - 10, -1, 62, 10, -1, 63, 10, -1, 84, 10, - -1, 73, 10, 10, -1, 74, 10, -1, 97, 10, - -1, 37, 10, -1, 39, 10, -1, 40, 10, -1, - 99, 10, -1, 37, 10, -1, 45, 10, -1, 46, - 10, -1, 88, -1, 228, 229, -1, -1, 230, -1, - 232, -1, 231, -1, 233, -1, 234, -1, 235, -1, - 236, -1, 89, 10, -1, 91, 10, -1, 90, 10, - -1, 92, 10, -1, 93, 10, -1, 94, 10, -1, - 95, 10, -1, 103, -1, 238, 239, -1, -1, 240, - -1, 104, 10, -1 + 121, 0, -1, -1, 121, 122, -1, 123, 124, -1, + 126, 127, -1, 129, 130, -1, 239, 240, -1, 229, + 230, -1, 11, -1, 124, 125, -1, -1, 132, -1, + 133, -1, 137, -1, 140, -1, 146, -1, 147, -1, + 148, -1, 149, -1, 138, -1, 153, -1, 154, -1, + 155, -1, 156, -1, 157, -1, 174, -1, 175, -1, + 176, -1, 178, -1, 179, -1, 143, -1, 180, -1, + 181, -1, 184, -1, 182, -1, 183, -1, 185, -1, + 186, -1, 187, -1, 198, -1, 166, -1, 167, -1, + 168, -1, 169, -1, 188, -1, 201, -1, 162, -1, + 164, -1, 202, -1, 207, -1, 208, -1, 209, -1, + 144, -1, 173, -1, 216, -1, 217, -1, 163, -1, + 212, -1, 151, -1, 139, -1, 158, -1, 199, -1, + 205, -1, 189, -1, 200, -1, 219, -1, 220, -1, + 145, -1, 134, -1, 150, -1, 192, -1, 135, -1, + 141, -1, 142, -1, 159, -1, 160, -1, 218, -1, + 191, -1, 193, -1, 194, -1, 136, -1, 221, -1, + 177, -1, 197, -1, 152, -1, 165, -1, 203, -1, + 204, -1, 206, -1, 211, -1, 161, -1, 213, -1, + 214, -1, 215, -1, 170, -1, 172, -1, 195, -1, + 196, -1, 171, -1, 190, -1, 210, -1, 38, -1, + 127, 128, -1, -1, 222, -1, 223, -1, 224, -1, + 225, -1, 44, -1, 130, 131, -1, -1, 226, -1, + 227, -1, 228, -1, 13, 10, -1, 12, 10, -1, + 76, 10, -1, 79, 10, -1, 96, 10, -1, 14, + 10, -1, 16, 10, -1, 67, 10, -1, 15, 10, + -1, 80, 10, -1, 81, 10, -1, 31, 10, -1, + 60, 10, -1, 75, 10, -1, 17, 10, -1, 18, + 10, -1, 19, 10, -1, 20, 10, -1, 77, 10, + -1, 66, 10, -1, 101, 10, -1, 21, 10, -1, + 22, 10, -1, 23, 10, -1, 24, 10, -1, 25, + 10, -1, 68, 10, -1, 82, 10, -1, 83, 10, + -1, 109, 10, -1, 54, 10, -1, 64, 10, -1, + 55, 10, -1, 102, 10, -1, 48, 10, -1, 49, + 10, -1, 50, 10, -1, 51, 10, -1, 113, 10, + -1, 117, 10, -1, 114, 10, -1, 61, 10, -1, + 26, 10, -1, 27, 10, -1, 28, 10, -1, 98, + 10, -1, 29, 10, -1, 30, 10, -1, 32, 10, + -1, 33, 10, -1, 35, 10, -1, 36, 10, -1, + 34, 10, -1, 41, 10, -1, 42, 10, -1, 43, + 10, -1, 52, 10, -1, 71, 10, -1, 118, 10, + -1, 85, 10, -1, 78, 10, -1, 86, 10, -1, + 87, 10, -1, 115, 10, -1, 116, 10, -1, 100, + 10, -1, 47, 10, -1, 69, 10, -1, 72, 10, + 10, -1, 53, 10, -1, 56, 10, -1, 105, 10, + -1, 106, 10, -1, 70, 10, -1, 107, 10, -1, + 57, 10, -1, 58, 10, -1, 59, 10, -1, 119, + 10, -1, 108, 10, -1, 65, 10, -1, 111, 10, + -1, 112, 10, -1, 110, 10, -1, 62, 10, -1, + 63, 10, -1, 84, 10, -1, 73, 10, 10, -1, + 74, 10, -1, 97, 10, -1, 37, 10, -1, 39, + 10, -1, 40, 10, -1, 99, 10, -1, 37, 10, + -1, 45, 10, -1, 46, 10, -1, 88, -1, 230, + 231, -1, -1, 232, -1, 234, -1, 233, -1, 235, + -1, 236, -1, 237, -1, 238, -1, 89, 10, -1, + 91, 10, -1, 90, 10, -1, 92, 10, -1, 93, + 10, -1, 94, 10, -1, 95, 10, -1, 103, -1, + 240, 241, -1, -1, 242, -1, 104, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 107, 107, 107, 108, 108, 109, 109, 110, 114, - 119, 120, 121, 121, 121, 122, 122, 123, 123, 123, - 124, 124, 124, 125, 125, 125, 126, 126, 127, 127, - 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, - 133, 133, 134, 134, 134, 135, 135, 135, 136, 136, - 136, 137, 137, 138, 138, 139, 139, 140, 140, 141, - 141, 141, 142, 142, 143, 143, 144, 144, 144, 145, - 145, 146, 146, 147, 147, 148, 148, 148, 149, 149, - 150, 150, 151, 151, 152, 152, 153, 153, 154, 154, - 154, 155, 155, 156, 156, 156, 157, 157, 157, 158, - 158, 160, 172, 173, 174, 174, 174, 174, 176, 188, - 189, 190, 190, 190, 192, 201, 210, 221, 230, 239, - 248, 261, 276, 285, 294, 303, 312, 321, 330, 339, - 348, 357, 366, 375, 389, 398, 405, 412, 419, 427, - 434, 441, 448, 455, 463, 471, 479, 486, 493, 502, - 511, 518, 525, 533, 541, 554, 565, 573, 586, 595, - 604, 612, 625, 634, 643, 652, 661, 674, 681, 691, - 701, 711, 721, 731, 741, 751, 758, 765, 774, 783, - 792, 799, 809, 823, 830, 848, 861, 874, 883, 892, - 901, 911, 921, 930, 937, 946, 955, 964, 972, 985, - 993, 1015, 1022, 1037, 1047, 1054, 1061, 1071, 1081, 1088, - 1095, 1100, 1101, 1102, 1102, 1102, 1103, 1103, 1103, 1104, - 1106, 1116, 1125, 1132, 1139, 1146, 1153, 1160, 1165, 1166, - 1167, 1169 + 0, 108, 108, 108, 109, 109, 110, 110, 111, 115, + 120, 121, 122, 122, 122, 123, 123, 124, 124, 124, + 125, 125, 125, 126, 126, 126, 127, 127, 128, 128, + 129, 129, 130, 130, 131, 131, 132, 132, 133, 133, + 134, 134, 135, 135, 135, 136, 136, 136, 137, 137, + 137, 138, 138, 139, 139, 140, 140, 141, 141, 142, + 142, 142, 143, 143, 144, 144, 145, 145, 145, 146, + 146, 147, 147, 148, 148, 149, 149, 149, 150, 150, + 151, 151, 152, 152, 153, 153, 154, 154, 155, 155, + 155, 156, 156, 157, 157, 157, 158, 158, 158, 159, + 159, 159, 161, 173, 174, 175, 175, 175, 175, 177, + 189, 190, 191, 191, 191, 193, 202, 211, 222, 231, + 240, 249, 262, 277, 286, 295, 304, 313, 322, 331, + 340, 349, 358, 367, 376, 390, 399, 406, 413, 420, + 428, 435, 442, 449, 456, 464, 472, 480, 487, 494, + 503, 512, 519, 526, 534, 542, 555, 566, 574, 587, + 596, 605, 613, 626, 635, 644, 653, 662, 675, 682, + 692, 702, 712, 722, 732, 742, 752, 759, 766, 775, + 784, 793, 800, 810, 824, 831, 849, 862, 875, 884, + 893, 902, 912, 922, 931, 940, 947, 956, 965, 974, + 982, 995, 1003, 1025, 1032, 1047, 1057, 1064, 1071, 1081, + 1091, 1098, 1105, 1110, 1111, 1112, 1112, 1112, 1113, 1113, + 1113, 1114, 1116, 1126, 1135, 1142, 1149, 1156, 1163, 1170, + 1175, 1176, 1177, 1179 }; #endif @@ -829,11 +830,11 @@ static const char *const yytname[] = "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", "VAR_KEEP_MISSING", "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF", "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", "VAR_PREFETCH_KEY", - "VAR_SO_SNDBUF", "VAR_HARDEN_BELOW_NXDOMAIN", "$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", + "VAR_SO_SNDBUF", "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG", + "$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", @@ -866,16 +867,17 @@ static const char *const yytname[] = "server_val_sig_skew_max", "server_cache_max_ttl", "server_cache_min_ttl", "server_bogus_ttl", "server_val_clean_additional", "server_val_permissive_mode", - "server_val_log_level", "server_val_nsec3_keysize_iterations", - "server_add_holddown", "server_del_holddown", "server_keep_missing", - "server_key_cache_size", "server_key_cache_slabs", - "server_neg_cache_size", "server_local_zone", "server_local_data", - "server_local_data_ptr", "stub_name", "stub_host", "stub_addr", - "stub_prime", "forward_name", "forward_host", "forward_addr", "rcstart", - "contents_rc", "content_rc", "rc_control_enable", "rc_control_port", - "rc_control_interface", "rc_server_key_file", "rc_server_cert_file", - "rc_control_key_file", "rc_control_cert_file", "pythonstart", - "contents_py", "content_py", "py_script", 0 + "server_ignore_cd_flag", "server_val_log_level", + "server_val_nsec3_keysize_iterations", "server_add_holddown", + "server_del_holddown", "server_keep_missing", "server_key_cache_size", + "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", + "server_local_data", "server_local_data_ptr", "stub_name", "stub_host", + "stub_addr", "stub_prime", "forward_name", "forward_host", + "forward_addr", "rcstart", "contents_rc", "content_rc", + "rc_control_enable", "rc_control_port", "rc_control_interface", + "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file", + "rc_control_cert_file", "pythonstart", "contents_py", "content_py", + "py_script", 0 }; #endif @@ -895,25 +897,25 @@ static const yytype_uint16 yytoknum[] = 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373 + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 119, 120, 120, 121, 121, 121, 121, 121, 122, - 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 125, 126, 126, 127, 127, 127, 127, 128, 129, - 129, 130, 130, 130, 131, 132, 133, 134, 135, 136, + 0, 120, 121, 121, 122, 122, 122, 122, 122, 123, + 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 126, 127, 127, 128, 128, 128, 128, 129, + 130, 130, 131, 131, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, @@ -923,9 +925,9 @@ static const yytype_uint8 yyr1[] = 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, 228, 229, 229, 229, 229, 229, 229, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 238, - 239, 240 + 227, 228, 229, 230, 230, 231, 231, 231, 231, 231, + 231, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 240, 241, 242 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -941,20 +943,20 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 0, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, + 2, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 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, - 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 2 + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -962,8 +964,8 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 9, 101, 108, 210, 227, 3, 11, - 103, 110, 212, 229, 4, 5, 6, 8, 7, 0, + 2, 0, 1, 9, 102, 109, 212, 229, 3, 11, + 104, 111, 214, 231, 4, 5, 6, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -972,48 +974,49 @@ static const yytype_uint8 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 12, - 13, 69, 72, 81, 14, 20, 60, 15, 73, 74, - 31, 53, 68, 16, 17, 18, 19, 70, 59, 85, - 21, 22, 23, 24, 25, 61, 75, 76, 91, 47, - 57, 48, 86, 41, 42, 43, 44, 95, 99, 96, - 54, 26, 27, 28, 83, 29, 30, 32, 33, 35, - 36, 34, 37, 38, 39, 45, 64, 100, 78, 71, - 79, 80, 97, 98, 84, 40, 62, 65, 46, 49, - 87, 88, 63, 89, 50, 51, 52, 90, 58, 92, - 93, 94, 55, 56, 77, 66, 67, 82, 0, 0, - 0, 0, 102, 104, 105, 106, 107, 0, 0, 0, - 109, 111, 112, 113, 0, 0, 0, 0, 0, 0, - 0, 211, 213, 215, 214, 216, 217, 218, 219, 0, - 228, 230, 115, 114, 119, 122, 120, 128, 129, 130, - 131, 135, 136, 137, 138, 139, 156, 157, 158, 160, - 161, 125, 162, 163, 166, 164, 165, 167, 168, 169, - 180, 148, 149, 150, 151, 170, 183, 144, 146, 184, - 189, 190, 191, 126, 155, 197, 198, 145, 193, 133, - 121, 140, 181, 187, 171, 0, 0, 201, 127, 116, - 132, 174, 117, 123, 124, 141, 142, 199, 173, 175, - 176, 118, 202, 159, 179, 134, 147, 185, 186, 188, - 192, 143, 196, 194, 195, 152, 154, 177, 178, 153, - 172, 203, 204, 205, 206, 207, 208, 209, 220, 222, - 221, 223, 224, 225, 226, 231, 182, 200 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 12, 13, 69, 72, 81, 14, 20, 60, 15, 73, + 74, 31, 53, 68, 16, 17, 18, 19, 70, 59, + 85, 21, 22, 23, 24, 25, 61, 75, 76, 91, + 47, 57, 48, 86, 41, 42, 43, 44, 95, 99, + 96, 54, 26, 27, 28, 83, 29, 30, 32, 33, + 35, 36, 34, 37, 38, 39, 45, 64, 100, 78, + 71, 79, 80, 97, 98, 84, 40, 62, 65, 46, + 49, 87, 88, 63, 89, 50, 51, 52, 101, 90, + 58, 92, 93, 94, 55, 56, 77, 66, 67, 82, + 0, 0, 0, 0, 103, 105, 106, 107, 108, 0, + 0, 0, 110, 112, 113, 114, 0, 0, 0, 0, + 0, 0, 0, 213, 215, 217, 216, 218, 219, 220, + 221, 0, 230, 232, 116, 115, 120, 123, 121, 129, + 130, 131, 132, 136, 137, 138, 139, 140, 157, 158, + 159, 161, 162, 126, 163, 164, 167, 165, 166, 168, + 169, 170, 181, 149, 150, 151, 152, 171, 184, 145, + 147, 185, 190, 191, 192, 127, 156, 199, 200, 146, + 195, 134, 122, 141, 182, 188, 172, 0, 0, 203, + 128, 117, 133, 175, 118, 124, 125, 142, 143, 201, + 174, 176, 177, 119, 204, 160, 180, 135, 148, 186, + 187, 189, 194, 144, 198, 196, 197, 153, 155, 178, + 179, 154, 173, 193, 205, 206, 207, 208, 209, 210, + 211, 222, 224, 223, 225, 226, 227, 228, 233, 183, + 202 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 8, 9, 14, 108, 10, 15, 202, 11, - 16, 210, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 203, 204, 205, 206, 211, 212, 213, 12, 17, - 221, 222, 223, 224, 225, 226, 227, 228, 13, 18, - 230, 231 + -1, 1, 8, 9, 14, 109, 10, 15, 204, 11, + 16, 212, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 205, 206, 207, 208, 213, 214, 215, 12, + 17, 223, 224, 225, 226, 227, 228, 229, 230, 13, + 18, 232, 233 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -1022,16 +1025,17 @@ static const yytype_int16 yydefgoto[] = static const yytype_int16 yypact[] = { -80, 76, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -12, 40, 46, 18, -79, 16, - 17, 22, 23, 24, 68, 71, 72, 105, 106, 107, - 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, + -80, -80, -80, -80, -12, 40, 46, 32, -79, 16, + 17, 18, 22, 23, 24, 68, 71, 72, 98, 99, + 100, 101, 102, 103, 105, 106, 107, 108, 109, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, -80, -80, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -80, + -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, @@ -1040,21 +1044,21 @@ static const yytype_int16 yypact[] = -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -80, -80, -80, -80, 190, 191, - 192, 193, -80, -80, -80, -80, -80, 194, 195, 196, - -80, -80, -80, -80, 197, 198, 199, 200, 201, 202, - 203, -80, -80, -80, -80, -80, -80, -80, -80, 204, + 191, 192, 193, 194, -80, -80, -80, -80, -80, 195, + 196, 197, -80, -80, -80, -80, 198, 199, 200, 201, + 202, 203, 204, -80, -80, -80, -80, -80, -80, -80, + -80, 205, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, + -80, -80, -80, -80, -80, -80, -80, 206, 207, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -80, 205, 206, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -80, -80, -80, -80 + -80 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1072,7 +1076,7 @@ static const yytype_int8 yypgoto[] = -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80 + -80, -80, -80 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1084,33 +1088,33 @@ static const yytype_uint16 yytable[] = { 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 229, 232, 233, 0, 44, - 45, 46, 234, 235, 236, 47, 48, 49, 50, 51, + 39, 40, 41, 42, 43, 231, 234, 235, 236, 44, + 45, 46, 237, 238, 239, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 2, 198, 237, 199, - 200, 238, 239, 207, 88, 89, 90, 3, 91, 92, - 93, 208, 209, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 214, 215, 216, - 217, 218, 219, 220, 4, 240, 241, 242, 243, 244, - 5, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 201, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 6, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 7, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337 + 82, 83, 84, 85, 86, 87, 2, 200, 240, 201, + 202, 241, 242, 209, 88, 89, 90, 3, 91, 92, + 93, 210, 211, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 243, 244, + 245, 246, 247, 248, 4, 249, 250, 251, 252, 253, + 5, 216, 217, 218, 219, 220, 221, 222, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 203, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 6, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 7, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340 }; -static const yytype_int8 yycheck[] = +static const yytype_uint8 yycheck[] = { 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, 104, 10, 10, -1, 41, + 32, 33, 34, 35, 36, 104, 10, 10, 10, 41, 42, 43, 10, 10, 10, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, @@ -1118,9 +1122,9 @@ static const yytype_int8 yycheck[] = 82, 83, 84, 85, 86, 87, 0, 37, 10, 39, 40, 10, 10, 37, 96, 97, 98, 11, 100, 101, 102, 45, 46, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 89, 90, 91, - 92, 93, 94, 95, 38, 10, 10, 10, 10, 10, - 44, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 112, 113, 114, 115, 116, 117, 118, 119, 10, 10, + 10, 10, 10, 10, 38, 10, 10, 10, 10, 10, + 44, 89, 90, 91, 92, 93, 94, 95, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 99, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1129,15 +1133,15 @@ static const yytype_int8 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 120, 0, 11, 38, 44, 88, 103, 121, 122, - 125, 128, 227, 237, 123, 126, 129, 228, 238, 12, + 0, 121, 0, 11, 38, 44, 88, 103, 122, 123, + 126, 129, 229, 239, 124, 127, 130, 230, 240, 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, @@ -1146,7 +1150,7 @@ static const yytype_uint8 yystos[] = 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 96, 97, 98, 100, 101, 102, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 124, 131, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 125, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, @@ -1155,11 +1159,11 @@ static const yytype_uint8 yystos[] = 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, 37, 39, - 40, 99, 127, 220, 221, 222, 223, 37, 45, 46, - 130, 224, 225, 226, 89, 90, 91, 92, 93, 94, - 95, 229, 230, 231, 232, 233, 234, 235, 236, 104, - 239, 240, 10, 10, 10, 10, 10, 10, 10, 10, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 37, 39, 40, 99, 128, 222, 223, 224, 225, 37, + 45, 46, 131, 226, 227, 228, 89, 90, 91, 92, + 93, 94, 95, 231, 232, 233, 234, 235, 236, 237, + 238, 104, 241, 242, 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, @@ -1169,7 +1173,8 @@ static const yytype_uint8 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10 }; #define yyerrok (yyerrstatus = 0) @@ -1184,9 +1189,18 @@ static const yytype_uint8 yystos[] = /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ #define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif #define YYRECOVERING() (!!yyerrstatus) @@ -1243,7 +1257,7 @@ while (YYID (0)) we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT -# if YYLTYPE_IS_TRIVIAL +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ @@ -1982,17 +1996,17 @@ yyreduce: { case 9: -/* Line 1455 of yacc.c */ -#line 115 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 116 "util/configparser.y" { OUTYY(("\nP(server:)\n")); } break; - case 101: + case 102: -/* Line 1455 of yacc.c */ -#line 161 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 162 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2005,10 +2019,10 @@ yyreduce: } break; - case 108: + case 109: -/* Line 1455 of yacc.c */ -#line 177 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 178 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2021,10 +2035,10 @@ yyreduce: } break; - case 114: + case 115: -/* Line 1455 of yacc.c */ -#line 193 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 194 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2034,10 +2048,10 @@ yyreduce: } break; - case 115: + case 116: -/* Line 1455 of yacc.c */ -#line 202 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 203 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2047,10 +2061,10 @@ yyreduce: } break; - case 116: + case 117: -/* Line 1455 of yacc.c */ -#line 211 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 212 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) @@ -2062,10 +2076,10 @@ yyreduce: } break; - case 117: + case 118: -/* Line 1455 of yacc.c */ -#line 222 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 223 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2075,10 +2089,10 @@ yyreduce: } break; - case 118: + case 119: -/* Line 1455 of yacc.c */ -#line 231 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 232 "util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2088,10 +2102,10 @@ yyreduce: } break; - case 119: + case 120: -/* Line 1455 of yacc.c */ -#line 240 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 241 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2101,10 +2115,10 @@ yyreduce: } break; - case 120: + case 121: -/* Line 1455 of yacc.c */ -#line 249 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 250 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2118,10 +2132,10 @@ yyreduce: } break; - case 121: + case 122: -/* Line 1455 of yacc.c */ -#line 262 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 263 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2137,10 +2151,10 @@ yyreduce: } break; - case 122: + case 123: -/* Line 1455 of yacc.c */ -#line 277 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 278 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2150,10 +2164,10 @@ yyreduce: } break; - case 123: + case 124: -/* Line 1455 of yacc.c */ -#line 286 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 287 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, @@ -2163,10 +2177,10 @@ yyreduce: } break; - case 124: + case 125: -/* Line 1455 of yacc.c */ -#line 295 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 296 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, @@ -2176,10 +2190,10 @@ yyreduce: } break; - case 125: + case 126: -/* Line 1455 of yacc.c */ -#line 304 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 305 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2189,10 +2203,10 @@ yyreduce: } break; - case 126: + case 127: -/* Line 1455 of yacc.c */ -#line 313 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 314 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2202,10 +2216,10 @@ yyreduce: } break; - case 127: + case 128: -/* Line 1455 of yacc.c */ -#line 322 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 323 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2215,10 +2229,10 @@ yyreduce: } break; - case 128: + case 129: -/* Line 1455 of yacc.c */ -#line 331 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 332 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2228,10 +2242,10 @@ yyreduce: } break; - case 129: + case 130: -/* Line 1455 of yacc.c */ -#line 340 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 341 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2241,10 +2255,10 @@ yyreduce: } break; - case 130: + case 131: -/* Line 1455 of yacc.c */ -#line 349 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 350 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2254,10 +2268,10 @@ yyreduce: } break; - case 131: + case 132: -/* Line 1455 of yacc.c */ -#line 358 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 359 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2267,10 +2281,10 @@ yyreduce: } break; - case 132: + case 133: -/* Line 1455 of yacc.c */ -#line 367 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 368 "util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2280,10 +2294,10 @@ yyreduce: } break; - case 133: + case 134: -/* Line 1455 of yacc.c */ -#line 376 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 377 "util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2298,10 +2312,10 @@ yyreduce: } break; - case 134: + case 135: -/* Line 1455 of yacc.c */ -#line 390 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 391 "util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2311,10 +2325,10 @@ yyreduce: } break; - case 135: + case 136: -/* Line 1455 of yacc.c */ -#line 399 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 400 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2322,10 +2336,10 @@ yyreduce: } break; - case 136: + case 137: -/* Line 1455 of yacc.c */ -#line 406 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 407 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2333,10 +2347,10 @@ yyreduce: } break; - case 137: + case 138: -/* Line 1455 of yacc.c */ -#line 413 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 414 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2344,10 +2358,10 @@ yyreduce: } break; - case 138: + case 139: -/* Line 1455 of yacc.c */ -#line 420 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 421 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2356,10 +2370,10 @@ yyreduce: } break; - case 139: + case 140: -/* Line 1455 of yacc.c */ -#line 428 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 429 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2367,10 +2381,10 @@ yyreduce: } break; - case 140: + case 141: -/* Line 1455 of yacc.c */ -#line 435 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 436 "util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) @@ -2378,10 +2392,10 @@ yyreduce: } break; - case 141: + case 142: -/* Line 1455 of yacc.c */ -#line 442 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 443 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dlv_anchor_file); @@ -2389,10 +2403,10 @@ yyreduce: } break; - case 142: + case 143: -/* Line 1455 of yacc.c */ -#line 449 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 450 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2400,10 +2414,10 @@ yyreduce: } break; - case 143: + case 144: -/* Line 1455 of yacc.c */ -#line 456 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 457 "util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2412,10 +2426,10 @@ yyreduce: } break; - case 144: + case 145: -/* Line 1455 of yacc.c */ -#line 464 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 465 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2424,10 +2438,10 @@ yyreduce: } break; - case 145: + case 146: -/* Line 1455 of yacc.c */ -#line 472 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 473 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2436,10 +2450,10 @@ yyreduce: } break; - case 146: + case 147: -/* Line 1455 of yacc.c */ -#line 480 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 481 "util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2447,10 +2461,10 @@ yyreduce: } break; - case 147: + case 148: -/* Line 1455 of yacc.c */ -#line 487 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 488 "util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str))) @@ -2458,10 +2472,10 @@ yyreduce: } break; - case 148: + case 149: -/* Line 1455 of yacc.c */ -#line 494 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 495 "util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2471,10 +2485,10 @@ yyreduce: } break; - case 149: + case 150: -/* Line 1455 of yacc.c */ -#line 503 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 504 "util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2484,10 +2498,10 @@ yyreduce: } break; - case 150: + case 151: -/* Line 1455 of yacc.c */ -#line 512 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 513 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2495,10 +2509,10 @@ yyreduce: } break; - case 151: + case 152: -/* Line 1455 of yacc.c */ -#line 519 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 520 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2506,10 +2520,10 @@ yyreduce: } break; - case 152: + case 153: -/* Line 1455 of yacc.c */ -#line 526 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 527 "util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf)) @@ -2518,10 +2532,10 @@ yyreduce: } break; - case 153: + case 154: -/* Line 1455 of yacc.c */ -#line 534 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 535 "util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf)) @@ -2530,10 +2544,10 @@ yyreduce: } break; - case 154: + case 155: -/* Line 1455 of yacc.c */ -#line 542 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 543 "util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2547,10 +2561,10 @@ yyreduce: } break; - case 155: + case 156: -/* Line 1455 of yacc.c */ -#line 555 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 556 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2562,10 +2576,10 @@ yyreduce: } break; - case 156: + case 157: -/* Line 1455 of yacc.c */ -#line 566 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 567 "util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) @@ -2574,10 +2588,10 @@ yyreduce: } break; - case 157: + case 158: -/* Line 1455 of yacc.c */ -#line 574 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 575 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2591,10 +2605,10 @@ yyreduce: } break; - case 158: + case 159: -/* Line 1455 of yacc.c */ -#line 587 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 588 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2604,10 +2618,10 @@ yyreduce: } break; - case 159: + case 160: -/* Line 1455 of yacc.c */ -#line 596 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 597 "util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2617,10 +2631,10 @@ yyreduce: } break; - case 160: + case 161: -/* Line 1455 of yacc.c */ -#line 605 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 606 "util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) @@ -2629,10 +2643,10 @@ yyreduce: } break; - case 161: + case 162: -/* Line 1455 of yacc.c */ -#line 613 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 614 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2646,10 +2660,10 @@ yyreduce: } break; - case 162: + case 163: -/* Line 1455 of yacc.c */ -#line 626 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 627 "util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2659,10 +2673,10 @@ yyreduce: } break; - case 163: + case 164: -/* Line 1455 of yacc.c */ -#line 635 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 636 "util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2672,10 +2686,10 @@ yyreduce: } break; - case 164: + case 165: -/* Line 1455 of yacc.c */ -#line 644 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 645 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2685,10 +2699,10 @@ yyreduce: } break; - case 165: + case 166: -/* Line 1455 of yacc.c */ -#line 653 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 654 "util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg-> @@ -2698,10 +2712,10 @@ yyreduce: } break; - case 166: + case 167: -/* Line 1455 of yacc.c */ -#line 662 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 663 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2715,10 +2729,10 @@ yyreduce: } break; - case 167: + case 168: -/* Line 1455 of yacc.c */ -#line 675 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 676 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2726,10 +2740,10 @@ yyreduce: } break; - case 168: + case 169: -/* Line 1455 of yacc.c */ -#line 682 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 683 "util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2740,10 +2754,10 @@ yyreduce: } break; - case 169: + case 170: -/* Line 1455 of yacc.c */ -#line 692 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 693 "util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2754,10 +2768,10 @@ yyreduce: } break; - case 170: + case 171: -/* Line 1455 of yacc.c */ -#line 702 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 703 "util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2768,10 +2782,10 @@ yyreduce: } break; - case 171: + case 172: -/* Line 1455 of yacc.c */ -#line 712 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 713 "util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2782,10 +2796,10 @@ yyreduce: } break; - case 172: + case 173: -/* Line 1455 of yacc.c */ -#line 722 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 723 "util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2796,10 +2810,10 @@ yyreduce: } break; - case 173: + case 174: -/* Line 1455 of yacc.c */ -#line 732 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 733 "util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2810,10 +2824,10 @@ yyreduce: } break; - case 174: + case 175: -/* Line 1455 of yacc.c */ -#line 742 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 743 "util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2824,10 +2838,10 @@ yyreduce: } break; - case 175: + case 176: -/* Line 1455 of yacc.c */ -#line 752 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 753 "util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) @@ -2835,10 +2849,10 @@ yyreduce: } break; - case 176: + case 177: -/* Line 1455 of yacc.c */ -#line 759 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 760 "util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) @@ -2846,10 +2860,10 @@ yyreduce: } break; - case 177: + case 178: -/* Line 1455 of yacc.c */ -#line 766 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 767 "util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2859,10 +2873,10 @@ yyreduce: } break; - case 178: + case 179: -/* Line 1455 of yacc.c */ -#line 775 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 776 "util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2872,10 +2886,10 @@ yyreduce: } break; - case 179: + case 180: -/* Line 1455 of yacc.c */ -#line 784 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 785 "util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2885,10 +2899,10 @@ yyreduce: } break; - case 180: + case 181: -/* Line 1455 of yacc.c */ -#line 793 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 794 "util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) @@ -2896,10 +2910,10 @@ yyreduce: } break; - case 181: + case 182: -/* Line 1455 of yacc.c */ -#line 800 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 801 "util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2910,10 +2924,10 @@ yyreduce: } break; - case 182: + case 183: -/* Line 1455 of yacc.c */ -#line 810 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 811 "util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && @@ -2928,10 +2942,10 @@ yyreduce: } break; - case 183: + case 184: -/* Line 1455 of yacc.c */ -#line 824 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 825 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2939,10 +2953,10 @@ yyreduce: } break; - case 184: + case 185: -/* Line 1455 of yacc.c */ -#line 831 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 832 "util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2961,10 +2975,10 @@ yyreduce: } break; - case 185: + case 186: -/* Line 1455 of yacc.c */ -#line 849 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 850 "util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2978,10 +2992,10 @@ yyreduce: } break; - case 186: + case 187: -/* Line 1455 of yacc.c */ -#line 862 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 863 "util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2995,10 +3009,10 @@ yyreduce: } break; - case 187: + case 188: -/* Line 1455 of yacc.c */ -#line 875 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 876 "util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3008,10 +3022,10 @@ yyreduce: } break; - case 188: + case 189: -/* Line 1455 of yacc.c */ -#line 884 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 885 "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) @@ -3021,10 +3035,10 @@ yyreduce: } break; - case 189: + case 190: -/* Line 1455 of yacc.c */ -#line 893 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 894 "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) @@ -3034,10 +3048,10 @@ yyreduce: } break; - case 190: + case 191: -/* Line 1455 of yacc.c */ -#line 902 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 903 "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) @@ -3048,10 +3062,10 @@ yyreduce: } break; - case 191: + case 192: -/* Line 1455 of yacc.c */ -#line 912 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 913 "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) @@ -3062,10 +3076,23 @@ yyreduce: } break; - case 192: + case 193: + +/* Line 1464 of yacc.c */ +#line 923 "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) + yyerror("expected yes or no."); + else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 194: -/* Line 1455 of yacc.c */ -#line 922 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 932 "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) @@ -3075,10 +3102,10 @@ yyreduce: } break; - case 193: + case 195: -/* Line 1455 of yacc.c */ -#line 931 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 941 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -3086,10 +3113,10 @@ yyreduce: } break; - case 194: + case 196: -/* Line 1455 of yacc.c */ -#line 938 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 948 "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) @@ -3099,10 +3126,10 @@ yyreduce: } break; - case 195: + case 197: -/* Line 1455 of yacc.c */ -#line 947 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 957 "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) @@ -3112,10 +3139,10 @@ yyreduce: } break; - case 196: + case 198: -/* Line 1455 of yacc.c */ -#line 956 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 966 "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) @@ -3125,10 +3152,10 @@ yyreduce: } break; - case 197: + case 199: -/* Line 1455 of yacc.c */ -#line 965 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 975 "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)) @@ -3137,10 +3164,10 @@ yyreduce: } break; - case 198: + case 200: -/* Line 1455 of yacc.c */ -#line 973 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 983 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3154,10 +3181,10 @@ yyreduce: } break; - case 199: + case 201: -/* Line 1455 of yacc.c */ -#line 986 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 996 "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)) @@ -3166,10 +3193,10 @@ yyreduce: } break; - case 200: + case 202: -/* Line 1455 of yacc.c */ -#line 994 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1004 "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 && @@ -3192,10 +3219,10 @@ yyreduce: } break; - case 201: + case 203: -/* Line 1455 of yacc.c */ -#line 1016 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1026 "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))) @@ -3203,10 +3230,10 @@ yyreduce: } break; - case 202: + case 204: -/* Line 1455 of yacc.c */ -#line 1023 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1033 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -3222,10 +3249,10 @@ yyreduce: } break; - case 203: + case 205: -/* Line 1455 of yacc.c */ -#line 1038 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1048 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->stubs->name) @@ -3236,10 +3263,10 @@ yyreduce: } break; - case 204: + case 206: -/* Line 1455 of yacc.c */ -#line 1048 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1058 "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))) @@ -3247,10 +3274,10 @@ yyreduce: } break; - case 205: + case 207: -/* Line 1455 of yacc.c */ -#line 1055 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1065 "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))) @@ -3258,10 +3285,10 @@ yyreduce: } break; - case 206: + case 208: -/* Line 1455 of yacc.c */ -#line 1062 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1072 "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) @@ -3272,10 +3299,10 @@ yyreduce: } break; - case 207: + case 209: -/* Line 1455 of yacc.c */ -#line 1072 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1082 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->forwards->name) @@ -3286,10 +3313,10 @@ yyreduce: } break; - case 208: + case 210: -/* Line 1455 of yacc.c */ -#line 1082 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1092 "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))) @@ -3297,10 +3324,10 @@ yyreduce: } break; - case 209: + case 211: -/* Line 1455 of yacc.c */ -#line 1089 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1099 "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))) @@ -3308,19 +3335,19 @@ yyreduce: } break; - case 210: + case 212: -/* Line 1455 of yacc.c */ -#line 1096 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1106 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 220: + case 222: -/* Line 1455 of yacc.c */ -#line 1107 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1117 "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) @@ -3331,10 +3358,10 @@ yyreduce: } break; - case 221: + case 223: -/* Line 1455 of yacc.c */ -#line 1117 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1127 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3344,10 +3371,10 @@ yyreduce: } break; - case 222: + case 224: -/* Line 1455 of yacc.c */ -#line 1126 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1136 "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))) @@ -3355,10 +3382,10 @@ yyreduce: } break; - case 223: + case 225: -/* Line 1455 of yacc.c */ -#line 1133 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1143 "util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -3366,10 +3393,10 @@ yyreduce: } break; - case 224: + case 226: -/* Line 1455 of yacc.c */ -#line 1140 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1150 "util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -3377,10 +3404,10 @@ yyreduce: } break; - case 225: + case 227: -/* Line 1455 of yacc.c */ -#line 1147 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1157 "util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -3388,10 +3415,10 @@ yyreduce: } break; - case 226: + case 228: -/* Line 1455 of yacc.c */ -#line 1154 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1164 "util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -3399,19 +3426,19 @@ yyreduce: } break; - case 227: + case 229: -/* Line 1455 of yacc.c */ -#line 1161 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1171 "util/configparser.y" { OUTYY(("\nP(python:)\n")); } break; - case 231: + case 233: -/* Line 1455 of yacc.c */ -#line 1170 "util/configparser.y" +/* Line 1464 of yacc.c */ +#line 1180 "util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->python_script); @@ -3421,8 +3448,8 @@ yyreduce: -/* Line 1455 of yacc.c */ -#line 3426 "util/configparser.c" +/* Line 1464 of yacc.c */ +#line 3453 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3633,8 +3660,8 @@ yyreturn: -/* Line 1675 of yacc.c */ -#line 1175 "util/configparser.y" +/* Line 1684 of yacc.c */ +#line 1185 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index fade8fd7d..5fdfda353 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,10 +1,9 @@ - -/* A Bison parser, made by GNU Bison 2.4.1. */ +/* A Bison parser, made by GNU Bison 2.4.3. */ /* Skeleton interface for Bison's Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -154,7 +153,8 @@ VAR_PREFETCH = 370, VAR_PREFETCH_KEY = 371, VAR_SO_SNDBUF = 372, - VAR_HARDEN_BELOW_NXDOMAIN = 373 + VAR_HARDEN_BELOW_NXDOMAIN = 373, + VAR_IGNORE_CD_FLAG = 374 }; #endif /* Tokens. */ @@ -274,6 +274,7 @@ #define VAR_PREFETCH_KEY 371 #define VAR_SO_SNDBUF 372 #define VAR_HARDEN_BELOW_NXDOMAIN 373 +#define VAR_IGNORE_CD_FLAG 374 @@ -282,15 +283,15 @@ typedef union YYSTYPE { -/* Line 1676 of yacc.c */ +/* Line 1685 of yacc.c */ #line 64 "util/configparser.y" char* str; -/* Line 1676 of yacc.c */ -#line 294 "util/configparser.h" +/* Line 1685 of yacc.c */ +#line 295 "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 328fbc7d9..f1c4e2626 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -102,6 +102,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING VAR_ADD_HOLDDOWN %token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE VAR_PREFETCH %token VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_HARDEN_BELOW_NXDOMAIN +%token VAR_IGNORE_CD_FLAG %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -155,7 +156,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_auto_trust_anchor_file | server_add_holddown | server_del_holddown | server_keep_missing | server_so_rcvbuf | server_edns_buffer_size | server_prefetch | server_prefetch_key | - server_so_sndbuf | server_harden_below_nxdomain + server_so_sndbuf | server_harden_below_nxdomain | server_ignore_cd_flag ; stubstart: VAR_STUB_ZONE { @@ -918,6 +919,15 @@ server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG free($2); } ; +server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG + { + OUTYY(("P(server_ignore_cd_flag:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ignore_cd = (strcmp($2, "yes")==0); + free($2); + } + ; server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG { OUTYY(("P(server_val_log_level:%s)\n", $2)); -- 2.47.2