diff --git a/doc/Changelog b/doc/Changelog index b3182e541..7bfecdf63 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +8 June 2017: Ralph + - Added domain name based ECS whitelist. + 8 June 2017: Wouter - Detect chacha for dnscrypt at configure time. - dnscrypt unit tests with chacha. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index ed8cb11b3..f88116a67 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1515,7 +1515,12 @@ entries will be purged from cache. Send client source address to this authority. Append /num to indicate a classless delegation netblock, for example like 10.2.3.4/24 or 2001::11/64. Can be given multiple times. Authorities not listed will not receive edns-subnet -information. +information, unless domain in query is specified in \fBclient\-subnet\-zone\fR. +.TP +.B client\-subnet\-zone: \fI\fR +Send client source address in queries for this domain and its subdomains. Can be +given multiple times. Zones not listed will not receive edns-subnet information, +unless hosted by authority specified in \fBsend\-client\-subnet\fR. .TP .B client\-subnet\-always\-forward: \fI\fR Specify whether the ECS whitelist check (configured using diff --git a/edns-subnet/subnet-whitelist.c b/edns-subnet/subnet-whitelist.c index 1cfdb4be3..1ea7fb1b2 100644 --- a/edns-subnet/subnet-whitelist.c +++ b/edns-subnet/subnet-whitelist.c @@ -50,42 +50,44 @@ #include "util/config_file.h" #include "util/net_help.h" #include "util/storage/dnstree.h" +#include "sldns/str2wire.h" +#include "util/data/dname.h" -struct ednssubnet_upstream* -upstream_create(void) +struct ecs_whitelist* +ecs_whitelist_create(void) { - struct ednssubnet_upstream* upstream = - (struct ednssubnet_upstream*)calloc(1, - sizeof(struct ednssubnet_upstream)); - if(!upstream) + struct ecs_whitelist* whitelist = + (struct ecs_whitelist*)calloc(1, + sizeof(struct ecs_whitelist)); + if(!whitelist) return NULL; - upstream->region = regional_create(); - if(!upstream->region) { - upstream_delete(upstream); + whitelist->region = regional_create(); + if(!whitelist->region) { + ecs_whitelist_delete(whitelist); return NULL; } - return upstream; + return whitelist; } void -upstream_delete(struct ednssubnet_upstream* upstream) +ecs_whitelist_delete(struct ecs_whitelist* whitelist) { - if(!upstream) + if(!whitelist) return; - regional_destroy(upstream->region); - free(upstream); + regional_destroy(whitelist->region); + free(whitelist); } -/** insert new address into upstream structure */ +/** insert new address into whitelist structure */ static int -upstream_insert(struct ednssubnet_upstream* upstream, +upstream_insert(struct ecs_whitelist* whitelist, struct sockaddr_storage* addr, socklen_t addrlen, int net) { struct addr_tree_node* node = (struct addr_tree_node*)regional_alloc( - upstream->region, sizeof(*node)); + whitelist->region, sizeof(*node)); if(!node) return 0; - if(!addr_tree_insert(&upstream->tree, node, addr, addrlen, net)) { + if(!addr_tree_insert(&whitelist->upstream, node, addr, addrlen, net)) { verbose(VERB_QUERY, "duplicate send-client-subnet address ignored."); } @@ -94,7 +96,7 @@ upstream_insert(struct ednssubnet_upstream* upstream, /** apply edns-subnet string */ static int -upstream_str_cfg(struct ednssubnet_upstream* upstream, const char* str) +upstream_str_cfg(struct ecs_whitelist* whitelist, const char* str) { struct sockaddr_storage addr; int net; @@ -104,7 +106,7 @@ upstream_str_cfg(struct ednssubnet_upstream* upstream, const char* str) log_err("cannot parse send-client-subnet netblock: %s", str); return 0; } - if(!upstream_insert(upstream, &addr, addrlen, net)) { + if(!upstream_insert(whitelist, &addr, addrlen, net)) { log_err("out of memory"); return 0; } @@ -113,41 +115,93 @@ upstream_str_cfg(struct ednssubnet_upstream* upstream, const char* str) /** read client_subnet config */ static int -read_upstream(struct ednssubnet_upstream* upstream, struct config_file* cfg) +read_upstream(struct ecs_whitelist* whitelist, struct config_file* cfg) { struct config_strlist* p; for(p = cfg->client_subnet; p; p = p->next) { log_assert(p->str); - if(!upstream_str_cfg(upstream, p->str)) + if(!upstream_str_cfg(whitelist, p->str)) return 0; } return 1; } -int -upstream_apply_cfg(struct ednssubnet_upstream* upstream, - struct config_file* cfg) +/** read client_subnet_zone config */ +static int +read_names(struct ecs_whitelist* whitelist, struct config_file* cfg) { - regional_free_all(upstream->region); - addr_tree_init(&upstream->tree); - if(!read_upstream(upstream, cfg)) - return 0; - addr_tree_init_parents(&upstream->tree); + /* parse names, report errors, insert into tree */ + struct config_strlist* p; + struct name_tree_node* n; + uint8_t* nm, *nmr; + size_t nm_len; + int nm_labs; + + for(p = cfg->client_subnet_zone; p; p = p->next) { + log_assert(p->str); + nm = sldns_str2wire_dname(p->str, &nm_len); + if(!nm) { + log_err("cannot parse client-subnet-zone: %s", p->str); + return 0; + } + nm_labs = dname_count_size_labels(nm, &nm_len); + nmr = (uint8_t*)regional_alloc_init(whitelist->region, nm, + nm_len); + free(nm); + if(!nmr) { + log_err("out of memory"); + return 0; + } + n = (struct name_tree_node*)regional_alloc(whitelist->region, + sizeof(*n)); + if(!n) { + log_err("out of memory"); + return 0; + } + if(!name_tree_insert(&whitelist->dname, n, nmr, nm_len, nm_labs, + LDNS_RR_CLASS_IN)) { + verbose(VERB_QUERY, "ignoring duplicate " + "client-subnet-zone: %s", p->str); + } + } return 1; } int -upstream_is_whitelisted(struct ednssubnet_upstream* upstream, - struct sockaddr_storage* addr, socklen_t addrlen) +ecs_whitelist_apply_cfg(struct ecs_whitelist* whitelist, + struct config_file* cfg) { - return addr_tree_lookup(&upstream->tree, addr, addrlen) != NULL; + regional_free_all(whitelist->region); + addr_tree_init(&whitelist->upstream); + name_tree_init(&whitelist->dname); + if(!read_upstream(whitelist, cfg)) + return 0; + if(!read_names(whitelist, cfg)) + return 0; + addr_tree_init_parents(&whitelist->upstream); + name_tree_init_parents(&whitelist->dname); + return 1; +} + +int +ecs_is_whitelisted(struct ecs_whitelist* whitelist, + struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* qname, + size_t qname_len, uint16_t qclass) +{ + int labs; + if(addr_tree_lookup(&whitelist->upstream, addr, addrlen)) + return 1; + /* Not in upstream whitelist, check dname whitelist. */ + labs = dname_count_labels(qname); + return name_tree_lookup(&whitelist->dname, qname, qname_len, labs, + qclass) != NULL; } size_t -upstream_get_mem(struct ednssubnet_upstream* upstream) +ecs_whitelist_get_mem(struct ecs_whitelist* whitelist) { - if(!upstream) return 0; - return sizeof(*upstream) + regional_get_mem(upstream->region); + if(!whitelist) return 0; + return sizeof(*whitelist) + regional_get_mem(whitelist->region); } #endif /* CLIENT_SUBNET */ diff --git a/edns-subnet/subnet-whitelist.h b/edns-subnet/subnet-whitelist.h index c08b40d86..8cd03abab 100644 --- a/edns-subnet/subnet-whitelist.h +++ b/edns-subnet/subnet-whitelist.h @@ -36,8 +36,8 @@ /** * \file * - * Keep track of the white listed servers for subnet option. Based - * on acl_list.c|h + * Keep track of the white listed servers and domain names for subnet option. + * Based on acl_list.c|h */ #ifndef EDNSSUBNET_WHITELIST_H @@ -48,9 +48,9 @@ struct config_file; struct regional; /** - * ednssubnet_upstream structure + * ecs_whitelist structure */ -struct ednssubnet_upstream { +struct ecs_whitelist { /** regional for allocation */ struct regional* region; /** @@ -58,45 +58,54 @@ struct ednssubnet_upstream { * contents of type addr_tree_node. Each node is an address span * Unbound will append subnet option for. */ - rbtree_type tree; + rbtree_type upstream; + /** + * Tree of domain names for which Unbound will append an ECS option. + * rbtree of struct name_tree_node. + */ + rbtree_type dname; }; /** - * Create ednssubnet_upstream structure + * Create ecs_whitelist structure * @return new structure or NULL on error. */ -struct ednssubnet_upstream* upstream_create(void); +struct ecs_whitelist* ecs_whitelist_create(void); /** - * Delete ednssubnet_upstream structure. - * @param upstream: to delete. + * Delete ecs_whitelist structure. + * @param whitelist: to delete. */ -void upstream_delete(struct ednssubnet_upstream* upstream); +void ecs_whitelist_delete(struct ecs_whitelist* whitelist); /** - * Process ednssubnet_upstream config. - * @param upstream: where to store. + * Process ecs_whitelist config. + * @param whitelist: where to store. * @param cfg: config options. * @return 0 on error. */ -int upstream_apply_cfg(struct ednssubnet_upstream* upstream, +int ecs_whitelist_apply_cfg(struct ecs_whitelist* whitelist, struct config_file* cfg); /** - * See if an address is whitelisted. - * @param upstream: structure for address storage. + * See if an address or domain is whitelisted. + * @param whitelist: structure for address storage. * @param addr: address to check * @param addrlen: length of addr. + * @param qname: dname in query + * @param qname_len: length of dname + * @param qclass: class in query * @return: true if the address is whitelisted for subnet option. */ -int upstream_is_whitelisted(struct ednssubnet_upstream* upstream, - struct sockaddr_storage* addr, socklen_t addrlen); +int ecs_is_whitelisted(struct ecs_whitelist* whitelist, + struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* qname, + size_t qname_len, uint16_t qclass); /** - * Get memory used by ednssubnet_upstream structure. - * @param upstream: structure for address storage. + * Get memory used by ecs_whitelist structure. + * @param whitelist: structure for address storage. * @return bytes in use. */ -size_t upstream_get_mem(struct ednssubnet_upstream* upstream); +size_t ecs_whitelist_get_mem(struct ecs_whitelist* whitelist); #endif /* EDNSSUBNET_WHITELIST_H */ diff --git a/edns-subnet/subnetmod.c b/edns-subnet/subnetmod.c index 4008004e4..fbf58777f 100644 --- a/edns-subnet/subnetmod.c +++ b/edns-subnet/subnetmod.c @@ -135,7 +135,7 @@ ecs_opt_list_append(struct ecs_data* ecs, struct edns_option** list, } } -int ecs_whitelist_check(struct query_info* ATTR_UNUSED(qinfo), +int ecs_whitelist_check(struct query_info* qinfo, uint16_t ATTR_UNUSED(flags), struct module_qstate* qstate, struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* ATTR_UNUSED(zone), size_t ATTR_UNUSED(zonelen), @@ -154,8 +154,9 @@ int ecs_whitelist_check(struct query_info* ATTR_UNUSED(qinfo), if(sq->ecs_server_out.subnet_validdata && ((sq->subnet_downstream && qstate->env->cfg->client_subnet_always_forward) || - upstream_is_whitelisted(sn_env->edns_subnet_upstreams, - addr, addrlen))) { + ecs_is_whitelisted(sn_env->whitelist, + addr, addrlen, qinfo->qname, qinfo->qname_len, + qinfo->qclass))) { /* Address on whitelist or client query contains ECS option, we * want to sent out ECS. Only add option if it is not already * set. */ @@ -199,9 +200,9 @@ subnetmod_init(struct module_env *env, int id) return 0; } /* whitelist for edns subnet capable servers */ - sn_env->edns_subnet_upstreams = upstream_create(); - if(!sn_env->edns_subnet_upstreams || - !upstream_apply_cfg(sn_env->edns_subnet_upstreams, env->cfg)) { + sn_env->whitelist = ecs_whitelist_create(); + if(!sn_env->whitelist || + !ecs_whitelist_apply_cfg(sn_env->whitelist, env->cfg)) { log_err("subnet: could not create ECS whitelist"); slabhash_delete(sn_env->subnet_msg_cache); free(sn_env); @@ -217,7 +218,7 @@ subnetmod_init(struct module_env *env, int id) env->cfg->client_subnet_always_forward /* bypass cache */, 0 /* no aggregation */, env)) { log_err("subnet: could not register opcode"); - upstream_delete(sn_env->edns_subnet_upstreams); + ecs_whitelist_delete(sn_env->whitelist); slabhash_delete(sn_env->subnet_msg_cache); free(sn_env); env->modinfo[id] = NULL; @@ -243,7 +244,7 @@ subnetmod_deinit(struct module_env *env, int id) lock_rw_destroy(&sn_env->biglock); inplace_cb_delete(env, inplace_cb_edns_back_parsed, id); inplace_cb_delete(env, inplace_cb_query, id); - upstream_delete(sn_env->edns_subnet_upstreams); + ecs_whitelist_delete(sn_env->whitelist); slabhash_delete(sn_env->subnet_msg_cache); alloc_clear(&sn_env->alloc); free(sn_env); @@ -781,7 +782,7 @@ subnetmod_get_mem(struct module_env *env, int id) if (!sn_env) return 0; return sizeof(*sn_env) + slabhash_get_mem(sn_env->subnet_msg_cache) + - upstream_get_mem(sn_env->edns_subnet_upstreams); + ecs_whitelist_get_mem(sn_env->whitelist); } /** diff --git a/edns-subnet/subnetmod.h b/edns-subnet/subnetmod.h index f2baa466a..29bf64b4f 100644 --- a/edns-subnet/subnetmod.h +++ b/edns-subnet/subnetmod.h @@ -57,7 +57,7 @@ struct subnet_env { * data: struct subnet_msg_cache_data* */ struct slabhash* subnet_msg_cache; /** access control, which upstream servers we send client address */ - struct ednssubnet_upstream* edns_subnet_upstreams; + struct ecs_whitelist* whitelist; /** allocation service */ struct alloc_cache alloc; lock_rw_type biglock; diff --git a/util/config_file.c b/util/config_file.c index 8fd6181c5..808a36776 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -178,6 +178,7 @@ config_create(void) cfg->forwards = NULL; #ifdef CLIENT_SUBNET cfg->client_subnet = NULL; + cfg->client_subnet_zone = NULL; cfg->client_subnet_opcode = LDNS_EDNS_CLIENT_SUBNET; cfg->client_subnet_always_forward = 0; cfg->max_client_subnet_ipv4 = 24; @@ -889,6 +890,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_YNO(opt, "rrset-roundrobin", rrset_roundrobin) #ifdef CLIENT_SUBNET else O_LST(opt, "send-client-subnet", client_subnet) + else O_LST(opt, "client-subnet-zone", client_subnet_zone) else O_DEC(opt, "max-client-subnet-ipv4", max_client_subnet_ipv4) else O_DEC(opt, "max-client-subnet-ipv6", max_client_subnet_ipv6) else O_YNO(opt, "client-subnet-always-forward:", @@ -1213,6 +1215,7 @@ config_delete(struct config_file* cfg) config_delstrlist(cfg->root_hints); #ifdef CLIENT_SUBNET config_delstrlist(cfg->client_subnet); + config_delstrlist(cfg->client_subnet_zone); #endif free(cfg->identity); free(cfg->version); diff --git a/util/config_file.h b/util/config_file.h index d97cfde31..bb7a29205 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -176,6 +176,8 @@ struct config_file { /** list of servers we send edns-client-subnet option to and * accept option from, linked list */ struct config_strlist* client_subnet; + /** list of zones we send edns-client-subnet option for */ + struct config_strlist* client_subnet_zone; /** opcode assigned by IANA for edns0-client-subnet option */ uint16_t client_subnet_opcode; /** Do not check whitelist if incoming query contains an ECS record */ diff --git a/util/configlexer.c b/util/configlexer.c index cd22aa24d..7fcff0bfe 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; @@ -184,7 +172,7 @@ extern FILE *yyin, *yyout; do \ { \ /* Undo effects of setting up yytext. */ \ - yy_size_t yyless_macro_arg = (n); \ + int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ @@ -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 228 -#define YY_END_OF_BUFFER 229 +#define YY_NUM_RULES 229 +#define YY_END_OF_BUFFER 230 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -387,254 +372,254 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[2233] = +static yyconst flex_int16_t yy_accept[2238] = { 0, - 1, 1, 210, 210, 214, 214, 218, 218, 222, 222, - 1, 1, 229, 226, 1, 208, 208, 227, 2, 227, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 210, 211, 211, 212, 227, 214, 215, 215, 216, 227, - 221, 218, 219, 219, 220, 227, 222, 223, 223, 224, - 227, 225, 209, 2, 213, 227, 225, 226, 0, 1, - 2, 2, 2, 2, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 1, 1, 211, 211, 215, 215, 219, 219, 223, 223, + 1, 1, 230, 227, 1, 209, 209, 228, 2, 228, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 211, 212, 212, 213, 228, 215, 216, 216, 217, 228, + 222, 219, 220, 220, 221, 228, 223, 224, 224, 225, + 228, 226, 210, 2, 214, 228, 226, 227, 0, 1, + 2, 2, 2, 2, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 210, 0, 214, 0, 221, 0, 218, 222, 0, 225, - 0, 2, 2, 225, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 211, 0, 215, 0, 222, 0, 219, 223, 0, 226, + 0, 2, 2, 226, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 225, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 226, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 225, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 77, - 226, 226, 226, 226, 226, 226, 8, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 227, 227, 226, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 77, + 227, 227, 227, 227, 227, 227, 8, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 226, 226, 226, 226, 88, 225, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 227, 227, 227, 227, 227, 227, 227, 88, 226, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 225, 226, 226, 226, 226, 226, 37, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 169, 226, 14, 15, 226, 18, 17, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 155, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 226, 227, 227, 227, 227, 227, 37, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 170, 227, 14, 15, 227, 18, 17, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 156, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 3, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 225, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 217, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 3, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 226, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 218, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 40, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 41, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 144, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 20, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 102, 226, 217, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 196, 226, 226, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 40, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 41, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 145, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 20, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 103, 227, 218, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 197, 227, 227, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 119, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 101, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 75, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 25, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 38, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 120, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 102, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 75, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 25, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 38, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 39, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 120, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 28, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 39, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 121, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 28, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 184, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 32, 226, 33, 226, 226, 226, 78, 226, 79, 226, - 226, 76, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 7, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 162, 226, 226, 226, 226, 104, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 185, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 32, 227, 33, 227, 227, 227, 78, 227, 79, 227, + 227, 76, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 7, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 163, 227, 227, 227, 227, 105, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 29, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 136, 226, 135, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 16, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 42, 226, 226, 226, - 226, 226, 226, 143, 226, 226, 226, 226, 81, 80, - 226, 226, 226, 226, 226, 226, 226, 226, 130, 226, - 226, 226, 226, 226, 226, 226, 226, 89, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 29, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 137, 227, 136, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 16, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 42, 227, 227, 227, + 227, 227, 227, 144, 227, 227, 227, 227, 81, 80, + 227, 227, 227, 227, 227, 227, 227, 227, 131, 227, + 227, 227, 227, 227, 227, 227, 227, 89, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 60, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 64, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 36, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 133, 134, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 6, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 194, 226, 226, 226, 226, + 227, 227, 227, 60, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 64, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 36, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 134, 135, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 6, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 195, 227, 227, 227, 227, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 26, 226, 226, 226, 226, - 226, 226, 226, 226, 126, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 148, 226, 127, 226, 226, - 160, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 27, 226, 226, 226, 226, - 84, 226, 85, 226, 83, 226, 226, 226, 226, 226, - 226, 226, 226, 99, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 183, 226, 226, 226, 226, - 226, 226, 226, 226, 128, 226, 226, 226, 226, 226, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 26, 227, 227, 227, 227, + 227, 227, 227, 227, 127, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 149, 227, 128, 227, 227, + 161, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 27, 227, 227, 227, 227, + 84, 227, 85, 227, 83, 227, 227, 227, 227, 227, + 227, 227, 227, 100, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 184, 227, 227, 227, 227, + 227, 227, 227, 227, 129, 227, 227, 227, 227, 227, - 131, 226, 226, 159, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 74, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 34, 226, 226, 22, - 226, 226, 226, 226, 19, 226, 109, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 49, 51, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 198, 226, 226, 170, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 86, 226, 226, 226, 226, 226, 226, 226, 98, + 132, 227, 227, 160, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 74, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 34, 227, 227, 22, + 227, 227, 227, 227, 19, 227, 110, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 49, 51, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 199, 227, 227, 171, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 86, 227, 227, 227, 227, 227, 227, 227, 99, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 204, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 103, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 154, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 118, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 114, 226, 121, 226, 226, 226, 226, 226, - 92, 226, 226, 70, 226, 226, 226, 146, 226, 226, - 226, 226, 226, 161, 226, 226, 226, 226, 226, 226, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 205, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 104, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 155, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 119, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 115, 227, 122, 227, 227, 227, 227, 227, + 92, 227, 227, 70, 227, 227, 227, 227, 147, 227, + 227, 227, 227, 227, 162, 227, 227, 227, 227, 227, - 226, 226, 226, 226, 175, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 117, 226, - 226, 226, 226, 226, 52, 53, 226, 226, 226, 226, - 226, 35, 226, 226, 226, 226, 226, 59, 122, 226, - 137, 226, 163, 132, 226, 226, 226, 45, 226, 124, - 226, 226, 226, 226, 226, 9, 226, 226, 226, 73, - 226, 226, 226, 226, 188, 226, 145, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 227, 227, 227, 227, 227, 176, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 118, + 227, 227, 227, 227, 227, 52, 53, 227, 227, 227, + 227, 227, 35, 227, 227, 227, 227, 227, 59, 123, + 227, 138, 227, 164, 133, 227, 227, 227, 45, 227, + 125, 227, 227, 227, 227, 227, 9, 227, 227, 227, + 73, 227, 227, 227, 227, 189, 227, 146, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 226, 105, 197, 226, 226, 174, 226, - 226, 226, 226, 226, 226, 226, 226, 156, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 207, 226, 123, 226, 226, 226, 44, 46, 226, - 226, 226, 226, 226, 226, 226, 72, 226, 226, 226, - 226, 186, 226, 193, 226, 226, 226, 226, 226, 150, - 23, 24, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 69, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 152, 149, 226, 226, + 227, 227, 227, 227, 227, 227, 106, 198, 227, 227, + 175, 227, 227, 227, 227, 227, 227, 227, 227, 157, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 208, 227, 124, 227, 227, 227, 44, + 46, 227, 227, 227, 227, 227, 227, 227, 72, 227, + 227, 227, 227, 187, 227, 194, 227, 227, 227, 227, + 227, 151, 23, 24, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 69, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 153, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 43, - 226, 226, 226, 226, 226, 226, 226, 226, 100, 13, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 202, - 226, 205, 226, 226, 226, 226, 226, 226, 12, 226, - 226, 21, 226, 226, 226, 192, 226, 195, 47, 226, - 158, 226, 151, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 113, 112, 226, 226, - 226, 226, 226, 226, 153, 147, 226, 226, 199, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 54, + 150, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 43, 227, 227, 227, 227, 227, 227, 227, + 227, 101, 13, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 203, 227, 206, 227, 227, 227, 227, 227, + 227, 12, 227, 227, 21, 227, 227, 227, 193, 227, + 196, 47, 227, 159, 227, 152, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 114, + 113, 227, 227, 227, 227, 227, 227, 227, 154, 148, + 227, 227, 200, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 187, 226, 226, 226, 226, 226, 157, - 226, 226, 226, 226, 226, 226, 226, 226, 48, 226, - 226, 226, 82, 226, 106, 226, 108, 138, 226, 226, - 226, 111, 226, 226, 164, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 171, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 139, 226, 226, 185, 226, 206, 226, - 226, 226, 30, 226, 226, 226, 226, 4, 226, 226, - 93, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 167, 226, 226, 226, 226, 226, 226, 200, 226, + 227, 227, 227, 54, 227, 227, 227, 188, 227, 227, + 227, 227, 227, 158, 227, 227, 227, 227, 227, 227, + 227, 227, 48, 227, 227, 227, 82, 227, 107, 227, + 109, 139, 227, 227, 227, 112, 227, 227, 165, 227, + 227, 227, 227, 227, 94, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 172, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 140, 227, + 227, 186, 227, 207, 227, 227, 227, 30, 227, 227, + 227, 227, 4, 227, 227, 93, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 168, 227, 227, 227, - 226, 226, 226, 226, 173, 226, 226, 142, 226, 226, - 226, 226, 226, 226, 226, 226, 57, 226, 31, 191, - 226, 168, 226, 226, 11, 226, 226, 226, 226, 226, - 226, 140, 61, 226, 226, 226, 226, 116, 226, 226, - 226, 226, 226, 95, 226, 226, 226, 226, 226, 226, - 226, 172, 90, 226, 87, 226, 226, 226, 63, 67, - 62, 226, 55, 226, 226, 226, 10, 226, 226, 226, - 189, 226, 226, 226, 115, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 68, 66, 226, 56, 203, 226, 226, 226, 129, 226, + 227, 227, 227, 201, 227, 227, 227, 227, 227, 174, + 227, 227, 143, 227, 227, 227, 227, 227, 227, 227, + 227, 57, 227, 31, 192, 227, 169, 227, 227, 11, + 227, 227, 227, 227, 227, 227, 141, 61, 227, 227, + 227, 227, 117, 227, 227, 227, 227, 227, 96, 227, + 227, 227, 227, 227, 227, 227, 173, 90, 227, 87, + 227, 227, 227, 63, 67, 62, 227, 55, 227, 227, + 227, 10, 227, 227, 227, 190, 227, 227, 227, 116, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 68, 66, 227, 56, 204, - 226, 141, 226, 226, 226, 226, 226, 107, 50, 226, - 226, 201, 226, 226, 226, 226, 226, 226, 91, 65, - 96, 97, 58, 226, 190, 110, 226, 226, 226, 166, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 71, 226, 165, 226, 182, 226, 226, 226, 226, - 226, 226, 5, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 94, 226, 226, 226, 226, 226, 226, 125, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 227, 227, 227, 130, 227, 227, 142, 227, 227, 227, + 227, 227, 108, 50, 227, 227, 202, 227, 227, 227, + 227, 227, 227, 91, 65, 97, 98, 58, 227, 191, + 111, 227, 227, 227, 167, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 71, 227, 166, 227, + 183, 227, 227, 227, 227, 227, 227, 5, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 95, 227, 227, 227, 227, + 227, 227, 126, 227, 227, 227, 227, 227, 227, 227, - 226, 226, 226, 226, 226, 226, 178, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 176, 226, 179, 180, 226, 226, 226, 226, 226, 177, - 181, 0 + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 179, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 177, 227, 180, 181, 227, + 227, 227, 227, 227, 178, 182, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -677,15 +662,15 @@ static yyconst YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[2247] = +static yyconst flex_uint16_t yy_base[2252] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 2503, 2455, 81, 4382, 4382, 4382, 96, 52, + 90, 112, 2503, 2455, 81, 4392, 4392, 4392, 96, 52, 72, 107, 111, 70, 91, 109, 124, 98, 127, 114, 133, 136, 64, 144, 146, 150, 156, 177, 167, 182, - 1910, 4382, 4382, 4382, 182, 1672, 4382, 4382, 4382, 173, - 1553, 1246, 4382, 4382, 4382, 206, 957, 4382, 4382, 4382, - 194, 879, 4382, 210, 4382, 214, 174, 843, 218, 147, + 1910, 4392, 4392, 4392, 182, 1672, 4392, 4392, 4392, 173, + 1553, 1246, 4392, 4392, 4392, 206, 957, 4392, 4392, 4392, + 194, 879, 4392, 210, 4392, 214, 174, 843, 218, 147, 0, 225, 0, 0, 189, 143, 97, 219, 212, 145, 179, 214, 221, 223, 227, 234, 229, 170, 231, 232, 233, 237, 244, 238, 253, 260, 236, 257, 258, 263, @@ -717,13 +702,13 @@ static yyconst flex_uint16_t yy_base[2247] = 737, 749, 735, 741, 744, 739, 752, 759, 761, 748, 756, 762, 764, 767, 774, 768, 775, 776, 779, 783, 781, 788, 789, 791, 793, 792, 794, 802, 799, 800, - 801, 807, 810, 811, 809, 814, 812, 818, 819, 4382, - 824, 826, 827, 828, 829, 830, 4382, 832, 831, 834, + 801, 807, 810, 811, 809, 814, 812, 818, 819, 4392, + 824, 826, 827, 828, 829, 830, 4392, 832, 831, 834, 844, 836, 841, 840, 853, 862, 855, 863, 859, 860, 864, 866, 867, 868, 869, 872, 870, 890, 875, 878, 876, 899, 877, 882, 884, 894, 900, 903, 905, 907, - 908, 910, 915, 912, 911, 913, 923, 4382, 931, 939, + 908, 910, 915, 912, 911, 913, 923, 4392, 931, 939, 914, 924, 925, 936, 941, 943, 934, 951, 947, 949, 948, 950, 953, 954, 958, 966, 962, 968, 972, 982, 978, 980, 987, 964, 983, 984, 961, 986, 995, 992, @@ -736,450 +721,452 @@ static yyconst flex_uint16_t yy_base[2247] = 1113, 1115, 1121, 1122, 1119, 1124, 1129, 1133, 1135, 1139, 1125, 1132, 1140, 1142, 1145, 1147, 1152, 1155, 1148, 1156, - 1158, 1159, 1161, 1164, 1162, 1168, 1171, 1174, 1176, 4382, + 1158, 1159, 1161, 1164, 1162, 1168, 1171, 1174, 1176, 4392, 1177, 1184, 1179, 1182, 1181, 1180, 1194, 1187, 1189, 1190, - 1191, 1197, 4382, 1203, 4382, 4382, 1200, 4382, 4382, 1201, + 1191, 1197, 4392, 1203, 4392, 4392, 1200, 4392, 4392, 1201, 1208, 1220, 1204, 1212, 1227, 1228, 1226, 1222, 1223, 1225, 1233, 1238, 1242, 1244, 1239, 1251, 1248, 1255, 1256, 1257, 1260, 1262, 1263, 1264, 1266, 1265, 1268, 1271, 1274, 1275, 1270, 1278, 1277, 1287, 1295, 1296, 1291, 1297, 1298, 1299, - 1300, 1304, 1301, 1302, 1280, 1305, 1311, 1316, 1312, 4382, + 1300, 1304, 1301, 1302, 1280, 1305, 1311, 1316, 1312, 4392, 1313, 1315, 1317, 1323, 1325, 1326, 1329, 1332, 1330, 1334, - 4382, 1333, 1343, 1336, 1346, 1338, 1340, 1347, 1348, 1349, + 4392, 1333, 1343, 1336, 1346, 1338, 1340, 1347, 1348, 1349, 1352, 1353, 1355, 1361, 1350, 1363, 1366, 1365, 1367, 1375, 1379, 1382, 1380, 1378, 1381, 1383, 1385, 1390, 1392, 1395, 1394, 1396, 1405, 1400, 1403, 1404, 1408, 1410, 1411, 1413, 1414, 1416, 1417, 1418, 1440, 1423, 1427, 1419, 1421, 1429, 1426, 1442, 1436, 1454, 1444, 1455, 1452, 1457, 1460, 1463, 1464, 1466, 1468, 1475, 1471, 1478, 1481, 1476, 1479, 1483, - 1486, 1490, 1494, 1493, 1492, 1495, 1496, 1503, 1504, 4382, + 1486, 1490, 1494, 1493, 1492, 1495, 1496, 1503, 1504, 4392, 1511, 1509, 1510, 1513, 1522, 1518, 1517, 1519, 1521, 1524, 1531, 1532, 1520, 1533, 1527, 1534, 1535, 1537, 1542, 1549, - 4382, 1544, 1545, 1550, 1552, 1554, 1556, 1557, 1560, 1565, - 1576, 1571, 4382, 1563, 1578, 1581, 1580, 1573, 1574, 1575, - 1592, 1588, 1593, 1589, 1595, 1591, 1597, 1598, 1599, 4382, + 4392, 1544, 1545, 1550, 1552, 1554, 1556, 1557, 1560, 1565, + 1576, 1571, 4392, 1563, 1578, 1581, 1580, 1573, 1574, 1575, + 1592, 1588, 1593, 1589, 1595, 1591, 1597, 1598, 1599, 4392, 1606, 1601, 1609, 1605, 1613, 1614, 1616, 1618, 1620, 1621, - 1624, 1629, 1625, 1626, 4382, 1627, 1635, 1633, 1628, 1648, + 1624, 1629, 1625, 1626, 4392, 1627, 1635, 1633, 1628, 1648, 1649, 1646, 1647, 1651, 1634, 1654, 1655, 1660, 1657, 1662, - 1658, 1659, 4382, 1663, 130, 1664, 1665, 1666, 1676, 1679, + 1658, 1659, 4392, 1663, 130, 1664, 1665, 1666, 1676, 1679, 1669, 1681, 1685, 1687, 1688, 1689, 1691, 1692, 1428, 1693, - 1695, 1697, 1698, 1699, 1703, 1700, 1705, 4382, 1715, 1713, + 1695, 1697, 1698, 1699, 1703, 1700, 1705, 4392, 1715, 1713, - 1719, 1722, 1704, 1723, 1725, 1727, 1728, 1730, 1729, 4382, + 1719, 1722, 1704, 1723, 1725, 1727, 1728, 1730, 1729, 4392, 1738, 1739, 1731, 1742, 1733, 1744, 1746, 1749, 1745, 1750, - 1751, 1754, 1755, 1756, 1758, 1763, 4382, 1768, 1765, 1766, + 1751, 1754, 1755, 1756, 1758, 1763, 4392, 1768, 1765, 1766, 1767, 1775, 1773, 1783, 1781, 1784, 1786, 1788, 1801, 1790, 1793, 1797, 1794, 1807, 1796, 1808, 1811, 1817, 1815, 1819, 1821, 1822, 1823, 1831, 1833, 1829, 1838, 1830, 1851, 1845, - 1847, 4382, 1849, 1840, 1854, 1856, 1863, 1859, 1860, 1861, + 1847, 4392, 1849, 1840, 1854, 1856, 1863, 1859, 1860, 1861, 1866, 1864, 1867, 1868, 1870, 1871, 1832, 1876, 1879, 1883, - 4382, 1884, 1885, 1886, 1892, 1889, 1898, 1895, 1893, 1902, - 1899, 1903, 1904, 1906, 1915, 1907, 1917, 1913, 1918, 4382, + 4392, 1884, 1885, 1886, 1892, 1889, 1898, 1895, 1893, 1902, + 1899, 1903, 1904, 1906, 1915, 1907, 1917, 1913, 1918, 4392, 1927, 1928, 1924, 1932, 1930, 1933, 1934, 1936, 1937, 1938, 1940, 1947, 1942, 1944, 1792, 1946, 1943, 1948, 1950, 1951, - 1953, 1954, 1966, 1955, 1967, 4382, 1968, 1975, 1973, 1977, + 1953, 1954, 1966, 1955, 1967, 4392, 1968, 1975, 1973, 1977, 1979, 1980, 1981, 1988, 1983, 2000, 1992, 1991, 1984, 1989, - 1999, 2001, 2004, 2005, 4382, 2007, 2008, 2009, 2012, 2013, + 1999, 2001, 2004, 2005, 4392, 2007, 2008, 2009, 2012, 2013, 2014, 2016, 2018, 2030, 2032, 2033, 2023, 2010, 2020, 2034, - 2036, 2040, 2043, 2050, 2051, 2046, 2052, 4382, 2055, 2056, + 2036, 2040, 2043, 2050, 2051, 2046, 2052, 4392, 2055, 2056, 2057, 2058, 2059, 2062, 2063, 2064, 2067, 2071, 2069, 2068, 2072, 2081, 2084, 2085, 2088, 2089, 2090, 2092, 2093, 2094, 2095, 2102, 2097, 2098, 2099, 2103, 2100, 2104, 2106, 2110, - 2112, 2120, 2124, 2126, 2129, 2127, 2128, 2130, 2136, 4382, + 2112, 2120, 2124, 2126, 2129, 2127, 2128, 2130, 2136, 4392, 2134, 2135, 2145, 2141, 2148, 2139, 2147, 2149, 2156, 2158, - 4382, 2153, 4382, 2161, 2162, 2170, 4382, 2168, 4382, 2173, - 2160, 4382, 2174, 2178, 2175, 2180, 2181, 2182, 2183, 2185, - 2188, 2186, 2193, 2189, 2191, 2196, 2197, 2199, 4382, 2208, + 4392, 2153, 4392, 2161, 2162, 2170, 4392, 2168, 4392, 2173, + 2160, 4392, 2174, 2178, 2175, 2180, 2181, 2182, 2183, 2185, + 2188, 2186, 2193, 2189, 2191, 2196, 2197, 2199, 4392, 2208, 2201, 2203, 2209, 2213, 2212, 2214, 2215, 2220, 2221, 2226, - 2222, 2229, 2230, 2237, 4382, 2233, 2236, 2238, 2239, 4382, + 2222, 2229, 2230, 2237, 4392, 2233, 2236, 2238, 2239, 4392, 2240, 2242, 2248, 2244, 2246, 2251, 2253, 2252, 2260, 2273, 2269, 2259, 2270, 2255, 2276, 2277, 2281, 2283, 2284, 2285, 2292, 2288, 2295, 2287, 2291, 2298, 2294, 2290, 2300, 2302, - 2304, 2307, 2311, 2306, 2315, 2312, 2313, 2314, 2316, 4382, + 2304, 2307, 2311, 2306, 2315, 2312, 2313, 2314, 2316, 4392, 2325, 2326, 2329, 2330, 2327, 2335, 2317, 2336, 2338, 2340, - 2343, 2339, 2344, 4382, 2352, 4382, 2345, 2357, 2359, 2361, + 2343, 2339, 2344, 4392, 2352, 4392, 2345, 2357, 2359, 2361, 2362, 2363, 2353, 2365, 2366, 2371, 2373, 2384, 2376, 2377, - 2379, 2386, 2387, 2389, 2388, 4382, 2390, 2391, 2393, 2395, - 2398, 2403, 2412, 2410, 2396, 2424, 4382, 2426, 2399, 2431, - 2416, 2434, 2429, 4382, 2430, 2438, 2433, 2436, 4382, 4382, - 2437, 2440, 2441, 2442, 2443, 2453, 2449, 2451, 4382, 2458, - 2444, 2402, 2461, 2463, 2467, 2470, 2452, 4382, 2459, 2477, + 2379, 2386, 2387, 2389, 2388, 4392, 2390, 2391, 2393, 2395, + 2398, 2403, 2412, 2410, 2396, 2424, 4392, 2426, 2399, 2431, + 2416, 2434, 2429, 4392, 2430, 2438, 2433, 2436, 4392, 4392, + 2437, 2440, 2441, 2442, 2443, 2453, 2449, 2451, 4392, 2458, + 2444, 2402, 2461, 2463, 2467, 2470, 2452, 4392, 2459, 2477, 2471, 2473, 2478, 2481, 2482, 2483, 2492, 2484, 2487, 2488, - 2498, 2499, 2507, 4382, 2495, 2504, 2509, 2510, 2256, 2491, + 2498, 2499, 2507, 4392, 2495, 2504, 2509, 2510, 2256, 2491, 2512, 2514, 2515, 2516, 2517, 2518, 2519, 2521, 2526, 2523, 2528, 2537, 2535, 2536, 2539, 2541, 2542, 2545, 2547, 2549, - 2550, 2557, 2558, 4382, 2566, 2552, 2569, 2553, 2564, 2572, - 2573, 2581, 2576, 2565, 2577, 2586, 2579, 4382, 2593, 2582, + 2550, 2557, 2558, 4392, 2566, 2552, 2569, 2553, 2564, 2572, + 2573, 2581, 2576, 2565, 2577, 2586, 2579, 4392, 2593, 2582, 2598, 2583, 2591, 2607, 2602, 2584, 2603, 2609, 2605, 2612, - 2610, 2614, 2615, 2618, 4382, 4382, 2619, 2620, 2622, 2623, - 2625, 2626, 2627, 2633, 2629, 2640, 4382, 2637, 2645, 2643, + 2610, 2614, 2615, 2618, 4392, 4392, 2619, 2620, 2622, 2623, + 2625, 2626, 2627, 2633, 2629, 2640, 4392, 2637, 2645, 2643, 2644, 2652, 2654, 2650, 2657, 2658, 2659, 2647, 2660, 2661, - 2665, 2668, 2669, 2671, 2673, 4382, 2676, 2674, 2678, 2680, + 2665, 2668, 2669, 2671, 2673, 4392, 2676, 2674, 2678, 2680, 2675, 2682, 2688, 2685, 2699, 2690, 2692, 2700, 2708, 2704, - 2713, 2715, 2705, 2710, 2723, 4382, 2714, 2721, 2716, 2718, - 2730, 2719, 2733, 2732, 4382, 2734, 2735, 2739, 2746, 2729, - 2748, 2747, 2750, 2751, 2752, 4382, 2754, 4382, 2760, 2756, - 4382, 2758, 2762, 2765, 2766, 2767, 2777, 2769, 2771, 2773, - 2778, 2779, 2781, 2788, 2784, 4382, 2792, 2785, 2787, 2790, - 4382, 2795, 4382, 2800, 4382, 2802, 2801, 2811, 2806, 2807, - 2810, 2814, 2818, 4382, 2820, 2809, 2821, 2819, 2824, 2825, - 2830, 2831, 2832, 2833, 2834, 4382, 2835, 2838, 2847, 2836, - 2839, 2841, 2851, 2849, 4382, 2852, 2860, 2861, 2863, 2864, + 2713, 2715, 2705, 2710, 2723, 4392, 2714, 2721, 2716, 2718, + 2730, 2719, 2733, 2732, 4392, 2734, 2735, 2739, 2746, 2729, + 2748, 2747, 2750, 2751, 2752, 4392, 2754, 4392, 2760, 2756, + 4392, 2758, 2762, 2765, 2766, 2767, 2777, 2769, 2771, 2773, + 2778, 2779, 2781, 2788, 2784, 4392, 2792, 2785, 2787, 2790, + 4392, 2795, 4392, 2800, 4392, 2802, 2801, 2811, 2806, 2807, + 2810, 2814, 2818, 4392, 2820, 2809, 2821, 2819, 2824, 2825, + 2830, 2831, 2832, 2833, 2834, 4392, 2835, 2838, 2847, 2836, + 2839, 2841, 2851, 2849, 4392, 2852, 2860, 2861, 2863, 2864, - 4382, 2865, 2870, 4382, 2866, 2876, 2867, 2873, 2881, 2877, - 2884, 2885, 2886, 2894, 2887, 2891, 2890, 4382, 2895, 2896, + 4392, 2865, 2870, 4392, 2866, 2876, 2867, 2873, 2881, 2877, + 2884, 2885, 2886, 2894, 2887, 2891, 2890, 4392, 2895, 2896, 2900, 2901, 2897, 2905, 2913, 2911, 2915, 2908, 2918, 2921, - 2923, 2924, 2909, 2928, 2929, 2931, 4382, 2934, 2936, 4382, - 2933, 2937, 2940, 2944, 4382, 2942, 4382, 2945, 2947, 2949, + 2923, 2924, 2909, 2928, 2929, 2931, 4392, 2934, 2936, 4392, + 2933, 2937, 2940, 2944, 4392, 2942, 4392, 2945, 2947, 2949, 2950, 2953, 2954, 2956, 2964, 2965, 2966, 2967, 2976, 2973, - 2968, 4382, 4382, 2978, 2984, 2982, 2987, 2989, 2992, 2979, - 3000, 2993, 2996, 3001, 4382, 3003, 3002, 4382, 3005, 3008, - 3009, 3010, 3011, 3015, 3012, 3018, 3019, 3014, 3021, 3020, - 3024, 4382, 3031, 3034, 3027, 3035, 3037, 3036, 3038, 4382, + 2968, 4392, 4392, 2978, 2984, 2982, 2987, 2989, 2992, 2979, + 3000, 2993, 2996, 3001, 4392, 3003, 3002, 4392, 3005, 3008, + 3009, 3011, 3012, 3015, 3018, 3020, 3021, 3014, 3023, 3016, + 3024, 4392, 3027, 3031, 3035, 3036, 3037, 3038, 3039, 4392, - 3040, 3042, 3044, 3039, 3049, 3053, 3060, 3065, 3068, 3056, - 3062, 3069, 3072, 3074, 3077, 4382, 3078, 3076, 3079, 3080, - 3086, 3088, 3089, 3091, 3093, 3095, 3098, 3100, 3101, 4382, - 3102, 3104, 3105, 3110, 3112, 3113, 3115, 3116, 3122, 3106, - 3123, 3126, 3128, 4382, 3129, 3131, 3133, 3135, 3137, 3134, - 3141, 3142, 3143, 3144, 3146, 3151, 3155, 4382, 3152, 3156, - 3158, 3159, 3163, 3166, 3168, 3165, 3167, 3169, 3177, 3174, - 3181, 3185, 4382, 3179, 4382, 3182, 3192, 3196, 3194, 3187, - 4382, 3197, 3201, 4382, 3202, 3200, 3205, 4382, 3208, 3213, - 3204, 3215, 3220, 4382, 3222, 3223, 3231, 3230, 3226, 3232, + 3041, 3045, 3048, 3040, 3047, 3049, 3063, 3066, 3068, 3057, + 3069, 3070, 3074, 3076, 3073, 4392, 3079, 3077, 3080, 3081, + 3088, 3090, 3085, 3092, 3094, 3096, 3099, 3101, 3102, 4392, + 3103, 3106, 3107, 3110, 3111, 3113, 3114, 3122, 3125, 3116, + 3118, 3120, 3128, 4392, 3130, 3131, 3132, 3136, 3142, 3134, + 3144, 3137, 3145, 3146, 3148, 3151, 3156, 4392, 3155, 3159, + 3161, 3162, 3163, 3165, 3166, 3168, 3169, 3173, 3176, 3174, + 3187, 3189, 4392, 3177, 4392, 3190, 3179, 3198, 3194, 3191, + 4392, 3200, 3196, 4392, 3202, 3201, 3204, 3206, 4392, 3207, + 3216, 3208, 3212, 3223, 4392, 3226, 3227, 3235, 3231, 3220, - 3234, 3235, 3236, 3237, 4382, 3239, 3241, 3248, 3245, 3242, - 3251, 3252, 3253, 3254, 3256, 3264, 3259, 3260, 4382, 3263, - 3267, 3275, 3198, 3268, 4382, 4382, 3273, 3276, 3280, 3281, - 3284, 4382, 3282, 3294, 3289, 3291, 3293, 4382, 4382, 3296, - 4382, 3292, 4382, 4382, 3298, 3299, 3306, 4382, 3309, 4382, - 3317, 3312, 3300, 3297, 3315, 4382, 3314, 3318, 3322, 4382, - 3323, 3331, 3324, 3326, 4382, 3328, 4382, 3334, 3337, 3338, - 3344, 3339, 3340, 3345, 3348, 3352, 3356, 3349, 3357, 3358, - 3360, 3362, 3363, 3364, 3366, 3365, 3368, 3369, 3373, 3377, - 3379, 3380, 3381, 3382, 3384, 3387, 3386, 3388, 3391, 3396, + 3236, 3233, 3238, 3239, 3240, 4392, 3242, 3244, 3249, 3250, + 3243, 3251, 3253, 3256, 3254, 3257, 3265, 3264, 3261, 4392, + 3266, 3268, 3275, 3272, 3276, 4392, 4392, 3277, 3283, 3285, + 3281, 3286, 4392, 3289, 3296, 3292, 3295, 3297, 4392, 4392, + 3299, 4392, 3300, 4392, 4392, 3303, 3305, 3302, 4392, 3312, + 4392, 3315, 3313, 3316, 3317, 3319, 4392, 3321, 3322, 3326, + 4392, 3320, 3333, 3323, 3328, 4392, 3331, 4392, 3335, 3338, + 3342, 3344, 3345, 3348, 3349, 3351, 3353, 3356, 3357, 3358, + 3360, 3363, 3365, 3364, 3366, 3367, 3368, 3374, 3370, 3380, + 3381, 3382, 3383, 3384, 3385, 3387, 3390, 3389, 3391, 3394, - 3398, 3390, 3407, 3409, 4382, 4382, 3400, 3402, 4382, 3412, - 3415, 3414, 3417, 3416, 3419, 3420, 3421, 4382, 3424, 3426, - 3427, 3434, 3428, 3429, 3430, 3440, 3431, 3452, 3454, 3455, - 3442, 3444, 3446, 3457, 3458, 3461, 3463, 3464, 3470, 3471, - 3475, 4382, 3467, 4382, 3476, 3472, 3477, 4382, 4382, 3479, - 3480, 3488, 3482, 3484, 3490, 3491, 4382, 3493, 3494, 3501, - 3503, 4382, 3505, 4382, 3507, 3509, 3511, 3512, 3514, 4382, - 4382, 4382, 3518, 3515, 3520, 3521, 3522, 3524, 3526, 3523, - 3532, 4382, 3529, 3534, 3536, 3535, 3546, 3548, 3549, 3552, - 3559, 3555, 3561, 3543, 3564, 3566, 4382, 4382, 3554, 3574, + 3399, 3400, 3404, 3393, 3403, 3415, 4392, 4392, 3410, 3412, + 4392, 3417, 3418, 3419, 3420, 3421, 3422, 3425, 3426, 4392, + 3432, 3424, 3429, 3438, 3434, 3435, 3439, 3444, 3446, 3451, + 3455, 3458, 3448, 3456, 3459, 3462, 3461, 3463, 3464, 3468, + 3473, 3474, 3480, 4392, 3475, 4392, 3477, 3482, 3484, 4392, + 4392, 3485, 3487, 3489, 3491, 3492, 3496, 3493, 4392, 3498, + 3500, 3508, 3499, 4392, 3515, 4392, 3517, 3501, 3519, 3521, + 3523, 4392, 4392, 4392, 3524, 3509, 3527, 3528, 3529, 3530, + 3533, 3532, 3535, 4392, 3539, 3536, 3542, 3545, 3549, 3553, + 3550, 3556, 3564, 3562, 3565, 3555, 3563, 3572, 3574, 4392, - 3570, 3577, 3572, 3578, 3579, 3569, 3581, 3580, 3582, 4382, - 3587, 3586, 3592, 3593, 3595, 3596, 3597, 3599, 4382, 4382, - 3600, 3601, 3603, 3612, 3607, 3609, 3602, 3614, 3615, 4382, - 3616, 4382, 3620, 3623, 3630, 3629, 3625, 3632, 4382, 3635, - 3636, 4382, 3638, 3639, 3641, 4382, 3645, 4382, 4382, 3648, - 4382, 3643, 4382, 3650, 3651, 3655, 3657, 3659, 3661, 3665, - 3667, 3668, 3669, 3677, 3673, 3674, 4382, 4382, 3681, 3676, - 3679, 3688, 3684, 3687, 4382, 4382, 3689, 3690, 4382, 3692, - 3695, 3696, 3697, 3698, 3700, 3703, 3704, 3708, 3705, 3706, - 3710, 3719, 3721, 3722, 3725, 3525, 3726, 3728, 3729, 4382, + 4392, 3546, 3581, 3577, 3584, 3579, 3585, 3586, 3576, 3588, + 3587, 3589, 4392, 3594, 3593, 3599, 3600, 3602, 3603, 3604, + 3606, 4392, 4392, 3607, 3608, 3610, 3619, 3614, 3616, 3609, + 3621, 3622, 4392, 3623, 4392, 3627, 3630, 3637, 3636, 3632, + 3639, 4392, 3642, 3643, 4392, 3645, 3646, 3648, 4392, 3652, + 4392, 4392, 3655, 4392, 3650, 4392, 3657, 3658, 3662, 3664, + 3666, 3668, 3672, 3674, 3675, 3676, 3684, 3680, 3681, 4392, + 4392, 3688, 3683, 3686, 3695, 3691, 3694, 3697, 4392, 4392, + 3699, 3700, 4392, 3701, 3702, 3705, 3707, 3708, 3709, 3712, + 3713, 3714, 3715, 3717, 3729, 3735, 3721, 3733, 3724, 3727, - 3731, 3733, 3732, 4382, 3739, 3734, 3743, 3746, 3744, 4382, - 3740, 3755, 3752, 3757, 3747, 3765, 3760, 3761, 4382, 3768, - 3763, 3769, 4382, 3771, 4382, 3774, 4382, 4382, 3775, 3776, - 3778, 4382, 3779, 3788, 4382, 3783, 3785, 3790, 3793, 3795, - 3797, 3798, 3802, 3799, 3804, 3805, 3813, 3806, 3815, 4382, - 3808, 3811, 3817, 3819, 3818, 3821, 3824, 3825, 3828, 3829, - 3833, 3838, 3835, 4382, 3842, 3846, 4382, 3839, 4382, 3848, - 3849, 3850, 4382, 3852, 3843, 3853, 3856, 4382, 3857, 3864, - 4382, 3861, 3867, 3869, 3862, 3870, 3872, 3873, 3880, 3874, - 3881, 4382, 3885, 3886, 3894, 3891, 3892, 3887, 4382, 3896, + 3731, 3739, 3741, 4392, 3743, 3745, 3746, 4392, 3750, 3747, + 3752, 3755, 3756, 4392, 3757, 3763, 3766, 3758, 3768, 3777, + 3769, 3772, 4392, 3774, 3778, 3779, 4392, 3780, 4392, 3784, + 4392, 4392, 3785, 3788, 3786, 4392, 3792, 3798, 4392, 3794, + 3800, 3801, 3803, 3806, 4392, 3810, 3807, 3814, 3808, 3815, + 3816, 3823, 3818, 3825, 4392, 3819, 3826, 3828, 3831, 3832, + 3830, 3833, 3835, 3837, 3842, 3840, 3851, 3846, 4392, 3853, + 3856, 4392, 3848, 4392, 3858, 3859, 3862, 4392, 3861, 3863, + 3864, 3870, 4392, 3871, 3868, 4392, 3873, 3877, 3879, 3881, + 3874, 3880, 3884, 3886, 3888, 3896, 4392, 3894, 3898, 3905, - 3898, 3908, 3903, 3900, 4382, 3910, 3904, 4382, 3912, 3913, - 3914, 3919, 3916, 3926, 3930, 3922, 4382, 3932, 4382, 4382, - 3933, 4382, 3934, 3935, 4382, 3938, 3939, 3940, 3941, 3943, - 3944, 4382, 4382, 3945, 3946, 3948, 3957, 4382, 3951, 3955, - 3958, 3961, 3964, 4382, 3966, 3965, 3968, 3967, 3972, 3976, - 3977, 4382, 4382, 3978, 4382, 3980, 3988, 3991, 4382, 4382, - 4382, 3993, 4382, 4000, 4004, 4003, 4382, 4006, 3994, 3996, - 4382, 4009, 4011, 3969, 4382, 4013, 4014, 4015, 4020, 4022, - 4017, 4024, 4026, 4027, 4028, 4030, 4033, 4034, 4035, 4037, - 4382, 4382, 4041, 4382, 4382, 4045, 4047, 4049, 4382, 4050, + 3901, 3907, 3902, 4392, 3903, 3909, 3917, 3912, 3914, 4392, + 3916, 3919, 4392, 3922, 3926, 3923, 3927, 3925, 3934, 3936, + 3939, 4392, 3941, 4392, 4392, 3942, 4392, 3943, 3945, 4392, + 3948, 3949, 3950, 3951, 3953, 3954, 4392, 4392, 3955, 3956, + 3958, 3962, 4392, 3966, 3968, 3971, 3972, 3973, 4392, 3974, + 3975, 3978, 3977, 3980, 3981, 3985, 4392, 4392, 3983, 4392, + 3992, 4000, 4001, 4392, 4392, 4392, 4007, 4392, 4009, 4013, + 4012, 4392, 4015, 4004, 4017, 4392, 4019, 3987, 4020, 4392, + 4021, 4023, 4024, 4027, 4029, 4030, 4033, 4037, 4034, 4040, + 4041, 4042, 4043, 4044, 4050, 4392, 4392, 4052, 4392, 4392, - 4056, 4382, 4058, 4053, 4060, 4062, 4064, 4382, 4382, 4066, - 4067, 4382, 4074, 4069, 4071, 4072, 4075, 4073, 4382, 4382, - 4382, 4382, 4382, 4078, 4382, 4382, 4082, 4079, 4080, 4382, - 4085, 4087, 4088, 4090, 4092, 4095, 4096, 4097, 4100, 4103, - 4104, 4106, 4114, 4117, 4118, 4119, 4107, 4122, 4131, 4126, - 4128, 4382, 4129, 4382, 4130, 4382, 4133, 4141, 4142, 4139, - 4134, 4138, 4382, 4145, 4146, 4143, 4151, 4154, 4149, 4155, - 4156, 4158, 4166, 4169, 4171, 4173, 4174, 4163, 4181, 4184, - 4382, 4180, 4172, 4185, 4192, 4188, 4189, 4382, 4190, 4193, - 4194, 4196, 4197, 4200, 4199, 4210, 4214, 4201, 4216, 4203, + 4054, 4057, 4061, 4392, 4058, 4065, 4392, 4069, 4066, 4070, + 4072, 4074, 4392, 4392, 4075, 4076, 4392, 4083, 4080, 4081, + 4082, 4084, 4088, 4392, 4392, 4392, 4392, 4392, 4089, 4392, + 4392, 4091, 4085, 4096, 4392, 4090, 4097, 4098, 4099, 4103, + 4100, 4106, 4107, 4109, 4115, 4117, 4120, 4123, 4128, 4125, + 4132, 4133, 4134, 4141, 4136, 4139, 4392, 4140, 4392, 4142, + 4392, 4143, 4151, 4152, 4147, 4144, 4148, 4392, 4154, 4159, + 4153, 4156, 4164, 4165, 4166, 4170, 4173, 4179, 4180, 4182, + 4183, 4185, 4174, 4195, 4197, 4392, 4191, 4186, 4194, 4206, + 4199, 4201, 4392, 4202, 4203, 4204, 4208, 4209, 4211, 4212, - 4220, 4217, 4221, 4208, 4225, 4226, 4382, 4229, 4231, 4232, - 4233, 4237, 4235, 4239, 4240, 4243, 4246, 4248, 4250, 4255, - 4382, 4256, 4382, 4382, 4259, 4244, 4257, 4266, 4268, 4382, - 4382, 4382, 4290, 4297, 4304, 4311, 4318, 101, 4325, 4332, - 4339, 4346, 4353, 4360, 4367, 4374 + 4219, 4224, 4227, 4226, 4215, 4229, 4230, 4235, 4217, 4238, + 4239, 4392, 4240, 4241, 4244, 4247, 4248, 4250, 4251, 4252, + 4255, 4257, 4260, 4262, 4265, 4392, 4268, 4392, 4392, 4271, + 4256, 4267, 4278, 4280, 4392, 4392, 4392, 4300, 4307, 4314, + 4321, 4328, 101, 4335, 4342, 4349, 4356, 4363, 4370, 4377, + 4384 } ; -static yyconst flex_int16_t yy_def[2247] = +static yyconst flex_int16_t yy_def[2252] = { 0, - 2232, 1, 2233, 2233, 2234, 2234, 2235, 2235, 2236, 2236, - 2237, 2237, 2232, 2238, 2232, 2232, 2232, 2232, 2239, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2240, 2232, 2232, 2232, 2240, 2241, 2232, 2232, 2232, 2241, - 2242, 2232, 2232, 2232, 2232, 2242, 2243, 2232, 2232, 2232, - 2243, 2244, 2232, 2245, 2232, 2244, 2244, 2238, 2238, 2232, - 2246, 2239, 2246, 2239, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2237, 1, 2238, 2238, 2239, 2239, 2240, 2240, 2241, 2241, + 2242, 2242, 2237, 2243, 2237, 2237, 2237, 2237, 2244, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2245, 2237, 2237, 2237, 2245, 2246, 2237, 2237, 2237, 2246, + 2247, 2237, 2237, 2237, 2237, 2247, 2248, 2237, 2237, 2237, + 2248, 2249, 2237, 2250, 2237, 2249, 2249, 2243, 2243, 2237, + 2251, 2244, 2251, 2244, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2240, 2240, 2241, 2241, 2242, 2242, 2232, 2243, 2243, 2244, - 2244, 2245, 2245, 2244, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2245, 2245, 2246, 2246, 2247, 2247, 2237, 2248, 2248, 2249, + 2249, 2250, 2250, 2249, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2244, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2249, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2244, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2249, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2244, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2249, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2244, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2232, 2238, 2232, 2232, 2238, 2232, 2232, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2249, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2237, 2243, 2237, 2237, 2243, 2237, 2237, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2244, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2249, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2232, 2238, 2244, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2237, 2243, 2249, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2232, 2238, 2232, 2238, 2238, 2238, 2232, 2238, 2232, 2238, - 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2237, 2243, 2237, 2243, 2243, 2243, 2237, 2243, 2237, 2243, + 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2232, 2238, 2232, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, - 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2232, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, + 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2237, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2232, 2232, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2232, 2238, 2238, - 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, - 2232, 2238, 2232, 2238, 2232, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243, + 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, + 2237, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, - 2232, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2232, 2238, 2232, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2232, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, + 2237, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2237, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2237, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2232, 2238, 2232, 2238, 2238, 2238, 2238, 2238, - 2232, 2238, 2238, 2232, 2238, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243, 2243, + 2237, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2237, 2243, + 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, - 2238, 2238, 2238, 2238, 2232, 2232, 2238, 2238, 2238, 2238, - 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2232, 2232, 2238, - 2232, 2238, 2232, 2232, 2238, 2238, 2238, 2232, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2232, 2238, 2232, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2243, 2243, + 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2237, 2237, + 2243, 2237, 2243, 2237, 2237, 2243, 2243, 2243, 2237, 2243, + 2237, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, + 2237, 2243, 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2232, 2232, 2238, 2238, 2232, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2232, 2238, 2232, 2238, 2238, 2238, 2232, 2232, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, - 2238, 2232, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2232, - 2232, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2232, 2238, 2238, + 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2243, + 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2237, + 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, + 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2237, 2237, 2237, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, - 2238, 2232, 2238, 2238, 2238, 2232, 2238, 2232, 2232, 2238, - 2232, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2232, 2238, 2238, - 2238, 2238, 2238, 2238, 2232, 2232, 2238, 2238, 2232, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, + 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2237, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243, 2243, + 2243, 2237, 2243, 2243, 2237, 2243, 2243, 2243, 2237, 2243, + 2237, 2237, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, + 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2237, + 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, - 2238, 2238, 2232, 2238, 2232, 2238, 2232, 2232, 2238, 2238, - 2238, 2232, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2232, 2238, 2238, 2232, 2238, 2232, 2238, - 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2232, 2238, 2238, - 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, + 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2237, 2243, 2243, + 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2237, 2243, 2243, 2243, 2237, 2243, 2237, 2243, + 2237, 2237, 2243, 2243, 2243, 2237, 2243, 2243, 2237, 2243, + 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, + 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2237, 2243, 2243, + 2243, 2243, 2237, 2243, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2232, 2232, - 2238, 2232, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, - 2238, 2232, 2232, 2238, 2238, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2232, 2232, 2238, 2232, 2238, 2238, 2238, 2232, 2232, - 2232, 2238, 2232, 2238, 2238, 2238, 2232, 2238, 2238, 2238, - 2232, 2238, 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2232, 2232, 2238, 2232, 2232, 2238, 2238, 2238, 2232, 2238, + 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2237, + 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2237, 2243, 2237, 2237, 2243, 2237, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2243, + 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2237, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2237, + 2243, 2243, 2243, 2237, 2237, 2237, 2243, 2237, 2243, 2243, + 2243, 2237, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2237, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2237, 2237, - 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2232, 2232, 2238, - 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2232, - 2232, 2232, 2232, 2238, 2232, 2232, 2238, 2238, 2238, 2232, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2232, 2238, 2232, 2238, 2232, 2238, 2238, 2238, 2238, - 2238, 2238, 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2232, 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2243, 2243, 2243, 2237, 2243, 2243, 2237, 2243, 2243, 2243, + 2243, 2243, 2237, 2237, 2243, 2243, 2237, 2243, 2243, 2243, + 2243, 2243, 2243, 2237, 2237, 2237, 2237, 2237, 2243, 2237, + 2237, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2237, 2243, + 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, + 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, - 2238, 2238, 2238, 2238, 2238, 2238, 2232, 2238, 2238, 2238, - 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, - 2232, 2238, 2232, 2232, 2238, 2238, 2238, 2238, 2238, 2232, - 2232, 0, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, - 2232, 2232, 2232, 2232, 2232, 2232 + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2237, 2237, 2243, + 2243, 2243, 2243, 2243, 2237, 2237, 0, 2237, 2237, 2237, + 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, + 2237 } ; -static yyconst flex_uint16_t yy_nxt[4423] = +static yyconst flex_uint16_t yy_nxt[4433] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, @@ -1456,7 +1443,7 @@ static yyconst flex_uint16_t yy_nxt[4423] = 69, 1320, 1315, 69, 69, 1321, 69, 1324, 1323, 1325, 69, 69, 1322, 1327, 69, 69, 69, 69, 1326, 1332, - 69, 69, 2232, 1328, 69, 69, 1329, 1335, 69, 1333, + 69, 69, 2237, 1328, 69, 69, 1329, 1335, 69, 1333, 1336, 69, 69, 1339, 1330, 1337, 1331, 69, 1334, 1338, 69, 1341, 69, 69, 1344, 69, 1340, 69, 69, 69, 69, 69, 69, 1347, 69, 1342, 69, 1351, 1348, 69, @@ -1483,7 +1470,7 @@ static yyconst flex_uint16_t yy_nxt[4423] = 1446, 69, 1448, 69, 1441, 1447, 69, 69, 69, 69, 1451, 69, 69, 1443, 69, 1450, 69, 1456, 1453, 1452, 1458, 1454, 69, 69, 1449, 69, 69, 69, 69, 1461, - 1460, 1462, 69, 2232, 1457, 1465, 1455, 1459, 1463, 69, + 1460, 1462, 69, 2237, 1457, 1465, 1455, 1459, 1463, 69, 69, 69, 1464, 69, 69, 69, 1466, 69, 1467, 69, 1468, 69, 1470, 69, 1469, 69, 1471, 1475, 69, 69, 69, 1472, 69, 1473, 69, 1477, 69, 1474, 1476, 1478, @@ -1508,169 +1495,170 @@ static yyconst flex_uint16_t yy_nxt[4423] = 69, 1559, 1561, 69, 1562, 69, 1560, 69, 69, 1563, 69, 1567, 69, 69, 1569, 1573, 69, 69, 1575, 69, 1564, 1565, 1572, 1566, 1568, 1570, 1574, 69, 69, 69, - 69, 69, 1577, 1580, 1578, 2232, 69, 1571, 1581, 69, - 1584, 69, 69, 1579, 1582, 69, 1576, 69, 1585, 1588, + 69, 69, 1577, 1580, 1578, 2237, 69, 1571, 1581, 69, + 1584, 69, 69, 1579, 1582, 69, 1576, 69, 1585, 1589, - 69, 1583, 69, 1589, 1587, 69, 69, 1592, 1594, 69, - 1591, 1593, 1586, 69, 69, 69, 69, 1590, 69, 1595, - 1596, 69, 69, 69, 69, 69, 1599, 69, 69, 1602, - 1605, 69, 69, 69, 69, 1597, 1606, 69, 1601, 1608, - 69, 1604, 1607, 1598, 69, 1600, 1603, 69, 69, 69, - 69, 69, 69, 69, 1619, 69, 1610, 69, 2232, 1609, - 1620, 1616, 69, 1611, 1613, 1621, 69, 1614, 1618, 69, - 1612, 1615, 1617, 69, 1624, 69, 1622, 1625, 69, 1623, - 1626, 69, 69, 1629, 1627, 69, 1632, 69, 1628, 69, - 69, 69, 69, 69, 1630, 1633, 1634, 1631, 1638, 69, + 69, 1583, 69, 1590, 1588, 69, 69, 1593, 1595, 69, + 1592, 1594, 1586, 69, 69, 69, 69, 1591, 69, 1596, + 1597, 69, 69, 1587, 69, 69, 1600, 69, 69, 69, + 1603, 69, 1606, 69, 69, 1598, 69, 69, 1607, 1602, + 69, 1609, 1608, 1599, 69, 1601, 1604, 1605, 69, 69, + 69, 69, 69, 69, 69, 1610, 1611, 1620, 69, 1612, + 69, 69, 69, 1617, 1621, 2237, 1622, 1613, 1615, 1619, + 69, 1616, 1614, 1618, 1623, 1624, 69, 1625, 1626, 69, + 1627, 69, 69, 69, 1630, 1628, 69, 69, 1633, 69, + 69, 1634, 69, 69, 69, 1629, 1631, 1635, 69, 1632, - 1639, 69, 69, 1641, 69, 1637, 69, 1643, 69, 1635, - 1644, 69, 1636, 69, 69, 69, 1648, 69, 69, 69, - 1647, 1640, 1650, 69, 1642, 69, 69, 1645, 69, 69, - 1654, 1653, 1652, 1646, 1656, 69, 69, 1649, 1657, 69, - 1660, 69, 69, 1651, 69, 1655, 69, 69, 69, 1665, - 69, 1658, 1664, 1667, 69, 69, 69, 69, 1659, 69, - 1671, 1663, 1661, 1669, 69, 69, 1666, 1662, 69, 69, - 1673, 69, 69, 1672, 1675, 1668, 69, 1674, 69, 69, - 69, 69, 69, 1670, 1679, 1677, 1680, 69, 1686, 1682, - 69, 1683, 69, 1681, 69, 69, 1676, 1678, 69, 1684, + 1639, 69, 1640, 69, 1642, 69, 1638, 69, 1644, 69, + 1636, 1645, 69, 1637, 69, 69, 69, 1641, 1649, 69, + 69, 1648, 1651, 69, 69, 1643, 69, 69, 1646, 69, + 1654, 69, 1653, 69, 1647, 69, 1655, 1657, 69, 1650, + 1661, 69, 1652, 69, 69, 69, 1659, 69, 1658, 69, + 69, 1656, 1660, 1665, 1666, 69, 1668, 69, 69, 69, + 1664, 69, 1672, 1662, 69, 1670, 1667, 1663, 69, 69, + 1669, 1674, 69, 1673, 69, 69, 69, 1676, 69, 69, + 1675, 69, 69, 1680, 1681, 1671, 69, 69, 1678, 69, + 69, 1683, 69, 1691, 1687, 1684, 1682, 1679, 1685, 1677, - 69, 1685, 1687, 1691, 1689, 69, 1690, 69, 1692, 69, - 69, 69, 1688, 69, 69, 69, 1693, 69, 69, 1732, - 1694, 69, 1695, 1697, 1701, 1696, 69, 1698, 69, 1699, - 1700, 1702, 1705, 69, 1706, 69, 69, 1703, 1708, 69, - 1704, 1707, 1709, 69, 69, 69, 1711, 69, 69, 69, - 69, 1715, 69, 1710, 69, 69, 1716, 1717, 69, 1712, - 1718, 69, 1713, 1719, 69, 69, 69, 69, 1714, 69, - 1723, 1726, 69, 69, 1725, 1720, 69, 69, 1727, 1722, - 69, 69, 1731, 1733, 1721, 1730, 69, 1724, 69, 69, - 1735, 1728, 1729, 69, 69, 69, 1736, 69, 1738, 1739, + 69, 1686, 69, 69, 69, 1692, 1688, 69, 1693, 69, + 1689, 69, 1690, 69, 69, 69, 1694, 69, 1698, 69, + 69, 69, 2237, 1703, 1695, 69, 1696, 1699, 1697, 69, + 1700, 1702, 1701, 69, 1704, 1707, 69, 1706, 1708, 69, + 69, 1705, 1710, 1711, 69, 1709, 69, 1712, 69, 69, + 1713, 69, 69, 69, 1717, 69, 69, 69, 1714, 1718, + 1719, 1720, 69, 69, 69, 1715, 69, 69, 1721, 69, + 69, 1716, 1728, 1725, 69, 1727, 1722, 69, 69, 69, + 1724, 69, 1733, 1729, 1723, 69, 1732, 1726, 69, 69, + 69, 1735, 1730, 1734, 69, 1731, 69, 1737, 69, 69, - 1734, 1740, 69, 1742, 69, 69, 69, 69, 1744, 69, - 69, 69, 69, 69, 1741, 1743, 1746, 1747, 1748, 69, - 1737, 1749, 69, 1745, 1750, 69, 1751, 69, 69, 1752, - 69, 69, 1753, 1754, 1757, 69, 69, 69, 1759, 69, - 1762, 69, 2232, 1756, 69, 1758, 1755, 69, 1763, 1764, - 69, 69, 69, 69, 1761, 1760, 1765, 69, 69, 1766, - 1770, 69, 69, 1769, 1771, 69, 1767, 1768, 1772, 69, - 69, 69, 1775, 69, 1773, 69, 69, 69, 69, 69, - 1782, 69, 69, 1778, 1780, 1776, 69, 1777, 1774, 1779, - 69, 1783, 69, 69, 69, 69, 1789, 69, 1781, 69, + 1740, 1738, 69, 1742, 1736, 69, 1741, 1744, 69, 69, + 69, 1746, 69, 69, 1750, 69, 69, 1743, 69, 1745, + 1739, 1748, 1752, 1749, 1751, 69, 69, 1753, 69, 69, + 69, 1747, 69, 69, 69, 69, 69, 1756, 1759, 69, + 1761, 69, 1760, 1764, 69, 1754, 69, 1758, 69, 1765, + 1766, 69, 1755, 1757, 1762, 69, 1763, 69, 69, 1768, + 1767, 69, 69, 1772, 69, 1773, 69, 1771, 1774, 69, + 69, 69, 1769, 69, 1777, 1770, 69, 69, 69, 69, + 69, 69, 1775, 69, 1780, 1782, 1784, 69, 1778, 1776, + 1779, 1781, 1785, 69, 69, 69, 69, 69, 69, 1791, - 69, 69, 1797, 69, 69, 1786, 1790, 1794, 1788, 69, - 1785, 69, 1784, 69, 1795, 69, 1796, 1787, 1791, 1798, - 69, 1792, 69, 1799, 1793, 69, 1801, 69, 69, 69, - 69, 1800, 69, 69, 69, 1809, 1810, 69, 1806, 69, - 69, 69, 69, 69, 69, 1802, 1803, 69, 1811, 1804, - 1805, 1808, 1807, 69, 1813, 69, 1814, 69, 1812, 69, - 1815, 1816, 1821, 1818, 1819, 69, 1820, 69, 69, 1817, - 69, 69, 1823, 1822, 69, 1825, 69, 69, 1824, 1829, - 69, 1828, 1830, 69, 69, 69, 1831, 1832, 69, 69, - 69, 1826, 69, 69, 1827, 69, 1838, 69, 1834, 1833, + 69, 1783, 69, 69, 69, 1800, 69, 69, 1788, 1792, + 1796, 1790, 69, 69, 1787, 1801, 69, 69, 1798, 1786, + 1789, 1793, 1799, 69, 1794, 69, 1797, 1795, 69, 1802, + 69, 69, 69, 69, 69, 69, 1804, 69, 69, 69, + 1812, 1803, 69, 1809, 1813, 69, 1814, 69, 69, 1806, + 1805, 69, 69, 1808, 1807, 1810, 1811, 69, 1816, 69, + 1815, 69, 1817, 1822, 69, 1824, 1818, 1823, 69, 69, + 1819, 69, 69, 1820, 69, 69, 69, 69, 1821, 1825, + 1828, 69, 1831, 1832, 1826, 1833, 69, 69, 69, 1834, + 69, 1827, 1835, 69, 1829, 69, 1830, 69, 69, 1837, - 1839, 69, 1842, 69, 69, 1835, 69, 69, 1843, 1836, - 1840, 1845, 1837, 1846, 69, 1841, 69, 1848, 69, 1849, - 69, 1844, 69, 1851, 69, 69, 1853, 69, 69, 1847, - 1852, 69, 1854, 69, 69, 69, 69, 69, 69, 69, - 1858, 1850, 69, 1857, 1860, 69, 1856, 69, 69, 69, - 1855, 1859, 1864, 1862, 1865, 1861, 69, 1863, 1867, 69, - 1868, 69, 69, 1866, 1960, 69, 1871, 69, 69, 1869, - 1870, 1874, 69, 1872, 69, 1873, 1875, 69, 1876, 69, - 1877, 1878, 69, 69, 1881, 69, 1879, 69, 1880, 1882, - 69, 69, 69, 69, 69, 69, 1883, 1885, 1887, 69, + 69, 1842, 69, 1841, 69, 69, 69, 1836, 1845, 69, + 1846, 69, 69, 69, 69, 1838, 1839, 1848, 1840, 1843, + 1849, 69, 69, 1844, 2237, 1850, 1847, 1851, 69, 1852, + 69, 1854, 69, 1853, 69, 1856, 69, 69, 1857, 1855, + 69, 69, 69, 69, 1858, 69, 69, 1861, 69, 69, + 1860, 1863, 69, 1859, 1867, 69, 1865, 1862, 69, 69, + 1868, 1870, 69, 69, 1864, 1871, 69, 1866, 69, 69, + 1872, 1874, 1881, 1869, 1873, 69, 69, 69, 69, 1876, + 1875, 1878, 2237, 1877, 1879, 69, 1880, 69, 1882, 69, + 69, 1885, 69, 1883, 69, 1884, 1886, 69, 69, 69, - 69, 1884, 1886, 1889, 1890, 69, 69, 1888, 69, 69, - 69, 1895, 69, 69, 69, 69, 69, 1893, 1894, 1892, - 69, 1896, 69, 1891, 1900, 69, 1904, 69, 69, 69, - 1903, 1902, 1897, 69, 1898, 1899, 69, 1909, 69, 1901, - 1908, 1910, 69, 69, 1906, 69, 1911, 1905, 69, 69, - 1912, 69, 69, 1907, 69, 1915, 69, 1913, 69, 1918, - 1919, 69, 1914, 69, 69, 1922, 1916, 1923, 69, 1917, - 69, 1925, 69, 1924, 69, 1926, 1920, 1927, 69, 1928, - 69, 69, 69, 1921, 1931, 1932, 69, 69, 1934, 69, - 69, 1933, 69, 1935, 69, 1938, 1930, 69, 1937, 1929, + 69, 69, 69, 1887, 1889, 1891, 69, 69, 1888, 1890, + 1893, 1894, 69, 69, 1892, 69, 69, 69, 1899, 69, + 69, 69, 69, 69, 1897, 1898, 1896, 69, 1900, 69, + 1895, 1904, 69, 1908, 69, 69, 69, 1907, 1906, 1901, + 69, 1902, 1903, 69, 1913, 69, 1905, 1912, 1914, 69, + 69, 1910, 69, 1915, 1909, 69, 69, 1916, 69, 69, + 1911, 69, 1919, 69, 1917, 69, 1922, 1923, 69, 1918, + 69, 69, 1926, 1920, 1927, 69, 1921, 69, 1929, 69, + 1928, 69, 1930, 1924, 1931, 69, 1932, 69, 69, 69, + 1925, 1935, 1936, 69, 69, 1938, 69, 69, 1937, 69, - 69, 69, 69, 69, 1940, 69, 1942, 1941, 69, 69, - 69, 69, 1936, 69, 1946, 1950, 69, 69, 69, 69, - 1954, 69, 1939, 69, 1955, 1944, 1945, 1949, 1947, 1952, - 1943, 1948, 69, 1956, 69, 69, 1951, 1953, 69, 69, - 1958, 69, 69, 1964, 69, 69, 69, 69, 1961, 1965, - 1957, 1967, 69, 69, 1968, 1969, 69, 69, 1959, 69, - 69, 1962, 1963, 1966, 1970, 69, 1971, 1973, 69, 1974, - 69, 1972, 1977, 69, 69, 1976, 69, 1978, 69, 1975, - 1981, 69, 69, 1980, 69, 1982, 1979, 69, 69, 69, - 1987, 69, 69, 1986, 1983, 1992, 69, 1989, 69, 1985, + 1939, 69, 1942, 1934, 69, 1941, 1933, 69, 69, 1945, + 69, 1944, 69, 69, 69, 69, 1947, 1946, 69, 1940, + 69, 69, 69, 1951, 1955, 69, 69, 69, 69, 1943, + 69, 1959, 1949, 1950, 69, 1957, 1954, 69, 1952, 1948, + 69, 1953, 69, 1960, 69, 1956, 69, 1958, 69, 1961, + 1962, 1963, 69, 1966, 69, 1969, 69, 1964, 69, 69, + 69, 1970, 1972, 69, 1974, 69, 1965, 1973, 69, 69, + 69, 69, 1967, 1975, 1968, 1978, 69, 1971, 1976, 69, + 1980, 69, 69, 1979, 1982, 69, 1986, 69, 1977, 1983, + 69, 69, 69, 69, 1985, 1984, 1981, 69, 69, 69, - 1988, 69, 1990, 69, 1997, 1991, 69, 1993, 69, 1984, - 69, 69, 69, 1996, 1999, 69, 1998, 69, 69, 69, - 2003, 69, 2001, 1994, 69, 1995, 69, 2005, 69, 2008, - 69, 69, 69, 2000, 69, 2010, 2002, 69, 69, 2007, - 2006, 69, 69, 2011, 2004, 2009, 69, 2015, 69, 2014, - 2017, 69, 69, 2012, 2019, 69, 69, 2013, 2020, 69, - 2022, 69, 69, 69, 2025, 69, 69, 2018, 2024, 69, - 69, 2029, 2016, 2021, 69, 69, 2026, 69, 2023, 2032, - 69, 2033, 69, 69, 2034, 69, 69, 69, 2028, 2027, - 2039, 2030, 2038, 69, 69, 2040, 2031, 2036, 69, 69, + 1987, 69, 1992, 1991, 1988, 69, 1997, 69, 1993, 1990, + 1994, 69, 1995, 69, 69, 1996, 69, 2002, 1989, 69, + 69, 69, 1998, 69, 2001, 2003, 2004, 69, 69, 69, + 2008, 69, 69, 2006, 1999, 2000, 69, 2010, 69, 69, + 2013, 69, 2005, 69, 69, 69, 69, 2007, 69, 2015, + 69, 2011, 2016, 69, 2012, 69, 2009, 2014, 2019, 69, + 2020, 69, 2017, 2022, 69, 2024, 69, 2018, 2025, 69, + 2027, 69, 69, 2030, 69, 69, 69, 69, 2023, 2021, + 2029, 69, 2026, 69, 69, 2034, 69, 69, 2028, 2037, + 69, 2038, 69, 69, 69, 2035, 2031, 69, 2043, 69, - 69, 2043, 2035, 2044, 69, 69, 2037, 69, 2045, 69, - 2041, 69, 2052, 69, 2047, 2049, 69, 69, 2046, 2042, - 2232, 69, 2053, 69, 2055, 69, 69, 69, 2059, 69, - 2048, 2056, 69, 2050, 2051, 69, 2054, 2058, 2060, 69, - 2062, 2057, 2061, 69, 2063, 69, 69, 69, 69, 2066, - 2067, 69, 69, 69, 69, 2071, 69, 69, 69, 69, - 2075, 69, 2072, 2070, 69, 2064, 2068, 2074, 69, 2065, - 69, 69, 2073, 2069, 69, 2076, 2079, 69, 69, 69, - 69, 69, 69, 2081, 2077, 69, 2080, 2082, 2078, 69, - 69, 69, 2091, 69, 2232, 2089, 2085, 2104, 2083, 2084, + 2032, 69, 2033, 2039, 2044, 2041, 2040, 69, 2036, 69, + 2045, 69, 2048, 2049, 69, 69, 69, 2042, 69, 2046, + 69, 2052, 69, 2050, 2054, 69, 2057, 69, 2058, 69, + 69, 2047, 69, 2051, 2060, 69, 69, 2064, 69, 69, + 69, 2053, 2055, 2056, 2061, 2063, 2065, 69, 2066, 69, + 2062, 2059, 69, 2068, 69, 69, 69, 2067, 69, 2071, + 2072, 69, 69, 69, 69, 2076, 69, 69, 69, 69, + 2080, 69, 2077, 2075, 2069, 69, 2073, 2079, 2070, 69, + 2081, 69, 2078, 2074, 69, 69, 69, 69, 69, 2084, + 69, 69, 2086, 69, 69, 2087, 69, 2085, 69, 2082, - 2092, 69, 2086, 2087, 69, 2094, 69, 69, 2093, 69, - 2088, 2090, 2095, 69, 2096, 2097, 69, 69, 2099, 69, - 2098, 2102, 69, 2101, 69, 2100, 69, 69, 69, 2107, - 69, 2103, 2108, 69, 2109, 69, 2106, 69, 2112, 69, - 69, 69, 2111, 69, 2105, 2110, 69, 69, 69, 2119, - 69, 2116, 2117, 2120, 69, 2232, 2114, 2121, 69, 2122, - 69, 2123, 69, 69, 2115, 2113, 69, 2118, 2125, 69, - 2126, 69, 2124, 69, 2128, 69, 2130, 69, 2127, 69, - 69, 2133, 69, 2132, 69, 69, 69, 69, 69, 2135, - 2129, 69, 69, 69, 2139, 69, 2134, 2131, 69, 2140, + 69, 2083, 2237, 2094, 2096, 69, 2090, 2108, 2088, 2089, + 2091, 2092, 2097, 69, 69, 2093, 2095, 69, 2098, 2099, + 69, 2100, 69, 2101, 2102, 69, 69, 2104, 69, 2103, + 69, 2107, 69, 69, 69, 2105, 69, 69, 2112, 2113, + 69, 2114, 69, 69, 2106, 2111, 69, 69, 2109, 2117, + 69, 2116, 2110, 69, 69, 69, 69, 69, 2115, 2237, + 2121, 2122, 2124, 69, 2125, 69, 2126, 69, 2119, 2127, + 69, 69, 2118, 2128, 69, 2120, 2123, 2130, 69, 69, + 2129, 2131, 69, 69, 2133, 69, 2135, 69, 69, 69, + 2138, 2132, 2137, 69, 69, 69, 69, 69, 69, 2140, - 69, 69, 2138, 69, 2136, 69, 2137, 2142, 69, 69, - 69, 2144, 2141, 69, 2145, 2152, 69, 69, 2154, 69, - 69, 2143, 2146, 2147, 2148, 2150, 2153, 69, 2155, 2156, - 69, 69, 69, 2151, 2149, 69, 2157, 2158, 2161, 69, - 2163, 69, 69, 69, 69, 2159, 69, 69, 2167, 2168, - 2160, 69, 69, 2162, 69, 69, 69, 2164, 69, 69, - 2170, 2165, 69, 2173, 69, 2166, 2169, 69, 69, 69, - 2171, 69, 2172, 2178, 2179, 2174, 69, 2175, 2181, 69, - 2176, 2177, 69, 2182, 69, 69, 69, 69, 2187, 2183, - 2180, 2184, 2185, 69, 69, 2186, 2188, 69, 69, 2192, + 2134, 69, 69, 69, 69, 2144, 2136, 2139, 2145, 69, + 69, 69, 69, 69, 2141, 2142, 69, 2143, 2146, 69, + 69, 2149, 69, 2147, 2150, 2237, 2148, 2157, 69, 2153, + 69, 2151, 2159, 69, 2152, 2155, 69, 2160, 69, 2158, + 2161, 69, 2156, 2162, 2154, 69, 69, 69, 2166, 69, + 2163, 2168, 69, 69, 69, 69, 69, 69, 2172, 2173, + 69, 69, 2165, 2167, 69, 69, 69, 69, 2169, 69, + 2175, 2164, 69, 2170, 2174, 2171, 2178, 69, 69, 69, + 2176, 2177, 2180, 69, 2183, 2179, 69, 69, 2184, 2237, + 2181, 2186, 69, 69, 2187, 69, 69, 2182, 69, 69, + + 2188, 2189, 2192, 2190, 69, 2185, 2191, 69, 69, 2193, + 69, 2194, 69, 2197, 69, 69, 69, 69, 2195, 69, + 2200, 69, 69, 2204, 69, 69, 2196, 2199, 69, 2205, + 69, 2198, 69, 2207, 2203, 2201, 2202, 69, 2208, 69, + 69, 2212, 69, 69, 2206, 2209, 2210, 2211, 69, 2215, + 2213, 69, 69, 69, 69, 2214, 2216, 69, 2218, 2219, + 69, 69, 2222, 69, 69, 69, 2225, 2226, 69, 69, + 69, 2217, 2228, 69, 2229, 69, 2220, 2227, 69, 2221, + 69, 69, 2223, 2224, 69, 2230, 2231, 2237, 2233, 2232, + 2235, 69, 2236, 69, 2237, 2237, 2237, 2237, 2237, 2234, - 2189, 69, 69, 69, 2190, 69, 69, 69, 2195, 69, - 69, 2199, 69, 69, 69, 2194, 69, 2191, 2200, 2204, - 2193, 69, 2198, 69, 2202, 2196, 2197, 69, 2203, 69, - 69, 2201, 2207, 69, 69, 2206, 2205, 2208, 69, 69, - 2210, 2209, 69, 2211, 69, 69, 69, 2213, 69, 2214, - 69, 2217, 69, 69, 2220, 2221, 69, 69, 2212, 69, - 2223, 69, 2224, 69, 2215, 2216, 2222, 2218, 69, 69, - 69, 2219, 69, 2232, 2226, 2225, 2228, 2227, 2230, 69, - 2231, 69, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2229, 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, 2232, 72, 72, - 72, 72, 131, 131, 2232, 2232, 2232, 131, 131, 133, - 133, 2232, 2232, 133, 2232, 133, 135, 2232, 2232, 2232, - 2232, 2232, 135, 138, 138, 2232, 2232, 2232, 138, 138, - 140, 2232, 2232, 2232, 2232, 2232, 140, 142, 142, 2232, - 142, 142, 142, 142, 73, 73, 2232, 73, 73, 73, - 73, 13, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, - 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, + 62, 62, 62, 62, 62, 72, 72, 2237, 72, 72, + 72, 72, 131, 131, 2237, 2237, 2237, 131, 131, 133, + 133, 2237, 2237, 133, 2237, 133, 135, 2237, 2237, 2237, + 2237, 2237, 135, 138, 138, 2237, 2237, 2237, 138, 138, + 140, 2237, 2237, 2237, 2237, 2237, 140, 142, 142, 2237, + 142, 142, 142, 142, 73, 73, 2237, 73, 73, 73, + 73, 13, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, - 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, - 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, - 2232, 2232 + 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, + 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, + 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, + 2237, 2237 } ; -static yyconst flex_int16_t yy_chk[4423] = +static yyconst flex_int16_t yy_chk[4433] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1683,7 +1671,7 @@ static yyconst flex_int16_t yy_chk[4423] = 10, 10, 15, 24, 9, 21, 15, 24, 21, 21, 10, 11, 11, 11, 11, 11, 11, 19, 33, 19, - 19, 2238, 19, 11, 25, 25, 21, 24, 19, 19, + 19, 2243, 19, 11, 25, 25, 21, 24, 19, 19, 77, 28, 11, 12, 12, 12, 12, 12, 12, 25, 22, 22, 26, 26, 23, 12, 28, 30, 22, 23, 77, 26, 22, 23, 12, 22, 23, 27, 23, 23, @@ -2004,161 +1992,162 @@ static yyconst flex_int16_t yy_chk[4423] = 1467, 1461, 1468, 1468, 1466, 1469, 1472, 1471, 1473, 1473, 1470, 1472, 1465, 1471, 1474, 1477, 1476, 1469, 1479, 1474, - 1476, 1480, 1481, 1482, 1483, 1485, 1480, 1488, 1484, 1483, - 1486, 1486, 1487, 1490, 1489, 1477, 1487, 1491, 1482, 1489, - 1495, 1485, 1488, 1479, 1493, 1481, 1484, 1494, 1496, 1498, - 1497, 1499, 1504, 1501, 1502, 1502, 1491, 1503, 0, 1490, - 1503, 1498, 1505, 1493, 1495, 1504, 1506, 1496, 1501, 1510, - 1494, 1497, 1499, 1507, 1507, 1511, 1505, 1508, 1508, 1506, - 1509, 1509, 1512, 1512, 1510, 1513, 1514, 1514, 1511, 1518, - 1515, 1517, 1519, 1520, 1513, 1515, 1517, 1513, 1521, 1521, + 1476, 1480, 1481, 1465, 1482, 1483, 1480, 1488, 1484, 1490, + 1483, 1485, 1486, 1486, 1487, 1477, 1489, 1491, 1487, 1482, + 1493, 1489, 1488, 1479, 1494, 1481, 1484, 1485, 1495, 1496, + 1497, 1498, 1499, 1504, 1501, 1490, 1491, 1502, 1502, 1493, + 1505, 1503, 1506, 1498, 1503, 0, 1504, 1494, 1496, 1501, + 1510, 1497, 1495, 1499, 1505, 1506, 1507, 1507, 1508, 1508, + 1509, 1509, 1511, 1512, 1512, 1510, 1515, 1513, 1514, 1514, + 1518, 1515, 1517, 1519, 1520, 1511, 1513, 1517, 1523, 1513, - 1522, 1522, 1523, 1524, 1524, 1520, 1525, 1526, 1526, 1518, - 1527, 1527, 1519, 1528, 1529, 1531, 1532, 1532, 1533, 1540, - 1531, 1523, 1534, 1534, 1525, 1535, 1536, 1528, 1537, 1538, - 1538, 1537, 1536, 1529, 1539, 1539, 1541, 1533, 1540, 1542, - 1543, 1543, 1545, 1535, 1546, 1538, 1547, 1550, 1548, 1549, - 1549, 1541, 1548, 1551, 1551, 1552, 1553, 1554, 1542, 1555, - 1555, 1547, 1545, 1553, 1556, 1559, 1550, 1546, 1557, 1560, - 1557, 1561, 1562, 1556, 1560, 1552, 1563, 1559, 1566, 1564, - 1567, 1565, 1568, 1554, 1564, 1562, 1565, 1570, 1571, 1567, - 1569, 1568, 1574, 1566, 1571, 1576, 1561, 1563, 1572, 1569, + 1521, 1521, 1522, 1522, 1524, 1524, 1520, 1525, 1526, 1526, + 1518, 1527, 1527, 1519, 1528, 1529, 1531, 1523, 1532, 1532, + 1533, 1531, 1534, 1534, 1535, 1525, 1536, 1537, 1528, 1540, + 1537, 1541, 1536, 1542, 1529, 1538, 1538, 1539, 1539, 1533, + 1543, 1543, 1535, 1545, 1546, 1547, 1541, 1550, 1540, 1548, + 1552, 1538, 1542, 1548, 1549, 1549, 1551, 1551, 1553, 1554, + 1547, 1555, 1555, 1545, 1556, 1553, 1550, 1546, 1559, 1557, + 1552, 1557, 1560, 1556, 1561, 1562, 1563, 1560, 1564, 1565, + 1559, 1566, 1567, 1564, 1565, 1554, 1568, 1570, 1562, 1569, + 1574, 1567, 1577, 1577, 1571, 1568, 1566, 1563, 1569, 1561, - 1580, 1570, 1572, 1578, 1576, 1577, 1577, 1579, 1579, 1578, - 1582, 1623, 1574, 1586, 1583, 1585, 1579, 1591, 1587, 1623, - 1580, 1589, 1580, 1583, 1589, 1582, 1590, 1585, 1592, 1586, - 1587, 1590, 1593, 1593, 1595, 1595, 1596, 1591, 1597, 1599, - 1592, 1596, 1598, 1598, 1597, 1600, 1600, 1601, 1602, 1603, - 1604, 1604, 1606, 1599, 1607, 1610, 1606, 1607, 1609, 1601, - 1608, 1608, 1602, 1609, 1611, 1612, 1613, 1614, 1603, 1615, - 1613, 1616, 1617, 1618, 1615, 1610, 1620, 1616, 1617, 1612, - 1621, 1624, 1622, 1624, 1611, 1621, 1627, 1614, 1622, 1628, - 1628, 1618, 1620, 1629, 1630, 1633, 1629, 1631, 1631, 1633, + 1571, 1570, 1572, 1576, 1580, 1578, 1572, 1579, 1579, 1583, + 1574, 1578, 1576, 1582, 1586, 1585, 1579, 1587, 1583, 1588, + 1590, 1592, 0, 1590, 1580, 1593, 1580, 1585, 1582, 1591, + 1586, 1588, 1587, 1600, 1591, 1594, 1594, 1593, 1596, 1596, + 1597, 1592, 1598, 1599, 1599, 1597, 1602, 1600, 1598, 1601, + 1601, 1603, 1604, 1605, 1605, 1607, 1611, 1608, 1602, 1607, + 1608, 1609, 1609, 1610, 1612, 1603, 1613, 1615, 1610, 1614, + 1616, 1604, 1617, 1614, 1619, 1616, 1611, 1618, 1617, 1621, + 1613, 1622, 1623, 1618, 1612, 1624, 1622, 1615, 1623, 1625, + 1628, 1625, 1619, 1624, 1631, 1621, 1629, 1629, 1630, 1632, - 1627, 1634, 1635, 1636, 1636, 1642, 1637, 1634, 1640, 1640, - 1654, 1645, 1646, 1653, 1635, 1637, 1645, 1646, 1647, 1647, - 1630, 1649, 1649, 1642, 1651, 1652, 1652, 1657, 1655, 1653, - 1651, 1658, 1654, 1655, 1659, 1659, 1661, 1663, 1662, 1664, - 1666, 1666, 0, 1658, 1662, 1661, 1657, 1668, 1668, 1669, - 1669, 1670, 1672, 1673, 1664, 1663, 1670, 1671, 1674, 1671, - 1675, 1675, 1678, 1674, 1676, 1676, 1672, 1673, 1677, 1677, - 1679, 1680, 1680, 1681, 1678, 1682, 1683, 1684, 1686, 1685, - 1687, 1687, 1688, 1683, 1685, 1681, 1689, 1682, 1679, 1684, - 1690, 1688, 1691, 1692, 1693, 1694, 1694, 1695, 1686, 1697, + 1632, 1630, 1634, 1635, 1628, 1636, 1634, 1637, 1637, 1635, + 1638, 1641, 1641, 1643, 1648, 1648, 1646, 1636, 1647, 1638, + 1631, 1646, 1652, 1647, 1650, 1650, 1653, 1653, 1652, 1654, + 1655, 1643, 1656, 1662, 1658, 1659, 1664, 1656, 1660, 1660, + 1663, 1665, 1662, 1667, 1667, 1654, 1663, 1659, 1669, 1669, + 1670, 1670, 1655, 1658, 1664, 1671, 1665, 1672, 1673, 1672, + 1671, 1674, 1675, 1676, 1676, 1677, 1677, 1675, 1678, 1678, + 1679, 1680, 1673, 1681, 1681, 1674, 1682, 1684, 1683, 1685, + 1686, 1687, 1679, 1689, 1684, 1686, 1688, 1688, 1682, 1680, + 1683, 1685, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1695, - 1696, 1698, 1702, 1702, 1699, 1691, 1695, 1699, 1693, 1700, - 1690, 1701, 1689, 1707, 1700, 1708, 1701, 1692, 1696, 1703, - 1703, 1697, 1704, 1704, 1698, 1710, 1708, 1712, 1711, 1714, - 1713, 1707, 1715, 1716, 1717, 1717, 1719, 1719, 1714, 1720, - 1721, 1723, 1724, 1725, 1727, 1710, 1711, 1722, 1720, 1712, - 1713, 1716, 1715, 1726, 1722, 1731, 1723, 1732, 1721, 1733, - 1724, 1725, 1730, 1727, 1728, 1728, 1729, 1729, 1730, 1726, - 1734, 1735, 1732, 1731, 1736, 1734, 1737, 1738, 1733, 1738, - 1743, 1737, 1739, 1739, 1740, 1746, 1740, 1741, 1741, 1745, - 1747, 1735, 1750, 1751, 1736, 1753, 1751, 1754, 1745, 1743, + 1696, 1687, 1698, 1697, 1699, 1704, 1704, 1700, 1692, 1696, + 1700, 1694, 1701, 1702, 1691, 1705, 1705, 1703, 1702, 1690, + 1693, 1697, 1703, 1709, 1698, 1710, 1701, 1699, 1706, 1706, + 1712, 1713, 1714, 1715, 1716, 1717, 1710, 1722, 1718, 1719, + 1719, 1709, 1723, 1716, 1721, 1721, 1722, 1725, 1726, 1713, + 1712, 1724, 1727, 1715, 1714, 1717, 1718, 1728, 1724, 1729, + 1723, 1733, 1725, 1730, 1730, 1732, 1726, 1731, 1731, 1734, + 1727, 1732, 1735, 1728, 1737, 1736, 1738, 1739, 1729, 1733, + 1736, 1740, 1739, 1740, 1734, 1741, 1741, 1742, 1745, 1742, + 1747, 1735, 1743, 1743, 1737, 1748, 1738, 1749, 1752, 1747, - 1752, 1752, 1755, 1755, 1756, 1746, 1758, 1759, 1756, 1747, - 1753, 1759, 1750, 1760, 1760, 1754, 1761, 1763, 1763, 1765, - 1765, 1758, 1766, 1767, 1767, 1768, 1769, 1769, 1774, 1761, - 1768, 1773, 1773, 1775, 1776, 1777, 1780, 1778, 1896, 1779, - 1777, 1766, 1783, 1776, 1779, 1781, 1775, 1784, 1786, 1785, - 1774, 1778, 1784, 1781, 1785, 1780, 1794, 1783, 1787, 1787, - 1788, 1788, 1789, 1786, 1896, 1790, 1791, 1799, 1792, 1789, - 1790, 1794, 1791, 1792, 1793, 1793, 1795, 1795, 1796, 1796, - 1799, 1800, 1806, 1801, 1802, 1803, 1800, 1800, 1801, 1803, - 1802, 1804, 1805, 1808, 1807, 1809, 1804, 1806, 1808, 1812, + 1753, 1754, 1754, 1753, 1755, 1756, 1758, 1745, 1757, 1757, + 1758, 1760, 1763, 1761, 1768, 1748, 1749, 1761, 1752, 1755, + 1762, 1762, 1776, 1756, 0, 1763, 1760, 1765, 1765, 1767, + 1767, 1769, 1769, 1768, 1770, 1771, 1771, 1775, 1775, 1770, + 1777, 1778, 1779, 1780, 1776, 1782, 1781, 1779, 1783, 1786, + 1778, 1781, 1785, 1777, 1786, 1787, 1783, 1780, 1788, 1802, + 1787, 1789, 1789, 1791, 1782, 1790, 1790, 1785, 1796, 1792, + 1791, 1793, 1802, 1788, 1792, 1794, 1797, 1793, 1795, 1795, + 1794, 1797, 0, 1796, 1798, 1798, 1799, 1799, 1803, 1809, + 1804, 1805, 1806, 1803, 1803, 1804, 1806, 1805, 1807, 1808, - 1811, 1805, 1807, 1811, 1812, 1813, 1814, 1809, 1815, 1816, - 1817, 1817, 1818, 1821, 1822, 1827, 1823, 1815, 1816, 1814, - 1825, 1818, 1826, 1813, 1824, 1824, 1828, 1828, 1829, 1831, - 1827, 1826, 1821, 1833, 1822, 1823, 1834, 1835, 1837, 1825, - 1834, 1836, 1836, 1835, 1831, 1838, 1837, 1829, 1840, 1841, - 1838, 1843, 1844, 1833, 1845, 1843, 1852, 1840, 1847, 1847, - 1850, 1850, 1841, 1854, 1855, 1855, 1844, 1856, 1856, 1845, - 1857, 1858, 1858, 1857, 1859, 1859, 1852, 1860, 1860, 1861, - 1861, 1862, 1863, 1854, 1864, 1865, 1865, 1866, 1869, 1870, - 1864, 1866, 1871, 1869, 1869, 1872, 1863, 1873, 1871, 1862, + 1811, 1810, 1812, 1807, 1809, 1811, 1815, 1814, 1808, 1810, + 1814, 1815, 1816, 1817, 1812, 1818, 1819, 1820, 1820, 1821, + 1824, 1825, 1830, 1826, 1818, 1819, 1817, 1828, 1821, 1829, + 1816, 1827, 1827, 1831, 1831, 1832, 1834, 1830, 1829, 1824, + 1836, 1825, 1826, 1837, 1838, 1840, 1828, 1837, 1839, 1839, + 1838, 1834, 1841, 1840, 1832, 1843, 1844, 1841, 1846, 1847, + 1836, 1848, 1846, 1855, 1843, 1850, 1850, 1853, 1853, 1844, + 1857, 1858, 1858, 1847, 1859, 1859, 1848, 1860, 1861, 1861, + 1860, 1862, 1862, 1855, 1863, 1863, 1864, 1864, 1865, 1866, + 1857, 1867, 1868, 1868, 1869, 1872, 1873, 1867, 1869, 1874, - 1874, 1872, 1877, 1878, 1874, 1880, 1878, 1877, 1881, 1882, - 1883, 1884, 1870, 1885, 1882, 1886, 1886, 1887, 1889, 1890, - 1890, 1888, 1873, 1891, 1891, 1881, 1881, 1885, 1883, 1888, - 1880, 1884, 1892, 1892, 1893, 1894, 1887, 1889, 1895, 1897, - 1894, 1898, 1899, 1901, 1901, 1903, 1902, 1906, 1897, 1902, - 1893, 1905, 1905, 1911, 1906, 1907, 1907, 1909, 1895, 1908, - 1915, 1898, 1899, 1903, 1908, 1913, 1909, 1912, 1912, 1913, - 1914, 1911, 1916, 1917, 1918, 1915, 1921, 1916, 1916, 1914, - 1920, 1920, 1922, 1918, 1924, 1921, 1917, 1926, 1929, 1930, - 1930, 1931, 1933, 1929, 1922, 1936, 1936, 1933, 1937, 1926, + 1872, 1872, 1875, 1866, 1876, 1874, 1865, 1877, 1875, 1878, + 1878, 1877, 1881, 1882, 1884, 1885, 1882, 1881, 1886, 1873, + 1887, 1888, 1889, 1886, 1890, 1890, 1891, 1892, 1893, 1876, + 1894, 1894, 1885, 1885, 1897, 1892, 1889, 1899, 1887, 1884, + 1900, 1888, 1895, 1895, 1901, 1891, 1898, 1893, 1896, 1896, + 1897, 1898, 1902, 1901, 1903, 1905, 1905, 1899, 1906, 1907, + 1910, 1906, 1909, 1909, 1911, 1911, 1900, 1910, 1912, 1913, + 1915, 1918, 1902, 1912, 1903, 1916, 1916, 1907, 1913, 1917, + 1918, 1919, 1921, 1917, 1920, 1922, 1924, 1924, 1915, 1920, + 1920, 1925, 1926, 1928, 1922, 1921, 1919, 1930, 1933, 1935, - 1931, 1934, 1934, 1938, 1941, 1934, 1939, 1937, 1940, 1924, - 1941, 1942, 1944, 1940, 1943, 1943, 1942, 1945, 1946, 1948, - 1947, 1951, 1945, 1938, 1952, 1939, 1947, 1949, 1949, 1953, - 1953, 1955, 1954, 1944, 1956, 1955, 1946, 1957, 1958, 1952, - 1951, 1959, 1960, 1956, 1948, 1954, 1961, 1960, 1963, 1959, - 1962, 1962, 1968, 1957, 1965, 1965, 1975, 1958, 1966, 1966, - 1970, 1970, 1971, 1972, 1974, 1974, 1976, 1963, 1972, 1977, - 1979, 1979, 1961, 1968, 1982, 1985, 1975, 1980, 1971, 1983, - 1983, 1984, 1984, 1986, 1985, 1987, 1988, 1990, 1977, 1976, - 1990, 1980, 1989, 1989, 1991, 1991, 1982, 1987, 1993, 1994, + 1925, 1934, 1934, 1933, 1926, 1937, 1940, 1940, 1935, 1930, + 1937, 1938, 1938, 1941, 1942, 1938, 1943, 1946, 1928, 1944, + 1947, 1949, 1941, 1946, 1944, 1947, 1948, 1948, 1950, 1951, + 1952, 1953, 1956, 1950, 1942, 1943, 1952, 1954, 1954, 1957, + 1958, 1958, 1949, 1961, 1959, 1960, 1962, 1951, 1963, 1960, + 1964, 1956, 1961, 1966, 1957, 1965, 1953, 1959, 1964, 1968, + 1965, 1973, 1962, 1967, 1967, 1970, 1970, 1963, 1971, 1971, + 1975, 1975, 1976, 1979, 1979, 1977, 1980, 1981, 1968, 1966, + 1977, 1985, 1973, 1982, 1984, 1984, 1987, 1991, 1976, 1988, + 1988, 1989, 1989, 1992, 1990, 1985, 1980, 1993, 1994, 1994, - 1998, 1995, 1986, 1996, 1996, 1997, 1988, 1995, 1997, 2000, - 1993, 2001, 2004, 2004, 2000, 2002, 2003, 2007, 1998, 1994, - 0, 2002, 2006, 2006, 2009, 2009, 2010, 2011, 2013, 2013, - 2001, 2010, 2012, 2003, 2003, 2016, 2007, 2012, 2014, 2014, - 2016, 2011, 2015, 2015, 2018, 2018, 2021, 2023, 2024, 2024, - 2026, 2026, 2027, 2028, 2029, 2030, 2030, 2031, 2034, 2035, - 2036, 2036, 2031, 2029, 2039, 2021, 2027, 2035, 2040, 2023, - 2037, 2041, 2034, 2028, 2042, 2037, 2041, 2043, 2046, 2045, - 2048, 2047, 2074, 2043, 2039, 2049, 2042, 2045, 2040, 2050, - 2051, 2054, 2056, 2056, 0, 2051, 2048, 2074, 2046, 2047, + 1981, 1995, 1982, 1990, 1995, 1992, 1991, 1998, 1987, 1996, + 1996, 1999, 2000, 2001, 2001, 2003, 2005, 1993, 2000, 1998, + 2002, 2005, 2006, 2002, 2007, 2008, 2009, 2009, 2011, 2011, + 2007, 1999, 2012, 2003, 2014, 2014, 2016, 2018, 2018, 2015, + 2017, 2006, 2008, 2008, 2015, 2017, 2019, 2019, 2020, 2020, + 2016, 2012, 2021, 2023, 2023, 2026, 2028, 2021, 2029, 2029, + 2031, 2031, 2032, 2033, 2034, 2035, 2035, 2036, 2039, 2040, + 2041, 2041, 2036, 2034, 2026, 2042, 2032, 2040, 2028, 2044, + 2042, 2045, 2039, 2033, 2046, 2047, 2048, 2050, 2051, 2046, + 2053, 2052, 2048, 2054, 2055, 2050, 2059, 2047, 2056, 2044, - 2057, 2057, 2049, 2049, 2058, 2062, 2062, 2069, 2058, 2070, - 2050, 2054, 2064, 2064, 2065, 2065, 2066, 2065, 2068, 2068, - 2066, 2072, 2072, 2070, 2073, 2069, 2076, 2077, 2078, 2078, - 2081, 2073, 2079, 2079, 2080, 2080, 2077, 2082, 2083, 2083, - 2084, 2085, 2082, 2086, 2076, 2081, 2087, 2088, 2089, 2090, - 2090, 2087, 2088, 2093, 2093, 0, 2085, 2096, 2096, 2097, - 2097, 2098, 2098, 2100, 2086, 2084, 2104, 2089, 2101, 2101, - 2103, 2103, 2100, 2105, 2105, 2106, 2107, 2107, 2104, 2110, - 2111, 2113, 2114, 2111, 2115, 2116, 2118, 2113, 2117, 2115, - 2106, 2124, 2128, 2129, 2124, 2127, 2114, 2110, 2131, 2127, + 2078, 2045, 0, 2056, 2061, 2061, 2053, 2078, 2051, 2052, + 2054, 2054, 2062, 2062, 2063, 2055, 2059, 2074, 2063, 2067, + 2067, 2069, 2069, 2070, 2070, 2071, 2070, 2073, 2073, 2071, + 2075, 2077, 2077, 2079, 2081, 2074, 2082, 2083, 2083, 2084, + 2084, 2085, 2085, 2086, 2075, 2082, 2087, 2089, 2079, 2088, + 2088, 2087, 2081, 2090, 2091, 2092, 2093, 2094, 2086, 0, + 2092, 2093, 2095, 2095, 2098, 2098, 2101, 2101, 2090, 2102, + 2102, 2105, 2089, 2103, 2103, 2091, 2094, 2106, 2106, 2109, + 2105, 2108, 2108, 2110, 2110, 2111, 2112, 2112, 2115, 2116, + 2118, 2109, 2116, 2119, 2120, 2121, 2118, 2122, 2133, 2120, - 2132, 2133, 2118, 2134, 2116, 2135, 2117, 2129, 2136, 2137, - 2138, 2132, 2128, 2139, 2133, 2140, 2140, 2141, 2142, 2142, - 2147, 2131, 2134, 2135, 2136, 2138, 2141, 2143, 2143, 2144, - 2144, 2145, 2146, 2139, 2137, 2148, 2145, 2146, 2149, 2150, - 2151, 2151, 2153, 2155, 2149, 2147, 2157, 2161, 2158, 2159, - 2148, 2162, 2160, 2150, 2158, 2159, 2166, 2153, 2164, 2165, - 2161, 2155, 2169, 2165, 2167, 2157, 2160, 2168, 2170, 2171, - 2162, 2172, 2164, 2170, 2171, 2166, 2178, 2167, 2173, 2173, - 2168, 2169, 2174, 2174, 2175, 2183, 2176, 2177, 2179, 2175, - 2172, 2176, 2177, 2182, 2179, 2178, 2180, 2180, 2184, 2185, + 2111, 2123, 2129, 2136, 2132, 2129, 2115, 2119, 2132, 2134, + 2137, 2138, 2139, 2141, 2121, 2122, 2140, 2123, 2133, 2142, + 2143, 2137, 2144, 2134, 2138, 0, 2136, 2145, 2145, 2141, + 2146, 2139, 2147, 2147, 2140, 2143, 2148, 2148, 2150, 2146, + 2149, 2149, 2144, 2150, 2142, 2151, 2152, 2153, 2154, 2155, + 2151, 2156, 2156, 2158, 2154, 2160, 2162, 2166, 2163, 2164, + 2165, 2167, 2153, 2155, 2163, 2164, 2171, 2169, 2158, 2172, + 2166, 2152, 2170, 2160, 2165, 2162, 2170, 2173, 2174, 2175, + 2167, 2169, 2172, 2176, 2175, 2171, 2177, 2183, 2176, 0, + 2173, 2178, 2178, 2179, 2179, 2180, 2181, 2174, 2182, 2188, - 2182, 2186, 2187, 2189, 2183, 2185, 2190, 2191, 2189, 2192, - 2193, 2193, 2195, 2194, 2198, 2187, 2200, 2184, 2194, 2198, - 2186, 2204, 2192, 2196, 2196, 2190, 2191, 2197, 2197, 2199, - 2202, 2195, 2201, 2201, 2203, 2200, 2199, 2202, 2205, 2206, - 2204, 2203, 2208, 2205, 2209, 2210, 2211, 2208, 2213, 2209, - 2212, 2212, 2214, 2215, 2215, 2216, 2216, 2226, 2206, 2217, - 2218, 2218, 2219, 2219, 2210, 2211, 2217, 2213, 2220, 2222, - 2227, 2214, 2225, 0, 2222, 2220, 2226, 2225, 2228, 2228, - 2229, 2229, 0, 0, 0, 0, 0, 0, 0, 2227, - 2233, 2233, 2233, 2233, 2233, 2233, 2233, 2234, 2234, 2234, + 2180, 2181, 2184, 2182, 2187, 2177, 2183, 2189, 2184, 2185, + 2185, 2187, 2191, 2190, 2192, 2194, 2195, 2196, 2188, 2190, + 2194, 2197, 2198, 2198, 2199, 2200, 2189, 2192, 2205, 2199, + 2209, 2191, 2201, 2201, 2197, 2195, 2196, 2202, 2202, 2204, + 2203, 2206, 2206, 2207, 2200, 2203, 2204, 2205, 2208, 2209, + 2207, 2210, 2211, 2213, 2214, 2208, 2210, 2215, 2213, 2214, + 2216, 2217, 2217, 2218, 2219, 2220, 2220, 2221, 2221, 2231, + 2222, 2211, 2223, 2223, 2224, 2224, 2215, 2222, 2225, 2216, + 2232, 2227, 2218, 2219, 2230, 2225, 2227, 0, 2231, 2230, + 2233, 2233, 2234, 2234, 0, 0, 0, 0, 0, 2232, - 2234, 2234, 2234, 2234, 2235, 2235, 2235, 2235, 2235, 2235, - 2235, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2237, 2237, - 2237, 2237, 2237, 2237, 2237, 2239, 2239, 0, 2239, 2239, - 2239, 2239, 2240, 2240, 0, 0, 0, 2240, 2240, 2241, - 2241, 0, 0, 2241, 0, 2241, 2242, 0, 0, 0, - 0, 0, 2242, 2243, 2243, 0, 0, 0, 2243, 2243, - 2244, 0, 0, 0, 0, 0, 2244, 2245, 2245, 0, - 2245, 2245, 2245, 2245, 2246, 2246, 0, 2246, 2246, 2246, - 2246, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, - 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2239, 2239, 2239, + 2239, 2239, 2239, 2239, 2240, 2240, 2240, 2240, 2240, 2240, + 2240, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2242, 2242, + 2242, 2242, 2242, 2242, 2242, 2244, 2244, 0, 2244, 2244, + 2244, 2244, 2245, 2245, 0, 0, 0, 2245, 2245, 2246, + 2246, 0, 0, 2246, 0, 2246, 2247, 0, 0, 0, + 0, 0, 2247, 2248, 2248, 0, 0, 0, 2248, 2248, + 2249, 0, 0, 0, 0, 0, 2249, 2250, 2250, 0, + 2250, 2250, 2250, 2250, 2251, 2251, 0, 2251, 2251, 2251, + 2251, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, - 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, - 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, - 2232, 2232 + 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, + 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, + 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, + 2237, 2237 } ; static yy_state_type yy_last_accepting_state; @@ -2369,7 +2358,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 2371 "" +#line 2360 "" #define INITIAL 0 #define quotedstring 1 @@ -2413,7 +2402,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 ); @@ -2470,7 +2459,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, @@ -2494,7 +2483,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) \ { \ @@ -2592,7 +2581,7 @@ YY_DECL { #line 207 "./util/configlexer.lex" -#line 2594 "" +#line 2583 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2625,13 +2614,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 >= 2233 ) + if ( yy_current_state >= 2238 ) 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] != 4382 ); + while ( yy_base[yy_current_state] != 4392 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3126,615 +3115,620 @@ YY_RULE_SETUP case 94: YY_RULE_SETUP #line 304 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } YY_BREAK case 95: YY_RULE_SETUP #line 305 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } YY_BREAK case 96: YY_RULE_SETUP #line 306 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } YY_BREAK case 97: YY_RULE_SETUP #line 307 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } YY_BREAK case 98: YY_RULE_SETUP #line 308 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } YY_BREAK case 99: YY_RULE_SETUP #line 309 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 100: YY_RULE_SETUP #line 310 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 101: YY_RULE_SETUP #line 311 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } YY_BREAK case 102: YY_RULE_SETUP #line 312 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 103: YY_RULE_SETUP #line 313 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 104: YY_RULE_SETUP #line 314 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 105: YY_RULE_SETUP #line 315 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 106: YY_RULE_SETUP #line 316 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 107: YY_RULE_SETUP #line 317 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 108: YY_RULE_SETUP #line 318 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 109: YY_RULE_SETUP #line 319 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 110: YY_RULE_SETUP #line 320 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 111: YY_RULE_SETUP #line 321 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } YY_BREAK case 112: YY_RULE_SETUP #line 322 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 113: YY_RULE_SETUP #line 323 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 114: YY_RULE_SETUP #line 324 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 115: YY_RULE_SETUP #line 325 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 116: YY_RULE_SETUP #line 326 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 117: YY_RULE_SETUP #line 327 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 118: YY_RULE_SETUP #line 328 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 119: YY_RULE_SETUP #line 329 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 120: YY_RULE_SETUP #line 330 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 121: YY_RULE_SETUP #line 331 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 122: YY_RULE_SETUP #line 332 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 123: YY_RULE_SETUP #line 333 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 124: YY_RULE_SETUP #line 334 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 125: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 126: YY_RULE_SETUP -#line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 336 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 127: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 128: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 129: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 130: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 131: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 132: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 133: YY_RULE_SETUP #line 344 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 134: YY_RULE_SETUP #line 345 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 135: YY_RULE_SETUP #line 346 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 136: YY_RULE_SETUP #line 347 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 137: YY_RULE_SETUP #line 348 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 138: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 139: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 140: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 141: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 142: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 143: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 144: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 145: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 146: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 147: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 148: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 149: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 150: YY_RULE_SETUP #line 361 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 151: YY_RULE_SETUP #line 362 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 152: YY_RULE_SETUP #line 363 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 153: YY_RULE_SETUP #line 364 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 154: YY_RULE_SETUP #line 365 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 155: YY_RULE_SETUP #line 366 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 156: YY_RULE_SETUP #line 367 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 157: YY_RULE_SETUP #line 368 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 158: YY_RULE_SETUP #line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 159: YY_RULE_SETUP #line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 160: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 161: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 162: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 163: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 164: YY_RULE_SETUP #line 375 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 165: YY_RULE_SETUP #line 376 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 166: YY_RULE_SETUP #line 377 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 167: YY_RULE_SETUP #line 378 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 168: YY_RULE_SETUP #line 379 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 169: YY_RULE_SETUP #line 380 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 170: YY_RULE_SETUP #line 381 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 171: YY_RULE_SETUP #line 382 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 172: YY_RULE_SETUP #line 383 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 173: YY_RULE_SETUP #line 384 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 174: YY_RULE_SETUP #line 385 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 175: YY_RULE_SETUP #line 386 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 176: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 177: YY_RULE_SETUP -#line 389 "./util/configlexer.lex" +#line 388 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 178: YY_RULE_SETUP -#line 391 "./util/configlexer.lex" +#line 390 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 179: YY_RULE_SETUP -#line 393 "./util/configlexer.lex" +#line 392 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 180: YY_RULE_SETUP -#line 395 "./util/configlexer.lex" +#line 394 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 181: YY_RULE_SETUP -#line 397 "./util/configlexer.lex" +#line 396 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 182: YY_RULE_SETUP -#line 399 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 398 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 183: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 184: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 185: YY_RULE_SETUP #line 402 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 186: YY_RULE_SETUP #line 403 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 187: YY_RULE_SETUP #line 404 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 188: YY_RULE_SETUP #line 405 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 189: YY_RULE_SETUP #line 406 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 190: YY_RULE_SETUP #line 407 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 191: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 192: YY_RULE_SETUP #line 409 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 193: YY_RULE_SETUP #line 410 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 194: YY_RULE_SETUP #line 411 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 195: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 196: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 197: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 198: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 199: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 200: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 201: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 202: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 203: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 204: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 205: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 206: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 207: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 208: -/* rule 208 can match eol */ YY_RULE_SETUP #line 425 "./util/configlexer.lex" +{ YDVAR(1, VAR_IPSECMOD_STRICT) } + YY_BREAK +case 209: +/* rule 209 can match eol */ +YY_RULE_SETUP +#line 426 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 209: +case 210: YY_RULE_SETUP -#line 428 "./util/configlexer.lex" +#line 429 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 429 "./util/configlexer.lex" +#line 430 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 210: -YY_RULE_SETUP -#line 434 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 211: -/* rule 211 can match eol */ YY_RULE_SETUP #line 435 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 212: +/* rule 212 can match eol */ +YY_RULE_SETUP +#line 436 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 212: +case 213: YY_RULE_SETUP -#line 437 "./util/configlexer.lex" +#line 438 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3747,34 +3741,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 213: +case 214: YY_RULE_SETUP -#line 449 "./util/configlexer.lex" +#line 450 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 450 "./util/configlexer.lex" +#line 451 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 214: -YY_RULE_SETUP -#line 455 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 215: -/* rule 215 can match eol */ YY_RULE_SETUP #line 456 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 216: +/* rule 216 can match eol */ +YY_RULE_SETUP +#line 457 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 216: +case 217: YY_RULE_SETUP -#line 458 "./util/configlexer.lex" +#line 459 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3787,38 +3781,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 217: +case 218: YY_RULE_SETUP -#line 470 "./util/configlexer.lex" +#line 471 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 472 "./util/configlexer.lex" +#line 473 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 218: -YY_RULE_SETUP -#line 476 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 219: -/* rule 219 can match eol */ YY_RULE_SETUP #line 477 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 220: +/* rule 220 can match eol */ YY_RULE_SETUP #line 478 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 221: YY_RULE_SETUP #line 479 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 222: +YY_RULE_SETUP +#line 480 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -3826,27 +3820,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 484 "./util/configlexer.lex" +#line 485 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 222: -YY_RULE_SETUP -#line 488 "./util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 223: -/* rule 223 can match eol */ YY_RULE_SETUP #line 489 "./util/configlexer.lex" +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 224: +/* rule 224 can match eol */ +YY_RULE_SETUP +#line 490 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 224: +case 225: YY_RULE_SETUP -#line 491 "./util/configlexer.lex" +#line 492 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -3856,7 +3850,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 497 "./util/configlexer.lex" +#line 498 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -3868,33 +3862,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 225: +case 226: YY_RULE_SETUP -#line 508 "./util/configlexer.lex" +#line 509 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 226: +case 227: YY_RULE_SETUP -#line 512 "./util/configlexer.lex" +#line 513 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 227: +case 228: YY_RULE_SETUP -#line 516 "./util/configlexer.lex" +#line 517 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 228: +case 229: YY_RULE_SETUP -#line 520 "./util/configlexer.lex" +#line 521 "./util/configlexer.lex" ECHO; YY_BREAK -#line 3896 "" +#line 3890 "" case YY_END_OF_BUFFER: { @@ -4093,7 +4087,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; @@ -4106,7 +4100,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( @@ -4148,9 +4142,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()" ); @@ -4185,10 +4179,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 >= 2233 ) + if ( yy_current_state >= 2238 ) 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; @@ -4213,11 +4207,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 >= 2233 ) + if ( yy_current_state >= 2238 ) 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 == 2232); + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_is_jam = (yy_current_state == 2237); return yy_is_jam ? 0 : yy_current_state; } @@ -4250,7 +4244,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( ) ) @@ -4274,7 +4268,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; @@ -4522,7 +4516,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)) { @@ -4536,9 +4530,9 @@ static void yyensure_buffer_stack (void) ); 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; @@ -4567,7 +4561,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 ) { @@ -4577,7 +4571,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 ) @@ -4586,7 +4580,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; @@ -4609,7 +4603,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 @@ -4619,7 +4613,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; @@ -4627,7 +4621,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()" ); @@ -4653,7 +4647,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 ); @@ -4666,7 +4660,7 @@ static void yy_fatal_error (yyconst char* msg ) do \ { \ /* Undo effects of setting up yytext. */ \ - yy_size_t yyless_macro_arg = (n); \ + int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -4683,7 +4677,7 @@ static void yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -4706,7 +4700,7 @@ FILE *yyget_out (void) /** Get the length of the current token. * */ -yy_size_t yyget_leng (void) +int yyget_leng (void) { return yyleng; } @@ -4762,10 +4756,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; @@ -4774,8 +4768,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 @@ -4833,7 +4827,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 ) @@ -4846,7 +4840,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 ) @@ -4856,7 +4850,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 520 "./util/configlexer.lex" +#line 521 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 701df8ba4..d9b8e281c 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -301,6 +301,7 @@ do-not-query-address{COLON} { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } do-not-query-localhost{COLON} { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } access-control{COLON} { YDVAR(2, VAR_ACCESS_CONTROL) } send-client-subnet{COLON} { YDVAR(1, VAR_SEND_CLIENT_SUBNET) } +client-subnet-zone{COLON} { YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } client-subnet-always-forward{COLON} { YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } client-subnet-opcode{COLON} { YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } max-client-subnet-ipv4{COLON} { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } diff --git a/util/configparser.c b/util/configparser.c index b782bada8..a54a8146b 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -298,46 +298,47 @@ extern int yydebug; VAR_IP_RATELIMIT_FACTOR = 427, VAR_RATELIMIT_FACTOR = 428, VAR_SEND_CLIENT_SUBNET = 429, - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 430, - VAR_CLIENT_SUBNET_OPCODE = 431, - VAR_MAX_CLIENT_SUBNET_IPV4 = 432, - VAR_MAX_CLIENT_SUBNET_IPV6 = 433, - VAR_CAPS_WHITELIST = 434, - VAR_CACHE_MAX_NEGATIVE_TTL = 435, - VAR_PERMIT_SMALL_HOLDDOWN = 436, - VAR_QNAME_MINIMISATION = 437, - VAR_QNAME_MINIMISATION_STRICT = 438, - VAR_IP_FREEBIND = 439, - VAR_DEFINE_TAG = 440, - VAR_LOCAL_ZONE_TAG = 441, - VAR_ACCESS_CONTROL_TAG = 442, - VAR_LOCAL_ZONE_OVERRIDE = 443, - VAR_ACCESS_CONTROL_TAG_ACTION = 444, - VAR_ACCESS_CONTROL_TAG_DATA = 445, - VAR_VIEW = 446, - VAR_ACCESS_CONTROL_VIEW = 447, - VAR_VIEW_FIRST = 448, - VAR_SERVE_EXPIRED = 449, - VAR_FAKE_DSA = 450, - VAR_FAKE_SHA1 = 451, - VAR_LOG_IDENTITY = 452, - VAR_HIDE_TRUSTANCHOR = 453, - VAR_TRUST_ANCHOR_SIGNALING = 454, - VAR_USE_SYSTEMD = 455, - VAR_SHM_ENABLE = 456, - VAR_SHM_KEY = 457, - VAR_DNSCRYPT = 458, - VAR_DNSCRYPT_ENABLE = 459, - VAR_DNSCRYPT_PORT = 460, - VAR_DNSCRYPT_PROVIDER = 461, - VAR_DNSCRYPT_SECRET_KEY = 462, - VAR_DNSCRYPT_PROVIDER_CERT = 463, - VAR_IPSECMOD_ENABLED = 464, - VAR_IPSECMOD_HOOK = 465, - VAR_IPSECMOD_IGNORE_BOGUS = 466, - VAR_IPSECMOD_MAX_TTL = 467, - VAR_IPSECMOD_WHITELIST = 468, - VAR_IPSECMOD_STRICT = 469 + VAR_CLIENT_SUBNET_ZONE = 430, + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 431, + VAR_CLIENT_SUBNET_OPCODE = 432, + VAR_MAX_CLIENT_SUBNET_IPV4 = 433, + VAR_MAX_CLIENT_SUBNET_IPV6 = 434, + VAR_CAPS_WHITELIST = 435, + VAR_CACHE_MAX_NEGATIVE_TTL = 436, + VAR_PERMIT_SMALL_HOLDDOWN = 437, + VAR_QNAME_MINIMISATION = 438, + VAR_QNAME_MINIMISATION_STRICT = 439, + VAR_IP_FREEBIND = 440, + VAR_DEFINE_TAG = 441, + VAR_LOCAL_ZONE_TAG = 442, + VAR_ACCESS_CONTROL_TAG = 443, + VAR_LOCAL_ZONE_OVERRIDE = 444, + VAR_ACCESS_CONTROL_TAG_ACTION = 445, + VAR_ACCESS_CONTROL_TAG_DATA = 446, + VAR_VIEW = 447, + VAR_ACCESS_CONTROL_VIEW = 448, + VAR_VIEW_FIRST = 449, + VAR_SERVE_EXPIRED = 450, + VAR_FAKE_DSA = 451, + VAR_FAKE_SHA1 = 452, + VAR_LOG_IDENTITY = 453, + VAR_HIDE_TRUSTANCHOR = 454, + VAR_TRUST_ANCHOR_SIGNALING = 455, + VAR_USE_SYSTEMD = 456, + VAR_SHM_ENABLE = 457, + VAR_SHM_KEY = 458, + VAR_DNSCRYPT = 459, + VAR_DNSCRYPT_ENABLE = 460, + VAR_DNSCRYPT_PORT = 461, + VAR_DNSCRYPT_PROVIDER = 462, + VAR_DNSCRYPT_SECRET_KEY = 463, + VAR_DNSCRYPT_PROVIDER_CERT = 464, + VAR_IPSECMOD_ENABLED = 465, + VAR_IPSECMOD_HOOK = 466, + VAR_IPSECMOD_IGNORE_BOGUS = 467, + VAR_IPSECMOD_MAX_TTL = 468, + VAR_IPSECMOD_WHITELIST = 469, + VAR_IPSECMOD_STRICT = 470 }; #endif /* Tokens. */ @@ -513,46 +514,47 @@ extern int yydebug; #define VAR_IP_RATELIMIT_FACTOR 427 #define VAR_RATELIMIT_FACTOR 428 #define VAR_SEND_CLIENT_SUBNET 429 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 430 -#define VAR_CLIENT_SUBNET_OPCODE 431 -#define VAR_MAX_CLIENT_SUBNET_IPV4 432 -#define VAR_MAX_CLIENT_SUBNET_IPV6 433 -#define VAR_CAPS_WHITELIST 434 -#define VAR_CACHE_MAX_NEGATIVE_TTL 435 -#define VAR_PERMIT_SMALL_HOLDDOWN 436 -#define VAR_QNAME_MINIMISATION 437 -#define VAR_QNAME_MINIMISATION_STRICT 438 -#define VAR_IP_FREEBIND 439 -#define VAR_DEFINE_TAG 440 -#define VAR_LOCAL_ZONE_TAG 441 -#define VAR_ACCESS_CONTROL_TAG 442 -#define VAR_LOCAL_ZONE_OVERRIDE 443 -#define VAR_ACCESS_CONTROL_TAG_ACTION 444 -#define VAR_ACCESS_CONTROL_TAG_DATA 445 -#define VAR_VIEW 446 -#define VAR_ACCESS_CONTROL_VIEW 447 -#define VAR_VIEW_FIRST 448 -#define VAR_SERVE_EXPIRED 449 -#define VAR_FAKE_DSA 450 -#define VAR_FAKE_SHA1 451 -#define VAR_LOG_IDENTITY 452 -#define VAR_HIDE_TRUSTANCHOR 453 -#define VAR_TRUST_ANCHOR_SIGNALING 454 -#define VAR_USE_SYSTEMD 455 -#define VAR_SHM_ENABLE 456 -#define VAR_SHM_KEY 457 -#define VAR_DNSCRYPT 458 -#define VAR_DNSCRYPT_ENABLE 459 -#define VAR_DNSCRYPT_PORT 460 -#define VAR_DNSCRYPT_PROVIDER 461 -#define VAR_DNSCRYPT_SECRET_KEY 462 -#define VAR_DNSCRYPT_PROVIDER_CERT 463 -#define VAR_IPSECMOD_ENABLED 464 -#define VAR_IPSECMOD_HOOK 465 -#define VAR_IPSECMOD_IGNORE_BOGUS 466 -#define VAR_IPSECMOD_MAX_TTL 467 -#define VAR_IPSECMOD_WHITELIST 468 -#define VAR_IPSECMOD_STRICT 469 +#define VAR_CLIENT_SUBNET_ZONE 430 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 431 +#define VAR_CLIENT_SUBNET_OPCODE 432 +#define VAR_MAX_CLIENT_SUBNET_IPV4 433 +#define VAR_MAX_CLIENT_SUBNET_IPV6 434 +#define VAR_CAPS_WHITELIST 435 +#define VAR_CACHE_MAX_NEGATIVE_TTL 436 +#define VAR_PERMIT_SMALL_HOLDDOWN 437 +#define VAR_QNAME_MINIMISATION 438 +#define VAR_QNAME_MINIMISATION_STRICT 439 +#define VAR_IP_FREEBIND 440 +#define VAR_DEFINE_TAG 441 +#define VAR_LOCAL_ZONE_TAG 442 +#define VAR_ACCESS_CONTROL_TAG 443 +#define VAR_LOCAL_ZONE_OVERRIDE 444 +#define VAR_ACCESS_CONTROL_TAG_ACTION 445 +#define VAR_ACCESS_CONTROL_TAG_DATA 446 +#define VAR_VIEW 447 +#define VAR_ACCESS_CONTROL_VIEW 448 +#define VAR_VIEW_FIRST 449 +#define VAR_SERVE_EXPIRED 450 +#define VAR_FAKE_DSA 451 +#define VAR_FAKE_SHA1 452 +#define VAR_LOG_IDENTITY 453 +#define VAR_HIDE_TRUSTANCHOR 454 +#define VAR_TRUST_ANCHOR_SIGNALING 455 +#define VAR_USE_SYSTEMD 456 +#define VAR_SHM_ENABLE 457 +#define VAR_SHM_KEY 458 +#define VAR_DNSCRYPT 459 +#define VAR_DNSCRYPT_ENABLE 460 +#define VAR_DNSCRYPT_PORT 461 +#define VAR_DNSCRYPT_PROVIDER 462 +#define VAR_DNSCRYPT_SECRET_KEY 463 +#define VAR_DNSCRYPT_PROVIDER_CERT 464 +#define VAR_IPSECMOD_ENABLED 465 +#define VAR_IPSECMOD_HOOK 466 +#define VAR_IPSECMOD_IGNORE_BOGUS 467 +#define VAR_IPSECMOD_MAX_TTL 468 +#define VAR_IPSECMOD_WHITELIST 469 +#define VAR_IPSECMOD_STRICT 470 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -563,7 +565,7 @@ union YYSTYPE char* str; -#line 567 "util/configparser.c" /* yacc.c:355 */ +#line 569 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -580,7 +582,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 584 "util/configparser.c" /* yacc.c:358 */ +#line 586 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -822,21 +824,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 434 +#define YYLAST 442 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 215 +#define YYNTOKENS 216 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 230 +#define YYNNTS 231 /* YYNRULES -- Number of rules. */ -#define YYNRULES 441 +#define YYNRULES 443 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 664 +#define YYNSTATES 667 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 469 +#define YYMAXUTOK 470 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -891,7 +893,8 @@ static const yytype_uint8 yytranslate[] = 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214 + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215 }; #if YYDEBUG @@ -911,38 +914,38 @@ static const yytype_uint16 yyrline[] = 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 207, 208, 208, 208, 209, 209, 209, 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 214, 215, - 215, 216, 216, 217, 218, 218, 219, 219, 220, 221, - 222, 222, 223, 223, 224, 224, 225, 225, 225, 226, - 226, 227, 227, 228, 228, 229, 229, 230, 230, 230, - 231, 231, 231, 232, 232, 232, 233, 233, 234, 234, - 235, 235, 236, 236, 238, 250, 251, 252, 252, 252, - 252, 252, 253, 255, 267, 268, 269, 269, 269, 269, - 270, 272, 286, 287, 288, 288, 288, 288, 289, 289, - 289, 291, 300, 309, 320, 329, 338, 347, 358, 367, - 379, 394, 405, 422, 439, 452, 467, 476, 485, 494, - 503, 512, 521, 530, 539, 548, 557, 566, 575, 584, - 593, 602, 609, 616, 625, 634, 643, 657, 666, 675, - 684, 691, 698, 724, 732, 739, 746, 753, 760, 768, - 776, 784, 791, 802, 809, 818, 827, 836, 843, 850, - 858, 866, 876, 886, 896, 909, 920, 928, 941, 950, - 959, 968, 978, 988, 996, 1009, 1018, 1026, 1035, 1043, - 1056, 1065, 1072, 1082, 1092, 1102, 1112, 1122, 1132, 1142, - 1152, 1159, 1166, 1173, 1182, 1191, 1200, 1207, 1217, 1234, - 1241, 1259, 1272, 1285, 1294, 1303, 1312, 1321, 1331, 1341, - 1350, 1359, 1372, 1385, 1394, 1401, 1410, 1419, 1428, 1437, - 1445, 1458, 1466, 1494, 1501, 1516, 1526, 1536, 1543, 1550, - 1559, 1573, 1592, 1611, 1623, 1635, 1647, 1658, 1677, 1687, - 1696, 1704, 1712, 1725, 1738, 1751, 1764, 1773, 1782, 1792, - 1802, 1815, 1828, 1839, 1852, 1863, 1876, 1886, 1893, 1900, - 1909, 1919, 1929, 1939, 1946, 1953, 1962, 1972, 1982, 2011, - 2021, 2029, 2038, 2053, 2062, 2067, 2068, 2069, 2069, 2069, - 2070, 2070, 2070, 2071, 2071, 2073, 2083, 2092, 2099, 2109, - 2116, 2123, 2130, 2137, 2142, 2143, 2144, 2144, 2145, 2145, - 2146, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2154, 2162, - 2169, 2177, 2185, 2192, 2199, 2208, 2217, 2226, 2235, 2244, - 2253, 2258, 2259, 2260, 2262, 2268, 2278, 2285, 2294, 2302, - 2308, 2309, 2311, 2311, 2311, 2312, 2312, 2314, 2323, 2333, - 2340, 2347 + 215, 216, 216, 217, 218, 218, 219, 219, 220, 220, + 221, 222, 222, 223, 223, 224, 224, 225, 225, 225, + 226, 226, 227, 227, 228, 228, 229, 229, 230, 230, + 230, 231, 231, 231, 232, 232, 232, 233, 233, 234, + 234, 235, 235, 236, 236, 238, 250, 251, 252, 252, + 252, 252, 252, 253, 255, 267, 268, 269, 269, 269, + 269, 270, 272, 286, 287, 288, 288, 288, 288, 289, + 289, 289, 291, 300, 309, 320, 329, 338, 347, 358, + 367, 378, 391, 406, 417, 434, 451, 464, 479, 488, + 497, 506, 515, 524, 533, 542, 551, 560, 569, 578, + 587, 596, 605, 614, 621, 628, 637, 646, 655, 669, + 678, 687, 696, 703, 710, 736, 744, 751, 758, 765, + 772, 780, 788, 796, 803, 814, 821, 830, 839, 848, + 855, 862, 870, 878, 888, 898, 908, 921, 932, 940, + 953, 962, 971, 980, 990, 1000, 1008, 1021, 1030, 1038, + 1047, 1055, 1068, 1077, 1084, 1094, 1104, 1114, 1124, 1134, + 1144, 1154, 1164, 1171, 1178, 1185, 1194, 1203, 1212, 1219, + 1229, 1246, 1253, 1271, 1284, 1297, 1306, 1315, 1324, 1333, + 1343, 1353, 1362, 1371, 1384, 1397, 1406, 1413, 1422, 1431, + 1440, 1449, 1457, 1470, 1478, 1506, 1513, 1528, 1538, 1548, + 1555, 1562, 1571, 1585, 1604, 1623, 1635, 1647, 1659, 1670, + 1689, 1699, 1708, 1716, 1724, 1737, 1750, 1763, 1776, 1785, + 1794, 1804, 1814, 1827, 1840, 1851, 1864, 1875, 1888, 1898, + 1905, 1912, 1921, 1931, 1941, 1951, 1958, 1965, 1974, 1984, + 1994, 2023, 2033, 2041, 2050, 2065, 2074, 2079, 2080, 2081, + 2081, 2081, 2082, 2082, 2082, 2083, 2083, 2085, 2095, 2104, + 2111, 2121, 2128, 2135, 2142, 2149, 2154, 2155, 2156, 2156, + 2157, 2157, 2158, 2158, 2159, 2160, 2161, 2162, 2163, 2164, + 2166, 2174, 2181, 2189, 2197, 2204, 2211, 2220, 2229, 2238, + 2247, 2256, 2265, 2270, 2271, 2272, 2274, 2280, 2290, 2297, + 2306, 2314, 2320, 2321, 2323, 2323, 2323, 2324, 2324, 2326, + 2335, 2345, 2352, 2359 }; #endif @@ -1011,33 +1014,33 @@ static const char *const yytname[] = "VAR_RATELIMIT", "VAR_RATELIMIT_SLABS", "VAR_RATELIMIT_SIZE", "VAR_RATELIMIT_FOR_DOMAIN", "VAR_RATELIMIT_BELOW_DOMAIN", "VAR_IP_RATELIMIT_FACTOR", "VAR_RATELIMIT_FACTOR", - "VAR_SEND_CLIENT_SUBNET", "VAR_CLIENT_SUBNET_ALWAYS_FORWARD", - "VAR_CLIENT_SUBNET_OPCODE", "VAR_MAX_CLIENT_SUBNET_IPV4", - "VAR_MAX_CLIENT_SUBNET_IPV6", "VAR_CAPS_WHITELIST", - "VAR_CACHE_MAX_NEGATIVE_TTL", "VAR_PERMIT_SMALL_HOLDDOWN", - "VAR_QNAME_MINIMISATION", "VAR_QNAME_MINIMISATION_STRICT", - "VAR_IP_FREEBIND", "VAR_DEFINE_TAG", "VAR_LOCAL_ZONE_TAG", - "VAR_ACCESS_CONTROL_TAG", "VAR_LOCAL_ZONE_OVERRIDE", - "VAR_ACCESS_CONTROL_TAG_ACTION", "VAR_ACCESS_CONTROL_TAG_DATA", - "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW", "VAR_VIEW_FIRST", - "VAR_SERVE_EXPIRED", "VAR_FAKE_DSA", "VAR_FAKE_SHA1", "VAR_LOG_IDENTITY", - "VAR_HIDE_TRUSTANCHOR", "VAR_TRUST_ANCHOR_SIGNALING", "VAR_USE_SYSTEMD", - "VAR_SHM_ENABLE", "VAR_SHM_KEY", "VAR_DNSCRYPT", "VAR_DNSCRYPT_ENABLE", - "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER", "VAR_DNSCRYPT_SECRET_KEY", - "VAR_DNSCRYPT_PROVIDER_CERT", "VAR_IPSECMOD_ENABLED", - "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", "VAR_IPSECMOD_MAX_TTL", - "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", "$accept", - "toplevelvars", "toplevelvar", "serverstart", "contents_server", - "content_server", "stubstart", "contents_stub", "content_stub", - "forwardstart", "contents_forward", "content_forward", "viewstart", - "contents_view", "content_view", "server_num_threads", + "VAR_SEND_CLIENT_SUBNET", "VAR_CLIENT_SUBNET_ZONE", + "VAR_CLIENT_SUBNET_ALWAYS_FORWARD", "VAR_CLIENT_SUBNET_OPCODE", + "VAR_MAX_CLIENT_SUBNET_IPV4", "VAR_MAX_CLIENT_SUBNET_IPV6", + "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", + "VAR_PERMIT_SMALL_HOLDDOWN", "VAR_QNAME_MINIMISATION", + "VAR_QNAME_MINIMISATION_STRICT", "VAR_IP_FREEBIND", "VAR_DEFINE_TAG", + "VAR_LOCAL_ZONE_TAG", "VAR_ACCESS_CONTROL_TAG", + "VAR_LOCAL_ZONE_OVERRIDE", "VAR_ACCESS_CONTROL_TAG_ACTION", + "VAR_ACCESS_CONTROL_TAG_DATA", "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW", + "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "VAR_FAKE_DSA", "VAR_FAKE_SHA1", + "VAR_LOG_IDENTITY", "VAR_HIDE_TRUSTANCHOR", "VAR_TRUST_ANCHOR_SIGNALING", + "VAR_USE_SYSTEMD", "VAR_SHM_ENABLE", "VAR_SHM_KEY", "VAR_DNSCRYPT", + "VAR_DNSCRYPT_ENABLE", "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER", + "VAR_DNSCRYPT_SECRET_KEY", "VAR_DNSCRYPT_PROVIDER_CERT", + "VAR_IPSECMOD_ENABLED", "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", + "VAR_IPSECMOD_MAX_TTL", "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", + "$accept", "toplevelvars", "toplevelvar", "serverstart", + "contents_server", "content_server", "stubstart", "contents_stub", + "content_stub", "forwardstart", "contents_forward", "content_forward", + "viewstart", "contents_view", "content_view", "server_num_threads", "server_verbosity", "server_statistics_interval", "server_statistics_cumulative", "server_extended_statistics", "server_shm_enable", "server_shm_key", "server_port", - "server_send_client_subnet", "server_client_subnet_always_forward", - "server_client_subnet_opcode", "server_max_client_subnet_ipv4", - "server_max_client_subnet_ipv6", "server_interface", - "server_outgoing_interface", "server_outgoing_range", + "server_send_client_subnet", "server_client_subnet_zone", + "server_client_subnet_always_forward", "server_client_subnet_opcode", + "server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6", + "server_interface", "server_outgoing_interface", "server_outgoing_range", "server_outgoing_port_permit", "server_outgoing_port_avoid", "server_outgoing_num_tcp", "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", "server_do_ip6", @@ -1149,14 +1152,14 @@ static const yytype_uint16 yytoknum[] = 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469 + 465, 466, 467, 468, 469, 470 }; # endif -#define YYPACT_NINF -199 +#define YYPACT_NINF -200 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-199))) + (!!((Yystate) == (-200))) #define YYTABLE_NINF -1 @@ -1167,9 +1170,9 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -199, 0, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - 96, -39, -35, 152, -65, -131, -106, -198, 2, 25, + -200, 0, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + 96, -39, -35, 248, -65, -131, -106, -199, 2, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, @@ -1177,63 +1180,63 @@ static const yytype_int16 yypact[] = 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 85, 88, 90, 91, 92, 93, 94, 95, 126, 127, 128, 129, 133, 134, 177, 178, - 179, 180, 183, 184, 185, 189, 194, 220, 221, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 277, 279, 289, 290, 291, 292, 293, 294, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, 362, 363, 364, - 365, 366, 367, -199, -199, -199, -199, -199, -199, -199, - 368, 369, 370, 371, 372, -199, -199, -199, -199, -199, - -199, 373, 374, 375, 376, 377, 378, 379, -199, -199, - -199, -199, -199, -199, -199, -199, 380, 381, 382, 383, - 384, 385, 386, 387, -199, -199, -199, -199, -199, -199, - -199, -199, -199, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, 400, -199, - -199, 401, 402, 403, 404, 405, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, 406, 407, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, 408, 409, 410, -199, -199, -199, -199, -199, - -199, -199, -199, -199, 411, 412, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - 413, 414, 415, 416, 417, 418, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, 419, -199, -199, 420, 421, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, 422, 423, 424, -199, -199, -199, - -199, -199, -199, -199 + 179, 180, 181, 183, 184, 185, 189, 193, 218, 219, + 220, 221, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 280, 290, 291, 292, 293, + 294, 295, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, 361, + 362, 363, 364, 365, 366, -200, -200, -200, -200, -200, + -200, -200, 367, 368, 369, 370, 371, -200, -200, -200, + -200, -200, -200, 372, 373, 374, 375, 376, 377, 378, + -200, -200, -200, -200, -200, -200, -200, -200, 379, 380, + 381, 382, 383, 384, 385, 386, -200, -200, -200, -200, + -200, -200, -200, -200, -200, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 399, 400, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + 401, -200, -200, 402, 403, 404, 405, 406, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + 407, 408, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, 409, 410, 411, -200, -200, -200, + -200, -200, -200, -200, -200, -200, 412, 413, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, 414, 415, 416, 417, 418, 419, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, 420, -200, -200, 421, + 422, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, 423, 424, 425, + -200, -200, -200, -200, -200, -200, -200 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1241,8 +1244,8 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 12, 174, 183, 374, 420, 393, 191, - 429, 3, 14, 176, 185, 193, 376, 395, 422, 431, + 2, 0, 1, 12, 175, 184, 376, 422, 395, 192, + 431, 3, 14, 177, 186, 194, 378, 397, 424, 433, 4, 5, 6, 10, 8, 9, 7, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1259,111 +1262,113 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 15, 16, - 75, 78, 87, 163, 164, 17, 137, 138, 139, 140, - 141, 26, 66, 18, 79, 80, 37, 59, 74, 19, - 20, 22, 23, 21, 24, 25, 110, 111, 112, 113, - 114, 159, 76, 65, 91, 108, 109, 27, 28, 29, - 30, 31, 67, 81, 82, 97, 53, 63, 54, 167, - 92, 47, 48, 166, 49, 50, 101, 105, 118, 126, - 146, 102, 60, 32, 33, 34, 89, 119, 120, 121, - 35, 36, 38, 39, 41, 42, 40, 124, 43, 44, - 45, 51, 70, 106, 84, 125, 77, 142, 85, 86, - 103, 104, 90, 46, 68, 71, 52, 55, 93, 94, - 69, 143, 95, 56, 57, 58, 107, 156, 157, 165, - 96, 64, 98, 99, 100, 144, 61, 62, 83, 72, - 73, 88, 115, 116, 117, 122, 123, 147, 148, 150, - 152, 153, 151, 154, 160, 127, 128, 131, 132, 129, - 130, 133, 134, 136, 135, 145, 155, 168, 170, 169, - 171, 172, 173, 149, 158, 161, 162, 0, 0, 0, - 0, 0, 0, 175, 177, 178, 179, 181, 182, 180, - 0, 0, 0, 0, 0, 184, 186, 187, 188, 189, - 190, 0, 0, 0, 0, 0, 0, 0, 192, 194, - 195, 198, 199, 196, 200, 197, 0, 0, 0, 0, - 0, 0, 0, 0, 375, 377, 379, 378, 384, 380, - 381, 382, 383, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 394, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 0, 421, - 423, 0, 0, 0, 0, 0, 430, 432, 433, 434, - 436, 435, 202, 201, 208, 216, 214, 222, 223, 226, - 224, 225, 227, 228, 240, 241, 242, 243, 244, 266, - 267, 268, 273, 274, 219, 275, 276, 279, 277, 278, - 281, 282, 283, 296, 254, 255, 257, 258, 284, 299, - 249, 251, 300, 306, 307, 308, 220, 265, 319, 320, - 250, 314, 236, 215, 245, 297, 303, 285, 0, 0, - 323, 221, 203, 235, 289, 204, 217, 218, 246, 247, - 321, 287, 291, 292, 205, 324, 269, 295, 237, 253, - 301, 302, 305, 313, 248, 317, 315, 316, 259, 264, - 293, 294, 260, 261, 286, 309, 238, 239, 229, 230, - 231, 232, 233, 325, 326, 327, 270, 271, 272, 280, - 328, 329, 0, 0, 0, 288, 262, 425, 338, 342, - 340, 339, 343, 341, 0, 0, 346, 347, 209, 210, - 211, 212, 213, 290, 304, 318, 348, 349, 263, 330, - 0, 0, 0, 0, 0, 0, 310, 311, 312, 426, - 256, 252, 234, 206, 207, 350, 352, 351, 353, 354, - 355, 356, 357, 358, 361, 360, 359, 362, 363, 364, - 365, 366, 367, 0, 371, 372, 0, 0, 373, 385, - 387, 386, 389, 390, 391, 392, 388, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 424, - 437, 438, 439, 441, 440, 298, 322, 337, 427, 428, - 344, 345, 331, 332, 0, 0, 0, 336, 368, 369, - 370, 335, 333, 334 + 0, 0, 0, 0, 0, 0, 0, 0, 13, 15, + 16, 75, 78, 87, 164, 165, 17, 137, 138, 139, + 140, 141, 142, 26, 66, 18, 79, 80, 37, 59, + 74, 19, 20, 22, 23, 21, 24, 25, 110, 111, + 112, 113, 114, 160, 76, 65, 91, 108, 109, 27, + 28, 29, 30, 31, 67, 81, 82, 97, 53, 63, + 54, 168, 92, 47, 48, 167, 49, 50, 101, 105, + 118, 126, 147, 102, 60, 32, 33, 34, 89, 119, + 120, 121, 35, 36, 38, 39, 41, 42, 40, 124, + 43, 44, 45, 51, 70, 106, 84, 125, 77, 143, + 85, 86, 103, 104, 90, 46, 68, 71, 52, 55, + 93, 94, 69, 144, 95, 56, 57, 58, 107, 157, + 158, 166, 96, 64, 98, 99, 100, 145, 61, 62, + 83, 72, 73, 88, 115, 116, 117, 122, 123, 148, + 149, 151, 153, 154, 152, 155, 161, 127, 128, 131, + 132, 129, 130, 133, 134, 136, 135, 146, 156, 169, + 171, 170, 172, 173, 174, 150, 159, 162, 163, 0, + 0, 0, 0, 0, 0, 176, 178, 179, 180, 182, + 183, 181, 0, 0, 0, 0, 0, 185, 187, 188, + 189, 190, 191, 0, 0, 0, 0, 0, 0, 0, + 193, 195, 196, 199, 200, 197, 201, 198, 0, 0, + 0, 0, 0, 0, 0, 0, 377, 379, 381, 380, + 386, 382, 383, 384, 385, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 396, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 0, 423, 425, 0, 0, 0, 0, 0, 432, 434, + 435, 436, 438, 437, 203, 202, 209, 218, 216, 224, + 225, 228, 226, 227, 229, 230, 242, 243, 244, 245, + 246, 268, 269, 270, 275, 276, 221, 277, 278, 281, + 279, 280, 283, 284, 285, 298, 256, 257, 259, 260, + 286, 301, 251, 253, 302, 308, 309, 310, 222, 267, + 321, 322, 252, 316, 238, 217, 247, 299, 305, 287, + 0, 0, 325, 223, 204, 237, 291, 205, 219, 220, + 248, 249, 323, 289, 293, 294, 206, 326, 271, 297, + 239, 255, 303, 304, 307, 315, 250, 319, 317, 318, + 261, 266, 295, 296, 262, 263, 288, 311, 240, 241, + 231, 232, 233, 234, 235, 327, 328, 329, 272, 273, + 274, 282, 330, 331, 0, 0, 0, 290, 264, 427, + 340, 344, 342, 341, 345, 343, 0, 0, 348, 349, + 210, 211, 212, 213, 214, 215, 292, 306, 320, 350, + 351, 265, 332, 0, 0, 0, 0, 0, 0, 312, + 313, 314, 428, 258, 254, 236, 207, 208, 352, 354, + 353, 355, 356, 357, 358, 359, 360, 363, 362, 361, + 364, 365, 366, 367, 368, 369, 0, 373, 374, 0, + 0, 375, 387, 389, 388, 391, 392, 393, 394, 390, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 426, 439, 440, 441, 443, 442, 300, 324, + 339, 429, 430, 346, 347, 333, 334, 0, 0, 0, + 338, 370, 371, 372, 337, 335, 336 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, -199, -199, -199, -199, -199, -199 + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, + -200 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 11, 12, 20, 187, 13, 21, 353, 14, - 22, 365, 15, 23, 378, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 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, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 354, 355, 356, 357, 358, 359, 366, 367, 368, 369, - 370, 379, 380, 381, 382, 383, 384, 385, 16, 24, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 17, - 25, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 18, 26, 429, 430, 343, 344, - 345, 346, 19, 27, 436, 437, 438, 439, 440, 441 + -1, 1, 11, 12, 20, 188, 13, 21, 355, 14, + 22, 367, 15, 23, 380, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 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, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 356, 357, 358, 359, 360, 361, 368, 369, 370, + 371, 372, 381, 382, 383, 384, 385, 386, 387, 16, + 24, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 17, 25, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 18, 26, 431, 432, 345, + 346, 347, 348, 19, 27, 438, 439, 440, 441, 442, + 443 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1371,56 +1376,57 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 2, 347, 428, 348, 349, 360, 431, 432, 433, 434, - 435, 3, 442, 361, 362, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 386, 387, 388, - 389, 390, 391, 392, 393, 443, 444, 445, 446, 447, - 448, 4, 449, 450, 451, 452, 453, 5, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 350, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 6, 496, 497, 351, 498, 352, 363, 499, 364, - 500, 501, 502, 503, 504, 505, 0, 7, 28, 29, + 2, 349, 430, 350, 351, 362, 433, 434, 435, 436, + 437, 3, 444, 363, 364, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 388, 389, 390, + 391, 392, 393, 394, 395, 445, 446, 447, 448, 449, + 450, 4, 451, 452, 453, 454, 455, 5, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 352, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 6, 498, 499, 353, 500, 354, 365, 501, 366, + 502, 503, 504, 505, 506, 507, 0, 7, 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, 53, 54, 55, 506, 507, 508, 509, - 56, 57, 58, 510, 511, 8, 59, 60, 61, 62, + 50, 51, 52, 53, 54, 55, 508, 509, 510, 511, + 56, 57, 58, 512, 513, 8, 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, 97, 98, 99, 512, 513, 514, - 515, 9, 371, 516, 517, 518, 100, 101, 102, 519, - 103, 104, 105, 10, 520, 106, 107, 108, 109, 110, + 93, 94, 95, 96, 97, 98, 99, 514, 515, 516, + 517, 518, 9, 519, 520, 521, 100, 101, 102, 522, + 103, 104, 105, 523, 10, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 372, 373, - 521, 522, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 374, 138, 139, 140, 141, 142, 143, + 121, 122, 123, 124, 125, 126, 127, 128, 524, 525, + 526, 527, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 535, 171, 536, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 537, - 538, 539, 540, 541, 542, 181, 182, 183, 184, 185, - 186, 375, 376, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 377, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663 + 164, 165, 166, 167, 168, 169, 170, 171, 373, 172, + 541, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 542, 543, 544, 545, 546, 547, 182, 183, 184, 185, + 186, 187, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 374, 375, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 376, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 377, 378, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 666, 0, 0, 0, 0, + 0, 0, 379 }; static const yytype_int16 yycheck[] = { - 0, 40, 108, 42, 43, 40, 204, 205, 206, 207, - 208, 11, 10, 48, 49, 146, 147, 148, 149, 150, + 0, 40, 108, 42, 43, 40, 205, 206, 207, 208, + 209, 11, 10, 48, 49, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 92, 93, 94, 95, 96, 97, 98, 99, 10, 10, 10, 10, 10, 10, 41, 10, 10, 10, 10, 10, 47, 10, 10, @@ -1438,40 +1444,41 @@ static const yytype_int16 yycheck[] = 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, 191, 40, 10, 10, 10, 100, 101, 102, 10, - 104, 105, 106, 203, 10, 109, 110, 111, 112, 113, + 10, 10, 192, 10, 10, 10, 100, 101, 102, 10, + 104, 105, 106, 10, 204, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 76, 77, + 124, 125, 126, 127, 128, 129, 130, 131, 10, 10, 10, 10, 136, 137, 138, 139, 140, 141, 142, 143, 144, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 101, 158, 159, 160, 161, 162, 163, + 10, 10, 10, 10, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 10, 192, 10, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 10, - 10, 10, 10, 10, 10, 209, 210, 211, 212, 213, - 214, 159, 160, 10, 10, 10, 10, 10, 10, 10, + 184, 185, 186, 187, 188, 189, 190, 191, 40, 193, + 10, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 10, 10, 10, 10, 10, 10, 210, 211, 212, 213, + 214, 215, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 76, 77, 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, 193, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 101, 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, 10, 10, 159, 160, 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, -1, -1, -1, -1, + -1, -1, 194 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 216, 0, 11, 41, 47, 91, 107, 145, 191, - 203, 217, 218, 221, 224, 227, 403, 414, 429, 437, - 219, 222, 225, 228, 404, 415, 430, 438, 12, 13, + 0, 217, 0, 11, 41, 47, 91, 107, 145, 192, + 204, 218, 219, 222, 225, 228, 405, 416, 431, 439, + 220, 223, 226, 229, 406, 417, 432, 440, 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, @@ -1486,8 +1493,8 @@ static const yytype_uint16 yystos[] = 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, 192, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 209, 210, 211, 212, 213, 214, 220, 230, 231, + 190, 191, 193, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 210, 211, 212, 213, 214, 215, 221, 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, @@ -1503,17 +1510,17 @@ static const yytype_uint16 yystos[] = 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 433, 434, 435, 436, 40, 42, 43, - 103, 133, 135, 223, 385, 386, 387, 388, 389, 390, - 40, 48, 49, 132, 134, 226, 391, 392, 393, 394, - 395, 40, 76, 77, 101, 159, 160, 193, 229, 396, - 397, 398, 399, 400, 401, 402, 92, 93, 94, 95, - 96, 97, 98, 99, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 108, 431, - 432, 204, 205, 206, 207, 208, 439, 440, 441, 442, - 443, 444, 10, 10, 10, 10, 10, 10, 10, 10, + 382, 383, 384, 385, 386, 435, 436, 437, 438, 40, + 42, 43, 103, 133, 135, 224, 387, 388, 389, 390, + 391, 392, 40, 48, 49, 132, 134, 227, 393, 394, + 395, 396, 397, 40, 76, 77, 101, 159, 160, 194, + 230, 398, 399, 400, 401, 402, 403, 404, 92, 93, + 94, 95, 96, 97, 98, 99, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 108, 433, 434, 205, 206, 207, 208, 209, 441, 442, + 443, 444, 445, 446, 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, @@ -1535,33 +1542,33 @@ 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 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 215, 216, 216, 217, 217, 217, 217, 217, 217, - 217, 217, 218, 219, 219, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 221, 222, 222, 223, 223, 223, - 223, 223, 223, 224, 225, 225, 226, 226, 226, 226, - 226, 227, 228, 228, 229, 229, 229, 229, 229, 229, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 0, 216, 217, 217, 218, 218, 218, 218, 218, 218, + 218, 218, 219, 220, 220, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 222, 223, 223, 224, 224, + 224, 224, 224, 224, 225, 226, 226, 227, 227, 227, + 227, 227, 228, 229, 229, 230, 230, 230, 230, 230, + 230, 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, @@ -1578,14 +1585,14 @@ static const yytype_uint16 yyr1[] = 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 404, 405, 405, 405, - 405, 405, 405, 405, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 415, 416, 416, 416, 416, - 416, 416, 416, 416, 416, 416, 416, 416, 417, 418, + 399, 400, 401, 402, 403, 404, 405, 406, 406, 407, + 407, 407, 407, 407, 407, 407, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 417, 418, 418, + 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 438, 439, 439, 439, 439, 439, 440, 441, 442, - 443, 444 + 429, 430, 431, 432, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 440, 441, 441, 441, 441, 441, 442, + 443, 444, 445, 446 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1608,10 +1615,10 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 2, 0, 1, 1, 1, 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, @@ -1620,22 +1627,22 @@ 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, + 3, 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, 3, 3, 4, 4, 4, 3, 3, + 2, 2, 2, 2, 2, 2, 3, 3, 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, 3, 3, 4, 4, 4, 3, 3, 2, 2, - 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, + 3, 3, 3, 2, 2, 2, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, - 3, 2, 2, 2, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, - 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 2, 0, 1, 2, 2, 2, 3, 3, 1, - 2, 0, 1, 1, 1, 1, 1, 2, 2, 2, - 2, 2 + 2, 2, 1, 2, 0, 1, 2, 2, 2, 3, + 3, 1, 2, 0, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2 }; @@ -2316,10 +2323,10 @@ yyreduce: { OUTYY(("\nP(server:)\n")); } -#line 2320 "util/configparser.c" /* yacc.c:1646 */ +#line 2327 "util/configparser.c" /* yacc.c:1646 */ break; - case 174: + case 175: #line 239 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; @@ -2331,10 +2338,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2335 "util/configparser.c" /* yacc.c:1646 */ +#line 2342 "util/configparser.c" /* yacc.c:1646 */ break; - case 183: + case 184: #line 256 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; @@ -2346,10 +2353,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2350 "util/configparser.c" /* yacc.c:1646 */ +#line 2357 "util/configparser.c" /* yacc.c:1646 */ break; - case 191: + case 192: #line 273 "./util/configparser.y" /* yacc.c:1646 */ { struct config_view* s; @@ -2363,10 +2370,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2367 "util/configparser.c" /* yacc.c:1646 */ +#line 2374 "util/configparser.c" /* yacc.c:1646 */ break; - case 201: + case 202: #line 292 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); @@ -2375,10 +2382,10 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2379 "util/configparser.c" /* yacc.c:1646 */ +#line 2386 "util/configparser.c" /* yacc.c:1646 */ break; - case 202: + case 203: #line 301 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); @@ -2387,10 +2394,10 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2391 "util/configparser.c" /* yacc.c:1646 */ +#line 2398 "util/configparser.c" /* yacc.c:1646 */ break; - case 203: + case 204: #line 310 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); @@ -2401,10 +2408,10 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2405 "util/configparser.c" /* yacc.c:1646 */ +#line 2412 "util/configparser.c" /* yacc.c:1646 */ break; - case 204: + case 205: #line 321 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); @@ -2413,10 +2420,10 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2417 "util/configparser.c" /* yacc.c:1646 */ +#line 2424 "util/configparser.c" /* yacc.c:1646 */ break; - case 205: + case 206: #line 330 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); @@ -2425,10 +2432,10 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2429 "util/configparser.c" /* yacc.c:1646 */ +#line 2436 "util/configparser.c" /* yacc.c:1646 */ break; - case 206: + case 207: #line 339 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); @@ -2437,10 +2444,10 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2441 "util/configparser.c" /* yacc.c:1646 */ +#line 2448 "util/configparser.c" /* yacc.c:1646 */ break; - case 207: + case 208: #line 348 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); @@ -2451,10 +2458,10 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2455 "util/configparser.c" /* yacc.c:1646 */ +#line 2462 "util/configparser.c" /* yacc.c:1646 */ break; - case 208: + case 209: #line 359 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); @@ -2463,10 +2470,10 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2467 "util/configparser.c" /* yacc.c:1646 */ +#line 2474 "util/configparser.c" /* yacc.c:1646 */ break; - case 209: + case 210: #line 368 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2477,11 +2484,26 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2481 "util/configparser.c" /* yacc.c:1646 */ +#line 2488 "util/configparser.c" /* yacc.c:1646 */ break; - case 210: -#line 380 "./util/configparser.y" /* yacc.c:1646 */ + case 211: +#line 379 "./util/configparser.y" /* yacc.c:1646 */ + { + #ifdef CLIENT_SUBNET + OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone, + (yyvsp[0].str))) + fatal_exit("out of memory adding client-subnet-zone"); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + } +#line 2503 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 212: +#line 392 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -2495,11 +2517,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2499 "util/configparser.c" /* yacc.c:1646 */ +#line 2521 "util/configparser.c" /* yacc.c:1646 */ break; - case 211: -#line 395 "./util/configparser.y" /* yacc.c:1646 */ + case 213: +#line 407 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -2509,11 +2531,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2513 "util/configparser.c" /* yacc.c:1646 */ +#line 2535 "util/configparser.c" /* yacc.c:1646 */ break; - case 212: -#line 406 "./util/configparser.y" /* yacc.c:1646 */ + case 214: +#line 418 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -2529,11 +2551,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2533 "util/configparser.c" /* yacc.c:1646 */ +#line 2555 "util/configparser.c" /* yacc.c:1646 */ break; - case 213: -#line 423 "./util/configparser.y" /* yacc.c:1646 */ + case 215: +#line 435 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -2549,11 +2571,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2553 "util/configparser.c" /* yacc.c:1646 */ +#line 2575 "util/configparser.c" /* yacc.c:1646 */ break; - case 214: -#line 440 "./util/configparser.y" /* yacc.c:1646 */ + case 216: +#line 452 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2565,11 +2587,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2569 "util/configparser.c" /* yacc.c:1646 */ +#line 2591 "util/configparser.c" /* yacc.c:1646 */ break; - case 215: -#line 453 "./util/configparser.y" /* yacc.c:1646 */ + case 217: +#line 465 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2583,11 +2605,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2587 "util/configparser.c" /* yacc.c:1646 */ +#line 2609 "util/configparser.c" /* yacc.c:1646 */ break; - case 216: -#line 468 "./util/configparser.y" /* yacc.c:1646 */ + case 218: +#line 480 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2595,11 +2617,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2599 "util/configparser.c" /* yacc.c:1646 */ +#line 2621 "util/configparser.c" /* yacc.c:1646 */ break; - case 217: -#line 477 "./util/configparser.y" /* yacc.c:1646 */ + case 219: +#line 489 "./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, @@ -2607,11 +2629,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2611 "util/configparser.c" /* yacc.c:1646 */ +#line 2633 "util/configparser.c" /* yacc.c:1646 */ break; - case 218: -#line 486 "./util/configparser.y" /* yacc.c:1646 */ + case 220: +#line 498 "./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, @@ -2619,11 +2641,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2623 "util/configparser.c" /* yacc.c:1646 */ +#line 2645 "util/configparser.c" /* yacc.c:1646 */ break; - case 219: -#line 495 "./util/configparser.y" /* yacc.c:1646 */ + case 221: +#line 507 "./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) @@ -2631,11 +2653,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2635 "util/configparser.c" /* yacc.c:1646 */ +#line 2657 "util/configparser.c" /* yacc.c:1646 */ break; - case 220: -#line 504 "./util/configparser.y" /* yacc.c:1646 */ + case 222: +#line 516 "./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) @@ -2643,11 +2665,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2647 "util/configparser.c" /* yacc.c:1646 */ +#line 2669 "util/configparser.c" /* yacc.c:1646 */ break; - case 221: -#line 513 "./util/configparser.y" /* yacc.c:1646 */ + case 223: +#line 525 "./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) @@ -2655,11 +2677,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2659 "util/configparser.c" /* yacc.c:1646 */ +#line 2681 "util/configparser.c" /* yacc.c:1646 */ break; - case 222: -#line 522 "./util/configparser.y" /* yacc.c:1646 */ + case 224: +#line 534 "./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) @@ -2667,11 +2689,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2671 "util/configparser.c" /* yacc.c:1646 */ +#line 2693 "util/configparser.c" /* yacc.c:1646 */ break; - case 223: -#line 531 "./util/configparser.y" /* yacc.c:1646 */ + case 225: +#line 543 "./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) @@ -2679,11 +2701,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2683 "util/configparser.c" /* yacc.c:1646 */ +#line 2705 "util/configparser.c" /* yacc.c:1646 */ break; - case 224: -#line 540 "./util/configparser.y" /* yacc.c:1646 */ + case 226: +#line 552 "./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) @@ -2691,11 +2713,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2695 "util/configparser.c" /* yacc.c:1646 */ +#line 2717 "util/configparser.c" /* yacc.c:1646 */ break; - case 225: -#line 549 "./util/configparser.y" /* yacc.c:1646 */ + case 227: +#line 561 "./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) @@ -2703,11 +2725,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2707 "util/configparser.c" /* yacc.c:1646 */ +#line 2729 "util/configparser.c" /* yacc.c:1646 */ break; - case 226: -#line 558 "./util/configparser.y" /* yacc.c:1646 */ + case 228: +#line 570 "./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) @@ -2715,11 +2737,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2719 "util/configparser.c" /* yacc.c:1646 */ +#line 2741 "util/configparser.c" /* yacc.c:1646 */ break; - case 227: -#line 567 "./util/configparser.y" /* yacc.c:1646 */ + case 229: +#line 579 "./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) @@ -2727,11 +2749,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2731 "util/configparser.c" /* yacc.c:1646 */ +#line 2753 "util/configparser.c" /* yacc.c:1646 */ break; - case 228: -#line 576 "./util/configparser.y" /* yacc.c:1646 */ + case 230: +#line 588 "./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) @@ -2739,11 +2761,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2743 "util/configparser.c" /* yacc.c:1646 */ +#line 2765 "util/configparser.c" /* yacc.c:1646 */ break; - case 229: -#line 585 "./util/configparser.y" /* yacc.c:1646 */ + case 231: +#line 597 "./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) @@ -2751,11 +2773,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2755 "util/configparser.c" /* yacc.c:1646 */ +#line 2777 "util/configparser.c" /* yacc.c:1646 */ break; - case 230: -#line 594 "./util/configparser.y" /* yacc.c:1646 */ + case 232: +#line 606 "./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) @@ -2763,31 +2785,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2767 "util/configparser.c" /* yacc.c:1646 */ +#line 2789 "util/configparser.c" /* yacc.c:1646 */ break; - case 231: -#line 603 "./util/configparser.y" /* yacc.c:1646 */ + case 233: +#line 615 "./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 2777 "util/configparser.c" /* yacc.c:1646 */ +#line 2799 "util/configparser.c" /* yacc.c:1646 */ break; - case 232: -#line 610 "./util/configparser.y" /* yacc.c:1646 */ + case 234: +#line 622 "./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 2787 "util/configparser.c" /* yacc.c:1646 */ +#line 2809 "util/configparser.c" /* yacc.c:1646 */ break; - case 233: -#line 617 "./util/configparser.y" /* yacc.c:1646 */ + case 235: +#line 629 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2795,11 +2817,11 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2799 "util/configparser.c" /* yacc.c:1646 */ +#line 2821 "util/configparser.c" /* yacc.c:1646 */ break; - case 234: -#line 626 "./util/configparser.y" /* yacc.c:1646 */ + case 236: +#line 638 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2807,11 +2829,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2811 "util/configparser.c" /* yacc.c:1646 */ +#line 2833 "util/configparser.c" /* yacc.c:1646 */ break; - case 235: -#line 635 "./util/configparser.y" /* yacc.c:1646 */ + case 237: +#line 647 "./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) @@ -2819,11 +2841,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2823 "util/configparser.c" /* yacc.c:1646 */ +#line 2845 "util/configparser.c" /* yacc.c:1646 */ break; - case 236: -#line 644 "./util/configparser.y" /* yacc.c:1646 */ + case 238: +#line 656 "./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) @@ -2836,11 +2858,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2840 "util/configparser.c" /* yacc.c:1646 */ +#line 2862 "util/configparser.c" /* yacc.c:1646 */ break; - case 237: -#line 658 "./util/configparser.y" /* yacc.c:1646 */ + case 239: +#line 670 "./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) @@ -2848,11 +2870,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2852 "util/configparser.c" /* yacc.c:1646 */ +#line 2874 "util/configparser.c" /* yacc.c:1646 */ break; - case 238: -#line 667 "./util/configparser.y" /* yacc.c:1646 */ + case 240: +#line 679 "./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) @@ -2860,11 +2882,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2864 "util/configparser.c" /* yacc.c:1646 */ +#line 2886 "util/configparser.c" /* yacc.c:1646 */ break; - case 239: -#line 676 "./util/configparser.y" /* yacc.c:1646 */ + case 241: +#line 688 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2872,31 +2894,31 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2876 "util/configparser.c" /* yacc.c:1646 */ +#line 2898 "util/configparser.c" /* yacc.c:1646 */ break; - case 240: -#line 685 "./util/configparser.y" /* yacc.c:1646 */ + case 242: +#line 697 "./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 2886 "util/configparser.c" /* yacc.c:1646 */ +#line 2908 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: -#line 692 "./util/configparser.y" /* yacc.c:1646 */ + case 243: +#line 704 "./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 2896 "util/configparser.c" /* yacc.c:1646 */ +#line 2918 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: -#line 699 "./util/configparser.y" /* yacc.c:1646 */ + case 244: +#line 711 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -2921,105 +2943,105 @@ yyreduce: } } } -#line 2925 "util/configparser.c" /* yacc.c:1646 */ +#line 2947 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: -#line 725 "./util/configparser.y" /* yacc.c:1646 */ + case 245: +#line 737 "./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 2936 "util/configparser.c" /* yacc.c:1646 */ +#line 2958 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: -#line 733 "./util/configparser.y" /* yacc.c:1646 */ + case 246: +#line 745 "./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 2946 "util/configparser.c" /* yacc.c:1646 */ +#line 2968 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: -#line 740 "./util/configparser.y" /* yacc.c:1646 */ + case 247: +#line 752 "./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 2956 "util/configparser.c" /* yacc.c:1646 */ +#line 2978 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: -#line 747 "./util/configparser.y" /* yacc.c:1646 */ + case 248: +#line 759 "./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 2966 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 247: -#line 754 "./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 2976 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 248: -#line 761 "./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 2987 "util/configparser.c" /* yacc.c:1646 */ +#line 2988 "util/configparser.c" /* yacc.c:1646 */ break; case 249: -#line 769 "./util/configparser.y" /* yacc.c:1646 */ +#line 766 "./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))) + 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 2998 "util/configparser.c" /* yacc.c:1646 */ break; case 250: -#line 777 "./util/configparser.y" /* yacc.c:1646 */ +#line 773 "./util/configparser.y" /* yacc.c:1646 */ { - OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); + OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> - trusted_keys_file_list, (yyvsp[0].str))) + auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } #line 3009 "util/configparser.c" /* yacc.c:1646 */ break; case 251: -#line 785 "./util/configparser.y" /* yacc.c:1646 */ +#line 781 "./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 3020 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 252: +#line 789 "./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 3031 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 253: +#line 797 "./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 3019 "util/configparser.c" /* yacc.c:1646 */ +#line 3041 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: -#line 792 "./util/configparser.y" /* yacc.c:1646 */ + case 254: +#line 804 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3029,21 +3051,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3033 "util/configparser.c" /* yacc.c:1646 */ +#line 3055 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: -#line 803 "./util/configparser.y" /* yacc.c:1646 */ + case 255: +#line 815 "./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 3043 "util/configparser.c" /* yacc.c:1646 */ +#line 3065 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: -#line 810 "./util/configparser.y" /* yacc.c:1646 */ + case 256: +#line 822 "./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) @@ -3051,11 +3073,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3055 "util/configparser.c" /* yacc.c:1646 */ +#line 3077 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: -#line 819 "./util/configparser.y" /* yacc.c:1646 */ + case 257: +#line 831 "./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) @@ -3063,11 +3085,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3067 "util/configparser.c" /* yacc.c:1646 */ +#line 3089 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: -#line 828 "./util/configparser.y" /* yacc.c:1646 */ + case 258: +#line 840 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3075,53 +3097,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3079 "util/configparser.c" /* yacc.c:1646 */ +#line 3101 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: -#line 837 "./util/configparser.y" /* yacc.c:1646 */ + case 259: +#line 849 "./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 3089 "util/configparser.c" /* yacc.c:1646 */ +#line 3111 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: -#line 844 "./util/configparser.y" /* yacc.c:1646 */ + case 260: +#line 856 "./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 3099 "util/configparser.c" /* yacc.c:1646 */ +#line 3121 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: -#line 851 "./util/configparser.y" /* yacc.c:1646 */ + case 261: +#line 863 "./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 3110 "util/configparser.c" /* yacc.c:1646 */ +#line 3132 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: -#line 859 "./util/configparser.y" /* yacc.c:1646 */ + case 262: +#line 871 "./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 3121 "util/configparser.c" /* yacc.c:1646 */ +#line 3143 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: -#line 867 "./util/configparser.y" /* yacc.c:1646 */ + case 263: +#line 879 "./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) @@ -3130,11 +3152,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3134 "util/configparser.c" /* yacc.c:1646 */ +#line 3156 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: -#line 877 "./util/configparser.y" /* yacc.c:1646 */ + case 264: +#line 889 "./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) @@ -3143,11 +3165,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3147 "util/configparser.c" /* yacc.c:1646 */ +#line 3169 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: -#line 887 "./util/configparser.y" /* yacc.c:1646 */ + case 265: +#line 899 "./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) @@ -3156,11 +3178,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3160 "util/configparser.c" /* yacc.c:1646 */ +#line 3182 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: -#line 897 "./util/configparser.y" /* yacc.c:1646 */ + case 266: +#line 909 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3172,11 +3194,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3176 "util/configparser.c" /* yacc.c:1646 */ +#line 3198 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: -#line 910 "./util/configparser.y" /* yacc.c:1646 */ + case 267: +#line 922 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3186,22 +3208,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3190 "util/configparser.c" /* yacc.c:1646 */ +#line 3212 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: -#line 921 "./util/configparser.y" /* yacc.c:1646 */ + case 268: +#line 933 "./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 3201 "util/configparser.c" /* yacc.c:1646 */ +#line 3223 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: -#line 929 "./util/configparser.y" /* yacc.c:1646 */ + case 269: +#line 941 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3213,11 +3235,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3217 "util/configparser.c" /* yacc.c:1646 */ +#line 3239 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: -#line 942 "./util/configparser.y" /* yacc.c:1646 */ + case 270: +#line 954 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3225,11 +3247,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3229 "util/configparser.c" /* yacc.c:1646 */ +#line 3251 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: -#line 951 "./util/configparser.y" /* yacc.c:1646 */ + case 271: +#line 963 "./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) @@ -3237,11 +3259,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3241 "util/configparser.c" /* yacc.c:1646 */ +#line 3263 "util/configparser.c" /* yacc.c:1646 */ break; - case 270: -#line 960 "./util/configparser.y" /* yacc.c:1646 */ + case 272: +#line 972 "./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) @@ -3249,11 +3271,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3253 "util/configparser.c" /* yacc.c:1646 */ +#line 3275 "util/configparser.c" /* yacc.c:1646 */ break; - case 271: -#line 969 "./util/configparser.y" /* yacc.c:1646 */ + case 273: +#line 981 "./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) @@ -3262,11 +3284,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3266 "util/configparser.c" /* yacc.c:1646 */ +#line 3288 "util/configparser.c" /* yacc.c:1646 */ break; - case 272: -#line 979 "./util/configparser.y" /* yacc.c:1646 */ + case 274: +#line 991 "./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) @@ -3275,22 +3297,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3279 "util/configparser.c" /* yacc.c:1646 */ +#line 3301 "util/configparser.c" /* yacc.c:1646 */ break; - case 273: -#line 989 "./util/configparser.y" /* yacc.c:1646 */ + case 275: +#line 1001 "./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 3290 "util/configparser.c" /* yacc.c:1646 */ +#line 3312 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: -#line 997 "./util/configparser.y" /* yacc.c:1646 */ + case 276: +#line 1009 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3302,11 +3324,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3306 "util/configparser.c" /* yacc.c:1646 */ +#line 3328 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: -#line 1010 "./util/configparser.y" /* yacc.c:1646 */ + case 277: +#line 1022 "./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) @@ -3314,22 +3336,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3318 "util/configparser.c" /* yacc.c:1646 */ +#line 3340 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: -#line 1019 "./util/configparser.y" /* yacc.c:1646 */ + case 278: +#line 1031 "./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 3329 "util/configparser.c" /* yacc.c:1646 */ +#line 3351 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: -#line 1027 "./util/configparser.y" /* yacc.c:1646 */ + case 279: +#line 1039 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3337,22 +3359,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3341 "util/configparser.c" /* yacc.c:1646 */ +#line 3363 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: -#line 1036 "./util/configparser.y" /* yacc.c:1646 */ + case 280: +#line 1048 "./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 3352 "util/configparser.c" /* yacc.c:1646 */ +#line 3374 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: -#line 1044 "./util/configparser.y" /* yacc.c:1646 */ + case 281: +#line 1056 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3364,11 +3386,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3368 "util/configparser.c" /* yacc.c:1646 */ +#line 3390 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: -#line 1057 "./util/configparser.y" /* yacc.c:1646 */ + case 282: +#line 1069 "./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) @@ -3376,21 +3398,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3380 "util/configparser.c" /* yacc.c:1646 */ +#line 3402 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: -#line 1066 "./util/configparser.y" /* yacc.c:1646 */ + case 283: +#line 1078 "./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 3390 "util/configparser.c" /* yacc.c:1646 */ +#line 3412 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: -#line 1073 "./util/configparser.y" /* yacc.c:1646 */ + case 284: +#line 1085 "./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) @@ -3399,11 +3421,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3403 "util/configparser.c" /* yacc.c:1646 */ +#line 3425 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: -#line 1083 "./util/configparser.y" /* yacc.c:1646 */ + case 285: +#line 1095 "./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) @@ -3412,11 +3434,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3416 "util/configparser.c" /* yacc.c:1646 */ +#line 3438 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: -#line 1093 "./util/configparser.y" /* yacc.c:1646 */ + case 286: +#line 1105 "./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) @@ -3425,11 +3447,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3429 "util/configparser.c" /* yacc.c:1646 */ +#line 3451 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: -#line 1103 "./util/configparser.y" /* yacc.c:1646 */ + case 287: +#line 1115 "./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) @@ -3438,11 +3460,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3442 "util/configparser.c" /* yacc.c:1646 */ +#line 3464 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: -#line 1113 "./util/configparser.y" /* yacc.c:1646 */ + case 288: +#line 1125 "./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) @@ -3451,11 +3473,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3455 "util/configparser.c" /* yacc.c:1646 */ +#line 3477 "util/configparser.c" /* yacc.c:1646 */ break; - case 287: -#line 1123 "./util/configparser.y" /* yacc.c:1646 */ + case 289: +#line 1135 "./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) @@ -3464,11 +3486,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3468 "util/configparser.c" /* yacc.c:1646 */ +#line 3490 "util/configparser.c" /* yacc.c:1646 */ break; - case 288: -#line 1133 "./util/configparser.y" /* yacc.c:1646 */ + case 290: +#line 1145 "./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) @@ -3477,11 +3499,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3481 "util/configparser.c" /* yacc.c:1646 */ +#line 3503 "util/configparser.c" /* yacc.c:1646 */ break; - case 289: -#line 1143 "./util/configparser.y" /* yacc.c:1646 */ + case 291: +#line 1155 "./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) @@ -3490,41 +3512,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3494 "util/configparser.c" /* yacc.c:1646 */ +#line 3516 "util/configparser.c" /* yacc.c:1646 */ break; - case 290: -#line 1153 "./util/configparser.y" /* yacc.c:1646 */ + case 292: +#line 1165 "./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 3504 "util/configparser.c" /* yacc.c:1646 */ +#line 3526 "util/configparser.c" /* yacc.c:1646 */ break; - case 291: -#line 1160 "./util/configparser.y" /* yacc.c:1646 */ + case 293: +#line 1172 "./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 3514 "util/configparser.c" /* yacc.c:1646 */ +#line 3536 "util/configparser.c" /* yacc.c:1646 */ break; - case 292: -#line 1167 "./util/configparser.y" /* yacc.c:1646 */ + case 294: +#line 1179 "./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 3524 "util/configparser.c" /* yacc.c:1646 */ +#line 3546 "util/configparser.c" /* yacc.c:1646 */ break; - case 293: -#line 1174 "./util/configparser.y" /* yacc.c:1646 */ + case 295: +#line 1186 "./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) @@ -3532,11 +3554,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3536 "util/configparser.c" /* yacc.c:1646 */ +#line 3558 "util/configparser.c" /* yacc.c:1646 */ break; - case 294: -#line 1183 "./util/configparser.y" /* yacc.c:1646 */ + case 296: +#line 1195 "./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) @@ -3544,11 +3566,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3548 "util/configparser.c" /* yacc.c:1646 */ +#line 3570 "util/configparser.c" /* yacc.c:1646 */ break; - case 295: -#line 1192 "./util/configparser.y" /* yacc.c:1646 */ + case 297: +#line 1204 "./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) @@ -3556,21 +3578,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3560 "util/configparser.c" /* yacc.c:1646 */ +#line 3582 "util/configparser.c" /* yacc.c:1646 */ break; - case 296: -#line 1201 "./util/configparser.y" /* yacc.c:1646 */ + case 298: +#line 1213 "./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 3570 "util/configparser.c" /* yacc.c:1646 */ +#line 3592 "util/configparser.c" /* yacc.c:1646 */ break; - case 297: -#line 1208 "./util/configparser.y" /* yacc.c:1646 */ + case 299: +#line 1220 "./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) @@ -3579,11 +3601,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3583 "util/configparser.c" /* yacc.c:1646 */ +#line 3605 "util/configparser.c" /* yacc.c:1646 */ break; - case 298: -#line 1218 "./util/configparser.y" /* yacc.c:1646 */ + case 300: +#line 1230 "./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 && @@ -3599,21 +3621,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 3603 "util/configparser.c" /* yacc.c:1646 */ +#line 3625 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 1235 "./util/configparser.y" /* yacc.c:1646 */ + case 301: +#line 1247 "./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 3613 "util/configparser.c" /* yacc.c:1646 */ +#line 3635 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 1242 "./util/configparser.y" /* yacc.c:1646 */ + case 302: +#line 1254 "./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) { @@ -3630,11 +3652,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3634 "util/configparser.c" /* yacc.c:1646 */ +#line 3656 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 1260 "./util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 1272 "./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) { @@ -3646,11 +3668,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3650 "util/configparser.c" /* yacc.c:1646 */ +#line 3672 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 1273 "./util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 1285 "./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) { @@ -3662,11 +3684,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3666 "util/configparser.c" /* yacc.c:1646 */ +#line 3688 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 1286 "./util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 1298 "./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) @@ -3674,11 +3696,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3678 "util/configparser.c" /* yacc.c:1646 */ +#line 3700 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 1295 "./util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1307 "./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) @@ -3686,11 +3708,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3690 "util/configparser.c" /* yacc.c:1646 */ +#line 3712 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 1304 "./util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1316 "./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) @@ -3698,11 +3720,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3702 "util/configparser.c" /* yacc.c:1646 */ +#line 3724 "util/configparser.c" /* yacc.c:1646 */ break; - case 306: -#line 1313 "./util/configparser.y" /* yacc.c:1646 */ + case 308: +#line 1325 "./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) @@ -3710,11 +3732,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3714 "util/configparser.c" /* yacc.c:1646 */ +#line 3736 "util/configparser.c" /* yacc.c:1646 */ break; - case 307: -#line 1322 "./util/configparser.y" /* yacc.c:1646 */ + case 309: +#line 1334 "./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) @@ -3723,11 +3745,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3727 "util/configparser.c" /* yacc.c:1646 */ +#line 3749 "util/configparser.c" /* yacc.c:1646 */ break; - case 308: -#line 1332 "./util/configparser.y" /* yacc.c:1646 */ + case 310: +#line 1344 "./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) @@ -3736,11 +3758,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3740 "util/configparser.c" /* yacc.c:1646 */ +#line 3762 "util/configparser.c" /* yacc.c:1646 */ break; - case 309: -#line 1342 "./util/configparser.y" /* yacc.c:1646 */ + case 311: +#line 1354 "./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) @@ -3748,11 +3770,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3752 "util/configparser.c" /* yacc.c:1646 */ +#line 3774 "util/configparser.c" /* yacc.c:1646 */ break; - case 310: -#line 1351 "./util/configparser.y" /* yacc.c:1646 */ + case 312: +#line 1363 "./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) @@ -3760,11 +3782,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3764 "util/configparser.c" /* yacc.c:1646 */ +#line 3786 "util/configparser.c" /* yacc.c:1646 */ break; - case 311: -#line 1360 "./util/configparser.y" /* yacc.c:1646 */ + case 313: +#line 1372 "./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) @@ -3776,11 +3798,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3780 "util/configparser.c" /* yacc.c:1646 */ +#line 3802 "util/configparser.c" /* yacc.c:1646 */ break; - case 312: -#line 1373 "./util/configparser.y" /* yacc.c:1646 */ + case 314: +#line 1385 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3792,11 +3814,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3796 "util/configparser.c" /* yacc.c:1646 */ +#line 3818 "util/configparser.c" /* yacc.c:1646 */ break; - case 313: -#line 1386 "./util/configparser.y" /* yacc.c:1646 */ + case 315: +#line 1398 "./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) @@ -3804,21 +3826,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3808 "util/configparser.c" /* yacc.c:1646 */ +#line 3830 "util/configparser.c" /* yacc.c:1646 */ break; - case 314: -#line 1395 "./util/configparser.y" /* yacc.c:1646 */ + case 316: +#line 1407 "./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 3818 "util/configparser.c" /* yacc.c:1646 */ +#line 3840 "util/configparser.c" /* yacc.c:1646 */ break; - case 315: -#line 1402 "./util/configparser.y" /* yacc.c:1646 */ + case 317: +#line 1414 "./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) @@ -3826,11 +3848,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3830 "util/configparser.c" /* yacc.c:1646 */ +#line 3852 "util/configparser.c" /* yacc.c:1646 */ break; - case 316: -#line 1411 "./util/configparser.y" /* yacc.c:1646 */ + case 318: +#line 1423 "./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) @@ -3838,11 +3860,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3842 "util/configparser.c" /* yacc.c:1646 */ +#line 3864 "util/configparser.c" /* yacc.c:1646 */ break; - case 317: -#line 1420 "./util/configparser.y" /* yacc.c:1646 */ + case 319: +#line 1432 "./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) @@ -3850,11 +3872,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3854 "util/configparser.c" /* yacc.c:1646 */ +#line 3876 "util/configparser.c" /* yacc.c:1646 */ break; - case 318: -#line 1429 "./util/configparser.y" /* yacc.c:1646 */ + case 320: +#line 1441 "./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) @@ -3863,22 +3885,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3867 "util/configparser.c" /* yacc.c:1646 */ +#line 3889 "util/configparser.c" /* yacc.c:1646 */ break; - case 319: -#line 1438 "./util/configparser.y" /* yacc.c:1646 */ + case 321: +#line 1450 "./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 3878 "util/configparser.c" /* yacc.c:1646 */ +#line 3900 "util/configparser.c" /* yacc.c:1646 */ break; - case 320: -#line 1446 "./util/configparser.y" /* yacc.c:1646 */ + case 322: +#line 1458 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3890,22 +3912,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3894 "util/configparser.c" /* yacc.c:1646 */ +#line 3916 "util/configparser.c" /* yacc.c:1646 */ break; - case 321: -#line 1459 "./util/configparser.y" /* yacc.c:1646 */ + case 323: +#line 1471 "./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 3905 "util/configparser.c" /* yacc.c:1646 */ +#line 3927 "util/configparser.c" /* yacc.c:1646 */ break; - case 322: -#line 1467 "./util/configparser.y" /* yacc.c:1646 */ + case 324: +#line 1479 "./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 && @@ -3932,21 +3954,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 3936 "util/configparser.c" /* yacc.c:1646 */ +#line 3958 "util/configparser.c" /* yacc.c:1646 */ break; - case 323: -#line 1495 "./util/configparser.y" /* yacc.c:1646 */ + case 325: +#line 1507 "./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 3946 "util/configparser.c" /* yacc.c:1646 */ +#line 3968 "util/configparser.c" /* yacc.c:1646 */ break; - case 324: -#line 1502 "./util/configparser.y" /* yacc.c:1646 */ + case 326: +#line 1514 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -3960,11 +3982,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 3964 "util/configparser.c" /* yacc.c:1646 */ +#line 3986 "util/configparser.c" /* yacc.c:1646 */ break; - case 325: -#line 1517 "./util/configparser.y" /* yacc.c:1646 */ + case 327: +#line 1529 "./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) @@ -3973,11 +3995,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3977 "util/configparser.c" /* yacc.c:1646 */ +#line 3999 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1527 "./util/configparser.y" /* yacc.c:1646 */ + case 328: +#line 1539 "./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) @@ -3986,31 +4008,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3990 "util/configparser.c" /* yacc.c:1646 */ +#line 4012 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1537 "./util/configparser.y" /* yacc.c:1646 */ + case 329: +#line 1549 "./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 4000 "util/configparser.c" /* yacc.c:1646 */ +#line 4022 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1544 "./util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1556 "./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 4010 "util/configparser.c" /* yacc.c:1646 */ +#line 4032 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1551 "./util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1563 "./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) @@ -4018,11 +4040,11 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4022 "util/configparser.c" /* yacc.c:1646 */ +#line 4044 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1560 "./util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1572 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -4035,11 +4057,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4039 "util/configparser.c" /* yacc.c:1646 */ +#line 4061 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1574 "./util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1586 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4057,11 +4079,11 @@ yyreduce: } } } -#line 4061 "util/configparser.c" /* yacc.c:1646 */ +#line 4083 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1593 "./util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1605 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4079,11 +4101,11 @@ yyreduce: } } } -#line 4083 "util/configparser.c" /* yacc.c:1646 */ +#line 4105 "util/configparser.c" /* yacc.c:1646 */ break; - case 333: -#line 1612 "./util/configparser.y" /* yacc.c:1646 */ + case 335: +#line 1624 "./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, @@ -4094,11 +4116,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4098 "util/configparser.c" /* yacc.c:1646 */ +#line 4120 "util/configparser.c" /* yacc.c:1646 */ break; - case 334: -#line 1624 "./util/configparser.y" /* yacc.c:1646 */ + case 336: +#line 1636 "./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, @@ -4109,11 +4131,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4113 "util/configparser.c" /* yacc.c:1646 */ +#line 4135 "util/configparser.c" /* yacc.c:1646 */ break; - case 335: -#line 1636 "./util/configparser.y" /* yacc.c:1646 */ + case 337: +#line 1648 "./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, @@ -4124,11 +4146,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4128 "util/configparser.c" /* yacc.c:1646 */ +#line 4150 "util/configparser.c" /* yacc.c:1646 */ break; - case 336: -#line 1648 "./util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1660 "./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, @@ -4138,11 +4160,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4142 "util/configparser.c" /* yacc.c:1646 */ +#line 4164 "util/configparser.c" /* yacc.c:1646 */ break; - case 337: -#line 1659 "./util/configparser.y" /* yacc.c:1646 */ + case 339: +#line 1671 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4160,11 +4182,11 @@ yyreduce: } } } -#line 4164 "util/configparser.c" /* yacc.c:1646 */ +#line 4186 "util/configparser.c" /* yacc.c:1646 */ break; - case 338: -#line 1678 "./util/configparser.y" /* yacc.c:1646 */ + case 340: +#line 1690 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4172,11 +4194,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4176 "util/configparser.c" /* yacc.c:1646 */ +#line 4198 "util/configparser.c" /* yacc.c:1646 */ break; - case 339: -#line 1688 "./util/configparser.y" /* yacc.c:1646 */ + case 341: +#line 1700 "./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) @@ -4184,33 +4206,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4188 "util/configparser.c" /* yacc.c:1646 */ +#line 4210 "util/configparser.c" /* yacc.c:1646 */ break; - case 340: -#line 1697 "./util/configparser.y" /* yacc.c:1646 */ + case 342: +#line 1709 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4199 "util/configparser.c" /* yacc.c:1646 */ +#line 4221 "util/configparser.c" /* yacc.c:1646 */ break; - case 341: -#line 1705 "./util/configparser.y" /* yacc.c:1646 */ + case 343: +#line 1717 "./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 4210 "util/configparser.c" /* yacc.c:1646 */ +#line 4232 "util/configparser.c" /* yacc.c:1646 */ break; - case 342: -#line 1713 "./util/configparser.y" /* yacc.c:1646 */ + case 344: +#line 1725 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4222,11 +4244,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4226 "util/configparser.c" /* yacc.c:1646 */ +#line 4248 "util/configparser.c" /* yacc.c:1646 */ break; - case 343: -#line 1726 "./util/configparser.y" /* yacc.c:1646 */ + case 345: +#line 1738 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4238,11 +4260,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4242 "util/configparser.c" /* yacc.c:1646 */ +#line 4264 "util/configparser.c" /* yacc.c:1646 */ break; - case 344: -#line 1739 "./util/configparser.y" /* yacc.c:1646 */ + case 346: +#line 1751 "./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) { @@ -4254,11 +4276,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 4258 "util/configparser.c" /* yacc.c:1646 */ +#line 4280 "util/configparser.c" /* yacc.c:1646 */ break; - case 345: -#line 1752 "./util/configparser.y" /* yacc.c:1646 */ + case 347: +#line 1764 "./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) { @@ -4270,11 +4292,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 4274 "util/configparser.c" /* yacc.c:1646 */ +#line 4296 "util/configparser.c" /* yacc.c:1646 */ break; - case 346: -#line 1765 "./util/configparser.y" /* yacc.c:1646 */ + case 348: +#line 1777 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4282,11 +4304,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4286 "util/configparser.c" /* yacc.c:1646 */ +#line 4308 "util/configparser.c" /* yacc.c:1646 */ break; - case 347: -#line 1774 "./util/configparser.y" /* yacc.c:1646 */ + case 349: +#line 1786 "./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) @@ -4294,11 +4316,11 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4298 "util/configparser.c" /* yacc.c:1646 */ +#line 4320 "util/configparser.c" /* yacc.c:1646 */ break; - case 348: -#line 1783 "./util/configparser.y" /* yacc.c:1646 */ + case 350: +#line 1795 "./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) @@ -4307,11 +4329,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4311 "util/configparser.c" /* yacc.c:1646 */ +#line 4333 "util/configparser.c" /* yacc.c:1646 */ break; - case 349: -#line 1793 "./util/configparser.y" /* yacc.c:1646 */ + case 351: +#line 1805 "./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) @@ -4320,11 +4342,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4324 "util/configparser.c" /* yacc.c:1646 */ +#line 4346 "util/configparser.c" /* yacc.c:1646 */ break; - case 350: -#line 1803 "./util/configparser.y" /* yacc.c:1646 */ + case 352: +#line 1815 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -4336,11 +4358,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4340 "util/configparser.c" /* yacc.c:1646 */ +#line 4362 "util/configparser.c" /* yacc.c:1646 */ break; - case 351: -#line 1816 "./util/configparser.y" /* yacc.c:1646 */ + case 353: +#line 1828 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -4352,11 +4374,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4356 "util/configparser.c" /* yacc.c:1646 */ +#line 4378 "util/configparser.c" /* yacc.c:1646 */ break; - case 352: -#line 1829 "./util/configparser.y" /* yacc.c:1646 */ + case 354: +#line 1841 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -4366,11 +4388,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4370 "util/configparser.c" /* yacc.c:1646 */ +#line 4392 "util/configparser.c" /* yacc.c:1646 */ break; - case 353: -#line 1840 "./util/configparser.y" /* yacc.c:1646 */ + case 355: +#line 1852 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -4382,11 +4404,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4386 "util/configparser.c" /* yacc.c:1646 */ +#line 4408 "util/configparser.c" /* yacc.c:1646 */ break; - case 354: -#line 1853 "./util/configparser.y" /* yacc.c:1646 */ + case 356: +#line 1865 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -4396,11 +4418,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4400 "util/configparser.c" /* yacc.c:1646 */ +#line 4422 "util/configparser.c" /* yacc.c:1646 */ break; - case 355: -#line 1864 "./util/configparser.y" /* yacc.c:1646 */ + case 357: +#line 1876 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -4412,11 +4434,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4416 "util/configparser.c" /* yacc.c:1646 */ +#line 4438 "util/configparser.c" /* yacc.c:1646 */ break; - case 356: -#line 1877 "./util/configparser.y" /* yacc.c:1646 */ + case 358: +#line 1889 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -4425,31 +4447,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 4429 "util/configparser.c" /* yacc.c:1646 */ +#line 4451 "util/configparser.c" /* yacc.c:1646 */ break; - case 357: -#line 1887 "./util/configparser.y" /* yacc.c:1646 */ + case 359: +#line 1899 "./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 4439 "util/configparser.c" /* yacc.c:1646 */ +#line 4461 "util/configparser.c" /* yacc.c:1646 */ break; - case 358: -#line 1894 "./util/configparser.y" /* yacc.c:1646 */ + case 360: +#line 1906 "./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 4449 "util/configparser.c" /* yacc.c:1646 */ +#line 4471 "util/configparser.c" /* yacc.c:1646 */ break; - case 359: -#line 1901 "./util/configparser.y" /* yacc.c:1646 */ + case 361: +#line 1913 "./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) @@ -4457,11 +4479,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4461 "util/configparser.c" /* yacc.c:1646 */ +#line 4483 "util/configparser.c" /* yacc.c:1646 */ break; - case 360: -#line 1910 "./util/configparser.y" /* yacc.c:1646 */ + case 362: +#line 1922 "./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) @@ -4470,11 +4492,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4474 "util/configparser.c" /* yacc.c:1646 */ +#line 4496 "util/configparser.c" /* yacc.c:1646 */ break; - case 361: -#line 1920 "./util/configparser.y" /* yacc.c:1646 */ + case 363: +#line 1932 "./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) @@ -4483,11 +4505,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4487 "util/configparser.c" /* yacc.c:1646 */ +#line 4509 "util/configparser.c" /* yacc.c:1646 */ break; - case 362: -#line 1930 "./util/configparser.y" /* yacc.c:1646 */ + case 364: +#line 1942 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -4496,31 +4518,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 4500 "util/configparser.c" /* yacc.c:1646 */ +#line 4522 "util/configparser.c" /* yacc.c:1646 */ break; - case 363: -#line 1940 "./util/configparser.y" /* yacc.c:1646 */ + case 365: +#line 1952 "./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 4510 "util/configparser.c" /* yacc.c:1646 */ +#line 4532 "util/configparser.c" /* yacc.c:1646 */ break; - case 364: -#line 1947 "./util/configparser.y" /* yacc.c:1646 */ + case 366: +#line 1959 "./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 4520 "util/configparser.c" /* yacc.c:1646 */ +#line 4542 "util/configparser.c" /* yacc.c:1646 */ break; - case 365: -#line 1954 "./util/configparser.y" /* yacc.c:1646 */ + case 367: +#line 1966 "./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) @@ -4528,11 +4550,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4532 "util/configparser.c" /* yacc.c:1646 */ +#line 4554 "util/configparser.c" /* yacc.c:1646 */ break; - case 366: -#line 1963 "./util/configparser.y" /* yacc.c:1646 */ + case 368: +#line 1975 "./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) @@ -4541,11 +4563,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4545 "util/configparser.c" /* yacc.c:1646 */ +#line 4567 "util/configparser.c" /* yacc.c:1646 */ break; - case 367: -#line 1973 "./util/configparser.y" /* yacc.c:1646 */ + case 369: +#line 1985 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -4554,11 +4576,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 4558 "util/configparser.c" /* yacc.c:1646 */ +#line 4580 "util/configparser.c" /* yacc.c:1646 */ break; - case 368: -#line 1983 "./util/configparser.y" /* yacc.c:1646 */ + case 370: +#line 1995 "./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 && @@ -4586,11 +4608,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4590 "util/configparser.c" /* yacc.c:1646 */ +#line 4612 "util/configparser.c" /* yacc.c:1646 */ break; - case 369: -#line 2012 "./util/configparser.y" /* yacc.c:1646 */ + case 371: +#line 2024 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -4599,22 +4621,22 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 4603 "util/configparser.c" /* yacc.c:1646 */ +#line 4625 "util/configparser.c" /* yacc.c:1646 */ break; - case 370: -#line 2022 "./util/configparser.y" /* yacc.c:1646 */ + case 372: +#line 2034 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 4614 "util/configparser.c" /* yacc.c:1646 */ +#line 4636 "util/configparser.c" /* yacc.c:1646 */ break; - case 371: -#line 2030 "./util/configparser.y" /* yacc.c:1646 */ + case 373: +#line 2042 "./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))) { @@ -4622,11 +4644,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4626 "util/configparser.c" /* yacc.c:1646 */ +#line 4648 "util/configparser.c" /* yacc.c:1646 */ break; - case 372: -#line 2039 "./util/configparser.y" /* yacc.c:1646 */ + case 374: +#line 2051 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4640,11 +4662,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4644 "util/configparser.c" /* yacc.c:1646 */ +#line 4666 "util/configparser.c" /* yacc.c:1646 */ break; - case 373: -#line 2054 "./util/configparser.y" /* yacc.c:1646 */ + case 375: +#line 2066 "./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) @@ -4652,19 +4674,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4656 "util/configparser.c" /* yacc.c:1646 */ +#line 4678 "util/configparser.c" /* yacc.c:1646 */ break; - case 374: -#line 2063 "./util/configparser.y" /* yacc.c:1646 */ + case 376: +#line 2075 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 4664 "util/configparser.c" /* yacc.c:1646 */ +#line 4686 "util/configparser.c" /* yacc.c:1646 */ break; - case 385: -#line 2074 "./util/configparser.y" /* yacc.c:1646 */ + case 387: +#line 2086 "./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) @@ -4673,11 +4695,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4677 "util/configparser.c" /* yacc.c:1646 */ +#line 4699 "util/configparser.c" /* yacc.c:1646 */ break; - case 386: -#line 2084 "./util/configparser.y" /* yacc.c:1646 */ + case 388: +#line 2096 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4685,21 +4707,21 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4689 "util/configparser.c" /* yacc.c:1646 */ +#line 4711 "util/configparser.c" /* yacc.c:1646 */ break; - case 387: -#line 2093 "./util/configparser.y" /* yacc.c:1646 */ + case 389: +#line 2105 "./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 4699 "util/configparser.c" /* yacc.c:1646 */ +#line 4721 "util/configparser.c" /* yacc.c:1646 */ break; - case 388: -#line 2100 "./util/configparser.y" /* yacc.c:1646 */ + case 390: +#line 2112 "./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) @@ -4708,122 +4730,122 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4712 "util/configparser.c" /* yacc.c:1646 */ +#line 4734 "util/configparser.c" /* yacc.c:1646 */ break; - case 389: -#line 2110 "./util/configparser.y" /* yacc.c:1646 */ + case 391: +#line 2122 "./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 4722 "util/configparser.c" /* yacc.c:1646 */ +#line 4744 "util/configparser.c" /* yacc.c:1646 */ break; - case 390: -#line 2117 "./util/configparser.y" /* yacc.c:1646 */ + case 392: +#line 2129 "./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 4732 "util/configparser.c" /* yacc.c:1646 */ +#line 4754 "util/configparser.c" /* yacc.c:1646 */ break; - case 391: -#line 2124 "./util/configparser.y" /* yacc.c:1646 */ + case 393: +#line 2136 "./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 4742 "util/configparser.c" /* yacc.c:1646 */ +#line 4764 "util/configparser.c" /* yacc.c:1646 */ break; - case 392: -#line 2131 "./util/configparser.y" /* yacc.c:1646 */ + case 394: +#line 2143 "./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 4752 "util/configparser.c" /* yacc.c:1646 */ +#line 4774 "util/configparser.c" /* yacc.c:1646 */ break; - case 393: -#line 2138 "./util/configparser.y" /* yacc.c:1646 */ + case 395: +#line 2150 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 4760 "util/configparser.c" /* yacc.c:1646 */ +#line 4782 "util/configparser.c" /* yacc.c:1646 */ break; - case 408: -#line 2155 "./util/configparser.y" /* yacc.c:1646 */ + case 410: +#line 2167 "./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 4771 "util/configparser.c" /* yacc.c:1646 */ +#line 4793 "util/configparser.c" /* yacc.c:1646 */ break; - case 409: -#line 2163 "./util/configparser.y" /* yacc.c:1646 */ + case 411: +#line 2175 "./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 4781 "util/configparser.c" /* yacc.c:1646 */ +#line 4803 "util/configparser.c" /* yacc.c:1646 */ break; - case 410: -#line 2170 "./util/configparser.y" /* yacc.c:1646 */ + case 412: +#line 2182 "./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 4792 "util/configparser.c" /* yacc.c:1646 */ +#line 4814 "util/configparser.c" /* yacc.c:1646 */ break; - case 411: -#line 2178 "./util/configparser.y" /* yacc.c:1646 */ + case 413: +#line 2190 "./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 4803 "util/configparser.c" /* yacc.c:1646 */ +#line 4825 "util/configparser.c" /* yacc.c:1646 */ break; - case 412: -#line 2186 "./util/configparser.y" /* yacc.c:1646 */ + case 414: +#line 2198 "./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 4813 "util/configparser.c" /* yacc.c:1646 */ +#line 4835 "util/configparser.c" /* yacc.c:1646 */ break; - case 413: -#line 2193 "./util/configparser.y" /* yacc.c:1646 */ + case 415: +#line 2205 "./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 4823 "util/configparser.c" /* yacc.c:1646 */ +#line 4845 "util/configparser.c" /* yacc.c:1646 */ break; - case 414: -#line 2200 "./util/configparser.y" /* yacc.c:1646 */ + case 416: +#line 2212 "./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) @@ -4831,11 +4853,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4835 "util/configparser.c" /* yacc.c:1646 */ +#line 4857 "util/configparser.c" /* yacc.c:1646 */ break; - case 415: -#line 2209 "./util/configparser.y" /* yacc.c:1646 */ + case 417: +#line 2221 "./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) @@ -4843,11 +4865,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4847 "util/configparser.c" /* yacc.c:1646 */ +#line 4869 "util/configparser.c" /* yacc.c:1646 */ break; - case 416: -#line 2218 "./util/configparser.y" /* yacc.c:1646 */ + case 418: +#line 2230 "./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) @@ -4855,11 +4877,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4859 "util/configparser.c" /* yacc.c:1646 */ +#line 4881 "util/configparser.c" /* yacc.c:1646 */ break; - case 417: -#line 2227 "./util/configparser.y" /* yacc.c:1646 */ + case 419: +#line 2239 "./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) @@ -4867,11 +4889,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4871 "util/configparser.c" /* yacc.c:1646 */ +#line 4893 "util/configparser.c" /* yacc.c:1646 */ break; - case 418: -#line 2236 "./util/configparser.y" /* yacc.c:1646 */ + case 420: +#line 2248 "./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) @@ -4879,11 +4901,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4883 "util/configparser.c" /* yacc.c:1646 */ +#line 4905 "util/configparser.c" /* yacc.c:1646 */ break; - case 419: -#line 2245 "./util/configparser.y" /* yacc.c:1646 */ + case 421: +#line 2257 "./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) @@ -4891,29 +4913,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4895 "util/configparser.c" /* yacc.c:1646 */ +#line 4917 "util/configparser.c" /* yacc.c:1646 */ break; - case 420: -#line 2254 "./util/configparser.y" /* yacc.c:1646 */ + case 422: +#line 2266 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 4903 "util/configparser.c" /* yacc.c:1646 */ +#line 4925 "util/configparser.c" /* yacc.c:1646 */ break; - case 424: -#line 2263 "./util/configparser.y" /* yacc.c:1646 */ + case 426: +#line 2275 "./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 4913 "util/configparser.c" /* yacc.c:1646 */ +#line 4935 "util/configparser.c" /* yacc.c:1646 */ break; - case 425: -#line 2269 "./util/configparser.y" /* yacc.c:1646 */ + case 427: +#line 2281 "./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) @@ -4922,21 +4944,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4926 "util/configparser.c" /* yacc.c:1646 */ +#line 4948 "util/configparser.c" /* yacc.c:1646 */ break; - case 426: -#line 2279 "./util/configparser.y" /* yacc.c:1646 */ + case 428: +#line 2291 "./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 4936 "util/configparser.c" /* yacc.c:1646 */ +#line 4958 "util/configparser.c" /* yacc.c:1646 */ break; - case 427: -#line 2286 "./util/configparser.y" /* yacc.c:1646 */ + case 429: +#line 2298 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -4944,42 +4966,42 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 4948 "util/configparser.c" /* yacc.c:1646 */ +#line 4970 "util/configparser.c" /* yacc.c:1646 */ break; - case 428: -#line 2295 "./util/configparser.y" /* yacc.c:1646 */ + case 430: +#line 2307 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 4959 "util/configparser.c" /* yacc.c:1646 */ +#line 4981 "util/configparser.c" /* yacc.c:1646 */ break; - case 429: -#line 2303 "./util/configparser.y" /* yacc.c:1646 */ + case 431: +#line 2315 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnscrypt:)\n")); OUTYY(("\nP(dnscrypt:)\n")); } -#line 4968 "util/configparser.c" /* yacc.c:1646 */ +#line 4990 "util/configparser.c" /* yacc.c:1646 */ break; - case 437: -#line 2315 "./util/configparser.y" /* yacc.c:1646 */ + case 439: +#line 2327 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_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->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4979 "util/configparser.c" /* yacc.c:1646 */ +#line 5001 "util/configparser.c" /* yacc.c:1646 */ break; - case 438: -#line 2324 "./util/configparser.y" /* yacc.c:1646 */ + case 440: +#line 2336 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); @@ -4988,41 +5010,41 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4992 "util/configparser.c" /* yacc.c:1646 */ +#line 5014 "util/configparser.c" /* yacc.c:1646 */ break; - case 439: -#line 2334 "./util/configparser.y" /* yacc.c:1646 */ + case 441: +#line 2346 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 5002 "util/configparser.c" /* yacc.c:1646 */ +#line 5024 "util/configparser.c" /* yacc.c:1646 */ break; - case 440: -#line 2341 "./util/configparser.y" /* yacc.c:1646 */ + case 442: +#line 2353 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 5012 "util/configparser.c" /* yacc.c:1646 */ +#line 5034 "util/configparser.c" /* yacc.c:1646 */ break; - case 441: -#line 2348 "./util/configparser.y" /* yacc.c:1646 */ + case 443: +#line 2360 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 5022 "util/configparser.c" /* yacc.c:1646 */ +#line 5044 "util/configparser.c" /* yacc.c:1646 */ break; -#line 5026 "util/configparser.c" /* yacc.c:1646 */ +#line 5048 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -5250,7 +5272,7 @@ yyreturn: #endif return yyresult; } -#line 2354 "./util/configparser.y" /* yacc.c:1906 */ +#line 2366 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 00fe05892..d42eb0820 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -217,46 +217,47 @@ extern int yydebug; VAR_IP_RATELIMIT_FACTOR = 427, VAR_RATELIMIT_FACTOR = 428, VAR_SEND_CLIENT_SUBNET = 429, - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 430, - VAR_CLIENT_SUBNET_OPCODE = 431, - VAR_MAX_CLIENT_SUBNET_IPV4 = 432, - VAR_MAX_CLIENT_SUBNET_IPV6 = 433, - VAR_CAPS_WHITELIST = 434, - VAR_CACHE_MAX_NEGATIVE_TTL = 435, - VAR_PERMIT_SMALL_HOLDDOWN = 436, - VAR_QNAME_MINIMISATION = 437, - VAR_QNAME_MINIMISATION_STRICT = 438, - VAR_IP_FREEBIND = 439, - VAR_DEFINE_TAG = 440, - VAR_LOCAL_ZONE_TAG = 441, - VAR_ACCESS_CONTROL_TAG = 442, - VAR_LOCAL_ZONE_OVERRIDE = 443, - VAR_ACCESS_CONTROL_TAG_ACTION = 444, - VAR_ACCESS_CONTROL_TAG_DATA = 445, - VAR_VIEW = 446, - VAR_ACCESS_CONTROL_VIEW = 447, - VAR_VIEW_FIRST = 448, - VAR_SERVE_EXPIRED = 449, - VAR_FAKE_DSA = 450, - VAR_FAKE_SHA1 = 451, - VAR_LOG_IDENTITY = 452, - VAR_HIDE_TRUSTANCHOR = 453, - VAR_TRUST_ANCHOR_SIGNALING = 454, - VAR_USE_SYSTEMD = 455, - VAR_SHM_ENABLE = 456, - VAR_SHM_KEY = 457, - VAR_DNSCRYPT = 458, - VAR_DNSCRYPT_ENABLE = 459, - VAR_DNSCRYPT_PORT = 460, - VAR_DNSCRYPT_PROVIDER = 461, - VAR_DNSCRYPT_SECRET_KEY = 462, - VAR_DNSCRYPT_PROVIDER_CERT = 463, - VAR_IPSECMOD_ENABLED = 464, - VAR_IPSECMOD_HOOK = 465, - VAR_IPSECMOD_IGNORE_BOGUS = 466, - VAR_IPSECMOD_MAX_TTL = 467, - VAR_IPSECMOD_WHITELIST = 468, - VAR_IPSECMOD_STRICT = 469 + VAR_CLIENT_SUBNET_ZONE = 430, + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 431, + VAR_CLIENT_SUBNET_OPCODE = 432, + VAR_MAX_CLIENT_SUBNET_IPV4 = 433, + VAR_MAX_CLIENT_SUBNET_IPV6 = 434, + VAR_CAPS_WHITELIST = 435, + VAR_CACHE_MAX_NEGATIVE_TTL = 436, + VAR_PERMIT_SMALL_HOLDDOWN = 437, + VAR_QNAME_MINIMISATION = 438, + VAR_QNAME_MINIMISATION_STRICT = 439, + VAR_IP_FREEBIND = 440, + VAR_DEFINE_TAG = 441, + VAR_LOCAL_ZONE_TAG = 442, + VAR_ACCESS_CONTROL_TAG = 443, + VAR_LOCAL_ZONE_OVERRIDE = 444, + VAR_ACCESS_CONTROL_TAG_ACTION = 445, + VAR_ACCESS_CONTROL_TAG_DATA = 446, + VAR_VIEW = 447, + VAR_ACCESS_CONTROL_VIEW = 448, + VAR_VIEW_FIRST = 449, + VAR_SERVE_EXPIRED = 450, + VAR_FAKE_DSA = 451, + VAR_FAKE_SHA1 = 452, + VAR_LOG_IDENTITY = 453, + VAR_HIDE_TRUSTANCHOR = 454, + VAR_TRUST_ANCHOR_SIGNALING = 455, + VAR_USE_SYSTEMD = 456, + VAR_SHM_ENABLE = 457, + VAR_SHM_KEY = 458, + VAR_DNSCRYPT = 459, + VAR_DNSCRYPT_ENABLE = 460, + VAR_DNSCRYPT_PORT = 461, + VAR_DNSCRYPT_PROVIDER = 462, + VAR_DNSCRYPT_SECRET_KEY = 463, + VAR_DNSCRYPT_PROVIDER_CERT = 464, + VAR_IPSECMOD_ENABLED = 465, + VAR_IPSECMOD_HOOK = 466, + VAR_IPSECMOD_IGNORE_BOGUS = 467, + VAR_IPSECMOD_MAX_TTL = 468, + VAR_IPSECMOD_WHITELIST = 469, + VAR_IPSECMOD_STRICT = 470 }; #endif /* Tokens. */ @@ -432,46 +433,47 @@ extern int yydebug; #define VAR_IP_RATELIMIT_FACTOR 427 #define VAR_RATELIMIT_FACTOR 428 #define VAR_SEND_CLIENT_SUBNET 429 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 430 -#define VAR_CLIENT_SUBNET_OPCODE 431 -#define VAR_MAX_CLIENT_SUBNET_IPV4 432 -#define VAR_MAX_CLIENT_SUBNET_IPV6 433 -#define VAR_CAPS_WHITELIST 434 -#define VAR_CACHE_MAX_NEGATIVE_TTL 435 -#define VAR_PERMIT_SMALL_HOLDDOWN 436 -#define VAR_QNAME_MINIMISATION 437 -#define VAR_QNAME_MINIMISATION_STRICT 438 -#define VAR_IP_FREEBIND 439 -#define VAR_DEFINE_TAG 440 -#define VAR_LOCAL_ZONE_TAG 441 -#define VAR_ACCESS_CONTROL_TAG 442 -#define VAR_LOCAL_ZONE_OVERRIDE 443 -#define VAR_ACCESS_CONTROL_TAG_ACTION 444 -#define VAR_ACCESS_CONTROL_TAG_DATA 445 -#define VAR_VIEW 446 -#define VAR_ACCESS_CONTROL_VIEW 447 -#define VAR_VIEW_FIRST 448 -#define VAR_SERVE_EXPIRED 449 -#define VAR_FAKE_DSA 450 -#define VAR_FAKE_SHA1 451 -#define VAR_LOG_IDENTITY 452 -#define VAR_HIDE_TRUSTANCHOR 453 -#define VAR_TRUST_ANCHOR_SIGNALING 454 -#define VAR_USE_SYSTEMD 455 -#define VAR_SHM_ENABLE 456 -#define VAR_SHM_KEY 457 -#define VAR_DNSCRYPT 458 -#define VAR_DNSCRYPT_ENABLE 459 -#define VAR_DNSCRYPT_PORT 460 -#define VAR_DNSCRYPT_PROVIDER 461 -#define VAR_DNSCRYPT_SECRET_KEY 462 -#define VAR_DNSCRYPT_PROVIDER_CERT 463 -#define VAR_IPSECMOD_ENABLED 464 -#define VAR_IPSECMOD_HOOK 465 -#define VAR_IPSECMOD_IGNORE_BOGUS 466 -#define VAR_IPSECMOD_MAX_TTL 467 -#define VAR_IPSECMOD_WHITELIST 468 -#define VAR_IPSECMOD_STRICT 469 +#define VAR_CLIENT_SUBNET_ZONE 430 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 431 +#define VAR_CLIENT_SUBNET_OPCODE 432 +#define VAR_MAX_CLIENT_SUBNET_IPV4 433 +#define VAR_MAX_CLIENT_SUBNET_IPV6 434 +#define VAR_CAPS_WHITELIST 435 +#define VAR_CACHE_MAX_NEGATIVE_TTL 436 +#define VAR_PERMIT_SMALL_HOLDDOWN 437 +#define VAR_QNAME_MINIMISATION 438 +#define VAR_QNAME_MINIMISATION_STRICT 439 +#define VAR_IP_FREEBIND 440 +#define VAR_DEFINE_TAG 441 +#define VAR_LOCAL_ZONE_TAG 442 +#define VAR_ACCESS_CONTROL_TAG 443 +#define VAR_LOCAL_ZONE_OVERRIDE 444 +#define VAR_ACCESS_CONTROL_TAG_ACTION 445 +#define VAR_ACCESS_CONTROL_TAG_DATA 446 +#define VAR_VIEW 447 +#define VAR_ACCESS_CONTROL_VIEW 448 +#define VAR_VIEW_FIRST 449 +#define VAR_SERVE_EXPIRED 450 +#define VAR_FAKE_DSA 451 +#define VAR_FAKE_SHA1 452 +#define VAR_LOG_IDENTITY 453 +#define VAR_HIDE_TRUSTANCHOR 454 +#define VAR_TRUST_ANCHOR_SIGNALING 455 +#define VAR_USE_SYSTEMD 456 +#define VAR_SHM_ENABLE 457 +#define VAR_SHM_KEY 458 +#define VAR_DNSCRYPT 459 +#define VAR_DNSCRYPT_ENABLE 460 +#define VAR_DNSCRYPT_PORT 461 +#define VAR_DNSCRYPT_PROVIDER 462 +#define VAR_DNSCRYPT_SECRET_KEY 463 +#define VAR_DNSCRYPT_PROVIDER_CERT 464 +#define VAR_IPSECMOD_ENABLED 465 +#define VAR_IPSECMOD_HOOK 466 +#define VAR_IPSECMOD_IGNORE_BOGUS 467 +#define VAR_IPSECMOD_MAX_TTL 468 +#define VAR_IPSECMOD_WHITELIST 469 +#define VAR_IPSECMOD_STRICT 470 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -482,7 +484,7 @@ union YYSTYPE char* str; -#line 486 "util/configparser.h" /* yacc.c:1909 */ +#line 488 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 98ce2f4fb..ea7b62ee5 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -131,8 +131,8 @@ extern struct config_parser_state* cfg_parser; %token VAR_RATELIMIT VAR_RATELIMIT_SLABS VAR_RATELIMIT_SIZE %token VAR_RATELIMIT_FOR_DOMAIN VAR_RATELIMIT_BELOW_DOMAIN %token VAR_IP_RATELIMIT_FACTOR VAR_RATELIMIT_FACTOR -%token VAR_SEND_CLIENT_SUBNET VAR_CLIENT_SUBNET_ALWAYS_FORWARD -%token VAR_CLIENT_SUBNET_OPCODE +%token VAR_SEND_CLIENT_SUBNET VAR_CLIENT_SUBNET_ZONE +%token VAR_CLIENT_SUBNET_ALWAYS_FORWARD VAR_CLIENT_SUBNET_OPCODE %token VAR_MAX_CLIENT_SUBNET_IPV4 VAR_MAX_CLIENT_SUBNET_IPV6 %token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL VAR_PERMIT_SMALL_HOLDDOWN %token VAR_QNAME_MINIMISATION VAR_QNAME_MINIMISATION_STRICT VAR_IP_FREEBIND @@ -217,7 +217,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_ratelimit_for_domain | server_ratelimit_below_domain | server_ratelimit_factor | server_ip_ratelimit_factor | server_send_client_subnet | - server_client_subnet_always_forward | + server_client_subnet_zone | server_client_subnet_always_forward | server_client_subnet_opcode | server_max_client_subnet_ipv4 | server_max_client_subnet_ipv6 | server_caps_whitelist | server_cache_max_negative_ttl | @@ -375,6 +375,18 @@ server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG #endif } ; +server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG + { + #ifdef CLIENT_SUBNET + OUTYY(("P(server_client_subnet_zone:%s)\n", $2)); + if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone, + $2)) + fatal_exit("out of memory adding client-subnet-zone"); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + } + ; server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG {