diff --git a/daemon/worker.c b/daemon/worker.c index d57c8b44d..5ca55c808 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1421,7 +1421,7 @@ worker_send_query(uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct edns_option* opt_list, struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone, - size_t zonelen, struct module_qstate* q) + size_t zonelen, uint8_t ssl_upstream, struct module_qstate* q) { struct worker* worker = q->env->worker; struct outbound_entry* e = (struct outbound_entry*)regional_alloc( @@ -1431,7 +1431,7 @@ worker_send_query(uint8_t* qname, size_t qnamelen, uint16_t qtype, e->qstate = q; e->qsent = outnet_serviced_query(worker->back, qname, qnamelen, qtype, qclass, flags, dnssec, want_dnssec, nocaps, - q->env->cfg->tcp_upstream, q->env->cfg->ssl_upstream, opt_list, + q->env->cfg->tcp_upstream, ssl_upstream, opt_list, addr, addrlen, zone, zonelen, worker_handle_service_reply, e, worker->back->udp_buff); if(!e->qsent) { @@ -1480,7 +1480,8 @@ struct outbound_entry* libworker_send_query(uint8_t* ATTR_UNUSED(qname), int ATTR_UNUSED(nocaps), struct edns_option* ATTR_UNUSED(opt_list), struct sockaddr_storage* ATTR_UNUSED(addr), socklen_t ATTR_UNUSED(addrlen), uint8_t* ATTR_UNUSED(zone), - size_t ATTR_UNUSED(zonelen), struct module_qstate* ATTR_UNUSED(q)) + size_t ATTR_UNUSED(zonelen), uint8_t ATTR_UNUSED(ssl_upstream), + struct module_qstate* ATTR_UNUSED(q)) { log_assert(0); return 0; diff --git a/doc/Changelog b/doc/Changelog index 89eeea9ef..453f05243 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +4 November 2016: Ralph + - Added stub-ssl-upstream and forward-ssl-upstream options. + 4 November 2016: Wouter - configure detects ssl security level API function in the autoconf manner. Every function on its own, so that other libraries (eg. diff --git a/doc/example.conf.in b/doc/example.conf.in index 2e4770140..7255bdb65 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -717,6 +717,7 @@ remote-control: # stub-addr: 192.0.2.68 # stub-prime: no # stub-first: no +# stub-ssl-upstream: no # stub-zone: # name: "example.org" # stub-host: ns.example.com. @@ -732,6 +733,7 @@ remote-control: # forward-addr: 192.0.2.68 # forward-addr: 192.0.2.73@5355 # forward to port 5355. # forward-first: no +# forward-ssl-upstream: no # forward-zone: # name: "example.org" # forward-host: fwd.example.com diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index f32dbd8f1..7c0155c9a 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1302,6 +1302,10 @@ If enabled, a query is attempted without the stub clause if it fails. The data could not be retrieved and would have caused SERVFAIL because the servers are unreachable, instead it is tried without this clause. The default is no. +.TP +.B stub\-ssl\-upstream: \fI +Enabled or disable whether the queries to this stub use SSL for transport. +Default is no. .SS "Forward Zone Options" .LP There may be multiple @@ -1332,6 +1336,10 @@ If enabled, a query is attempted without the forward clause if it fails. The data could not be retrieved and would have caused SERVFAIL because the servers are unreachable, instead it is tried without this clause. The default is no. +.TP +.B forward\-ssl\-upstream: \fI +Enabled or disable whether the queries to this forwarder use SSL for transport. +Default is no. .SS "View Options" .LP There may be multiple diff --git a/iterator/iter_delegpt.c b/iterator/iter_delegpt.c index 0e251ff58..ecf88b293 100644 --- a/iterator/iter_delegpt.c +++ b/iterator/iter_delegpt.c @@ -72,6 +72,7 @@ struct delegpt* delegpt_copy(struct delegpt* dp, struct regional* region) return NULL; copy->bogus = dp->bogus; copy->has_parent_side_NS = dp->has_parent_side_NS; + copy->ssl_upstream = dp->ssl_upstream; for(ns = dp->nslist; ns; ns = ns->next) { if(!delegpt_add_ns(copy, region, ns->name, ns->lame)) return NULL; diff --git a/iterator/iter_delegpt.h b/iterator/iter_delegpt.h index eb771359c..4bd79c81a 100644 --- a/iterator/iter_delegpt.h +++ b/iterator/iter_delegpt.h @@ -81,6 +81,8 @@ struct delegpt { uint8_t has_parent_side_NS; /** for assertions on type of delegpt */ uint8_t dp_type_mlc; + /** use SSL for upstream query */ + uint8_t ssl_upstream; }; /** @@ -355,7 +357,7 @@ void delegpt_no_ipv4(struct delegpt* dp); /** * create malloced delegation point, with the given name - * @param name: uncompressed wireformat of degegpt name. + * @param name: uncompressed wireformat of delegpt name. * @return NULL on alloc failure */ struct delegpt* delegpt_create_mlc(uint8_t* name); diff --git a/iterator/iter_fwd.c b/iterator/iter_fwd.c index 3e580ca35..1c40d4164 100644 --- a/iterator/iter_fwd.c +++ b/iterator/iter_fwd.c @@ -265,6 +265,8 @@ read_forwards(struct iter_forwards* fwd, struct config_file* cfg) * last resort will ask for parent-side NS record and thus * fallback to the internet name servers on a failure */ dp->has_parent_side_NS = (uint8_t)!s->isfirst; + /* use SSL for queries to this forwarder */ + dp->ssl_upstream = (uint8_t)s->ssl_upstream; verbose(VERB_QUERY, "Forward zone server list:"); delegpt_log(VERB_QUERY, dp); if(!forwards_insert(fwd, LDNS_RR_CLASS_IN, dp)) diff --git a/iterator/iter_hints.c b/iterator/iter_hints.c index 738001861..7fb665200 100644 --- a/iterator/iter_hints.c +++ b/iterator/iter_hints.c @@ -276,6 +276,8 @@ read_stubs(struct iter_hints* hints, struct config_file* cfg) * last resort will ask for parent-side NS record and thus * fallback to the internet name servers on a failure */ dp->has_parent_side_NS = (uint8_t)!s->isfirst; + /* ssl_upstream */ + dp->ssl_upstream = (uint8_t)s->ssl_upstream; delegpt_log(VERB_QUERY, dp); if(!hints_insert(hints, LDNS_RR_CLASS_IN, dp, !s->isprime)) return 0; diff --git a/iterator/iterator.c b/iterator/iterator.c index 5bd2be079..dfe4fa6f2 100644 --- a/iterator/iterator.c +++ b/iterator/iterator.c @@ -2120,7 +2120,8 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq, &iq->qinfo_out)||target->attempts==1)?0:BIT_CD), iq->dnssec_expected, iq->caps_fallback || is_caps_whitelisted( ie, iq), opt_list, &target->addr, target->addrlen, - iq->dp->name, iq->dp->namelen, qstate); + iq->dp->name, iq->dp->namelen, + (iq->dp->ssl_upstream || qstate->env->cfg->ssl_upstream), qstate); if(!outq) { log_addr(VERB_DETAIL, "error sending query to auth server", &target->addr, target->addrlen); diff --git a/libunbound/libworker.c b/libunbound/libworker.c index 40cb0ff23..e79cc279e 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -830,7 +830,7 @@ struct outbound_entry* libworker_send_query(uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct edns_option* opt_list, struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone, - size_t zonelen, struct module_qstate* q) + size_t zonelen, uint8_t ssl_upstream, struct module_qstate* q) { struct libworker* w = (struct libworker*)q->env->worker; struct outbound_entry* e = (struct outbound_entry*)regional_alloc( @@ -840,7 +840,7 @@ struct outbound_entry* libworker_send_query(uint8_t* qname, size_t qnamelen, e->qstate = q; e->qsent = outnet_serviced_query(w->back, qname, qnamelen, qtype, qclass, flags, dnssec, want_dnssec, nocaps, - q->env->cfg->tcp_upstream, q->env->cfg->ssl_upstream, opt_list, + q->env->cfg->tcp_upstream, ssl_upstream, opt_list, addr, addrlen, zone, zonelen, libworker_handle_service_reply, e, w->back->udp_buff); if(!e->qsent) { @@ -964,7 +964,8 @@ struct outbound_entry* worker_send_query(uint8_t* ATTR_UNUSED(qname), int ATTR_UNUSED(nocaps), struct edns_option* ATTR_UNUSED(opt_list), struct sockaddr_storage* ATTR_UNUSED(addr), socklen_t ATTR_UNUSED(addrlen), uint8_t* ATTR_UNUSED(zone), - size_t ATTR_UNUSED(zonelen), struct module_qstate* ATTR_UNUSED(q)) + size_t ATTR_UNUSED(zonelen), uint8_t ATTR_UNUSED(ssl_upstream), + struct module_qstate* ATTR_UNUSED(q)) { log_assert(0); return 0; diff --git a/libunbound/libworker.h b/libunbound/libworker.h index 00143475b..e8c293280 100644 --- a/libunbound/libworker.h +++ b/libunbound/libworker.h @@ -1,5 +1,5 @@ /* - * libunbound/worker.h - worker thread or process that resolves + * libunbound/libworker.h - worker thread or process that resolves * * Copyright (c) 2007, NLnet Labs. All rights reserved. * diff --git a/libunbound/worker.h b/libunbound/worker.h index b8d8dd88a..62e2d0b2a 100644 --- a/libunbound/worker.h +++ b/libunbound/worker.h @@ -65,6 +65,7 @@ struct edns_option; * @param addrlen: length of addr. * @param zone: delegation point name. * @param zonelen: length of zone name wireformat dname. + * @param ssl_upstream: use SSL for upstream queries. * @param q: wich query state to reactivate upon return. * @return: false on failure (memory or socket related). no query was * sent. @@ -73,7 +74,7 @@ struct outbound_entry* libworker_send_query(uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct edns_option* opt_list, struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone, - size_t zonelen, struct module_qstate* q); + size_t zonelen, uint8_t ssl_upstream, struct module_qstate* q); /** process incoming replies from the network */ int libworker_handle_reply(struct comm_point* c, void* arg, int error, @@ -121,6 +122,7 @@ void worker_sighandler(int sig, void* arg); * @param addrlen: length of addr. * @param zone: wireformat dname of the zone. * @param zonelen: length of zone name. + * @param ssl_upstream: use SSL for upstream queries. * @param q: wich query state to reactivate upon return. * @return: false on failure (memory or socket related). no query was * sent. @@ -129,7 +131,7 @@ struct outbound_entry* worker_send_query(uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct edns_option* opt_list, struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone, - size_t zonelen, struct module_qstate* q); + size_t zonelen, uint8_t ssl_upstream, struct module_qstate* q); /** * process control messages from the main thread. Frees the control diff --git a/smallapp/worker_cb.c b/smallapp/worker_cb.c index fd8488a38..f6276afec 100644 --- a/smallapp/worker_cb.c +++ b/smallapp/worker_cb.c @@ -106,7 +106,8 @@ struct outbound_entry* worker_send_query(uint8_t* ATTR_UNUSED(qname), int ATTR_UNUSED(nocaps), struct edns_option* ATTR_UNUSED(opt_list), struct sockaddr_storage* ATTR_UNUSED(addr), socklen_t ATTR_UNUSED(addrlen), uint8_t* ATTR_UNUSED(zone), - size_t ATTR_UNUSED(zonelen), struct module_qstate* ATTR_UNUSED(q)) + size_t ATTR_UNUSED(zonelen), uint8_t ATTR_UNUSED(ssl_upstream), + struct module_qstate* ATTR_UNUSED(q)) { log_assert(0); return 0; @@ -139,7 +140,8 @@ struct outbound_entry* libworker_send_query(uint8_t* ATTR_UNUSED(qname), int ATTR_UNUSED(nocaps), struct edns_option* ATTR_UNUSED(opt_list), struct sockaddr_storage* ATTR_UNUSED(addr), socklen_t ATTR_UNUSED(addrlen), uint8_t* ATTR_UNUSED(zone), - size_t ATTR_UNUSED(zonelen), struct module_qstate* ATTR_UNUSED(q)) + size_t ATTR_UNUSED(zonelen), uint8_t ATTR_UNUSED(ssl_upstream), + struct module_qstate* ATTR_UNUSED(q)) { log_assert(0); return 0; diff --git a/util/config_file.c b/util/config_file.c index b15518976..881c85f59 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -516,8 +516,9 @@ int config_set_option(struct config_file* cfg, const char* opt, /* unknown or unsupported (from the set_option interface): * interface, outgoing-interface, access-control, * stub-zone, name, stub-addr, stub-host, stub-prime - * forward-first, stub-first, - * forward-zone, name, forward-addr, forward-host, + * forward-first, stub-first, forward-ssl-upstream, + * stub-ssl-upstream, forward-zone, + * name, forward-addr, forward-host, * ratelimit-for-domain, ratelimit-below-domain, * local-zone-tag, access-control-view */ return 0; diff --git a/util/config_file.h b/util/config_file.h index bf518d1f1..071b408e7 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -433,6 +433,8 @@ struct config_stub { int isprime; /** if forward-first is set (failover to without if fails) */ int isfirst; + /* use SSL for queries to this stub */ + int ssl_upstream; }; /** diff --git a/util/configlexer.c b/util/configlexer.c index 412c34b78..c4f83b9bc 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -10,7 +10,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 0 +#define YY_FLEX_SUBMINOR_VERSION 1 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -89,25 +89,13 @@ typedef unsigned int flex_uint32_t; #endif /* ! FLEXINT_H */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ @@ -168,7 +156,7 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef size_t yy_size_t; #endif -extern yy_size_t yyleng; +extern int yyleng; extern FILE *yyin, *yyout; @@ -207,12 +195,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -235,7 +223,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -263,7 +251,7 @@ struct yy_buffer_state /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general @@ -282,11 +270,11 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t yyleng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; +static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ @@ -311,7 +299,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); void *yyalloc (yy_size_t ); void *yyrealloc (void *,yy_size_t ); @@ -345,7 +333,7 @@ void yyfree (void * ); typedef unsigned char YY_CHAR; -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; @@ -362,10 +350,7 @@ extern char *yytext; static yy_state_type yy_get_previous_state (void ); static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); static int yy_get_next_buffer (void ); -#if defined(__GNUC__) && __GNUC__ >= 3 -__attribute__((__noreturn__)) -#endif -static void yy_fatal_error (yyconst char msg[] ); +static void yynoreturn yy_fatal_error (yyconst char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -373,13 +358,13 @@ static void yy_fatal_error (yyconst char msg[] ); #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ (yytext_ptr) -= (yy_more_len); \ - yyleng = (size_t) (yy_cp - (yytext_ptr)); \ + yyleng = (int) (yy_cp - (yytext_ptr)); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 195 -#define YY_END_OF_BUFFER 196 +#define YY_NUM_RULES 197 +#define YY_END_OF_BUFFER 198 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -387,220 +372,223 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1930] = +static yyconst flex_int16_t yy_accept[1956] = { 0, - 1, 1, 177, 177, 181, 181, 185, 185, 189, 189, - 1, 1, 196, 193, 1, 175, 175, 194, 2, 194, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 177, 178, 178, 179, 194, 181, 182, 182, 183, 194, - 188, 185, 186, 186, 187, 194, 189, 190, 190, 191, - 194, 192, 176, 2, 180, 194, 192, 193, 0, 1, - 2, 2, 2, 2, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 1, 1, 179, 179, 183, 183, 187, 187, 191, 191, + 1, 1, 198, 195, 1, 177, 177, 196, 2, 196, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 179, 180, 180, 181, 196, 183, 184, 184, 185, 196, + 190, 187, 188, 188, 189, 196, 191, 192, 192, 193, + 196, 194, 178, 2, 182, 196, 194, 195, 0, 1, + 2, 2, 2, 2, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 177, 0, - 181, 0, 188, 0, 185, 189, 0, 192, 0, 2, - 2, 192, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 179, 0, + 183, 0, 190, 0, 187, 191, 0, 194, 0, 2, + 2, 194, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 193, 193, 193, 193, 193, 192, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 192, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 194, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 194, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 76, - 193, 193, 193, 193, 193, 193, 8, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 85, 192, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 76, + 195, 195, 195, 195, 195, 195, 8, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 87, 194, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 192, 193, 193, 193, - 193, 193, 36, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 194, 195, 195, + 195, 195, 195, 36, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 155, 193, 14, 15, 193, 18, 17, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 141, 193, 193, 193, 193, 193, - 193, 193, 193, 3, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 192, 193, 193, 193, + 195, 195, 195, 195, 157, 195, 14, 15, 195, 18, + 17, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 143, 195, 195, 195, 195, + 195, 195, 195, 195, 3, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 194, 195, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 184, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 39, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 40, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 20, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 186, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 39, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 40, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 20, 195, 195, 195, 195, 195, - 193, 193, 193, 193, 193, 193, 193, 193, 93, 193, - 184, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 109, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 92, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 74, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 95, 195, 186, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 111, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 94, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 74, 195, 195, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 25, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 37, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 38, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 27, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 25, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 37, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 38, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 27, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 169, 193, 193, 193, 193, 193, - 193, 193, 31, 193, 32, 193, 193, 193, 77, 193, - 78, 193, 75, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 7, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 148, 193, 193, 193, 193, 95, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 171, 195, 195, 195, 195, 195, 195, 195, 31, 195, + 32, 195, 195, 195, 77, 195, 78, 195, 195, 75, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 7, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 150, 195, 195, 195, 195, 97, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 193, 193, 28, 193, 193, 193, 193, 193, 193, 124, - 193, 123, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 16, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 41, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 80, - 79, 193, 193, 193, 193, 193, 193, 193, 119, 193, - 193, 193, 193, 193, 193, 193, 86, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 59, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 28, 195, 195, 195, 195, 195, 195, 126, 195, 125, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 16, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 41, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 80, 79, 195, + 195, 195, 195, 195, 195, 195, 195, 121, 195, 195, + 195, 195, 195, 195, 195, 88, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 59, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 193, 193, 193, 63, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 35, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 122, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 6, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 115, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 134, 193, 116, 193, 193, 146, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 63, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 35, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 124, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 6, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 117, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 193, 193, 193, 193, 193, 26, 193, - 193, 193, 193, 82, 193, 83, 81, 193, 193, 193, - 193, 193, 193, 193, 91, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 117, 193, 193, - 193, 193, 193, 120, 193, 145, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 73, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 33, 193, 193, 22, 193, - 193, 193, 19, 193, 100, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 48, + 195, 195, 195, 136, 195, 118, 195, 195, 148, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 26, + 195, 195, 195, 195, 83, 195, 84, 195, 82, 195, + 195, 195, 195, 195, 195, 195, 93, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 119, + 195, 195, 195, 195, 195, 122, 195, 147, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 73, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 33, 195, 195, + 22, 195, 195, 195, 195, 19, 195, 102, 195, 195, - 50, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 156, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 84, 193, 193, 193, 193, 193, - 193, 90, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 94, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 140, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 108, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 104, - 193, 110, 193, 193, 193, 193, 193, 89, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 48, 50, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 158, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 85, 195, 195, + 195, 195, 195, 195, 195, 92, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 96, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 142, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 110, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 69, 193, 132, 193, 193, 193, 193, 193, 147, 193, - 193, 193, 193, 193, 193, 193, 161, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 107, 193, - 193, 193, 193, 193, 51, 52, 193, 193, 34, 58, - 111, 193, 125, 193, 149, 121, 193, 193, 44, 193, - 113, 193, 193, 193, 193, 193, 9, 193, 193, 193, - 72, 193, 193, 193, 193, 171, 193, 131, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 96, 160, + 195, 195, 195, 195, 106, 195, 112, 195, 195, 195, + 195, 195, 91, 195, 195, 69, 195, 134, 195, 195, + 195, 195, 195, 149, 195, 195, 195, 195, 195, 195, + 195, 163, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 109, 195, 195, 195, 195, 195, + 51, 52, 195, 195, 34, 58, 113, 195, 127, 195, + 151, 123, 195, 195, 44, 195, 115, 195, 195, 195, + 195, 195, 9, 195, 195, 195, 72, 195, 195, 195, + 195, 173, 195, 133, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 193, 193, 193, 193, 193, 142, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 112, 193, 193, 43, 45, 193, - 193, 193, 193, 193, 193, 193, 71, 193, 193, 193, - 193, 170, 193, 193, 193, 193, 136, 23, 24, 193, - 193, 193, 193, 193, 193, 193, 68, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 138, - 135, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 42, 193, 193, 193, 193, 193, 193, 193, 13, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 12, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 98, 162, 195, 195, 195, + 195, 195, 195, 195, 195, 144, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 114, 195, 195, 43, 45, 195, 195, 195, + 195, 195, 195, 195, 71, 195, 195, 195, 195, 172, + 195, 195, 195, 195, 138, 23, 24, 195, 195, 195, + 195, 195, 195, 195, 195, 68, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 140, 137, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 42, - 193, 193, 21, 193, 193, 193, 174, 193, 46, 193, - 144, 137, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 103, 102, 193, 193, 193, 193, 139, - 133, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 53, 193, 193, 193, 143, 193, 193, 193, 193, 193, - 193, 193, 193, 47, 193, 193, 193, 97, 99, 126, - 193, 193, 193, 101, 193, 193, 150, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 157, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 13, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 12, + 195, 195, 21, 195, 195, 195, 176, 195, 46, 195, + 146, 139, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 105, 104, 195, 195, 195, 195, + 141, 135, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 53, 195, 195, 195, 145, 195, 195, 195, + 195, 195, 195, 195, 195, 47, 195, 195, 81, 195, + 99, 101, 128, 195, 195, 195, 103, 195, 195, 152, - 127, 193, 193, 193, 29, 193, 193, 193, 193, 4, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 153, 193, 193, 193, 193, 193, 193, 193, 193, - 159, 193, 193, 130, 193, 193, 193, 193, 193, 193, - 193, 56, 193, 30, 154, 193, 11, 193, 193, 193, - 193, 193, 193, 128, 60, 193, 193, 193, 106, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 158, - 87, 193, 193, 193, 193, 62, 66, 61, 193, 54, - 193, 10, 193, 193, 193, 172, 193, 193, 105, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 159, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 129, 195, 195, 195, 29, 195, + 195, 195, 195, 4, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 155, 195, 195, 195, 195, + 195, 195, 195, 195, 161, 195, 195, 132, 195, 195, + 195, 195, 195, 195, 195, 195, 56, 195, 30, 156, + 195, 11, 195, 195, 195, 195, 195, 195, 130, 60, + 195, 195, 195, 108, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 160, 89, 195, 86, 195, 195, - 193, 193, 67, 65, 193, 55, 193, 118, 193, 193, - 129, 193, 193, 193, 193, 98, 49, 193, 193, 193, - 193, 193, 193, 193, 88, 64, 57, 193, 173, 193, - 193, 193, 152, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 70, 193, 151, 168, 193, 193, 193, 193, - 193, 193, 5, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 114, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 195, 62, 66, 61, 195, 54, 195, 10, 195, 195, + 195, 174, 195, 195, 107, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 67, 65, + 195, 55, 195, 120, 195, 195, 131, 195, 195, 195, + 195, 100, 49, 195, 195, 195, 195, 195, 195, 195, + 90, 64, 57, 195, 175, 195, 195, 195, 154, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 70, 195, + 153, 170, 195, 195, 195, 195, 195, 195, 5, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 193, 193, 193, 164, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 162, 193, 165, - 166, 193, 193, 193, 193, 193, 163, 167, 0 + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 116, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 166, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 164, 195, 167, 168, 195, 195, 195, + 195, 195, 165, 169, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -643,15 +631,15 @@ static yyconst YY_CHAR yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[1944] = +static yyconst flex_uint16_t yy_base[1970] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 1541, 1352, 50, 3808, 3808, 3808, 129, 94, + 87, 108, 2263, 2182, 50, 3865, 3865, 3865, 129, 94, 70, 104, 130, 90, 109, 106, 127, 111, 84, 122, 146, 148, 50, 170, 136, 158, 152, 180, 168, 191, - 1325, 3808, 3808, 3808, 70, 1315, 3808, 3808, 3808, 42, - 1253, 1191, 3808, 3808, 3808, 210, 1121, 3808, 3808, 3808, - 141, 989, 3808, 214, 3808, 218, 140, 945, 224, 167, + 1746, 3865, 3865, 3865, 70, 1530, 3865, 3865, 3865, 42, + 1355, 1349, 3865, 3865, 3865, 210, 1187, 3865, 3865, 3865, + 141, 955, 3865, 214, 3865, 218, 140, 911, 224, 167, 0, 235, 0, 0, 92, 162, 164, 174, 193, 217, 230, 219, 103, 178, 233, 225, 220, 221, 241, 243, 244, 189, 249, 247, 256, 245, 252, 255, 254, 260, @@ -681,405 +669,409 @@ static yyconst flex_uint16_t yy_base[1944] = 692, 694, 702, 698, 700, 709, 699, 710, 711, 703, 713, 712, 718, 720, 721, 723, 724, 725, 736, 728, 734, 731, 741, 739, 744, 750, 748, 742, 756, 759, - 758, 746, 760, 761, 764, 765, 770, 763, 771, 3808, - 776, 774, 778, 779, 780, 781, 3808, 783, 782, 785, + 758, 746, 760, 761, 764, 765, 770, 763, 771, 3865, + 776, 774, 778, 779, 780, 781, 3865, 783, 782, 785, 792, 789, 791, 797, 809, 811, 790, 794, 810, 807, 808, 816, 817, 837, 819, 821, 818, 825, 823, 824, - 827, 831, 841, 833, 835, 846, 849, 850, 852, 851, - 854, 855, 858, 3808, 862, 874, 859, 865, 867, 876, - 878, 875, 886, 879, 882, 888, 889, 890, 892, 900, + 827, 833, 841, 831, 835, 849, 848, 850, 852, 851, + 854, 855, 859, 3865, 862, 874, 868, 861, 871, 875, + 877, 878, 886, 882, 885, 887, 891, 889, 893, 900, - 896, 898, 902, 910, 907, 913, 919, 904, 915, 916, - 917, 923, 922, 924, 927, 933, 931, 930, 934, 932, - 938, 940, 943, 941, 954, 951, 953, 957, 959, 962, - 952, 963, 966, 969, 975, 971, 973, 984, 974, 972, - 978, 985, 986, 993, 994, 995, 1003, 996, 999, 1006, - 1004, 1005, 1010, 1019, 1020, 1007, 1025, 1011, 1016, 1017, - 1021, 1024, 1030, 1031, 1032, 1033, 1040, 1037, 1038, 1042, - 1045, 1044, 1047, 1051, 1053, 1058, 1054, 1059, 1062, 1060, - 1063, 1066, 1070, 1073, 1074, 1076, 1075, 1078, 1079, 1086, - 1089, 1087, 3808, 1097, 1091, 1095, 1093, 1094, 1106, 1100, + 897, 904, 906, 913, 915, 917, 923, 898, 920, 907, + 924, 927, 929, 930, 901, 936, 932, 934, 938, 939, + 942, 940, 944, 945, 952, 951, 953, 961, 962, 963, + 964, 966, 954, 969, 978, 974, 972, 976, 983, 982, + 984, 990, 986, 994, 992, 996, 1004, 993, 997, 1007, + 1005, 1008, 1012, 1020, 1016, 1009, 1021, 1013, 1022, 1024, + 1025, 1029, 1027, 1032, 1030, 1034, 1035, 1042, 1038, 1039, + 1051, 1055, 1049, 1041, 1054, 1044, 1056, 1061, 1062, 1064, + 1072, 1073, 1065, 1074, 1066, 1076, 1079, 1080, 1084, 1082, + 1089, 1091, 1093, 3865, 1099, 1095, 1097, 1096, 1098, 1109, - 1102, 1103, 1129, 3808, 1104, 3808, 3808, 1109, 3808, 3808, - 1113, 1110, 1114, 1123, 1130, 1152, 1127, 1115, 1117, 1136, - 1144, 1140, 1145, 1135, 1157, 1155, 1162, 1161, 1167, 1149, - 1163, 1172, 1173, 1174, 1177, 1176, 1178, 1179, 1186, 1187, - 1193, 1194, 1131, 1195, 1198, 1189, 1199, 1201, 1200, 1210, - 1202, 1205, 1217, 1214, 3808, 1215, 1216, 1218, 1220, 1222, - 1226, 403, 1227, 3808, 1228, 1231, 1229, 1232, 1235, 1239, - 1237, 1240, 1242, 1243, 1245, 1247, 1258, 1256, 1248, 1251, - 1271, 1272, 1269, 1263, 1274, 1270, 1276, 1277, 1284, 1280, - 1281, 1285, 1292, 1288, 1290, 1291, 1294, 1295, 1296, 1301, + 1103, 1105, 1106, 1132, 3865, 1107, 3865, 3865, 1112, 3865, + 3865, 1117, 1113, 1114, 1120, 1130, 1155, 1128, 1124, 1127, + 1135, 1140, 1136, 1145, 1134, 1147, 1153, 1160, 1161, 1168, + 1150, 1164, 1171, 1172, 1175, 1177, 1165, 1178, 1181, 1183, + 1193, 1194, 1195, 1185, 1197, 1199, 1200, 1201, 1202, 1203, + 1211, 1204, 1208, 1217, 1214, 3865, 1215, 1219, 1220, 1221, + 1225, 1227, 403, 1229, 3865, 1230, 1231, 1234, 1237, 1238, + 1239, 1241, 1243, 1244, 1245, 1249, 1253, 1252, 1248, 1268, + 1256, 1261, 1274, 1277, 1278, 1270, 1271, 1279, 1273, 1280, + 1290, 1288, 1286, 1287, 1297, 1293, 1296, 1298, 1302, 1299, - 1302, 1303, 1304, 1327, 1305, 1307, 1313, 1312, 1314, 1316, - 1329, 1319, 1321, 1340, 1339, 1341, 1342, 1345, 1349, 1350, - 1351, 1358, 1323, 1360, 1355, 1369, 1362, 1363, 1371, 1373, - 1377, 1365, 1380, 1382, 1383, 3808, 1389, 1388, 1390, 1392, - 1398, 1395, 1394, 1397, 1396, 1401, 1402, 1403, 1404, 1411, - 1407, 1414, 1420, 3808, 1416, 1418, 1417, 1426, 1428, 1429, - 1430, 1437, 1445, 1441, 3808, 1442, 1448, 1449, 1419, 1446, - 1444, 1451, 1452, 1456, 1455, 1457, 1462, 1463, 1465, 1461, - 1469, 1479, 1474, 1470, 1481, 1480, 1482, 1485, 1486, 1487, - 1489, 3808, 1490, 1493, 1491, 1495, 1509, 1511, 1497, 1514, + 1303, 1305, 1306, 1308, 1309, 1331, 1310, 1315, 1312, 1318, + 1317, 1320, 1323, 1325, 1332, 1333, 1326, 1344, 1345, 1348, + 1351, 1353, 1354, 1361, 1358, 1373, 1363, 1364, 1366, 1365, + 1370, 1378, 1368, 1382, 1384, 1386, 1387, 3865, 1393, 1394, + 1389, 1398, 1395, 1400, 1401, 1404, 1402, 1406, 1407, 1409, + 1410, 1417, 1412, 1416, 1424, 3865, 1421, 1423, 1422, 1428, + 1429, 1438, 1427, 1444, 1447, 1435, 3865, 1439, 1451, 1452, + 1454, 1449, 1458, 1459, 1460, 1461, 1462, 1465, 1466, 1467, + 1469, 1468, 1470, 1486, 1473, 1477, 1487, 1479, 1488, 1489, + 1491, 1498, 1494, 1496, 3865, 1492, 1500, 1502, 1505, 1511, - 1500, 1503, 1510, 1520, 1515, 1518, 1521, 1523, 3808, 1524, - 186, 1525, 1526, 1529, 1535, 1536, 1532, 1542, 1538, 1544, - 1545, 1546, 1534, 1555, 1551, 1554, 1557, 1560, 1559, 1563, - 1564, 1567, 1565, 1571, 1572, 1576, 1575, 1580, 1582, 1581, - 1583, 1585, 3808, 1590, 1592, 1591, 1595, 1596, 1597, 1598, - 1599, 1605, 1602, 1607, 1611, 1612, 3808, 1618, 1614, 1616, - 1615, 1625, 1626, 1634, 1627, 1636, 1639, 1619, 1642, 1648, - 1644, 1647, 1649, 1654, 1655, 1653, 1660, 1657, 1661, 1668, - 1669, 1667, 1637, 1680, 1673, 1677, 1670, 3808, 1678, 1676, - 1666, 1683, 1702, 1685, 1686, 1687, 1690, 1703, 1688, 1693, + 1519, 1508, 1516, 1512, 1518, 1521, 1524, 1522, 1525, 1526, + 1527, 3865, 1528, 186, 1529, 1535, 1536, 1542, 1544, 1541, + 1548, 1549, 1551, 1554, 1555, 1538, 1560, 1558, 1561, 1569, + 1562, 1564, 1566, 1571, 1574, 1578, 1577, 1579, 1585, 1581, + 1586, 1587, 1589, 1596, 1590, 3865, 1594, 1597, 1600, 1602, + 1603, 1604, 1605, 1607, 1610, 1612, 1613, 1614, 1616, 1623, + 3865, 1625, 1624, 1627, 1622, 1628, 1634, 1644, 1637, 1640, + 1647, 1645, 1641, 1657, 1659, 1661, 1653, 1663, 1664, 1667, + 1669, 1670, 1655, 1677, 1680, 1678, 1681, 1686, 1687, 1651, + 1671, 3865, 1689, 1679, 1690, 1692, 1710, 1697, 1696, 1691, - 1708, 1709, 1711, 3808, 1713, 1714, 1715, 1721, 1717, 1723, - 1725, 1727, 1728, 1731, 1732, 1733, 1741, 1729, 1739, 1743, - 3808, 1749, 1751, 1752, 1758, 1754, 1755, 1756, 1760, 1761, - 1762, 1764, 1770, 1766, 1768, 1771, 1772, 1775, 1769, 1773, - 1777, 1779, 1792, 1778, 1794, 3808, 1785, 1807, 1796, 1800, - 1809, 1803, 1815, 1793, 1812, 1813, 1814, 1816, 1819, 1818, - 1821, 1822, 1820, 1825, 1828, 1830, 1831, 1829, 1847, 1843, - 1849, 1833, 1853, 1855, 1857, 1835, 1859, 1865, 1866, 1867, - 1871, 3808, 1874, 1875, 1858, 1877, 1869, 1878, 1885, 1891, - 1881, 1887, 1888, 1889, 1892, 1893, 1900, 1894, 1898, 1902, + 1698, 1707, 1703, 1713, 1718, 1714, 1720, 3865, 1722, 1723, + 1724, 1727, 1730, 1732, 1734, 1733, 1736, 1737, 1740, 1741, + 1742, 1751, 1744, 1753, 1748, 3865, 1761, 1763, 1760, 1769, + 1766, 1767, 1768, 1771, 1772, 1773, 1774, 1781, 1780, 1778, + 1777, 1783, 1784, 1782, 1787, 1788, 1790, 1804, 1791, 1805, + 3865, 1796, 1818, 1799, 1811, 1807, 1816, 1825, 1822, 1821, + 1823, 1824, 1827, 1828, 1829, 1831, 1834, 1835, 1836, 1837, + 1840, 1841, 1843, 1844, 1852, 1839, 1859, 1848, 1860, 1861, + 1862, 1865, 1867, 1875, 1878, 1879, 1881, 3865, 1884, 1885, + 1874, 1888, 1877, 1871, 1899, 1901, 1887, 1895, 1897, 1902, - 1903, 1896, 1904, 1905, 1908, 1916, 1827, 1924, 1926, 1914, - 1927, 1928, 1929, 1930, 3808, 1933, 1935, 1938, 1941, 1939, - 1944, 1951, 3808, 1947, 3808, 1950, 1958, 1961, 3808, 1963, - 3808, 1967, 3808, 1968, 1969, 1960, 1948, 1972, 1974, 1976, - 1978, 1980, 1981, 1983, 1984, 1985, 1987, 1988, 3808, 1997, - 1990, 1998, 2001, 1994, 2003, 2004, 2007, 2009, 1952, 2010, - 2018, 2011, 2019, 3808, 2020, 2022, 2017, 2026, 3808, 2025, - 2027, 2030, 2033, 2037, 2044, 2041, 2038, 2045, 2035, 2048, - 2057, 2058, 2054, 2056, 2061, 2062, 2068, 2064, 2065, 2074, - 2066, 2076, 2069, 2077, 2078, 2079, 2080, 2088, 2082, 2084, + 1903, 1904, 1911, 1905, 1908, 1912, 1913, 1909, 1915, 1918, + 1919, 1926, 1925, 1935, 1938, 1917, 1939, 1940, 1941, 1942, + 3865, 1930, 1946, 1951, 1953, 1947, 1955, 1963, 3865, 1959, + 3865, 1962, 1968, 1971, 3865, 1973, 3865, 1979, 1960, 3865, + 1980, 1981, 1970, 1964, 1974, 1986, 1984, 1993, 1987, 1994, + 1990, 1997, 1996, 1998, 2001, 3865, 2003, 2004, 2005, 2009, + 2011, 2013, 2014, 2015, 2018, 2021, 2020, 2031, 2027, 2035, + 3865, 2028, 2037, 2029, 2039, 3865, 2032, 2040, 2043, 2044, + 2051, 2058, 2060, 2050, 2061, 2046, 2049, 2067, 2072, 2063, + 2068, 2070, 2079, 2075, 2082, 2076, 2078, 2085, 2086, 2088, - 2085, 2086, 3808, 2096, 2098, 2090, 2101, 2100, 2106, 3808, - 2110, 3808, 2111, 2114, 2115, 2116, 2117, 2119, 2120, 2123, - 2129, 2131, 2141, 2124, 2134, 2127, 2137, 2142, 2143, 3808, - 2146, 2148, 2149, 2152, 2153, 2154, 2160, 2164, 2156, 3808, - 2170, 2163, 2167, 2182, 2178, 2169, 2185, 2179, 2187, 3808, - 3808, 2183, 2186, 2188, 2193, 2200, 2194, 2197, 3808, 2198, - 2201, 2202, 2203, 2204, 2211, 2213, 3808, 2214, 2217, 2219, - 2221, 2222, 2223, 2224, 2230, 2226, 2227, 2231, 2240, 2241, - 2247, 3808, 2248, 2242, 2250, 2252, 2254, 2256, 2255, 2257, - 2258, 2260, 2261, 2262, 2271, 2273, 2266, 2274, 2275, 2279, + 2089, 2092, 2093, 2096, 2097, 2100, 2094, 2098, 2101, 2102, + 3865, 2104, 2111, 2105, 2117, 2113, 2119, 3865, 2121, 3865, + 2126, 2128, 2129, 2133, 2130, 2131, 2134, 2143, 2139, 2142, + 2145, 2147, 2149, 2150, 2156, 2157, 2154, 3865, 2158, 2159, + 2160, 2163, 2165, 2164, 2171, 2175, 2176, 3865, 2185, 2178, + 2188, 2195, 2191, 2181, 2203, 2189, 2204, 3865, 3865, 2192, + 2200, 2199, 2205, 2206, 2214, 2210, 2215, 3865, 2216, 2217, + 2219, 2222, 2229, 2228, 2218, 3865, 2220, 2231, 2232, 2238, + 2239, 2240, 2242, 2248, 2244, 2247, 2249, 2254, 2257, 2259, + 3865, 2262, 2263, 2269, 2264, 2266, 2270, 2273, 2274, 2275, - 2276, 2284, 2286, 2288, 2294, 2297, 3808, 2303, 2290, 2304, - 2280, 2302, 2306, 2314, 2310, 2291, 2312, 2318, 2315, 3808, - 2316, 2317, 2320, 2321, 2325, 2328, 2327, 2333, 2337, 3808, - 2331, 2342, 2339, 2343, 2344, 2345, 2351, 2346, 2357, 3808, - 2355, 2361, 2358, 2359, 2367, 2368, 2365, 2369, 2370, 2375, - 2377, 2376, 2380, 2381, 2382, 2384, 2386, 2387, 2389, 2390, - 2391, 2393, 2410, 2400, 2413, 2398, 2403, 2420, 2422, 2428, - 2429, 2392, 2414, 2430, 2431, 2432, 2433, 2434, 2440, 2438, - 2442, 2439, 3808, 2441, 2446, 2449, 2453, 2450, 2455, 2457, - 2458, 2454, 3808, 2466, 3808, 2465, 2467, 3808, 2469, 2473, + 2277, 2278, 2281, 2283, 2292, 2284, 2288, 2290, 2294, 2291, + 2301, 2295, 2303, 2304, 2314, 2312, 3865, 2318, 2306, 2322, + 2319, 2321, 2325, 2328, 2327, 2329, 2330, 2336, 2332, 3865, + 2333, 2334, 2338, 2335, 2342, 2345, 2348, 2353, 2357, 3865, + 2351, 2359, 2362, 2364, 2363, 2366, 2367, 2369, 2373, 3865, + 2374, 2380, 2376, 2378, 2386, 2387, 2384, 2388, 2390, 2391, + 2394, 2397, 2398, 2400, 2402, 2403, 2405, 2406, 2407, 2408, + 2410, 2414, 2427, 2419, 2432, 2415, 2424, 2417, 2434, 2440, + 2446, 2447, 2433, 2443, 2449, 2448, 2450, 2451, 2452, 2458, + 2456, 2462, 2461, 3865, 2464, 2465, 2469, 2471, 2472, 2474, - 2456, 2474, 2475, 2477, 2478, 2480, 2489, 2486, 3808, 2487, - 2490, 2492, 2494, 3808, 2498, 3808, 3808, 2491, 2495, 2507, - 2504, 2510, 2405, 2513, 3808, 2515, 2505, 2516, 2514, 2518, - 2519, 2520, 2524, 2526, 2527, 2528, 2529, 3808, 2530, 2538, - 2533, 2541, 2537, 3808, 2534, 3808, 2545, 2554, 2547, 2550, - 2556, 2557, 2560, 2561, 2563, 2569, 2566, 2567, 2568, 3808, - 2570, 2572, 2575, 2577, 2581, 2582, 2590, 2587, 2591, 2588, - 2594, 2595, 2599, 2601, 2604, 3808, 2607, 2608, 3808, 2605, - 2609, 2611, 3808, 2614, 3808, 2615, 2617, 2619, 2622, 2624, - 2625, 2636, 2626, 2633, 2638, 2628, 2647, 2640, 2630, 3808, + 2476, 2479, 2475, 3865, 2482, 3865, 2483, 2488, 3865, 2489, + 2491, 2493, 2494, 2496, 2497, 2495, 2502, 2509, 2498, 3865, + 2505, 2508, 2510, 2511, 3865, 2522, 3865, 2515, 3865, 2518, + 2523, 2529, 1246, 2527, 2530, 2535, 3865, 2536, 2525, 2538, + 2540, 2541, 2542, 2544, 2546, 2547, 2548, 2550, 2551, 3865, + 2552, 2553, 2559, 2560, 2561, 3865, 2566, 3865, 2564, 2580, + 2567, 2569, 2581, 2582, 2584, 2572, 2576, 2591, 2592, 2585, + 2594, 3865, 2588, 2595, 2600, 2603, 2601, 2605, 2611, 2608, + 2610, 2614, 2615, 2617, 2621, 2622, 2618, 3865, 2623, 2629, + 3865, 2632, 2633, 2636, 2635, 3865, 2637, 3865, 2638, 2640, - 3808, 2652, 2649, 2654, 2655, 2657, 2659, 2665, 2661, 2663, - 3808, 2639, 2667, 2668, 2670, 2671, 2674, 2673, 2679, 2680, - 2675, 2681, 2682, 2683, 3808, 2687, 2688, 2694, 2693, 2695, - 2696, 3808, 2698, 2700, 2705, 2701, 2706, 2720, 2723, 2725, - 2711, 2716, 2728, 2731, 2733, 2734, 2736, 2737, 2739, 2741, - 2742, 3808, 2699, 2744, 2745, 2747, 2748, 2750, 2749, 2757, - 2760, 2751, 2754, 2762, 2768, 3808, 2763, 2765, 2771, 2772, - 2775, 2777, 2779, 2780, 2784, 2782, 3808, 2787, 2789, 2790, - 2792, 2793, 2795, 2797, 2798, 2801, 2802, 2808, 2809, 3808, - 2804, 3808, 2811, 2817, 2826, 2822, 2819, 3808, 2825, 2827, + 2639, 2641, 2647, 2648, 2659, 2642, 2652, 2660, 2649, 2668, + 2666, 2669, 3865, 3865, 2671, 2672, 2676, 2677, 2673, 2679, + 2687, 2683, 2691, 3865, 2680, 2693, 2684, 2686, 2694, 2692, + 2695, 2703, 2696, 2704, 2708, 2706, 2709, 3865, 2712, 2714, + 2715, 2716, 2717, 2718, 2720, 3865, 2722, 2723, 2727, 2729, + 2733, 2724, 2745, 2748, 2734, 2742, 2751, 2753, 2757, 2754, + 2759, 2760, 2762, 2764, 2765, 3865, 2766, 2768, 2769, 2775, + 2772, 2770, 2777, 2781, 2786, 2779, 2787, 2789, 2792, 3865, + 2783, 2793, 2794, 2795, 2801, 2796, 2805, 2806, 2810, 2812, + 3865, 2807, 2813, 2814, 2817, 2820, 2822, 2823, 2825, 2824, - 3808, 2830, 3808, 2829, 2828, 2834, 2835, 2838, 3808, 2844, - 2845, 2848, 2846, 2850, 2851, 2852, 3808, 2856, 2862, 2867, - 2863, 2855, 2857, 2869, 2861, 2872, 2879, 2876, 3808, 2878, - 2880, 2888, 2884, 2887, 3808, 3808, 2886, 2890, 3808, 3808, - 3808, 2896, 3808, 2893, 3808, 3808, 2897, 2899, 3808, 2904, - 3808, 2906, 2907, 2905, 2909, 2910, 3808, 2913, 2912, 2917, - 3808, 2914, 2925, 2918, 2919, 3808, 2927, 3808, 2928, 2935, - 2929, 2939, 2941, 2946, 2948, 2930, 2938, 2949, 2950, 2951, - 2952, 2953, 2955, 2958, 2959, 2960, 2964, 2965, 2968, 2969, - 2966, 2972, 2971, 2974, 2976, 2984, 2987, 2991, 3808, 3808, + 2826, 2829, 2836, 2834, 3865, 2837, 3865, 2842, 2844, 2852, + 2849, 2846, 3865, 2848, 2853, 3865, 2855, 3865, 2856, 2860, + 2854, 2861, 2870, 3865, 2872, 2864, 2875, 2877, 2879, 2880, + 2881, 3865, 2883, 2885, 2891, 2892, 2884, 2886, 2894, 2896, + 2895, 2898, 2907, 2905, 3865, 2901, 2909, 2918, 2912, 2919, + 3865, 3865, 2910, 2922, 3865, 3865, 3865, 2926, 3865, 2916, + 3865, 3865, 2927, 2929, 3865, 2931, 3865, 2938, 2935, 2937, + 2939, 2940, 3865, 2941, 2942, 2944, 3865, 2946, 2952, 2948, + 2949, 3865, 2951, 3865, 2957, 2956, 2959, 2963, 2970, 2972, + 2975, 2965, 2967, 2978, 2976, 2980, 2981, 2982, 2983, 2990, - 2978, 2988, 2994, 2995, 2996, 2997, 3000, 3001, 3808, 3004, - 2999, 3007, 3009, 3010, 3011, 3019, 3012, 3021, 3027, 3023, - 3025, 3013, 3033, 3026, 3808, 3030, 3034, 3808, 3808, 3036, - 3042, 3044, 3037, 3047, 3049, 3050, 3808, 3051, 3055, 3058, - 3060, 3808, 3062, 3063, 3068, 3070, 3808, 3808, 3808, 3071, - 3064, 3074, 3075, 3076, 3077, 3079, 3808, 3078, 3084, 3085, - 3088, 3092, 3095, 3097, 3100, 3106, 3102, 3099, 3109, 3808, - 3808, 3110, 3116, 3113, 3114, 3112, 3115, 3118, 3120, 3122, - 3808, 3124, 3128, 3129, 3131, 3132, 3135, 3138, 3808, 3133, - 3137, 3139, 3144, 3145, 3150, 3149, 3155, 3148, 3160, 3808, + 2986, 2984, 2991, 2994, 2996, 2998, 2999, 2997, 3001, 3002, + 3004, 3008, 3015, 3017, 3021, 3865, 3865, 3005, 3018, 3023, + 3026, 3028, 3027, 3030, 3031, 3865, 3034, 3029, 3035, 3042, + 3039, 3040, 3041, 3044, 3043, 3051, 3057, 3055, 3056, 3061, + 3063, 3064, 3865, 3065, 3066, 3865, 3865, 3067, 3069, 3076, + 3077, 3070, 3079, 3082, 3865, 3081, 3089, 3091, 3094, 3865, + 3098, 3083, 3100, 3104, 3865, 3865, 3865, 3105, 3095, 3101, + 3109, 3108, 3110, 3111, 3112, 3865, 3116, 3119, 3121, 3122, + 3128, 3133, 3129, 3134, 3140, 3138, 3142, 3145, 3865, 3865, + 3146, 3152, 3149, 3150, 3148, 3151, 3154, 3156, 3158, 3865, - 3161, 3162, 3808, 3163, 3166, 3168, 3808, 3171, 3808, 3174, - 3808, 3808, 3169, 3176, 3178, 3185, 3187, 3191, 3179, 3182, - 3193, 3195, 3198, 3808, 3808, 3204, 3192, 3200, 3210, 3808, - 3808, 3207, 3201, 3208, 3209, 3211, 3214, 3217, 3220, 3221, - 3222, 3223, 3225, 3230, 3232, 3233, 3234, 3235, 3236, 3238, - 3808, 3243, 3245, 3247, 3808, 3249, 3251, 3255, 3254, 3257, - 3266, 3262, 3264, 3808, 3268, 3269, 3270, 3808, 3808, 3808, - 3271, 3278, 3274, 3808, 3280, 3286, 3808, 3289, 3282, 3284, - 3297, 3293, 3294, 3298, 3301, 3300, 3303, 3808, 3305, 3306, - 3308, 3309, 3310, 3311, 3312, 3315, 3317, 3318, 3329, 3320, + 3160, 3164, 3165, 3167, 3168, 3172, 3173, 3175, 3865, 3171, + 3176, 3178, 3186, 3179, 3182, 3188, 3194, 3187, 3199, 3865, + 3200, 3189, 3865, 3201, 3203, 3206, 3865, 3207, 3865, 3211, + 3865, 3865, 3212, 3213, 3216, 3219, 3224, 3226, 3228, 3218, + 3220, 3235, 3238, 3229, 3865, 3865, 3244, 3231, 3240, 3247, + 3865, 3865, 3245, 3241, 3248, 3249, 3251, 3252, 3256, 3257, + 3260, 3261, 3262, 3264, 3269, 3272, 3273, 3274, 3275, 3277, + 3279, 3282, 3865, 3284, 3287, 3291, 3865, 3285, 3293, 3300, + 3289, 3295, 3312, 3305, 3297, 3865, 3308, 3309, 3865, 3313, + 3865, 3865, 3865, 3314, 3315, 3320, 3865, 3322, 3324, 3865, - 3808, 3333, 3335, 3336, 3808, 3338, 3326, 3330, 3340, 3808, - 3342, 3347, 3345, 3349, 3351, 3352, 3354, 3355, 3357, 3360, - 3364, 3808, 3358, 3362, 3369, 3368, 3374, 3381, 3377, 3379, - 3808, 3384, 3380, 3808, 3385, 3386, 3387, 3389, 3397, 3402, - 3398, 3808, 3405, 3808, 3808, 3406, 3808, 3409, 3410, 3391, - 3412, 3414, 3415, 3808, 3808, 3417, 3419, 3422, 3808, 3416, - 3423, 3426, 3428, 3429, 3430, 3433, 3434, 3432, 3439, 3808, - 3808, 3435, 3442, 3446, 3450, 3808, 3808, 3808, 3457, 3808, - 3458, 3808, 3460, 3447, 3461, 3808, 3464, 3466, 3808, 3467, - 3468, 3469, 3472, 3474, 3478, 3476, 3479, 3482, 3484, 3486, + 3331, 3323, 3326, 3339, 3333, 3335, 3337, 3341, 3342, 3344, + 3865, 3345, 3347, 3349, 3350, 3352, 3351, 3353, 3357, 3358, + 3365, 3359, 3372, 3361, 3865, 3374, 3378, 3379, 3865, 3382, + 3368, 3375, 3383, 3865, 3386, 3389, 3390, 3392, 3394, 3395, + 3396, 3397, 3400, 3401, 3405, 3865, 3407, 3409, 3410, 3411, + 3415, 3423, 3420, 3422, 3865, 3425, 3426, 3865, 3428, 3430, + 3432, 3431, 3440, 3442, 3444, 3447, 3865, 3449, 3865, 3865, + 3450, 3865, 3454, 3455, 3456, 3457, 3459, 3460, 3865, 3865, + 3462, 3464, 3467, 3865, 3461, 3468, 3473, 3471, 3474, 3475, + 3479, 3480, 3484, 3485, 3865, 3865, 3486, 3865, 3492, 3500, - 3480, 3488, 3808, 3808, 3493, 3808, 3496, 3808, 3497, 3505, - 3808, 3490, 3507, 3498, 3510, 3808, 3808, 3511, 3517, 3515, - 3516, 3500, 3518, 3522, 3808, 3808, 3808, 3520, 3808, 3524, - 3525, 3526, 3808, 3530, 3531, 3527, 3532, 3533, 3534, 3537, - 3535, 3543, 3539, 3554, 3557, 3558, 3560, 3547, 3551, 3567, - 3561, 3569, 3808, 3564, 3808, 3808, 3570, 3576, 3578, 3574, - 3577, 3580, 3808, 3581, 3582, 3583, 3584, 3585, 3586, 3587, - 3593, 3602, 3600, 3606, 3608, 3598, 3614, 3616, 3618, 3607, - 3610, 3624, 3620, 3621, 3808, 3622, 3623, 3628, 3630, 3631, - 3633, 3635, 3636, 3640, 3644, 3645, 3646, 3651, 3648, 3653, + 3503, 3865, 3865, 3865, 3502, 3865, 3504, 3865, 3510, 3494, + 3511, 3865, 3514, 3515, 3865, 3516, 3487, 3517, 3520, 3522, + 3523, 3524, 3526, 3527, 3531, 3532, 3533, 3539, 3865, 3865, + 3543, 3865, 3545, 3865, 3546, 3551, 3865, 3477, 3553, 3547, + 3557, 3865, 3865, 3558, 3540, 3559, 3560, 3563, 3566, 3564, + 3865, 3865, 3865, 3567, 3865, 3568, 3569, 3571, 3865, 3575, + 3574, 3576, 3578, 3577, 3579, 3583, 3581, 3591, 3588, 3600, + 3603, 3605, 3606, 3592, 3594, 3612, 3608, 3614, 3865, 3615, + 3865, 3865, 3616, 3623, 3624, 3620, 3625, 3621, 3865, 3627, + 3626, 3629, 3631, 3628, 3632, 3643, 3633, 3649, 3646, 3653, - 3656, 3657, 3658, 3808, 3659, 3661, 3663, 3667, 3668, 3670, - 3671, 3672, 3679, 3674, 3684, 3688, 3685, 3808, 3691, 3808, - 3808, 3693, 3676, 3680, 3701, 3703, 3808, 3808, 3808, 3716, - 3723, 3730, 3737, 3744, 94, 3751, 3758, 3765, 3772, 3779, - 3786, 3793, 3800 + 3654, 3636, 3661, 3663, 3657, 3660, 3665, 3671, 3667, 3668, + 3865, 3669, 3670, 3672, 3675, 3676, 3673, 3680, 3682, 3692, + 3685, 3687, 3695, 3697, 3698, 3700, 3701, 3703, 3702, 3865, + 3704, 3706, 3710, 3712, 3715, 3713, 3717, 3718, 3723, 3726, + 3725, 3728, 3730, 3865, 3734, 3865, 3865, 3735, 3738, 3741, + 3743, 3745, 3865, 3865, 3865, 3773, 3780, 3787, 3794, 3801, + 94, 3808, 3815, 3822, 3829, 3836, 3843, 3850, 3857 } ; -static yyconst flex_int16_t yy_def[1944] = +static yyconst flex_int16_t yy_def[1970] = { 0, - 1929, 1, 1930, 1930, 1931, 1931, 1932, 1932, 1933, 1933, - 1934, 1934, 1929, 1935, 1929, 1929, 1929, 1929, 1936, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1937, 1929, 1929, 1929, 1937, 1938, 1929, 1929, 1929, 1938, - 1939, 1929, 1929, 1929, 1929, 1939, 1940, 1929, 1929, 1929, - 1940, 1941, 1929, 1942, 1929, 1941, 1941, 1935, 1935, 1929, - 1943, 1936, 1943, 1936, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1955, 1, 1956, 1956, 1957, 1957, 1958, 1958, 1959, 1959, + 1960, 1960, 1955, 1961, 1955, 1955, 1955, 1955, 1962, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1963, 1955, 1955, 1955, 1963, 1964, 1955, 1955, 1955, 1964, + 1965, 1955, 1955, 1955, 1955, 1965, 1966, 1955, 1955, 1955, + 1966, 1967, 1955, 1968, 1955, 1967, 1967, 1961, 1961, 1955, + 1969, 1962, 1969, 1962, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1937, 1937, - 1938, 1938, 1939, 1939, 1929, 1940, 1940, 1941, 1941, 1942, - 1942, 1941, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1963, 1963, + 1964, 1964, 1965, 1965, 1955, 1966, 1966, 1967, 1967, 1968, + 1968, 1967, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1941, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1941, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1967, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1967, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1929, 1941, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, + 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1955, 1967, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1941, 1935, 1935, 1935, - 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1967, 1961, 1961, + 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1929, 1935, 1929, 1929, 1935, 1929, 1929, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1941, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1955, 1961, 1955, 1955, 1961, 1955, + 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1967, 1961, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, - 1941, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1955, 1961, 1967, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1929, 1935, 1929, 1935, 1935, 1935, 1929, 1935, - 1929, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1929, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, + 1955, 1961, 1961, 1961, 1955, 1961, 1955, 1961, 1961, 1955, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1955, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1955, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1955, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1929, 1935, 1929, 1935, 1935, 1929, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, - 1935, 1935, 1935, 1929, 1935, 1929, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, - 1935, 1935, 1935, 1929, 1935, 1929, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1929, 1935, - 1935, 1935, 1929, 1935, 1929, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, + 1961, 1961, 1961, 1955, 1961, 1955, 1961, 1961, 1955, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, + 1961, 1961, 1961, 1961, 1955, 1961, 1955, 1961, 1955, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1955, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, + 1955, 1961, 1961, 1961, 1961, 1955, 1961, 1955, 1961, 1961, - 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, - 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1955, 1955, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1929, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1929, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, - 1935, 1935, 1935, 1935, 1929, 1929, 1935, 1935, 1929, 1929, - 1929, 1935, 1929, 1935, 1929, 1929, 1935, 1935, 1929, 1935, - 1929, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, - 1929, 1935, 1935, 1935, 1935, 1929, 1935, 1929, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1929, + 1961, 1961, 1961, 1961, 1955, 1961, 1955, 1961, 1961, 1961, + 1961, 1961, 1955, 1961, 1961, 1955, 1961, 1955, 1961, 1961, + 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1961, + 1955, 1955, 1961, 1961, 1955, 1955, 1955, 1961, 1955, 1961, + 1955, 1955, 1961, 1961, 1955, 1961, 1955, 1961, 1961, 1961, + 1961, 1961, 1955, 1961, 1961, 1961, 1955, 1961, 1961, 1961, + 1961, 1955, 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1929, 1929, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, - 1935, 1929, 1935, 1935, 1935, 1935, 1929, 1929, 1929, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1955, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1955, 1961, 1961, 1955, 1955, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1955, + 1961, 1961, 1961, 1961, 1955, 1955, 1955, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1955, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, - 1935, 1935, 1929, 1935, 1935, 1935, 1929, 1935, 1929, 1935, - 1929, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1929, 1929, 1935, 1935, 1935, 1935, 1929, - 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1929, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1929, 1929, 1929, - 1935, 1935, 1935, 1929, 1935, 1935, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, + 1961, 1961, 1955, 1961, 1961, 1961, 1955, 1961, 1955, 1961, + 1955, 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1955, 1955, 1961, 1961, 1961, 1961, + 1955, 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1955, 1961, 1961, 1961, 1955, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1955, 1961, + 1955, 1955, 1955, 1961, 1961, 1961, 1955, 1961, 1961, 1955, - 1929, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1929, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1929, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1929, 1935, 1929, 1929, 1935, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1929, 1929, 1935, 1935, 1935, 1929, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, - 1929, 1935, 1935, 1935, 1935, 1929, 1929, 1929, 1935, 1929, - 1935, 1929, 1935, 1935, 1935, 1929, 1935, 1935, 1929, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1955, 1961, + 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1955, 1961, 1961, 1955, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, 1955, 1955, + 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1955, + 1961, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1955, 1955, 1961, 1955, 1961, 1961, - 1935, 1935, 1929, 1929, 1935, 1929, 1935, 1929, 1935, 1935, - 1929, 1935, 1935, 1935, 1935, 1929, 1929, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1929, 1929, 1929, 1935, 1929, 1935, - 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1929, 1935, 1929, 1929, 1935, 1935, 1935, 1935, - 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, + 1961, 1955, 1955, 1955, 1961, 1955, 1961, 1955, 1961, 1961, + 1961, 1955, 1961, 1961, 1955, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1955, + 1961, 1955, 1961, 1955, 1961, 1961, 1955, 1961, 1961, 1961, + 1961, 1955, 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1955, 1955, 1955, 1961, 1955, 1961, 1961, 1961, 1955, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, + 1955, 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1955, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, - 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, - 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1929, - 1929, 1935, 1935, 1935, 1935, 1935, 1929, 1929, 0, 1929, - 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, - 1929, 1929, 1929 + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1955, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1955, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1955, 1961, 1955, 1955, 1961, 1961, 1961, + 1961, 1961, 1955, 1955, 0, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955 } ; -static yyconst flex_uint16_t yy_nxt[3848] = +static yyconst flex_uint16_t yy_nxt[3905] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, @@ -1128,7 +1120,7 @@ static yyconst flex_uint16_t yy_nxt[3848] = 235, 69, 69, 236, 69, 69, 241, 242, 69, 224, 69, 260, 69, 243, 225, 69, 238, 239, 69, 226, 240, 69, 244, 249, 227, 69, 250, 245, 69, 69, - 228, 229, 247, 251, 248, 253, 69, 256, 69, 676, + 228, 229, 247, 251, 248, 253, 69, 256, 69, 678, 69, 246, 69, 69, 252, 254, 258, 259, 257, 69, 255, 69, 69, 69, 69, 69, 69, 69, 69, 262, 69, 264, 261, 69, 69, 266, 69, 69, 268, 69, @@ -1172,341 +1164,348 @@ static yyconst flex_uint16_t yy_nxt[3848] = 441, 69, 69, 69, 69, 443, 69, 439, 450, 69, 449, 447, 442, 444, 446, 445, 452, 451, 453, 69, 69, 69, 69, 69, 455, 459, 457, 456, 69, 69, - 69, 69, 470, 69, 458, 69, 69, 69, 472, 69, - 474, 454, 471, 69, 460, 69, 469, 69, 461, 69, - 462, 467, 468, 69, 476, 463, 473, 464, 69, 478, - 477, 69, 69, 69, 69, 465, 69, 69, 475, 482, - 69, 69, 483, 479, 139, 466, 486, 69, 487, 69, - 480, 488, 485, 489, 481, 484, 69, 69, 69, 493, - 69, 69, 491, 495, 69, 490, 492, 497, 69, 494, + 69, 69, 471, 69, 458, 69, 69, 69, 473, 69, + 475, 454, 472, 69, 460, 69, 470, 69, 461, 69, + 462, 468, 469, 69, 477, 463, 474, 464, 478, 479, + 69, 69, 69, 69, 69, 465, 69, 69, 466, 483, + 476, 69, 484, 69, 139, 467, 480, 487, 488, 481, + 69, 489, 486, 69, 482, 485, 69, 69, 494, 69, + 69, 491, 490, 496, 69, 493, 492, 69, 69, 69, - 69, 69, 69, 496, 69, 500, 499, 503, 69, 506, - 69, 504, 69, 507, 69, 498, 69, 508, 509, 69, - 501, 505, 69, 502, 510, 69, 511, 69, 69, 69, - 516, 69, 513, 515, 69, 69, 69, 512, 517, 69, - 520, 518, 69, 69, 69, 69, 69, 514, 521, 523, - 69, 527, 69, 69, 524, 69, 522, 69, 525, 519, - 529, 531, 526, 69, 69, 69, 69, 530, 533, 69, - 528, 69, 532, 534, 69, 69, 536, 538, 69, 537, - 539, 69, 542, 69, 69, 69, 69, 69, 544, 543, - 69, 546, 549, 541, 540, 535, 69, 69, 69, 545, + 498, 69, 495, 69, 501, 69, 497, 504, 500, 69, + 69, 505, 69, 69, 499, 507, 69, 508, 69, 69, + 509, 502, 506, 69, 503, 69, 510, 69, 511, 69, + 512, 513, 69, 520, 517, 69, 69, 514, 515, 69, + 516, 69, 69, 521, 69, 518, 69, 519, 69, 522, + 69, 69, 69, 524, 69, 528, 69, 69, 525, 532, + 523, 530, 526, 69, 69, 69, 69, 139, 534, 527, + 529, 531, 533, 69, 69, 69, 69, 535, 69, 537, + 538, 69, 541, 540, 69, 543, 69, 545, 69, 539, + 69, 546, 544, 542, 69, 69, 69, 550, 69, 536, - 551, 139, 547, 550, 548, 69, 69, 69, 69, 552, - 554, 69, 553, 558, 555, 69, 69, 69, 69, 69, - 560, 556, 69, 69, 557, 559, 563, 562, 69, 69, - 564, 69, 69, 69, 565, 561, 69, 69, 566, 567, - 572, 568, 69, 69, 69, 69, 569, 577, 570, 69, - 69, 573, 69, 571, 69, 580, 69, 69, 574, 69, - 576, 581, 575, 69, 583, 69, 69, 582, 578, 579, - 69, 69, 69, 587, 69, 69, 588, 590, 69, 584, - 591, 589, 69, 586, 585, 69, 69, 139, 69, 593, - 69, 69, 597, 598, 594, 599, 592, 596, 69, 69, + 547, 552, 69, 551, 69, 69, 69, 553, 69, 69, + 549, 555, 548, 554, 559, 556, 69, 69, 557, 69, + 69, 69, 558, 561, 69, 69, 560, 564, 69, 563, + 566, 565, 69, 69, 69, 568, 69, 69, 562, 69, + 567, 69, 69, 569, 69, 573, 69, 69, 574, 579, + 69, 69, 570, 69, 69, 571, 69, 572, 585, 575, + 576, 69, 578, 69, 582, 577, 69, 69, 69, 580, + 581, 583, 584, 69, 69, 587, 69, 69, 69, 590, + 589, 588, 586, 591, 69, 69, 69, 596, 69, 592, + 593, 69, 139, 595, 69, 594, 69, 599, 601, 600, - 595, 69, 601, 69, 604, 69, 69, 69, 603, 69, - 602, 606, 69, 609, 69, 69, 69, 607, 69, 600, - 610, 69, 69, 605, 608, 69, 69, 69, 621, 69, - 622, 618, 611, 137, 620, 69, 623, 624, 619, 69, - 612, 69, 69, 69, 632, 633, 613, 69, 69, 658, - 614, 635, 69, 615, 634, 636, 69, 69, 638, 637, - 616, 69, 639, 617, 69, 625, 626, 69, 627, 69, - 640, 628, 641, 69, 69, 69, 629, 642, 643, 69, - 645, 644, 630, 631, 69, 69, 69, 649, 69, 69, - 69, 69, 135, 648, 655, 646, 653, 654, 69, 69, + 598, 69, 597, 69, 603, 69, 606, 69, 69, 69, + 69, 69, 604, 608, 605, 69, 611, 69, 69, 69, + 609, 69, 602, 612, 69, 69, 69, 607, 610, 69, + 624, 623, 69, 625, 620, 613, 69, 626, 622, 69, + 69, 621, 69, 614, 69, 634, 69, 69, 69, 615, + 637, 638, 69, 616, 635, 639, 617, 69, 640, 69, + 642, 641, 69, 618, 636, 69, 619, 69, 627, 628, + 643, 629, 69, 69, 630, 644, 69, 69, 645, 631, + 69, 647, 646, 69, 69, 632, 633, 69, 651, 69, + 69, 653, 650, 69, 656, 69, 648, 69, 655, 137, - 656, 69, 651, 647, 650, 69, 69, 69, 652, 657, - 69, 69, 69, 69, 69, 659, 662, 69, 660, 661, - 663, 665, 69, 666, 668, 667, 69, 69, 69, 69, - 69, 664, 69, 672, 69, 674, 670, 671, 69, 69, - 69, 69, 677, 69, 69, 669, 673, 69, 680, 69, - 678, 69, 69, 675, 69, 69, 686, 69, 685, 69, - 69, 679, 681, 69, 682, 134, 689, 692, 69, 683, - 69, 684, 687, 690, 688, 69, 691, 694, 695, 696, - 693, 69, 69, 69, 69, 697, 69, 700, 69, 69, - 702, 703, 69, 69, 698, 704, 69, 69, 699, 707, + 657, 658, 649, 660, 652, 69, 69, 69, 654, 69, + 659, 69, 69, 69, 69, 69, 69, 661, 664, 662, + 69, 665, 667, 69, 670, 668, 69, 69, 669, 69, + 663, 69, 69, 69, 666, 674, 672, 69, 676, 69, + 673, 69, 69, 69, 679, 671, 69, 675, 682, 69, + 69, 69, 680, 69, 677, 69, 69, 69, 69, 688, + 69, 69, 687, 681, 69, 69, 694, 683, 69, 684, + 691, 686, 685, 69, 689, 1343, 690, 692, 693, 695, + 69, 698, 69, 69, 699, 69, 69, 697, 696, 69, + 69, 69, 69, 705, 700, 702, 703, 706, 69, 69, - 69, 709, 69, 69, 69, 711, 139, 69, 69, 701, - 706, 705, 713, 69, 69, 69, 69, 69, 724, 69, - 708, 710, 712, 725, 69, 69, 69, 132, 69, 716, - 728, 69, 714, 69, 743, 69, 717, 130, 715, 69, - 726, 69, 718, 729, 719, 731, 730, 732, 720, 727, - 721, 69, 69, 69, 69, 722, 733, 69, 735, 737, - 723, 69, 69, 69, 69, 742, 734, 69, 736, 741, - 69, 738, 69, 744, 69, 69, 740, 69, 745, 748, - 746, 69, 739, 69, 752, 69, 749, 751, 750, 69, - 753, 755, 69, 757, 69, 69, 759, 754, 747, 758, + 69, 701, 69, 707, 710, 69, 704, 712, 69, 69, + 69, 69, 709, 714, 139, 69, 708, 69, 69, 716, + 69, 69, 69, 727, 69, 711, 715, 69, 713, 69, + 69, 728, 69, 731, 719, 69, 717, 69, 69, 729, + 733, 720, 718, 69, 69, 69, 721, 732, 722, 736, + 135, 734, 723, 737, 724, 730, 69, 69, 735, 725, + 69, 738, 740, 69, 726, 69, 69, 134, 745, 746, + 69, 739, 744, 69, 741, 69, 69, 69, 69, 743, + 69, 753, 69, 756, 742, 69, 747, 752, 758, 755, + 69, 748, 754, 749, 69, 757, 69, 761, 69, 69, - 69, 69, 69, 760, 69, 763, 69, 69, 69, 69, - 69, 756, 764, 69, 69, 69, 69, 762, 766, 69, - 770, 761, 768, 69, 767, 765, 69, 775, 69, 69, - 69, 69, 69, 769, 791, 774, 771, 772, 69, 773, - 69, 69, 69, 779, 778, 780, 781, 776, 777, 69, - 783, 782, 784, 69, 69, 787, 69, 69, 69, 788, - 69, 69, 789, 69, 69, 790, 785, 69, 69, 69, - 786, 796, 792, 69, 69, 69, 793, 69, 794, 799, - 800, 69, 69, 801, 795, 798, 69, 803, 797, 802, - 804, 69, 69, 69, 69, 805, 807, 69, 69, 69, + 763, 69, 767, 762, 750, 69, 69, 69, 759, 764, + 69, 751, 69, 69, 69, 760, 69, 768, 69, 69, + 765, 69, 69, 766, 69, 770, 774, 772, 69, 69, + 771, 779, 769, 69, 69, 69, 69, 778, 773, 69, + 69, 69, 775, 776, 777, 783, 784, 69, 786, 782, + 69, 69, 780, 781, 788, 785, 69, 787, 791, 69, + 789, 69, 792, 69, 69, 793, 69, 790, 794, 795, + 69, 69, 69, 69, 69, 796, 800, 69, 69, 69, + 69, 69, 69, 803, 804, 69, 798, 805, 807, 69, + 797, 69, 799, 802, 809, 801, 806, 808, 69, 69, - 806, 69, 69, 69, 812, 69, 813, 69, 815, 69, - 808, 811, 69, 809, 816, 69, 818, 810, 819, 817, - 814, 69, 69, 69, 820, 821, 69, 69, 825, 823, - 69, 822, 69, 69, 824, 69, 69, 69, 69, 827, - 1929, 69, 834, 835, 69, 826, 69, 69, 69, 836, - 69, 831, 828, 832, 69, 830, 69, 69, 69, 837, - 829, 833, 840, 69, 838, 842, 69, 69, 846, 69, - 839, 69, 69, 841, 843, 69, 69, 69, 844, 69, - 851, 849, 852, 69, 69, 845, 847, 69, 69, 848, - 853, 855, 69, 69, 69, 69, 850, 69, 854, 858, + 69, 69, 811, 69, 69, 816, 69, 810, 69, 812, + 69, 817, 69, 818, 69, 820, 815, 69, 823, 813, + 69, 814, 819, 69, 69, 821, 824, 826, 69, 822, + 69, 69, 830, 69, 69, 825, 69, 69, 69, 69, + 69, 69, 132, 827, 828, 829, 832, 69, 69, 839, + 69, 840, 831, 69, 69, 836, 69, 833, 841, 835, + 69, 69, 837, 69, 834, 842, 69, 69, 838, 847, + 69, 845, 69, 69, 69, 843, 69, 844, 69, 848, + 851, 69, 846, 69, 854, 849, 69, 856, 852, 69, + 69, 69, 850, 69, 853, 857, 858, 69, 69, 69, - 860, 857, 69, 69, 69, 856, 862, 69, 69, 69, - 69, 69, 859, 863, 69, 866, 861, 69, 864, 69, - 871, 867, 865, 69, 69, 875, 69, 69, 69, 868, - 69, 69, 869, 874, 872, 870, 877, 69, 69, 69, - 876, 881, 879, 873, 886, 882, 69, 878, 69, 69, - 880, 69, 885, 901, 69, 888, 69, 889, 883, 69, - 69, 69, 884, 887, 890, 69, 69, 69, 893, 69, - 891, 892, 69, 69, 894, 898, 899, 895, 69, 69, - 69, 69, 69, 896, 900, 69, 907, 908, 69, 69, - 69, 897, 69, 909, 910, 69, 912, 69, 69, 69, + 860, 69, 69, 855, 863, 859, 69, 862, 69, 69, + 867, 861, 69, 865, 69, 69, 69, 69, 868, 69, + 864, 866, 69, 872, 69, 69, 69, 869, 69, 873, + 871, 877, 881, 870, 69, 69, 69, 69, 874, 69, + 69, 878, 876, 875, 880, 885, 69, 883, 879, 69, + 882, 887, 69, 69, 884, 888, 69, 69, 886, 69, + 891, 914, 893, 69, 894, 69, 890, 69, 889, 69, + 892, 69, 895, 69, 897, 69, 69, 899, 896, 69, + 898, 69, 69, 69, 904, 903, 901, 905, 900, 69, + 69, 69, 69, 69, 915, 906, 902, 907, 69, 69, - 69, 902, 69, 911, 913, 69, 903, 918, 904, 914, - 905, 916, 906, 915, 69, 69, 919, 917, 921, 923, - 69, 69, 925, 69, 920, 69, 69, 69, 926, 69, - 922, 927, 929, 69, 931, 69, 924, 69, 933, 69, - 69, 69, 932, 69, 69, 69, 928, 1929, 935, 930, - 937, 69, 936, 69, 938, 69, 942, 940, 943, 939, - 934, 69, 941, 69, 69, 945, 69, 69, 69, 944, - 69, 949, 69, 69, 69, 946, 69, 953, 69, 948, - 69, 69, 69, 69, 69, 69, 947, 69, 959, 69, - 69, 69, 954, 950, 951, 957, 963, 69, 955, 952, + 913, 69, 69, 69, 69, 916, 917, 908, 69, 69, + 69, 924, 909, 919, 910, 69, 911, 920, 912, 69, + 918, 921, 69, 922, 925, 69, 69, 923, 926, 929, + 69, 931, 69, 927, 69, 69, 69, 932, 935, 69, + 933, 930, 69, 937, 69, 69, 69, 940, 69, 69, + 928, 938, 69, 69, 69, 934, 69, 942, 130, 944, + 69, 943, 936, 69, 945, 69, 939, 948, 949, 941, + 950, 947, 69, 69, 946, 69, 952, 951, 69, 69, + 69, 69, 956, 69, 69, 69, 69, 953, 960, 69, + 69, 955, 69, 69, 69, 69, 69, 966, 954, 69, - 956, 960, 958, 964, 69, 69, 69, 962, 69, 975, - 961, 966, 69, 965, 968, 69, 967, 970, 969, 69, - 971, 69, 974, 972, 69, 69, 69, 69, 69, 973, - 69, 69, 69, 69, 69, 976, 980, 69, 983, 69, - 69, 69, 69, 69, 977, 69, 979, 69, 981, 1929, - 984, 1029, 978, 982, 986, 69, 985, 987, 988, 69, - 989, 69, 991, 993, 990, 69, 992, 69, 997, 69, - 69, 69, 999, 1000, 994, 996, 998, 69, 69, 69, - 1001, 69, 995, 69, 1002, 1003, 69, 69, 1005, 69, - 69, 1004, 1009, 69, 1006, 1007, 1010, 69, 1011, 69, + 69, 964, 69, 69, 957, 958, 961, 970, 69, 959, + 963, 69, 962, 965, 967, 971, 69, 69, 969, 69, + 977, 979, 973, 69, 968, 975, 972, 974, 69, 976, + 69, 978, 981, 69, 69, 69, 69, 69, 982, 69, + 69, 69, 980, 69, 983, 987, 69, 69, 69, 69, + 990, 69, 69, 69, 984, 69, 69, 986, 999, 988, + 69, 993, 985, 989, 69, 991, 994, 992, 995, 998, + 996, 69, 69, 69, 69, 997, 1000, 69, 1001, 69, + 1004, 1002, 1007, 69, 1006, 1008, 69, 69, 1003, 69, + 69, 69, 1009, 69, 1010, 1011, 69, 69, 1005, 69, - 69, 69, 1012, 69, 69, 69, 69, 1019, 69, 1008, - 69, 1018, 69, 1013, 69, 69, 69, 69, 1014, 1015, - 69, 1027, 1024, 1017, 1929, 1020, 69, 1016, 69, 1021, - 1032, 1028, 1026, 1022, 1023, 1030, 69, 1025, 69, 69, - 69, 69, 69, 1031, 1036, 69, 1040, 69, 1037, 1034, - 69, 69, 1033, 69, 1035, 1041, 69, 1042, 1045, 69, - 69, 1038, 69, 69, 69, 1039, 1076, 1047, 1049, 1043, - 69, 1048, 69, 69, 1050, 69, 1044, 1046, 1051, 69, - 69, 69, 1053, 1052, 69, 1055, 69, 1054, 69, 1059, - 69, 1057, 69, 69, 1061, 69, 69, 69, 1056, 69, + 69, 1012, 1016, 1015, 1013, 1014, 1017, 69, 1019, 69, + 1018, 69, 1020, 69, 69, 69, 69, 69, 1027, 1021, + 69, 69, 1026, 69, 69, 69, 1022, 69, 1023, 69, + 69, 69, 1035, 1040, 1025, 1032, 1028, 69, 69, 1029, + 1024, 1036, 69, 1030, 1031, 1034, 1038, 69, 1033, 1037, + 69, 69, 69, 69, 69, 1039, 1044, 1048, 69, 69, + 1045, 1042, 1047, 69, 1041, 69, 1043, 69, 1049, 1050, + 1053, 69, 69, 1046, 69, 69, 69, 1051, 1057, 1055, + 69, 1056, 69, 69, 1058, 69, 69, 1052, 1060, 1054, + 1059, 69, 69, 69, 1062, 1061, 69, 1063, 69, 69, - 69, 1064, 69, 1058, 1929, 1066, 69, 1063, 1067, 69, - 69, 1071, 1060, 69, 1070, 69, 69, 1062, 1065, 69, - 1068, 69, 69, 69, 1069, 1078, 1080, 1077, 1074, 69, - 69, 69, 69, 1082, 69, 1072, 1073, 69, 69, 69, - 1086, 1075, 69, 1079, 1084, 69, 1081, 69, 1083, 69, - 69, 1092, 1089, 69, 1087, 1090, 69, 69, 1093, 1094, - 69, 1085, 1095, 1097, 1098, 1088, 69, 1091, 69, 69, - 69, 1099, 1096, 69, 69, 1104, 69, 69, 69, 1103, - 69, 69, 1106, 1108, 1100, 1107, 69, 1101, 69, 69, - 69, 69, 69, 1102, 69, 1115, 69, 69, 69, 1105, + 1065, 1064, 69, 1066, 1068, 69, 69, 1070, 69, 69, + 69, 1067, 1073, 69, 1076, 69, 69, 69, 1075, 1069, + 1072, 69, 1079, 69, 1071, 69, 69, 69, 1080, 1074, + 69, 1078, 69, 69, 1077, 1085, 1083, 1086, 1087, 69, + 69, 69, 1089, 69, 69, 1081, 1082, 69, 1091, 69, + 1084, 69, 69, 1095, 1090, 69, 69, 1093, 69, 1088, + 1092, 69, 69, 69, 1106, 1101, 1098, 1096, 1094, 1099, + 69, 1103, 69, 69, 1107, 69, 1097, 1102, 1104, 69, + 69, 1100, 69, 1105, 69, 1108, 1112, 69, 69, 1114, + 69, 69, 1113, 1109, 69, 1116, 1117, 69, 69, 1110, - 69, 1110, 69, 1113, 1112, 1114, 1109, 1120, 69, 1111, - 69, 1118, 69, 69, 1116, 1121, 1117, 1122, 69, 1119, - 1123, 1124, 69, 69, 1125, 1130, 69, 69, 69, 69, - 1131, 69, 69, 1132, 1126, 69, 69, 1127, 1139, 69, - 1134, 69, 1128, 69, 1136, 1133, 69, 1137, 1129, 69, - 1138, 1135, 1140, 69, 69, 69, 1141, 1143, 69, 1142, - 69, 69, 1149, 1144, 69, 69, 69, 1146, 69, 1929, - 1145, 1152, 69, 1153, 1151, 69, 69, 1158, 1148, 69, - 1150, 69, 69, 1147, 1160, 1155, 1157, 1154, 1156, 1161, - 69, 69, 1164, 1159, 69, 69, 1162, 69, 69, 69, + 69, 69, 1111, 1118, 69, 69, 69, 1125, 69, 69, + 69, 1115, 69, 69, 69, 1130, 69, 69, 1119, 1122, + 1123, 1120, 1124, 69, 1121, 69, 1126, 1128, 1131, 69, + 1127, 69, 1132, 69, 1134, 1129, 1133, 1135, 69, 1140, + 69, 69, 69, 69, 1141, 69, 69, 1136, 1137, 1149, + 1142, 69, 1144, 1138, 69, 69, 1150, 69, 1143, 69, + 1148, 69, 69, 1139, 1146, 1145, 69, 1147, 69, 69, + 69, 69, 69, 1159, 1152, 69, 69, 69, 1156, 1151, + 1153, 1162, 1154, 69, 1163, 1155, 1161, 69, 69, 1158, + 69, 1160, 1168, 69, 69, 1157, 1165, 69, 1164, 1166, - 69, 1163, 1166, 1168, 1165, 69, 69, 1172, 1167, 69, - 69, 1169, 69, 69, 69, 69, 69, 1176, 1170, 1177, - 1178, 1179, 1173, 69, 1171, 69, 69, 1174, 1183, 69, - 1175, 69, 1180, 69, 69, 69, 69, 1189, 69, 69, - 1185, 1182, 69, 69, 1929, 1184, 1186, 1187, 1181, 1192, - 1190, 1193, 69, 69, 69, 1188, 1194, 1191, 1195, 69, - 69, 1198, 69, 1197, 69, 1196, 69, 69, 69, 69, - 69, 1200, 69, 69, 69, 1204, 1199, 1201, 69, 1202, - 1210, 1205, 1209, 69, 1203, 69, 69, 69, 69, 1208, - 1214, 69, 69, 1207, 1206, 1216, 69, 1217, 69, 1211, + 69, 69, 1171, 69, 69, 1170, 1167, 69, 1169, 1172, + 1174, 69, 69, 1173, 1175, 69, 69, 69, 69, 1176, + 1179, 1183, 69, 1178, 1180, 1177, 69, 69, 69, 69, + 69, 69, 69, 1187, 69, 1181, 1188, 1182, 1184, 1189, + 69, 69, 1194, 69, 69, 1185, 1190, 1193, 1186, 1191, + 69, 69, 69, 1192, 69, 1200, 69, 1196, 1195, 69, + 69, 69, 1955, 1197, 1198, 1204, 69, 1203, 1201, 69, + 1206, 69, 1205, 1199, 69, 69, 69, 1202, 69, 1207, + 1209, 69, 69, 1211, 1208, 69, 69, 69, 1210, 69, + 69, 1212, 1215, 69, 1220, 69, 69, 1213, 1216, 1221, - 69, 1219, 69, 69, 1218, 1212, 69, 1213, 1215, 69, - 1221, 1223, 1220, 1225, 69, 69, 69, 1224, 69, 1226, - 1222, 1227, 69, 1232, 69, 1234, 69, 69, 69, 69, - 69, 1238, 69, 69, 1228, 1229, 1230, 69, 1240, 69, - 69, 1231, 1236, 69, 1233, 69, 1243, 1235, 1244, 69, - 1237, 69, 1245, 1246, 69, 69, 69, 69, 69, 1239, - 1241, 1242, 1248, 69, 1251, 1249, 1247, 69, 1255, 69, - 69, 69, 1254, 69, 1258, 1259, 1260, 69, 1257, 69, - 69, 69, 69, 1250, 1252, 1253, 1261, 69, 69, 69, - 1256, 1262, 69, 69, 69, 1266, 69, 1269, 69, 69, + 69, 1214, 69, 69, 69, 1225, 69, 69, 1219, 1955, + 1218, 1217, 1227, 69, 1229, 69, 69, 1222, 69, 1223, + 1230, 1231, 1224, 1226, 69, 1233, 69, 1232, 1228, 1235, + 69, 69, 1237, 69, 69, 1239, 1234, 69, 1238, 69, + 69, 69, 69, 1246, 69, 69, 69, 69, 69, 1250, + 69, 1240, 1241, 1242, 69, 1252, 1236, 69, 1243, 1248, + 69, 1244, 1245, 69, 1247, 69, 1255, 1249, 1256, 69, + 1258, 69, 1257, 1251, 69, 69, 69, 1253, 69, 69, + 1263, 69, 1254, 1260, 1261, 69, 69, 1267, 69, 1259, + 69, 1266, 69, 1270, 1271, 1272, 69, 1269, 69, 69, - 1265, 69, 69, 69, 69, 69, 1273, 1263, 1264, 1274, - 69, 1267, 69, 1270, 1275, 69, 1272, 69, 1271, 1331, - 1268, 1276, 69, 1277, 1279, 69, 69, 1282, 1278, 1281, - 1287, 1280, 69, 1283, 69, 1284, 1286, 1289, 1288, 1285, - 69, 69, 69, 69, 69, 69, 69, 1294, 1291, 1296, - 69, 69, 69, 69, 69, 1290, 1298, 1292, 69, 1299, - 1300, 69, 69, 1297, 1301, 69, 69, 69, 69, 69, - 69, 1293, 1295, 1303, 1304, 1306, 1305, 69, 69, 69, - 1308, 69, 1302, 1307, 1311, 69, 69, 69, 1312, 69, - 69, 1309, 69, 1310, 1316, 1313, 1318, 1317, 69, 69, + 69, 1265, 69, 69, 1262, 1273, 69, 1264, 1268, 69, + 69, 1274, 69, 1278, 69, 69, 1281, 69, 69, 69, + 69, 1277, 69, 1275, 1285, 1276, 69, 69, 1286, 69, + 1279, 69, 1282, 1955, 1284, 1287, 69, 1283, 1288, 69, + 1280, 1295, 1289, 1291, 69, 69, 69, 1290, 1292, 1294, + 1293, 1296, 69, 1297, 1299, 69, 1302, 1298, 69, 69, + 69, 69, 69, 69, 69, 1307, 1304, 1301, 69, 1309, + 69, 1300, 1303, 69, 69, 1305, 69, 69, 1312, 1311, + 1313, 69, 1314, 69, 69, 1310, 69, 69, 69, 1306, + 1308, 69, 1316, 1317, 69, 69, 1319, 1318, 1321, 1320, - 1320, 69, 69, 69, 69, 1314, 69, 69, 1315, 1325, - 69, 1321, 1319, 1323, 1328, 1324, 69, 69, 1326, 69, - 1322, 1327, 69, 1330, 1332, 69, 69, 69, 69, 1335, - 69, 69, 69, 1329, 1333, 1336, 69, 1334, 69, 69, - 69, 69, 69, 1338, 1339, 69, 69, 1345, 1340, 69, - 69, 1337, 1346, 69, 1342, 1350, 1349, 69, 1348, 69, - 1343, 1344, 69, 1347, 1341, 1352, 69, 1354, 69, 69, - 1355, 1351, 69, 69, 1356, 69, 1360, 1357, 69, 69, - 69, 69, 69, 1361, 69, 1353, 1366, 69, 1363, 69, - 1367, 1358, 1362, 69, 69, 1359, 1929, 1370, 1365, 69, + 69, 69, 1324, 69, 1315, 69, 69, 69, 69, 69, + 69, 1329, 1322, 1323, 69, 1326, 1331, 69, 1333, 1330, + 69, 69, 69, 69, 1332, 1325, 1327, 69, 1328, 1334, + 69, 1336, 1337, 1338, 69, 69, 1342, 69, 1335, 69, + 1344, 69, 69, 1339, 1345, 1340, 1346, 69, 69, 1341, + 69, 1349, 69, 69, 69, 1347, 69, 1348, 69, 69, + 69, 1350, 69, 69, 69, 69, 1352, 1360, 1353, 1359, + 1354, 69, 69, 69, 1351, 1356, 69, 1362, 69, 69, + 1363, 69, 1357, 1358, 69, 1355, 1368, 1364, 69, 1361, + 1365, 1366, 69, 69, 69, 1369, 69, 69, 1374, 1370, - 69, 1364, 69, 69, 1371, 1372, 69, 69, 1368, 1376, - 1377, 69, 1373, 69, 1369, 1374, 69, 69, 1375, 69, - 69, 69, 1378, 69, 1380, 1381, 69, 69, 1379, 69, - 1382, 69, 1385, 1386, 69, 1390, 69, 69, 69, 1384, - 69, 1383, 69, 1389, 1387, 69, 1391, 1392, 69, 1394, - 69, 69, 69, 1396, 1397, 1395, 1388, 1393, 1398, 69, - 1399, 69, 1400, 1401, 69, 1403, 69, 69, 1404, 69, - 1402, 69, 1407, 69, 1409, 69, 1410, 69, 1408, 69, - 69, 1405, 69, 69, 1411, 69, 69, 69, 1414, 1406, - 1417, 69, 69, 69, 69, 69, 1418, 1413, 1420, 69, + 69, 1371, 1372, 69, 69, 1367, 69, 69, 1373, 1375, + 1376, 1380, 69, 69, 1377, 69, 1381, 69, 1384, 1378, + 69, 1379, 69, 69, 1386, 1385, 69, 69, 1382, 69, + 69, 1390, 1391, 69, 69, 69, 1388, 1383, 1387, 1389, + 1394, 69, 1393, 1392, 69, 69, 1395, 69, 69, 69, + 69, 69, 69, 69, 69, 1400, 1401, 1396, 1405, 69, + 69, 69, 1404, 1399, 69, 1397, 1398, 1402, 1409, 1406, + 1407, 69, 69, 1408, 1411, 1412, 1403, 1410, 69, 1413, + 69, 69, 1416, 69, 69, 69, 1414, 1418, 69, 69, + 1419, 69, 69, 1417, 1422, 69, 69, 1420, 69, 69, - 69, 1416, 1419, 1412, 1415, 69, 69, 69, 69, 1429, - 69, 69, 69, 69, 1422, 1430, 1448, 69, 69, 1427, - 1421, 1929, 1423, 69, 1424, 1425, 1426, 1432, 69, 1428, - 1431, 1433, 69, 1434, 1435, 69, 1436, 69, 1437, 1439, - 69, 1438, 1440, 69, 1441, 69, 69, 1443, 69, 69, - 1445, 69, 1446, 69, 69, 1449, 69, 69, 1451, 69, - 69, 69, 69, 69, 1454, 1442, 69, 1444, 1453, 69, - 1455, 1457, 69, 1447, 69, 69, 1450, 69, 1452, 1461, - 69, 1459, 1458, 69, 69, 1456, 1466, 69, 1465, 69, - 1468, 69, 69, 1460, 69, 1462, 69, 1470, 1464, 69, + 1423, 1415, 1424, 69, 69, 69, 69, 69, 69, 1421, + 1426, 1429, 1433, 1428, 1432, 69, 69, 1425, 69, 1427, + 69, 69, 1430, 1431, 69, 1435, 69, 69, 69, 69, + 69, 1434, 69, 1445, 69, 69, 69, 1450, 1446, 69, + 1437, 69, 1443, 1438, 1436, 69, 69, 1441, 1955, 1439, + 1442, 1440, 1447, 1444, 69, 1448, 1451, 69, 1449, 1452, + 69, 1453, 1455, 69, 1456, 69, 69, 1454, 1457, 69, + 1459, 69, 69, 1461, 69, 1462, 69, 69, 69, 1465, + 69, 69, 69, 1464, 69, 1458, 1467, 69, 1469, 69, + 1460, 69, 1470, 69, 1471, 69, 1463, 1473, 69, 69, - 1463, 69, 69, 1471, 69, 69, 1473, 69, 1467, 69, - 69, 1472, 1477, 69, 69, 1482, 69, 1475, 1469, 1479, - 69, 69, 1480, 69, 1478, 1483, 1476, 1474, 1481, 69, - 1486, 69, 1485, 1487, 69, 1488, 1484, 69, 69, 69, - 69, 69, 69, 1489, 1495, 1496, 69, 69, 1493, 1499, - 69, 1490, 1492, 1491, 1494, 1500, 69, 69, 69, 1498, - 69, 1502, 69, 69, 69, 1506, 1497, 69, 69, 69, - 1503, 1501, 1507, 69, 69, 69, 1504, 1508, 1509, 69, - 1510, 69, 1505, 1512, 69, 1513, 1516, 1511, 69, 1515, - 69, 69, 69, 1514, 1517, 1520, 69, 1519, 69, 69, + 1466, 69, 1468, 1477, 69, 69, 69, 69, 69, 1472, + 1474, 1481, 1482, 69, 1475, 1478, 1484, 69, 69, 69, + 1476, 1480, 69, 1486, 69, 69, 69, 1483, 1479, 69, + 1489, 1488, 69, 1487, 69, 69, 69, 69, 69, 1493, + 1494, 69, 1491, 1499, 1485, 1496, 69, 1497, 69, 69, + 1500, 1490, 1495, 1492, 69, 1498, 69, 1503, 69, 1504, + 69, 69, 1505, 1502, 69, 69, 69, 69, 69, 1501, + 1506, 1512, 69, 69, 1510, 1509, 69, 1513, 1507, 1511, + 1508, 1516, 69, 1517, 69, 1515, 1514, 69, 1519, 69, + 1518, 69, 69, 69, 1523, 69, 69, 69, 69, 1524, - 69, 1522, 69, 1524, 1521, 69, 1518, 1525, 69, 69, - 1528, 69, 1523, 1530, 1527, 1529, 69, 69, 69, 69, - 1531, 69, 69, 1526, 69, 69, 69, 1534, 1537, 69, - 69, 69, 1539, 1532, 1929, 1538, 1536, 69, 1542, 69, - 69, 69, 69, 1533, 1535, 1543, 1541, 69, 1540, 1544, - 69, 69, 1547, 69, 1550, 1545, 1546, 1548, 69, 1549, - 69, 69, 69, 69, 69, 69, 1557, 69, 1551, 1555, - 69, 69, 69, 1552, 1553, 1554, 69, 69, 69, 1558, - 69, 69, 1564, 69, 69, 1556, 69, 1565, 69, 1561, - 69, 1568, 1560, 1569, 1563, 1570, 69, 1559, 1571, 69, + 1525, 1520, 1526, 69, 69, 1521, 69, 69, 69, 1527, + 69, 1522, 1531, 69, 1534, 1533, 1528, 69, 1529, 69, + 1530, 69, 69, 1535, 69, 1538, 1537, 1532, 69, 1536, + 69, 69, 1539, 1540, 69, 1542, 1541, 1543, 69, 69, + 1546, 69, 1547, 69, 1545, 1548, 1544, 69, 1549, 69, + 69, 69, 69, 69, 69, 1555, 69, 1552, 69, 1557, + 69, 69, 1560, 69, 69, 1550, 1554, 1556, 69, 69, + 1562, 69, 1553, 1551, 1561, 69, 1559, 69, 1558, 69, + 1564, 1565, 69, 1566, 69, 1563, 1567, 69, 69, 1568, + 69, 1570, 69, 69, 69, 69, 69, 1569, 69, 1574, - 69, 1562, 1566, 69, 1572, 1567, 69, 69, 69, 69, - 1573, 69, 69, 69, 1580, 1581, 69, 1577, 1574, 69, - 1582, 69, 69, 69, 69, 69, 1583, 1576, 1575, 1578, - 1579, 69, 1589, 69, 1590, 69, 1584, 69, 69, 69, - 1585, 1586, 69, 1588, 1593, 69, 69, 1587, 69, 69, - 1594, 1596, 1592, 1591, 69, 1600, 69, 1599, 1595, 69, - 1603, 69, 69, 69, 1601, 1597, 1604, 69, 1598, 1607, - 69, 1606, 69, 1609, 69, 69, 69, 1602, 1605, 1611, - 69, 1612, 69, 69, 1613, 1608, 69, 69, 69, 69, - 69, 69, 1616, 1617, 1610, 1615, 69, 69, 1614, 1619, + 1571, 1576, 69, 69, 1572, 1573, 69, 1577, 69, 69, + 69, 69, 1583, 69, 69, 1575, 69, 69, 1584, 1580, + 69, 1587, 1578, 1579, 1582, 1588, 1589, 69, 1590, 69, + 69, 1585, 1581, 69, 1591, 69, 1586, 1592, 69, 69, + 69, 69, 69, 69, 1599, 1600, 69, 69, 1593, 1596, + 1601, 69, 69, 69, 69, 69, 69, 1594, 1595, 1597, + 1598, 1603, 1609, 69, 1610, 1602, 1604, 69, 69, 69, + 1605, 1606, 1607, 69, 1608, 69, 69, 69, 69, 69, + 1614, 69, 69, 1612, 1619, 1611, 1616, 1620, 69, 69, + 1623, 69, 1613, 69, 69, 69, 1615, 1617, 1624, 1618, - 69, 1621, 1622, 1624, 69, 1620, 1625, 69, 1618, 69, - 1630, 69, 69, 1628, 69, 1623, 1626, 1627, 69, 1629, - 1631, 69, 69, 1633, 69, 69, 69, 69, 69, 1634, - 69, 1635, 69, 1636, 69, 1632, 69, 1639, 1638, 1641, - 69, 69, 1637, 69, 69, 69, 1640, 69, 1646, 69, - 69, 69, 1644, 1645, 1643, 1651, 69, 69, 1642, 1647, - 69, 69, 69, 1929, 1648, 1654, 1655, 69, 1656, 1649, - 1650, 1653, 69, 69, 69, 69, 1652, 1657, 69, 1660, - 69, 69, 1658, 69, 1663, 1664, 69, 1659, 69, 1666, - 69, 69, 1661, 1667, 69, 1662, 1668, 69, 1669, 69, + 1622, 69, 1627, 69, 1621, 1626, 69, 69, 1625, 1629, + 69, 1631, 69, 69, 1630, 1632, 69, 69, 1633, 1628, + 69, 69, 69, 69, 69, 1637, 1635, 1638, 69, 1634, + 1636, 69, 1640, 69, 69, 1955, 1642, 1955, 1643, 1645, + 69, 69, 1639, 1641, 1646, 69, 69, 1649, 1647, 1644, + 69, 1648, 69, 1651, 69, 1650, 1652, 69, 69, 1654, + 69, 69, 69, 69, 69, 1655, 69, 1656, 69, 1657, + 69, 1653, 69, 1660, 1659, 1662, 69, 69, 1658, 69, + 69, 1663, 1661, 69, 69, 69, 1668, 69, 69, 1666, + 69, 69, 1665, 1667, 69, 1664, 1669, 1673, 69, 69, - 1673, 1665, 1670, 69, 69, 69, 1674, 69, 1672, 1671, - 69, 1676, 69, 69, 1675, 1677, 69, 1680, 1679, 69, - 69, 69, 69, 69, 1681, 1684, 69, 1678, 1688, 69, - 1682, 1683, 69, 69, 69, 69, 1692, 69, 1693, 1685, - 1687, 1690, 69, 1686, 69, 69, 69, 69, 69, 1695, - 69, 1689, 1929, 1691, 1701, 69, 1698, 69, 1694, 69, - 1702, 69, 1705, 69, 1703, 1696, 69, 69, 1699, 69, - 1700, 1706, 1697, 1709, 69, 1707, 69, 1710, 69, 1704, - 69, 69, 69, 69, 1708, 1712, 69, 1711, 1716, 1713, - 69, 1717, 69, 1714, 69, 1718, 69, 1719, 69, 1720, + 69, 69, 1670, 1675, 1676, 1677, 69, 1678, 1671, 1672, + 1674, 69, 69, 69, 1681, 69, 1679, 1682, 69, 69, + 1685, 1680, 1686, 69, 69, 69, 1688, 1689, 69, 1683, + 69, 69, 69, 1684, 1690, 1691, 69, 1692, 69, 1693, + 69, 69, 1696, 69, 1687, 1698, 1695, 69, 1694, 1697, + 69, 1699, 69, 69, 1703, 1700, 69, 69, 1702, 69, + 69, 69, 1704, 69, 69, 1707, 1701, 1711, 69, 69, + 1705, 1706, 69, 69, 69, 1715, 69, 1716, 1710, 1708, + 1713, 69, 1717, 1709, 69, 69, 69, 69, 1712, 69, + 1719, 69, 1714, 1955, 69, 1725, 69, 69, 1722, 69, - 1722, 69, 1721, 1723, 1725, 69, 69, 1715, 1729, 69, - 69, 1727, 69, 69, 1731, 69, 1724, 69, 69, 1734, - 69, 69, 69, 69, 69, 1735, 1726, 69, 1728, 69, - 69, 1736, 69, 1733, 1740, 1739, 1732, 1730, 69, 1737, - 1742, 69, 69, 1738, 1744, 69, 1745, 69, 69, 1747, - 69, 1743, 69, 1746, 69, 1751, 1741, 69, 1748, 69, - 1754, 69, 1755, 69, 69, 1749, 69, 69, 1759, 69, - 69, 1750, 69, 1752, 69, 1760, 69, 1761, 1757, 1753, - 69, 69, 1762, 1756, 1764, 1765, 69, 1758, 1767, 69, - 1770, 69, 69, 69, 1763, 1771, 69, 69, 69, 69, + 1718, 69, 1726, 69, 1729, 69, 1720, 69, 1727, 69, + 1731, 1723, 69, 1721, 1724, 1728, 1730, 69, 1736, 1733, + 69, 69, 1732, 1734, 69, 69, 69, 69, 1741, 1737, + 1735, 1740, 69, 1738, 69, 69, 69, 1744, 69, 1743, + 1745, 1742, 1746, 69, 1747, 69, 1749, 69, 1753, 69, + 1739, 69, 1751, 69, 69, 1755, 69, 69, 1748, 69, + 1758, 69, 69, 69, 69, 69, 1750, 1752, 1760, 69, + 69, 69, 1761, 69, 1757, 1759, 1756, 69, 1764, 1754, + 69, 1762, 1765, 1767, 69, 1769, 69, 69, 1763, 1770, + 69, 69, 1768, 1772, 69, 69, 1771, 1766, 69, 1776, - 1776, 69, 1773, 69, 1775, 1766, 1768, 1769, 1777, 69, - 69, 1772, 1774, 1778, 69, 1779, 1780, 69, 69, 1781, - 1782, 69, 69, 1784, 69, 1786, 69, 69, 69, 69, - 1789, 69, 1787, 1785, 69, 69, 1783, 1788, 69, 1790, - 69, 69, 69, 1793, 69, 69, 69, 69, 1791, 1795, - 1929, 69, 1794, 1803, 69, 1792, 1801, 1804, 69, 69, - 1796, 1797, 69, 1798, 1799, 1800, 1805, 1802, 1806, 69, - 69, 1808, 69, 69, 1807, 1811, 69, 1809, 69, 69, - 69, 69, 1815, 1816, 69, 1817, 69, 1810, 69, 1814, - 69, 69, 69, 1812, 69, 1818, 69, 1813, 69, 1825, + 1773, 69, 69, 1779, 69, 1780, 69, 69, 69, 69, + 1774, 1784, 69, 69, 1775, 1777, 1785, 69, 1786, 69, + 1782, 69, 69, 69, 1778, 1789, 1781, 69, 1790, 1783, + 1792, 1787, 69, 1795, 69, 69, 1796, 69, 69, 1798, + 69, 1788, 69, 69, 69, 1955, 1791, 1799, 1801, 1793, + 1794, 1802, 69, 1803, 69, 1804, 69, 1797, 1800, 69, + 1806, 69, 69, 1807, 1805, 1808, 69, 69, 69, 69, + 1812, 69, 69, 69, 69, 1815, 69, 1813, 1811, 69, + 69, 1809, 1814, 69, 1816, 69, 69, 69, 1810, 69, + 1819, 69, 69, 1817, 1821, 1820, 69, 69, 69, 69, - 69, 1822, 69, 1823, 1826, 69, 1820, 1827, 69, 69, - 69, 1824, 69, 1819, 1830, 1821, 1829, 69, 1828, 69, - 1831, 1833, 69, 69, 1835, 1832, 1834, 69, 69, 69, - 69, 1838, 69, 1837, 69, 1841, 69, 69, 69, 69, - 1842, 1836, 69, 69, 69, 69, 69, 69, 1839, 69, - 1840, 69, 1844, 1845, 1853, 69, 1846, 1843, 1847, 69, - 1854, 1849, 1848, 69, 1851, 1855, 69, 1852, 1856, 69, - 69, 1850, 69, 69, 1861, 1857, 69, 1858, 1860, 69, - 1863, 69, 69, 1866, 1859, 1867, 69, 1862, 69, 69, - 69, 1864, 69, 69, 69, 69, 69, 69, 69, 69, + 1818, 1856, 1827, 1829, 69, 1822, 69, 1823, 1840, 1824, + 1825, 1830, 69, 1832, 69, 69, 69, 1826, 1828, 1831, + 1833, 1834, 69, 69, 1835, 1837, 69, 69, 69, 69, + 1841, 1842, 69, 1843, 69, 69, 69, 1836, 69, 69, + 1844, 1955, 1838, 69, 69, 69, 1839, 1861, 1848, 1849, + 1851, 69, 69, 1846, 1852, 69, 1853, 69, 69, 69, + 1847, 1845, 1855, 69, 1850, 69, 1857, 1854, 1859, 69, + 69, 69, 69, 1860, 1858, 69, 69, 1863, 69, 69, + 69, 69, 1867, 69, 1868, 1862, 69, 69, 69, 69, + 69, 69, 1866, 69, 1864, 69, 1865, 1870, 1871, 1872, - 1868, 1865, 1869, 1876, 1877, 69, 1929, 1871, 1873, 1874, - 69, 1870, 69, 1872, 69, 1879, 1875, 1880, 69, 69, - 69, 1884, 69, 1881, 1878, 1882, 69, 1885, 69, 1883, - 69, 1889, 69, 69, 69, 69, 69, 1886, 1887, 1892, - 69, 1888, 69, 69, 1896, 69, 1891, 69, 69, 1899, - 1897, 1890, 69, 1900, 1893, 1895, 69, 69, 69, 1894, - 69, 1901, 1904, 69, 1902, 69, 1898, 1905, 69, 69, - 69, 69, 1906, 69, 1908, 69, 1910, 1903, 1911, 69, - 69, 1914, 69, 69, 69, 1917, 69, 1907, 69, 1909, - 1918, 69, 69, 1919, 1912, 1920, 69, 69, 1913, 1921, + 69, 1869, 1879, 69, 69, 1875, 69, 1873, 1874, 1880, + 1877, 1881, 69, 1878, 1882, 69, 1876, 69, 69, 1887, + 69, 1886, 1883, 1884, 69, 1889, 69, 69, 69, 1885, + 1892, 1893, 69, 69, 1888, 69, 69, 69, 69, 69, + 69, 69, 1890, 69, 69, 69, 1894, 1891, 69, 1902, + 1895, 1955, 1896, 1897, 1899, 69, 1900, 1898, 69, 1901, + 1903, 69, 1905, 1906, 1904, 69, 69, 1909, 1910, 69, + 1907, 1908, 69, 69, 1911, 69, 1912, 69, 1915, 69, + 69, 69, 69, 69, 69, 69, 1918, 69, 69, 1922, + 1923, 1913, 69, 1917, 69, 1925, 1914, 69, 1916, 69, - 69, 1915, 1916, 69, 1922, 69, 1929, 1925, 1923, 1929, - 1924, 1926, 1927, 69, 1928, 69, 41, 41, 41, 41, - 41, 41, 41, 46, 46, 46, 46, 46, 46, 46, - 51, 51, 51, 51, 51, 51, 51, 57, 57, 57, - 57, 57, 57, 57, 62, 62, 62, 62, 62, 62, - 62, 72, 72, 1929, 72, 72, 72, 72, 129, 129, - 1929, 1929, 1929, 129, 129, 131, 131, 1929, 1929, 131, - 1929, 131, 133, 1929, 1929, 1929, 1929, 1929, 133, 136, - 136, 1929, 1929, 1929, 136, 136, 138, 1929, 1929, 1929, - 1929, 1929, 138, 140, 140, 1929, 140, 140, 140, 140, + 1921, 1919, 1927, 1920, 69, 1926, 1928, 69, 1930, 69, + 69, 1924, 69, 69, 69, 69, 69, 1931, 69, 1932, + 1934, 1936, 69, 1937, 69, 69, 1929, 69, 1940, 69, + 69, 1943, 1933, 1935, 1944, 69, 1946, 69, 69, 1947, + 69, 1938, 69, 1939, 1941, 1945, 69, 69, 1942, 1948, + 69, 1949, 1950, 69, 1953, 69, 1954, 69, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1951, + 1955, 1955, 1952, 41, 41, 41, 41, 41, 41, 41, + 46, 46, 46, 46, 46, 46, 46, 51, 51, 51, + 51, 51, 51, 51, 57, 57, 57, 57, 57, 57, - 73, 73, 1929, 73, 73, 73, 73, 13, 1929, 1929, - 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, - 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, - 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, - 1929, 1929, 1929, 1929, 1929, 1929, 1929 + 57, 62, 62, 62, 62, 62, 62, 62, 72, 72, + 1955, 72, 72, 72, 72, 129, 129, 1955, 1955, 1955, + 129, 129, 131, 131, 1955, 1955, 131, 1955, 131, 133, + 1955, 1955, 1955, 1955, 1955, 133, 136, 136, 1955, 1955, + 1955, 136, 136, 138, 1955, 1955, 1955, 1955, 1955, 138, + 140, 140, 1955, 140, 140, 140, 140, 73, 73, 1955, + 73, 73, 73, 73, 13, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + + 1955, 1955, 1955, 1955 } ; -static yyconst flex_int16_t yy_chk[3848] = +static yyconst flex_int16_t yy_chk[3905] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1517,7 +1516,7 @@ static yyconst flex_int16_t yy_chk[3848] = 9, 161, 33, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 45, 45, 7, 8, 8, 8, 8, 10, 8, 21, 33, 161, 21, 21, 8, 11, 11, - 11, 11, 11, 11, 1935, 20, 29, 20, 20, 11, + 11, 11, 11, 11, 1961, 20, 29, 20, 20, 11, 20, 29, 24, 21, 75, 20, 24, 75, 11, 12, 12, 12, 12, 12, 12, 83, 22, 22, 26, 26, @@ -1528,7 +1527,7 @@ static yyconst flex_int16_t yy_chk[3848] = 32, 32, 35, 103, 37, 32, 67, 31, 70, 37, 36, 36, 70, 31, 76, 36, 77, 31, 76, 37, 39, 32, 34, 37, 37, 36, 78, 34, 36, 78, - 84, 34, 38, 38, 39, 38, 77, 34, 711, 39, + 84, 34, 38, 38, 39, 38, 77, 34, 714, 39, 34, 92, 78, 40, 40, 79, 92, 34, 40, 84, 38, 56, 40, 56, 56, 64, 56, 64, 64, 66, @@ -1553,9 +1552,9 @@ static yyconst flex_int16_t yy_chk[3848] = 159, 154, 157, 157, 160, 159, 162, 158, 163, 160, 162, 165, 168, 163, 183, 166, 167, 168, 169, 155, - 156, 183, 171, 169, 156, 562, 165, 166, 172, 156, + 156, 183, 171, 169, 156, 563, 165, 166, 172, 156, 166, 170, 170, 173, 156, 174, 174, 170, 173, 178, - 156, 156, 171, 175, 172, 176, 177, 179, 175, 562, + 156, 156, 171, 175, 172, 176, 177, 179, 175, 563, 176, 170, 179, 180, 175, 177, 181, 182, 180, 184, 178, 181, 182, 185, 186, 187, 188, 189, 190, 185, 192, 187, 184, 191, 193, 189, 195, 194, 191, 198, @@ -1600,337 +1599,344 @@ static yyconst flex_int16_t yy_chk[3848] = 352, 350, 345, 348, 349, 348, 355, 354, 356, 360, 361, 355, 359, 356, 357, 361, 359, 358, 362, 363, 367, 365, 368, 366, 360, 369, 370, 368, 369, 371, - 371, 356, 368, 372, 362, 374, 367, 375, 363, 364, - 364, 365, 366, 373, 373, 364, 370, 364, 376, 375, - 374, 377, 378, 380, 379, 364, 381, 382, 372, 379, - 383, 387, 380, 376, 385, 364, 383, 388, 385, 389, - 377, 386, 382, 387, 378, 381, 386, 392, 390, 391, - 391, 394, 389, 393, 395, 388, 390, 395, 393, 392, + 371, 356, 368, 374, 362, 372, 367, 375, 363, 364, + 364, 365, 366, 373, 373, 364, 370, 364, 374, 375, + 377, 376, 378, 380, 379, 364, 381, 382, 364, 379, + 372, 383, 380, 388, 385, 364, 376, 383, 385, 377, + 387, 386, 382, 389, 378, 381, 386, 390, 391, 391, + 392, 388, 387, 393, 394, 390, 389, 395, 393, 396, - 396, 397, 398, 394, 399, 398, 397, 400, 401, 402, - 402, 400, 400, 403, 403, 396, 408, 404, 405, 405, - 399, 401, 404, 399, 406, 406, 407, 409, 410, 411, - 412, 407, 409, 411, 413, 412, 414, 408, 413, 415, - 416, 414, 418, 417, 420, 416, 419, 410, 417, 419, - 421, 421, 422, 424, 419, 423, 418, 68, 419, 415, - 423, 425, 420, 426, 431, 427, 425, 424, 427, 428, - 422, 429, 426, 428, 430, 432, 429, 431, 433, 430, - 432, 434, 435, 436, 440, 437, 439, 435, 437, 436, - 441, 439, 442, 434, 433, 428, 438, 442, 443, 438, + 395, 398, 392, 397, 398, 399, 394, 400, 397, 401, + 408, 400, 400, 415, 396, 402, 402, 403, 403, 410, + 404, 399, 401, 68, 399, 404, 405, 405, 406, 406, + 407, 408, 409, 415, 412, 407, 411, 409, 410, 412, + 411, 413, 414, 416, 417, 413, 418, 414, 416, 417, + 419, 420, 422, 419, 421, 421, 423, 424, 419, 425, + 418, 423, 419, 426, 425, 427, 433, 62, 427, 420, + 422, 424, 426, 428, 429, 430, 431, 428, 432, 429, + 430, 434, 433, 432, 437, 435, 436, 437, 438, 431, + 435, 438, 436, 434, 440, 439, 441, 442, 443, 428, - 444, 62, 440, 443, 441, 444, 445, 446, 448, 445, - 447, 449, 446, 450, 447, 447, 451, 452, 450, 456, - 452, 448, 453, 458, 449, 451, 454, 453, 459, 460, - 454, 454, 455, 461, 455, 452, 462, 457, 456, 457, - 462, 458, 463, 464, 465, 466, 459, 467, 460, 468, - 469, 463, 467, 461, 470, 470, 472, 471, 464, 473, - 466, 471, 465, 474, 473, 475, 477, 472, 468, 469, - 476, 478, 480, 477, 479, 481, 478, 480, 482, 474, - 481, 479, 483, 476, 475, 484, 485, 487, 486, 483, - 488, 489, 487, 488, 484, 489, 482, 486, 490, 492, + 439, 444, 442, 443, 445, 448, 444, 445, 446, 449, + 441, 447, 440, 446, 450, 447, 447, 451, 448, 450, + 452, 456, 449, 452, 453, 458, 451, 454, 455, 453, + 455, 454, 454, 457, 459, 457, 460, 461, 452, 463, + 456, 462, 465, 458, 464, 462, 466, 467, 463, 468, + 469, 470, 459, 474, 468, 460, 476, 461, 474, 464, + 465, 473, 467, 471, 471, 466, 475, 472, 477, 469, + 470, 472, 473, 478, 479, 476, 480, 483, 485, 479, + 478, 477, 475, 480, 481, 482, 484, 485, 486, 481, + 482, 487, 488, 484, 490, 483, 489, 488, 490, 489, - 485, 491, 491, 495, 494, 497, 498, 496, 492, 494, - 491, 496, 500, 499, 501, 502, 505, 497, 499, 490, - 500, 508, 512, 495, 498, 511, 513, 518, 512, 519, - 513, 505, 501, 57, 511, 514, 514, 515, 508, 517, - 502, 503, 515, 543, 517, 518, 503, 524, 520, 543, - 503, 520, 522, 503, 519, 521, 521, 523, 523, 522, - 503, 530, 524, 503, 516, 516, 516, 526, 516, 525, - 525, 516, 526, 528, 527, 531, 516, 527, 528, 529, - 530, 529, 516, 516, 532, 533, 534, 534, 536, 535, - 537, 538, 52, 533, 540, 531, 538, 539, 539, 540, + 487, 491, 486, 492, 492, 493, 495, 496, 498, 497, + 499, 495, 492, 497, 493, 501, 500, 502, 503, 506, + 498, 500, 491, 501, 509, 513, 514, 496, 499, 512, + 514, 513, 515, 515, 506, 502, 519, 516, 512, 520, + 518, 509, 516, 503, 504, 518, 525, 521, 523, 504, + 521, 522, 522, 504, 519, 523, 504, 524, 524, 526, + 526, 525, 531, 504, 520, 527, 504, 517, 517, 517, + 527, 517, 528, 529, 517, 528, 532, 537, 529, 517, + 530, 531, 530, 533, 534, 517, 517, 535, 535, 536, + 538, 537, 534, 539, 540, 540, 532, 544, 539, 57, - 541, 546, 536, 532, 535, 541, 542, 544, 537, 542, - 545, 547, 549, 548, 551, 544, 547, 552, 545, 546, - 548, 550, 550, 551, 553, 552, 554, 556, 557, 553, - 558, 549, 559, 558, 560, 560, 556, 557, 561, 563, - 565, 567, 563, 566, 568, 554, 559, 569, 566, 571, - 563, 570, 572, 561, 573, 574, 572, 575, 571, 576, - 579, 565, 567, 580, 568, 51, 575, 578, 578, 569, - 577, 570, 573, 576, 574, 584, 577, 580, 581, 582, - 579, 583, 586, 581, 582, 583, 585, 586, 587, 588, - 588, 589, 590, 591, 584, 590, 589, 592, 585, 593, + 541, 542, 533, 544, 536, 541, 542, 543, 538, 545, + 543, 546, 547, 548, 549, 550, 552, 545, 548, 546, + 553, 549, 551, 551, 554, 552, 555, 557, 553, 554, + 547, 558, 559, 560, 550, 559, 557, 561, 561, 562, + 558, 564, 566, 567, 564, 555, 568, 560, 567, 569, + 570, 571, 564, 572, 562, 573, 574, 575, 1233, 573, + 579, 576, 572, 566, 578, 577, 579, 568, 581, 569, + 576, 571, 570, 582, 574, 1233, 575, 577, 578, 580, + 580, 583, 586, 587, 584, 589, 583, 582, 581, 584, + 585, 588, 590, 590, 585, 587, 588, 591, 593, 594, - 594, 595, 595, 596, 593, 597, 597, 598, 599, 587, - 592, 591, 599, 600, 601, 602, 603, 605, 605, 606, - 594, 596, 598, 606, 608, 607, 609, 46, 610, 602, - 609, 612, 600, 613, 623, 623, 603, 41, 601, 604, - 607, 611, 604, 610, 604, 612, 611, 613, 604, 608, - 604, 615, 614, 616, 617, 604, 614, 618, 616, 617, - 604, 619, 620, 621, 14, 622, 615, 625, 616, 621, - 622, 618, 624, 624, 627, 628, 620, 632, 624, 625, - 624, 626, 619, 629, 629, 630, 626, 628, 627, 631, - 630, 632, 633, 634, 634, 635, 637, 631, 624, 635, + 592, 586, 591, 592, 595, 596, 589, 597, 597, 595, + 598, 600, 594, 599, 599, 601, 593, 602, 603, 601, + 604, 605, 607, 607, 609, 596, 600, 608, 598, 611, + 610, 608, 612, 611, 604, 613, 602, 614, 617, 609, + 613, 605, 603, 606, 615, 616, 606, 612, 606, 616, + 52, 614, 606, 617, 606, 610, 618, 619, 615, 606, + 620, 618, 619, 621, 606, 622, 623, 51, 624, 625, + 625, 618, 623, 624, 620, 627, 628, 630, 629, 622, + 633, 628, 631, 631, 621, 626, 626, 627, 633, 630, + 632, 626, 629, 626, 634, 632, 635, 636, 636, 637, - 638, 637, 639, 638, 640, 641, 643, 642, 645, 644, - 641, 633, 642, 646, 647, 648, 649, 640, 644, 651, - 648, 639, 646, 650, 645, 643, 652, 653, 655, 657, - 656, 669, 653, 647, 669, 652, 649, 650, 658, 651, - 659, 660, 661, 658, 657, 659, 660, 655, 656, 662, - 662, 661, 663, 664, 666, 667, 671, 663, 670, 667, - 667, 668, 668, 672, 673, 668, 664, 675, 674, 676, - 666, 674, 670, 680, 677, 678, 671, 679, 672, 677, - 678, 681, 684, 679, 673, 676, 683, 681, 675, 680, - 682, 682, 686, 685, 687, 683, 685, 688, 689, 690, + 639, 641, 643, 637, 626, 639, 640, 643, 634, 640, + 642, 626, 644, 645, 647, 635, 646, 644, 648, 649, + 641, 650, 651, 642, 653, 646, 650, 648, 654, 652, + 647, 655, 645, 657, 659, 658, 655, 654, 649, 663, + 660, 661, 651, 652, 653, 660, 661, 666, 663, 659, + 662, 668, 657, 658, 665, 662, 664, 664, 669, 665, + 666, 672, 669, 669, 670, 670, 671, 668, 670, 671, + 673, 674, 675, 676, 677, 672, 676, 678, 679, 680, + 682, 681, 683, 679, 680, 685, 674, 681, 683, 686, + 673, 688, 675, 678, 685, 677, 682, 684, 684, 687, - 684, 691, 693, 695, 690, 694, 691, 696, 694, 699, - 686, 689, 701, 687, 695, 702, 697, 688, 698, 696, - 693, 697, 703, 698, 699, 700, 700, 705, 704, 702, - 706, 701, 704, 707, 703, 708, 710, 712, 713, 706, - 13, 714, 715, 716, 717, 705, 723, 715, 716, 717, - 719, 712, 707, 713, 718, 710, 720, 721, 722, 718, - 708, 714, 721, 725, 719, 723, 726, 724, 727, 727, - 720, 729, 728, 722, 724, 730, 731, 733, 725, 732, - 732, 730, 733, 734, 735, 726, 728, 737, 736, 729, - 734, 736, 738, 740, 739, 741, 731, 742, 735, 739, + 689, 690, 687, 691, 696, 692, 693, 686, 694, 688, + 692, 693, 697, 694, 698, 697, 691, 699, 700, 689, + 702, 690, 696, 700, 704, 698, 701, 703, 703, 699, + 705, 701, 707, 706, 708, 702, 707, 709, 710, 711, + 713, 715, 46, 704, 705, 706, 709, 716, 717, 718, + 726, 719, 708, 720, 718, 715, 719, 710, 720, 713, + 721, 722, 716, 723, 711, 721, 724, 725, 717, 726, + 728, 724, 727, 729, 731, 722, 732, 723, 733, 727, + 730, 730, 725, 734, 733, 728, 735, 735, 731, 737, + 736, 738, 729, 740, 732, 736, 737, 739, 741, 742, - 741, 738, 744, 746, 745, 737, 744, 747, 748, 749, - 750, 751, 740, 745, 753, 748, 742, 752, 746, 754, - 753, 749, 747, 755, 756, 758, 759, 761, 760, 750, - 758, 768, 751, 756, 754, 752, 760, 762, 763, 765, - 759, 764, 762, 755, 768, 764, 764, 761, 766, 783, - 763, 767, 767, 783, 769, 770, 771, 771, 765, 772, - 770, 773, 766, 769, 772, 776, 774, 775, 775, 778, - 773, 774, 777, 779, 776, 780, 781, 777, 791, 782, - 780, 781, 787, 778, 782, 785, 785, 786, 790, 786, - 789, 779, 784, 787, 789, 792, 791, 794, 795, 796, + 739, 743, 745, 734, 742, 738, 747, 741, 744, 748, + 747, 740, 749, 744, 750, 751, 752, 753, 748, 754, + 743, 745, 755, 752, 756, 757, 758, 749, 759, 753, + 751, 757, 762, 750, 765, 760, 763, 762, 754, 764, + 766, 758, 756, 755, 760, 766, 767, 764, 759, 769, + 763, 768, 770, 773, 765, 768, 768, 772, 767, 771, + 771, 790, 773, 790, 774, 777, 770, 783, 769, 774, + 772, 775, 775, 776, 777, 778, 779, 779, 776, 780, + 778, 781, 782, 791, 784, 783, 781, 785, 780, 784, + 786, 794, 785, 787, 791, 786, 782, 787, 788, 789, - 799, 784, 797, 790, 792, 800, 784, 796, 784, 793, - 784, 794, 784, 793, 793, 798, 797, 795, 799, 801, - 801, 802, 803, 803, 798, 805, 806, 807, 805, 809, - 800, 806, 808, 808, 810, 810, 802, 811, 812, 812, - 813, 818, 811, 814, 815, 816, 807, 0, 814, 809, - 816, 819, 815, 817, 817, 820, 822, 819, 823, 818, - 813, 822, 820, 823, 824, 825, 826, 827, 828, 824, - 825, 829, 829, 830, 831, 826, 832, 833, 834, 828, - 835, 839, 833, 836, 837, 840, 827, 838, 838, 841, - 844, 842, 834, 830, 831, 836, 842, 847, 834, 832, + 789, 793, 795, 800, 796, 793, 794, 788, 799, 798, + 801, 800, 788, 796, 788, 803, 788, 797, 788, 802, + 795, 797, 797, 798, 801, 804, 806, 799, 802, 805, + 805, 807, 807, 803, 809, 810, 811, 809, 812, 812, + 810, 806, 813, 814, 814, 816, 815, 817, 817, 818, + 804, 815, 819, 820, 821, 811, 823, 819, 41, 821, + 825, 820, 813, 822, 822, 824, 816, 825, 827, 818, + 828, 824, 829, 827, 823, 828, 830, 829, 831, 832, + 833, 830, 834, 834, 835, 836, 837, 831, 838, 841, + 840, 833, 839, 838, 844, 842, 843, 843, 832, 845, - 835, 839, 837, 843, 843, 854, 845, 841, 849, 854, - 840, 845, 850, 844, 848, 852, 847, 849, 848, 848, - 850, 851, 853, 851, 855, 856, 857, 853, 858, 852, - 860, 859, 863, 861, 862, 855, 859, 864, 862, 907, - 865, 868, 866, 867, 856, 872, 858, 876, 860, 0, - 863, 907, 857, 861, 865, 870, 864, 866, 867, 869, - 868, 871, 870, 872, 869, 873, 871, 874, 876, 875, - 885, 877, 878, 879, 873, 875, 877, 878, 879, 880, - 880, 887, 874, 881, 881, 883, 883, 884, 885, 886, - 888, 884, 889, 891, 886, 887, 889, 889, 890, 892, + 846, 841, 847, 849, 835, 836, 839, 847, 852, 837, + 840, 854, 839, 842, 844, 848, 848, 850, 846, 856, + 854, 856, 850, 855, 845, 853, 849, 852, 857, 853, + 853, 855, 858, 860, 859, 861, 862, 858, 859, 863, + 864, 865, 857, 866, 860, 864, 867, 868, 869, 870, + 867, 876, 871, 872, 861, 873, 874, 863, 876, 865, + 878, 870, 862, 866, 875, 868, 871, 869, 872, 875, + 873, 877, 879, 880, 881, 874, 877, 882, 878, 883, + 881, 879, 884, 894, 883, 885, 891, 884, 880, 893, + 885, 886, 886, 887, 887, 889, 889, 890, 882, 897, - 893, 894, 890, 890, 895, 896, 898, 897, 902, 888, - 899, 896, 897, 891, 900, 901, 903, 904, 892, 893, - 905, 905, 902, 895, 0, 898, 910, 894, 906, 899, - 910, 906, 904, 900, 901, 908, 908, 903, 909, 911, - 912, 913, 914, 909, 914, 916, 917, 917, 914, 912, - 918, 920, 911, 919, 913, 918, 921, 919, 922, 924, - 937, 914, 926, 922, 959, 916, 959, 926, 928, 920, - 927, 927, 936, 928, 930, 930, 921, 924, 932, 932, - 934, 935, 935, 934, 938, 937, 939, 936, 940, 941, - 941, 939, 942, 943, 943, 944, 945, 946, 938, 947, + 892, 890, 894, 893, 891, 892, 895, 898, 896, 899, + 895, 895, 896, 896, 900, 901, 902, 904, 903, 897, + 905, 908, 902, 903, 906, 907, 898, 909, 899, 916, + 910, 911, 911, 916, 901, 908, 904, 913, 912, 905, + 900, 912, 922, 906, 907, 910, 914, 914, 909, 913, + 915, 917, 918, 919, 920, 915, 920, 923, 923, 926, + 920, 918, 922, 924, 917, 925, 919, 927, 924, 925, + 928, 930, 939, 920, 932, 928, 944, 926, 934, 932, + 933, 933, 943, 934, 936, 936, 945, 927, 939, 930, + 938, 938, 941, 942, 942, 941, 947, 943, 946, 949, - 948, 946, 951, 940, 0, 948, 954, 945, 950, 950, - 952, 954, 942, 953, 953, 955, 956, 944, 947, 957, - 951, 958, 960, 962, 952, 961, 963, 960, 957, 967, - 961, 963, 965, 966, 966, 955, 956, 970, 968, 971, - 971, 958, 972, 962, 968, 973, 965, 979, 967, 974, - 977, 975, 974, 976, 972, 974, 975, 978, 976, 977, - 980, 970, 978, 980, 981, 973, 983, 974, 984, 981, - 982, 982, 979, 985, 986, 987, 988, 989, 991, 986, - 987, 993, 989, 991, 983, 990, 990, 984, 992, 994, - 995, 996, 997, 985, 999, 998, 1000, 1001, 1002, 988, + 945, 944, 951, 946, 948, 948, 950, 950, 953, 952, + 954, 947, 953, 955, 957, 957, 958, 959, 955, 949, + 952, 960, 960, 961, 951, 962, 963, 964, 961, 954, + 965, 959, 967, 966, 958, 966, 964, 967, 968, 969, + 972, 974, 970, 968, 977, 962, 963, 970, 973, 973, + 965, 975, 978, 978, 972, 979, 980, 975, 986, 969, + 974, 987, 984, 981, 987, 982, 981, 979, 977, 981, + 982, 984, 983, 985, 988, 990, 980, 983, 985, 988, + 991, 981, 992, 986, 989, 989, 993, 994, 996, 995, + 997, 993, 994, 990, 995, 997, 998, 998, 999, 991, - 998, 993, 1006, 996, 995, 997, 992, 1004, 1004, 994, - 1005, 1001, 1008, 1007, 999, 1005, 1000, 1006, 1009, 1002, - 1007, 1008, 1011, 1013, 1008, 1014, 1014, 1015, 1016, 1017, - 1015, 1018, 1019, 1016, 1009, 1020, 1024, 1011, 1022, 1026, - 1018, 1021, 1011, 1022, 1020, 1017, 1025, 1020, 1013, 1027, - 1021, 1019, 1023, 1023, 1028, 1029, 1024, 1026, 1031, 1025, - 1032, 1033, 1033, 1027, 1034, 1035, 1036, 1029, 1039, 0, - 1028, 1036, 1037, 1037, 1035, 1042, 1038, 1041, 1032, 1043, - 1034, 1046, 1041, 1031, 1043, 1038, 1039, 1037, 1038, 1044, - 1045, 1048, 1047, 1042, 1044, 1052, 1045, 1047, 1053, 1049, + 1000, 1001, 992, 999, 1002, 1003, 1007, 1006, 1004, 1005, + 1008, 996, 1006, 1009, 1010, 1012, 1012, 1014, 1000, 1003, + 1004, 1001, 1005, 1013, 1002, 1016, 1007, 1009, 1013, 1015, + 1008, 1017, 1014, 1019, 1016, 1010, 1015, 1016, 1021, 1022, + 1022, 1023, 1025, 1026, 1023, 1024, 1027, 1017, 1019, 1030, + 1024, 1029, 1026, 1019, 1030, 1028, 1031, 1031, 1025, 1032, + 1029, 1033, 1034, 1021, 1028, 1027, 1037, 1028, 1035, 1036, + 1039, 1040, 1041, 1041, 1033, 1042, 1044, 1043, 1037, 1032, + 1034, 1044, 1035, 1045, 1045, 1036, 1043, 1046, 1047, 1040, + 1050, 1042, 1049, 1054, 14, 1039, 1046, 1049, 1045, 1046, - 1054, 1046, 1049, 1052, 1048, 1055, 1057, 1056, 1049, 1058, - 1060, 1053, 1056, 1061, 1062, 1063, 1064, 1061, 1054, 1062, - 1063, 1064, 1057, 1065, 1055, 1066, 1068, 1058, 1069, 1069, - 1060, 1070, 1065, 1071, 1072, 1073, 1074, 1075, 1076, 1077, - 1071, 1068, 1075, 1078, 0, 1070, 1072, 1073, 1066, 1078, - 1076, 1079, 1079, 1080, 1084, 1074, 1080, 1077, 1081, 1081, - 1083, 1085, 1085, 1084, 1086, 1083, 1087, 1089, 1088, 1090, - 1091, 1087, 1092, 1093, 1094, 1091, 1086, 1088, 1097, 1089, - 1096, 1092, 1095, 1095, 1090, 1096, 1098, 1099, 1101, 1094, - 1100, 1100, 1111, 1093, 1092, 1102, 1102, 1103, 1103, 1097, + 1051, 1056, 1052, 1053, 1060, 1051, 1047, 1052, 1050, 1053, + 1055, 1062, 1061, 1054, 1056, 1055, 1057, 1063, 1064, 1057, + 1061, 1065, 1066, 1060, 1062, 1057, 1065, 1067, 1069, 1070, + 1075, 1071, 1077, 1070, 1072, 1063, 1071, 1064, 1066, 1072, + 1074, 1073, 1078, 1078, 1079, 1067, 1073, 1077, 1069, 1074, + 1080, 1081, 1082, 1075, 1083, 1084, 1085, 1080, 1079, 1086, + 1084, 1087, 13, 1081, 1082, 1088, 1088, 1087, 1085, 1089, + 1090, 1090, 1089, 1083, 1092, 1093, 1095, 1086, 1096, 1092, + 1094, 1094, 1097, 1096, 1093, 1098, 1099, 1100, 1095, 1101, + 1102, 1097, 1100, 1103, 1104, 1104, 1106, 1098, 1101, 1105, - 1104, 1105, 1109, 1116, 1104, 1098, 1105, 1099, 1101, 1106, - 1108, 1110, 1106, 1112, 1112, 1108, 1110, 1111, 1113, 1113, - 1109, 1114, 1115, 1116, 1117, 1118, 1114, 1119, 1121, 1122, - 1118, 1123, 1123, 1124, 1115, 1115, 1115, 1125, 1125, 1127, - 1126, 1115, 1121, 1131, 1117, 1128, 1128, 1119, 1129, 1129, - 1122, 1133, 1131, 1132, 1132, 1134, 1135, 1136, 1138, 1124, - 1126, 1127, 1134, 1137, 1137, 1135, 1133, 1141, 1142, 1139, - 1143, 1144, 1141, 1142, 1145, 1146, 1147, 1147, 1144, 1145, - 1146, 1148, 1149, 1136, 1138, 1139, 1148, 1150, 1152, 1151, - 1143, 1149, 1153, 1154, 1155, 1153, 1156, 1156, 1157, 1158, + 1107, 1099, 1108, 1110, 1105, 1109, 1109, 1112, 1103, 0, + 1102, 1101, 1111, 1111, 1113, 1113, 1114, 1106, 1119, 1107, + 1114, 1115, 1108, 1110, 1116, 1118, 1115, 1116, 1112, 1120, + 1118, 1121, 1122, 1122, 1120, 1124, 1119, 1123, 1123, 1125, + 1124, 1126, 1127, 1128, 1129, 1131, 1132, 1134, 1128, 1133, + 1133, 1125, 1125, 1125, 1135, 1135, 1121, 1136, 1125, 1131, + 1137, 1126, 1127, 1141, 1129, 1138, 1138, 1132, 1139, 1139, + 1142, 1142, 1141, 1134, 1143, 1145, 1144, 1136, 1146, 1147, + 1147, 1148, 1137, 1144, 1145, 1149, 1151, 1152, 1153, 1143, + 1154, 1151, 1152, 1155, 1156, 1157, 1157, 1154, 1155, 1156, - 1152, 1159, 1160, 1161, 1172, 1162, 1160, 1150, 1151, 1161, - 1166, 1154, 1164, 1157, 1162, 1167, 1159, 1223, 1158, 1223, - 1155, 1163, 1163, 1164, 1165, 1165, 1173, 1168, 1164, 1167, - 1172, 1166, 1168, 1169, 1169, 1170, 1171, 1174, 1173, 1170, - 1170, 1171, 1174, 1175, 1176, 1177, 1178, 1179, 1176, 1181, - 1180, 1182, 1179, 1184, 1181, 1175, 1184, 1177, 1185, 1185, - 1186, 1186, 1188, 1182, 1187, 1187, 1192, 1189, 1201, 1190, - 1191, 1178, 1180, 1189, 1190, 1192, 1191, 1196, 1194, 1197, - 1196, 1199, 1188, 1194, 1200, 1200, 1202, 1203, 1201, 1204, - 1205, 1197, 1206, 1199, 1205, 1202, 1207, 1206, 1208, 1210, + 1158, 1149, 1159, 1160, 1146, 1158, 1161, 1148, 1153, 1162, + 1163, 1159, 1164, 1163, 1165, 1166, 1166, 1167, 1168, 1169, + 1170, 1162, 1171, 1160, 1170, 1161, 1172, 1176, 1171, 1178, + 1164, 1174, 1167, 0, 1169, 1172, 1177, 1168, 1173, 1173, + 1165, 1179, 1174, 1175, 1175, 1183, 1179, 1174, 1176, 1178, + 1177, 1180, 1180, 1181, 1182, 1184, 1185, 1181, 1181, 1182, + 1186, 1185, 1187, 1188, 1189, 1190, 1187, 1184, 1191, 1192, + 1190, 1183, 1186, 1193, 1192, 1188, 1195, 1196, 1196, 1195, + 1197, 1197, 1198, 1198, 1199, 1193, 1200, 1203, 1201, 1189, + 1191, 1202, 1200, 1201, 1205, 1207, 1203, 1202, 1207, 1205, - 1210, 1207, 1211, 1218, 1212, 1203, 1213, 1219, 1204, 1215, - 1215, 1210, 1208, 1212, 1220, 1213, 1221, 1227, 1218, 1220, - 1211, 1219, 1222, 1222, 1224, 1224, 1229, 1226, 1228, 1228, - 1230, 1231, 1232, 1221, 1226, 1229, 1233, 1227, 1234, 1235, - 1236, 1237, 1239, 1231, 1232, 1241, 1245, 1239, 1233, 1243, - 1240, 1230, 1240, 1242, 1235, 1245, 1243, 1247, 1242, 1249, - 1236, 1237, 1250, 1241, 1234, 1248, 1248, 1250, 1251, 1252, - 1251, 1247, 1253, 1254, 1252, 1255, 1256, 1253, 1257, 1258, - 1259, 1256, 1261, 1257, 1262, 1249, 1263, 1263, 1259, 1264, - 1264, 1254, 1258, 1265, 1266, 1255, 0, 1267, 1262, 1268, + 1208, 1210, 1211, 1211, 1199, 1212, 1213, 1216, 1214, 1215, + 1219, 1216, 1208, 1210, 1217, 1213, 1218, 1221, 1221, 1217, + 1222, 1218, 1223, 1224, 1219, 1212, 1214, 1228, 1215, 1221, + 1230, 1223, 1224, 1226, 1226, 1231, 1232, 1239, 1222, 1234, + 1234, 1232, 1235, 1228, 1235, 1230, 1236, 1236, 1238, 1231, + 1240, 1240, 1241, 1242, 1243, 1238, 1244, 1239, 1245, 1246, + 1247, 1241, 1248, 1249, 1251, 1252, 1243, 1252, 1244, 1251, + 1245, 1253, 1254, 1255, 1242, 1247, 1259, 1254, 1257, 1261, + 1255, 1262, 1248, 1249, 1266, 1246, 1262, 1257, 1267, 1253, + 1259, 1260, 1260, 1263, 1264, 1263, 1265, 1270, 1268, 1264, - 1270, 1261, 1267, 1269, 1268, 1269, 1271, 1272, 1265, 1272, - 1273, 1273, 1270, 1274, 1266, 1271, 1275, 1280, 1271, 1277, - 1278, 1281, 1274, 1282, 1277, 1278, 1284, 1286, 1275, 1287, - 1280, 1288, 1284, 1286, 1289, 1290, 1290, 1291, 1293, 1282, - 1296, 1281, 1299, 1289, 1287, 1294, 1291, 1292, 1292, 1294, - 1295, 1312, 1298, 1296, 1297, 1295, 1288, 1293, 1297, 1297, - 1298, 1303, 1299, 1302, 1302, 1304, 1304, 1305, 1305, 1306, - 1303, 1307, 1308, 1309, 1310, 1310, 1312, 1308, 1309, 1313, - 1314, 1306, 1315, 1316, 1313, 1318, 1317, 1321, 1316, 1307, - 1319, 1319, 1320, 1322, 1323, 1324, 1320, 1315, 1322, 1326, + 1273, 1265, 1266, 1268, 1269, 1261, 1271, 1274, 1267, 1269, + 1270, 1275, 1275, 1277, 1271, 1276, 1276, 1278, 1279, 1273, + 1280, 1274, 1281, 1279, 1281, 1280, 1282, 1283, 1277, 1284, + 1287, 1284, 1285, 1285, 1286, 1289, 1283, 1278, 1282, 1283, + 1289, 1290, 1287, 1286, 1292, 1293, 1290, 1295, 1294, 1297, + 1299, 1301, 1300, 1302, 1306, 1297, 1299, 1292, 1303, 1303, + 1304, 1309, 1302, 1295, 1307, 1293, 1294, 1300, 1307, 1304, + 1305, 1305, 1308, 1306, 1309, 1310, 1301, 1308, 1311, 1310, + 1310, 1312, 1315, 1315, 1316, 1319, 1311, 1317, 1317, 1318, + 1318, 1320, 1325, 1316, 1321, 1322, 1327, 1319, 1328, 1321, - 1327, 1318, 1321, 1314, 1317, 1329, 1328, 1330, 1331, 1333, - 1333, 1353, 1334, 1336, 1324, 1334, 1353, 1335, 1337, 1330, - 1323, 0, 1326, 1341, 1327, 1328, 1329, 1336, 1342, 1331, - 1335, 1337, 1338, 1338, 1339, 1339, 1340, 1340, 1341, 1343, - 1343, 1342, 1344, 1344, 1345, 1345, 1346, 1347, 1347, 1348, - 1349, 1349, 1350, 1350, 1351, 1354, 1354, 1355, 1356, 1356, - 1357, 1359, 1358, 1362, 1359, 1346, 1363, 1348, 1358, 1360, - 1360, 1361, 1361, 1351, 1364, 1367, 1355, 1368, 1357, 1365, - 1365, 1363, 1362, 1369, 1370, 1360, 1371, 1371, 1370, 1372, - 1373, 1373, 1374, 1364, 1376, 1367, 1375, 1375, 1369, 1378, + 1322, 1312, 1323, 1323, 1330, 1326, 1329, 1331, 1333, 1320, + 1326, 1329, 1333, 1328, 1332, 1332, 1334, 1325, 1336, 1327, + 1335, 1337, 1330, 1331, 1339, 1335, 1340, 1341, 1342, 1343, + 1344, 1334, 1345, 1347, 1347, 1348, 1352, 1352, 1348, 1349, + 1337, 1350, 1344, 1339, 1336, 1351, 1355, 1342, 0, 1340, + 1343, 1341, 1349, 1345, 1356, 1350, 1353, 1353, 1351, 1354, + 1354, 1355, 1357, 1357, 1358, 1358, 1360, 1356, 1359, 1359, + 1361, 1361, 1362, 1363, 1363, 1364, 1364, 1365, 1367, 1368, + 1368, 1369, 1372, 1367, 1371, 1360, 1370, 1370, 1372, 1373, + 1362, 1376, 1373, 1374, 1374, 1381, 1365, 1375, 1375, 1377, - 1368, 1379, 1380, 1376, 1381, 1382, 1379, 1383, 1372, 1384, - 1385, 1378, 1383, 1386, 1387, 1388, 1391, 1381, 1374, 1385, - 1388, 1389, 1386, 1393, 1384, 1389, 1382, 1380, 1387, 1394, - 1394, 1397, 1393, 1395, 1396, 1396, 1391, 1399, 1395, 1400, - 1405, 1404, 1402, 1396, 1404, 1405, 1406, 1407, 1400, 1408, - 1408, 1397, 1399, 1397, 1402, 1410, 1410, 1411, 1413, 1407, - 1412, 1412, 1414, 1415, 1416, 1416, 1406, 1422, 1418, 1423, - 1413, 1411, 1418, 1425, 1419, 1421, 1414, 1419, 1420, 1420, - 1421, 1424, 1415, 1423, 1426, 1424, 1427, 1422, 1428, 1426, - 1430, 1427, 1431, 1425, 1428, 1432, 1433, 1431, 1437, 1434, + 1369, 1378, 1371, 1379, 1379, 1382, 1383, 1384, 1386, 1374, + 1376, 1384, 1385, 1385, 1377, 1381, 1387, 1387, 1388, 1392, + 1378, 1383, 1389, 1389, 1390, 1393, 1394, 1386, 1382, 1395, + 1393, 1392, 1396, 1390, 1397, 1398, 1400, 1399, 1401, 1397, + 1398, 1402, 1395, 1403, 1388, 1400, 1404, 1401, 1403, 1406, + 1404, 1394, 1399, 1396, 1408, 1402, 1409, 1409, 1412, 1410, + 1414, 1411, 1411, 1408, 1410, 1415, 1421, 1417, 1419, 1406, + 1411, 1419, 1420, 1422, 1415, 1414, 1426, 1420, 1412, 1417, + 1412, 1423, 1423, 1425, 1425, 1422, 1421, 1427, 1427, 1428, + 1426, 1429, 1430, 1431, 1431, 1433, 1437, 1434, 1438, 1433, - 1432, 1434, 1438, 1438, 1433, 1444, 1430, 1442, 1442, 1447, - 1448, 1448, 1437, 1452, 1447, 1450, 1450, 1454, 1452, 1453, - 1453, 1455, 1456, 1444, 1459, 1458, 1462, 1456, 1460, 1460, - 1464, 1465, 1463, 1454, 0, 1462, 1459, 1463, 1467, 1467, - 1469, 1471, 1476, 1455, 1458, 1469, 1465, 1470, 1464, 1470, - 1477, 1472, 1473, 1473, 1476, 1471, 1472, 1474, 1474, 1475, - 1475, 1478, 1479, 1480, 1481, 1482, 1483, 1483, 1477, 1481, - 1484, 1485, 1486, 1478, 1479, 1480, 1487, 1488, 1491, 1484, - 1489, 1490, 1490, 1493, 1492, 1482, 1494, 1491, 1495, 1487, - 1501, 1494, 1486, 1495, 1489, 1496, 1496, 1485, 1497, 1497, + 1434, 1428, 1435, 1435, 1436, 1429, 1439, 1441, 1440, 1436, + 1442, 1430, 1440, 1446, 1443, 1442, 1437, 1444, 1438, 1443, + 1439, 1447, 1453, 1444, 1449, 1448, 1447, 1441, 1460, 1446, + 1448, 1450, 1449, 1450, 1454, 1454, 1453, 1458, 1458, 1463, + 1464, 1464, 1466, 1466, 1463, 1468, 1460, 1469, 1469, 1470, + 1468, 1471, 1472, 1474, 1475, 1476, 1476, 1472, 1478, 1479, + 1480, 1481, 1483, 1483, 1479, 1470, 1475, 1478, 1486, 1485, + 1486, 1487, 1474, 1471, 1485, 1488, 1481, 1492, 1480, 1493, + 1488, 1489, 1489, 1490, 1490, 1487, 1491, 1491, 1495, 1492, + 1494, 1494, 1496, 1497, 1498, 1499, 1502, 1493, 1501, 1498, - 1502, 1488, 1492, 1498, 1498, 1493, 1503, 1504, 1505, 1506, - 1501, 1511, 1507, 1508, 1508, 1510, 1510, 1505, 1502, 1512, - 1511, 1513, 1514, 1515, 1517, 1522, 1512, 1504, 1503, 1506, - 1507, 1516, 1518, 1518, 1519, 1520, 1513, 1521, 1524, 1519, - 1514, 1515, 1526, 1517, 1522, 1523, 1527, 1516, 1530, 1533, - 1523, 1526, 1521, 1520, 1531, 1532, 1532, 1531, 1524, 1534, - 1535, 1535, 1536, 1538, 1533, 1527, 1536, 1539, 1530, 1540, - 1540, 1539, 1541, 1543, 1543, 1544, 1551, 1534, 1538, 1545, - 1545, 1546, 1546, 1550, 1550, 1541, 1552, 1553, 1554, 1555, - 1558, 1556, 1553, 1554, 1544, 1552, 1559, 1560, 1551, 1556, + 1495, 1500, 1500, 1503, 1496, 1497, 1504, 1501, 1505, 1508, + 1506, 1507, 1507, 1509, 1510, 1499, 1511, 1518, 1508, 1504, + 1512, 1511, 1502, 1503, 1506, 1512, 1513, 1513, 1514, 1514, + 1519, 1509, 1505, 1515, 1515, 1520, 1510, 1518, 1521, 1523, + 1522, 1528, 1524, 1525, 1525, 1527, 1527, 1529, 1519, 1522, + 1528, 1531, 1532, 1533, 1530, 1535, 1534, 1520, 1521, 1523, + 1524, 1530, 1536, 1536, 1537, 1529, 1531, 1538, 1539, 1537, + 1532, 1533, 1534, 1540, 1535, 1541, 1542, 1544, 1545, 1548, + 1541, 1549, 1552, 1539, 1549, 1538, 1544, 1550, 1550, 1551, + 1553, 1553, 1540, 1556, 1554, 1562, 1542, 1545, 1554, 1548, - 1561, 1559, 1560, 1562, 1562, 1558, 1563, 1563, 1555, 1564, - 1568, 1568, 1565, 1566, 1567, 1561, 1564, 1565, 1566, 1567, - 1569, 1569, 1572, 1573, 1576, 1574, 1575, 1577, 1573, 1574, - 1578, 1575, 1579, 1576, 1580, 1572, 1582, 1579, 1578, 1582, - 1583, 1584, 1577, 1585, 1586, 1590, 1580, 1587, 1587, 1591, - 1588, 1592, 1585, 1586, 1584, 1593, 1593, 1594, 1583, 1588, - 1598, 1596, 1595, 0, 1590, 1596, 1597, 1597, 1598, 1591, - 1592, 1595, 1599, 1601, 1602, 1604, 1594, 1599, 1605, 1604, - 1606, 1613, 1601, 1608, 1608, 1610, 1610, 1602, 1614, 1614, - 1615, 1619, 1605, 1615, 1620, 1606, 1616, 1616, 1617, 1617, + 1552, 1557, 1558, 1558, 1551, 1557, 1559, 1569, 1556, 1561, + 1561, 1563, 1563, 1570, 1562, 1564, 1564, 1568, 1568, 1559, + 1572, 1571, 1573, 1574, 1575, 1572, 1570, 1573, 1577, 1569, + 1571, 1578, 1575, 1579, 1580, 0, 1578, 0, 1579, 1581, + 1581, 1583, 1574, 1577, 1582, 1582, 1584, 1585, 1583, 1580, + 1586, 1584, 1585, 1587, 1587, 1586, 1588, 1588, 1591, 1592, + 1595, 1593, 1594, 1596, 1592, 1593, 1597, 1594, 1598, 1595, + 1599, 1591, 1601, 1598, 1597, 1601, 1602, 1603, 1596, 1604, + 1605, 1602, 1599, 1610, 1606, 1607, 1607, 1608, 1611, 1605, + 1612, 1614, 1604, 1606, 1615, 1603, 1608, 1613, 1613, 1618, - 1621, 1613, 1618, 1618, 1627, 1621, 1622, 1622, 1620, 1619, - 1623, 1626, 1628, 1633, 1623, 1626, 1626, 1629, 1628, 1632, - 1634, 1635, 1629, 1636, 1632, 1634, 1637, 1627, 1638, 1638, - 1633, 1633, 1639, 1640, 1641, 1642, 1642, 1643, 1643, 1635, - 1637, 1640, 1644, 1636, 1645, 1646, 1647, 1648, 1649, 1645, - 1650, 1639, 0, 1641, 1652, 1652, 1648, 1653, 1644, 1654, - 1653, 1656, 1657, 1657, 1654, 1646, 1659, 1658, 1649, 1660, - 1650, 1658, 1647, 1661, 1662, 1659, 1663, 1661, 1661, 1656, - 1665, 1666, 1667, 1671, 1660, 1663, 1673, 1662, 1671, 1665, - 1672, 1672, 1675, 1666, 1679, 1673, 1680, 1675, 1676, 1676, + 1616, 1622, 1610, 1615, 1616, 1617, 1617, 1618, 1611, 1612, + 1614, 1619, 1621, 1624, 1622, 1625, 1619, 1624, 1626, 1628, + 1628, 1621, 1630, 1630, 1633, 1634, 1634, 1635, 1635, 1625, + 1640, 1636, 1641, 1626, 1636, 1637, 1637, 1638, 1638, 1639, + 1639, 1644, 1642, 1648, 1633, 1644, 1641, 1642, 1640, 1643, + 1643, 1647, 1649, 1654, 1650, 1647, 1647, 1653, 1649, 1650, + 1655, 1656, 1653, 1657, 1658, 1655, 1648, 1659, 1659, 1660, + 1654, 1654, 1661, 1662, 1663, 1663, 1664, 1664, 1658, 1656, + 1661, 1665, 1665, 1657, 1666, 1667, 1668, 1669, 1660, 1670, + 1667, 1671, 1662, 0, 1672, 1674, 1674, 1678, 1670, 1675, - 1678, 1678, 1676, 1679, 1681, 1682, 1683, 1667, 1685, 1681, - 1684, 1683, 1686, 1685, 1687, 1687, 1680, 1689, 1690, 1691, - 1691, 1692, 1693, 1694, 1695, 1692, 1682, 1696, 1684, 1697, - 1698, 1693, 1700, 1690, 1697, 1696, 1689, 1686, 1707, 1694, - 1699, 1699, 1708, 1695, 1702, 1702, 1703, 1703, 1704, 1706, - 1706, 1700, 1709, 1704, 1711, 1711, 1698, 1713, 1707, 1712, - 1714, 1714, 1715, 1715, 1716, 1708, 1717, 1718, 1719, 1719, - 1723, 1709, 1720, 1712, 1724, 1720, 1721, 1721, 1717, 1713, - 1726, 1725, 1723, 1716, 1725, 1726, 1727, 1718, 1728, 1729, - 1730, 1730, 1733, 1728, 1724, 1732, 1732, 1735, 1736, 1737, + 1666, 1681, 1675, 1676, 1679, 1679, 1668, 1682, 1676, 1685, + 1681, 1671, 1680, 1669, 1672, 1678, 1680, 1684, 1685, 1683, + 1687, 1688, 1682, 1683, 1683, 1690, 1694, 1695, 1695, 1687, + 1684, 1694, 1696, 1688, 1698, 1702, 1699, 1699, 1703, 1698, + 1699, 1696, 1701, 1701, 1702, 1705, 1704, 1706, 1708, 1707, + 1690, 1704, 1706, 1708, 1709, 1710, 1710, 1712, 1703, 1713, + 1714, 1714, 1715, 1717, 1716, 1718, 1705, 1707, 1716, 1719, + 1720, 1722, 1717, 1724, 1713, 1715, 1712, 1721, 1720, 1709, + 1731, 1718, 1721, 1723, 1723, 1726, 1726, 1732, 1719, 1727, + 1727, 1728, 1724, 1730, 1730, 1733, 1728, 1722, 1735, 1735, - 1738, 1738, 1735, 1750, 1737, 1727, 1729, 1729, 1739, 1739, - 1741, 1733, 1736, 1740, 1740, 1741, 1743, 1743, 1746, 1746, - 1748, 1748, 1749, 1750, 1751, 1752, 1752, 1753, 1760, 1756, - 1757, 1757, 1753, 1751, 1758, 1761, 1749, 1756, 1762, 1758, - 1763, 1764, 1765, 1762, 1768, 1766, 1767, 1772, 1760, 1764, - 0, 1769, 1763, 1773, 1773, 1761, 1769, 1774, 1774, 1784, - 1765, 1766, 1775, 1767, 1767, 1768, 1775, 1772, 1779, 1779, - 1781, 1783, 1783, 1785, 1781, 1787, 1787, 1784, 1788, 1790, - 1791, 1792, 1792, 1793, 1793, 1794, 1794, 1785, 1796, 1791, - 1795, 1797, 1801, 1788, 1798, 1795, 1799, 1790, 1800, 1802, + 1731, 1736, 1737, 1738, 1738, 1739, 1739, 1740, 1741, 1742, + 1732, 1743, 1743, 1744, 1733, 1736, 1744, 1745, 1745, 1747, + 1741, 1748, 1749, 1750, 1737, 1749, 1740, 1751, 1750, 1742, + 1752, 1747, 1753, 1754, 1754, 1752, 1756, 1756, 1757, 1759, + 1759, 1748, 1760, 1762, 1761, 0, 1751, 1760, 1762, 1753, + 1753, 1763, 1763, 1764, 1764, 1765, 1765, 1757, 1761, 1766, + 1768, 1768, 1771, 1771, 1766, 1773, 1773, 1774, 1775, 1776, + 1777, 1777, 1778, 1785, 1781, 1782, 1782, 1778, 1776, 1783, + 1786, 1774, 1781, 1788, 1783, 1787, 1789, 1790, 1775, 1838, + 1787, 1791, 1792, 1785, 1789, 1788, 1793, 1794, 1797, 1817, - 1802, 1799, 1812, 1800, 1805, 1805, 1797, 1807, 1807, 1809, - 1814, 1801, 1822, 1796, 1812, 1798, 1810, 1810, 1809, 1813, - 1813, 1815, 1815, 1818, 1819, 1814, 1818, 1820, 1821, 1819, - 1823, 1822, 1828, 1821, 1824, 1828, 1830, 1831, 1832, 1836, - 1830, 1820, 1834, 1835, 1837, 1838, 1839, 1841, 1823, 1840, - 1824, 1843, 1832, 1834, 1842, 1842, 1835, 1831, 1836, 1848, - 1843, 1838, 1837, 1849, 1840, 1844, 1844, 1841, 1845, 1845, - 1846, 1839, 1847, 1851, 1850, 1846, 1854, 1847, 1849, 1850, - 1852, 1852, 1857, 1858, 1848, 1859, 1860, 1851, 1858, 1861, - 1859, 1854, 1862, 1864, 1865, 1866, 1867, 1868, 1869, 1870, + 1786, 1838, 1794, 1799, 1799, 1790, 1810, 1791, 1817, 1792, + 1792, 1800, 1800, 1805, 1805, 1801, 1807, 1793, 1797, 1801, + 1807, 1809, 1809, 1811, 1810, 1813, 1813, 1814, 1816, 1818, + 1818, 1819, 1819, 1820, 1820, 1821, 1822, 1811, 1823, 1824, + 1821, 0, 1814, 1825, 1826, 1827, 1816, 1845, 1825, 1826, + 1828, 1828, 1845, 1823, 1831, 1831, 1833, 1833, 1835, 1840, + 1824, 1822, 1836, 1836, 1827, 1839, 1839, 1835, 1841, 1841, + 1844, 1846, 1847, 1844, 1840, 1848, 1850, 1847, 1849, 1854, + 1856, 1857, 1854, 1858, 1856, 1846, 1861, 1860, 1862, 1864, + 1863, 1865, 1850, 1867, 1848, 1866, 1849, 1858, 1860, 1861, - 1860, 1857, 1861, 1869, 1870, 1871, 0, 1864, 1866, 1867, - 1876, 1862, 1873, 1865, 1872, 1872, 1868, 1873, 1874, 1880, - 1875, 1877, 1881, 1874, 1871, 1875, 1877, 1878, 1878, 1876, - 1879, 1882, 1883, 1884, 1886, 1887, 1882, 1879, 1880, 1886, - 1888, 1881, 1889, 1890, 1890, 1891, 1884, 1892, 1893, 1893, - 1891, 1883, 1894, 1894, 1887, 1889, 1895, 1896, 1897, 1888, - 1899, 1895, 1898, 1898, 1896, 1900, 1892, 1899, 1901, 1902, - 1903, 1905, 1900, 1906, 1902, 1907, 1905, 1897, 1906, 1908, - 1909, 1909, 1910, 1911, 1912, 1912, 1914, 1901, 1923, 1903, - 1913, 1913, 1924, 1914, 1907, 1915, 1915, 1917, 1908, 1916, + 1869, 1857, 1868, 1868, 1874, 1864, 1875, 1862, 1863, 1869, + 1866, 1870, 1870, 1867, 1871, 1871, 1865, 1872, 1873, 1876, + 1877, 1875, 1872, 1873, 1876, 1878, 1878, 1880, 1883, 1874, + 1884, 1885, 1886, 1888, 1877, 1884, 1885, 1887, 1891, 1890, + 1894, 1892, 1880, 1893, 1895, 1897, 1886, 1883, 1902, 1895, + 1887, 0, 1888, 1890, 1892, 1896, 1893, 1891, 1899, 1894, + 1896, 1898, 1898, 1899, 1897, 1900, 1901, 1902, 1903, 1905, + 1900, 1901, 1906, 1903, 1904, 1904, 1905, 1907, 1908, 1909, + 1910, 1912, 1913, 1908, 1914, 1917, 1912, 1915, 1916, 1916, + 1917, 1906, 1918, 1910, 1919, 1919, 1907, 1921, 1909, 1922, - 1916, 1910, 1911, 1919, 1917, 1922, 0, 1923, 1919, 0, - 1922, 1924, 1925, 1925, 1926, 1926, 1930, 1930, 1930, 1930, - 1930, 1930, 1930, 1931, 1931, 1931, 1931, 1931, 1931, 1931, - 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1933, 1933, 1933, - 1933, 1933, 1933, 1933, 1934, 1934, 1934, 1934, 1934, 1934, - 1934, 1936, 1936, 0, 1936, 1936, 1936, 1936, 1937, 1937, - 0, 0, 0, 1937, 1937, 1938, 1938, 0, 0, 1938, - 0, 1938, 1939, 0, 0, 0, 0, 0, 1939, 1940, - 1940, 0, 0, 0, 1940, 1940, 1941, 0, 0, 0, - 0, 0, 1941, 1942, 1942, 0, 1942, 1942, 1942, 1942, + 1915, 1913, 1921, 1914, 1920, 1920, 1922, 1923, 1924, 1924, + 1925, 1918, 1926, 1927, 1929, 1928, 1931, 1925, 1932, 1926, + 1928, 1931, 1933, 1932, 1934, 1936, 1923, 1935, 1935, 1937, + 1938, 1938, 1927, 1929, 1939, 1939, 1941, 1941, 1940, 1942, + 1942, 1933, 1943, 1934, 1936, 1940, 1945, 1948, 1937, 1943, + 1949, 1945, 1948, 1950, 1951, 1951, 1952, 1952, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1949, + 0, 0, 1950, 1956, 1956, 1956, 1956, 1956, 1956, 1956, + 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1958, 1958, 1958, + 1958, 1958, 1958, 1958, 1959, 1959, 1959, 1959, 1959, 1959, - 1943, 1943, 0, 1943, 1943, 1943, 1943, 1929, 1929, 1929, - 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, - 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, - 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, - 1929, 1929, 1929, 1929, 1929, 1929, 1929 + 1959, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1962, 1962, + 0, 1962, 1962, 1962, 1962, 1963, 1963, 0, 0, 0, + 1963, 1963, 1964, 1964, 0, 0, 1964, 0, 1964, 1965, + 0, 0, 0, 0, 0, 1965, 1966, 1966, 0, 0, + 0, 1966, 1966, 1967, 0, 0, 0, 0, 0, 1967, + 1968, 1968, 0, 1968, 1968, 1968, 1968, 1969, 1969, 0, + 1969, 1969, 1969, 1969, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + + 1955, 1955, 1955, 1955 } ; static yy_state_type yy_last_accepting_state; @@ -2141,7 +2147,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 2143 "" +#line 2149 "" #define INITIAL 0 #define quotedstring 1 @@ -2185,7 +2191,7 @@ FILE *yyget_out (void ); void yyset_out (FILE * _out_str ); -yy_size_t yyget_leng (void ); + int yyget_leng (void ); char *yyget_text (void ); @@ -2242,7 +2248,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -2266,7 +2272,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -2364,7 +2370,7 @@ YY_DECL { #line 207 "./util/configlexer.lex" -#line 2366 "" +#line 2372 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2397,13 +2403,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 >= 1930 ) + if ( yy_current_state >= 1956 ) yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 3808 ); + while ( yy_base[yy_current_state] != 3865 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2833,515 +2839,525 @@ YY_RULE_SETUP case 81: YY_RULE_SETUP #line 291 "./util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 82: YY_RULE_SETUP #line 292 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 83: YY_RULE_SETUP #line 293 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 84: YY_RULE_SETUP #line 294 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_FIRST) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 85: YY_RULE_SETUP #line 295 "./util/configlexer.lex" -{ YDVAR(0, VAR_VIEW) } +{ YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 86: YY_RULE_SETUP #line 296 "./util/configlexer.lex" -{ YDVAR(1, VAR_VIEW_FIRST) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 87: YY_RULE_SETUP #line 297 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(0, VAR_VIEW) } YY_BREAK case 88: YY_RULE_SETUP #line 298 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(1, VAR_VIEW_FIRST) } YY_BREAK case 89: YY_RULE_SETUP #line 299 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 90: YY_RULE_SETUP #line 300 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 91: YY_RULE_SETUP #line 301 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 92: YY_RULE_SETUP #line 302 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 93: YY_RULE_SETUP #line 303 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 94: YY_RULE_SETUP #line 304 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 95: YY_RULE_SETUP #line 305 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 96: YY_RULE_SETUP #line 306 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 97: YY_RULE_SETUP #line 307 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 98: YY_RULE_SETUP #line 308 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 99: YY_RULE_SETUP #line 309 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 100: YY_RULE_SETUP #line 310 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 101: YY_RULE_SETUP #line 311 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 102: YY_RULE_SETUP #line 312 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 103: YY_RULE_SETUP #line 313 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 104: YY_RULE_SETUP #line 314 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 105: YY_RULE_SETUP #line 315 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 106: YY_RULE_SETUP #line 316 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 107: YY_RULE_SETUP #line 317 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 108: YY_RULE_SETUP #line 318 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 109: YY_RULE_SETUP #line 319 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 110: YY_RULE_SETUP #line 320 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 111: YY_RULE_SETUP #line 321 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 112: YY_RULE_SETUP #line 322 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 113: YY_RULE_SETUP #line 323 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 114: YY_RULE_SETUP #line 324 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 115: YY_RULE_SETUP -#line 326 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 325 "./util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 116: YY_RULE_SETUP -#line 327 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +#line 326 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 117: YY_RULE_SETUP #line 328 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 118: YY_RULE_SETUP #line 329 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 119: YY_RULE_SETUP #line 330 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 120: YY_RULE_SETUP #line 331 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 121: YY_RULE_SETUP #line 332 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 122: YY_RULE_SETUP #line 333 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 123: YY_RULE_SETUP #line 334 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 124: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 125: YY_RULE_SETUP #line 336 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 126: YY_RULE_SETUP #line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 127: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 128: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 129: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 130: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 131: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 132: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 133: YY_RULE_SETUP #line 344 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 134: YY_RULE_SETUP #line 345 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 135: YY_RULE_SETUP #line 346 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 136: YY_RULE_SETUP #line 347 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 137: YY_RULE_SETUP #line 348 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 138: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 139: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 140: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 141: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 142: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 143: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 144: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 145: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 146: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 147: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 148: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 149: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 150: YY_RULE_SETUP #line 361 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 151: YY_RULE_SETUP #line 362 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 152: YY_RULE_SETUP #line 363 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 153: YY_RULE_SETUP #line 364 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 154: YY_RULE_SETUP #line 365 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 155: YY_RULE_SETUP #line 366 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 156: YY_RULE_SETUP #line 367 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 157: YY_RULE_SETUP #line 368 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 158: YY_RULE_SETUP #line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 159: YY_RULE_SETUP #line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 160: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 161: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 162: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 163: YY_RULE_SETUP -#line 375 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } +#line 374 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 164: YY_RULE_SETUP -#line 377 "./util/configlexer.lex" +#line 375 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 165: YY_RULE_SETUP -#line 379 "./util/configlexer.lex" +#line 377 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 166: YY_RULE_SETUP -#line 381 "./util/configlexer.lex" +#line 379 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 167: YY_RULE_SETUP -#line 383 "./util/configlexer.lex" +#line 381 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 168: YY_RULE_SETUP -#line 385 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 383 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 169: YY_RULE_SETUP -#line 386 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +#line 385 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 170: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 171: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 172: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 173: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 174: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 175: -/* rule 175 can match eol */ YY_RULE_SETUP #line 392 "./util/configlexer.lex" +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } + YY_BREAK +case 176: +YY_RULE_SETUP +#line 393 "./util/configlexer.lex" +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } + YY_BREAK +case 177: +/* rule 177 can match eol */ +YY_RULE_SETUP +#line 394 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 176: +case 178: YY_RULE_SETUP -#line 395 "./util/configlexer.lex" +#line 397 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 396 "./util/configlexer.lex" +#line 398 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 177: +case 179: YY_RULE_SETUP -#line 401 "./util/configlexer.lex" +#line 403 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 178: -/* rule 178 can match eol */ +case 180: +/* rule 180 can match eol */ YY_RULE_SETUP -#line 402 "./util/configlexer.lex" +#line 404 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 179: +case 181: YY_RULE_SETUP -#line 404 "./util/configlexer.lex" +#line 406 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3354,34 +3370,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 180: +case 182: YY_RULE_SETUP -#line 416 "./util/configlexer.lex" +#line 418 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 417 "./util/configlexer.lex" +#line 419 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 181: +case 183: YY_RULE_SETUP -#line 422 "./util/configlexer.lex" +#line 424 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 182: -/* rule 182 can match eol */ +case 184: +/* rule 184 can match eol */ YY_RULE_SETUP -#line 423 "./util/configlexer.lex" +#line 425 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 183: +case 185: YY_RULE_SETUP -#line 425 "./util/configlexer.lex" +#line 427 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3394,38 +3410,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 184: +case 186: YY_RULE_SETUP -#line 437 "./util/configlexer.lex" +#line 439 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 439 "./util/configlexer.lex" +#line 441 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 185: -YY_RULE_SETUP -#line 443 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK -case 186: -/* rule 186 can match eol */ -YY_RULE_SETUP -#line 444 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} - YY_BREAK case 187: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 188: +/* rule 188 can match eol */ YY_RULE_SETUP #line 446 "./util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++;} + YY_BREAK +case 189: +YY_RULE_SETUP +#line 447 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 190: +YY_RULE_SETUP +#line 448 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -3433,27 +3449,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 451 "./util/configlexer.lex" +#line 453 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 189: +case 191: YY_RULE_SETUP -#line 455 "./util/configlexer.lex" +#line 457 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 190: -/* rule 190 can match eol */ +case 192: +/* rule 192 can match eol */ YY_RULE_SETUP -#line 456 "./util/configlexer.lex" +#line 458 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 191: +case 193: YY_RULE_SETUP -#line 458 "./util/configlexer.lex" +#line 460 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -3463,7 +3479,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 464 "./util/configlexer.lex" +#line 466 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -3475,33 +3491,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 192: +case 194: YY_RULE_SETUP -#line 475 "./util/configlexer.lex" +#line 477 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 193: +case 195: YY_RULE_SETUP -#line 479 "./util/configlexer.lex" +#line 481 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 194: +case 196: YY_RULE_SETUP -#line 483 "./util/configlexer.lex" +#line 485 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 195: +case 197: YY_RULE_SETUP -#line 487 "./util/configlexer.lex" +#line 489 "./util/configlexer.lex" ECHO; YY_BREAK -#line 3503 "" +#line 3519 "" case YY_END_OF_BUFFER: { @@ -3700,7 +3716,7 @@ static int yy_get_next_buffer (void) if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -3713,7 +3729,7 @@ static int yy_get_next_buffer (void) } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -3755,9 +3771,9 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); @@ -3792,10 +3808,10 @@ 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 >= 1930 ) + if ( yy_current_state >= 1956 ) yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; } return yy_current_state; @@ -3820,11 +3836,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 >= 1930 ) + if ( yy_current_state >= 1956 ) 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 == 1929); + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_is_jam = (yy_current_state == 1955); return yy_is_jam ? 0 : yy_current_state; } @@ -3857,7 +3873,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -3881,7 +3897,7 @@ static int yy_get_next_buffer (void) case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) - return EOF; + return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -4129,7 +4145,7 @@ void yypop_buffer_state (void) */ static void yyensure_buffer_stack (void) { - yy_size_t num_to_alloc; + int num_to_alloc; if (!(yy_buffer_stack)) { @@ -4137,15 +4153,15 @@ static void yyensure_buffer_stack (void) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; // After all that talk, this was set to 1 anyways... + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -4174,7 +4190,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -4184,7 +4200,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) @@ -4193,7 +4209,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; @@ -4216,7 +4232,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) { - return yy_scan_bytes(yystr,strlen(yystr) ); + return yy_scan_bytes(yystr,(int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will @@ -4226,7 +4242,7 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -4234,7 +4250,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; + n = (yy_size_t) _yybytes_len + 2; buf = (char *) yyalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -4260,7 +4276,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (yyconst char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); @@ -4290,7 +4306,7 @@ static void yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -4313,7 +4329,7 @@ FILE *yyget_out (void) /** Get the length of the current token. * */ -yy_size_t yyget_leng (void) +int yyget_leng (void) { return yyleng; } @@ -4369,10 +4385,10 @@ static int yy_init_globals (void) * This function is called from yylex_destroy(), so don't allocate here. */ - (yy_buffer_stack) = 0; + (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; + (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; @@ -4381,8 +4397,8 @@ static int yy_init_globals (void) yyin = stdin; yyout = stdout; #else - yyin = (FILE *) 0; - yyout = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by @@ -4440,7 +4456,7 @@ static int yy_flex_strlen (yyconst char * s ) void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) @@ -4453,7 +4469,7 @@ void *yyrealloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } void yyfree (void * ptr ) @@ -4463,7 +4479,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 487 "./util/configlexer.lex" +#line 489 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 074ccf5a7..a42f3adfe 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -288,10 +288,12 @@ stub-addr{COLON} { YDVAR(1, VAR_STUB_ADDR) } stub-host{COLON} { YDVAR(1, VAR_STUB_HOST) } stub-prime{COLON} { YDVAR(1, VAR_STUB_PRIME) } stub-first{COLON} { YDVAR(1, VAR_STUB_FIRST) } +stub-ssl-upstream{COLON} { YDVAR(1, VAR_STUB_SSL_UPSTREAM) } forward-zone{COLON} { YDVAR(0, VAR_FORWARD_ZONE) } forward-addr{COLON} { YDVAR(1, VAR_FORWARD_ADDR) } forward-host{COLON} { YDVAR(1, VAR_FORWARD_HOST) } forward-first{COLON} { YDVAR(1, VAR_FORWARD_FIRST) } +forward-ssl-upstream{COLON} { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } view{COLON} { YDVAR(0, VAR_VIEW) } view-first{COLON} { YDVAR(1, VAR_VIEW_FIRST) } do-not-query-address{COLON} { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } diff --git a/util/configparser.c b/util/configparser.c index 588db9b41..163467fd5 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -253,56 +253,58 @@ extern int yydebug; VAR_SSL_SERVICE_PEM = 384, VAR_SSL_PORT = 385, VAR_FORWARD_FIRST = 386, - VAR_STUB_FIRST = 387, - VAR_MINIMAL_RESPONSES = 388, - VAR_RRSET_ROUNDROBIN = 389, - VAR_MAX_UDP_SIZE = 390, - VAR_DELAY_CLOSE = 391, - VAR_UNBLOCK_LAN_ZONES = 392, - VAR_INSECURE_LAN_ZONES = 393, - VAR_INFRA_CACHE_MIN_RTT = 394, - VAR_DNS64_PREFIX = 395, - VAR_DNS64_SYNTHALL = 396, - VAR_DNSTAP = 397, - VAR_DNSTAP_ENABLE = 398, - VAR_DNSTAP_SOCKET_PATH = 399, - VAR_DNSTAP_SEND_IDENTITY = 400, - VAR_DNSTAP_SEND_VERSION = 401, - VAR_DNSTAP_IDENTITY = 402, - VAR_DNSTAP_VERSION = 403, - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 404, - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 405, - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 406, - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 407, - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 408, - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 409, - VAR_HARDEN_ALGO_DOWNGRADE = 410, - VAR_IP_TRANSPARENT = 411, - VAR_DISABLE_DNSSEC_LAME_CHECK = 412, - VAR_RATELIMIT = 413, - VAR_RATELIMIT_SLABS = 414, - VAR_RATELIMIT_SIZE = 415, - VAR_RATELIMIT_FOR_DOMAIN = 416, - VAR_RATELIMIT_BELOW_DOMAIN = 417, - VAR_RATELIMIT_FACTOR = 418, - VAR_CAPS_WHITELIST = 419, - VAR_CACHE_MAX_NEGATIVE_TTL = 420, - VAR_PERMIT_SMALL_HOLDDOWN = 421, - VAR_QNAME_MINIMISATION = 422, - VAR_QNAME_MINIMISATION_STRICT = 423, - VAR_IP_FREEBIND = 424, - VAR_DEFINE_TAG = 425, - VAR_LOCAL_ZONE_TAG = 426, - VAR_ACCESS_CONTROL_TAG = 427, - VAR_LOCAL_ZONE_OVERRIDE = 428, - VAR_ACCESS_CONTROL_TAG_ACTION = 429, - VAR_ACCESS_CONTROL_TAG_DATA = 430, - VAR_VIEW = 431, - VAR_ACCESS_CONTROL_VIEW = 432, - VAR_VIEW_FIRST = 433, - VAR_SERVE_EXPIRED = 434, - VAR_FAKE_DSA = 435, - VAR_LOG_IDENTITY = 436 + VAR_STUB_SSL_UPSTREAM = 387, + VAR_FORWARD_SSL_UPSTREAM = 388, + VAR_STUB_FIRST = 389, + VAR_MINIMAL_RESPONSES = 390, + VAR_RRSET_ROUNDROBIN = 391, + VAR_MAX_UDP_SIZE = 392, + VAR_DELAY_CLOSE = 393, + VAR_UNBLOCK_LAN_ZONES = 394, + VAR_INSECURE_LAN_ZONES = 395, + VAR_INFRA_CACHE_MIN_RTT = 396, + VAR_DNS64_PREFIX = 397, + VAR_DNS64_SYNTHALL = 398, + VAR_DNSTAP = 399, + VAR_DNSTAP_ENABLE = 400, + VAR_DNSTAP_SOCKET_PATH = 401, + VAR_DNSTAP_SEND_IDENTITY = 402, + VAR_DNSTAP_SEND_VERSION = 403, + VAR_DNSTAP_IDENTITY = 404, + VAR_DNSTAP_VERSION = 405, + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 406, + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 407, + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 408, + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 409, + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 410, + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 411, + VAR_HARDEN_ALGO_DOWNGRADE = 412, + VAR_IP_TRANSPARENT = 413, + VAR_DISABLE_DNSSEC_LAME_CHECK = 414, + VAR_RATELIMIT = 415, + VAR_RATELIMIT_SLABS = 416, + VAR_RATELIMIT_SIZE = 417, + VAR_RATELIMIT_FOR_DOMAIN = 418, + VAR_RATELIMIT_BELOW_DOMAIN = 419, + VAR_RATELIMIT_FACTOR = 420, + VAR_CAPS_WHITELIST = 421, + VAR_CACHE_MAX_NEGATIVE_TTL = 422, + VAR_PERMIT_SMALL_HOLDDOWN = 423, + VAR_QNAME_MINIMISATION = 424, + VAR_QNAME_MINIMISATION_STRICT = 425, + VAR_IP_FREEBIND = 426, + VAR_DEFINE_TAG = 427, + VAR_LOCAL_ZONE_TAG = 428, + VAR_ACCESS_CONTROL_TAG = 429, + VAR_LOCAL_ZONE_OVERRIDE = 430, + VAR_ACCESS_CONTROL_TAG_ACTION = 431, + VAR_ACCESS_CONTROL_TAG_DATA = 432, + VAR_VIEW = 433, + VAR_ACCESS_CONTROL_VIEW = 434, + VAR_VIEW_FIRST = 435, + VAR_SERVE_EXPIRED = 436, + VAR_FAKE_DSA = 437, + VAR_LOG_IDENTITY = 438 }; #endif /* Tokens. */ @@ -435,56 +437,58 @@ extern int yydebug; #define VAR_SSL_SERVICE_PEM 384 #define VAR_SSL_PORT 385 #define VAR_FORWARD_FIRST 386 -#define VAR_STUB_FIRST 387 -#define VAR_MINIMAL_RESPONSES 388 -#define VAR_RRSET_ROUNDROBIN 389 -#define VAR_MAX_UDP_SIZE 390 -#define VAR_DELAY_CLOSE 391 -#define VAR_UNBLOCK_LAN_ZONES 392 -#define VAR_INSECURE_LAN_ZONES 393 -#define VAR_INFRA_CACHE_MIN_RTT 394 -#define VAR_DNS64_PREFIX 395 -#define VAR_DNS64_SYNTHALL 396 -#define VAR_DNSTAP 397 -#define VAR_DNSTAP_ENABLE 398 -#define VAR_DNSTAP_SOCKET_PATH 399 -#define VAR_DNSTAP_SEND_IDENTITY 400 -#define VAR_DNSTAP_SEND_VERSION 401 -#define VAR_DNSTAP_IDENTITY 402 -#define VAR_DNSTAP_VERSION 403 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 404 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 405 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 406 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 407 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 408 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 409 -#define VAR_HARDEN_ALGO_DOWNGRADE 410 -#define VAR_IP_TRANSPARENT 411 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 412 -#define VAR_RATELIMIT 413 -#define VAR_RATELIMIT_SLABS 414 -#define VAR_RATELIMIT_SIZE 415 -#define VAR_RATELIMIT_FOR_DOMAIN 416 -#define VAR_RATELIMIT_BELOW_DOMAIN 417 -#define VAR_RATELIMIT_FACTOR 418 -#define VAR_CAPS_WHITELIST 419 -#define VAR_CACHE_MAX_NEGATIVE_TTL 420 -#define VAR_PERMIT_SMALL_HOLDDOWN 421 -#define VAR_QNAME_MINIMISATION 422 -#define VAR_QNAME_MINIMISATION_STRICT 423 -#define VAR_IP_FREEBIND 424 -#define VAR_DEFINE_TAG 425 -#define VAR_LOCAL_ZONE_TAG 426 -#define VAR_ACCESS_CONTROL_TAG 427 -#define VAR_LOCAL_ZONE_OVERRIDE 428 -#define VAR_ACCESS_CONTROL_TAG_ACTION 429 -#define VAR_ACCESS_CONTROL_TAG_DATA 430 -#define VAR_VIEW 431 -#define VAR_ACCESS_CONTROL_VIEW 432 -#define VAR_VIEW_FIRST 433 -#define VAR_SERVE_EXPIRED 434 -#define VAR_FAKE_DSA 435 -#define VAR_LOG_IDENTITY 436 +#define VAR_STUB_SSL_UPSTREAM 387 +#define VAR_FORWARD_SSL_UPSTREAM 388 +#define VAR_STUB_FIRST 389 +#define VAR_MINIMAL_RESPONSES 390 +#define VAR_RRSET_ROUNDROBIN 391 +#define VAR_MAX_UDP_SIZE 392 +#define VAR_DELAY_CLOSE 393 +#define VAR_UNBLOCK_LAN_ZONES 394 +#define VAR_INSECURE_LAN_ZONES 395 +#define VAR_INFRA_CACHE_MIN_RTT 396 +#define VAR_DNS64_PREFIX 397 +#define VAR_DNS64_SYNTHALL 398 +#define VAR_DNSTAP 399 +#define VAR_DNSTAP_ENABLE 400 +#define VAR_DNSTAP_SOCKET_PATH 401 +#define VAR_DNSTAP_SEND_IDENTITY 402 +#define VAR_DNSTAP_SEND_VERSION 403 +#define VAR_DNSTAP_IDENTITY 404 +#define VAR_DNSTAP_VERSION 405 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 406 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 407 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 408 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 409 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 410 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 411 +#define VAR_HARDEN_ALGO_DOWNGRADE 412 +#define VAR_IP_TRANSPARENT 413 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 414 +#define VAR_RATELIMIT 415 +#define VAR_RATELIMIT_SLABS 416 +#define VAR_RATELIMIT_SIZE 417 +#define VAR_RATELIMIT_FOR_DOMAIN 418 +#define VAR_RATELIMIT_BELOW_DOMAIN 419 +#define VAR_RATELIMIT_FACTOR 420 +#define VAR_CAPS_WHITELIST 421 +#define VAR_CACHE_MAX_NEGATIVE_TTL 422 +#define VAR_PERMIT_SMALL_HOLDDOWN 423 +#define VAR_QNAME_MINIMISATION 424 +#define VAR_QNAME_MINIMISATION_STRICT 425 +#define VAR_IP_FREEBIND 426 +#define VAR_DEFINE_TAG 427 +#define VAR_LOCAL_ZONE_TAG 428 +#define VAR_ACCESS_CONTROL_TAG 429 +#define VAR_LOCAL_ZONE_OVERRIDE 430 +#define VAR_ACCESS_CONTROL_TAG_ACTION 431 +#define VAR_ACCESS_CONTROL_TAG_DATA 432 +#define VAR_VIEW 433 +#define VAR_ACCESS_CONTROL_VIEW 434 +#define VAR_VIEW_FIRST 435 +#define VAR_SERVE_EXPIRED 436 +#define VAR_FAKE_DSA 437 +#define VAR_LOG_IDENTITY 438 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -495,7 +499,7 @@ union YYSTYPE char* str; -#line 499 "util/configparser.c" /* yacc.c:355 */ +#line 503 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -512,7 +516,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 516 "util/configparser.c" /* yacc.c:358 */ +#line 520 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -754,21 +758,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 359 +#define YYLAST 363 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 182 +#define YYNTOKENS 184 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 192 +#define YYNNTS 194 /* YYNRULES -- Number of rules. */ -#define YYNRULES 367 +#define YYNRULES 371 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 550 +#define YYNSTATES 556 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 436 +#define YYMAXUTOK 438 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -820,50 +824,51 @@ static const yytype_uint8 yytranslate[] = 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 + 175, 176, 177, 178, 179, 180, 181, 182, 183 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 136, 136, 136, 137, 137, 138, 138, 139, 139, - 139, 144, 149, 150, 151, 151, 151, 152, 152, 153, - 153, 154, 154, 155, 155, 156, 156, 156, 157, 157, - 157, 158, 158, 159, 159, 160, 160, 161, 161, 162, - 162, 163, 163, 164, 164, 165, 165, 166, 166, 166, - 167, 167, 167, 168, 168, 168, 169, 169, 170, 170, - 171, 171, 172, 172, 173, 173, 173, 174, 174, 175, - 175, 176, 176, 176, 177, 177, 178, 178, 179, 179, - 180, 180, 180, 181, 181, 182, 182, 183, 183, 184, - 184, 185, 185, 186, 186, 186, 187, 187, 188, 188, - 188, 189, 189, 189, 190, 190, 190, 191, 191, 191, - 192, 192, 192, 193, 193, 193, 194, 194, 195, 195, - 196, 196, 197, 197, 198, 198, 198, 199, 199, 200, - 200, 201, 201, 202, 202, 203, 203, 203, 204, 204, - 205, 205, 206, 206, 207, 207, 208, 208, 210, 222, - 223, 224, 224, 224, 224, 224, 226, 238, 239, 240, - 240, 240, 240, 242, 256, 257, 258, 258, 258, 258, - 260, 269, 278, 289, 298, 307, 316, 329, 344, 353, - 362, 371, 380, 389, 398, 407, 416, 425, 434, 443, - 452, 461, 470, 479, 486, 493, 502, 511, 525, 534, - 543, 550, 557, 581, 589, 596, 603, 610, 617, 625, - 633, 641, 648, 655, 664, 673, 680, 687, 695, 703, - 713, 723, 733, 746, 757, 765, 778, 787, 796, 805, - 815, 825, 833, 846, 855, 863, 872, 880, 893, 902, - 909, 919, 929, 939, 949, 959, 969, 979, 989, 996, - 1003, 1010, 1019, 1028, 1037, 1044, 1054, 1071, 1078, 1096, - 1109, 1122, 1131, 1140, 1149, 1158, 1168, 1178, 1187, 1196, - 1207, 1216, 1223, 1232, 1241, 1250, 1259, 1267, 1280, 1288, - 1316, 1323, 1338, 1348, 1358, 1365, 1372, 1381, 1395, 1414, - 1433, 1445, 1457, 1469, 1480, 1489, 1497, 1510, 1523, 1536, - 1545, 1555, 1565, 1575, 1582, 1589, 1598, 1608, 1618, 1625, - 1632, 1641, 1651, 1680, 1689, 1698, 1703, 1704, 1705, 1705, - 1705, 1706, 1706, 1706, 1707, 1707, 1709, 1719, 1728, 1735, - 1745, 1752, 1759, 1766, 1773, 1778, 1779, 1780, 1780, 1781, - 1781, 1782, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1790, - 1798, 1805, 1813, 1821, 1828, 1835, 1844, 1853, 1862, 1871, - 1880, 1889, 1894, 1895, 1896, 1898, 1904, 1914 + 0, 137, 137, 137, 138, 138, 139, 139, 140, 140, + 140, 145, 150, 151, 152, 152, 152, 153, 153, 154, + 154, 155, 155, 156, 156, 157, 157, 157, 158, 158, + 158, 159, 159, 160, 160, 161, 161, 162, 162, 163, + 163, 164, 164, 165, 165, 166, 166, 167, 167, 167, + 168, 168, 168, 169, 169, 169, 170, 170, 171, 171, + 172, 172, 173, 173, 174, 174, 174, 175, 175, 176, + 176, 177, 177, 177, 178, 178, 179, 179, 180, 180, + 181, 181, 181, 182, 182, 183, 183, 184, 184, 185, + 185, 186, 186, 187, 187, 187, 188, 188, 189, 189, + 189, 190, 190, 190, 191, 191, 191, 192, 192, 192, + 193, 193, 193, 194, 194, 194, 195, 195, 196, 196, + 197, 197, 198, 198, 199, 199, 199, 200, 200, 201, + 201, 202, 202, 203, 203, 204, 204, 204, 205, 205, + 206, 206, 207, 207, 208, 208, 209, 209, 211, 223, + 224, 225, 225, 225, 225, 225, 226, 228, 240, 241, + 242, 242, 242, 242, 243, 245, 259, 260, 261, 261, + 261, 261, 263, 272, 281, 292, 301, 310, 319, 332, + 347, 356, 365, 374, 383, 392, 401, 410, 419, 428, + 437, 446, 455, 464, 473, 482, 489, 496, 505, 514, + 528, 537, 546, 553, 560, 584, 592, 599, 606, 613, + 620, 628, 636, 644, 651, 658, 667, 676, 683, 690, + 698, 706, 716, 726, 736, 749, 760, 768, 781, 790, + 799, 808, 818, 828, 836, 849, 858, 866, 875, 883, + 896, 905, 912, 922, 932, 942, 952, 962, 972, 982, + 992, 999, 1006, 1013, 1022, 1031, 1040, 1047, 1057, 1074, + 1081, 1099, 1112, 1125, 1134, 1143, 1152, 1161, 1171, 1181, + 1190, 1199, 1210, 1219, 1226, 1235, 1244, 1253, 1262, 1270, + 1283, 1291, 1319, 1326, 1341, 1351, 1361, 1368, 1375, 1384, + 1398, 1417, 1436, 1448, 1460, 1472, 1483, 1492, 1500, 1513, + 1526, 1539, 1548, 1558, 1568, 1578, 1585, 1592, 1601, 1611, + 1621, 1631, 1638, 1645, 1654, 1664, 1674, 1703, 1712, 1721, + 1726, 1727, 1728, 1728, 1728, 1729, 1729, 1729, 1730, 1730, + 1732, 1742, 1751, 1758, 1768, 1775, 1782, 1789, 1796, 1801, + 1802, 1803, 1803, 1804, 1804, 1805, 1805, 1806, 1807, 1808, + 1809, 1810, 1811, 1813, 1821, 1828, 1836, 1844, 1851, 1858, + 1867, 1876, 1885, 1894, 1903, 1912, 1917, 1918, 1919, 1921, + 1927, 1937 }; #endif @@ -913,12 +918,13 @@ static const char *const yytname[] = "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES", "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM", "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "VAR_FORWARD_FIRST", - "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES", "VAR_RRSET_ROUNDROBIN", - "VAR_MAX_UDP_SIZE", "VAR_DELAY_CLOSE", "VAR_UNBLOCK_LAN_ZONES", - "VAR_INSECURE_LAN_ZONES", "VAR_INFRA_CACHE_MIN_RTT", "VAR_DNS64_PREFIX", - "VAR_DNS64_SYNTHALL", "VAR_DNSTAP", "VAR_DNSTAP_ENABLE", - "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_SEND_IDENTITY", - "VAR_DNSTAP_SEND_VERSION", "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION", + "VAR_STUB_SSL_UPSTREAM", "VAR_FORWARD_SSL_UPSTREAM", "VAR_STUB_FIRST", + "VAR_MINIMAL_RESPONSES", "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", + "VAR_DELAY_CLOSE", "VAR_UNBLOCK_LAN_ZONES", "VAR_INSECURE_LAN_ZONES", + "VAR_INFRA_CACHE_MIN_RTT", "VAR_DNS64_PREFIX", "VAR_DNS64_SYNTHALL", + "VAR_DNSTAP", "VAR_DNSTAP_ENABLE", "VAR_DNSTAP_SOCKET_PATH", + "VAR_DNSTAP_SEND_IDENTITY", "VAR_DNSTAP_SEND_VERSION", + "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION", "VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES", "VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES", "VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES", @@ -996,8 +1002,9 @@ static const char *const yytname[] = "server_ratelimit_for_domain", "server_ratelimit_below_domain", "server_ratelimit_factor", "server_qname_minimisation", "server_qname_minimisation_strict", "stub_name", "stub_host", - "stub_addr", "stub_first", "stub_prime", "forward_name", "forward_host", - "forward_addr", "forward_first", "view_name", "view_local_zone", + "stub_addr", "stub_first", "stub_ssl_upstream", "stub_prime", + "forward_name", "forward_host", "forward_addr", "forward_first", + "forward_ssl_upstream", "view_name", "view_local_zone", "view_local_data", "view_first", "rcstart", "contents_rc", "content_rc", "rc_control_enable", "rc_control_port", "rc_control_interface", "rc_control_use_cert", "rc_server_key_file", "rc_server_cert_file", @@ -1039,14 +1046,14 @@ static const yytype_uint16 yytoknum[] = 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436 + 435, 436, 437, 438 }; # endif -#define YYPACT_NINF -128 +#define YYPACT_NINF -130 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-128))) + (!!((Yystate) == (-130))) #define YYTABLE_NINF -1 @@ -1057,61 +1064,62 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -128, 0, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, 133, -38, - -34, -39, -64, -127, -105, -3, -2, -1, 2, 3, + -130, 0, -130, -130, -130, -130, -130, -130, -130, -130, + -130, -130, -130, -130, -130, -130, -130, -130, 135, -38, + -34, -39, -64, -129, -105, -3, -2, -1, 2, 3, 26, 29, 30, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 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, - 82, 83, 85, 86, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 130, 131, 134, 163, 164, 165, - 170, 171, 172, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 226, 230, 231, 254, 255, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, 277, 299, 301, 305, 306, -128, - -128, -128, -128, -128, -128, 307, 308, 309, 310, -128, - -128, -128, -128, -128, 311, 312, 313, 314, -128, -128, - -128, -128, -128, 315, 316, 317, 318, 319, 320, 321, - 322, -128, -128, -128, -128, -128, -128, -128, -128, -128, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, 335, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, 336, 337, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, 338, 339, -128, -128, -128, -128, -128, - -128, -128, -128, 340, 341, 342, 343, 344, 345, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, 346, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, 347, 348, 349, -128, -128, -128, -128, -128 + 82, 83, 85, 88, 90, 91, 92, 93, 94, 95, + 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 132, 133, 136, 165, 166, 167, + 172, 173, 174, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 228, 232, 233, 256, 257, 258, 259, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, -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, -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, 279, 280, 281, 303, 305, 309, + -130, -130, -130, -130, -130, -130, -130, 310, 311, 312, + 313, 314, -130, -130, -130, -130, -130, -130, 315, 316, + 317, 318, -130, -130, -130, -130, -130, 319, 320, 321, + 322, 323, 324, 325, 326, -130, -130, -130, -130, -130, + -130, -130, -130, -130, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, -130, -130, -130, -130, + -130, -130, -130, -130, -130, -130, -130, -130, -130, 339, + -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, 340, 341, + -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, 342, 343, -130, + -130, -130, -130, -130, -130, -130, -130, 344, 345, 346, + 347, 348, 349, -130, -130, -130, -130, -130, -130, -130, + -130, -130, -130, -130, -130, -130, -130, -130, 350, -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, 351, 352, + 353, -130, -130, -130, -130, -130 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1119,8 +1127,8 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 11, 148, 156, 315, 361, 334, 163, - 3, 13, 150, 158, 165, 317, 336, 363, 4, 5, + 2, 0, 1, 11, 148, 157, 319, 365, 338, 165, + 3, 13, 150, 159, 167, 321, 340, 367, 4, 5, 6, 10, 8, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1148,64 +1156,65 @@ static const yytype_uint16 yydefact[] = 95, 63, 97, 98, 99, 133, 60, 61, 82, 71, 72, 87, 113, 114, 115, 120, 121, 136, 137, 139, 141, 142, 140, 143, 125, 127, 126, 128, 129, 130, - 134, 144, 138, 147, 0, 0, 0, 0, 0, 149, - 151, 152, 153, 155, 154, 0, 0, 0, 0, 157, - 159, 160, 161, 162, 0, 0, 0, 0, 164, 166, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 316, 318, 320, 319, 325, 321, 322, 323, 324, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 335, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 0, 362, 364, 171, 170, - 175, 178, 176, 184, 185, 188, 186, 187, 189, 190, - 200, 201, 202, 203, 204, 224, 225, 226, 231, 232, - 181, 233, 234, 237, 235, 236, 239, 240, 241, 254, - 213, 214, 215, 216, 242, 257, 209, 211, 258, 264, - 265, 266, 182, 223, 276, 277, 210, 271, 197, 177, - 205, 255, 261, 243, 0, 0, 280, 183, 172, 196, - 247, 173, 179, 180, 206, 207, 278, 245, 249, 250, - 174, 281, 227, 253, 198, 212, 259, 260, 263, 270, - 208, 274, 272, 273, 217, 222, 251, 252, 218, 219, - 244, 267, 199, 191, 192, 193, 194, 195, 282, 283, - 284, 228, 229, 230, 238, 285, 286, 246, 220, 366, - 294, 296, 295, 0, 0, 299, 248, 262, 275, 300, - 301, 221, 287, 0, 0, 0, 0, 0, 0, 268, - 269, 367, 302, 303, 304, 306, 305, 307, 308, 309, - 310, 311, 0, 313, 314, 326, 328, 327, 330, 331, - 332, 333, 329, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 365, 256, 279, 297, 298, - 288, 289, 0, 0, 0, 293, 312, 292, 290, 291 + 134, 144, 138, 147, 0, 0, 0, 0, 0, 0, + 149, 151, 152, 153, 155, 156, 154, 0, 0, 0, + 0, 0, 158, 160, 161, 162, 163, 164, 0, 0, + 0, 0, 166, 168, 169, 170, 171, 0, 0, 0, + 0, 0, 0, 0, 0, 320, 322, 324, 323, 329, + 325, 326, 327, 328, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 339, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 0, + 366, 368, 173, 172, 177, 180, 178, 186, 187, 190, + 188, 189, 191, 192, 202, 203, 204, 205, 206, 226, + 227, 228, 233, 234, 183, 235, 236, 239, 237, 238, + 241, 242, 243, 256, 215, 216, 217, 218, 244, 259, + 211, 213, 260, 266, 267, 268, 184, 225, 278, 279, + 212, 273, 199, 179, 207, 257, 263, 245, 0, 0, + 282, 185, 174, 198, 249, 175, 181, 182, 208, 209, + 280, 247, 251, 252, 176, 283, 229, 255, 200, 214, + 261, 262, 265, 272, 210, 276, 274, 275, 219, 224, + 253, 254, 220, 221, 246, 269, 201, 193, 194, 195, + 196, 197, 284, 285, 286, 230, 231, 232, 240, 287, + 288, 248, 222, 370, 296, 298, 297, 0, 0, 301, + 250, 264, 277, 302, 303, 223, 289, 0, 0, 0, + 0, 0, 0, 270, 271, 371, 304, 305, 306, 309, + 308, 307, 310, 311, 312, 313, 314, 315, 0, 317, + 318, 330, 332, 331, 334, 335, 336, 337, 333, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 369, 258, 281, 299, 300, 290, 291, 0, 0, + 0, 295, 316, 294, 292, 293 }; /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int8 yypgoto[] = +static const yytype_int16 yypgoto[] = { - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128 + -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, -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, -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 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 10, 11, 18, 159, 12, 19, 299, 13, - 20, 309, 14, 21, 318, 160, 161, 162, 163, 164, + -1, 1, 10, 11, 18, 159, 12, 19, 300, 13, + 20, 312, 14, 21, 322, 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, @@ -1218,12 +1227,12 @@ static const yytype_int16 yydefgoto[] = 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 300, 301, 302, - 303, 304, 310, 311, 312, 313, 319, 320, 321, 322, - 15, 22, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 16, 23, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 17, 24, 366, 367, - 292, 293 + 285, 286, 287, 288, 289, 290, 291, 301, 302, 303, + 304, 305, 306, 313, 314, 315, 316, 317, 323, 324, + 325, 326, 15, 22, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 16, 23, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 17, 24, + 370, 371, 292, 293 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1231,91 +1240,93 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 2, 314, 294, 365, 295, 296, 305, 368, 369, 370, - 0, 3, 371, 372, 306, 307, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 323, 324, - 325, 326, 327, 328, 329, 330, 373, 315, 316, 374, - 375, 4, 376, 377, 378, 379, 380, 5, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 297, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 6, 423, 424, 298, 425, 426, 308, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 7, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 317, - 467, 468, 8, 0, 469, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 470, 471, 472, 9, 53, 54, 55, - 473, 474, 475, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 97, 98, 99, 485, 100, 101, 102, - 486, 487, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 488, 489, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 503, - 155, 504, 156, 157, 158, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549 + 2, 318, 294, 369, 295, 296, 307, 372, 373, 374, + 0, 3, 375, 376, 308, 309, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 327, 328, + 329, 330, 331, 332, 333, 334, 377, 319, 320, 378, + 379, 4, 380, 381, 382, 383, 384, 5, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 297, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 6, 427, 428, 298, 429, 299, 310, 430, 311, + 431, 432, 433, 434, 435, 436, 437, 7, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 321, 471, 472, 8, 0, 473, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 474, 475, 476, 9, 53, + 54, 55, 477, 478, 479, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 97, 98, 99, 489, 100, + 101, 102, 490, 491, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 492, 493, 494, 495, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 509, 155, 510, 156, 157, 158, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555 }; static const yytype_int16 yycheck[] = { 0, 40, 40, 108, 42, 43, 40, 10, 10, 10, - -1, 11, 10, 10, 48, 49, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 92, 93, + -1, 11, 10, 10, 48, 49, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 92, 93, 94, 95, 96, 97, 98, 99, 10, 76, 77, 10, 10, 41, 10, 10, 10, 10, 10, 47, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 103, 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, 91, 10, 10, 132, 10, 10, 131, 10, 10, + 10, 91, 10, 10, 132, 10, 134, 131, 10, 133, 10, 10, 10, 10, 10, 10, 10, 107, 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, 178, - 10, 10, 142, -1, 10, 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, - 37, 38, 39, 10, 10, 10, 176, 44, 45, 46, - 10, 10, 10, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 100, 101, 102, 10, 104, 105, 106, - 10, 10, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 10, 10, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 10, - 177, 10, 179, 180, 181, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 180, 10, 10, 144, -1, 10, 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, 37, 38, 39, 10, 10, 10, 178, 44, + 45, 46, 10, 10, 10, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 100, 101, 102, 10, 104, + 105, 106, 10, 10, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 10, 10, 10, 10, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 10, 179, 10, 181, 182, 183, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 183, 0, 11, 41, 47, 91, 107, 142, 176, - 184, 185, 188, 191, 194, 342, 353, 368, 186, 189, - 192, 195, 343, 354, 369, 12, 13, 14, 15, 16, + 0, 185, 0, 11, 41, 47, 91, 107, 144, 178, + 186, 187, 190, 193, 196, 346, 357, 372, 188, 191, + 194, 197, 347, 358, 373, 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, 37, 38, 39, 44, 45, 46, 50, 51, 52, 53, @@ -1325,31 +1336,32 @@ static const yytype_uint16 yystos[] = 84, 85, 86, 87, 88, 89, 90, 100, 101, 102, 104, 105, 106, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 177, 179, 180, 181, 187, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 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, 372, 373, 40, 42, 43, 103, 132, 190, - 329, 330, 331, 332, 333, 40, 48, 49, 131, 193, - 334, 335, 336, 337, 40, 76, 77, 178, 196, 338, - 339, 340, 341, 92, 93, 94, 95, 96, 97, 98, - 99, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 108, 370, 371, 10, 10, + 126, 127, 128, 129, 130, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 179, 181, 182, 183, 189, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 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, 376, 377, 40, 42, 43, 103, 132, 134, + 192, 331, 332, 333, 334, 335, 336, 40, 48, 49, + 131, 133, 195, 337, 338, 339, 340, 341, 40, 76, + 77, 180, 198, 342, 343, 344, 345, 92, 93, 94, + 95, 96, 97, 98, 99, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 108, + 374, 375, 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, @@ -1367,30 +1379,30 @@ static const yytype_uint16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 182, 183, 183, 184, 184, 184, 184, 184, 184, - 184, 185, 186, 186, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 188, 189, - 189, 190, 190, 190, 190, 190, 191, 192, 192, 193, - 193, 193, 193, 194, 195, 195, 196, 196, 196, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 0, 184, 185, 185, 186, 186, 186, 186, 186, 186, + 186, 187, 188, 188, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 190, 191, + 191, 192, 192, 192, 192, 192, 192, 193, 194, 194, + 195, 195, 195, 195, 195, 196, 197, 197, 198, 198, + 198, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, @@ -1404,12 +1416,13 @@ static const yytype_uint16 yyr1[] = 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, 341, 342, 343, 343, 344, 344, - 344, 344, 344, 344, 344, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 354, 355, 355, 355, - 355, 355, 355, 355, 355, 355, 355, 355, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 369, 370, 371, 372, 373 + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 347, 348, 348, 348, 348, 348, 348, 348, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 358, 359, 359, 359, 359, 359, 359, 359, 359, 359, + 359, 359, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 373, 374, 375, + 376, 377 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1430,8 +1443,9 @@ 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, 2, - 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1439,19 +1453,19 @@ static const yytype_uint8 yyr2[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 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, 3, 3, - 4, 4, 4, 3, 2, 2, 2, 3, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 2, 2, 1, 2, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 2, 0, 1, 2, 2, 2 + 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 4, 4, 4, 3, 2, 2, 2, 3, + 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 2, 0, 1, 2, + 2, 2 }; @@ -2128,15 +2142,15 @@ yyreduce: switch (yyn) { case 11: -#line 145 "./util/configparser.y" /* yacc.c:1646 */ +#line 146 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(server:)\n")); } -#line 2136 "util/configparser.c" /* yacc.c:1646 */ +#line 2150 "util/configparser.c" /* yacc.c:1646 */ break; case 148: -#line 211 "./util/configparser.y" /* yacc.c:1646 */ +#line 212 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2147,11 +2161,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2151 "util/configparser.c" /* yacc.c:1646 */ +#line 2165 "util/configparser.c" /* yacc.c:1646 */ break; - case 156: -#line 227 "./util/configparser.y" /* yacc.c:1646 */ + case 157: +#line 229 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2162,11 +2176,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2166 "util/configparser.c" /* yacc.c:1646 */ +#line 2180 "util/configparser.c" /* yacc.c:1646 */ break; - case 163: -#line 243 "./util/configparser.y" /* yacc.c:1646 */ + case 165: +#line 246 "./util/configparser.y" /* yacc.c:1646 */ { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2179,11 +2193,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2183 "util/configparser.c" /* yacc.c:1646 */ +#line 2197 "util/configparser.c" /* yacc.c:1646 */ break; - case 170: -#line 261 "./util/configparser.y" /* yacc.c:1646 */ + case 172: +#line 264 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2191,11 +2205,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2195 "util/configparser.c" /* yacc.c:1646 */ +#line 2209 "util/configparser.c" /* yacc.c:1646 */ break; - case 171: -#line 270 "./util/configparser.y" /* yacc.c:1646 */ + case 173: +#line 273 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2203,11 +2217,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2207 "util/configparser.c" /* yacc.c:1646 */ +#line 2221 "util/configparser.c" /* yacc.c:1646 */ break; - case 172: -#line 279 "./util/configparser.y" /* yacc.c:1646 */ + case 174: +#line 282 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2217,11 +2231,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2221 "util/configparser.c" /* yacc.c:1646 */ +#line 2235 "util/configparser.c" /* yacc.c:1646 */ break; - case 173: -#line 290 "./util/configparser.y" /* yacc.c:1646 */ + case 175: +#line 293 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2229,11 +2243,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2233 "util/configparser.c" /* yacc.c:1646 */ +#line 2247 "util/configparser.c" /* yacc.c:1646 */ break; - case 174: -#line 299 "./util/configparser.y" /* yacc.c:1646 */ + case 176: +#line 302 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2241,11 +2255,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2245 "util/configparser.c" /* yacc.c:1646 */ +#line 2259 "util/configparser.c" /* yacc.c:1646 */ break; - case 175: -#line 308 "./util/configparser.y" /* yacc.c:1646 */ + case 177: +#line 311 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2253,11 +2267,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2257 "util/configparser.c" /* yacc.c:1646 */ +#line 2271 "util/configparser.c" /* yacc.c:1646 */ break; - case 176: -#line 317 "./util/configparser.y" /* yacc.c:1646 */ + case 178: +#line 320 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2269,11 +2283,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2273 "util/configparser.c" /* yacc.c:1646 */ +#line 2287 "util/configparser.c" /* yacc.c:1646 */ break; - case 177: -#line 330 "./util/configparser.y" /* yacc.c:1646 */ + case 179: +#line 333 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2287,11 +2301,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2291 "util/configparser.c" /* yacc.c:1646 */ +#line 2305 "util/configparser.c" /* yacc.c:1646 */ break; - case 178: -#line 345 "./util/configparser.y" /* yacc.c:1646 */ + case 180: +#line 348 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2299,11 +2313,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2303 "util/configparser.c" /* yacc.c:1646 */ +#line 2317 "util/configparser.c" /* yacc.c:1646 */ break; - case 179: -#line 354 "./util/configparser.y" /* yacc.c:1646 */ + case 181: +#line 357 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -2311,11 +2325,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2315 "util/configparser.c" /* yacc.c:1646 */ +#line 2329 "util/configparser.c" /* yacc.c:1646 */ break; - case 180: -#line 363 "./util/configparser.y" /* yacc.c:1646 */ + case 182: +#line 366 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -2323,11 +2337,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2327 "util/configparser.c" /* yacc.c:1646 */ +#line 2341 "util/configparser.c" /* yacc.c:1646 */ break; - case 181: -#line 372 "./util/configparser.y" /* yacc.c:1646 */ + case 183: +#line 375 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2335,11 +2349,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2339 "util/configparser.c" /* yacc.c:1646 */ +#line 2353 "util/configparser.c" /* yacc.c:1646 */ break; - case 182: -#line 381 "./util/configparser.y" /* yacc.c:1646 */ + case 184: +#line 384 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2347,11 +2361,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2351 "util/configparser.c" /* yacc.c:1646 */ +#line 2365 "util/configparser.c" /* yacc.c:1646 */ break; - case 183: -#line 390 "./util/configparser.y" /* yacc.c:1646 */ + case 185: +#line 393 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2359,11 +2373,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2363 "util/configparser.c" /* yacc.c:1646 */ +#line 2377 "util/configparser.c" /* yacc.c:1646 */ break; - case 184: -#line 399 "./util/configparser.y" /* yacc.c:1646 */ + case 186: +#line 402 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2371,11 +2385,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2375 "util/configparser.c" /* yacc.c:1646 */ +#line 2389 "util/configparser.c" /* yacc.c:1646 */ break; - case 185: -#line 408 "./util/configparser.y" /* yacc.c:1646 */ + case 187: +#line 411 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2383,11 +2397,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2387 "util/configparser.c" /* yacc.c:1646 */ +#line 2401 "util/configparser.c" /* yacc.c:1646 */ break; - case 186: -#line 417 "./util/configparser.y" /* yacc.c:1646 */ + case 188: +#line 420 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2395,11 +2409,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2399 "util/configparser.c" /* yacc.c:1646 */ +#line 2413 "util/configparser.c" /* yacc.c:1646 */ break; - case 187: -#line 426 "./util/configparser.y" /* yacc.c:1646 */ + case 189: +#line 429 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2407,11 +2421,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2411 "util/configparser.c" /* yacc.c:1646 */ +#line 2425 "util/configparser.c" /* yacc.c:1646 */ break; - case 188: -#line 435 "./util/configparser.y" /* yacc.c:1646 */ + case 190: +#line 438 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2419,11 +2433,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2423 "util/configparser.c" /* yacc.c:1646 */ +#line 2437 "util/configparser.c" /* yacc.c:1646 */ break; - case 189: -#line 444 "./util/configparser.y" /* yacc.c:1646 */ + case 191: +#line 447 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2431,11 +2445,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2435 "util/configparser.c" /* yacc.c:1646 */ +#line 2449 "util/configparser.c" /* yacc.c:1646 */ break; - case 190: -#line 453 "./util/configparser.y" /* yacc.c:1646 */ + case 192: +#line 456 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2443,11 +2457,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2447 "util/configparser.c" /* yacc.c:1646 */ +#line 2461 "util/configparser.c" /* yacc.c:1646 */ break; - case 191: -#line 462 "./util/configparser.y" /* yacc.c:1646 */ + case 193: +#line 465 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2455,11 +2469,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2459 "util/configparser.c" /* yacc.c:1646 */ +#line 2473 "util/configparser.c" /* yacc.c:1646 */ break; - case 192: -#line 471 "./util/configparser.y" /* yacc.c:1646 */ + case 194: +#line 474 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2467,31 +2481,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2471 "util/configparser.c" /* yacc.c:1646 */ +#line 2485 "util/configparser.c" /* yacc.c:1646 */ break; - case 193: -#line 480 "./util/configparser.y" /* yacc.c:1646 */ + case 195: +#line 483 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 2481 "util/configparser.c" /* yacc.c:1646 */ +#line 2495 "util/configparser.c" /* yacc.c:1646 */ break; - case 194: -#line 487 "./util/configparser.y" /* yacc.c:1646 */ + case 196: +#line 490 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 2491 "util/configparser.c" /* yacc.c:1646 */ +#line 2505 "util/configparser.c" /* yacc.c:1646 */ break; - case 195: -#line 494 "./util/configparser.y" /* yacc.c:1646 */ + case 197: +#line 497 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2499,11 +2513,11 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2503 "util/configparser.c" /* yacc.c:1646 */ +#line 2517 "util/configparser.c" /* yacc.c:1646 */ break; - case 196: -#line 503 "./util/configparser.y" /* yacc.c:1646 */ + case 198: +#line 506 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2511,11 +2525,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2515 "util/configparser.c" /* yacc.c:1646 */ +#line 2529 "util/configparser.c" /* yacc.c:1646 */ break; - case 197: -#line 512 "./util/configparser.y" /* yacc.c:1646 */ + case 199: +#line 515 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2528,11 +2542,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2532 "util/configparser.c" /* yacc.c:1646 */ +#line 2546 "util/configparser.c" /* yacc.c:1646 */ break; - case 198: -#line 526 "./util/configparser.y" /* yacc.c:1646 */ + case 200: +#line 529 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2540,11 +2554,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2544 "util/configparser.c" /* yacc.c:1646 */ +#line 2558 "util/configparser.c" /* yacc.c:1646 */ break; - case 199: -#line 535 "./util/configparser.y" /* yacc.c:1646 */ + case 201: +#line 538 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2552,31 +2566,31 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2556 "util/configparser.c" /* yacc.c:1646 */ +#line 2570 "util/configparser.c" /* yacc.c:1646 */ break; - case 200: -#line 544 "./util/configparser.y" /* yacc.c:1646 */ + case 202: +#line 547 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 2566 "util/configparser.c" /* yacc.c:1646 */ +#line 2580 "util/configparser.c" /* yacc.c:1646 */ break; - case 201: -#line 551 "./util/configparser.y" /* yacc.c:1646 */ + case 203: +#line 554 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 2576 "util/configparser.c" /* yacc.c:1646 */ +#line 2590 "util/configparser.c" /* yacc.c:1646 */ break; - case 202: -#line 558 "./util/configparser.y" /* yacc.c:1646 */ + case 204: +#line 561 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -2599,115 +2613,115 @@ yyreduce: d, strerror(errno)); } } -#line 2603 "util/configparser.c" /* yacc.c:1646 */ +#line 2617 "util/configparser.c" /* yacc.c:1646 */ break; - case 203: -#line 582 "./util/configparser.y" /* yacc.c:1646 */ + case 205: +#line 585 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 2614 "util/configparser.c" /* yacc.c:1646 */ +#line 2628 "util/configparser.c" /* yacc.c:1646 */ break; - case 204: -#line 590 "./util/configparser.y" /* yacc.c:1646 */ + case 206: +#line 593 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 2624 "util/configparser.c" /* yacc.c:1646 */ +#line 2638 "util/configparser.c" /* yacc.c:1646 */ break; - case 205: -#line 597 "./util/configparser.y" /* yacc.c:1646 */ + case 207: +#line 600 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2634 "util/configparser.c" /* yacc.c:1646 */ +#line 2648 "util/configparser.c" /* yacc.c:1646 */ break; - case 206: -#line 604 "./util/configparser.y" /* yacc.c:1646 */ + case 208: +#line 607 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dlv_anchor_file); cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str); } -#line 2644 "util/configparser.c" /* yacc.c:1646 */ +#line 2658 "util/configparser.c" /* yacc.c:1646 */ break; - case 207: -#line 611 "./util/configparser.y" /* yacc.c:1646 */ + case 209: +#line 614 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2654 "util/configparser.c" /* yacc.c:1646 */ +#line 2668 "util/configparser.c" /* yacc.c:1646 */ break; - case 208: -#line 618 "./util/configparser.y" /* yacc.c:1646 */ + case 210: +#line 621 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2665 "util/configparser.c" /* yacc.c:1646 */ +#line 2679 "util/configparser.c" /* yacc.c:1646 */ break; - case 209: -#line 626 "./util/configparser.y" /* yacc.c:1646 */ + case 211: +#line 629 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2676 "util/configparser.c" /* yacc.c:1646 */ +#line 2690 "util/configparser.c" /* yacc.c:1646 */ break; - case 210: -#line 634 "./util/configparser.y" /* yacc.c:1646 */ + case 212: +#line 637 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2687 "util/configparser.c" /* yacc.c:1646 */ +#line 2701 "util/configparser.c" /* yacc.c:1646 */ break; - case 211: -#line 642 "./util/configparser.y" /* yacc.c:1646 */ + case 213: +#line 645 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2697 "util/configparser.c" /* yacc.c:1646 */ +#line 2711 "util/configparser.c" /* yacc.c:1646 */ break; - case 212: -#line 649 "./util/configparser.y" /* yacc.c:1646 */ + case 214: +#line 652 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 2707 "util/configparser.c" /* yacc.c:1646 */ +#line 2721 "util/configparser.c" /* yacc.c:1646 */ break; - case 213: -#line 656 "./util/configparser.y" /* yacc.c:1646 */ + case 215: +#line 659 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2715,11 +2729,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2719 "util/configparser.c" /* yacc.c:1646 */ +#line 2733 "util/configparser.c" /* yacc.c:1646 */ break; - case 214: -#line 665 "./util/configparser.y" /* yacc.c:1646 */ + case 216: +#line 668 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2727,53 +2741,53 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2731 "util/configparser.c" /* yacc.c:1646 */ +#line 2745 "util/configparser.c" /* yacc.c:1646 */ break; - case 215: -#line 674 "./util/configparser.y" /* yacc.c:1646 */ + case 217: +#line 677 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 2741 "util/configparser.c" /* yacc.c:1646 */ +#line 2755 "util/configparser.c" /* yacc.c:1646 */ break; - case 216: -#line 681 "./util/configparser.y" /* yacc.c:1646 */ + case 218: +#line 684 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 2751 "util/configparser.c" /* yacc.c:1646 */ +#line 2765 "util/configparser.c" /* yacc.c:1646 */ break; - case 217: -#line 688 "./util/configparser.y" /* yacc.c:1646 */ + case 219: +#line 691 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 2762 "util/configparser.c" /* yacc.c:1646 */ +#line 2776 "util/configparser.c" /* yacc.c:1646 */ break; - case 218: -#line 696 "./util/configparser.y" /* yacc.c:1646 */ + case 220: +#line 699 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 2773 "util/configparser.c" /* yacc.c:1646 */ +#line 2787 "util/configparser.c" /* yacc.c:1646 */ break; - case 219: -#line 704 "./util/configparser.y" /* yacc.c:1646 */ + case 221: +#line 707 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2782,11 +2796,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2786 "util/configparser.c" /* yacc.c:1646 */ +#line 2800 "util/configparser.c" /* yacc.c:1646 */ break; - case 220: -#line 714 "./util/configparser.y" /* yacc.c:1646 */ + case 222: +#line 717 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2795,11 +2809,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2799 "util/configparser.c" /* yacc.c:1646 */ +#line 2813 "util/configparser.c" /* yacc.c:1646 */ break; - case 221: -#line 724 "./util/configparser.y" /* yacc.c:1646 */ + case 223: +#line 727 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2808,11 +2822,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2812 "util/configparser.c" /* yacc.c:1646 */ +#line 2826 "util/configparser.c" /* yacc.c:1646 */ break; - case 222: -#line 734 "./util/configparser.y" /* yacc.c:1646 */ + case 224: +#line 737 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2824,11 +2838,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2828 "util/configparser.c" /* yacc.c:1646 */ +#line 2842 "util/configparser.c" /* yacc.c:1646 */ break; - case 223: -#line 747 "./util/configparser.y" /* yacc.c:1646 */ + case 225: +#line 750 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2838,22 +2852,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2842 "util/configparser.c" /* yacc.c:1646 */ +#line 2856 "util/configparser.c" /* yacc.c:1646 */ break; - case 224: -#line 758 "./util/configparser.y" /* yacc.c:1646 */ + case 226: +#line 761 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 2853 "util/configparser.c" /* yacc.c:1646 */ +#line 2867 "util/configparser.c" /* yacc.c:1646 */ break; - case 225: -#line 766 "./util/configparser.y" /* yacc.c:1646 */ + case 227: +#line 769 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2865,11 +2879,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 2869 "util/configparser.c" /* yacc.c:1646 */ +#line 2883 "util/configparser.c" /* yacc.c:1646 */ break; - case 226: -#line 779 "./util/configparser.y" /* yacc.c:1646 */ + case 228: +#line 782 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2877,11 +2891,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2881 "util/configparser.c" /* yacc.c:1646 */ +#line 2895 "util/configparser.c" /* yacc.c:1646 */ break; - case 227: -#line 788 "./util/configparser.y" /* yacc.c:1646 */ + case 229: +#line 791 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2889,11 +2903,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2893 "util/configparser.c" /* yacc.c:1646 */ +#line 2907 "util/configparser.c" /* yacc.c:1646 */ break; - case 228: -#line 797 "./util/configparser.y" /* yacc.c:1646 */ + case 230: +#line 800 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2901,11 +2915,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2905 "util/configparser.c" /* yacc.c:1646 */ +#line 2919 "util/configparser.c" /* yacc.c:1646 */ break; - case 229: -#line 806 "./util/configparser.y" /* yacc.c:1646 */ + case 231: +#line 809 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2914,11 +2928,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2918 "util/configparser.c" /* yacc.c:1646 */ +#line 2932 "util/configparser.c" /* yacc.c:1646 */ break; - case 230: -#line 816 "./util/configparser.y" /* yacc.c:1646 */ + case 232: +#line 819 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2927,22 +2941,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2931 "util/configparser.c" /* yacc.c:1646 */ +#line 2945 "util/configparser.c" /* yacc.c:1646 */ break; - case 231: -#line 826 "./util/configparser.y" /* yacc.c:1646 */ + case 233: +#line 829 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 2942 "util/configparser.c" /* yacc.c:1646 */ +#line 2956 "util/configparser.c" /* yacc.c:1646 */ break; - case 232: -#line 834 "./util/configparser.y" /* yacc.c:1646 */ + case 234: +#line 837 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2954,11 +2968,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 2958 "util/configparser.c" /* yacc.c:1646 */ +#line 2972 "util/configparser.c" /* yacc.c:1646 */ break; - case 233: -#line 847 "./util/configparser.y" /* yacc.c:1646 */ + case 235: +#line 850 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2966,22 +2980,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2970 "util/configparser.c" /* yacc.c:1646 */ +#line 2984 "util/configparser.c" /* yacc.c:1646 */ break; - case 234: -#line 856 "./util/configparser.y" /* yacc.c:1646 */ + case 236: +#line 859 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2981 "util/configparser.c" /* yacc.c:1646 */ +#line 2995 "util/configparser.c" /* yacc.c:1646 */ break; - case 235: -#line 864 "./util/configparser.y" /* yacc.c:1646 */ + case 237: +#line 867 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2989,22 +3003,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2993 "util/configparser.c" /* yacc.c:1646 */ +#line 3007 "util/configparser.c" /* yacc.c:1646 */ break; - case 236: -#line 873 "./util/configparser.y" /* yacc.c:1646 */ + case 238: +#line 876 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3004 "util/configparser.c" /* yacc.c:1646 */ +#line 3018 "util/configparser.c" /* yacc.c:1646 */ break; - case 237: -#line 881 "./util/configparser.y" /* yacc.c:1646 */ + case 239: +#line 884 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3016,11 +3030,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3020 "util/configparser.c" /* yacc.c:1646 */ +#line 3034 "util/configparser.c" /* yacc.c:1646 */ break; - case 238: -#line 894 "./util/configparser.y" /* yacc.c:1646 */ + case 240: +#line 897 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3028,21 +3042,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3032 "util/configparser.c" /* yacc.c:1646 */ +#line 3046 "util/configparser.c" /* yacc.c:1646 */ break; - case 239: -#line 903 "./util/configparser.y" /* yacc.c:1646 */ + case 241: +#line 906 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 3042 "util/configparser.c" /* yacc.c:1646 */ +#line 3056 "util/configparser.c" /* yacc.c:1646 */ break; - case 240: -#line 910 "./util/configparser.y" /* yacc.c:1646 */ + case 242: +#line 913 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3051,11 +3065,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3055 "util/configparser.c" /* yacc.c:1646 */ +#line 3069 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: -#line 920 "./util/configparser.y" /* yacc.c:1646 */ + case 243: +#line 923 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3064,11 +3078,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3068 "util/configparser.c" /* yacc.c:1646 */ +#line 3082 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: -#line 930 "./util/configparser.y" /* yacc.c:1646 */ + case 244: +#line 933 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3077,11 +3091,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3081 "util/configparser.c" /* yacc.c:1646 */ +#line 3095 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: -#line 940 "./util/configparser.y" /* yacc.c:1646 */ + case 245: +#line 943 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3090,11 +3104,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3094 "util/configparser.c" /* yacc.c:1646 */ +#line 3108 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: -#line 950 "./util/configparser.y" /* yacc.c:1646 */ + case 246: +#line 953 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3103,11 +3117,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3107 "util/configparser.c" /* yacc.c:1646 */ +#line 3121 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: -#line 960 "./util/configparser.y" /* yacc.c:1646 */ + case 247: +#line 963 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3116,11 +3130,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3120 "util/configparser.c" /* yacc.c:1646 */ +#line 3134 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: -#line 970 "./util/configparser.y" /* yacc.c:1646 */ + case 248: +#line 973 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3129,11 +3143,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3133 "util/configparser.c" /* yacc.c:1646 */ +#line 3147 "util/configparser.c" /* yacc.c:1646 */ break; - case 247: -#line 980 "./util/configparser.y" /* yacc.c:1646 */ + case 249: +#line 983 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3142,41 +3156,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3146 "util/configparser.c" /* yacc.c:1646 */ +#line 3160 "util/configparser.c" /* yacc.c:1646 */ break; - case 248: -#line 990 "./util/configparser.y" /* yacc.c:1646 */ + case 250: +#line 993 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3156 "util/configparser.c" /* yacc.c:1646 */ +#line 3170 "util/configparser.c" /* yacc.c:1646 */ break; - case 249: -#line 997 "./util/configparser.y" /* yacc.c:1646 */ + case 251: +#line 1000 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3166 "util/configparser.c" /* yacc.c:1646 */ +#line 3180 "util/configparser.c" /* yacc.c:1646 */ break; - case 250: -#line 1004 "./util/configparser.y" /* yacc.c:1646 */ + case 252: +#line 1007 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3176 "util/configparser.c" /* yacc.c:1646 */ +#line 3190 "util/configparser.c" /* yacc.c:1646 */ break; - case 251: -#line 1011 "./util/configparser.y" /* yacc.c:1646 */ + case 253: +#line 1014 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3184,11 +3198,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3188 "util/configparser.c" /* yacc.c:1646 */ +#line 3202 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: -#line 1020 "./util/configparser.y" /* yacc.c:1646 */ + case 254: +#line 1023 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3196,11 +3210,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3200 "util/configparser.c" /* yacc.c:1646 */ +#line 3214 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: -#line 1029 "./util/configparser.y" /* yacc.c:1646 */ + case 255: +#line 1032 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3208,21 +3222,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3212 "util/configparser.c" /* yacc.c:1646 */ +#line 3226 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: -#line 1038 "./util/configparser.y" /* yacc.c:1646 */ + case 256: +#line 1041 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3222 "util/configparser.c" /* yacc.c:1646 */ +#line 3236 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: -#line 1045 "./util/configparser.y" /* yacc.c:1646 */ + case 257: +#line 1048 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3231,11 +3245,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3235 "util/configparser.c" /* yacc.c:1646 */ +#line 3249 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: -#line 1055 "./util/configparser.y" /* yacc.c:1646 */ + case 258: +#line 1058 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && @@ -3251,21 +3265,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 3255 "util/configparser.c" /* yacc.c:1646 */ +#line 3269 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: -#line 1072 "./util/configparser.y" /* yacc.c:1646 */ + case 259: +#line 1075 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 3265 "util/configparser.c" /* yacc.c:1646 */ +#line 3279 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: -#line 1079 "./util/configparser.y" /* yacc.c:1646 */ + case 260: +#line 1082 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -3282,11 +3296,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3286 "util/configparser.c" /* yacc.c:1646 */ +#line 3300 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: -#line 1097 "./util/configparser.y" /* yacc.c:1646 */ + case 261: +#line 1100 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -3298,11 +3312,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3302 "util/configparser.c" /* yacc.c:1646 */ +#line 3316 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: -#line 1110 "./util/configparser.y" /* yacc.c:1646 */ + case 262: +#line 1113 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -3314,11 +3328,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3318 "util/configparser.c" /* yacc.c:1646 */ +#line 3332 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: -#line 1123 "./util/configparser.y" /* yacc.c:1646 */ + case 263: +#line 1126 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3326,11 +3340,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3330 "util/configparser.c" /* yacc.c:1646 */ +#line 3344 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: -#line 1132 "./util/configparser.y" /* yacc.c:1646 */ + case 264: +#line 1135 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3338,11 +3352,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3342 "util/configparser.c" /* yacc.c:1646 */ +#line 3356 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: -#line 1141 "./util/configparser.y" /* yacc.c:1646 */ + case 265: +#line 1144 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3350,11 +3364,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3354 "util/configparser.c" /* yacc.c:1646 */ +#line 3368 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: -#line 1150 "./util/configparser.y" /* yacc.c:1646 */ + case 266: +#line 1153 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3362,11 +3376,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3366 "util/configparser.c" /* yacc.c:1646 */ +#line 3380 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: -#line 1159 "./util/configparser.y" /* yacc.c:1646 */ + case 267: +#line 1162 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3375,11 +3389,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3379 "util/configparser.c" /* yacc.c:1646 */ +#line 3393 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: -#line 1169 "./util/configparser.y" /* yacc.c:1646 */ + case 268: +#line 1172 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3388,11 +3402,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3392 "util/configparser.c" /* yacc.c:1646 */ +#line 3406 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: -#line 1179 "./util/configparser.y" /* yacc.c:1646 */ + case 269: +#line 1182 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3400,11 +3414,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3404 "util/configparser.c" /* yacc.c:1646 */ +#line 3418 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: -#line 1188 "./util/configparser.y" /* yacc.c:1646 */ + case 270: +#line 1191 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3412,11 +3426,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3416 "util/configparser.c" /* yacc.c:1646 */ +#line 3430 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: -#line 1197 "./util/configparser.y" /* yacc.c:1646 */ + case 271: +#line 1200 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3426,11 +3440,11 @@ yyreduce: log_warn("test option fake_dsa is enabled"); free((yyvsp[0].str)); } -#line 3430 "util/configparser.c" /* yacc.c:1646 */ +#line 3444 "util/configparser.c" /* yacc.c:1646 */ break; - case 270: -#line 1208 "./util/configparser.y" /* yacc.c:1646 */ + case 272: +#line 1211 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3438,21 +3452,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3442 "util/configparser.c" /* yacc.c:1646 */ +#line 3456 "util/configparser.c" /* yacc.c:1646 */ break; - case 271: -#line 1217 "./util/configparser.y" /* yacc.c:1646 */ + case 273: +#line 1220 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 3452 "util/configparser.c" /* yacc.c:1646 */ +#line 3466 "util/configparser.c" /* yacc.c:1646 */ break; - case 272: -#line 1224 "./util/configparser.y" /* yacc.c:1646 */ + case 274: +#line 1227 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3460,11 +3474,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3464 "util/configparser.c" /* yacc.c:1646 */ +#line 3478 "util/configparser.c" /* yacc.c:1646 */ break; - case 273: -#line 1233 "./util/configparser.y" /* yacc.c:1646 */ + case 275: +#line 1236 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3472,11 +3486,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3476 "util/configparser.c" /* yacc.c:1646 */ +#line 3490 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: -#line 1242 "./util/configparser.y" /* yacc.c:1646 */ + case 276: +#line 1245 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3484,11 +3498,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3488 "util/configparser.c" /* yacc.c:1646 */ +#line 3502 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: -#line 1251 "./util/configparser.y" /* yacc.c:1646 */ + case 277: +#line 1254 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3497,22 +3511,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3501 "util/configparser.c" /* yacc.c:1646 */ +#line 3515 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: -#line 1260 "./util/configparser.y" /* yacc.c:1646 */ + case 278: +#line 1263 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3512 "util/configparser.c" /* yacc.c:1646 */ +#line 3526 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: -#line 1268 "./util/configparser.y" /* yacc.c:1646 */ + case 279: +#line 1271 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3524,22 +3538,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3528 "util/configparser.c" /* yacc.c:1646 */ +#line 3542 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: -#line 1281 "./util/configparser.y" /* yacc.c:1646 */ + case 280: +#line 1284 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3539 "util/configparser.c" /* yacc.c:1646 */ +#line 3553 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: -#line 1289 "./util/configparser.y" /* yacc.c:1646 */ + case 281: +#line 1292 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -3566,21 +3580,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 3570 "util/configparser.c" /* yacc.c:1646 */ +#line 3584 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: -#line 1317 "./util/configparser.y" /* yacc.c:1646 */ + case 282: +#line 1320 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 3580 "util/configparser.c" /* yacc.c:1646 */ +#line 3594 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: -#line 1324 "./util/configparser.y" /* yacc.c:1646 */ + case 283: +#line 1327 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -3594,11 +3608,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 3598 "util/configparser.c" /* yacc.c:1646 */ +#line 3612 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: -#line 1339 "./util/configparser.y" /* yacc.c:1646 */ + case 284: +#line 1342 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3607,11 +3621,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3611 "util/configparser.c" /* yacc.c:1646 */ +#line 3625 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: -#line 1349 "./util/configparser.y" /* yacc.c:1646 */ + case 285: +#line 1352 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3620,31 +3634,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3624 "util/configparser.c" /* yacc.c:1646 */ +#line 3638 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: -#line 1359 "./util/configparser.y" /* yacc.c:1646 */ + case 286: +#line 1362 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3634 "util/configparser.c" /* yacc.c:1646 */ +#line 3648 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: -#line 1366 "./util/configparser.y" /* yacc.c:1646 */ + case 287: +#line 1369 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 3644 "util/configparser.c" /* yacc.c:1646 */ +#line 3658 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: -#line 1373 "./util/configparser.y" /* yacc.c:1646 */ + case 288: +#line 1376 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3652,11 +3666,11 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3656 "util/configparser.c" /* yacc.c:1646 */ +#line 3670 "util/configparser.c" /* yacc.c:1646 */ break; - case 287: -#line 1382 "./util/configparser.y" /* yacc.c:1646 */ + case 289: +#line 1385 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -3669,11 +3683,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3673 "util/configparser.c" /* yacc.c:1646 */ +#line 3687 "util/configparser.c" /* yacc.c:1646 */ break; - case 288: -#line 1396 "./util/configparser.y" /* yacc.c:1646 */ + case 290: +#line 1399 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -3691,11 +3705,11 @@ yyreduce: } } } -#line 3695 "util/configparser.c" /* yacc.c:1646 */ +#line 3709 "util/configparser.c" /* yacc.c:1646 */ break; - case 289: -#line 1415 "./util/configparser.y" /* yacc.c:1646 */ + case 291: +#line 1418 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -3713,11 +3727,11 @@ yyreduce: } } } -#line 3717 "util/configparser.c" /* yacc.c:1646 */ +#line 3731 "util/configparser.c" /* yacc.c:1646 */ break; - case 290: -#line 1434 "./util/configparser.y" /* yacc.c:1646 */ + case 292: +#line 1437 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -3728,11 +3742,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 3732 "util/configparser.c" /* yacc.c:1646 */ +#line 3746 "util/configparser.c" /* yacc.c:1646 */ break; - case 291: -#line 1446 "./util/configparser.y" /* yacc.c:1646 */ + case 293: +#line 1449 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -3743,11 +3757,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 3747 "util/configparser.c" /* yacc.c:1646 */ +#line 3761 "util/configparser.c" /* yacc.c:1646 */ break; - case 292: -#line 1458 "./util/configparser.y" /* yacc.c:1646 */ + case 294: +#line 1461 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -3758,11 +3772,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 3762 "util/configparser.c" /* yacc.c:1646 */ +#line 3776 "util/configparser.c" /* yacc.c:1646 */ break; - case 293: -#line 1470 "./util/configparser.y" /* yacc.c:1646 */ + case 295: +#line 1473 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -3772,11 +3786,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 3776 "util/configparser.c" /* yacc.c:1646 */ +#line 3790 "util/configparser.c" /* yacc.c:1646 */ break; - case 294: -#line 1481 "./util/configparser.y" /* yacc.c:1646 */ + case 296: +#line 1484 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3784,22 +3798,22 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3788 "util/configparser.c" /* yacc.c:1646 */ +#line 3802 "util/configparser.c" /* yacc.c:1646 */ break; - case 295: -#line 1490 "./util/configparser.y" /* yacc.c:1646 */ + case 297: +#line 1493 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3799 "util/configparser.c" /* yacc.c:1646 */ +#line 3813 "util/configparser.c" /* yacc.c:1646 */ break; - case 296: -#line 1498 "./util/configparser.y" /* yacc.c:1646 */ + case 298: +#line 1501 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3811,11 +3825,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3815 "util/configparser.c" /* yacc.c:1646 */ +#line 3829 "util/configparser.c" /* yacc.c:1646 */ break; - case 297: -#line 1511 "./util/configparser.y" /* yacc.c:1646 */ + case 299: +#line 1514 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -3827,11 +3841,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 3831 "util/configparser.c" /* yacc.c:1646 */ +#line 3845 "util/configparser.c" /* yacc.c:1646 */ break; - case 298: -#line 1524 "./util/configparser.y" /* yacc.c:1646 */ + case 300: +#line 1527 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -3843,11 +3857,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 3847 "util/configparser.c" /* yacc.c:1646 */ +#line 3861 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 1537 "./util/configparser.y" /* yacc.c:1646 */ + case 301: +#line 1540 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3855,11 +3869,11 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3859 "util/configparser.c" /* yacc.c:1646 */ +#line 3873 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 1546 "./util/configparser.y" /* yacc.c:1646 */ + case 302: +#line 1549 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3868,11 +3882,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3872 "util/configparser.c" /* yacc.c:1646 */ +#line 3886 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 1556 "./util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 1559 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3881,11 +3895,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3885 "util/configparser.c" /* yacc.c:1646 */ +#line 3899 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 1566 "./util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 1569 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -3894,31 +3908,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 3898 "util/configparser.c" /* yacc.c:1646 */ +#line 3912 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 1576 "./util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 1579 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3908 "util/configparser.c" /* yacc.c:1646 */ +#line 3922 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 1583 "./util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1586 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3918 "util/configparser.c" /* yacc.c:1646 */ +#line 3932 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 1590 "./util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1593 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3926,11 +3940,24 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3930 "util/configparser.c" /* yacc.c:1646 */ +#line 3944 "util/configparser.c" /* yacc.c:1646 */ break; - case 306: -#line 1599 "./util/configparser.y" /* yacc.c:1646 */ + case 308: +#line 1602 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->stubs->ssl_upstream = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 3957 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 309: +#line 1612 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3939,11 +3966,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3943 "util/configparser.c" /* yacc.c:1646 */ +#line 3970 "util/configparser.c" /* yacc.c:1646 */ break; - case 307: -#line 1609 "./util/configparser.y" /* yacc.c:1646 */ + case 310: +#line 1622 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -3952,31 +3979,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 3956 "util/configparser.c" /* yacc.c:1646 */ +#line 3983 "util/configparser.c" /* yacc.c:1646 */ break; - case 308: -#line 1619 "./util/configparser.y" /* yacc.c:1646 */ + case 311: +#line 1632 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3966 "util/configparser.c" /* yacc.c:1646 */ +#line 3993 "util/configparser.c" /* yacc.c:1646 */ break; - case 309: -#line 1626 "./util/configparser.y" /* yacc.c:1646 */ + case 312: +#line 1639 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3976 "util/configparser.c" /* yacc.c:1646 */ +#line 4003 "util/configparser.c" /* yacc.c:1646 */ break; - case 310: -#line 1633 "./util/configparser.y" /* yacc.c:1646 */ + case 313: +#line 1646 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3984,11 +4011,24 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3988 "util/configparser.c" /* yacc.c:1646 */ +#line 4015 "util/configparser.c" /* yacc.c:1646 */ break; - case 311: -#line 1642 "./util/configparser.y" /* yacc.c:1646 */ + case 314: +#line 1655 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->forwards->ssl_upstream = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 4028 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 315: +#line 1665 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -3997,11 +4037,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 4001 "util/configparser.c" /* yacc.c:1646 */ +#line 4041 "util/configparser.c" /* yacc.c:1646 */ break; - case 312: -#line 1652 "./util/configparser.y" /* yacc.c:1646 */ + case 316: +#line 1675 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -4029,11 +4069,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4033 "util/configparser.c" /* yacc.c:1646 */ +#line 4073 "util/configparser.c" /* yacc.c:1646 */ break; - case 313: -#line 1681 "./util/configparser.y" /* yacc.c:1646 */ + case 317: +#line 1704 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { @@ -4041,11 +4081,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4045 "util/configparser.c" /* yacc.c:1646 */ +#line 4085 "util/configparser.c" /* yacc.c:1646 */ break; - case 314: -#line 1690 "./util/configparser.y" /* yacc.c:1646 */ + case 318: +#line 1713 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4053,19 +4093,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4057 "util/configparser.c" /* yacc.c:1646 */ +#line 4097 "util/configparser.c" /* yacc.c:1646 */ break; - case 315: -#line 1699 "./util/configparser.y" /* yacc.c:1646 */ + case 319: +#line 1722 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 4065 "util/configparser.c" /* yacc.c:1646 */ +#line 4105 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1710 "./util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1733 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4074,11 +4114,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4078 "util/configparser.c" /* yacc.c:1646 */ +#line 4118 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1720 "./util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1743 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4086,21 +4126,21 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4090 "util/configparser.c" /* yacc.c:1646 */ +#line 4130 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1729 "./util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1752 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4100 "util/configparser.c" /* yacc.c:1646 */ +#line 4140 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1736 "./util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1759 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4109,122 +4149,122 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4113 "util/configparser.c" /* yacc.c:1646 */ +#line 4153 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1746 "./util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1769 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 4123 "util/configparser.c" /* yacc.c:1646 */ +#line 4163 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1753 "./util/configparser.y" /* yacc.c:1646 */ + case 335: +#line 1776 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 4133 "util/configparser.c" /* yacc.c:1646 */ +#line 4173 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1760 "./util/configparser.y" /* yacc.c:1646 */ + case 336: +#line 1783 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 4143 "util/configparser.c" /* yacc.c:1646 */ +#line 4183 "util/configparser.c" /* yacc.c:1646 */ break; - case 333: -#line 1767 "./util/configparser.y" /* yacc.c:1646 */ + case 337: +#line 1790 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 4153 "util/configparser.c" /* yacc.c:1646 */ +#line 4193 "util/configparser.c" /* yacc.c:1646 */ break; - case 334: -#line 1774 "./util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1797 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 4161 "util/configparser.c" /* yacc.c:1646 */ +#line 4201 "util/configparser.c" /* yacc.c:1646 */ break; - case 349: -#line 1791 "./util/configparser.y" /* yacc.c:1646 */ + case 353: +#line 1814 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4172 "util/configparser.c" /* yacc.c:1646 */ +#line 4212 "util/configparser.c" /* yacc.c:1646 */ break; - case 350: -#line 1799 "./util/configparser.y" /* yacc.c:1646 */ + case 354: +#line 1822 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 4182 "util/configparser.c" /* yacc.c:1646 */ +#line 4222 "util/configparser.c" /* yacc.c:1646 */ break; - case 351: -#line 1806 "./util/configparser.y" /* yacc.c:1646 */ + case 355: +#line 1829 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4193 "util/configparser.c" /* yacc.c:1646 */ +#line 4233 "util/configparser.c" /* yacc.c:1646 */ break; - case 352: -#line 1814 "./util/configparser.y" /* yacc.c:1646 */ + case 356: +#line 1837 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4204 "util/configparser.c" /* yacc.c:1646 */ +#line 4244 "util/configparser.c" /* yacc.c:1646 */ break; - case 353: -#line 1822 "./util/configparser.y" /* yacc.c:1646 */ + case 357: +#line 1845 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 4214 "util/configparser.c" /* yacc.c:1646 */ +#line 4254 "util/configparser.c" /* yacc.c:1646 */ break; - case 354: -#line 1829 "./util/configparser.y" /* yacc.c:1646 */ + case 358: +#line 1852 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 4224 "util/configparser.c" /* yacc.c:1646 */ +#line 4264 "util/configparser.c" /* yacc.c:1646 */ break; - case 355: -#line 1836 "./util/configparser.y" /* yacc.c:1646 */ + case 359: +#line 1859 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4232,11 +4272,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4236 "util/configparser.c" /* yacc.c:1646 */ +#line 4276 "util/configparser.c" /* yacc.c:1646 */ break; - case 356: -#line 1845 "./util/configparser.y" /* yacc.c:1646 */ + case 360: +#line 1868 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4244,11 +4284,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4248 "util/configparser.c" /* yacc.c:1646 */ +#line 4288 "util/configparser.c" /* yacc.c:1646 */ break; - case 357: -#line 1854 "./util/configparser.y" /* yacc.c:1646 */ + case 361: +#line 1877 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4256,11 +4296,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4260 "util/configparser.c" /* yacc.c:1646 */ +#line 4300 "util/configparser.c" /* yacc.c:1646 */ break; - case 358: -#line 1863 "./util/configparser.y" /* yacc.c:1646 */ + case 362: +#line 1886 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4268,11 +4308,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4272 "util/configparser.c" /* yacc.c:1646 */ +#line 4312 "util/configparser.c" /* yacc.c:1646 */ break; - case 359: -#line 1872 "./util/configparser.y" /* yacc.c:1646 */ + case 363: +#line 1895 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4280,11 +4320,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4284 "util/configparser.c" /* yacc.c:1646 */ +#line 4324 "util/configparser.c" /* yacc.c:1646 */ break; - case 360: -#line 1881 "./util/configparser.y" /* yacc.c:1646 */ + case 364: +#line 1904 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4292,29 +4332,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4296 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 361: -#line 1890 "./util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("\nP(python:)\n")); - } -#line 4304 "util/configparser.c" /* yacc.c:1646 */ +#line 4336 "util/configparser.c" /* yacc.c:1646 */ break; case 365: -#line 1899 "./util/configparser.y" /* yacc.c:1646 */ +#line 1913 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("\nP(python:)\n")); + } +#line 4344 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 369: +#line 1922 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->python_script); cfg_parser->cfg->python_script = (yyvsp[0].str); } -#line 4314 "util/configparser.c" /* yacc.c:1646 */ +#line 4354 "util/configparser.c" /* yacc.c:1646 */ break; - case 366: -#line 1905 "./util/configparser.y" /* yacc.c:1646 */ + case 370: +#line 1928 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4323,21 +4363,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4327 "util/configparser.c" /* yacc.c:1646 */ +#line 4367 "util/configparser.c" /* yacc.c:1646 */ break; - case 367: -#line 1915 "./util/configparser.y" /* yacc.c:1646 */ + case 371: +#line 1938 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 4337 "util/configparser.c" /* yacc.c:1646 */ +#line 4377 "util/configparser.c" /* yacc.c:1646 */ break; -#line 4341 "util/configparser.c" /* yacc.c:1646 */ +#line 4381 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4565,7 +4605,7 @@ yyreturn: #endif return yyresult; } -#line 1921 "./util/configparser.y" /* yacc.c:1906 */ +#line 1944 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 16d8e1c36..1e29666dd 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -174,56 +174,58 @@ extern int yydebug; VAR_SSL_SERVICE_PEM = 384, VAR_SSL_PORT = 385, VAR_FORWARD_FIRST = 386, - VAR_STUB_FIRST = 387, - VAR_MINIMAL_RESPONSES = 388, - VAR_RRSET_ROUNDROBIN = 389, - VAR_MAX_UDP_SIZE = 390, - VAR_DELAY_CLOSE = 391, - VAR_UNBLOCK_LAN_ZONES = 392, - VAR_INSECURE_LAN_ZONES = 393, - VAR_INFRA_CACHE_MIN_RTT = 394, - VAR_DNS64_PREFIX = 395, - VAR_DNS64_SYNTHALL = 396, - VAR_DNSTAP = 397, - VAR_DNSTAP_ENABLE = 398, - VAR_DNSTAP_SOCKET_PATH = 399, - VAR_DNSTAP_SEND_IDENTITY = 400, - VAR_DNSTAP_SEND_VERSION = 401, - VAR_DNSTAP_IDENTITY = 402, - VAR_DNSTAP_VERSION = 403, - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 404, - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 405, - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 406, - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 407, - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 408, - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 409, - VAR_HARDEN_ALGO_DOWNGRADE = 410, - VAR_IP_TRANSPARENT = 411, - VAR_DISABLE_DNSSEC_LAME_CHECK = 412, - VAR_RATELIMIT = 413, - VAR_RATELIMIT_SLABS = 414, - VAR_RATELIMIT_SIZE = 415, - VAR_RATELIMIT_FOR_DOMAIN = 416, - VAR_RATELIMIT_BELOW_DOMAIN = 417, - VAR_RATELIMIT_FACTOR = 418, - VAR_CAPS_WHITELIST = 419, - VAR_CACHE_MAX_NEGATIVE_TTL = 420, - VAR_PERMIT_SMALL_HOLDDOWN = 421, - VAR_QNAME_MINIMISATION = 422, - VAR_QNAME_MINIMISATION_STRICT = 423, - VAR_IP_FREEBIND = 424, - VAR_DEFINE_TAG = 425, - VAR_LOCAL_ZONE_TAG = 426, - VAR_ACCESS_CONTROL_TAG = 427, - VAR_LOCAL_ZONE_OVERRIDE = 428, - VAR_ACCESS_CONTROL_TAG_ACTION = 429, - VAR_ACCESS_CONTROL_TAG_DATA = 430, - VAR_VIEW = 431, - VAR_ACCESS_CONTROL_VIEW = 432, - VAR_VIEW_FIRST = 433, - VAR_SERVE_EXPIRED = 434, - VAR_FAKE_DSA = 435, - VAR_LOG_IDENTITY = 436 + VAR_STUB_SSL_UPSTREAM = 387, + VAR_FORWARD_SSL_UPSTREAM = 388, + VAR_STUB_FIRST = 389, + VAR_MINIMAL_RESPONSES = 390, + VAR_RRSET_ROUNDROBIN = 391, + VAR_MAX_UDP_SIZE = 392, + VAR_DELAY_CLOSE = 393, + VAR_UNBLOCK_LAN_ZONES = 394, + VAR_INSECURE_LAN_ZONES = 395, + VAR_INFRA_CACHE_MIN_RTT = 396, + VAR_DNS64_PREFIX = 397, + VAR_DNS64_SYNTHALL = 398, + VAR_DNSTAP = 399, + VAR_DNSTAP_ENABLE = 400, + VAR_DNSTAP_SOCKET_PATH = 401, + VAR_DNSTAP_SEND_IDENTITY = 402, + VAR_DNSTAP_SEND_VERSION = 403, + VAR_DNSTAP_IDENTITY = 404, + VAR_DNSTAP_VERSION = 405, + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 406, + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 407, + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 408, + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 409, + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 410, + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 411, + VAR_HARDEN_ALGO_DOWNGRADE = 412, + VAR_IP_TRANSPARENT = 413, + VAR_DISABLE_DNSSEC_LAME_CHECK = 414, + VAR_RATELIMIT = 415, + VAR_RATELIMIT_SLABS = 416, + VAR_RATELIMIT_SIZE = 417, + VAR_RATELIMIT_FOR_DOMAIN = 418, + VAR_RATELIMIT_BELOW_DOMAIN = 419, + VAR_RATELIMIT_FACTOR = 420, + VAR_CAPS_WHITELIST = 421, + VAR_CACHE_MAX_NEGATIVE_TTL = 422, + VAR_PERMIT_SMALL_HOLDDOWN = 423, + VAR_QNAME_MINIMISATION = 424, + VAR_QNAME_MINIMISATION_STRICT = 425, + VAR_IP_FREEBIND = 426, + VAR_DEFINE_TAG = 427, + VAR_LOCAL_ZONE_TAG = 428, + VAR_ACCESS_CONTROL_TAG = 429, + VAR_LOCAL_ZONE_OVERRIDE = 430, + VAR_ACCESS_CONTROL_TAG_ACTION = 431, + VAR_ACCESS_CONTROL_TAG_DATA = 432, + VAR_VIEW = 433, + VAR_ACCESS_CONTROL_VIEW = 434, + VAR_VIEW_FIRST = 435, + VAR_SERVE_EXPIRED = 436, + VAR_FAKE_DSA = 437, + VAR_LOG_IDENTITY = 438 }; #endif /* Tokens. */ @@ -356,56 +358,58 @@ extern int yydebug; #define VAR_SSL_SERVICE_PEM 384 #define VAR_SSL_PORT 385 #define VAR_FORWARD_FIRST 386 -#define VAR_STUB_FIRST 387 -#define VAR_MINIMAL_RESPONSES 388 -#define VAR_RRSET_ROUNDROBIN 389 -#define VAR_MAX_UDP_SIZE 390 -#define VAR_DELAY_CLOSE 391 -#define VAR_UNBLOCK_LAN_ZONES 392 -#define VAR_INSECURE_LAN_ZONES 393 -#define VAR_INFRA_CACHE_MIN_RTT 394 -#define VAR_DNS64_PREFIX 395 -#define VAR_DNS64_SYNTHALL 396 -#define VAR_DNSTAP 397 -#define VAR_DNSTAP_ENABLE 398 -#define VAR_DNSTAP_SOCKET_PATH 399 -#define VAR_DNSTAP_SEND_IDENTITY 400 -#define VAR_DNSTAP_SEND_VERSION 401 -#define VAR_DNSTAP_IDENTITY 402 -#define VAR_DNSTAP_VERSION 403 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 404 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 405 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 406 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 407 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 408 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 409 -#define VAR_HARDEN_ALGO_DOWNGRADE 410 -#define VAR_IP_TRANSPARENT 411 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 412 -#define VAR_RATELIMIT 413 -#define VAR_RATELIMIT_SLABS 414 -#define VAR_RATELIMIT_SIZE 415 -#define VAR_RATELIMIT_FOR_DOMAIN 416 -#define VAR_RATELIMIT_BELOW_DOMAIN 417 -#define VAR_RATELIMIT_FACTOR 418 -#define VAR_CAPS_WHITELIST 419 -#define VAR_CACHE_MAX_NEGATIVE_TTL 420 -#define VAR_PERMIT_SMALL_HOLDDOWN 421 -#define VAR_QNAME_MINIMISATION 422 -#define VAR_QNAME_MINIMISATION_STRICT 423 -#define VAR_IP_FREEBIND 424 -#define VAR_DEFINE_TAG 425 -#define VAR_LOCAL_ZONE_TAG 426 -#define VAR_ACCESS_CONTROL_TAG 427 -#define VAR_LOCAL_ZONE_OVERRIDE 428 -#define VAR_ACCESS_CONTROL_TAG_ACTION 429 -#define VAR_ACCESS_CONTROL_TAG_DATA 430 -#define VAR_VIEW 431 -#define VAR_ACCESS_CONTROL_VIEW 432 -#define VAR_VIEW_FIRST 433 -#define VAR_SERVE_EXPIRED 434 -#define VAR_FAKE_DSA 435 -#define VAR_LOG_IDENTITY 436 +#define VAR_STUB_SSL_UPSTREAM 387 +#define VAR_FORWARD_SSL_UPSTREAM 388 +#define VAR_STUB_FIRST 389 +#define VAR_MINIMAL_RESPONSES 390 +#define VAR_RRSET_ROUNDROBIN 391 +#define VAR_MAX_UDP_SIZE 392 +#define VAR_DELAY_CLOSE 393 +#define VAR_UNBLOCK_LAN_ZONES 394 +#define VAR_INSECURE_LAN_ZONES 395 +#define VAR_INFRA_CACHE_MIN_RTT 396 +#define VAR_DNS64_PREFIX 397 +#define VAR_DNS64_SYNTHALL 398 +#define VAR_DNSTAP 399 +#define VAR_DNSTAP_ENABLE 400 +#define VAR_DNSTAP_SOCKET_PATH 401 +#define VAR_DNSTAP_SEND_IDENTITY 402 +#define VAR_DNSTAP_SEND_VERSION 403 +#define VAR_DNSTAP_IDENTITY 404 +#define VAR_DNSTAP_VERSION 405 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 406 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 407 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 408 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 409 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 410 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 411 +#define VAR_HARDEN_ALGO_DOWNGRADE 412 +#define VAR_IP_TRANSPARENT 413 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 414 +#define VAR_RATELIMIT 415 +#define VAR_RATELIMIT_SLABS 416 +#define VAR_RATELIMIT_SIZE 417 +#define VAR_RATELIMIT_FOR_DOMAIN 418 +#define VAR_RATELIMIT_BELOW_DOMAIN 419 +#define VAR_RATELIMIT_FACTOR 420 +#define VAR_CAPS_WHITELIST 421 +#define VAR_CACHE_MAX_NEGATIVE_TTL 422 +#define VAR_PERMIT_SMALL_HOLDDOWN 423 +#define VAR_QNAME_MINIMISATION 424 +#define VAR_QNAME_MINIMISATION_STRICT 425 +#define VAR_IP_FREEBIND 426 +#define VAR_DEFINE_TAG 427 +#define VAR_LOCAL_ZONE_TAG 428 +#define VAR_ACCESS_CONTROL_TAG 429 +#define VAR_LOCAL_ZONE_OVERRIDE 430 +#define VAR_ACCESS_CONTROL_TAG_ACTION 431 +#define VAR_ACCESS_CONTROL_TAG_DATA 432 +#define VAR_VIEW 433 +#define VAR_ACCESS_CONTROL_VIEW 434 +#define VAR_VIEW_FIRST 435 +#define VAR_SERVE_EXPIRED 436 +#define VAR_FAKE_DSA 437 +#define VAR_LOG_IDENTITY 438 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -416,7 +420,7 @@ union YYSTYPE char* str; -#line 420 "util/configparser.h" /* yacc.c:1909 */ +#line 424 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 2a3df2891..530e52881 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -106,6 +106,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_SO_REUSEPORT VAR_HARDEN_BELOW_NXDOMAIN %token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM %token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST +%token VAR_STUB_SSL_UPSTREAM VAR_FORWARD_SSL_UPSTREAM %token VAR_STUB_FIRST VAR_MINIMAL_RESPONSES VAR_RRSET_ROUNDROBIN %token VAR_MAX_UDP_SIZE VAR_DELAY_CLOSE %token VAR_UNBLOCK_LAN_ZONES VAR_INSECURE_LAN_ZONES @@ -221,7 +222,8 @@ stubstart: VAR_STUB_ZONE ; contents_stub: contents_stub content_stub | ; -content_stub: stub_name | stub_host | stub_addr | stub_prime | stub_first +content_stub: stub_name | stub_host | stub_addr | stub_prime | stub_first | + stub_ssl_upstream ; forwardstart: VAR_FORWARD_ZONE { @@ -237,7 +239,8 @@ forwardstart: VAR_FORWARD_ZONE ; contents_forward: contents_forward content_forward | ; -content_forward: forward_name | forward_host | forward_addr | forward_first +content_forward: forward_name | forward_host | forward_addr | forward_first | + forward_ssl_upstream ; viewstart: VAR_VIEW { @@ -1595,6 +1598,16 @@ stub_first: VAR_STUB_FIRST STRING_ARG free($2); } ; +stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG + { + OUTYY(("P(stub-ssl-upstream:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->stubs->ssl_upstream = + (strcmp($2, "yes")==0); + free($2); + } + ; stub_prime: VAR_STUB_PRIME STRING_ARG { OUTYY(("P(stub-prime:%s)\n", $2)); @@ -1638,6 +1651,16 @@ forward_first: VAR_FORWARD_FIRST STRING_ARG free($2); } ; +forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG + { + OUTYY(("P(forward-ssl-upstream:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->forwards->ssl_upstream = + (strcmp($2, "yes")==0); + free($2); + } + ; view_name: VAR_NAME STRING_ARG { OUTYY(("P(name:%s)\n", $2)); diff --git a/util/fptr_wlist.c b/util/fptr_wlist.c index d16a0bb1f..6163b9e90 100644 --- a/util/fptr_wlist.c +++ b/util/fptr_wlist.c @@ -270,7 +270,7 @@ fptr_whitelist_modenv_send_query(struct outbound_entry* (*fptr)( uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct edns_option* opt_list, struct sockaddr_storage* addr, - socklen_t addrlen, uint8_t* zone, size_t zonelen, + socklen_t addrlen, uint8_t* zone, size_t zonelen, uint8_t ssl_upstream, struct module_qstate* q)) { if(fptr == &worker_send_query) return 1; diff --git a/util/fptr_wlist.h b/util/fptr_wlist.h index 98ca21bb9..af1605ec7 100644 --- a/util/fptr_wlist.h +++ b/util/fptr_wlist.h @@ -213,7 +213,7 @@ int fptr_whitelist_modenv_send_query(struct outbound_entry* (*fptr)( uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct edns_option*, struct sockaddr_storage* addr, socklen_t addrlen, - uint8_t* zone, size_t zonelen, + uint8_t* zone, size_t zonelen, uint8_t ssl_upstream, struct module_qstate* q)); /** diff --git a/util/module.h b/util/module.h index c3ce8a40e..e63225387 100644 --- a/util/module.h +++ b/util/module.h @@ -220,6 +220,7 @@ struct module_env { * @param addrlen: length of addr. * @param zone: delegation point name. * @param zonelen: length of zone name. + * @param ssl_upstream: use SSL for upstream queries. * @param q: wich query state to reactivate upon return. * @return: false on failure (memory or socket related). no query was * sent. Or returns an outbound entry with qsent and qstate set. @@ -230,7 +231,8 @@ struct module_env { uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct edns_option* opt_list, struct sockaddr_storage* addr, socklen_t addrlen, - uint8_t* zone, size_t zonelen, struct module_qstate* q); + uint8_t* zone, size_t zonelen, uint8_t ssl_upstream, + struct module_qstate* q); /** * Detach-subqueries.