From 54bd1fdd62cffeda3894e8832b506964d7dd32d0 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 13 Feb 2018 10:35:09 +0000 Subject: [PATCH] - tls-cert-bundle option in unbound.conf enables TLS authentication. git-svn-id: file:///svn/unbound/trunk@4532 be551aaa-1e26-0410-a405-d3ace91eadb9 --- config.h.in | 6 + configure | 2 +- configure.ac | 2 +- daemon/unbound.c | 3 +- doc/Changelog | 3 + doc/example.conf.in | 3 + doc/unbound.conf.5.in | 11 + libunbound/libworker.c | 3 +- services/outside_network.c | 20 + util/config_file.c | 4 + util/config_file.h | 2 + util/configlexer.c | 4055 ++++++++++++++++++------------------ util/configlexer.lex | 2 + util/configparser.c | 2566 +++++++++++------------ util/configparser.h | 396 ++-- util/configparser.y | 12 +- util/netevent.c | 73 +- 17 files changed, 3669 insertions(+), 3494 deletions(-) diff --git a/config.h.in b/config.h.in index 47aa147cb..e7405603d 100644 --- a/config.h.in +++ b/config.h.in @@ -425,6 +425,12 @@ /* Define to 1 if you have the `SSL_CTX_set_security_level' function. */ #undef HAVE_SSL_CTX_SET_SECURITY_LEVEL +/* Define to 1 if you have the `SSL_get0_peername' function. */ +#undef HAVE_SSL_GET0_PEERNAME + +/* Define to 1 if you have the `SSL_set1_host' function. */ +#undef HAVE_SSL_SET1_HOST + /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H diff --git a/configure b/configure index 203566cd3..247ed1455 100755 --- a/configure +++ b/configure @@ -17659,7 +17659,7 @@ done # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level +for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" diff --git a/configure.ac b/configure.ac index e3e222f89..b83979cb0 100644 --- a/configure.ac +++ b/configure.ac @@ -719,7 +719,7 @@ AC_CHECK_FUNCS([OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_C # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -AC_CHECK_FUNCS([OPENSSL_init_ssl SSL_CTX_set_security_level]) +AC_CHECK_FUNCS([OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername]) LIBS="$BAKLIBS" AC_CHECK_DECLS([SSL_COMP_get_compression_methods,sk_SSL_COMP_pop_free,SSL_CTX_set_ecdh_auto], [], [], [ diff --git a/daemon/unbound.c b/daemon/unbound.c index 827246f0c..e4caf0048 100644 --- a/daemon/unbound.c +++ b/daemon/unbound.c @@ -430,7 +430,8 @@ perform_setup(struct daemon* daemon, struct config_file* cfg, int debug_mode, cfg->ssl_service_key, cfg->ssl_service_pem, NULL))) fatal_exit("could not set up listen SSL_CTX"); } - if(!(daemon->connect_sslctx = connect_sslctx_create(NULL, NULL, NULL))) + if(!(daemon->connect_sslctx = connect_sslctx_create(NULL, NULL, + cfg->tls_cert_bundle))) fatal_exit("could not set up connect SSL_CTX"); #endif diff --git a/doc/Changelog b/doc/Changelog index 74cef944e..58e7ba3b7 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +13 February 2018: Wouter + - tls-cert-bundle option in unbound.conf enables TLS authentication. + 12 February 2018: Wouter - Unit test for auth zone https url download. diff --git a/doc/example.conf.in b/doc/example.conf.in index 12a63ca8e..aa063683c 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -670,6 +670,9 @@ server: # Default is no. Can be turned on and off with unbound-control. # tls-upstream: no + # Certificates used to authenticate connections made upstream. + # tls-cert-bundle: "" + # DNS64 prefix. Must be specified when DNS64 is use. # Enable dns64 in module-config. Used to synthesize IPv6 from IPv4. # dns64-prefix: 64:ff9b::0/96 diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 5c74312ff..8a1b1af21 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -435,6 +435,15 @@ interfaces configured with that port number as @number get the SSL service. .B ssl\-port: \fI Alternate syntax for \fBtls\-port\fR. .TP +.B tls\-cert\-bundle: \fI +If null or "", no file is used. Set it to the certificate bundle file, +for example "/etc/pki/tls/certs/ca\-bundle.crt". These certificates are used +for authenticating connections made to outside peers. For example auth\-zone +urls, and also DNS over TLS connections. +.TP +.B ssl\-cert\-bundle: \fI +Alternate syntax for \fBtls\-cert\-bundle\fR. +.TP .B use\-systemd: \fI Enable or disable systemd socket activation. Default is no. @@ -1471,6 +1480,8 @@ the SOA refresh timer is used to wait for making new downloads. If also masters are listed, the masters are first probed with UDP SOA queries to see if the SOA serial number has changed, reducing the number of downloads. If none of the urls work, the masters are tried with IXFR and AXFR. +For https, the \fBtls\-cert\-bundle\fR and the hostname from the url are used +to authenticate the connection. .TP .B fallback\-enabled: \fI Default no. If enabled, unbound falls back to querying the internet as diff --git a/libunbound/libworker.c b/libunbound/libworker.c index b7b233677..2c7b2cf07 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -159,7 +159,8 @@ libworker_setup(struct ub_ctx* ctx, int is_bg, struct ub_event_base* eb) w->env->hints = NULL; } if(cfg->ssl_upstream) { - w->sslctx = connect_sslctx_create(NULL, NULL, NULL); + w->sslctx = connect_sslctx_create(NULL, NULL, + cfg->tls_cert_bundle); if(!w->sslctx) { /* to make the setup fail after unlock */ hints_delete(w->env->hints); diff --git a/services/outside_network.c b/services/outside_network.c index ee205ade8..cbc0a5adb 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -2316,6 +2316,26 @@ outnet_comm_point_for_http(struct outside_network* outnet, comm_point_tcp_win_bio_cb(c, c->ssl); #endif cp->ssl_shake_state = comm_ssl_shake_write; + /* https verification */ +#ifdef HAVE_SSL_SET1_HOST + if((SSL_CTX_get_verify_mode(outnet->sslctx)&SSL_VERIFY_PEER)) { + /* because we set SSL_VERIFY_PEER, in netevent in + * ssl_handshake, it'll check if the certificate + * verification has succeeded */ + /* SSL_VERIFY_PEER is set on the sslctx */ + /* and the certificates to verify with are loaded into + * it with SSL_load_verify_locations or + * SSL_CTX_set_default_verify_paths */ + /* setting the hostname makes openssl verify the + * host name in the x509 certificate in the + * SSL connection*/ + if(!SSL_set1_host(cp->ssl, host)) { + log_err("SSL_set1_host failed"); + comm_point_delete(cp); + return NULL; + } + } +#endif /* HAVE_SSL_SET1_HOST */ } /* set timeout on TCP connection */ diff --git a/util/config_file.c b/util/config_file.c index d7b93b440..0784f0559 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -108,6 +108,7 @@ config_create(void) cfg->ssl_service_pem = NULL; cfg->ssl_port = 853; cfg->ssl_upstream = 0; + cfg->tls_cert_bundle = NULL; cfg->use_syslog = 1; cfg->log_identity = NULL; /* changed later with argv[0] */ cfg->log_time_ascii = 0; @@ -444,6 +445,7 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_STR("ssl-service-key:", ssl_service_key) else S_STR("ssl-service-pem:", ssl_service_pem) else S_NUMBER_NONZERO("ssl-port:", ssl_port) + else S_STR("tls-cert-bundle:", tls_cert_bundle) else S_YNO("interface-automatic:", if_automatic) else S_YNO("use-systemd:", use_systemd) else S_YNO("do-daemonize:", do_daemonize) @@ -853,6 +855,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_STR(opt, "ssl-service-key", ssl_service_key) else O_STR(opt, "ssl-service-pem", ssl_service_pem) else O_DEC(opt, "ssl-port", ssl_port) + else O_STR(opt, "tls-cert-bundle", tls_cert_bundle) else O_YNO(opt, "use-systemd", use_systemd) else O_YNO(opt, "do-daemonize", do_daemonize) else O_STR(opt, "chroot", chrootdir) @@ -1270,6 +1273,7 @@ config_delete(struct config_file* cfg) free(cfg->target_fetch_policy); free(cfg->ssl_service_key); free(cfg->ssl_service_pem); + free(cfg->tls_cert_bundle); free(cfg->log_identity); config_del_strarray(cfg->ifs, cfg->num_ifs); config_del_strarray(cfg->out_ifs, cfg->num_out_ifs); diff --git a/util/config_file.h b/util/config_file.h index 505529b65..2e1c53ee0 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -100,6 +100,8 @@ struct config_file { int ssl_port; /** if outgoing tcp connections use SSL */ int ssl_upstream; + /** cert bundle for outgoing connections */ + char* tls_cert_bundle; /** outgoing port range number of ports (per thread) */ int outgoing_num_ports; diff --git a/util/configlexer.c b/util/configlexer.c index 8cc36b47d..379a4fae0 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -172,7 +172,7 @@ extern FILE *yyin, *yyout; do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ @@ -223,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. */ @@ -363,8 +363,8 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 252 -#define YY_END_OF_BUFFER 253 +#define YY_NUM_RULES 254 +#define YY_END_OF_BUFFER 255 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -372,281 +372,284 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[2484] = +static yyconst flex_int16_t yy_accept[2508] = { 0, - 1, 1, 234, 234, 238, 238, 242, 242, 246, 246, - 1, 1, 253, 250, 1, 232, 232, 251, 2, 251, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 234, 235, 235, 236, 251, 238, 239, 239, - 240, 251, 245, 242, 243, 243, 244, 251, 246, 247, - 247, 248, 251, 249, 233, 2, 237, 251, 249, 250, - 0, 1, 2, 2, 2, 2, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 234, 0, - 238, 0, 245, 0, 242, 246, 0, 249, 0, 2, - 2, 249, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 249, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 97, 250, 250, 250, 250, 250, 250, 250, - 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 81, 250, 250, 250, 250, 250, - - 250, 8, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 101, 250, 249, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 41, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 184, 250, 14, 15, 250, 18, 17, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 96, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 170, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 3, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 249, 250, 250, - 250, 250, 250, 229, 250, 250, 228, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 241, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 44, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 45, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 159, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 20, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 116, 250, 250, 241, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 211, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 134, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 115, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 79, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 28, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 29, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 42, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 95, 250, 250, 250, - 94, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 43, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 135, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 32, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 199, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 36, 250, 37, 250, - 250, 250, 82, 250, 83, 250, 250, 250, 80, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 7, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 177, 250, 250, 250, 250, - 118, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 33, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 151, 250, 150, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 16, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 46, 250, 250, 250, 250, 250, 250, - 250, 158, 250, 250, 250, 250, 85, 84, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 145, 250, 250, 250, 250, 250, 250, 250, 250, 102, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 64, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 68, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 40, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 148, 149, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 6, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 209, 250, 250, 230, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 30, - 250, 250, 250, 250, 250, 250, 250, 250, 141, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 163, 250, 142, 250, 250, 175, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 31, 250, 250, 250, 250, 250, 250, 99, - - 89, 250, 90, 250, 250, 88, 250, 250, 250, 250, - 250, 250, 250, 250, 113, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 198, 250, 250, 250, - 250, 250, 250, 250, 250, 143, 250, 250, 250, 250, - 250, 146, 250, 250, 174, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 78, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 38, 250, 250, - 22, 250, 250, 250, 250, 250, 19, 250, 250, 23, - 250, 123, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 53, 55, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 213, 250, 250, 250, 185, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 91, 250, 250, 250, 250, 250, 250, 250, - 250, 112, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 224, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 117, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 169, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 133, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 128, 250, - 136, 250, 250, 250, 250, 250, 105, 250, 250, 250, - 74, 250, 250, 250, 250, 161, 250, 250, 250, 250, - 250, 176, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 190, 250, 250, 250, 250, 250, - 250, 98, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 132, 250, 250, 250, 250, 250, 56, 57, 250, - 250, 250, 250, 250, 39, 250, 250, 250, 250, 250, - - 63, 137, 250, 152, 250, 178, 147, 250, 250, 250, - 49, 250, 139, 250, 250, 250, 250, 250, 9, 250, - 250, 250, 77, 250, 250, 250, 250, 203, 250, 160, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 131, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 119, 212, 250, 250, 250, 250, 189, - 250, 250, 250, 250, 250, 250, 250, 250, 171, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 227, 250, 138, 250, 250, 250, - 48, 50, 250, 250, 250, 250, 250, 250, 250, 76, - 250, 250, 250, 250, 201, 250, 208, 250, 250, 250, - 250, 250, 165, 24, 26, 250, 250, 250, 250, 250, - 25, 27, 250, 250, 250, 250, 250, 250, 73, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 167, 164, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 47, - 250, 100, 250, 250, 250, 250, 250, 250, 250, 250, - - 114, 13, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 222, 250, 225, 250, 250, 250, 250, 250, 250, - 12, 250, 250, 21, 250, 250, 250, 207, 250, 210, - 51, 250, 173, 250, 166, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 127, 126, 250, 250, 250, 250, 250, 250, 250, 168, - 162, 250, 250, 250, 214, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 58, 250, 250, - 250, 202, 250, 250, 250, 250, 250, 172, 250, 250, - - 250, 250, 250, 250, 250, 250, 52, 250, 250, 250, - 86, 87, 250, 120, 250, 122, 250, 153, 250, 250, - 250, 125, 250, 250, 179, 250, 250, 250, 250, 250, - 107, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 186, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 154, 250, 250, - 200, 250, 226, 250, 250, 250, 34, 250, 250, 250, - 250, 4, 250, 250, 106, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 182, 250, 250, 250, - 250, 250, 250, 250, 215, 250, 250, 250, 250, 250, - - 250, 188, 250, 250, 157, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 61, 250, 35, 206, 250, 183, - 250, 250, 11, 250, 250, 250, 250, 250, 250, 155, - 65, 250, 250, 250, 250, 250, 130, 250, 250, 250, - 250, 250, 109, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 187, 103, 250, 92, 93, 250, 250, 250, - 67, 71, 66, 250, 59, 250, 250, 250, 10, 250, - 250, 250, 204, 250, 250, 250, 250, 129, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 72, 70, 250, 60, 223, - - 250, 250, 250, 144, 250, 250, 156, 250, 250, 250, - 250, 250, 250, 121, 54, 250, 250, 250, 250, 250, - 216, 250, 250, 250, 250, 250, 250, 250, 104, 69, - 110, 111, 62, 250, 205, 124, 250, 250, 250, 250, - 181, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 75, 250, 180, 250, 197, 220, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 5, 250, 250, - 250, 221, 250, 250, 250, 250, 250, 250, 250, 250, - - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 108, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 140, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 217, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 231, 250, 250, 193, 250, 250, 250, 250, 250, - 218, 250, 250, 250, 250, 250, 250, 219, 250, 250, - 250, 191, 250, 194, 195, 250, 250, 250, 250, 250, - 192, 196, 0 + 1, 1, 236, 236, 240, 240, 244, 244, 248, 248, + 1, 1, 255, 252, 1, 234, 234, 253, 2, 253, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 236, 237, 237, 238, 253, 240, 241, 241, + 242, 253, 247, 244, 245, 245, 246, 253, 248, 249, + 249, 250, 253, 251, 235, 2, 239, 253, 251, 252, + 0, 1, 2, 2, 2, 2, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 236, 0, + 240, 0, 247, 0, 244, 248, 0, 251, 0, 2, + 2, 251, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 251, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 99, 252, 252, 252, 252, 252, 252, 252, + 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 83, 252, 252, 252, 252, 252, + + 252, 8, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 103, + 252, 251, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 251, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 43, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 186, 252, 14, 15, + 252, 18, 17, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 98, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 172, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 3, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 251, 252, 252, 252, 252, 252, 231, + 252, 252, 230, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 243, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 46, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 47, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 161, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 20, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 118, 252, 252, 243, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 213, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 136, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 117, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 81, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 28, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 29, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 44, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 97, 252, 252, 252, + 96, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 45, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 137, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 34, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 201, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 38, 252, 39, 252, + 252, 252, 252, 84, 252, 85, 252, 252, 252, 82, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 7, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 179, 252, 252, + 252, 252, 120, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 35, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 153, 252, 152, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 16, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 48, 252, 252, 252, 252, + 252, 252, 252, 160, 252, 252, 252, 252, 252, 87, + + 86, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 147, 252, 252, 252, 252, 252, + 252, 252, 252, 104, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 66, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 70, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 42, 252, 252, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 252, 150, 151, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 6, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 211, 252, + 252, 232, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 32, 252, 252, 252, 252, + 252, 252, 252, 252, 143, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 165, 252, 144, 252, + 252, 177, 252, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 252, 252, 33, 252, + 252, 252, 252, 252, 252, 101, 91, 252, 92, 252, + 252, 90, 252, 252, 252, 252, 252, 252, 252, 252, + 115, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 200, 252, 252, 252, 252, 252, 252, 252, + 252, 145, 252, 252, 252, 252, 252, 148, 252, 252, + 176, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 80, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 40, 252, 252, 252, 22, 252, 252, + + 252, 252, 252, 19, 252, 252, 252, 23, 252, 125, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 55, 57, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 215, 252, 252, 252, 187, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 93, 252, 252, 252, 252, 252, 252, 252, 252, 114, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 226, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 119, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 171, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 135, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 130, 252, + 138, 252, 252, 252, 252, 252, 107, 252, 252, 252, + 76, 252, 252, 252, 252, 163, 252, 252, 252, 252, + 252, 178, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 192, 252, 252, 252, 252, 252, + 252, 100, 252, 252, 252, 252, 252, 252, 252, 252, + + 252, 134, 252, 252, 252, 252, 252, 58, 59, 252, + 252, 252, 252, 252, 41, 252, 252, 252, 252, 252, + 65, 139, 252, 154, 252, 180, 149, 252, 252, 252, + 51, 252, 141, 252, 252, 252, 252, 252, 9, 252, + 252, 252, 79, 252, 252, 252, 252, 205, 252, 162, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 133, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 121, 214, 252, 252, 252, + + 252, 191, 252, 252, 252, 252, 252, 252, 252, 252, + 173, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 229, 252, 140, 252, + 252, 252, 50, 52, 252, 252, 252, 252, 252, 252, + 252, 78, 252, 252, 252, 252, 203, 252, 210, 252, + 252, 252, 252, 252, 167, 30, 24, 26, 252, 252, + 252, 252, 252, 31, 25, 27, 252, 252, 252, 252, + 252, 252, 75, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 169, 166, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 49, 252, 102, 252, 252, 252, 252, + 252, 252, 252, 252, 116, 13, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 224, 252, 227, 252, 252, + 252, 252, 252, 252, 12, 252, 252, 21, 252, 252, + 252, 209, 252, 212, 53, 252, 175, 252, 168, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 129, 128, 252, 252, 252, 252, + 252, 252, 252, 170, 164, 252, 252, 252, 216, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 60, 252, 252, 252, 204, 252, 252, 252, 252, + 252, 174, 252, 252, 252, 252, 252, 252, 252, 252, + 54, 252, 252, 252, 88, 89, 252, 122, 252, 124, + 252, 155, 252, 252, 252, 127, 252, 252, 181, 252, + 252, 252, 252, 252, 109, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 188, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 156, 252, 252, 202, 252, 228, 252, 252, 252, + 36, 252, 252, 252, 252, 4, 252, 252, 108, 252, + + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 184, 252, 252, 252, 252, 252, 252, 252, 217, 252, + 252, 252, 252, 252, 252, 190, 252, 252, 159, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 63, 252, + 37, 208, 252, 185, 252, 252, 11, 252, 252, 252, + 252, 252, 252, 157, 67, 252, 252, 252, 252, 252, + 132, 252, 252, 252, 252, 252, 111, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 189, 105, 252, 94, + 95, 252, 252, 252, 69, 73, 68, 252, 61, 252, + 252, 252, 10, 252, 252, 252, 206, 252, 252, 252, + + 252, 131, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 74, + 72, 252, 62, 225, 252, 252, 252, 146, 252, 252, + 158, 252, 252, 252, 252, 252, 252, 123, 56, 252, + 252, 252, 252, 252, 218, 252, 252, 252, 252, 252, + 252, 252, 106, 71, 112, 113, 64, 252, 207, 126, + 252, 252, 252, 252, 183, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 77, 252, 182, 252, + + 199, 222, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 5, 252, 252, 252, 223, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 110, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 142, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 219, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 233, 252, 252, 195, 252, + 252, 252, 252, 252, 220, 252, 252, 252, 252, 252, + 252, 221, 252, 252, 252, 193, 252, 196, 197, 252, + + 252, 252, 252, 252, 194, 198, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -689,15 +692,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[2498] = +static yyconst flex_uint16_t yy_base[2522] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 2341, 2293, 81, 4860, 4860, 4860, 96, 52, + 90, 112, 2131, 1980, 81, 4909, 4909, 4909, 96, 52, 106, 63, 107, 111, 70, 117, 128, 131, 57, 88, 76, 133, 139, 130, 141, 143, 153, 162, 172, 174, - 186, 149, 1901, 4860, 4860, 4860, 107, 1841, 4860, 4860, - 4860, 186, 1423, 1387, 4860, 4860, 4860, 206, 1107, 4860, - 4860, 4860, 210, 1064, 4860, 214, 4860, 218, 155, 708, + 186, 149, 1905, 4909, 4909, 4909, 107, 1596, 4909, 4909, + 4909, 186, 1551, 1440, 4909, 4909, 4909, 206, 1071, 4909, + 4909, 4909, 210, 855, 4909, 214, 4909, 218, 155, 741, 222, 173, 0, 229, 0, 0, 180, 185, 85, 198, 223, 224, 216, 230, 231, 232, 233, 114, 235, 242, 243, 241, 237, 246, 247, 256, 253, 259, 263, 268, @@ -725,529 +728,535 @@ static yyconst flex_uint16_t yy_base[2498] = 680, 684, 672, 685, 677, 688, 691, 693, 694, 696, 699, 701, 702, 703, 712, 705, 709, 716, 715, 719, - 723, 707, 717, 731, 735, 727, 734, 737, 739, 741, - 742, 746, 4860, 745, 749, 765, 751, 743, 775, 744, - 761, 754, 770, 771, 772, 776, 778, 789, 786, 787, - 788, 791, 794, 795, 803, 800, 801, 802, 811, 804, - 812, 814, 824, 815, 817, 818, 823, 825, 826, 832, - 838, 831, 840, 841, 843, 844, 845, 842, 848, 849, - 861, 850, 862, 863, 860, 869, 872, 870, 874, 875, - 876, 884, 881, 880, 882, 886, 890, 891, 892, 893, - 898, 900, 894, 906, 4860, 910, 896, 908, 903, 913, - - 914, 4860, 918, 919, 920, 927, 922, 923, 929, 924, - 941, 925, 937, 948, 930, 946, 947, 949, 950, 952, - 953, 955, 956, 976, 959, 961, 957, 963, 960, 972, - 989, 974, 997, 981, 985, 962, 998, 991, 993, 1003, - 1004, 1007, 1008, 1010, 1009, 1011, 1014, 4860, 1012, 964, - 1022, 1015, 1017, 1024, 1025, 1030, 1031, 1033, 1032, 1038, - 1047, 1042, 1051, 1046, 1049, 1048, 1050, 1053, 1057, 1059, - 1066, 1061, 1068, 1070, 1077, 1079, 1081, 1088, 1062, 1084, - 1072, 1085, 1087, 1086, 1092, 1094, 1101, 1096, 1097, 1099, - 1102, 1112, 1103, 1105, 1113, 1110, 1117, 1114, 1124, 1126, - - 1120, 1123, 1133, 1130, 1137, 1141, 1142, 1143, 1135, 1136, - 1150, 1153, 1154, 1144, 1146, 1162, 1159, 1161, 1166, 1168, - 1157, 1170, 1177, 1174, 1178, 1180, 1176, 1188, 1185, 1186, - 1195, 1190, 1191, 1193, 1203, 1192, 1201, 1208, 1212, 1194, - 1214, 1205, 1215, 1210, 1218, 1220, 1221, 1222, 1223, 1225, - 1227, 1229, 1230, 1231, 1243, 1233, 1234, 1238, 1244, 1235, - 1249, 1247, 1255, 1257, 1258, 1259, 1260, 1264, 1265, 1261, - 1269, 1273, 1280, 1270, 1282, 1281, 1283, 1284, 1286, 1287, - 1291, 1267, 1295, 1296, 1299, 1301, 1302, 1306, 1307, 4860, - 1308, 1315, 1312, 1313, 1314, 1318, 1325, 1321, 1322, 1323, - - 1324, 1330, 4860, 1328, 4860, 4860, 1333, 4860, 4860, 1337, - 1341, 1334, 1353, 1355, 1351, 1331, 1357, 1364, 1378, 1360, - 1363, 1368, 1366, 1367, 1372, 1369, 1373, 1383, 1387, 1389, - 1392, 1399, 1359, 1381, 1400, 1401, 1402, 1406, 1403, 1407, - 1409, 1412, 1410, 1415, 1413, 1417, 4860, 1429, 1420, 1436, - 1432, 1431, 1433, 1438, 1421, 1440, 1442, 1443, 1448, 1444, - 1450, 1457, 1452, 4860, 1454, 1455, 1456, 1460, 1461, 1466, - 1468, 1469, 1470, 1472, 1473, 4860, 1478, 1482, 1474, 1485, - 1477, 1486, 1487, 1491, 1492, 1489, 1494, 1497, 1499, 1502, - 1500, 1503, 1504, 1521, 1505, 1507, 1513, 1518, 1515, 1528, - - 1523, 1530, 1532, 1526, 1534, 1537, 1531, 1539, 1547, 1548, - 1544, 1550, 1555, 1533, 1557, 1558, 1559, 1561, 1565, 1566, - 1567, 1568, 1569, 4860, 1571, 1572, 4860, 1574, 1575, 1597, - 1577, 1579, 1584, 1582, 1581, 1590, 1587, 1598, 1610, 1601, - 1616, 1611, 1614, 1617, 1621, 1603, 1623, 1625, 1633, 1639, - 1641, 1634, 1630, 1632, 1651, 1642, 1640, 1644, 1643, 1646, - 1648, 1656, 1660, 1661, 1662, 1666, 1663, 4860, 1675, 1673, - 1668, 1672, 1684, 1683, 1679, 1682, 1686, 1689, 1696, 1692, - 1693, 1694, 1697, 1700, 1702, 1704, 1706, 1709, 4860, 1707, - 1708, 1710, 1711, 1718, 1719, 1720, 1729, 1730, 1739, 1732, - - 4860, 1734, 1741, 1742, 1744, 1737, 1716, 1748, 1755, 1752, - 1753, 1754, 1757, 1759, 1758, 1760, 1761, 1767, 4860, 1770, - 1768, 1771, 1781, 1769, 1773, 1782, 1783, 1786, 1787, 1789, - 1794, 1796, 1792, 1793, 4860, 1795, 1800, 1803, 1804, 1806, - 1808, 1810, 1811, 1820, 1821, 1816, 1824, 1818, 1825, 1826, - 1827, 1834, 1832, 1833, 1835, 1836, 4860, 1837, 1846, 124, - 1838, 1843, 1848, 1860, 1847, 1855, 1857, 1863, 1591, 1864, - 1862, 1865, 1866, 1870, 1872, 1873, 1874, 1875, 1878, 1881, - 1882, 1884, 1883, 1888, 4860, 1886, 1892, 1898, 1896, 1906, - 1899, 1911, 1908, 1912, 1914, 1915, 4860, 1922, 1918, 1916, - - 1924, 1926, 1928, 1925, 1927, 1932, 1933, 1935, 1938, 1939, - 1941, 1943, 1945, 1949, 1947, 1952, 1954, 4860, 1959, 1955, - 1957, 1956, 1966, 1968, 1979, 1970, 1960, 1975, 1981, 1990, - 1983, 1977, 1991, 1992, 1997, 2001, 2000, 2006, 2007, 1984, - 2012, 2014, 2015, 2016, 2023, 2024, 2020, 2022, 2027, 2030, - 2035, 2028, 4860, 2038, 2037, 2032, 2040, 2054, 2044, 2046, - 2051, 2056, 2057, 2060, 2059, 2063, 2061, 2062, 2069, 2067, - 2068, 2076, 4860, 2077, 2081, 2078, 2085, 2082, 2089, 2090, - 2091, 2092, 2094, 2096, 2098, 4860, 2101, 2100, 2099, 2106, - 2109, 2117, 2108, 2115, 1987, 2110, 4860, 2125, 2128, 2124, - - 2133, 2130, 2131, 2132, 2135, 2120, 4860, 2136, 2137, 2144, - 4860, 2147, 2145, 2142, 2146, 2149, 2148, 2151, 2153, 2154, - 2157, 2164, 2168, 2155, 2171, 4860, 2161, 2183, 2172, 2184, - 2174, 2170, 2186, 2189, 2191, 2195, 2196, 2198, 2199, 2187, - 2200, 2203, 2207, 2205, 2208, 4860, 2211, 2213, 2214, 2216, - 2217, 2218, 2222, 2219, 2227, 2224, 2229, 2230, 2240, 2236, - 2242, 2232, 2246, 2251, 2233, 2253, 2254, 2256, 2263, 2264, - 2265, 2267, 4860, 2270, 2272, 2262, 2260, 2273, 2274, 2277, - 2279, 2281, 2282, 2283, 2285, 2286, 2297, 2304, 2292, 2294, - 2295, 2300, 2308, 2306, 2307, 2309, 2316, 2311, 2317, 2318, - - 2320, 2321, 2322, 2323, 2324, 2328, 2329, 2334, 2340, 2342, - 2344, 2347, 2348, 2349, 4860, 2350, 2353, 2359, 2360, 2362, - 2363, 2352, 2364, 2354, 2377, 2376, 4860, 2373, 4860, 2378, - 2379, 2387, 4860, 2385, 4860, 2389, 2386, 2390, 4860, 2392, - 2393, 2396, 2397, 2399, 2400, 2403, 2405, 2407, 2408, 2410, - 2411, 2413, 2416, 2418, 2420, 2422, 2424, 2427, 4860, 2429, - 2421, 2430, 2434, 2435, 2437, 2438, 2441, 2445, 2446, 2447, - 2450, 2455, 2459, 2449, 2462, 4860, 2457, 2464, 2465, 2466, - 4860, 2468, 2473, 2475, 2477, 2470, 2478, 2479, 2480, 2483, - 2485, 2494, 2496, 2498, 2499, 2501, 2486, 2504, 2515, 2513, - - 2516, 2518, 2489, 2510, 2519, 2520, 2527, 2530, 2526, 2535, - 2522, 2532, 2534, 2536, 2525, 2539, 2542, 2544, 2546, 2549, - 2550, 2553, 2548, 2551, 2552, 2554, 4860, 2556, 2557, 2564, - 2572, 2565, 2567, 2570, 2574, 2576, 2578, 2579, 2587, 2582, - 4860, 2588, 4860, 2584, 2590, 2601, 2602, 2591, 2606, 2597, - 2595, 2607, 2612, 2614, 2622, 2618, 2615, 2619, 2620, 2625, - 2627, 2628, 4860, 2629, 2630, 2633, 2631, 2636, 2637, 2649, - 2644, 2641, 2652, 4860, 2661, 2657, 2663, 2666, 2665, 2673, - 2668, 4860, 2658, 2677, 2669, 2676, 4860, 4860, 2672, 2680, - 2681, 2683, 2690, 2687, 2686, 2688, 2692, 2701, 2693, 2694, - - 4860, 2698, 2702, 2706, 2703, 2711, 2713, 2714, 2715, 4860, - 2717, 2720, 2721, 2725, 2724, 2729, 2730, 2726, 2727, 2734, - 2736, 2733, 2737, 2750, 2752, 2754, 4860, 2756, 2735, 2758, - 2759, 2760, 2763, 2764, 2746, 2765, 2767, 2769, 2770, 2775, - 2773, 2772, 2780, 2776, 2778, 2782, 2792, 2790, 2791, 2794, - 2795, 2798, 2801, 2804, 2805, 2807, 2808, 2809, 2813, 2815, - 2822, 2817, 4860, 2824, 2821, 2832, 2823, 2828, 2834, 2835, - 2843, 2838, 2827, 2840, 2855, 2841, 4860, 2859, 2842, 2844, - 2854, 2862, 2869, 2864, 2866, 2867, 2871, 2868, 2874, 2872, - 2876, 2878, 2881, 4860, 4860, 2882, 2883, 2885, 2887, 2889, - - 2890, 2893, 2900, 2895, 2897, 4860, 2903, 2911, 2906, 2907, - 2915, 2916, 2918, 2920, 2922, 2912, 2923, 2924, 2927, 2928, - 2929, 2933, 2935, 2937, 4860, 2939, 2938, 4860, 2940, 2943, - 2945, 2952, 2949, 2954, 2963, 2956, 2960, 2944, 2966, 2973, - 2969, 2971, 2976, 2984, 2985, 2994, 2972, 2980, 2995, 4860, - 2981, 2996, 2990, 2991, 3003, 2999, 3007, 3005, 4860, 3004, - 3008, 3012, 3015, 3019, 3006, 3028, 3023, 3020, 3024, 3027, - 4860, 3032, 4860, 3031, 3033, 4860, 3035, 3038, 3039, 3041, - 3042, 3043, 3049, 3053, 3046, 3055, 3056, 3057, 3058, 3060, - 3067, 3059, 4860, 3068, 3063, 3070, 3075, 3071, 3072, 4860, - - 4860, 3078, 4860, 3082, 3086, 4860, 3088, 3087, 3095, 3090, - 3091, 3094, 3100, 3097, 4860, 3104, 3093, 3108, 3106, 3110, - 3112, 3114, 3116, 3117, 3118, 3119, 4860, 3120, 3122, 3130, - 3121, 3127, 3132, 3136, 3137, 4860, 3144, 3146, 3142, 3145, - 3151, 4860, 3152, 3153, 4860, 3154, 3163, 3156, 3159, 3165, - 3166, 3169, 3170, 3172, 3179, 3175, 3176, 3177, 4860, 3178, - 3181, 3184, 3186, 3190, 3191, 3199, 3196, 3198, 3194, 3202, - 3207, 3204, 3210, 3209, 3215, 3217, 3219, 4860, 3218, 3220, - 4860, 3221, 3222, 3227, 3228, 3224, 4860, 3232, 3233, 4860, - 3229, 4860, 3241, 3236, 3239, 3243, 3244, 3250, 3251, 3256, - - 3252, 3257, 3258, 3262, 3270, 3273, 3266, 3265, 4860, 4860, - 3278, 3279, 3272, 3283, 3286, 3284, 3288, 3295, 3292, 3291, - 3293, 3307, 4860, 3299, 3300, 3304, 4860, 3302, 3309, 3310, - 3311, 3312, 3313, 3316, 3319, 3321, 3315, 3323, 3322, 3324, - 3329, 3336, 4860, 3337, 3338, 3339, 3340, 3341, 3342, 3346, - 3344, 4860, 3351, 3350, 3352, 3354, 3345, 3361, 3368, 3371, - 3373, 3375, 3376, 3377, 3379, 3381, 3382, 4860, 3392, 3383, - 3384, 3386, 3394, 3396, 3399, 3401, 3402, 3406, 3408, 3409, - 3410, 4860, 3411, 3413, 3414, 3422, 3417, 3347, 3424, 3425, - 3431, 3415, 3428, 3419, 3437, 4860, 3432, 3439, 3440, 3442, - - 3445, 3447, 3449, 3450, 3451, 3453, 3456, 3454, 3459, 4860, - 3460, 3464, 3465, 3467, 3468, 3471, 3473, 3477, 3481, 3474, - 3475, 3483, 3484, 3485, 3486, 3487, 3497, 3498, 4860, 3500, - 4860, 3503, 3504, 3513, 3508, 3506, 4860, 3511, 3514, 3515, - 4860, 3518, 3516, 3519, 3521, 4860, 3522, 3531, 3523, 3527, - 3538, 4860, 3541, 3542, 3544, 3552, 3553, 3551, 3548, 3554, - 3556, 3557, 3558, 3559, 4860, 3561, 3563, 3570, 3567, 3564, - 3574, 4860, 3573, 3575, 3576, 3579, 3580, 3581, 3588, 3585, - 3587, 4860, 3592, 3589, 3602, 3598, 3597, 4860, 4860, 3601, - 3603, 3607, 3609, 3611, 4860, 3613, 3620, 3616, 3619, 3621, - - 4860, 4860, 3623, 4860, 3624, 4860, 4860, 3626, 3627, 3634, - 4860, 3637, 4860, 3644, 3639, 3625, 3629, 3643, 4860, 3645, - 3646, 3650, 4860, 3647, 3659, 3652, 3654, 4860, 3661, 4860, - 3662, 3666, 3667, 3655, 3668, 3671, 3673, 3675, 3677, 3680, - 3681, 3683, 3686, 3688, 3684, 3691, 3695, 3692, 3698, 3697, - 3699, 3702, 3700, 3711, 3703, 3706, 3708, 3713, 3714, 3715, - 3716, 3718, 4860, 3721, 3722, 3723, 3730, 3731, 3735, 3736, - 3725, 3743, 3747, 4860, 4860, 3749, 3734, 3751, 3737, 4860, - 3753, 3754, 3755, 3758, 3757, 3759, 3763, 3760, 4860, 3765, - 3767, 3769, 3770, 3771, 3775, 3780, 3774, 3783, 3784, 3785, - - 3787, 3791, 3799, 3794, 3796, 3797, 3798, 3802, 3805, 3808, - 3807, 3815, 3817, 3821, 4860, 3810, 4860, 3818, 3806, 3823, - 4860, 4860, 3824, 3828, 3833, 3830, 3834, 3836, 3837, 4860, - 3838, 3839, 3847, 3848, 4860, 3850, 4860, 3855, 3840, 3857, - 3858, 3865, 4860, 4860, 4860, 3866, 3851, 3862, 3868, 3860, - 4860, 4860, 3871, 3870, 3872, 3874, 3878, 3879, 4860, 3880, - 3883, 3885, 3886, 3892, 3894, 3889, 3898, 3905, 3902, 3908, - 3900, 3906, 3913, 3917, 4860, 4860, 3910, 3918, 3920, 3922, - 3924, 3931, 3926, 3928, 3932, 3934, 3935, 3937, 3936, 4860, - 3944, 4860, 3940, 3946, 3938, 3939, 3950, 3953, 3954, 3957, - - 4860, 4860, 3958, 3960, 3963, 3965, 3967, 3961, 3968, 3972, - 3969, 4860, 3974, 4860, 3973, 3975, 3984, 3991, 3987, 3976, - 4860, 3985, 3992, 4860, 3996, 3997, 3998, 4860, 4001, 4860, - 4860, 4004, 4860, 3999, 4860, 4006, 4007, 4010, 4015, 4017, - 4022, 4023, 4028, 4016, 4030, 4018, 4025, 4038, 4034, 4037, - 4860, 4860, 4046, 4012, 4042, 4049, 4044, 4047, 4053, 4860, - 4860, 4050, 4054, 4056, 4860, 4057, 4058, 4060, 4063, 4065, - 4064, 4066, 4071, 4067, 4073, 4072, 4074, 4087, 4089, 4092, - 4079, 4094, 4076, 4085, 4097, 4098, 4100, 4860, 4102, 4104, - 4103, 4860, 4109, 4105, 4114, 4110, 4116, 4860, 4117, 4123, - - 4124, 4127, 4119, 4132, 4129, 4130, 4860, 4138, 4140, 4133, - 4860, 4860, 4141, 4860, 4143, 4860, 4144, 4860, 4146, 4147, - 4150, 4860, 4152, 4160, 4860, 4154, 4158, 4156, 4162, 4163, - 4860, 4175, 4172, 4173, 4171, 4174, 4179, 4180, 4183, 4188, - 4184, 4187, 4860, 4189, 4190, 4194, 4191, 4197, 4195, 4198, - 4196, 4202, 4203, 4213, 4206, 4215, 4216, 4860, 4220, 4223, - 4860, 4217, 4860, 4225, 4226, 4228, 4860, 4230, 4227, 4231, - 4234, 4860, 4236, 4241, 4860, 4239, 4244, 4246, 4240, 4248, - 4250, 4251, 4252, 4257, 4259, 4264, 4860, 4258, 4260, 4273, - 4275, 4276, 4277, 4266, 4860, 4278, 4281, 4282, 4291, 4287, - - 4289, 4860, 4293, 4290, 4860, 4295, 4297, 4298, 4299, 4302, - 4311, 4315, 4317, 4318, 4860, 4320, 4860, 4860, 4306, 4860, - 4300, 4326, 4860, 4329, 4321, 4312, 4324, 4331, 4334, 4860, - 4860, 4336, 4343, 4338, 4341, 4342, 4860, 4344, 4345, 4348, - 4349, 4351, 4860, 4352, 4354, 4355, 4356, 4359, 4358, 4362, - 4363, 4366, 4860, 4860, 4367, 4860, 4860, 4369, 4382, 4385, - 4860, 4860, 4860, 4391, 4860, 4393, 4397, 4396, 4860, 4399, - 4370, 4372, 4860, 4402, 4403, 4404, 4405, 4860, 4406, 4407, - 4411, 4414, 4418, 4415, 4378, 4419, 4427, 4429, 4409, 4422, - 4425, 4433, 4435, 4432, 4442, 4860, 4860, 4444, 4860, 4860, - - 4448, 4450, 4453, 4860, 4436, 4455, 4860, 4457, 4458, 4459, - 4460, 4462, 4464, 4860, 4860, 4465, 4466, 4467, 4474, 4468, - 4860, 4476, 4478, 4470, 4480, 4481, 4487, 4482, 4860, 4860, - 4860, 4860, 4860, 4488, 4860, 4860, 4489, 4490, 4495, 4492, - 4860, 4496, 4497, 4499, 4501, 4502, 4509, 4507, 4511, 4513, - 4516, 4514, 4518, 4521, 4522, 4524, 4525, 4527, 4528, 4538, - 4543, 4535, 4540, 4544, 4545, 4546, 4548, 4549, 4558, 4553, - 4556, 4557, 4860, 4559, 4860, 4561, 4860, 4860, 4563, 4565, - 4569, 4568, 4578, 4581, 4570, 4580, 4571, 4860, 4582, 4583, - 4585, 4860, 4586, 4591, 4588, 4592, 4595, 4594, 4598, 4599, - - 4600, 4601, 4610, 4611, 4621, 4622, 4612, 4614, 4624, 4625, - 4632, 4628, 4631, 4860, 4634, 4627, 4635, 4636, 4637, 4645, - 4640, 4641, 4647, 4860, 4650, 4651, 4652, 4643, 4653, 4658, - 4664, 4661, 4667, 4860, 4668, 4669, 4673, 4674, 4676, 4678, - 4679, 4681, 4685, 4682, 4688, 4696, 4691, 4697, 4689, 4701, - 4693, 4860, 4703, 4699, 4860, 4705, 4709, 4707, 4711, 4715, - 4860, 4720, 4713, 4717, 4721, 4724, 4727, 4860, 4729, 4738, - 4733, 4860, 4739, 4860, 4860, 4741, 4731, 4735, 4743, 4748, - 4860, 4860, 4860, 4768, 4775, 4782, 4789, 4796, 88, 4803, - 4810, 4817, 4824, 4831, 4838, 4845, 4852 - + 723, 707, 729, 708, 733, 731, 734, 735, 737, 739, + 743, 749, 4909, 759, 752, 779, 746, 744, 770, 765, + 767, 768, 774, 773, 775, 776, 772, 803, 777, 784, + 785, 799, 806, 802, 815, 790, 808, 812, 819, 816, + 818, 822, 831, 823, 821, 824, 825, 740, 832, 838, + 844, 833, 830, 835, 847, 849, 850, 851, 860, 854, + 868, 852, 866, 870, 875, 865, 876, 878, 879, 881, + 882, 892, 889, 867, 890, 887, 897, 898, 899, 900, + 901, 903, 905, 906, 4909, 912, 910, 914, 915, 917, + + 918, 4909, 920, 919, 921, 929, 925, 927, 928, 933, + 949, 936, 780, 950, 945, 946, 947, 952, 953, 955, + 948, 961, 954, 958, 978, 962, 964, 965, 967, 974, + 971, 975, 996, 987, 985, 980, 992, 995, 1005, 999, + 1007, 1002, 1008, 1009, 1010, 1012, 1011, 1013, 1016, 4909, + 1023, 1025, 1024, 1026, 1033, 1034, 1035, 1036, 1037, 1039, + 1043, 1045, 1048, 1046, 1060, 1047, 1061, 1055, 1057, 1063, + 1056, 1065, 1074, 1067, 1077, 1079, 1088, 1084, 1086, 1093, + 1069, 1089, 1091, 1092, 1095, 1096, 1097, 1099, 1107, 1102, + 1104, 1108, 1105, 1115, 1112, 1114, 1118, 1111, 1123, 1120, + + 1127, 1131, 1133, 1134, 1141, 1137, 1139, 1140, 1143, 1145, + 1151, 1152, 1153, 1155, 1159, 1156, 1157, 1170, 1171, 1160, + 1173, 1174, 1162, 1161, 1184, 1181, 1188, 1187, 1189, 1197, + 1185, 1192, 1199, 1183, 1195, 1200, 1207, 1208, 1206, 1215, + 1212, 1210, 1217, 1221, 1222, 1216, 1223, 1225, 1226, 1227, + 1228, 1229, 1231, 1230, 1233, 1237, 1236, 1250, 1239, 1242, + 1253, 1254, 1255, 1256, 1259, 1262, 1257, 1263, 1264, 1265, + 1267, 1270, 1277, 1280, 1282, 1287, 1288, 1278, 1290, 1291, + 1294, 1295, 1298, 1301, 1299, 1303, 1305, 1309, 1311, 1313, + 1315, 1318, 1319, 4909, 1320, 1327, 1322, 1325, 1326, 1330, + + 1337, 1333, 1334, 1335, 1336, 1345, 4909, 1340, 4909, 4909, + 1344, 4909, 4909, 1349, 1347, 1359, 1365, 1368, 1268, 1362, + 1351, 1378, 1379, 1370, 1373, 1374, 1377, 1343, 1385, 1382, + 1387, 1390, 1395, 1399, 1400, 1401, 1407, 1408, 1393, 1410, + 1411, 1413, 1415, 1416, 1418, 1421, 1419, 1422, 1424, 1426, + 4909, 1436, 1444, 1445, 1427, 1440, 1442, 1443, 1447, 1448, + 1449, 1452, 1455, 1457, 1459, 1464, 1460, 4909, 1461, 1463, + 1473, 1469, 1468, 1477, 1475, 1462, 1480, 1483, 1484, 4909, + 1486, 1492, 1485, 1493, 1494, 1496, 1497, 1499, 1500, 1501, + 1504, 1505, 1503, 1502, 1512, 1509, 1513, 1519, 1530, 1514, + + 1518, 1526, 1531, 1532, 1533, 1541, 1536, 1543, 1540, 1539, + 1542, 1545, 1548, 1559, 1555, 1561, 1557, 1563, 1571, 1566, + 1568, 1570, 1572, 1574, 1578, 1579, 1580, 1582, 1581, 4909, + 1584, 1585, 4909, 1589, 1590, 1612, 1591, 1594, 1595, 1597, + 1601, 1603, 1614, 1606, 1630, 1613, 1631, 1625, 1632, 1634, + 1636, 1638, 1641, 1642, 1649, 1645, 1651, 1658, 1607, 1653, + 1672, 1604, 1656, 1654, 1657, 1662, 1660, 1666, 1667, 1664, + 1670, 1676, 1682, 4909, 1685, 1684, 1677, 1688, 1699, 1690, + 1694, 1697, 1700, 1702, 1710, 1703, 1705, 1711, 1707, 1708, + 1714, 1717, 1719, 1721, 4909, 1723, 1720, 1725, 1729, 1730, + + 1731, 1733, 1732, 1745, 1748, 1740, 4909, 1747, 1755, 1756, + 1758, 1750, 1751, 1752, 1765, 1762, 1766, 1768, 1770, 1772, + 1774, 1773, 1776, 1779, 4909, 1780, 1783, 1787, 1794, 1785, + 1792, 1795, 1797, 1796, 1798, 1802, 1803, 1810, 1811, 1807, + 1815, 4909, 1806, 1825, 1809, 1818, 1821, 1823, 1829, 1828, + 1830, 1837, 1838, 1833, 1836, 1835, 1843, 1844, 1845, 1851, + 1849, 1850, 1852, 1853, 4909, 1854, 1856, 124, 1860, 1861, + 1863, 1865, 1866, 1875, 1883, 1879, 1870, 1880, 1881, 1882, + 1887, 1888, 1889, 1890, 1891, 1893, 1899, 1900, 1901, 1904, + 1902, 1911, 4909, 1917, 1915, 1921, 1909, 1926, 1913, 1924, + + 1932, 1934, 1935, 1936, 4909, 1939, 1941, 1942, 1943, 1945, + 1947, 1944, 1950, 1951, 1952, 1954, 1958, 1957, 1960, 1964, + 1965, 1968, 1966, 1972, 1975, 4909, 1979, 1974, 1977, 1978, + 1989, 1987, 1996, 1991, 1993, 1894, 2000, 2011, 2002, 1997, + 2009, 2004, 2008, 2012, 2017, 2018, 2025, 2027, 2028, 2031, + 2029, 2014, 2039, 2041, 2040, 2038, 2044, 2048, 2052, 2046, + 4909, 2051, 2054, 2056, 2059, 2067, 2063, 2070, 2065, 2072, + 2071, 2073, 2075, 2081, 2076, 2082, 2083, 2087, 2091, 2093, + 2095, 4909, 2096, 2098, 2100, 2102, 2104, 2109, 2105, 2111, + 2112, 2114, 2115, 2116, 2118, 4909, 2122, 2123, 2126, 2131, + + 2137, 2129, 2127, 2138, 2139, 2140, 4909, 2147, 2149, 2150, + 2154, 2151, 2152, 2156, 2158, 2159, 4909, 2161, 2162, 2169, + 4909, 2170, 2166, 2168, 2165, 2173, 2172, 2174, 2176, 2178, + 2182, 2184, 2192, 2183, 2193, 4909, 2194, 2205, 2201, 2207, + 2195, 2197, 2202, 2211, 2221, 2208, 2224, 2225, 2226, 2214, + 2227, 2228, 2230, 2231, 2232, 4909, 2234, 2236, 2238, 2240, + 2241, 2242, 2243, 2245, 2251, 2247, 2256, 2250, 2258, 2260, + 2268, 2257, 2270, 2276, 2266, 2272, 2274, 2280, 2288, 2289, + 2286, 2290, 4909, 2293, 2294, 2296, 2284, 2297, 2299, 2300, + 2303, 2301, 2308, 2310, 2306, 2309, 2318, 2325, 2313, 2322, + + 2323, 2326, 2335, 2327, 2330, 2331, 2338, 2336, 2339, 2340, + 2343, 2334, 2344, 2346, 2350, 2354, 2352, 2367, 2363, 2356, + 2369, 2370, 2371, 2372, 4909, 2373, 2376, 2381, 2383, 2385, + 2386, 2375, 2387, 2377, 2400, 2399, 4909, 2396, 4909, 2401, + 2402, 2403, 2412, 4909, 2409, 4909, 2411, 2413, 2415, 4909, + 2416, 2417, 2420, 2421, 2423, 2425, 2427, 2432, 2428, 2430, + 2434, 2437, 2439, 2438, 2444, 2446, 2448, 2447, 2450, 2455, + 4909, 2454, 2456, 2457, 2461, 2462, 2465, 2464, 2466, 2467, + 2472, 2473, 2478, 2482, 2485, 2481, 2489, 4909, 2488, 2491, + 2492, 2494, 4909, 2495, 2496, 2498, 2503, 2504, 2505, 2506, + + 2507, 2512, 2510, 2515, 2529, 2526, 2516, 2527, 2513, 2534, + 2541, 2539, 2542, 2544, 2545, 2528, 2536, 2547, 2554, 2556, + 2552, 2559, 2551, 2560, 2562, 2563, 2564, 2566, 2569, 2570, + 2571, 2575, 2577, 2578, 2573, 2576, 2580, 2579, 4909, 2592, + 2581, 2583, 2597, 2595, 2599, 2602, 2603, 2605, 2604, 2608, + 2611, 2606, 4909, 2609, 4909, 2607, 2617, 2628, 2630, 2612, + 2634, 2625, 2635, 2618, 2636, 2638, 2646, 2643, 2649, 2650, + 2652, 2651, 2655, 2654, 4909, 2653, 2656, 2657, 2659, 2664, + 2662, 2676, 2672, 2661, 2686, 4909, 2688, 2683, 2690, 2693, + 2692, 2700, 2696, 4909, 2695, 2698, 2705, 2703, 2704, 4909, + + 4909, 2706, 2708, 2660, 2709, 2710, 2717, 2718, 2714, 2719, + 2720, 2729, 2721, 2726, 4909, 2735, 2728, 2736, 2741, 2742, + 2745, 2730, 2743, 4909, 2749, 2752, 2753, 2754, 2755, 2757, + 2758, 2756, 2759, 2767, 2765, 2760, 2774, 2782, 2773, 2784, + 4909, 2785, 2786, 2788, 2789, 2791, 2794, 2792, 2796, 2798, + 2799, 2800, 2802, 2803, 2804, 2808, 2814, 2806, 2807, 2810, + 2827, 2820, 2824, 2825, 2828, 2831, 2834, 2838, 2829, 2840, + 2835, 2842, 2847, 2844, 2857, 2850, 4909, 2858, 2854, 2861, + 2859, 2862, 2867, 2868, 2870, 2873, 2860, 2871, 2881, 2874, + 4909, 2883, 2876, 2893, 2878, 2888, 2902, 2897, 2879, 2898, + + 2901, 2904, 2907, 2905, 2909, 2910, 2913, 4909, 4909, 2914, + 2915, 2917, 2918, 2920, 2926, 2921, 2928, 2922, 2924, 4909, + 2932, 2944, 2934, 2939, 2949, 2951, 2942, 2950, 2952, 2953, + 2956, 2957, 2959, 2958, 2960, 2963, 2965, 2967, 4909, 2966, + 2968, 4909, 2970, 2974, 2982, 2972, 2991, 2992, 2984, 2994, + 2977, 2997, 2979, 3001, 3008, 3004, 3005, 3006, 3013, 3016, + 3020, 3024, 3007, 3019, 3029, 4909, 3025, 3026, 3027, 3028, + 3038, 3034, 3041, 3036, 4909, 3040, 3043, 3049, 3052, 3055, + 3042, 3063, 3058, 3060, 3061, 3059, 4909, 3066, 4909, 3044, + 3069, 4909, 3070, 3072, 3073, 3075, 3076, 3083, 3086, 3080, + + 3077, 3087, 3089, 3090, 3094, 3095, 3099, 3092, 4909, 3101, + 3103, 3105, 3108, 3104, 3110, 4909, 4909, 3112, 4909, 3115, + 3118, 4909, 3120, 3119, 3128, 3124, 3125, 3127, 3137, 2763, + 4909, 3132, 3130, 3142, 3138, 3140, 3144, 3145, 3146, 3148, + 3149, 3153, 4909, 3151, 3154, 3163, 3152, 3155, 3165, 3173, + 3160, 4909, 3176, 3167, 3177, 3179, 3182, 4909, 3183, 3185, + 4909, 3186, 3191, 3188, 3193, 3194, 3197, 3199, 3201, 3203, + 3211, 3207, 3208, 3209, 4909, 3206, 3210, 3216, 3226, 3213, + 3218, 3235, 3231, 3220, 3230, 3232, 3239, 3234, 3245, 3237, + 3249, 3241, 3244, 4909, 3251, 3252, 3254, 4909, 3253, 3255, + + 3260, 3261, 3264, 4909, 3262, 3265, 3267, 4909, 3271, 4909, + 3276, 3268, 3269, 3273, 3283, 3286, 3287, 3289, 3281, 3293, + 3294, 3295, 3307, 3302, 3303, 3304, 4909, 4909, 3310, 3312, + 3314, 3316, 3317, 3319, 3321, 3326, 3325, 3329, 3332, 3340, + 4909, 3341, 3322, 3343, 4909, 3333, 3344, 3336, 3335, 3346, + 3348, 3352, 3354, 3356, 3355, 3357, 3361, 3363, 3364, 3372, + 4909, 3365, 3367, 3373, 3374, 3375, 3376, 3377, 3378, 4909, + 3380, 3391, 3385, 3379, 3393, 3400, 3401, 3404, 3406, 3408, + 3409, 3410, 3412, 3415, 3420, 4909, 3426, 3416, 3417, 3418, + 3428, 3433, 3419, 3435, 3429, 3440, 3442, 3443, 3444, 4909, + + 3445, 3449, 3446, 3452, 3453, 3454, 3455, 3461, 3467, 3456, + 3459, 3464, 3469, 4909, 3470, 3472, 3473, 3476, 3479, 3481, + 3485, 3482, 3486, 3487, 3491, 3489, 3381, 4909, 3494, 3496, + 3499, 3497, 3503, 3505, 3507, 3509, 3510, 3508, 3519, 3511, + 3517, 3518, 3520, 3525, 3528, 3521, 3538, 3539, 4909, 3531, + 4909, 3533, 3540, 3550, 3545, 3547, 4909, 3549, 3553, 3552, + 4909, 3558, 3555, 3557, 3562, 4909, 3556, 3560, 3563, 3564, + 3578, 4909, 3580, 3581, 3582, 3591, 3592, 3589, 3590, 3593, + 3595, 3596, 3597, 3598, 4909, 3601, 3600, 3609, 3606, 3602, + 3613, 4909, 3612, 3614, 3615, 3619, 3618, 3620, 3627, 3624, + + 3626, 4909, 3631, 3628, 3641, 3637, 3573, 4909, 4909, 3636, + 3639, 3643, 3642, 3648, 4909, 3651, 3658, 3653, 3657, 3654, + 4909, 4909, 3660, 4909, 3661, 4909, 4909, 3662, 3664, 3671, + 4909, 3673, 4909, 3680, 3675, 3666, 3677, 3678, 4909, 3681, + 3684, 3686, 4909, 3688, 3693, 3689, 3690, 4909, 3692, 4909, + 3694, 3702, 3698, 3704, 3708, 3709, 3710, 3712, 3714, 3717, + 3719, 3720, 3721, 3724, 3726, 3728, 3730, 3734, 3736, 3731, + 3737, 3738, 3741, 3742, 3745, 3749, 3746, 3751, 3752, 3753, + 3754, 3756, 3757, 3759, 4909, 3762, 3760, 3763, 3764, 3769, + 3771, 3774, 3785, 3788, 3789, 4909, 4909, 3791, 3775, 3794, + + 3781, 4909, 3795, 3796, 3797, 3798, 3799, 3801, 3802, 3803, + 4909, 3807, 3813, 3810, 3811, 3812, 3816, 3817, 3824, 3825, + 3828, 3826, 3834, 3836, 3837, 3838, 3839, 3827, 3847, 3840, + 3841, 3848, 3849, 3858, 3862, 3866, 4909, 3850, 4909, 3859, + 3855, 3863, 4909, 4909, 3867, 3870, 3872, 3874, 3876, 3878, + 3879, 4909, 3880, 3881, 3891, 3884, 4909, 3893, 4909, 3899, + 3886, 3901, 3902, 3904, 4909, 4909, 4909, 4909, 3908, 3888, + 3906, 3911, 3912, 4909, 4909, 4909, 3913, 3914, 3915, 3917, + 3916, 3922, 4909, 3923, 3926, 3927, 3929, 3934, 3937, 3939, + 3940, 3947, 3943, 3949, 3942, 3951, 3953, 3955, 4909, 4909, + + 3958, 3959, 3966, 3963, 3964, 3967, 3970, 3972, 3973, 3975, + 3976, 3978, 3979, 4909, 3985, 4909, 3981, 3987, 3980, 3989, + 3994, 3995, 3996, 3999, 4909, 4909, 3993, 4000, 4005, 4007, + 4009, 4001, 4011, 4014, 4015, 4909, 4016, 4909, 4017, 4018, + 4025, 4030, 4027, 4033, 4909, 4023, 4036, 4909, 4039, 4040, + 4041, 4909, 4044, 4909, 4909, 4047, 4909, 4042, 4909, 4048, + 4050, 4053, 4058, 4060, 4065, 4066, 4070, 4059, 4072, 4055, + 4061, 4082, 4078, 4079, 4909, 4909, 4086, 4081, 4084, 4093, + 4088, 4091, 4097, 4909, 4909, 4089, 4092, 4098, 4909, 4099, + 4102, 4103, 4106, 4107, 4108, 4109, 4115, 4110, 4118, 4112, + + 4116, 4132, 4134, 4136, 4122, 4139, 4127, 4119, 4140, 4130, + 4141, 4909, 4143, 4148, 4146, 4909, 4153, 4155, 4157, 4154, + 4158, 4909, 4160, 4166, 4168, 4170, 4169, 4177, 4173, 4174, + 4909, 4181, 4182, 4163, 4909, 4909, 4185, 4909, 4187, 4909, + 4188, 4909, 4189, 4192, 4195, 4909, 4196, 4202, 4909, 4198, + 4205, 4200, 4207, 4208, 4909, 4217, 4216, 4218, 4225, 4212, + 4215, 4222, 4219, 4234, 4229, 4232, 4909, 4233, 4235, 4239, + 4240, 4242, 4241, 4247, 4243, 4244, 4249, 4246, 4248, 4261, + 4258, 4909, 4265, 4267, 4909, 4262, 4909, 4269, 4270, 4271, + 4909, 4273, 4275, 4278, 4279, 4909, 4280, 4282, 4909, 4284, + + 4288, 4290, 4285, 4291, 4293, 4292, 4297, 4300, 4302, 4307, + 4909, 4303, 4309, 4316, 4314, 4318, 4325, 4320, 4909, 4322, + 4323, 4324, 4332, 4330, 4334, 4909, 4336, 4331, 4909, 4340, + 4342, 4344, 4337, 4352, 4346, 4354, 4356, 4358, 4909, 4360, + 4909, 4909, 4361, 4909, 4362, 4364, 4909, 4367, 4368, 4369, + 4370, 4372, 4373, 4909, 4909, 4374, 4381, 4377, 4387, 4390, + 4909, 4376, 4383, 4392, 4393, 4394, 4909, 4391, 4398, 4401, + 4402, 4406, 4404, 4408, 4407, 4409, 4909, 4909, 4410, 4909, + 4909, 4412, 4416, 4419, 4909, 4909, 4909, 4432, 4909, 4434, + 4438, 4437, 4909, 4440, 4427, 4429, 4909, 4447, 4442, 4444, + + 4450, 4909, 4451, 4452, 4453, 4456, 4458, 4459, 4413, 4463, + 4468, 4466, 4464, 4470, 4471, 4473, 4476, 4477, 4480, 4909, + 4909, 4483, 4909, 4909, 4487, 4491, 4494, 4909, 4488, 4499, + 4909, 4501, 4495, 4502, 4503, 4505, 4507, 4909, 4909, 4508, + 4509, 4511, 4515, 4513, 4909, 4518, 4523, 4519, 4522, 4524, + 4528, 4525, 4909, 4909, 4909, 4909, 4909, 4529, 4909, 4909, + 4530, 4534, 4535, 4536, 4909, 4539, 4540, 4542, 4552, 4544, + 4548, 4545, 4556, 4560, 4557, 4561, 4564, 4563, 4566, 4568, + 4565, 4570, 4571, 4577, 4582, 4584, 4585, 4587, 4588, 4589, + 4591, 4592, 4601, 4596, 4598, 4599, 4909, 4600, 4909, 4602, + + 4909, 4909, 4609, 4611, 4606, 4604, 4619, 4627, 4617, 4622, + 4624, 4909, 4625, 4626, 4628, 4909, 4629, 4633, 4634, 4637, + 4639, 4636, 4641, 4642, 4630, 4644, 4657, 4654, 4664, 4660, + 4662, 4665, 4666, 4668, 4675, 4672, 4674, 4909, 4676, 4678, + 4679, 4681, 4682, 4689, 4684, 4685, 4690, 4909, 4693, 4695, + 4694, 4696, 4702, 4705, 4708, 4706, 4710, 4909, 4688, 4712, + 4716, 4719, 4724, 4717, 4726, 4727, 4729, 4731, 4730, 4738, + 4734, 4740, 4739, 4743, 4742, 4909, 4745, 4749, 4909, 4750, + 4751, 4752, 4753, 4759, 4909, 4763, 4754, 4757, 4764, 4767, + 4770, 4909, 4775, 4779, 4780, 4909, 4781, 4909, 4909, 4783, + + 4782, 4784, 4790, 4792, 4909, 4909, 4909, 4817, 4824, 4831, + 4838, 4845, 88, 4852, 4859, 4866, 4873, 4880, 4887, 4894, + 4901 } ; -static yyconst flex_int16_t yy_def[2498] = +static yyconst flex_int16_t yy_def[2522] = { 0, - 2483, 1, 2484, 2484, 2485, 2485, 2486, 2486, 2487, 2487, - 2488, 2488, 2483, 2489, 2483, 2483, 2483, 2483, 2490, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2491, 2483, 2483, 2483, 2491, 2492, 2483, 2483, - 2483, 2492, 2493, 2483, 2483, 2483, 2483, 2493, 2494, 2483, - 2483, 2483, 2494, 2495, 2483, 2496, 2483, 2495, 2495, 2489, - 2489, 2483, 2497, 2490, 2497, 2490, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2491, 2491, - 2492, 2492, 2493, 2493, 2483, 2494, 2494, 2495, 2495, 2496, - 2496, 2495, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2495, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2495, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - - 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2495, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2495, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2483, 2489, 2483, 2483, 2489, 2483, 2483, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2495, 2489, 2489, - 2489, 2489, 2489, 2483, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2495, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2483, 2489, - 2489, 2489, 2483, 2489, 2483, 2489, 2489, 2489, 2483, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2483, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2483, 2489, 2489, 2489, 2489, 2483, 2483, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2483, 2483, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2483, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2483, 2489, 2483, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2483, - - 2483, 2489, 2483, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - 2489, 2483, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, - 2483, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2483, - 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2483, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, - 2483, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2483, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, - 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2483, 2483, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - - 2483, 2483, 2489, 2483, 2489, 2483, 2483, 2489, 2489, 2489, - 2483, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2483, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2483, 2489, 2483, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2483, 2483, 2489, 2489, 2489, 2489, 2483, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2483, 2489, 2489, 2489, - 2483, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, - 2489, 2489, 2489, 2489, 2483, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2483, 2483, 2483, 2489, 2489, 2489, 2489, 2489, - 2483, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2483, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, - 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2483, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2483, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, - 2483, 2489, 2489, 2483, 2489, 2489, 2489, 2483, 2489, 2483, - 2483, 2489, 2483, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2483, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, - 2483, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, - 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2483, 2483, 2489, 2483, 2489, 2483, 2489, 2483, 2489, 2489, - 2489, 2483, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, - 2483, 2489, 2483, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2483, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - - 2489, 2483, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2483, 2489, 2483, 2483, 2489, 2483, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2483, - 2483, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2483, 2489, 2483, 2483, 2489, 2489, 2489, - 2483, 2483, 2483, 2489, 2483, 2489, 2489, 2489, 2483, 2489, - 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2483, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2483, 2483, 2489, 2483, 2483, - - 2489, 2489, 2489, 2483, 2489, 2489, 2483, 2489, 2489, 2489, - 2489, 2489, 2489, 2483, 2483, 2489, 2489, 2489, 2489, 2489, - 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2483, - 2483, 2483, 2483, 2489, 2483, 2483, 2489, 2489, 2489, 2489, - 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2483, 2489, 2483, 2489, 2483, 2483, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, - 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, - 2489, 2483, 2489, 2489, 2483, 2489, 2489, 2489, 2489, 2489, - 2483, 2489, 2489, 2489, 2489, 2489, 2489, 2483, 2489, 2489, - 2489, 2483, 2489, 2483, 2483, 2489, 2489, 2489, 2489, 2489, - 2483, 2483, 0, 2483, 2483, 2483, 2483, 2483, 2483, 2483, - 2483, 2483, 2483, 2483, 2483, 2483, 2483 - + 2507, 1, 2508, 2508, 2509, 2509, 2510, 2510, 2511, 2511, + 2512, 2512, 2507, 2513, 2507, 2507, 2507, 2507, 2514, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2515, 2507, 2507, 2507, 2515, 2516, 2507, 2507, + 2507, 2516, 2517, 2507, 2507, 2507, 2507, 2517, 2518, 2507, + 2507, 2507, 2518, 2519, 2507, 2520, 2507, 2519, 2519, 2513, + 2513, 2507, 2521, 2514, 2521, 2514, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2515, 2515, + 2516, 2516, 2517, 2517, 2507, 2518, 2518, 2519, 2519, 2520, + 2520, 2519, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2519, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2519, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, + 2513, 2519, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2519, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2507, 2507, + 2513, 2507, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2519, 2513, 2513, 2513, 2513, 2513, 2507, + 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2519, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2507, 2513, + 2513, 2513, 2513, 2507, 2513, 2507, 2513, 2513, 2513, 2507, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, + 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2507, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2507, + + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2507, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2507, 2513, + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2507, 2513, 2507, 2513, + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2507, 2513, 2513, + + 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2507, 2513, 2507, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2507, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2507, 2507, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2507, 2507, 2513, 2507, 2513, 2507, 2507, 2513, 2513, 2513, + 2507, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2507, 2513, + 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2507, 2513, 2507, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2507, 2513, 2513, 2513, + + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2507, 2513, + 2513, 2513, 2507, 2507, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2513, 2513, 2507, 2513, 2507, 2513, + 2513, 2513, 2513, 2513, 2507, 2507, 2507, 2507, 2513, 2513, + 2513, 2513, 2513, 2507, 2507, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2507, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2507, 2513, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2507, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2507, 2513, 2513, + 2513, 2507, 2513, 2507, 2507, 2513, 2507, 2513, 2507, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2507, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2507, 2507, 2513, 2513, 2513, 2507, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2507, 2507, 2513, 2507, 2513, 2507, + 2513, 2507, 2513, 2513, 2513, 2507, 2513, 2513, 2507, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2507, 2513, 2507, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2507, 2513, + + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2507, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, + 2507, 2507, 2513, 2507, 2513, 2513, 2507, 2513, 2513, 2513, + 2513, 2513, 2513, 2507, 2507, 2513, 2513, 2513, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2507, 2513, 2507, + 2507, 2513, 2513, 2513, 2507, 2507, 2507, 2513, 2507, 2513, + 2513, 2513, 2507, 2513, 2513, 2513, 2507, 2513, 2513, 2513, + + 2513, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, + 2507, 2513, 2507, 2507, 2513, 2513, 2513, 2507, 2513, 2513, + 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2507, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2507, 2507, 2507, 2507, 2507, 2513, 2507, 2507, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2507, 2513, + + 2507, 2507, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, + 2513, 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2507, 2513, + 2513, 2513, 2513, 2513, 2507, 2513, 2513, 2513, 2513, 2513, + 2513, 2507, 2513, 2513, 2513, 2507, 2513, 2507, 2507, 2513, + + 2513, 2513, 2513, 2513, 2507, 2507, 0, 2507, 2507, 2507, + 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, + 2507 } ; -static yyconst flex_uint16_t yy_nxt[4901] = +static yyconst flex_uint16_t yy_nxt[4950] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 14, 18, 20, 21, 22, 23, 24, 25, 26, @@ -1329,468 +1338,473 @@ static yyconst flex_uint16_t yy_nxt[4901] = 396, 71, 397, 402, 71, 398, 71, 71, 404, 71, 401, 403, 71, 399, 71, 71, 71, 406, 71, 410, 71, 71, 71, 413, 405, 71, 407, 412, 71, 71, - 71, 409, 71, 414, 419, 408, 71, 415, 411, 417, - 71, 418, 424, 416, 71, 425, 420, 71, 71, 421, - 71, 422, 71, 423, 71, 71, 71, 71, 71, 71, - 426, 435, 71, 449, 71, 446, 428, 71, 427, 429, - 433, 430, 431, 434, 149, 432, 437, 436, 71, 445, - 438, 439, 447, 71, 71, 71, 451, 448, 71, 71, - 440, 71, 441, 442, 443, 450, 457, 444, 452, 71, - - 71, 71, 71, 453, 71, 456, 458, 71, 71, 455, - 465, 454, 463, 71, 71, 71, 71, 71, 469, 462, - 460, 461, 459, 464, 71, 71, 467, 71, 71, 468, - 71, 71, 472, 466, 473, 474, 71, 71, 71, 71, - 479, 471, 470, 480, 71, 71, 476, 477, 475, 481, - 478, 71, 483, 71, 71, 71, 71, 71, 71, 484, - 492, 71, 71, 71, 482, 493, 488, 491, 495, 485, - 487, 494, 486, 71, 71, 71, 71, 489, 499, 490, - 498, 497, 71, 71, 496, 71, 501, 71, 71, 71, - 505, 506, 503, 71, 71, 71, 502, 71, 507, 71, - - 509, 504, 500, 71, 71, 71, 71, 71, 510, 71, - 514, 71, 515, 71, 508, 511, 71, 513, 516, 71, - 518, 71, 512, 71, 519, 522, 71, 71, 517, 521, - 520, 71, 71, 71, 529, 71, 71, 71, 71, 524, - 71, 531, 71, 71, 530, 533, 523, 528, 534, 525, - 71, 526, 527, 536, 71, 537, 532, 539, 535, 71, - 71, 71, 71, 71, 540, 71, 71, 543, 71, 71, - 71, 545, 71, 71, 71, 71, 71, 149, 559, 538, - 544, 580, 541, 542, 546, 71, 557, 71, 547, 71, - 548, 558, 555, 556, 71, 549, 561, 550, 71, 566, - - 567, 560, 71, 563, 71, 551, 71, 562, 552, 553, - 71, 71, 568, 564, 565, 554, 71, 71, 570, 569, - 71, 71, 71, 71, 71, 71, 574, 71, 71, 581, - 71, 571, 575, 578, 579, 71, 572, 71, 71, 577, - 582, 576, 573, 71, 71, 71, 71, 586, 588, 583, - 590, 71, 584, 589, 591, 71, 585, 587, 593, 71, - 71, 71, 71, 71, 71, 595, 71, 592, 597, 598, - 71, 594, 71, 602, 71, 71, 596, 149, 603, 71, - 605, 71, 606, 71, 607, 71, 599, 604, 601, 600, - 71, 608, 71, 609, 71, 610, 611, 71, 71, 71, - - 71, 71, 612, 615, 613, 71, 614, 71, 619, 71, - 71, 618, 71, 620, 71, 71, 71, 622, 71, 624, - 147, 625, 616, 71, 617, 71, 71, 71, 621, 627, - 71, 631, 626, 71, 628, 623, 71, 71, 629, 71, - 637, 630, 633, 71, 634, 632, 71, 635, 71, 71, - 71, 636, 638, 639, 71, 71, 71, 71, 640, 71, - 642, 643, 645, 71, 644, 647, 71, 71, 646, 651, - 71, 650, 71, 649, 71, 71, 648, 653, 652, 71, - 641, 71, 654, 71, 658, 660, 655, 71, 656, 71, - 71, 71, 659, 71, 662, 663, 661, 657, 71, 71, - - 664, 71, 667, 71, 71, 71, 71, 71, 71, 670, - 672, 665, 666, 669, 71, 675, 71, 673, 71, 674, - 676, 71, 668, 71, 671, 71, 677, 71, 71, 679, - 681, 71, 678, 71, 71, 71, 71, 680, 71, 686, - 71, 682, 71, 71, 71, 687, 71, 71, 71, 683, - 693, 71, 684, 688, 685, 691, 71, 71, 689, 692, - 71, 690, 71, 699, 700, 694, 695, 698, 71, 696, - 71, 71, 71, 71, 71, 697, 703, 71, 71, 708, - 71, 702, 71, 71, 720, 707, 71, 701, 704, 709, - 706, 710, 705, 71, 71, 71, 71, 71, 711, 71, - - 149, 712, 713, 714, 71, 718, 716, 719, 71, 71, - 715, 717, 71, 724, 71, 71, 725, 721, 727, 71, - 71, 71, 730, 722, 726, 71, 71, 71, 71, 728, - 732, 71, 735, 723, 71, 71, 71, 71, 71, 733, - 729, 71, 736, 71, 71, 731, 71, 71, 740, 734, - 71, 749, 741, 737, 71, 742, 745, 739, 753, 747, - 748, 738, 743, 746, 71, 744, 71, 750, 71, 751, - 71, 755, 71, 71, 776, 752, 71, 71, 763, 71, - 71, 71, 71, 767, 768, 71, 71, 770, 145, 769, - 754, 71, 756, 757, 71, 758, 71, 764, 759, 765, - - 71, 772, 71, 760, 766, 71, 777, 773, 774, 761, - 762, 771, 71, 71, 71, 71, 71, 775, 779, 71, - 71, 783, 71, 71, 782, 71, 71, 791, 71, 789, - 71, 788, 778, 71, 71, 780, 144, 784, 781, 785, - 787, 786, 71, 792, 71, 71, 71, 790, 793, 71, - 794, 71, 797, 71, 795, 71, 71, 71, 798, 796, - 801, 71, 799, 71, 804, 71, 802, 71, 71, 71, - 71, 803, 808, 71, 71, 800, 806, 807, 809, 71, - 811, 71, 71, 71, 805, 71, 71, 71, 810, 816, - 71, 71, 814, 818, 819, 71, 812, 817, 71, 71, - - 71, 813, 71, 821, 71, 71, 827, 71, 820, 815, - 71, 822, 71, 71, 826, 71, 71, 71, 71, 823, - 71, 830, 824, 834, 825, 828, 71, 831, 71, 829, - 833, 71, 832, 835, 71, 841, 71, 843, 836, 71, - 837, 71, 840, 71, 71, 71, 71, 71, 838, 844, - 71, 839, 71, 850, 851, 848, 842, 71, 845, 846, - 71, 71, 855, 71, 852, 849, 856, 847, 71, 857, - 71, 71, 71, 860, 149, 853, 854, 859, 71, 71, - 71, 71, 71, 862, 71, 71, 864, 71, 71, 858, - 71, 876, 71, 861, 71, 71, 877, 71, 880, 867, - - 71, 865, 863, 71, 71, 882, 1016, 868, 866, 869, - 71, 71, 878, 870, 71, 871, 71, 884, 881, 872, - 879, 873, 885, 71, 71, 883, 874, 71, 886, 71, - 71, 875, 889, 887, 71, 891, 71, 893, 71, 888, - 896, 899, 890, 71, 895, 71, 71, 71, 892, 898, - 894, 897, 71, 71, 71, 71, 71, 71, 909, 71, - 912, 71, 900, 901, 71, 902, 913, 908, 911, 71, - 903, 910, 904, 71, 71, 71, 71, 914, 918, 71, - 919, 71, 920, 905, 906, 71, 71, 915, 71, 921, - 907, 924, 71, 916, 917, 71, 71, 71, 923, 71, - - 922, 925, 71, 930, 927, 71, 71, 71, 928, 71, - 71, 926, 933, 71, 931, 71, 939, 71, 929, 71, - 71, 71, 71, 71, 71, 932, 937, 935, 938, 71, - 934, 71, 71, 71, 940, 936, 944, 945, 946, 943, - 941, 942, 71, 71, 948, 71, 949, 71, 952, 958, - 71, 947, 71, 953, 71, 71, 954, 71, 950, 955, - 956, 71, 960, 951, 957, 71, 71, 71, 71, 962, - 71, 71, 71, 71, 71, 964, 959, 965, 967, 968, - 71, 71, 71, 71, 71, 961, 71, 966, 963, 970, - 972, 974, 969, 973, 71, 71, 71, 971, 976, 71, - - 71, 981, 71, 982, 975, 71, 71, 71, 71, 71, - 983, 984, 986, 71, 977, 980, 71, 71, 978, 71, - 979, 71, 989, 71, 71, 987, 985, 993, 994, 71, - 997, 71, 990, 71, 71, 988, 992, 71, 71, 71, - 71, 991, 996, 1001, 995, 71, 71, 71, 71, 71, - 71, 71, 1000, 999, 142, 1003, 71, 998, 1007, 71, - 71, 71, 1013, 1002, 1014, 1008, 1010, 1004, 71, 1006, - 71, 1009, 1011, 71, 1005, 71, 71, 71, 71, 71, - 1012, 1015, 1017, 71, 1020, 71, 71, 71, 71, 1018, - 1026, 71, 1019, 1023, 71, 71, 71, 71, 1021, 71, - - 1035, 71, 1024, 1029, 1022, 71, 1031, 1025, 1027, 71, - 1036, 71, 71, 1028, 140, 1032, 1030, 1033, 1037, 71, - 1034, 71, 1039, 1038, 71, 71, 1042, 71, 71, 71, - 1040, 71, 1044, 1041, 1046, 71, 1047, 71, 71, 71, - 71, 71, 1049, 1050, 1043, 71, 71, 1045, 71, 1048, - 1051, 71, 71, 1052, 71, 1056, 71, 1054, 71, 1053, - 71, 1055, 71, 1057, 1061, 71, 1066, 71, 71, 71, - 71, 1058, 71, 71, 1060, 1059, 1065, 1062, 1068, 71, - 1063, 71, 1067, 71, 1070, 1064, 1072, 1075, 71, 1069, - 71, 1073, 71, 1071, 71, 1077, 71, 71, 1086, 1085, - - 71, 1076, 1074, 71, 71, 71, 1087, 1150, 1078, 1084, - 71, 1079, 1080, 71, 71, 1088, 1081, 1093, 1090, 71, - 71, 1092, 1082, 1089, 1091, 71, 1083, 71, 71, 71, - 1098, 1099, 1095, 71, 1094, 71, 71, 71, 1100, 1101, - 71, 71, 1096, 71, 1107, 71, 1108, 1097, 71, 1102, - 71, 71, 1109, 71, 1103, 1110, 1104, 71, 1105, 71, - 1106, 1114, 1113, 1112, 71, 1111, 1115, 71, 1117, 71, - 71, 1116, 71, 71, 71, 71, 71, 1119, 1121, 1127, - 71, 71, 71, 1118, 1120, 1123, 1122, 1126, 1129, 71, - 71, 71, 1124, 1130, 71, 71, 1128, 1133, 71, 1131, - - 1125, 1135, 71, 71, 71, 71, 1139, 71, 1136, 71, - 1132, 71, 71, 71, 71, 1134, 1141, 1142, 1143, 71, - 1144, 71, 71, 71, 1145, 1137, 1138, 1146, 71, 1140, - 71, 1147, 1152, 71, 1149, 1153, 1151, 71, 71, 1148, - 1155, 71, 1154, 71, 71, 71, 71, 1159, 71, 71, - 71, 1163, 1156, 1160, 1164, 71, 1158, 71, 71, 71, - 71, 71, 71, 1157, 71, 1171, 71, 71, 71, 1161, - 71, 1168, 1165, 1162, 71, 1167, 1169, 71, 1166, 1170, - 1176, 71, 1175, 71, 71, 71, 1172, 71, 1174, 1178, - 1180, 1177, 1173, 1179, 1182, 1181, 71, 71, 1185, 71, - - 71, 1184, 71, 1192, 71, 1183, 1190, 1188, 71, 71, - 1189, 71, 71, 71, 1186, 1193, 71, 1187, 71, 1195, - 71, 71, 1191, 1194, 71, 1198, 71, 71, 1203, 71, - 71, 71, 71, 1204, 1197, 71, 1199, 71, 1201, 1196, - 71, 1200, 71, 71, 1202, 71, 71, 1207, 1205, 71, - 1206, 1208, 1210, 71, 1209, 71, 1214, 1211, 1213, 71, - 1215, 1219, 1212, 1216, 71, 1218, 71, 71, 1217, 71, - 1223, 1224, 1220, 71, 1222, 71, 71, 71, 71, 1225, - 71, 1226, 1227, 71, 1229, 71, 71, 71, 1221, 1228, - 71, 1230, 71, 1234, 71, 71, 71, 1233, 71, 71, - - 1231, 1237, 1232, 1236, 1240, 71, 71, 71, 71, 1241, - 71, 1242, 1238, 71, 1235, 1248, 1243, 71, 1239, 71, - 71, 71, 71, 1252, 71, 1244, 1245, 1246, 1251, 71, - 71, 71, 1247, 71, 71, 71, 71, 71, 1260, 1250, - 2483, 71, 71, 1253, 1261, 1249, 1263, 71, 1257, 1254, - 1255, 1259, 1256, 71, 1262, 71, 1258, 71, 1264, 1265, - 71, 71, 71, 71, 1269, 71, 71, 71, 1270, 1267, - 1266, 1274, 71, 71, 1268, 71, 71, 71, 1275, 1276, - 1277, 1271, 1273, 1272, 1281, 1278, 71, 1280, 1282, 71, - 71, 71, 71, 1285, 1286, 1279, 1284, 1287, 71, 71, - - 71, 1288, 71, 71, 1283, 71, 71, 1292, 1291, 71, - 71, 1294, 71, 71, 1293, 1289, 71, 1297, 71, 1290, - 71, 71, 1301, 71, 71, 1299, 71, 1295, 1302, 71, - 1304, 71, 1298, 71, 71, 71, 1300, 71, 1296, 1307, - 71, 1310, 71, 71, 1306, 1309, 1303, 71, 71, 1314, - 71, 71, 1311, 1305, 71, 1315, 1308, 1312, 71, 71, - 71, 1313, 71, 71, 1319, 1321, 1323, 1318, 71, 1325, - 71, 1316, 71, 1322, 1317, 71, 1327, 71, 71, 71, - 1320, 71, 1324, 71, 1326, 1329, 71, 1331, 71, 1332, - 71, 71, 71, 71, 1337, 1336, 71, 1328, 71, 71, - - 2483, 1334, 71, 1343, 1333, 1330, 1335, 71, 1338, 71, - 1340, 71, 71, 1341, 71, 1353, 1344, 71, 1339, 1346, - 1348, 1345, 1349, 71, 1347, 1342, 71, 1350, 71, 71, - 1351, 71, 71, 71, 1357, 71, 1352, 1358, 71, 71, - 71, 1354, 1360, 71, 1359, 71, 1363, 71, 71, 71, - 1362, 1355, 71, 1356, 1364, 71, 1365, 71, 1361, 71, - 1372, 71, 71, 71, 71, 71, 71, 71, 1377, 71, - 71, 1368, 1366, 1369, 1370, 1367, 1371, 71, 71, 1375, - 71, 1373, 1379, 71, 1374, 71, 1380, 71, 1376, 71, - 1378, 71, 71, 1381, 1382, 71, 2483, 71, 1385, 1387, - - 71, 71, 1394, 71, 71, 1384, 1386, 1383, 71, 1388, - 71, 1390, 1389, 1395, 71, 71, 1391, 1400, 1396, 71, - 71, 1392, 1393, 1397, 1398, 71, 1399, 71, 71, 1405, - 1406, 71, 71, 71, 1402, 71, 1404, 1403, 71, 1401, - 71, 71, 71, 71, 71, 1408, 71, 1415, 1407, 71, - 71, 1409, 1410, 1412, 71, 1418, 1411, 71, 1417, 1424, - 1416, 1414, 71, 1419, 1425, 71, 1421, 1413, 1426, 1422, - 71, 71, 1423, 1429, 71, 1428, 71, 1420, 71, 71, - 1431, 71, 71, 1430, 1434, 71, 71, 1432, 1427, 71, - 71, 1433, 1436, 71, 71, 1435, 71, 1442, 1437, 71, - - 71, 71, 1440, 71, 1438, 71, 71, 71, 1447, 1441, - 1450, 71, 1439, 1443, 71, 71, 71, 1444, 1446, 71, - 1445, 1453, 1448, 1452, 71, 1449, 71, 71, 71, 1454, - 71, 1455, 1459, 71, 71, 1451, 1456, 71, 71, 71, - 71, 1467, 71, 71, 1462, 1458, 71, 71, 71, 71, - 71, 1457, 1461, 1460, 1463, 1464, 1470, 1475, 1465, 71, - 1466, 1468, 1471, 71, 1469, 71, 1473, 71, 1472, 71, - 1476, 71, 71, 71, 1474, 1478, 71, 71, 71, 1479, - 71, 1481, 71, 71, 1477, 71, 71, 1484, 71, 71, - 1488, 71, 1485, 71, 1493, 71, 1482, 1480, 1483, 1494, - - 1486, 1487, 1489, 71, 71, 71, 1492, 71, 71, 1491, - 1498, 71, 1499, 1500, 71, 1490, 1501, 71, 71, 1503, - 71, 71, 71, 1496, 1495, 1506, 71, 1497, 71, 1508, - 71, 1510, 1507, 1509, 71, 71, 71, 71, 1502, 1512, - 71, 71, 1504, 1505, 1514, 71, 1515, 71, 71, 1516, - 1517, 71, 1511, 71, 71, 71, 71, 71, 2483, 1529, - 1522, 1513, 1524, 1518, 1519, 1520, 1526, 71, 71, 1528, - 1521, 1527, 71, 1523, 1525, 71, 1532, 71, 1530, 71, - 71, 71, 71, 1536, 71, 71, 1533, 71, 1538, 71, - 1531, 71, 1541, 1542, 71, 71, 71, 1545, 71, 1534, - - 71, 1535, 71, 71, 1543, 1539, 71, 1537, 71, 1547, - 71, 1540, 1548, 71, 1550, 1546, 71, 1544, 1554, 71, - 71, 1553, 1557, 1558, 71, 71, 1552, 1556, 71, 71, - 1559, 71, 1549, 71, 1551, 71, 71, 71, 1560, 1555, - 71, 71, 71, 1565, 1561, 1562, 71, 1568, 71, 1564, - 71, 71, 71, 71, 1570, 1563, 71, 71, 71, 1566, - 1575, 1578, 71, 1569, 1576, 71, 1573, 71, 1567, 71, - 1571, 1572, 1574, 71, 1577, 1581, 71, 1584, 1579, 71, - 1586, 1587, 71, 1580, 71, 71, 71, 1583, 1590, 71, - 1582, 1591, 1593, 71, 71, 1588, 1592, 71, 71, 1585, - - 1589, 1594, 1597, 71, 71, 1596, 1598, 71, 71, 71, - 1602, 1595, 71, 1599, 1604, 1600, 71, 71, 71, 71, - 71, 71, 1606, 2483, 1607, 71, 1608, 1609, 71, 1601, - 1605, 1610, 71, 71, 1603, 1612, 71, 71, 1614, 1611, - 71, 71, 1613, 1615, 71, 71, 71, 1618, 71, 1616, - 1617, 71, 71, 1623, 71, 71, 71, 1622, 1619, 71, - 1620, 1625, 71, 1621, 1624, 1627, 71, 1626, 71, 71, - 71, 71, 71, 71, 1634, 1632, 71, 1629, 1633, 1628, - 71, 71, 1636, 71, 71, 71, 1635, 1630, 71, 1631, - 1643, 71, 1639, 1637, 1638, 71, 1641, 1640, 1642, 71, - - 71, 71, 1648, 71, 71, 1650, 71, 71, 71, 1651, - 71, 1644, 1652, 71, 1647, 1645, 1646, 71, 1653, 71, - 1649, 71, 1656, 71, 1654, 71, 1655, 71, 1657, 71, - 71, 71, 71, 71, 71, 71, 2483, 1659, 1664, 1660, - 71, 1661, 1668, 71, 1658, 71, 1663, 1667, 1671, 71, - 71, 1665, 1669, 1666, 1672, 71, 1662, 71, 71, 71, - 1670, 1675, 1674, 1677, 71, 71, 71, 71, 1680, 71, - 1673, 1678, 71, 1676, 1679, 1682, 71, 1684, 71, 71, - 1685, 1681, 71, 71, 1686, 71, 1690, 1687, 71, 71, - 71, 71, 71, 1691, 71, 1683, 1696, 71, 1693, 71, - - 1697, 1688, 1692, 71, 71, 1689, 1700, 71, 1695, 71, - 1694, 71, 71, 1702, 1701, 71, 1704, 71, 1698, 1703, - 71, 1705, 71, 71, 1699, 1708, 1706, 1710, 71, 1707, - 71, 71, 71, 71, 71, 71, 1713, 71, 1714, 1711, - 71, 71, 71, 1709, 1712, 71, 71, 1715, 1722, 71, - 1720, 1721, 71, 1719, 71, 1716, 71, 71, 1717, 1718, - 1724, 1723, 1729, 71, 71, 71, 1728, 1726, 1731, 71, - 71, 71, 1725, 1730, 1733, 71, 1734, 1736, 71, 71, - 2483, 1727, 1737, 71, 1732, 71, 71, 1739, 1735, 1738, - 1741, 71, 71, 1742, 1745, 1746, 71, 71, 1740, 71, - - 1747, 71, 1750, 1752, 71, 71, 71, 1743, 71, 1748, - 1751, 1753, 71, 71, 1754, 71, 1755, 71, 1744, 1749, - 71, 1757, 71, 71, 71, 71, 71, 1759, 71, 71, - 1762, 1765, 71, 1756, 71, 71, 71, 71, 1766, 1761, - 1758, 1768, 71, 1767, 1763, 1764, 1760, 1771, 1772, 71, - 71, 71, 71, 71, 71, 71, 1770, 71, 71, 71, - 71, 1769, 1782, 71, 71, 71, 1815, 71, 1783, 1773, - 1774, 1779, 1785, 1777, 71, 1775, 1778, 1776, 1780, 1781, - 1784, 71, 1787, 1788, 71, 1789, 71, 1786, 71, 71, - 71, 1792, 71, 1795, 71, 71, 71, 71, 2483, 71, - - 1796, 1793, 1791, 1790, 1794, 71, 1801, 71, 1802, 71, - 1797, 1800, 71, 1804, 71, 71, 1798, 1799, 1806, 71, - 1807, 71, 71, 71, 71, 1811, 71, 71, 71, 1810, - 71, 1803, 71, 1805, 1813, 71, 1808, 71, 71, 1817, - 1816, 71, 1809, 1819, 71, 71, 1812, 1820, 1814, 1823, - 71, 1822, 71, 71, 1818, 71, 1821, 1828, 71, 1827, - 71, 1830, 71, 71, 71, 1824, 71, 71, 1826, 71, - 1834, 1832, 71, 71, 1836, 1825, 1835, 71, 71, 1829, - 71, 71, 1838, 1831, 71, 1837, 71, 71, 71, 1842, - 71, 1843, 1833, 1840, 71, 1844, 71, 71, 71, 71, - - 71, 1847, 1841, 1839, 1853, 1848, 1849, 1850, 1851, 1845, - 71, 71, 1846, 71, 1852, 1854, 71, 71, 1857, 71, - 1858, 71, 1859, 1863, 71, 1856, 71, 71, 71, 71, - 1860, 71, 71, 1855, 71, 71, 71, 1865, 1870, 1861, - 71, 1862, 1864, 1866, 71, 1867, 1869, 1868, 2483, 1871, - 1874, 71, 1873, 1875, 71, 71, 1872, 71, 1876, 1878, - 1879, 71, 1877, 1880, 71, 71, 71, 71, 1882, 71, - 71, 71, 71, 1886, 71, 1881, 71, 71, 1887, 1888, - 71, 1883, 1889, 71, 1884, 1890, 71, 71, 71, 71, - 1885, 1892, 71, 71, 71, 1899, 1896, 1891, 71, 1898, - - 71, 71, 71, 1895, 1900, 71, 1893, 1903, 1894, 1904, - 71, 71, 1906, 1897, 71, 71, 71, 1908, 1901, 1905, - 71, 1902, 71, 1909, 71, 1911, 71, 1913, 1907, 71, - 1912, 1915, 71, 71, 71, 1917, 71, 71, 71, 71, - 71, 1914, 71, 1916, 1919, 1920, 1921, 71, 1910, 1922, - 71, 1923, 71, 1924, 1925, 1918, 71, 71, 71, 71, - 71, 1927, 1930, 71, 1926, 71, 1932, 71, 71, 1931, - 1939, 1929, 71, 1935, 71, 71, 1936, 1928, 1937, 71, - 71, 71, 1934, 1933, 71, 1938, 71, 1943, 71, 1944, - 71, 1942, 1945, 71, 71, 1940, 71, 71, 1941, 71, - - 1948, 71, 1949, 1951, 71, 71, 1946, 1952, 71, 1950, - 71, 71, 71, 71, 1947, 71, 71, 1953, 1954, 71, - 1957, 71, 1955, 1959, 71, 1960, 71, 71, 71, 71, - 1966, 71, 1956, 1958, 71, 71, 71, 1975, 71, 1963, - 1967, 1962, 1965, 71, 71, 1961, 1971, 71, 71, 71, - 71, 1964, 1968, 1973, 1974, 1976, 71, 1969, 1972, 1970, - 71, 1977, 71, 1978, 71, 1979, 71, 71, 71, 1981, - 71, 71, 71, 71, 1989, 1980, 71, 1990, 71, 1986, - 71, 1992, 71, 71, 71, 1983, 1982, 71, 71, 1991, - 1984, 1985, 1987, 71, 1988, 1995, 71, 71, 71, 2001, - - 71, 1993, 1994, 2002, 71, 1997, 2003, 71, 1996, 71, - 71, 71, 71, 1999, 1998, 71, 2007, 2000, 71, 71, - 71, 71, 2011, 71, 2005, 2004, 2010, 2012, 71, 2006, - 71, 71, 2013, 2014, 71, 2008, 71, 71, 2009, 2017, - 2016, 71, 2015, 71, 2020, 2021, 71, 71, 2024, 71, - 71, 71, 71, 71, 2025, 2018, 2027, 2019, 2022, 2028, - 71, 71, 2030, 71, 71, 2023, 2026, 2031, 71, 2033, - 71, 71, 2032, 71, 2029, 71, 2034, 2035, 71, 71, - 2036, 71, 2040, 71, 71, 71, 2037, 71, 2038, 2041, - 2043, 71, 71, 71, 2039, 2044, 71, 2042, 71, 71, - - 2046, 2048, 71, 2049, 2051, 71, 2052, 71, 2047, 2053, - 2045, 71, 2055, 71, 2050, 71, 2054, 2483, 71, 71, - 2056, 71, 2057, 71, 2059, 2060, 71, 2064, 2058, 2061, - 71, 71, 2065, 71, 2063, 71, 2062, 71, 2068, 71, - 2066, 71, 2067, 2069, 71, 71, 2070, 71, 71, 71, - 71, 71, 71, 71, 2071, 2074, 2073, 71, 2077, 71, - 2076, 2075, 2072, 71, 2078, 2080, 71, 71, 2083, 2079, - 71, 71, 2081, 71, 71, 2082, 71, 2088, 71, 2084, - 71, 71, 71, 2090, 2092, 71, 71, 71, 71, 71, - 2085, 2097, 2096, 2086, 2100, 2087, 2091, 71, 71, 2089, - - 71, 2093, 2094, 2098, 71, 71, 2095, 2101, 2099, 71, - 71, 71, 71, 2103, 71, 2106, 2107, 71, 2102, 71, - 71, 2110, 2111, 71, 2104, 71, 2105, 2112, 71, 71, - 71, 71, 2108, 2113, 2114, 71, 71, 2115, 71, 2109, - 2116, 71, 2118, 71, 2117, 2121, 2122, 71, 2126, 2119, - 71, 71, 2120, 2124, 2123, 71, 2128, 71, 2125, 71, - 71, 2127, 71, 71, 2130, 2131, 71, 71, 2132, 71, - 71, 71, 2134, 71, 2136, 2133, 71, 71, 71, 71, - 71, 2139, 2129, 2143, 71, 71, 71, 71, 2147, 71, - 2137, 2138, 71, 2142, 2145, 2135, 2140, 2141, 71, 2144, - - 71, 2148, 71, 2149, 2146, 71, 2150, 71, 2151, 2153, - 71, 71, 2152, 71, 2158, 71, 71, 71, 71, 2155, - 2159, 2161, 71, 71, 2154, 2162, 2163, 71, 2164, 71, - 71, 2156, 71, 2157, 2160, 2167, 71, 71, 2165, 2171, - 71, 2168, 71, 71, 2172, 71, 71, 2170, 2166, 2169, - 2175, 71, 2174, 71, 71, 2173, 71, 71, 2177, 71, - 71, 2182, 2176, 71, 2181, 71, 2187, 71, 2179, 71, - 2184, 71, 2183, 71, 2185, 71, 71, 2186, 2180, 2178, - 2188, 2191, 2192, 2195, 71, 71, 71, 71, 71, 2189, - 2193, 2194, 71, 71, 2190, 2200, 71, 71, 2198, 2202, - - 71, 71, 71, 71, 71, 2196, 2205, 71, 71, 71, - 71, 71, 2208, 2197, 2199, 71, 71, 2206, 2204, 71, - 2209, 2203, 2201, 2207, 2212, 2210, 71, 2215, 71, 71, - 71, 2213, 2217, 71, 2211, 2218, 71, 2220, 71, 71, - 71, 71, 2223, 71, 71, 2214, 2222, 71, 2216, 71, - 2227, 2219, 71, 71, 71, 2221, 2230, 71, 2231, 71, - 2224, 71, 2232, 71, 71, 71, 2226, 2225, 2228, 2237, - 71, 71, 71, 71, 2229, 2238, 2235, 71, 2239, 71, - 2242, 2233, 2234, 2240, 2245, 2236, 71, 2243, 71, 71, - 71, 71, 2244, 2241, 71, 71, 2247, 2246, 2250, 2248, - - 71, 2253, 71, 71, 71, 2254, 71, 2256, 71, 2257, - 71, 71, 71, 71, 2249, 71, 2258, 2251, 2252, 71, - 2260, 2483, 2255, 2261, 71, 71, 2259, 2262, 71, 2263, - 71, 71, 2265, 71, 71, 2267, 2264, 71, 2266, 71, - 2268, 2269, 71, 2273, 71, 2271, 2272, 71, 2270, 71, - 2276, 71, 2274, 2278, 71, 71, 71, 71, 71, 2277, - 2279, 71, 71, 2275, 71, 71, 2282, 71, 71, 71, - 2284, 71, 71, 2285, 2283, 71, 71, 2280, 2281, 71, - 71, 2296, 71, 71, 2294, 71, 2286, 2290, 2287, 2288, - 2289, 71, 2291, 2292, 2297, 71, 2317, 2293, 71, 2306, - - 2295, 2305, 2298, 2299, 71, 2300, 71, 2301, 2302, 71, - 71, 2304, 71, 2303, 2307, 71, 71, 71, 71, 71, - 71, 2309, 71, 2308, 71, 2313, 2314, 71, 71, 2312, - 2315, 71, 71, 2310, 2320, 71, 2322, 2311, 71, 2321, - 71, 2318, 71, 2316, 2319, 71, 71, 2323, 71, 71, - 2324, 2326, 2483, 2327, 2329, 71, 2330, 71, 2334, 2325, - 2331, 71, 2332, 71, 2328, 2333, 71, 2335, 71, 2336, - 71, 71, 71, 71, 2339, 71, 2341, 71, 71, 71, - 71, 71, 2343, 71, 2338, 2348, 2337, 71, 2345, 71, - 2340, 71, 2347, 71, 71, 71, 2342, 2349, 2350, 2346, - - 71, 71, 71, 71, 2354, 71, 2344, 2356, 71, 71, - 71, 2353, 71, 2351, 71, 71, 2362, 2361, 2352, 2358, - 71, 2360, 71, 2364, 71, 2355, 71, 71, 2357, 71, - 2363, 71, 2359, 2365, 71, 71, 2373, 71, 71, 2375, - 71, 71, 2376, 2366, 2367, 2368, 2370, 2374, 71, 2372, - 2377, 71, 2369, 71, 2371, 2378, 71, 71, 71, 71, - 2381, 71, 71, 2382, 2383, 2386, 71, 2379, 2388, 71, - 71, 71, 71, 2380, 71, 2392, 71, 2385, 71, 2393, - 2387, 71, 71, 71, 71, 2396, 2384, 2390, 2397, 2389, - 2394, 71, 2391, 71, 71, 71, 71, 2398, 71, 71, - - 2395, 71, 2403, 2400, 71, 71, 2399, 71, 71, 2405, - 2402, 71, 71, 71, 71, 2401, 2410, 2411, 2407, 2404, - 2406, 2408, 2414, 71, 71, 71, 2409, 71, 2416, 2415, - 2418, 2412, 2419, 2413, 71, 71, 2417, 71, 71, 2422, - 71, 71, 2420, 2424, 71, 71, 2423, 71, 71, 71, - 71, 2425, 2430, 71, 71, 2427, 71, 2421, 71, 2426, - 71, 2433, 2434, 71, 71, 71, 71, 2432, 2428, 2429, - 2437, 71, 2431, 2435, 71, 2438, 2436, 71, 2441, 2442, - 71, 71, 71, 2445, 2440, 2439, 71, 71, 2447, 71, - 2448, 71, 71, 2443, 71, 71, 2449, 2452, 71, 2450, - - 2453, 71, 71, 2454, 71, 2446, 71, 2444, 2455, 71, - 71, 2456, 71, 2451, 71, 2461, 71, 2457, 71, 2459, - 71, 2458, 71, 2463, 71, 2460, 71, 2464, 71, 2467, - 71, 2462, 2468, 71, 71, 2471, 2472, 71, 2483, 2465, - 71, 2474, 71, 2466, 71, 2469, 71, 2473, 71, 2470, - 2475, 71, 71, 2476, 71, 2481, 71, 2477, 2483, 2478, - 2482, 71, 2483, 2479, 2483, 2483, 2483, 2480, 43, 43, - 43, 43, 43, 43, 43, 48, 48, 48, 48, 48, - 48, 48, 53, 53, 53, 53, 53, 53, 53, 59, - 59, 59, 59, 59, 59, 59, 64, 64, 64, 64, - - 64, 64, 64, 74, 74, 2483, 74, 74, 74, 74, - 139, 139, 2483, 2483, 2483, 139, 139, 141, 141, 2483, - 2483, 141, 2483, 141, 143, 2483, 2483, 2483, 2483, 2483, - 143, 146, 146, 2483, 2483, 2483, 146, 146, 148, 2483, - 2483, 2483, 2483, 2483, 148, 150, 150, 2483, 150, 150, - 150, 150, 75, 75, 2483, 75, 75, 75, 75, 13, - 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, - 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, - 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, - 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483 - + 424, 409, 71, 414, 419, 408, 71, 415, 411, 417, + 425, 418, 71, 416, 71, 420, 71, 71, 71, 426, + 71, 429, 71, 71, 71, 481, 71, 71, 421, 71, + 427, 422, 71, 423, 430, 71, 448, 431, 428, 432, + 433, 435, 71, 434, 447, 437, 436, 449, 71, 439, + 149, 71, 450, 71, 451, 71, 71, 71, 71, 71, + 71, 438, 71, 71, 440, 441, 538, 71, 71, 458, + + 453, 452, 454, 71, 442, 455, 443, 444, 445, 457, + 459, 446, 71, 461, 456, 71, 71, 462, 463, 71, + 460, 71, 467, 468, 465, 71, 471, 464, 71, 71, + 466, 71, 71, 469, 71, 71, 71, 71, 71, 470, + 474, 475, 476, 71, 71, 71, 71, 473, 71, 482, + 478, 71, 480, 479, 472, 483, 477, 71, 485, 487, + 71, 486, 71, 71, 71, 71, 488, 71, 149, 494, + 484, 490, 493, 71, 489, 497, 496, 495, 71, 71, + 71, 71, 491, 71, 492, 499, 498, 500, 71, 71, + 503, 71, 71, 501, 71, 71, 507, 505, 502, 508, + + 71, 510, 71, 71, 504, 71, 509, 506, 511, 512, + 71, 71, 71, 71, 71, 517, 71, 516, 71, 71, + 520, 518, 513, 71, 515, 71, 521, 71, 71, 514, + 71, 71, 71, 71, 71, 523, 531, 524, 71, 519, + 71, 71, 71, 526, 522, 533, 71, 532, 530, 71, + 525, 527, 529, 528, 535, 534, 536, 539, 71, 71, + 71, 71, 71, 71, 542, 71, 71, 71, 71, 537, + 545, 71, 541, 546, 71, 71, 547, 71, 71, 548, + 71, 540, 543, 549, 71, 561, 544, 71, 71, 563, + 550, 71, 551, 71, 560, 558, 559, 552, 71, 553, + + 71, 568, 562, 565, 564, 71, 570, 554, 71, 71, + 555, 556, 71, 569, 566, 71, 567, 557, 71, 572, + 71, 71, 71, 71, 71, 71, 71, 573, 578, 71, + 575, 585, 574, 571, 579, 582, 71, 71, 149, 71, + 576, 581, 584, 580, 577, 583, 71, 71, 71, 71, + 71, 586, 71, 590, 592, 595, 71, 594, 71, 71, + 71, 71, 588, 591, 593, 587, 589, 597, 71, 71, + 71, 596, 598, 71, 71, 601, 71, 599, 71, 602, + 71, 606, 71, 600, 147, 603, 607, 71, 604, 609, + 71, 610, 71, 608, 605, 611, 612, 71, 613, 71, + + 614, 71, 71, 615, 71, 71, 71, 616, 71, 71, + 71, 619, 71, 618, 623, 71, 622, 71, 71, 624, + 71, 71, 628, 617, 71, 71, 626, 71, 71, 621, + 629, 71, 620, 71, 631, 625, 71, 635, 627, 632, + 71, 630, 634, 633, 71, 637, 71, 71, 641, 638, + 71, 636, 71, 71, 71, 643, 71, 644, 71, 642, + 639, 646, 640, 647, 71, 71, 71, 651, 71, 71, + 71, 650, 71, 71, 71, 71, 657, 655, 649, 645, + 648, 652, 654, 71, 71, 653, 71, 71, 661, 658, + 656, 662, 659, 660, 71, 664, 71, 71, 71, 663, + + 71, 71, 71, 665, 667, 71, 671, 666, 71, 668, + 71, 669, 71, 71, 676, 672, 674, 673, 670, 71, + 71, 71, 679, 71, 678, 71, 681, 680, 71, 71, + 71, 675, 683, 677, 71, 71, 71, 685, 71, 71, + 71, 71, 71, 71, 71, 691, 71, 686, 682, 71, + 71, 692, 71, 684, 687, 71, 688, 698, 689, 693, + 690, 694, 696, 71, 697, 695, 71, 71, 71, 71, + 71, 699, 71, 705, 700, 71, 71, 71, 71, 706, + 71, 71, 709, 71, 701, 702, 703, 708, 704, 707, + 71, 71, 758, 71, 710, 71, 712, 713, 714, 711, + + 71, 71, 715, 71, 71, 716, 717, 71, 71, 718, + 719, 71, 71, 720, 149, 725, 71, 722, 71, 724, + 726, 721, 71, 723, 71, 730, 71, 727, 71, 731, + 733, 71, 71, 71, 736, 71, 728, 732, 71, 71, + 71, 734, 738, 71, 741, 729, 71, 71, 71, 71, + 71, 739, 735, 71, 742, 737, 71, 71, 71, 773, + 71, 740, 71, 746, 71, 743, 754, 747, 751, 745, + 748, 753, 71, 744, 752, 71, 755, 749, 71, 756, + 750, 71, 757, 71, 760, 761, 71, 71, 769, 759, + 71, 71, 71, 762, 763, 71, 764, 774, 71, 765, + + 71, 776, 775, 71, 766, 771, 71, 770, 71, 778, + 767, 768, 71, 71, 71, 772, 780, 779, 777, 781, + 71, 71, 782, 71, 71, 784, 71, 785, 71, 71, + 789, 71, 71, 783, 71, 71, 788, 71, 795, 71, + 71, 145, 794, 799, 786, 787, 790, 793, 791, 71, + 792, 797, 798, 71, 796, 71, 71, 71, 71, 800, + 71, 71, 71, 801, 802, 71, 804, 807, 71, 805, + 71, 810, 71, 71, 71, 71, 71, 71, 803, 808, + 809, 71, 71, 812, 806, 813, 71, 815, 71, 814, + 71, 817, 811, 71, 819, 816, 71, 71, 71, 71, + + 822, 824, 820, 818, 825, 71, 71, 71, 823, 71, + 71, 827, 71, 71, 71, 71, 71, 71, 71, 826, + 821, 834, 71, 833, 837, 71, 71, 71, 828, 829, + 830, 71, 71, 832, 831, 836, 835, 838, 841, 71, + 840, 839, 842, 71, 71, 71, 71, 843, 849, 71, + 851, 844, 71, 71, 71, 71, 71, 852, 71, 845, + 848, 71, 859, 856, 144, 847, 846, 854, 71, 850, + 71, 853, 71, 858, 71, 855, 71, 860, 863, 71, + 865, 71, 857, 71, 71, 71, 868, 149, 861, 862, + 867, 71, 71, 71, 71, 71, 870, 71, 71, 864, + + 872, 866, 71, 71, 71, 884, 869, 71, 71, 142, + 71, 885, 875, 873, 71, 871, 71, 71, 888, 71, + 71, 874, 876, 886, 877, 71, 71, 71, 878, 916, + 879, 889, 890, 891, 880, 887, 881, 892, 71, 908, + 894, 882, 893, 71, 71, 71, 883, 71, 895, 71, + 897, 71, 899, 896, 71, 71, 904, 905, 71, 906, + 898, 903, 71, 900, 71, 907, 71, 71, 902, 71, + 71, 71, 901, 71, 917, 71, 920, 71, 921, 71, + 71, 918, 919, 71, 909, 71, 910, 922, 926, 71, + 71, 911, 928, 912, 923, 71, 924, 71, 71, 927, + + 929, 71, 925, 71, 913, 914, 932, 71, 933, 930, + 71, 915, 71, 71, 931, 71, 71, 938, 71, 935, + 71, 71, 936, 71, 71, 939, 934, 71, 947, 941, + 71, 937, 71, 71, 71, 943, 71, 940, 71, 945, + 942, 946, 71, 71, 71, 71, 71, 944, 952, 953, + 948, 954, 949, 71, 955, 957, 950, 951, 71, 956, + 71, 71, 960, 71, 71, 71, 958, 961, 71, 71, + 962, 71, 968, 963, 964, 71, 959, 965, 71, 71, + 967, 71, 970, 71, 966, 71, 71, 71, 972, 71, + 973, 975, 71, 71, 976, 969, 71, 982, 71, 978, + + 71, 981, 971, 974, 977, 71, 980, 71, 71, 71, + 71, 71, 979, 985, 983, 71, 71, 990, 991, 71, + 71, 996, 71, 71, 71, 992, 984, 986, 71, 989, + 987, 71, 995, 993, 71, 988, 71, 994, 71, 999, + 997, 71, 71, 71, 1003, 1004, 71, 1007, 71, 71, + 71, 71, 998, 1000, 1006, 1002, 71, 71, 71, 1001, + 1011, 1005, 71, 71, 71, 71, 71, 71, 1017, 71, + 1010, 1009, 1013, 71, 71, 1008, 71, 1021, 71, 71, + 1012, 1020, 1023, 71, 1014, 1026, 1016, 1018, 71, 1019, + 1024, 1015, 71, 71, 71, 71, 71, 1025, 1027, 1022, + + 71, 71, 71, 71, 71, 1030, 71, 71, 1028, 1029, + 1033, 1036, 71, 71, 71, 71, 1031, 71, 140, 1034, + 1086, 1032, 71, 1039, 71, 1035, 71, 1037, 71, 1041, + 71, 1045, 1038, 1046, 71, 1040, 1048, 71, 1042, 71, + 1043, 1047, 1049, 1044, 1050, 71, 1051, 71, 71, 71, + 1052, 1056, 71, 1054, 71, 71, 71, 71, 71, 1057, + 71, 1059, 1060, 71, 71, 71, 1053, 71, 1055, 1061, + 71, 71, 1062, 71, 1066, 1058, 1064, 71, 71, 71, + 1065, 71, 1063, 1067, 1071, 71, 1076, 71, 71, 1068, + 71, 71, 71, 71, 1069, 1070, 1072, 1075, 1078, 1073, + + 71, 1077, 71, 1082, 71, 1074, 71, 1080, 1083, 71, + 71, 1079, 1081, 71, 1087, 71, 1096, 71, 1097, 1095, + 1085, 71, 71, 1084, 71, 71, 1098, 71, 1094, 1088, + 71, 71, 1089, 1090, 1099, 1100, 1101, 1091, 71, 1102, + 71, 71, 71, 1092, 71, 1107, 1108, 1093, 1109, 1105, + 1104, 71, 71, 71, 71, 1111, 1106, 71, 1110, 71, + 1103, 71, 1117, 1118, 71, 71, 1112, 71, 1120, 71, + 1119, 1113, 71, 1114, 1124, 1115, 71, 1116, 71, 1125, + 71, 1123, 1121, 71, 71, 71, 71, 1122, 71, 71, + 1126, 1131, 1127, 1129, 71, 71, 71, 1128, 1130, 1137, + + 71, 1136, 1132, 1133, 71, 1139, 71, 1134, 71, 71, + 1140, 71, 1141, 71, 1144, 71, 1142, 71, 71, 1138, + 1135, 1146, 71, 1147, 71, 71, 1150, 71, 71, 71, + 2507, 71, 1143, 1153, 1152, 71, 71, 1145, 1154, 71, + 71, 1155, 71, 1159, 71, 1148, 1149, 1156, 1151, 1157, + 71, 71, 71, 71, 1164, 1158, 1165, 1161, 1160, 1162, + 71, 1167, 71, 71, 71, 71, 1163, 71, 1166, 71, + 1171, 71, 71, 1168, 71, 71, 1175, 1176, 71, 71, + 1170, 71, 71, 71, 1169, 71, 71, 71, 1183, 71, + 1180, 71, 1172, 1177, 1173, 71, 71, 71, 1174, 1178, + + 1181, 1179, 1187, 1182, 1188, 71, 71, 71, 71, 1184, + 71, 1190, 1192, 1186, 71, 71, 1185, 1193, 71, 1189, + 71, 71, 1196, 1194, 71, 1197, 1191, 71, 1195, 1200, + 1198, 1204, 1201, 1199, 71, 1203, 1202, 71, 71, 71, + 71, 71, 1205, 71, 71, 71, 1207, 71, 1210, 71, + 1206, 71, 1215, 71, 71, 71, 71, 1216, 71, 1209, + 71, 1213, 1211, 71, 71, 1212, 1208, 1214, 1219, 71, + 71, 71, 1217, 71, 1218, 1222, 1225, 1220, 1221, 71, + 1226, 71, 1224, 71, 1223, 71, 1227, 71, 1228, 71, + 1230, 1232, 1229, 71, 1231, 1235, 1236, 71, 1234, 71, + + 1237, 71, 71, 71, 1238, 1239, 71, 71, 1233, 71, + 71, 1240, 71, 71, 71, 1242, 71, 1246, 1241, 71, + 1245, 71, 71, 71, 1243, 1252, 71, 1244, 1249, 1248, + 1253, 71, 1254, 1250, 1247, 71, 71, 1255, 71, 71, + 71, 1251, 1260, 71, 71, 1264, 1256, 71, 71, 71, + 1263, 71, 71, 71, 1257, 1258, 71, 71, 1259, 71, + 2507, 1269, 1262, 71, 1272, 71, 1261, 71, 1265, 71, + 1273, 1266, 1267, 1277, 1271, 1268, 71, 1274, 1270, 1275, + 71, 1276, 71, 71, 71, 71, 71, 1281, 71, 71, + 71, 1282, 1279, 1286, 71, 1278, 71, 1280, 71, 71, + + 71, 1287, 1288, 1289, 1283, 1285, 1284, 1293, 1290, 71, + 1292, 1294, 71, 71, 71, 71, 71, 1298, 1291, 1299, + 1297, 1300, 71, 1301, 71, 71, 71, 1295, 71, 71, + 71, 1305, 1304, 71, 71, 1296, 71, 1308, 71, 1307, + 71, 71, 1302, 71, 1303, 71, 1311, 71, 1313, 1315, + 71, 71, 71, 1309, 1306, 1312, 1316, 71, 1318, 71, + 71, 71, 1314, 71, 1321, 1310, 1324, 71, 71, 71, + 71, 1317, 1320, 1323, 71, 71, 1328, 71, 71, 71, + 71, 1319, 1322, 1329, 1326, 71, 71, 1325, 1327, 1332, + 1333, 71, 1337, 1335, 71, 71, 1339, 1330, 71, 1331, + + 1336, 71, 71, 1341, 71, 71, 1334, 71, 71, 71, + 1345, 71, 1346, 1343, 1338, 1340, 71, 71, 71, 71, + 71, 1351, 1350, 71, 1342, 71, 71, 2507, 71, 71, + 1347, 1354, 1344, 1349, 1355, 1348, 1357, 1352, 1359, 71, + 71, 71, 71, 1353, 1358, 1360, 1356, 71, 1363, 71, + 1362, 1361, 71, 1364, 71, 71, 1365, 71, 71, 1368, + 71, 1371, 1366, 1372, 71, 71, 1374, 71, 1369, 71, + 1373, 1367, 71, 71, 1377, 71, 71, 71, 1376, 71, + 1370, 1378, 71, 71, 71, 1386, 71, 1375, 71, 71, + 71, 71, 71, 71, 71, 1379, 71, 1382, 1383, 1380, + + 1384, 1393, 1381, 1385, 1391, 71, 1387, 1389, 71, 1388, + 71, 1394, 71, 1390, 1392, 71, 71, 71, 71, 71, + 71, 71, 71, 1395, 71, 71, 1396, 1399, 1401, 1408, + 71, 71, 1400, 1402, 1398, 1404, 1403, 1405, 71, 1397, + 1409, 71, 1406, 71, 1411, 1407, 1410, 71, 71, 71, + 1415, 71, 1412, 1419, 1413, 1420, 71, 1414, 1416, 71, + 1418, 1417, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 1429, 71, 71, 71, 71, 1422, 71, 1424, 1426, + 1432, 1455, 1421, 1423, 1425, 71, 1431, 1428, 1430, 71, + 1433, 1427, 1437, 1438, 1435, 1440, 71, 1436, 1439, 71, + + 1443, 71, 1442, 71, 1434, 71, 71, 1445, 71, 71, + 1444, 71, 1449, 71, 1441, 1446, 71, 71, 71, 71, + 1451, 71, 71, 71, 1458, 1448, 1452, 71, 1447, 1450, + 71, 71, 71, 71, 71, 1456, 1463, 1457, 1453, 71, + 1454, 71, 71, 71, 1459, 1460, 1462, 1466, 71, 71, + 1464, 1461, 1472, 1468, 71, 71, 71, 1465, 71, 1469, + 1470, 1467, 71, 1471, 1475, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 1483, 1478, 71, 1474, 71, 1473, + 71, 1477, 1479, 1480, 1671, 1476, 71, 71, 1481, 1488, + 1484, 1485, 1482, 1486, 1487, 71, 1489, 71, 71, 71, + + 1492, 71, 71, 1490, 71, 71, 1494, 71, 1491, 71, + 1495, 71, 71, 71, 1493, 71, 71, 71, 1500, 71, + 71, 71, 1509, 71, 1501, 1496, 1504, 71, 1502, 1498, + 1499, 1497, 1503, 71, 1510, 1508, 1505, 71, 71, 1507, + 71, 71, 71, 1514, 71, 1515, 1516, 71, 71, 1506, + 1517, 71, 1519, 71, 1511, 71, 1512, 71, 1513, 1522, + 71, 1523, 1518, 71, 1524, 1526, 1525, 71, 1528, 1520, + 71, 71, 71, 71, 71, 71, 1521, 1533, 1530, 1531, + 71, 71, 1532, 71, 71, 1527, 71, 71, 1540, 71, + 1542, 71, 71, 1538, 71, 1543, 71, 1529, 1534, 1535, + + 1536, 71, 1546, 1544, 1539, 1537, 71, 1541, 1545, 1548, + 71, 71, 1550, 1552, 71, 71, 1547, 71, 71, 1549, + 71, 1554, 71, 71, 1557, 1558, 71, 71, 71, 1561, + 71, 71, 1551, 71, 71, 71, 1559, 71, 1555, 71, + 1563, 71, 1566, 1553, 1556, 71, 1562, 71, 1564, 1560, + 1569, 1570, 71, 1568, 1575, 71, 1573, 71, 1574, 1572, + 1565, 1567, 71, 71, 71, 71, 71, 1571, 1576, 71, + 71, 71, 71, 71, 1577, 1581, 71, 1584, 71, 71, + 71, 71, 1580, 71, 1586, 71, 1578, 71, 1579, 1582, + 71, 1591, 71, 1585, 1593, 71, 1589, 71, 1588, 1583, + + 1587, 1592, 1590, 1594, 71, 71, 1598, 71, 1596, 1595, + 71, 1599, 1601, 1597, 71, 1603, 1604, 71, 71, 71, + 71, 71, 1605, 1609, 1600, 1608, 71, 1611, 1610, 71, + 1606, 1612, 71, 71, 1602, 1607, 1615, 71, 71, 71, + 71, 71, 71, 1617, 1614, 1620, 1613, 71, 1622, 71, + 1616, 71, 1618, 71, 71, 71, 71, 71, 1624, 1625, + 1636, 1623, 71, 1626, 1627, 71, 1619, 1628, 71, 1621, + 1630, 71, 71, 71, 71, 1629, 71, 1631, 1632, 71, + 1633, 1634, 71, 71, 1635, 71, 71, 1641, 71, 71, + 71, 1640, 1645, 71, 1637, 1638, 71, 1639, 1642, 71, + + 71, 1643, 71, 71, 1644, 71, 1652, 71, 71, 1647, + 1646, 1650, 71, 1651, 71, 1654, 71, 71, 71, 1653, + 1648, 71, 1649, 71, 1661, 71, 1655, 1657, 71, 1659, + 1658, 71, 71, 71, 1656, 1666, 1660, 71, 71, 1668, + 71, 71, 1669, 71, 1662, 71, 1665, 1663, 1664, 1670, + 71, 71, 1672, 71, 1667, 71, 1674, 71, 71, 71, + 1675, 71, 71, 1673, 71, 71, 71, 71, 71, 1677, + 1678, 1679, 1682, 71, 1676, 1686, 71, 1681, 71, 1685, + 71, 1689, 1693, 1687, 1684, 1683, 71, 1680, 1688, 71, + 71, 1690, 71, 1691, 1692, 71, 71, 1695, 71, 71, + + 1698, 71, 1696, 1700, 71, 1697, 71, 71, 1694, 1703, + 71, 1702, 71, 1699, 71, 1704, 71, 1705, 1708, 71, + 71, 71, 71, 71, 71, 1709, 71, 1701, 1714, 71, + 1711, 71, 1706, 71, 1710, 1720, 1707, 1713, 1712, 71, + 1715, 1716, 1718, 71, 71, 71, 1722, 71, 71, 1719, + 71, 1717, 71, 1723, 71, 1721, 1724, 71, 71, 1725, + 1726, 1728, 71, 1729, 71, 71, 71, 71, 71, 1730, + 1732, 1727, 1733, 71, 71, 71, 1731, 71, 71, 1734, + 71, 71, 71, 1740, 71, 1741, 71, 1739, 1735, 71, + 1742, 1736, 1737, 1738, 71, 1744, 71, 1746, 1749, 71, + + 71, 1751, 71, 1743, 1745, 1748, 71, 71, 71, 1750, + 1753, 1747, 1754, 1752, 1756, 71, 71, 71, 1758, 1757, + 71, 1755, 1761, 71, 1759, 71, 1762, 71, 1766, 71, + 71, 1767, 71, 1770, 71, 71, 1765, 1760, 71, 71, + 1763, 1772, 71, 1771, 1768, 71, 71, 1774, 71, 71, + 1773, 1764, 1769, 71, 71, 1776, 71, 71, 1775, 71, + 1777, 71, 1779, 1781, 1782, 71, 1785, 71, 71, 71, + 71, 1778, 1780, 1786, 71, 1788, 71, 71, 71, 1783, + 71, 1784, 1791, 1787, 1792, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 1790, 1856, 1793, 71, 1794, + + 1789, 1803, 1799, 1802, 71, 1804, 71, 1797, 1801, 1795, + 1798, 1796, 1800, 71, 71, 1807, 1808, 71, 1809, 71, + 1805, 71, 71, 71, 1812, 71, 1806, 1815, 71, 71, + 71, 71, 71, 71, 1813, 1811, 1810, 1814, 1816, 71, + 1821, 71, 71, 1820, 1817, 1822, 71, 1824, 71, 1818, + 1819, 1823, 1826, 71, 1827, 71, 71, 71, 71, 71, + 1825, 1831, 71, 1830, 1833, 71, 71, 71, 71, 71, + 1828, 1836, 71, 1835, 71, 1837, 1829, 71, 1832, 1839, + 71, 1843, 71, 71, 1834, 71, 71, 1841, 1840, 71, + 1838, 1848, 71, 1847, 71, 71, 1842, 1850, 71, 71, + + 71, 1846, 71, 1844, 71, 1854, 1852, 71, 1845, 71, + 71, 1855, 71, 1849, 1858, 1851, 71, 1859, 71, 1857, + 71, 71, 71, 71, 71, 1863, 1853, 1864, 1865, 1861, + 71, 71, 71, 71, 71, 1860, 1866, 1867, 71, 1862, + 1870, 71, 1871, 1869, 71, 1875, 71, 1872, 1874, 1868, + 1873, 71, 71, 71, 1879, 1878, 1876, 1880, 71, 1881, + 71, 1885, 71, 71, 1877, 71, 71, 1882, 71, 71, + 71, 71, 1892, 71, 1887, 71, 71, 71, 1893, 2507, + 1883, 1886, 1884, 1888, 1889, 1890, 71, 1891, 1928, 1895, + 1896, 71, 1897, 71, 71, 71, 1894, 1898, 1900, 1901, + + 1899, 1902, 71, 71, 71, 71, 71, 1904, 71, 71, + 71, 71, 1908, 71, 71, 71, 1910, 1903, 1909, 71, + 1905, 1911, 71, 1906, 1912, 71, 71, 71, 71, 1907, + 1914, 71, 71, 71, 1921, 1913, 1918, 71, 1920, 71, + 71, 71, 1917, 1922, 71, 1915, 1925, 1916, 1926, 71, + 71, 1919, 71, 1930, 71, 71, 71, 1923, 1927, 1931, + 1924, 71, 1933, 1929, 71, 1935, 71, 71, 1934, 1937, + 71, 71, 1939, 71, 71, 71, 1938, 71, 1936, 71, + 1941, 1932, 1942, 1943, 71, 1944, 71, 1945, 71, 1946, + 71, 71, 1940, 71, 71, 1947, 1949, 71, 1952, 71, + + 1954, 71, 71, 71, 1957, 71, 71, 71, 1958, 1951, + 1953, 71, 1948, 1950, 1959, 71, 1960, 71, 1956, 1961, + 1955, 71, 71, 71, 1965, 71, 1966, 71, 1964, 1967, + 71, 1968, 71, 71, 71, 1962, 1963, 71, 1971, 71, + 1972, 71, 1974, 71, 71, 1969, 1975, 71, 1976, 71, + 71, 71, 1970, 1973, 71, 71, 1977, 1978, 71, 71, + 1981, 1983, 71, 1979, 71, 71, 71, 71, 1984, 71, + 71, 1990, 71, 71, 1980, 71, 71, 71, 1982, 1987, + 1995, 1991, 71, 1989, 71, 1986, 2507, 71, 71, 1997, + 1985, 1988, 1998, 1992, 71, 1993, 1996, 1999, 71, 1994, + + 2000, 71, 71, 2001, 71, 2002, 2003, 71, 71, 71, + 71, 71, 71, 2005, 71, 71, 71, 2013, 2004, 2014, + 71, 2010, 2016, 71, 71, 71, 71, 2007, 2006, 71, + 71, 2009, 2008, 2012, 2011, 2015, 2019, 71, 71, 71, + 71, 71, 2017, 2018, 2027, 2020, 2025, 71, 2026, 71, + 71, 71, 71, 71, 71, 2021, 2022, 2023, 2024, 2030, + 71, 71, 71, 71, 2035, 2031, 2034, 2029, 71, 2028, + 2036, 71, 71, 2032, 2033, 71, 71, 2037, 2038, 71, + 71, 2040, 2039, 71, 2045, 71, 2044, 71, 2041, 71, + 2048, 71, 71, 71, 71, 2042, 2049, 71, 2051, 71, + + 2043, 71, 2046, 2052, 71, 2054, 71, 2047, 2050, 2507, + 2053, 2055, 71, 2057, 71, 71, 2059, 71, 2056, 71, + 2058, 71, 2060, 2061, 71, 71, 71, 71, 71, 71, + 71, 2065, 2062, 2067, 2064, 71, 71, 2063, 2068, 71, + 71, 2066, 71, 2070, 2072, 2073, 2075, 71, 2069, 2076, + 71, 2071, 71, 71, 2079, 71, 71, 2074, 2078, 2077, + 71, 2080, 71, 2081, 71, 2084, 71, 2085, 71, 2083, + 2082, 71, 71, 2088, 2092, 2087, 71, 71, 2089, 71, + 71, 2090, 2091, 71, 2086, 71, 71, 2093, 71, 71, + 2094, 71, 71, 71, 71, 2095, 2098, 2097, 71, 2101, + + 71, 2100, 71, 2096, 2099, 2102, 71, 71, 71, 71, + 2107, 2103, 71, 71, 71, 2104, 2105, 2106, 71, 2112, + 71, 2108, 71, 2114, 71, 2109, 2116, 71, 71, 71, + 71, 71, 2121, 2110, 2507, 2120, 71, 2111, 71, 2115, + 71, 2113, 2122, 71, 2118, 2125, 71, 2117, 2123, 71, + 2119, 2124, 71, 71, 71, 71, 2127, 71, 2130, 2131, + 71, 71, 2126, 71, 2134, 2135, 71, 2128, 71, 2129, + 2136, 71, 71, 71, 71, 2132, 2137, 2138, 71, 71, + 2139, 2133, 2140, 71, 2142, 71, 2143, 2141, 2144, 2145, + 2146, 71, 71, 2148, 71, 71, 2147, 71, 2149, 71, + + 2152, 71, 71, 2151, 71, 71, 71, 2156, 2154, 2155, + 71, 71, 71, 2157, 2158, 71, 71, 2150, 2160, 71, + 71, 71, 71, 71, 2163, 71, 2153, 2167, 71, 71, + 2171, 71, 71, 2161, 2162, 71, 2166, 2159, 2164, 2169, + 71, 2165, 2168, 71, 2170, 71, 2172, 71, 2173, 71, + 2174, 2175, 71, 71, 71, 2182, 71, 2176, 2178, 71, + 2177, 71, 2179, 2180, 2183, 2185, 71, 71, 71, 2187, + 71, 71, 2188, 71, 2181, 2186, 71, 2184, 2191, 71, + 2189, 71, 71, 71, 2195, 2192, 71, 71, 2201, 2196, + 71, 2190, 2193, 2199, 71, 71, 2198, 2194, 71, 2197, + + 71, 71, 71, 2507, 2200, 71, 2206, 2205, 71, 71, + 2211, 71, 2203, 71, 2208, 71, 2209, 2207, 71, 2210, + 71, 71, 2204, 2202, 2216, 71, 2215, 2212, 71, 71, + 71, 71, 71, 2213, 2217, 71, 2218, 2219, 71, 2214, + 2222, 2224, 71, 2220, 2226, 71, 71, 71, 71, 2221, + 2223, 2229, 71, 71, 71, 71, 71, 71, 2232, 71, + 71, 71, 71, 2228, 2237, 2227, 2230, 2225, 2231, 2233, + 2236, 71, 2234, 2239, 71, 71, 2235, 2241, 71, 2242, + 71, 2244, 71, 71, 71, 2247, 71, 2238, 71, 2246, + 2240, 71, 71, 71, 2251, 71, 2243, 71, 71, 2245, + + 2254, 71, 2255, 71, 71, 71, 71, 2256, 2248, 2252, + 71, 2250, 2261, 71, 2249, 71, 71, 2259, 2262, 2253, + 71, 2263, 71, 2266, 2257, 2258, 2267, 71, 2264, 71, + 2260, 71, 2269, 71, 2268, 71, 71, 71, 71, 2274, + 2271, 2272, 2265, 71, 71, 71, 2277, 71, 2278, 71, + 71, 2270, 2280, 71, 2281, 71, 2273, 71, 2285, 71, + 2275, 2276, 2282, 2279, 2283, 71, 2286, 71, 2287, 71, + 2284, 71, 2289, 71, 71, 71, 2288, 71, 2292, 2293, + 71, 71, 71, 71, 2297, 71, 71, 71, 2300, 71, + 71, 2298, 2296, 2290, 71, 2294, 71, 2291, 2301, 2302, + + 71, 2299, 2295, 71, 71, 71, 71, 71, 2303, 2304, + 2306, 71, 2309, 2308, 71, 71, 2305, 71, 2307, 71, + 71, 71, 71, 71, 2320, 71, 71, 2318, 2321, 71, + 2310, 2341, 71, 2314, 2311, 2312, 2322, 2313, 2315, 2316, + 71, 2317, 71, 2319, 2323, 71, 2324, 71, 2325, 2326, + 71, 71, 2328, 71, 2327, 71, 2330, 71, 2329, 2331, + 71, 2333, 2332, 71, 71, 71, 71, 2337, 2338, 71, + 2339, 71, 71, 2346, 2336, 2344, 71, 71, 2334, 71, + 2345, 71, 2335, 71, 71, 2342, 71, 2340, 2343, 71, + 71, 2350, 2353, 71, 2351, 2354, 71, 2507, 2348, 2355, + + 71, 71, 2347, 2356, 71, 2349, 2357, 71, 71, 2352, + 2358, 2359, 71, 2360, 71, 71, 71, 2363, 71, 2365, + 71, 71, 71, 2361, 71, 2367, 71, 2362, 71, 2369, + 2372, 71, 71, 2364, 2371, 71, 71, 71, 71, 2366, + 2374, 71, 71, 71, 2370, 2378, 2373, 71, 71, 71, + 2368, 2380, 71, 71, 2377, 71, 2375, 71, 71, 2376, + 2385, 71, 2388, 2382, 2384, 71, 2379, 2386, 2381, 71, + 71, 2389, 2387, 71, 71, 2383, 71, 71, 71, 71, + 2397, 71, 2399, 71, 71, 2400, 2392, 2398, 2390, 2401, + 71, 2391, 2394, 2396, 2402, 71, 2395, 71, 71, 2393, + + 71, 71, 71, 2405, 71, 71, 2406, 2407, 2410, 71, + 2412, 71, 71, 71, 71, 71, 2403, 71, 2404, 71, + 2409, 2416, 71, 2411, 71, 2417, 2420, 2418, 2414, 2408, + 71, 2413, 71, 2415, 2421, 71, 2419, 71, 71, 71, + 71, 71, 71, 71, 2422, 2427, 71, 71, 2423, 71, + 71, 2429, 71, 2426, 71, 71, 2424, 71, 2425, 2434, + 2435, 2436, 2428, 2431, 2507, 2432, 2430, 71, 2433, 2438, + 71, 2440, 2439, 71, 2441, 71, 2437, 71, 71, 71, + 2442, 71, 2446, 2443, 2444, 71, 2448, 71, 71, 71, + 2447, 71, 71, 2449, 71, 71, 2454, 71, 71, 2451, + + 2445, 71, 71, 71, 2457, 2458, 71, 71, 71, 71, + 2450, 2456, 2461, 2452, 2453, 71, 2455, 2459, 71, 71, + 2460, 71, 2465, 71, 2466, 71, 2469, 2468, 2462, 71, + 71, 2464, 71, 2471, 2463, 2473, 2467, 71, 2472, 71, + 71, 2476, 71, 71, 71, 2478, 2474, 71, 2470, 2477, + 2479, 71, 71, 71, 2480, 71, 71, 2485, 71, 2475, + 2481, 2483, 71, 71, 71, 71, 71, 71, 2487, 2488, + 71, 2482, 71, 2491, 2484, 2492, 71, 71, 2495, 2496, + 71, 2486, 2507, 71, 2489, 2490, 2493, 2498, 71, 2494, + 2497, 2499, 71, 71, 71, 71, 71, 71, 2507, 2501, + + 2500, 2502, 2505, 71, 2506, 71, 2507, 2507, 2507, 2507, + 2507, 2507, 2507, 2507, 2503, 2507, 2504, 43, 43, 43, + 43, 43, 43, 43, 48, 48, 48, 48, 48, 48, + 48, 53, 53, 53, 53, 53, 53, 53, 59, 59, + 59, 59, 59, 59, 59, 64, 64, 64, 64, 64, + 64, 64, 74, 74, 2507, 74, 74, 74, 74, 139, + 139, 2507, 2507, 2507, 139, 139, 141, 141, 2507, 2507, + 141, 2507, 141, 143, 2507, 2507, 2507, 2507, 2507, 143, + 146, 146, 2507, 2507, 2507, 146, 146, 148, 2507, 2507, + 2507, 2507, 2507, 148, 150, 150, 2507, 150, 150, 150, + + 150, 75, 75, 2507, 75, 75, 75, 75, 13, 2507, + 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, + 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, + 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, + 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507 } ; -static yyconst flex_int16_t yy_chk[4901] = +static yyconst flex_int16_t yy_chk[4950] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1800,13 +1814,13 @@ static yyconst flex_int16_t yy_chk[4901] = 5, 3, 6, 20, 4, 20, 20, 5, 20, 6, 7, 7, 7, 7, 20, 7, 8, 8, 8, 8, 29, 8, 7, 9, 9, 9, 22, 22, 8, 10, - 10, 10, 15, 25, 9, 29, 15, 25, 2489, 31, + 10, 10, 15, 25, 9, 29, 15, 25, 2513, 31, 10, 11, 11, 11, 11, 11, 11, 19, 79, 19, 19, 30, 19, 11, 31, 79, 30, 25, 19, 19, 47, 47, 11, 12, 12, 12, 12, 12, 12, 21, 23, 23, 21, 21, 24, 12, 21, 88, 23, 24, - 26, 26, 23, 24, 12, 23, 24, 860, 24, 24, + 26, 26, 23, 24, 12, 23, 24, 868, 24, 24, 21, 27, 27, 34, 28, 26, 32, 32, 28, 88, 27, 28, 33, 33, 35, 32, 36, 33, 28, 35, 28, 32, 42, 35, 34, 32, 37, 37, 69, 35, @@ -1871,466 +1885,471 @@ static yyconst flex_int16_t yy_chk[4901] = 292, 296, 293, 297, 297, 293, 298, 299, 299, 300, 296, 298, 301, 294, 302, 303, 304, 301, 306, 305, - 312, 70, 307, 308, 300, 305, 302, 307, 309, 308, - 313, 304, 310, 309, 312, 303, 311, 310, 306, 311, - 316, 311, 315, 310, 314, 316, 313, 317, 315, 313, - 318, 313, 319, 314, 320, 321, 328, 330, 324, 322, - 317, 324, 325, 330, 327, 328, 318, 332, 317, 318, - 321, 318, 319, 322, 331, 320, 325, 324, 326, 327, - 326, 326, 329, 333, 334, 335, 332, 329, 329, 336, - 326, 337, 326, 326, 326, 331, 338, 326, 333, 339, - - 340, 341, 338, 334, 342, 337, 338, 343, 344, 336, - 345, 335, 343, 346, 347, 348, 345, 350, 349, 342, - 340, 341, 339, 344, 349, 351, 347, 352, 354, 348, - 355, 356, 352, 346, 353, 353, 357, 353, 358, 359, - 358, 351, 350, 359, 362, 360, 355, 356, 354, 360, - 357, 361, 361, 363, 364, 368, 365, 366, 367, 362, - 368, 369, 370, 372, 360, 369, 366, 367, 371, 363, - 365, 370, 364, 375, 371, 373, 374, 366, 375, 366, - 374, 373, 376, 378, 372, 377, 377, 379, 380, 381, - 381, 382, 379, 384, 383, 385, 378, 382, 383, 386, - - 385, 380, 376, 387, 388, 389, 390, 393, 386, 397, - 390, 391, 391, 392, 384, 387, 399, 389, 392, 394, - 394, 398, 388, 396, 396, 399, 400, 401, 393, 398, - 397, 403, 404, 405, 406, 407, 408, 410, 412, 401, - 406, 408, 409, 415, 407, 410, 400, 405, 411, 403, - 413, 403, 404, 413, 411, 414, 409, 415, 412, 416, - 417, 414, 418, 419, 416, 420, 421, 419, 422, 423, - 427, 421, 425, 429, 426, 436, 428, 450, 429, 414, - 420, 450, 417, 418, 422, 430, 427, 432, 423, 424, - 424, 428, 425, 426, 434, 424, 431, 424, 435, 435, - - 436, 430, 431, 432, 438, 424, 439, 431, 424, 424, - 433, 437, 437, 433, 434, 424, 440, 441, 439, 438, - 442, 443, 445, 444, 446, 449, 443, 447, 452, 451, - 453, 440, 444, 447, 449, 451, 441, 454, 455, 446, - 452, 445, 442, 456, 457, 459, 458, 456, 458, 453, - 460, 460, 454, 459, 461, 462, 455, 457, 463, 464, - 461, 466, 465, 467, 463, 465, 468, 462, 467, 468, - 469, 464, 470, 471, 472, 479, 466, 64, 471, 471, - 473, 473, 474, 474, 475, 481, 469, 472, 470, 469, - 475, 476, 476, 477, 477, 478, 479, 480, 482, 484, - - 483, 478, 480, 483, 481, 485, 482, 486, 487, 488, - 489, 486, 490, 488, 487, 491, 493, 490, 494, 492, - 59, 493, 484, 496, 485, 492, 495, 498, 489, 495, - 497, 497, 494, 501, 495, 491, 502, 499, 495, 500, - 503, 496, 499, 504, 500, 498, 503, 501, 509, 510, - 505, 502, 504, 505, 506, 507, 508, 514, 506, 515, - 507, 508, 510, 511, 509, 512, 512, 513, 511, 516, - 521, 515, 517, 514, 518, 516, 513, 518, 517, 519, - 506, 520, 519, 522, 523, 525, 520, 524, 521, 527, - 523, 525, 524, 526, 527, 528, 526, 522, 529, 530, - - 528, 528, 531, 532, 533, 536, 534, 540, 531, 534, - 535, 529, 530, 533, 537, 538, 535, 536, 542, 537, - 538, 538, 532, 544, 534, 539, 539, 541, 543, 541, - 543, 545, 540, 546, 547, 548, 549, 542, 550, 548, - 551, 544, 552, 553, 554, 549, 556, 557, 560, 545, - 555, 558, 546, 550, 547, 553, 555, 559, 551, 554, - 562, 552, 561, 561, 562, 556, 557, 560, 563, 558, - 564, 565, 566, 567, 570, 559, 565, 568, 569, 570, - 582, 564, 571, 574, 582, 569, 572, 563, 566, 571, - 568, 572, 567, 573, 576, 575, 577, 578, 573, 579, - - 580, 574, 575, 576, 581, 580, 578, 581, 583, 584, - 577, 579, 585, 586, 586, 587, 587, 583, 588, 588, - 589, 591, 592, 584, 587, 593, 594, 595, 592, 589, - 594, 596, 597, 585, 598, 599, 600, 601, 597, 595, - 591, 604, 598, 602, 616, 593, 607, 612, 602, 596, - 610, 612, 602, 599, 611, 602, 604, 601, 616, 610, - 611, 600, 602, 607, 615, 602, 613, 613, 614, 614, - 617, 618, 633, 620, 633, 615, 621, 618, 620, 623, - 624, 622, 626, 624, 625, 625, 627, 627, 54, 626, - 617, 619, 619, 619, 634, 619, 628, 621, 619, 622, - - 629, 629, 630, 619, 623, 631, 634, 630, 631, 619, - 619, 628, 632, 635, 636, 637, 639, 632, 636, 638, - 640, 640, 641, 643, 639, 642, 645, 649, 644, 646, - 646, 645, 635, 649, 655, 637, 53, 641, 638, 642, - 644, 643, 648, 650, 652, 651, 653, 648, 651, 650, - 652, 654, 655, 656, 653, 657, 658, 660, 656, 654, - 659, 659, 657, 661, 662, 663, 660, 665, 666, 667, - 662, 661, 667, 668, 669, 658, 665, 666, 668, 670, - 670, 671, 672, 673, 663, 674, 675, 679, 669, 675, - 681, 677, 673, 677, 678, 678, 671, 675, 680, 682, - - 683, 672, 686, 680, 684, 685, 686, 687, 679, 674, - 688, 681, 689, 691, 685, 690, 692, 693, 695, 682, - 696, 689, 683, 693, 684, 687, 697, 690, 699, 688, - 692, 698, 691, 694, 694, 700, 701, 702, 695, 704, - 696, 700, 699, 702, 707, 703, 714, 705, 697, 703, - 706, 698, 708, 708, 709, 706, 701, 711, 704, 705, - 709, 710, 713, 712, 710, 707, 714, 705, 713, 715, - 715, 716, 717, 718, 718, 711, 712, 717, 719, 720, - 721, 722, 723, 720, 725, 726, 722, 728, 729, 716, - 731, 731, 732, 719, 735, 734, 732, 733, 735, 726, - - 737, 723, 721, 736, 869, 737, 869, 728, 725, 729, - 730, 738, 733, 730, 740, 730, 746, 739, 736, 730, - 734, 730, 739, 739, 742, 738, 730, 743, 740, 741, - 744, 730, 743, 741, 745, 744, 747, 746, 748, 742, - 749, 752, 743, 753, 748, 754, 749, 752, 745, 751, - 747, 750, 750, 757, 751, 756, 759, 758, 757, 760, - 760, 761, 753, 754, 755, 755, 761, 756, 759, 762, - 755, 758, 755, 763, 764, 765, 767, 762, 766, 766, - 767, 771, 769, 755, 755, 772, 770, 763, 769, 770, - 755, 773, 775, 764, 765, 776, 774, 773, 772, 777, - - 771, 774, 778, 779, 776, 780, 781, 782, 777, 779, - 783, 775, 782, 784, 780, 785, 788, 786, 778, 787, - 790, 791, 788, 792, 793, 781, 786, 784, 787, 807, - 783, 794, 795, 796, 790, 785, 794, 795, 796, 793, - 791, 792, 797, 798, 798, 800, 799, 802, 803, 807, - 806, 797, 799, 803, 803, 804, 804, 805, 800, 804, - 805, 808, 809, 802, 806, 810, 811, 812, 809, 811, - 813, 815, 814, 816, 817, 813, 808, 814, 816, 817, - 818, 821, 824, 820, 822, 810, 825, 815, 812, 820, - 822, 824, 818, 823, 823, 826, 827, 821, 826, 828, - - 829, 831, 830, 832, 825, 833, 834, 831, 836, 832, - 833, 834, 837, 837, 827, 830, 838, 839, 828, 840, - 829, 841, 840, 842, 843, 838, 836, 844, 845, 846, - 848, 848, 841, 844, 845, 839, 843, 847, 849, 850, - 851, 842, 847, 852, 846, 853, 854, 852, 855, 856, - 858, 861, 851, 850, 48, 854, 862, 849, 859, 859, - 865, 863, 866, 853, 867, 861, 863, 855, 866, 858, - 867, 862, 864, 864, 856, 871, 868, 870, 872, 873, - 865, 868, 870, 874, 873, 875, 876, 877, 878, 871, - 879, 879, 872, 876, 880, 881, 883, 882, 874, 886, - - 886, 884, 877, 882, 875, 887, 884, 878, 880, 889, - 887, 888, 891, 881, 43, 884, 883, 884, 888, 890, - 884, 893, 890, 889, 892, 894, 893, 895, 896, 900, - 891, 899, 895, 892, 898, 898, 899, 901, 904, 902, - 905, 903, 901, 902, 894, 906, 907, 896, 908, 900, - 903, 909, 910, 904, 911, 908, 912, 906, 913, 905, - 915, 907, 914, 909, 913, 916, 919, 917, 920, 922, - 921, 910, 919, 927, 912, 911, 917, 914, 921, 923, - 915, 924, 920, 926, 923, 916, 925, 927, 928, 922, - 932, 925, 925, 924, 929, 929, 931, 940, 933, 932, - - 995, 928, 926, 930, 933, 934, 934, 995, 930, 931, - 935, 930, 930, 937, 936, 935, 930, 940, 937, 938, - 939, 939, 930, 936, 938, 941, 930, 942, 943, 944, - 945, 946, 942, 947, 941, 948, 945, 946, 947, 948, - 949, 952, 943, 950, 950, 956, 951, 944, 951, 949, - 955, 954, 952, 957, 949, 954, 949, 959, 949, 960, - 949, 958, 957, 956, 961, 955, 958, 958, 960, 962, - 963, 959, 965, 964, 967, 968, 966, 962, 964, 970, - 970, 971, 969, 961, 963, 966, 965, 969, 972, 972, - 974, 976, 967, 974, 975, 978, 971, 977, 977, 975, - - 968, 979, 979, 980, 981, 982, 983, 983, 980, 984, - 976, 985, 989, 988, 987, 978, 985, 987, 988, 990, - 989, 993, 991, 996, 990, 981, 982, 991, 994, 984, - 992, 992, 998, 1006, 994, 999, 996, 1000, 998, 993, - 1001, 999, 1000, 1002, 1003, 1004, 1001, 1005, 1005, 1008, - 1009, 1010, 1002, 1006, 1012, 1014, 1004, 1010, 1013, 1015, - 1012, 1017, 1016, 1003, 1018, 1018, 1019, 1020, 1024, 1008, - 1021, 1015, 1013, 1009, 1027, 1014, 1016, 1022, 1013, 1017, - 1023, 1023, 1022, 1032, 1025, 1029, 1019, 1031, 1021, 1025, - 1028, 1024, 1020, 1027, 1029, 1028, 1028, 1030, 1032, 1033, - - 1040, 1031, 1034, 1037, 1035, 1030, 1035, 1034, 1036, 1037, - 1034, 1038, 1039, 1041, 1033, 1038, 1042, 1033, 1044, 1040, - 1043, 1045, 1036, 1039, 1047, 1043, 1048, 1049, 1049, 1050, - 1051, 1052, 1054, 1050, 1042, 1053, 1044, 1056, 1047, 1041, - 1055, 1045, 1057, 1058, 1048, 1062, 1065, 1053, 1051, 1060, - 1052, 1054, 1056, 1059, 1055, 1061, 1060, 1057, 1059, 1063, - 1061, 1065, 1058, 1062, 1064, 1064, 1066, 1067, 1063, 1068, - 1069, 1070, 1066, 1077, 1068, 1076, 1069, 1070, 1071, 1071, - 1072, 1072, 1074, 1074, 1076, 1075, 1078, 1079, 1067, 1075, - 1080, 1077, 1081, 1081, 1082, 1083, 1084, 1080, 1085, 1086, - - 1078, 1084, 1079, 1083, 1087, 1089, 14, 1090, 1091, 1087, - 1087, 1088, 1085, 1092, 1082, 1093, 1088, 1088, 1086, 1094, - 1095, 1093, 1096, 1097, 1098, 1089, 1090, 1091, 1096, 1097, - 1099, 1100, 1092, 1101, 1102, 1103, 1104, 1105, 1105, 1095, - 13, 1106, 1107, 1098, 1106, 1094, 1108, 1108, 1102, 1099, - 1100, 1104, 1101, 1109, 1107, 1110, 1103, 1111, 1109, 1110, - 1112, 1113, 1114, 1116, 1114, 1122, 1117, 1124, 1114, 1112, - 1111, 1118, 1118, 1119, 1113, 1120, 1121, 1123, 1119, 1120, - 1121, 1114, 1117, 1116, 1125, 1122, 1128, 1124, 1126, 1126, - 1125, 1130, 1131, 1131, 1132, 1123, 1130, 1134, 1134, 1137, - - 1132, 1136, 1136, 1138, 1128, 1140, 1141, 1141, 1140, 1142, - 1143, 1143, 1144, 1145, 1142, 1137, 1146, 1146, 1147, 1138, - 1148, 1149, 1150, 1150, 1151, 1148, 1152, 1144, 1151, 1153, - 1153, 1154, 1147, 1155, 1161, 1156, 1149, 1157, 1145, 1156, - 1158, 1160, 1160, 1162, 1155, 1158, 1152, 1163, 1164, 1164, - 1165, 1166, 1161, 1154, 1167, 1165, 1157, 1162, 1168, 1169, - 1170, 1163, 1174, 1171, 1169, 1171, 1173, 1168, 1172, 1175, - 1177, 1166, 1173, 1172, 1167, 1175, 1178, 1178, 1179, 1180, - 1170, 1182, 1174, 1186, 1177, 1180, 1183, 1183, 1184, 1184, - 1185, 1187, 1188, 1189, 1189, 1188, 1190, 1179, 1191, 1197, - - 0, 1186, 1203, 1193, 1185, 1182, 1187, 1192, 1190, 1193, - 1192, 1194, 1195, 1192, 1196, 1203, 1194, 1198, 1191, 1196, - 1198, 1195, 1199, 1204, 1197, 1192, 1200, 1200, 1199, 1201, - 1201, 1202, 1205, 1206, 1207, 1211, 1202, 1208, 1215, 1209, - 1207, 1204, 1210, 1208, 1209, 1212, 1213, 1213, 1210, 1214, - 1212, 1205, 1216, 1206, 1214, 1217, 1215, 1218, 1211, 1219, - 1222, 1223, 1220, 1221, 1224, 1225, 1222, 1226, 1228, 1228, - 1229, 1218, 1216, 1219, 1220, 1217, 1221, 1230, 1232, 1225, - 1233, 1223, 1230, 1234, 1224, 1231, 1231, 1235, 1226, 1236, - 1229, 1237, 1238, 1232, 1233, 1240, 0, 1244, 1236, 1238, - - 1239, 1242, 1245, 1245, 1248, 1235, 1237, 1234, 1251, 1239, - 1250, 1240, 1239, 1246, 1246, 1247, 1242, 1251, 1247, 1249, - 1252, 1242, 1244, 1248, 1249, 1253, 1250, 1254, 1257, 1255, - 1256, 1256, 1258, 1259, 1253, 1255, 1254, 1253, 1260, 1252, - 1261, 1262, 1264, 1265, 1267, 1258, 1266, 1266, 1257, 1268, - 1269, 1259, 1260, 1262, 1272, 1269, 1261, 1271, 1268, 1273, - 1267, 1265, 1270, 1270, 1273, 1273, 1271, 1264, 1275, 1271, - 1276, 1283, 1272, 1278, 1275, 1277, 1277, 1270, 1279, 1278, - 1280, 1281, 1285, 1279, 1284, 1289, 1280, 1281, 1276, 1286, - 1284, 1283, 1286, 1290, 1291, 1285, 1292, 1293, 1286, 1295, - - 1294, 1296, 1291, 1293, 1289, 1297, 1299, 1300, 1298, 1292, - 1302, 1302, 1290, 1294, 1298, 1303, 1305, 1295, 1297, 1304, - 1296, 1305, 1299, 1304, 1306, 1300, 1307, 1308, 1309, 1306, - 1311, 1307, 1312, 1312, 1313, 1303, 1308, 1315, 1314, 1318, - 1319, 1320, 1316, 1317, 1315, 1311, 1322, 1320, 1329, 1321, - 1323, 1309, 1314, 1313, 1316, 1317, 1323, 1329, 1318, 1335, - 1319, 1321, 1324, 1324, 1322, 1325, 1326, 1326, 1325, 1328, - 1330, 1330, 1331, 1332, 1328, 1332, 1333, 1334, 1336, 1333, - 1337, 1335, 1338, 1339, 1331, 1342, 1341, 1338, 1340, 1344, - 1342, 1345, 1339, 1343, 1346, 1346, 1336, 1334, 1337, 1347, - - 1340, 1341, 1343, 1348, 1349, 1347, 1345, 1350, 1351, 1344, - 1351, 1352, 1352, 1353, 1353, 1343, 1354, 1354, 1355, 1356, - 1356, 1357, 1358, 1349, 1348, 1359, 1359, 1350, 1360, 1361, - 1362, 1364, 1360, 1362, 1365, 1361, 1367, 1364, 1355, 1366, - 1373, 1368, 1357, 1358, 1368, 1366, 1369, 1369, 1370, 1370, - 1371, 1372, 1365, 1374, 1376, 1379, 1371, 1380, 0, 1380, - 1373, 1367, 1375, 1372, 1372, 1372, 1378, 1381, 1375, 1379, - 1372, 1378, 1378, 1374, 1376, 1382, 1383, 1384, 1381, 1385, - 1386, 1388, 1383, 1387, 1387, 1390, 1384, 1389, 1389, 1391, - 1382, 1392, 1392, 1393, 1393, 1396, 1397, 1398, 1398, 1385, - - 1399, 1386, 1400, 1401, 1396, 1390, 1402, 1388, 1404, 1400, - 1405, 1391, 1401, 1403, 1403, 1399, 1407, 1397, 1408, 1409, - 1410, 1407, 1411, 1412, 1408, 1416, 1405, 1410, 1411, 1412, - 1413, 1413, 1402, 1414, 1404, 1415, 1417, 1418, 1414, 1409, - 1419, 1420, 1421, 1419, 1415, 1416, 1422, 1422, 1423, 1418, - 1424, 1427, 1426, 1429, 1424, 1417, 1430, 1438, 1431, 1420, - 1430, 1433, 1433, 1423, 1431, 1432, 1427, 1434, 1421, 1436, - 1424, 1426, 1429, 1437, 1432, 1435, 1435, 1438, 1434, 1439, - 1440, 1441, 1441, 1434, 1442, 1447, 1440, 1437, 1443, 1443, - 1436, 1444, 1445, 1448, 1451, 1442, 1444, 1444, 1445, 1439, - - 1442, 1446, 1449, 1453, 1454, 1448, 1451, 1446, 1449, 1452, - 1455, 1447, 1456, 1452, 1457, 1453, 1455, 1460, 1458, 1465, - 1457, 1461, 1460, 0, 1461, 1462, 1462, 1463, 1463, 1454, - 1458, 1464, 1464, 1468, 1456, 1466, 1467, 1469, 1468, 1465, - 1470, 1466, 1467, 1469, 1474, 1472, 1475, 1474, 1477, 1470, - 1472, 1478, 1479, 1480, 1480, 1481, 1482, 1479, 1475, 1485, - 1477, 1482, 1483, 1478, 1481, 1484, 1484, 1483, 1486, 1487, - 1488, 1489, 1492, 1490, 1491, 1489, 1495, 1486, 1490, 1485, - 1491, 1494, 1494, 1496, 1498, 1499, 1492, 1487, 1497, 1488, - 1502, 1502, 1496, 1494, 1495, 1504, 1498, 1497, 1499, 1505, - - 1508, 1507, 1509, 1510, 1511, 1511, 1517, 1512, 1509, 1512, - 1514, 1504, 1513, 1513, 1508, 1505, 1507, 1516, 1514, 1519, - 1510, 1518, 1518, 1520, 1516, 1521, 1517, 1522, 1519, 1523, - 1524, 1525, 1526, 1528, 1531, 1529, 0, 1521, 1526, 1522, - 1532, 1523, 1530, 1530, 1520, 1533, 1525, 1529, 1533, 1534, - 1535, 1526, 1531, 1528, 1534, 1539, 1524, 1537, 1540, 1538, - 1532, 1538, 1537, 1540, 1541, 1543, 1544, 1546, 1544, 1548, - 1535, 1541, 1549, 1539, 1543, 1547, 1547, 1549, 1550, 1551, - 1550, 1546, 1552, 1553, 1551, 1554, 1555, 1552, 1556, 1557, - 1558, 1560, 1555, 1556, 1561, 1548, 1562, 1562, 1558, 1563, - - 1563, 1553, 1557, 1564, 1565, 1554, 1566, 1569, 1561, 1567, - 1560, 1568, 1566, 1568, 1567, 1570, 1570, 1572, 1564, 1569, - 1571, 1571, 1574, 1573, 1565, 1573, 1572, 1575, 1575, 1572, - 1576, 1579, 1577, 1580, 1582, 1583, 1579, 1586, 1580, 1576, - 1584, 1585, 1591, 1574, 1577, 1588, 1589, 1582, 1591, 1594, - 1588, 1589, 1595, 1586, 1593, 1583, 1596, 1597, 1584, 1585, - 1593, 1591, 1598, 1598, 1599, 1601, 1597, 1595, 1600, 1600, - 1602, 1603, 1594, 1599, 1602, 1604, 1603, 1605, 1608, 1607, - 0, 1596, 1605, 1605, 1601, 1613, 1606, 1607, 1604, 1606, - 1611, 1611, 1612, 1612, 1613, 1614, 1614, 1616, 1608, 1615, - - 1615, 1617, 1618, 1620, 1620, 1619, 1621, 1612, 1618, 1616, - 1619, 1621, 1624, 1625, 1622, 1628, 1624, 1626, 1612, 1617, - 1622, 1626, 1629, 1630, 1631, 1632, 1633, 1629, 1637, 1634, - 1632, 1635, 1635, 1625, 1636, 1639, 1638, 1640, 1636, 1631, - 1628, 1638, 1641, 1637, 1633, 1634, 1630, 1641, 1642, 1642, - 1644, 1645, 1646, 1647, 1648, 1649, 1640, 1651, 1657, 1650, - 1688, 1639, 1654, 1654, 1653, 1655, 1688, 1656, 1655, 1644, - 1645, 1650, 1657, 1648, 1658, 1646, 1649, 1647, 1651, 1653, - 1656, 1659, 1659, 1660, 1660, 1661, 1661, 1658, 1662, 1663, - 1664, 1664, 1665, 1666, 1666, 1667, 1670, 1671, 0, 1672, - - 1667, 1665, 1663, 1662, 1665, 1669, 1673, 1673, 1674, 1674, - 1669, 1672, 1675, 1676, 1676, 1677, 1670, 1671, 1678, 1678, - 1679, 1679, 1680, 1681, 1683, 1684, 1684, 1685, 1692, 1683, - 1687, 1675, 1694, 1677, 1686, 1686, 1680, 1689, 1690, 1690, - 1689, 1693, 1681, 1691, 1691, 1697, 1685, 1692, 1687, 1695, - 1695, 1694, 1698, 1699, 1690, 1700, 1693, 1701, 1701, 1700, - 1702, 1703, 1703, 1704, 1705, 1697, 1706, 1708, 1699, 1707, - 1707, 1705, 1709, 1711, 1709, 1698, 1708, 1712, 1713, 1702, - 1714, 1715, 1712, 1704, 1716, 1711, 1717, 1720, 1721, 1716, - 1718, 1717, 1706, 1714, 1719, 1718, 1722, 1723, 1724, 1725, - - 1726, 1721, 1715, 1713, 1727, 1722, 1723, 1724, 1725, 1719, - 1727, 1728, 1720, 1730, 1726, 1728, 1732, 1733, 1733, 1736, - 1734, 1735, 1735, 1738, 1738, 1732, 1734, 1739, 1740, 1743, - 1735, 1742, 1744, 1730, 1745, 1747, 1749, 1740, 1747, 1736, - 1750, 1736, 1739, 1742, 1748, 1743, 1745, 1744, 0, 1748, - 1751, 1751, 1750, 1753, 1753, 1754, 1749, 1755, 1754, 1756, - 1757, 1759, 1755, 1758, 1758, 1756, 1757, 1760, 1760, 1761, - 1762, 1763, 1764, 1764, 1766, 1759, 1767, 1770, 1766, 1767, - 1769, 1761, 1768, 1768, 1762, 1769, 1773, 1771, 1774, 1775, - 1763, 1771, 1776, 1777, 1778, 1779, 1776, 1770, 1780, 1778, - - 1781, 1779, 1784, 1775, 1780, 1783, 1773, 1784, 1774, 1785, - 1787, 1786, 1787, 1777, 1790, 1785, 1791, 1791, 1781, 1786, - 1792, 1783, 1793, 1792, 1794, 1794, 1796, 1797, 1790, 1798, - 1796, 1799, 1799, 1797, 1800, 1803, 1803, 1805, 1816, 1808, - 1809, 1798, 1817, 1800, 1808, 1809, 1810, 1810, 1793, 1812, - 1812, 1814, 1815, 1815, 1816, 1805, 1818, 1814, 1820, 1821, - 1824, 1818, 1822, 1822, 1817, 1826, 1825, 1827, 1834, 1824, - 1834, 1821, 1825, 1829, 1829, 1831, 1831, 1820, 1832, 1832, - 1833, 1835, 1827, 1826, 1836, 1833, 1837, 1838, 1838, 1839, - 1839, 1837, 1840, 1840, 1841, 1835, 1842, 1845, 1836, 1843, - - 1843, 1844, 1844, 1846, 1846, 1848, 1841, 1847, 1847, 1845, - 1850, 1849, 1851, 1853, 1842, 1852, 1855, 1848, 1849, 1856, - 1852, 1857, 1850, 1854, 1854, 1855, 1858, 1859, 1860, 1861, - 1861, 1862, 1851, 1853, 1864, 1865, 1866, 1871, 1871, 1858, - 1862, 1857, 1860, 1867, 1868, 1856, 1867, 1877, 1869, 1870, - 1879, 1859, 1864, 1869, 1870, 1872, 1872, 1865, 1868, 1866, - 1873, 1873, 1876, 1876, 1878, 1877, 1881, 1882, 1883, 1879, - 1885, 1884, 1886, 1888, 1888, 1878, 1887, 1890, 1890, 1885, - 1891, 1892, 1892, 1893, 1894, 1882, 1881, 1897, 1895, 1891, - 1883, 1884, 1886, 1896, 1887, 1895, 1898, 1899, 1900, 1901, - - 1901, 1893, 1894, 1902, 1902, 1897, 1903, 1904, 1896, 1905, - 1906, 1907, 1903, 1899, 1898, 1908, 1907, 1900, 1909, 1919, - 1911, 1910, 1911, 1916, 1905, 1904, 1910, 1912, 1912, 1906, - 1913, 1918, 1913, 1914, 1914, 1908, 1920, 1923, 1909, 1919, - 1918, 1924, 1916, 1926, 1924, 1925, 1925, 1927, 1928, 1928, - 1929, 1931, 1932, 1939, 1929, 1920, 1932, 1923, 1926, 1933, - 1933, 1934, 1936, 1936, 1947, 1927, 1931, 1938, 1938, 1940, - 1940, 1941, 1939, 1950, 1934, 1948, 1941, 1942, 1942, 1946, - 1946, 1949, 1950, 1954, 1953, 1955, 1947, 1956, 1948, 1953, - 1955, 1957, 1958, 1960, 1949, 1956, 1961, 1954, 1962, 1963, - - 1958, 1961, 1966, 1962, 1964, 1964, 1965, 1965, 1960, 1966, - 1957, 1967, 1968, 1971, 1963, 1969, 1967, 0, 1968, 1972, - 1969, 1970, 1970, 1977, 1972, 1973, 1973, 1979, 1971, 1974, - 1974, 1978, 1979, 1979, 1978, 1980, 1977, 1981, 1982, 1983, - 1980, 1984, 1981, 1983, 1982, 1985, 1984, 1986, 1987, 1989, - 1988, 1995, 1996, 1993, 1985, 1988, 1987, 1991, 1993, 1994, - 1991, 1989, 1986, 1997, 1994, 1996, 1998, 1999, 1999, 1995, - 2000, 2003, 1997, 2004, 2008, 1998, 2005, 2006, 2006, 2000, - 2007, 2009, 2011, 2008, 2010, 2010, 2015, 2013, 2016, 2020, - 2003, 2017, 2016, 2004, 2020, 2005, 2009, 2017, 2022, 2007, - - 2019, 2011, 2013, 2018, 2018, 2023, 2015, 2022, 2019, 2025, - 2026, 2027, 2034, 2025, 2029, 2029, 2032, 2032, 2023, 2036, - 2037, 2037, 2038, 2038, 2026, 2054, 2027, 2039, 2039, 2044, - 2040, 2046, 2034, 2040, 2041, 2041, 2042, 2042, 2047, 2036, - 2043, 2043, 2045, 2045, 2044, 2048, 2049, 2049, 2054, 2046, - 2050, 2048, 2047, 2053, 2050, 2055, 2056, 2057, 2053, 2053, - 2058, 2055, 2056, 2062, 2058, 2059, 2059, 2063, 2062, 2064, - 2066, 2067, 2064, 2068, 2067, 2063, 2069, 2071, 2070, 2072, - 2074, 2069, 2057, 2073, 2073, 2076, 2075, 2077, 2077, 2083, - 2068, 2068, 2081, 2072, 2075, 2066, 2070, 2071, 2084, 2074, - - 2078, 2078, 2079, 2079, 2076, 2080, 2080, 2082, 2081, 2083, - 2085, 2086, 2082, 2087, 2089, 2089, 2091, 2090, 2094, 2085, - 2090, 2093, 2093, 2096, 2084, 2094, 2095, 2095, 2096, 2097, - 2099, 2086, 2103, 2087, 2091, 2100, 2100, 2101, 2097, 2104, - 2102, 2101, 2105, 2106, 2104, 2104, 2110, 2103, 2099, 2102, - 2108, 2108, 2106, 2109, 2113, 2105, 2115, 2117, 2110, 2119, - 2120, 2120, 2109, 2121, 2119, 2123, 2126, 2126, 2115, 2128, - 2123, 2127, 2121, 2124, 2124, 2129, 2130, 2124, 2117, 2113, - 2127, 2130, 2132, 2135, 2135, 2133, 2134, 2136, 2132, 2128, - 2133, 2134, 2137, 2138, 2129, 2140, 2139, 2141, 2138, 2142, - - 2142, 2140, 2144, 2145, 2147, 2136, 2146, 2146, 2149, 2151, - 2148, 2150, 2149, 2137, 2139, 2152, 2153, 2147, 2145, 2155, - 2150, 2144, 2141, 2148, 2153, 2151, 2154, 2156, 2156, 2157, - 2162, 2154, 2159, 2159, 2152, 2160, 2160, 2164, 2164, 2165, - 2169, 2166, 2168, 2168, 2170, 2155, 2166, 2171, 2157, 2173, - 2173, 2162, 2176, 2179, 2174, 2165, 2177, 2177, 2178, 2178, - 2169, 2180, 2179, 2181, 2182, 2183, 2171, 2170, 2174, 2184, - 2184, 2188, 2185, 2189, 2176, 2185, 2182, 2186, 2186, 2194, - 2190, 2180, 2181, 2188, 2193, 2183, 2190, 2191, 2191, 2192, - 2193, 2196, 2192, 2189, 2197, 2198, 2196, 2194, 2199, 2197, - - 2200, 2201, 2201, 2204, 2199, 2203, 2203, 2206, 2206, 2207, - 2207, 2208, 2209, 2221, 2198, 2210, 2208, 2200, 2200, 2219, - 2210, 0, 2204, 2211, 2211, 2226, 2209, 2212, 2212, 2213, - 2213, 2214, 2216, 2216, 2225, 2221, 2214, 2227, 2219, 2222, - 2222, 2224, 2224, 2228, 2228, 2226, 2227, 2229, 2225, 2232, - 2233, 2234, 2229, 2235, 2235, 2236, 2233, 2238, 2239, 2234, - 2236, 2240, 2241, 2232, 2242, 2244, 2240, 2245, 2246, 2247, - 2242, 2249, 2248, 2244, 2241, 2250, 2251, 2238, 2239, 2252, - 2255, 2258, 2258, 2271, 2252, 2272, 2245, 2249, 2246, 2247, - 2248, 2285, 2250, 2250, 2259, 2259, 2285, 2251, 2260, 2272, - - 2255, 2271, 2260, 2264, 2264, 2266, 2266, 2267, 2267, 2268, - 2267, 2270, 2270, 2268, 2274, 2274, 2275, 2276, 2277, 2279, - 2280, 2276, 2289, 2275, 2281, 2281, 2282, 2282, 2284, 2280, - 2283, 2283, 2286, 2277, 2287, 2290, 2288, 2279, 2291, 2287, - 2287, 2286, 2288, 2284, 2286, 2294, 2292, 2289, 2293, 2305, - 2290, 2292, 0, 2293, 2295, 2295, 2298, 2298, 2305, 2291, - 2301, 2301, 2302, 2302, 2294, 2303, 2303, 2306, 2306, 2308, - 2308, 2309, 2310, 2311, 2311, 2312, 2313, 2313, 2316, 2317, - 2318, 2320, 2317, 2324, 2310, 2323, 2309, 2319, 2319, 2322, - 2312, 2323, 2322, 2325, 2326, 2328, 2316, 2324, 2325, 2320, - - 2327, 2334, 2337, 2338, 2334, 2340, 2318, 2338, 2339, 2342, - 2343, 2328, 2344, 2326, 2345, 2346, 2345, 2344, 2327, 2340, - 2348, 2343, 2347, 2347, 2349, 2337, 2350, 2352, 2339, 2351, - 2346, 2353, 2342, 2348, 2354, 2355, 2356, 2356, 2357, 2358, - 2358, 2359, 2359, 2349, 2350, 2351, 2353, 2357, 2362, 2355, - 2360, 2360, 2352, 2363, 2354, 2361, 2361, 2364, 2365, 2366, - 2364, 2367, 2368, 2365, 2366, 2369, 2370, 2362, 2371, 2371, - 2372, 2369, 2374, 2363, 2376, 2379, 2379, 2368, 2380, 2380, - 2370, 2382, 2381, 2385, 2387, 2383, 2367, 2374, 2384, 2372, - 2381, 2383, 2376, 2386, 2384, 2389, 2390, 2385, 2391, 2393, - - 2382, 2395, 2391, 2387, 2394, 2396, 2386, 2398, 2397, 2394, - 2390, 2399, 2400, 2401, 2402, 2389, 2399, 2400, 2396, 2393, - 2395, 2397, 2403, 2403, 2404, 2407, 2398, 2408, 2405, 2404, - 2407, 2401, 2408, 2402, 2405, 2406, 2406, 2409, 2410, 2411, - 2416, 2412, 2409, 2413, 2413, 2411, 2412, 2415, 2417, 2418, - 2419, 2415, 2420, 2421, 2422, 2417, 2428, 2410, 2420, 2416, - 2423, 2423, 2425, 2425, 2426, 2427, 2429, 2422, 2418, 2419, - 2427, 2430, 2421, 2426, 2432, 2428, 2426, 2431, 2431, 2432, - 2433, 2435, 2436, 2436, 2430, 2429, 2437, 2438, 2438, 2439, - 2439, 2440, 2441, 2433, 2442, 2444, 2440, 2443, 2443, 2441, - - 2444, 2445, 2449, 2445, 2447, 2437, 2451, 2435, 2446, 2446, - 2448, 2447, 2454, 2442, 2450, 2453, 2453, 2448, 2456, 2450, - 2458, 2449, 2457, 2456, 2459, 2451, 2463, 2457, 2460, 2460, - 2464, 2454, 2462, 2462, 2465, 2465, 2466, 2466, 0, 2458, - 2467, 2469, 2469, 2459, 2477, 2463, 2471, 2467, 2478, 2464, - 2470, 2470, 2473, 2471, 2476, 2479, 2479, 2473, 0, 2476, - 2480, 2480, 0, 2477, 0, 0, 0, 2478, 2484, 2484, - 2484, 2484, 2484, 2484, 2484, 2485, 2485, 2485, 2485, 2485, - 2485, 2485, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2487, - 2487, 2487, 2487, 2487, 2487, 2487, 2488, 2488, 2488, 2488, - - 2488, 2488, 2488, 2490, 2490, 0, 2490, 2490, 2490, 2490, - 2491, 2491, 0, 0, 0, 2491, 2491, 2492, 2492, 0, - 0, 2492, 0, 2492, 2493, 0, 0, 0, 0, 0, - 2493, 2494, 2494, 0, 0, 0, 2494, 2494, 2495, 0, - 0, 0, 0, 0, 2495, 2496, 2496, 0, 2496, 2496, - 2496, 2496, 2497, 2497, 0, 2497, 2497, 2497, 2497, 2483, - 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, - 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, - 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, - 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483 - + 312, 314, 307, 308, 300, 305, 302, 307, 309, 308, + 314, 304, 310, 309, 312, 303, 311, 310, 306, 311, + 315, 311, 313, 310, 316, 313, 315, 317, 318, 316, + 319, 318, 320, 358, 70, 358, 321, 328, 313, 327, + 317, 313, 322, 313, 318, 325, 328, 318, 317, 318, + 319, 321, 324, 320, 327, 324, 322, 329, 330, 325, + 331, 332, 329, 329, 330, 337, 334, 333, 335, 336, + 339, 324, 326, 413, 326, 326, 413, 340, 341, 337, + + 332, 331, 333, 346, 326, 334, 326, 326, 326, 336, + 338, 326, 342, 339, 335, 344, 338, 340, 341, 343, + 338, 347, 345, 346, 343, 348, 349, 342, 345, 350, + 344, 351, 349, 347, 355, 352, 354, 356, 357, 348, + 352, 353, 353, 363, 353, 359, 362, 351, 364, 359, + 355, 360, 357, 356, 350, 360, 354, 361, 361, 363, + 365, 362, 366, 367, 368, 372, 364, 370, 64, 368, + 360, 366, 367, 369, 365, 371, 370, 369, 376, 373, + 384, 371, 366, 374, 366, 373, 372, 374, 375, 377, + 377, 378, 379, 375, 380, 381, 381, 379, 376, 382, + + 386, 384, 383, 385, 378, 382, 383, 380, 385, 386, + 387, 388, 389, 390, 391, 391, 392, 390, 393, 394, + 394, 392, 387, 397, 389, 396, 396, 398, 399, 388, + 400, 401, 404, 403, 405, 398, 406, 399, 407, 393, + 408, 409, 406, 401, 397, 408, 410, 407, 405, 412, + 400, 403, 404, 403, 410, 409, 411, 414, 415, 416, + 417, 421, 411, 414, 416, 418, 419, 423, 420, 412, + 419, 424, 415, 420, 422, 426, 421, 427, 428, 422, + 429, 414, 417, 423, 431, 429, 418, 430, 432, 431, + 424, 425, 425, 436, 428, 426, 427, 425, 435, 425, + + 434, 435, 430, 433, 432, 437, 437, 425, 438, 433, + 425, 425, 440, 436, 433, 442, 434, 425, 439, 439, + 441, 443, 444, 445, 447, 446, 448, 440, 445, 449, + 442, 453, 441, 438, 446, 449, 451, 453, 452, 454, + 443, 448, 452, 447, 444, 451, 455, 456, 457, 458, + 459, 454, 460, 458, 460, 463, 461, 462, 462, 464, + 466, 463, 456, 459, 461, 455, 457, 465, 468, 471, + 469, 464, 466, 465, 467, 469, 470, 467, 472, 470, + 474, 473, 481, 468, 59, 471, 473, 473, 471, 475, + 475, 476, 476, 474, 472, 477, 478, 478, 479, 479, + + 480, 477, 482, 481, 483, 484, 480, 482, 485, 486, + 487, 485, 488, 484, 489, 490, 488, 491, 493, 490, + 489, 492, 494, 483, 498, 495, 492, 496, 494, 487, + 495, 497, 486, 500, 497, 491, 499, 499, 493, 497, + 501, 496, 498, 497, 502, 501, 503, 504, 505, 502, + 506, 500, 507, 508, 505, 507, 509, 508, 510, 506, + 503, 509, 504, 510, 511, 512, 513, 514, 514, 516, + 517, 513, 515, 520, 524, 523, 520, 518, 512, 508, + 511, 515, 517, 518, 519, 516, 521, 522, 524, 521, + 519, 525, 522, 523, 526, 527, 534, 525, 531, 526, + + 528, 527, 529, 528, 530, 532, 533, 529, 535, 530, + 530, 531, 533, 536, 537, 534, 536, 535, 532, 539, + 537, 538, 540, 542, 539, 541, 541, 540, 540, 546, + 543, 536, 543, 538, 544, 545, 547, 545, 548, 549, + 550, 551, 552, 554, 553, 551, 555, 546, 542, 557, + 556, 552, 559, 544, 547, 560, 548, 558, 549, 553, + 550, 554, 556, 558, 557, 555, 561, 562, 563, 564, + 567, 559, 565, 565, 560, 566, 568, 569, 570, 566, + 571, 619, 569, 572, 561, 562, 563, 568, 564, 567, + 573, 578, 619, 574, 570, 575, 572, 573, 574, 571, + + 576, 577, 575, 579, 580, 576, 577, 581, 582, 578, + 579, 583, 585, 580, 584, 585, 586, 582, 587, 584, + 586, 581, 588, 583, 589, 590, 590, 587, 591, 591, + 592, 592, 593, 595, 596, 597, 588, 591, 598, 599, + 596, 593, 598, 600, 601, 589, 602, 603, 604, 605, + 601, 599, 595, 608, 602, 597, 628, 611, 606, 628, + 615, 600, 614, 606, 621, 603, 615, 606, 608, 605, + 606, 614, 616, 604, 611, 620, 616, 606, 617, 617, + 606, 618, 618, 624, 621, 622, 625, 626, 624, 620, + 627, 622, 623, 623, 623, 630, 623, 629, 629, 623, + + 631, 631, 630, 632, 623, 626, 639, 625, 633, 633, + 623, 623, 634, 635, 636, 627, 635, 634, 632, 636, + 637, 638, 637, 640, 641, 639, 642, 640, 643, 644, + 644, 645, 647, 638, 646, 648, 643, 649, 650, 650, + 655, 54, 649, 655, 641, 642, 645, 648, 646, 652, + 647, 653, 654, 656, 652, 657, 658, 653, 654, 656, + 659, 660, 661, 657, 658, 662, 660, 663, 663, 661, + 664, 666, 665, 667, 669, 676, 670, 666, 659, 664, + 665, 673, 672, 669, 662, 670, 671, 672, 675, 671, + 674, 674, 667, 677, 676, 673, 678, 679, 683, 681, + + 679, 681, 677, 675, 682, 682, 684, 685, 679, 686, + 687, 684, 688, 689, 690, 694, 693, 691, 692, 683, + 678, 691, 696, 690, 694, 695, 697, 700, 685, 686, + 687, 701, 698, 689, 688, 693, 692, 695, 698, 702, + 697, 696, 699, 699, 703, 704, 705, 700, 706, 707, + 708, 701, 710, 709, 706, 711, 708, 709, 712, 702, + 705, 713, 715, 712, 53, 704, 703, 711, 715, 707, + 717, 710, 714, 714, 716, 711, 718, 716, 719, 720, + 721, 721, 713, 722, 719, 723, 724, 724, 717, 718, + 723, 725, 726, 727, 729, 728, 726, 731, 732, 720, + + 728, 722, 734, 735, 737, 737, 725, 738, 739, 48, + 740, 738, 732, 729, 741, 727, 742, 762, 741, 744, + 759, 731, 734, 739, 735, 736, 746, 743, 736, 762, + 736, 742, 743, 744, 736, 740, 736, 745, 748, 759, + 746, 736, 745, 745, 747, 749, 736, 750, 747, 751, + 749, 752, 750, 748, 753, 754, 755, 756, 756, 757, + 749, 754, 755, 751, 757, 758, 760, 764, 753, 763, + 765, 758, 752, 767, 763, 766, 766, 770, 767, 768, + 769, 764, 765, 771, 760, 761, 761, 768, 772, 772, + 777, 761, 775, 761, 769, 773, 770, 776, 775, 773, + + 776, 778, 771, 780, 761, 761, 779, 781, 780, 777, + 782, 761, 779, 783, 778, 784, 786, 785, 787, 782, + 789, 790, 783, 785, 788, 786, 781, 791, 794, 788, + 792, 784, 793, 797, 794, 790, 796, 787, 798, 792, + 789, 793, 799, 800, 801, 803, 802, 791, 800, 801, + 796, 802, 797, 806, 803, 805, 798, 799, 804, 804, + 808, 805, 809, 812, 813, 814, 806, 809, 809, 810, + 810, 811, 815, 810, 811, 816, 808, 812, 815, 817, + 814, 818, 817, 819, 813, 820, 822, 821, 819, 823, + 820, 822, 824, 826, 823, 816, 827, 830, 830, 826, + + 828, 829, 818, 821, 824, 831, 828, 829, 832, 834, + 833, 835, 827, 833, 831, 836, 837, 838, 839, 843, + 840, 845, 845, 838, 839, 840, 832, 834, 841, 837, + 835, 846, 844, 841, 847, 836, 848, 843, 844, 848, + 846, 850, 849, 851, 852, 853, 854, 856, 856, 855, + 852, 853, 847, 849, 855, 851, 857, 858, 859, 850, + 860, 854, 861, 862, 860, 863, 864, 866, 867, 867, + 859, 858, 862, 869, 870, 857, 871, 872, 872, 873, + 861, 871, 874, 877, 863, 877, 866, 869, 874, 870, + 875, 864, 876, 878, 879, 880, 875, 876, 878, 873, + + 881, 882, 883, 884, 885, 881, 886, 936, 879, 880, + 884, 887, 887, 888, 889, 891, 882, 890, 43, 885, + 936, 883, 897, 890, 892, 886, 899, 888, 895, 892, + 894, 894, 889, 895, 896, 891, 897, 900, 892, 898, + 892, 896, 898, 892, 899, 901, 900, 902, 903, 904, + 901, 906, 906, 903, 907, 908, 909, 912, 910, 907, + 911, 909, 910, 913, 914, 915, 902, 916, 904, 911, + 918, 917, 912, 919, 916, 908, 914, 920, 921, 923, + 915, 922, 913, 917, 921, 924, 927, 928, 925, 918, + 929, 930, 927, 14, 919, 920, 922, 925, 929, 923, + + 932, 928, 931, 933, 934, 924, 935, 931, 933, 933, + 940, 930, 932, 937, 937, 939, 941, 942, 942, 940, + 935, 943, 941, 934, 938, 944, 943, 952, 939, 938, + 945, 946, 938, 938, 944, 945, 946, 938, 947, 947, + 948, 949, 951, 938, 950, 952, 953, 938, 954, 950, + 949, 956, 953, 955, 954, 956, 951, 957, 955, 960, + 948, 958, 958, 959, 962, 959, 957, 963, 962, 964, + 960, 957, 965, 957, 966, 957, 967, 957, 969, 966, + 966, 965, 963, 968, 971, 970, 972, 964, 973, 975, + 967, 972, 968, 970, 974, 976, 977, 969, 971, 978, + + 978, 977, 973, 974, 979, 980, 980, 975, 981, 983, + 981, 984, 983, 985, 986, 986, 984, 987, 989, 979, + 976, 988, 988, 989, 990, 991, 992, 992, 993, 994, + 13, 995, 985, 995, 994, 997, 998, 987, 997, 999, + 1003, 998, 1002, 1002, 1000, 990, 991, 999, 993, 1000, + 1001, 1004, 1005, 1006, 1008, 1001, 1009, 1004, 1003, 1005, + 1008, 1011, 1009, 1010, 1012, 1013, 1006, 1011, 1010, 1014, + 1015, 1015, 1016, 1012, 1018, 1019, 1020, 1022, 1025, 1023, + 1014, 1024, 1020, 1022, 1013, 1027, 1026, 1028, 1028, 1029, + 1025, 1030, 1016, 1023, 1018, 1031, 1034, 1032, 1019, 1023, + + 1026, 1024, 1032, 1027, 1033, 1033, 1035, 1037, 1041, 1029, + 1042, 1035, 1038, 1031, 1039, 1043, 1030, 1038, 1038, 1034, + 1040, 1046, 1041, 1039, 1044, 1042, 1037, 1050, 1040, 1044, + 1043, 1047, 1044, 1043, 1045, 1046, 1045, 1047, 1048, 1049, + 1051, 1052, 1048, 1053, 1054, 1055, 1050, 1057, 1053, 1058, + 1049, 1059, 1059, 1060, 1061, 1062, 1063, 1060, 1064, 1052, + 1066, 1057, 1054, 1068, 1065, 1055, 1051, 1058, 1063, 1067, + 1072, 1069, 1061, 1070, 1062, 1066, 1069, 1064, 1065, 1075, + 1070, 1071, 1068, 1073, 1067, 1076, 1071, 1077, 1072, 1074, + 1074, 1076, 1073, 1078, 1075, 1079, 1080, 1087, 1078, 1081, + + 1081, 1079, 1080, 1082, 1082, 1084, 1084, 1085, 1077, 1086, + 1088, 1085, 1089, 1090, 1092, 1087, 1091, 1091, 1086, 1095, + 1090, 1093, 1096, 1094, 1088, 1097, 1099, 1089, 1094, 1093, + 1097, 1097, 1098, 1095, 1092, 1100, 1101, 1098, 1098, 1102, + 1104, 1096, 1103, 1105, 1106, 1107, 1099, 1112, 1103, 1108, + 1106, 1107, 1109, 1110, 1100, 1101, 1111, 1113, 1102, 1114, + 0, 1112, 1105, 1115, 1115, 1117, 1104, 1116, 1108, 1120, + 1116, 1109, 1110, 1120, 1114, 1111, 1119, 1117, 1113, 1118, + 1118, 1119, 1121, 1122, 1123, 1124, 1126, 1124, 1132, 1127, + 1134, 1124, 1122, 1128, 1128, 1121, 1129, 1123, 1130, 1131, + + 1133, 1129, 1130, 1131, 1124, 1127, 1126, 1135, 1132, 1138, + 1134, 1136, 1136, 1135, 1140, 1141, 1142, 1142, 1133, 1143, + 1141, 1145, 1145, 1147, 1147, 1143, 1148, 1138, 1149, 1151, + 1152, 1152, 1151, 1153, 1154, 1140, 1155, 1155, 1156, 1154, + 1157, 1159, 1148, 1160, 1149, 1158, 1158, 1161, 1160, 1162, + 1162, 1164, 1163, 1156, 1153, 1159, 1163, 1165, 1165, 1166, + 1168, 1167, 1161, 1169, 1168, 1157, 1172, 1172, 1170, 1173, + 1174, 1164, 1167, 1170, 1175, 1176, 1176, 1178, 1177, 1179, + 1180, 1166, 1169, 1177, 1174, 1181, 1182, 1173, 1175, 1180, + 1181, 1183, 1185, 1183, 1186, 1184, 1187, 1178, 1185, 1179, + + 1184, 1189, 1187, 1190, 1190, 1191, 1182, 1192, 1194, 1195, + 1195, 1196, 1196, 1192, 1186, 1189, 1197, 1198, 1199, 1200, + 1201, 1201, 1200, 1203, 1191, 1202, 1209, 0, 1204, 1207, + 1197, 1204, 1194, 1199, 1204, 1198, 1205, 1202, 1207, 1206, + 1208, 1216, 1205, 1203, 1206, 1208, 1204, 1210, 1211, 1217, + 1210, 1209, 1212, 1212, 1211, 1213, 1213, 1214, 1215, 1216, + 1218, 1219, 1214, 1220, 1223, 1221, 1222, 1219, 1217, 1220, + 1221, 1215, 1222, 1224, 1225, 1225, 1226, 1227, 1224, 1228, + 1218, 1226, 1229, 1230, 1231, 1234, 1235, 1223, 1232, 1236, + 1233, 1234, 1238, 1237, 1241, 1227, 1242, 1230, 1231, 1228, + + 1232, 1242, 1229, 1233, 1240, 1240, 1235, 1237, 1244, 1236, + 1243, 1243, 1245, 1238, 1241, 1246, 1247, 1249, 1248, 1252, + 1256, 1250, 1254, 1244, 1251, 1260, 1245, 1248, 1250, 1257, + 1257, 1264, 1249, 1251, 1247, 1252, 1251, 1254, 1262, 1246, + 1258, 1258, 1254, 1259, 1260, 1256, 1259, 1261, 1263, 1265, + 1264, 1266, 1261, 1267, 1262, 1268, 1268, 1263, 1265, 1267, + 1266, 1265, 1269, 1270, 1272, 1271, 1276, 1274, 1273, 1277, + 1278, 1278, 1279, 1304, 1284, 1281, 1270, 1280, 1272, 1274, + 1281, 1304, 1269, 1271, 1273, 1283, 1280, 1277, 1279, 1282, + 1282, 1276, 1284, 1285, 1283, 1287, 1288, 1283, 1285, 1285, + + 1290, 1287, 1289, 1289, 1282, 1291, 1290, 1292, 1295, 1293, + 1291, 1296, 1297, 1292, 1288, 1293, 1298, 1299, 1297, 1302, + 1299, 1303, 1305, 1306, 1307, 1296, 1299, 1309, 1295, 1298, + 1307, 1308, 1310, 1311, 1313, 1305, 1312, 1306, 1302, 1314, + 1303, 1317, 1312, 1322, 1308, 1309, 1311, 1316, 1316, 1318, + 1313, 1310, 1322, 1318, 1319, 1320, 1323, 1314, 1321, 1319, + 1320, 1317, 1325, 1321, 1326, 1326, 1327, 1328, 1329, 1332, + 1330, 1331, 1333, 1336, 1334, 1329, 1530, 1325, 1335, 1323, + 1334, 1328, 1330, 1331, 1530, 1327, 1339, 1337, 1332, 1339, + 1335, 1336, 1333, 1337, 1338, 1338, 1340, 1340, 1342, 1343, + + 1344, 1344, 1345, 1342, 1346, 1348, 1346, 1347, 1343, 1349, + 1347, 1350, 1351, 1352, 1345, 1353, 1354, 1355, 1352, 1358, + 1359, 1356, 1360, 1360, 1353, 1348, 1356, 1357, 1354, 1350, + 1351, 1349, 1355, 1362, 1361, 1359, 1357, 1363, 1364, 1358, + 1361, 1365, 1369, 1365, 1366, 1366, 1367, 1367, 1371, 1357, + 1368, 1368, 1370, 1370, 1362, 1372, 1363, 1374, 1364, 1373, + 1373, 1374, 1369, 1376, 1375, 1378, 1376, 1379, 1380, 1371, + 1375, 1378, 1381, 1387, 1380, 1382, 1372, 1385, 1382, 1383, + 1383, 1384, 1384, 1385, 1388, 1379, 1386, 1390, 1389, 1393, + 1392, 1395, 1399, 1387, 1389, 1392, 1392, 1381, 1386, 1386, + + 1386, 1396, 1395, 1393, 1388, 1386, 1394, 1390, 1394, 1397, + 1398, 1400, 1399, 1401, 1401, 1397, 1396, 1402, 1404, 1398, + 1403, 1403, 1405, 1406, 1406, 1407, 1407, 1410, 1411, 1412, + 1412, 1413, 1400, 1414, 1416, 1418, 1410, 1419, 1404, 1415, + 1414, 1417, 1417, 1402, 1405, 1421, 1413, 1423, 1415, 1411, + 1421, 1422, 1424, 1419, 1427, 1427, 1425, 1422, 1426, 1424, + 1416, 1418, 1425, 1428, 1426, 1429, 1430, 1423, 1428, 1431, + 1432, 1434, 1433, 1435, 1429, 1433, 1436, 1436, 1437, 1440, + 1438, 1441, 1432, 1443, 1438, 1446, 1430, 1444, 1431, 1434, + 1451, 1444, 1453, 1437, 1446, 1445, 1441, 1449, 1440, 1435, + + 1438, 1445, 1443, 1447, 1447, 1448, 1450, 1450, 1449, 1448, + 1452, 1451, 1453, 1449, 1454, 1455, 1456, 1456, 1457, 1458, + 1463, 1455, 1457, 1460, 1452, 1459, 1459, 1461, 1460, 1460, + 1458, 1462, 1464, 1461, 1454, 1458, 1465, 1462, 1467, 1468, + 1469, 1470, 1465, 1468, 1464, 1471, 1463, 1472, 1473, 1474, + 1467, 1471, 1469, 1476, 1473, 1481, 1477, 1490, 1476, 1477, + 1490, 1474, 1478, 1478, 1479, 1479, 1470, 1480, 1480, 1472, + 1482, 1483, 1486, 1484, 1485, 1481, 1482, 1483, 1484, 1488, + 1485, 1486, 1491, 1493, 1488, 1494, 1495, 1496, 1496, 1497, + 1501, 1495, 1500, 1500, 1491, 1493, 1498, 1494, 1497, 1499, + + 1502, 1498, 1503, 1504, 1499, 1508, 1507, 1505, 1506, 1502, + 1501, 1505, 1507, 1506, 1510, 1510, 1511, 1514, 1512, 1508, + 1503, 1513, 1504, 1515, 1518, 1518, 1510, 1512, 1520, 1514, + 1513, 1521, 1524, 1523, 1511, 1525, 1515, 1526, 1527, 1527, + 1528, 1525, 1528, 1533, 1520, 1532, 1524, 1521, 1523, 1529, + 1529, 1535, 1532, 1536, 1526, 1534, 1534, 1537, 1538, 1539, + 1535, 1540, 1541, 1533, 1544, 1547, 1542, 1545, 1548, 1537, + 1538, 1539, 1542, 1551, 1536, 1546, 1546, 1541, 1549, 1545, + 1554, 1549, 1554, 1547, 1544, 1542, 1550, 1540, 1548, 1553, + 1555, 1550, 1556, 1551, 1553, 1557, 1559, 1556, 1560, 1562, + + 1560, 1564, 1557, 1563, 1563, 1559, 1565, 1566, 1555, 1566, + 1567, 1565, 1568, 1562, 1569, 1567, 1570, 1568, 1571, 1576, + 1572, 1573, 1574, 1577, 1571, 1572, 1580, 1564, 1578, 1578, + 1574, 1581, 1569, 1584, 1573, 1584, 1570, 1577, 1576, 1579, + 1579, 1580, 1582, 1585, 1583, 1586, 1586, 1588, 1582, 1583, + 1590, 1581, 1587, 1587, 1592, 1585, 1588, 1593, 1589, 1588, + 1589, 1591, 1591, 1592, 1595, 1596, 1599, 1597, 1600, 1593, + 1596, 1590, 1597, 1601, 1602, 1605, 1595, 1603, 1606, 1599, + 1607, 1612, 1613, 1606, 1609, 1607, 1614, 1605, 1600, 1611, + 1609, 1601, 1602, 1603, 1619, 1611, 1615, 1613, 1616, 1616, + + 1617, 1618, 1618, 1609, 1612, 1615, 1620, 1621, 1622, 1617, + 1620, 1614, 1621, 1619, 1623, 1624, 1625, 1626, 1624, 1623, + 1623, 1622, 1629, 1629, 1625, 1630, 1630, 1631, 1632, 1632, + 1633, 1633, 1634, 1636, 1635, 1643, 1631, 1626, 1637, 1636, + 1630, 1638, 1638, 1637, 1634, 1639, 1646, 1640, 1649, 1648, + 1639, 1630, 1635, 1640, 1642, 1643, 1644, 1647, 1642, 1650, + 1644, 1651, 1647, 1649, 1650, 1652, 1653, 1653, 1655, 1654, + 1656, 1646, 1648, 1654, 1657, 1656, 1658, 1659, 1662, 1651, + 1663, 1652, 1659, 1655, 1660, 1660, 1664, 1665, 1666, 1667, + 1668, 1669, 1674, 1671, 1727, 1658, 1727, 1662, 1673, 1663, + + 1657, 1673, 1668, 1672, 1672, 1674, 1675, 1666, 1671, 1664, + 1667, 1665, 1669, 1676, 1677, 1677, 1678, 1678, 1679, 1679, + 1675, 1680, 1681, 1682, 1682, 1683, 1676, 1684, 1684, 1688, + 1689, 1690, 1693, 1685, 1683, 1681, 1680, 1683, 1685, 1687, + 1691, 1691, 1695, 1690, 1687, 1692, 1692, 1694, 1694, 1688, + 1689, 1693, 1696, 1696, 1697, 1697, 1698, 1699, 1701, 1703, + 1695, 1702, 1702, 1701, 1704, 1704, 1705, 1706, 1707, 1710, + 1698, 1707, 1711, 1706, 1708, 1708, 1699, 1712, 1703, 1709, + 1709, 1713, 1713, 1715, 1705, 1716, 1717, 1711, 1710, 1718, + 1708, 1719, 1719, 1718, 1720, 1722, 1712, 1721, 1721, 1723, + + 1724, 1717, 1726, 1715, 1725, 1725, 1723, 1729, 1716, 1730, + 1732, 1726, 1731, 1720, 1730, 1722, 1733, 1731, 1734, 1729, + 1735, 1738, 1736, 1737, 1740, 1735, 1724, 1736, 1737, 1733, + 1741, 1742, 1739, 1743, 1746, 1732, 1738, 1739, 1744, 1734, + 1742, 1745, 1743, 1741, 1750, 1747, 1752, 1744, 1746, 1740, + 1745, 1747, 1748, 1753, 1753, 1752, 1748, 1754, 1755, 1755, + 1756, 1758, 1758, 1754, 1750, 1760, 1759, 1755, 1763, 1767, + 1764, 1762, 1767, 1768, 1760, 1765, 1769, 1770, 1768, 0, + 1756, 1759, 1756, 1762, 1763, 1764, 1807, 1765, 1807, 1770, + 1771, 1771, 1773, 1773, 1774, 1775, 1769, 1774, 1776, 1777, + + 1775, 1778, 1778, 1779, 1776, 1777, 1780, 1780, 1781, 1782, + 1783, 1784, 1784, 1787, 1786, 1790, 1787, 1779, 1786, 1789, + 1781, 1788, 1788, 1782, 1789, 1793, 1791, 1794, 1795, 1783, + 1791, 1797, 1796, 1798, 1799, 1790, 1796, 1800, 1798, 1801, + 1799, 1804, 1795, 1800, 1803, 1793, 1804, 1794, 1805, 1810, + 1806, 1797, 1811, 1811, 1805, 1813, 1812, 1801, 1806, 1812, + 1803, 1814, 1814, 1810, 1816, 1817, 1818, 1820, 1816, 1819, + 1819, 1817, 1823, 1823, 1825, 1828, 1820, 1829, 1818, 1836, + 1828, 1813, 1829, 1830, 1830, 1832, 1832, 1834, 1835, 1835, + 1837, 1838, 1825, 1834, 1840, 1836, 1838, 1841, 1842, 1842, + + 1845, 1844, 1846, 1847, 1849, 1849, 1845, 1851, 1851, 1841, + 1844, 1853, 1837, 1840, 1852, 1852, 1853, 1854, 1847, 1854, + 1846, 1855, 1856, 1857, 1858, 1858, 1859, 1859, 1857, 1860, + 1860, 1861, 1861, 1862, 1863, 1855, 1856, 1864, 1864, 1865, + 1865, 1866, 1867, 1867, 1870, 1862, 1868, 1868, 1869, 1869, + 1871, 1872, 1863, 1866, 1873, 1874, 1870, 1871, 1875, 1877, + 1874, 1876, 1876, 1872, 1878, 1879, 1880, 1881, 1877, 1882, + 1883, 1883, 1884, 1887, 1873, 1886, 1888, 1889, 1875, 1880, + 1889, 1884, 1890, 1882, 1891, 1879, 0, 1892, 1899, 1891, + 1878, 1881, 1892, 1886, 1901, 1887, 1890, 1893, 1893, 1888, + + 1894, 1894, 1895, 1895, 1898, 1898, 1899, 1900, 1903, 1904, + 1905, 1906, 1907, 1901, 1908, 1909, 1910, 1910, 1900, 1912, + 1912, 1907, 1914, 1914, 1915, 1916, 1913, 1904, 1903, 1917, + 1918, 1906, 1905, 1909, 1908, 1913, 1917, 1919, 1920, 1922, + 1928, 1921, 1915, 1916, 1925, 1918, 1923, 1923, 1924, 1924, + 1925, 1926, 1927, 1930, 1931, 1919, 1920, 1921, 1922, 1928, + 1929, 1932, 1933, 1938, 1933, 1929, 1932, 1927, 1941, 1926, + 1934, 1934, 1940, 1930, 1931, 1935, 1942, 1935, 1936, 1936, + 1945, 1940, 1938, 1946, 1947, 1947, 1946, 1948, 1941, 1949, + 1950, 1950, 1951, 1953, 1954, 1942, 1951, 1956, 1954, 1961, + + 1945, 1970, 1948, 1955, 1955, 1958, 1958, 1949, 1953, 0, + 1956, 1960, 1960, 1962, 1962, 1963, 1964, 1964, 1961, 1971, + 1963, 1969, 1969, 1970, 1972, 1973, 1977, 1978, 1979, 1981, + 1980, 1977, 1971, 1979, 1973, 1982, 1984, 1972, 1980, 1985, + 1986, 1978, 1987, 1982, 1985, 1986, 1988, 1988, 1981, 1989, + 1989, 1984, 1990, 1991, 1992, 1995, 1993, 1987, 1991, 1990, + 1992, 1993, 1994, 1994, 1996, 1997, 1997, 1998, 1998, 1996, + 1995, 2001, 2002, 2003, 2006, 2002, 2004, 2005, 2003, 2003, + 2006, 2004, 2005, 2007, 2001, 2008, 2009, 2007, 2010, 2011, + 2008, 2012, 2013, 2019, 2017, 2009, 2012, 2011, 2015, 2017, + + 2018, 2015, 2020, 2010, 2013, 2018, 2027, 2021, 2022, 2023, + 2023, 2019, 2024, 2028, 2032, 2020, 2021, 2022, 2029, 2030, + 2030, 2024, 2031, 2032, 2033, 2027, 2034, 2034, 2035, 2037, + 2039, 2040, 2041, 2028, 0, 2040, 2046, 2029, 2041, 2033, + 2043, 2031, 2042, 2042, 2037, 2046, 2044, 2035, 2043, 2047, + 2039, 2044, 2049, 2050, 2051, 2058, 2049, 2053, 2053, 2056, + 2056, 2060, 2047, 2061, 2061, 2062, 2062, 2050, 2070, 2051, + 2063, 2063, 2068, 2064, 2071, 2058, 2064, 2065, 2065, 2066, + 2066, 2060, 2067, 2067, 2069, 2069, 2070, 2068, 2071, 2072, + 2073, 2073, 2074, 2077, 2078, 2072, 2074, 2079, 2077, 2077, + + 2080, 2081, 2086, 2079, 2082, 2087, 2080, 2086, 2082, 2083, + 2083, 2088, 2090, 2087, 2088, 2091, 2092, 2078, 2091, 2093, + 2094, 2095, 2096, 2098, 2093, 2100, 2081, 2097, 2097, 2101, + 2101, 2099, 2108, 2092, 2092, 2105, 2096, 2090, 2094, 2099, + 2107, 2095, 2098, 2110, 2100, 2102, 2102, 2103, 2103, 2104, + 2104, 2105, 2106, 2109, 2111, 2113, 2113, 2106, 2108, 2115, + 2107, 2114, 2109, 2110, 2114, 2117, 2117, 2120, 2118, 2119, + 2119, 2121, 2120, 2123, 2111, 2118, 2134, 2115, 2124, 2124, + 2121, 2125, 2127, 2126, 2128, 2125, 2129, 2130, 2134, 2128, + 2128, 2123, 2126, 2132, 2132, 2133, 2130, 2127, 2137, 2129, + + 2139, 2141, 2143, 0, 2133, 2144, 2144, 2143, 2145, 2147, + 2150, 2150, 2139, 2152, 2147, 2148, 2148, 2145, 2151, 2148, + 2153, 2154, 2141, 2137, 2156, 2160, 2154, 2151, 2161, 2157, + 2156, 2158, 2163, 2152, 2157, 2162, 2158, 2159, 2159, 2153, + 2162, 2164, 2165, 2160, 2166, 2166, 2168, 2164, 2169, 2161, + 2163, 2170, 2170, 2171, 2173, 2172, 2175, 2176, 2173, 2178, + 2174, 2179, 2177, 2169, 2178, 2168, 2171, 2165, 2172, 2174, + 2177, 2181, 2175, 2180, 2180, 2186, 2176, 2183, 2183, 2184, + 2184, 2188, 2188, 2189, 2190, 2192, 2192, 2179, 2193, 2190, + 2181, 2194, 2195, 2197, 2197, 2198, 2186, 2200, 2203, 2189, + + 2201, 2201, 2202, 2202, 2204, 2206, 2205, 2203, 2193, 2198, + 2207, 2195, 2208, 2208, 2194, 2209, 2212, 2206, 2209, 2200, + 2210, 2210, 2213, 2214, 2204, 2205, 2215, 2215, 2212, 2214, + 2207, 2216, 2217, 2218, 2216, 2220, 2221, 2222, 2217, 2223, + 2220, 2221, 2213, 2224, 2228, 2223, 2225, 2225, 2227, 2227, + 2233, 2218, 2230, 2230, 2231, 2231, 2222, 2232, 2235, 2235, + 2224, 2224, 2232, 2228, 2233, 2234, 2236, 2236, 2237, 2237, + 2234, 2238, 2240, 2240, 2243, 2245, 2238, 2246, 2246, 2248, + 2248, 2249, 2250, 2251, 2252, 2252, 2253, 2256, 2257, 2262, + 2258, 2253, 2251, 2243, 2257, 2249, 2263, 2245, 2258, 2259, + + 2259, 2256, 2250, 2260, 2268, 2264, 2265, 2266, 2260, 2262, + 2264, 2269, 2268, 2266, 2270, 2271, 2263, 2273, 2265, 2272, + 2275, 2274, 2276, 2279, 2282, 2282, 2309, 2276, 2283, 2283, + 2269, 2309, 2284, 2273, 2270, 2271, 2284, 2272, 2274, 2274, + 2295, 2275, 2296, 2279, 2288, 2288, 2290, 2290, 2291, 2291, + 2292, 2291, 2294, 2294, 2292, 2299, 2296, 2300, 2295, 2298, + 2298, 2300, 2299, 2301, 2303, 2304, 2305, 2305, 2306, 2306, + 2307, 2307, 2308, 2312, 2304, 2311, 2310, 2313, 2301, 2312, + 2311, 2311, 2303, 2314, 2315, 2310, 2316, 2308, 2310, 2317, + 2318, 2316, 2319, 2319, 2317, 2322, 2322, 0, 2314, 2325, + + 2325, 2329, 2313, 2326, 2326, 2315, 2327, 2327, 2333, 2318, + 2329, 2330, 2330, 2332, 2332, 2334, 2335, 2335, 2336, 2337, + 2337, 2340, 2341, 2333, 2342, 2341, 2344, 2334, 2343, 2343, + 2347, 2346, 2348, 2336, 2346, 2349, 2347, 2350, 2352, 2340, + 2349, 2351, 2358, 2361, 2344, 2358, 2348, 2362, 2363, 2364, + 2342, 2362, 2366, 2367, 2352, 2368, 2350, 2370, 2372, 2351, + 2368, 2371, 2371, 2364, 2367, 2369, 2361, 2369, 2363, 2373, + 2375, 2372, 2370, 2374, 2376, 2366, 2378, 2377, 2381, 2379, + 2380, 2380, 2382, 2382, 2383, 2383, 2375, 2381, 2373, 2384, + 2384, 2374, 2377, 2379, 2385, 2385, 2378, 2386, 2387, 2376, + + 2388, 2389, 2390, 2388, 2391, 2392, 2389, 2390, 2393, 2394, + 2395, 2395, 2396, 2398, 2393, 2400, 2386, 2406, 2387, 2405, + 2392, 2403, 2403, 2394, 2404, 2404, 2407, 2405, 2398, 2391, + 2409, 2396, 2407, 2400, 2408, 2410, 2406, 2411, 2413, 2414, + 2408, 2415, 2417, 2425, 2409, 2415, 2418, 2419, 2410, 2422, + 2420, 2418, 2421, 2414, 2423, 2424, 2411, 2426, 2413, 2423, + 2424, 2425, 2417, 2420, 0, 2421, 2419, 2428, 2422, 2427, + 2427, 2429, 2428, 2430, 2430, 2431, 2426, 2429, 2432, 2433, + 2431, 2434, 2435, 2432, 2433, 2436, 2437, 2437, 2435, 2439, + 2436, 2440, 2441, 2439, 2442, 2443, 2444, 2445, 2446, 2441, + + 2434, 2459, 2444, 2447, 2447, 2449, 2449, 2451, 2450, 2452, + 2440, 2446, 2451, 2442, 2443, 2453, 2445, 2450, 2454, 2456, + 2450, 2455, 2455, 2457, 2456, 2460, 2460, 2459, 2452, 2461, + 2464, 2454, 2462, 2462, 2453, 2464, 2457, 2463, 2463, 2465, + 2466, 2467, 2467, 2469, 2468, 2469, 2465, 2471, 2461, 2468, + 2470, 2470, 2473, 2472, 2471, 2475, 2474, 2477, 2477, 2466, + 2472, 2474, 2478, 2480, 2481, 2482, 2483, 2487, 2480, 2481, + 2488, 2473, 2484, 2484, 2475, 2486, 2486, 2489, 2489, 2490, + 2490, 2478, 0, 2491, 2482, 2483, 2487, 2493, 2493, 2488, + 2491, 2494, 2494, 2495, 2497, 2501, 2500, 2502, 0, 2497, + + 2495, 2500, 2503, 2503, 2504, 2504, 0, 0, 0, 0, + 0, 0, 0, 0, 2501, 0, 2502, 2508, 2508, 2508, + 2508, 2508, 2508, 2508, 2509, 2509, 2509, 2509, 2509, 2509, + 2509, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2511, 2511, + 2511, 2511, 2511, 2511, 2511, 2512, 2512, 2512, 2512, 2512, + 2512, 2512, 2514, 2514, 0, 2514, 2514, 2514, 2514, 2515, + 2515, 0, 0, 0, 2515, 2515, 2516, 2516, 0, 0, + 2516, 0, 2516, 2517, 0, 0, 0, 0, 0, 2517, + 2518, 2518, 0, 0, 0, 2518, 2518, 2519, 0, 0, + 0, 0, 0, 2519, 2520, 2520, 0, 2520, 2520, 2520, + + 2520, 2521, 2521, 0, 2521, 2521, 2521, 2521, 2507, 2507, + 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, + 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, + 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, + 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507 } ; static yy_state_type yy_last_accepting_state; @@ -2540,7 +2559,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 2542 "" +#line 2561 "" #define INITIAL 0 #define quotedstring 1 @@ -2652,7 +2671,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -2665,7 +2684,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -2763,7 +2782,7 @@ YY_DECL { #line 206 "./util/configlexer.lex" -#line 2765 "" +#line 2784 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2796,13 +2815,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 >= 2484 ) + if ( yy_current_state >= 2508 ) yy_c = yy_meta[(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] != 4860 ); + while ( yy_base[yy_current_state] != 4909 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2977,1057 +2996,1067 @@ YY_RULE_SETUP case 30: YY_RULE_SETUP #line 239 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSTEMD) } +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } YY_BREAK case 31: YY_RULE_SETUP #line 240 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_DAEMONIZE) } +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } YY_BREAK case 32: YY_RULE_SETUP #line 241 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } +{ YDVAR(1, VAR_USE_SYSTEMD) } YY_BREAK case 33: YY_RULE_SETUP #line 242 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } +{ YDVAR(1, VAR_DO_DAEMONIZE) } YY_BREAK case 34: YY_RULE_SETUP #line 243 "./util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_INTERFACE) } +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 35: YY_RULE_SETUP #line 244 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 36: YY_RULE_SETUP #line 245 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_RCVBUF) } +{ YDVAR(1, VAR_OUTGOING_INTERFACE) } YY_BREAK case 37: YY_RULE_SETUP #line 246 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_SNDBUF) } +{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } YY_BREAK case 38: YY_RULE_SETUP #line 247 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_REUSEPORT) } +{ YDVAR(1, VAR_SO_RCVBUF) } YY_BREAK case 39: YY_RULE_SETUP #line 248 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_TRANSPARENT) } +{ YDVAR(1, VAR_SO_SNDBUF) } YY_BREAK case 40: YY_RULE_SETUP #line 249 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_FREEBIND) } +{ YDVAR(1, VAR_SO_REUSEPORT) } YY_BREAK case 41: YY_RULE_SETUP #line 250 "./util/configlexer.lex" -{ YDVAR(1, VAR_CHROOT) } +{ YDVAR(1, VAR_IP_TRANSPARENT) } YY_BREAK case 42: YY_RULE_SETUP #line 251 "./util/configlexer.lex" -{ YDVAR(1, VAR_USERNAME) } +{ YDVAR(1, VAR_IP_FREEBIND) } YY_BREAK case 43: YY_RULE_SETUP #line 252 "./util/configlexer.lex" -{ YDVAR(1, VAR_DIRECTORY) } +{ YDVAR(1, VAR_CHROOT) } YY_BREAK case 44: YY_RULE_SETUP #line 253 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOGFILE) } +{ YDVAR(1, VAR_USERNAME) } YY_BREAK case 45: YY_RULE_SETUP #line 254 "./util/configlexer.lex" -{ YDVAR(1, VAR_PIDFILE) } +{ YDVAR(1, VAR_DIRECTORY) } YY_BREAK case 46: YY_RULE_SETUP #line 255 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_HINTS) } +{ YDVAR(1, VAR_LOGFILE) } YY_BREAK case 47: YY_RULE_SETUP #line 256 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } +{ YDVAR(1, VAR_PIDFILE) } YY_BREAK case 48: YY_RULE_SETUP #line 257 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } +{ YDVAR(1, VAR_ROOT_HINTS) } YY_BREAK case 49: YY_RULE_SETUP #line 258 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SIZE) } +{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } YY_BREAK case 50: YY_RULE_SETUP #line 259 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SLABS) } +{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } YY_BREAK case 51: YY_RULE_SETUP #line 260 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } +{ YDVAR(1, VAR_MSG_CACHE_SIZE) } YY_BREAK case 52: YY_RULE_SETUP #line 261 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } +{ YDVAR(1, VAR_MSG_CACHE_SLABS) } YY_BREAK case 53: YY_RULE_SETUP #line 262 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } YY_BREAK case 54: YY_RULE_SETUP #line 263 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } YY_BREAK case 55: YY_RULE_SETUP #line 264 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MIN_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_TTL) } YY_BREAK case 56: YY_RULE_SETUP #line 265 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_HOST_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } YY_BREAK case 57: YY_RULE_SETUP #line 266 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_LAME_TTL) } +{ YDVAR(1, VAR_CACHE_MIN_TTL) } YY_BREAK case 58: YY_RULE_SETUP #line 267 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } +{ YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 59: YY_RULE_SETUP #line 268 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } +{ YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 60: YY_RULE_SETUP #line 269 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } +{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 61: YY_RULE_SETUP #line 270 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } +{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 62: YY_RULE_SETUP #line 271 "./util/configlexer.lex" -{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } +{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 63: YY_RULE_SETUP #line 272 "./util/configlexer.lex" -{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } +{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } YY_BREAK case 64: YY_RULE_SETUP #line 273 "./util/configlexer.lex" -{ YDVAR(1, VAR_DELAY_CLOSE) } +{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 65: YY_RULE_SETUP #line 274 "./util/configlexer.lex" -{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } +{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 66: YY_RULE_SETUP #line 275 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } +{ YDVAR(1, VAR_DELAY_CLOSE) } YY_BREAK case 67: YY_RULE_SETUP #line 276 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } +{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 68: YY_RULE_SETUP #line 277 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_GLUE) } +{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 69: YY_RULE_SETUP #line 278 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } +{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 70: YY_RULE_SETUP #line 279 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } +{ YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 71: YY_RULE_SETUP #line 280 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } +{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } YY_BREAK case 72: YY_RULE_SETUP #line 281 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } +{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } YY_BREAK case 73: YY_RULE_SETUP #line 282 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 74: YY_RULE_SETUP #line 283 "./util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } +{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } YY_BREAK case 75: YY_RULE_SETUP #line 284 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 76: YY_RULE_SETUP #line 285 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_ADDRESS) } +{ YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 77: YY_RULE_SETUP #line 286 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_DOMAIN) } +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 78: YY_RULE_SETUP #line 287 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH_KEY) } +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 79: YY_RULE_SETUP #line 288 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH) } +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 80: YY_RULE_SETUP #line 289 "./util/configlexer.lex" -{ YDVAR(0, VAR_STUB_ZONE) } +{ YDVAR(1, VAR_PREFETCH_KEY) } YY_BREAK case 81: YY_RULE_SETUP #line 290 "./util/configlexer.lex" -{ YDVAR(1, VAR_NAME) } +{ YDVAR(1, VAR_PREFETCH) } YY_BREAK case 82: YY_RULE_SETUP #line 291 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_ADDR) } +{ YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 83: YY_RULE_SETUP #line 292 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_HOST) } +{ YDVAR(1, VAR_NAME) } YY_BREAK case 84: YY_RULE_SETUP #line 293 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_PRIME) } +{ YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 85: YY_RULE_SETUP #line 294 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_FIRST) } +{ YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 86: YY_RULE_SETUP #line 295 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +{ YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 87: YY_RULE_SETUP #line 296 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +{ YDVAR(1, VAR_STUB_FIRST) } YY_BREAK case 88: YY_RULE_SETUP #line 297 "./util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 89: YY_RULE_SETUP #line 298 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 90: YY_RULE_SETUP #line 299 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 91: YY_RULE_SETUP #line 300 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_FIRST) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 92: YY_RULE_SETUP #line 301 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 93: YY_RULE_SETUP #line 302 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 94: YY_RULE_SETUP #line 303 "./util/configlexer.lex" -{ YDVAR(0, VAR_AUTH_ZONE) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 95: YY_RULE_SETUP #line 304 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEFILE) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 96: YY_RULE_SETUP #line 305 "./util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(0, VAR_AUTH_ZONE) } YY_BREAK case 97: YY_RULE_SETUP #line 306 "./util/configlexer.lex" -{ YDVAR(1, VAR_URL) } +{ YDVAR(1, VAR_ZONEFILE) } YY_BREAK case 98: YY_RULE_SETUP #line 307 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_DOWNSTREAM) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 99: YY_RULE_SETUP #line 308 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_UPSTREAM) } +{ YDVAR(1, VAR_URL) } YY_BREAK case 100: YY_RULE_SETUP #line 309 "./util/configlexer.lex" -{ YDVAR(1, VAR_FALLBACK_ENABLED) } +{ YDVAR(1, VAR_FOR_DOWNSTREAM) } YY_BREAK case 101: YY_RULE_SETUP #line 310 "./util/configlexer.lex" -{ YDVAR(0, VAR_VIEW) } +{ YDVAR(1, VAR_FOR_UPSTREAM) } YY_BREAK case 102: YY_RULE_SETUP #line 311 "./util/configlexer.lex" -{ YDVAR(1, VAR_VIEW_FIRST) } +{ YDVAR(1, VAR_FALLBACK_ENABLED) } YY_BREAK case 103: YY_RULE_SETUP #line 312 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(0, VAR_VIEW) } YY_BREAK case 104: YY_RULE_SETUP #line 313 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(1, VAR_VIEW_FIRST) } YY_BREAK case 105: YY_RULE_SETUP #line 314 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 106: YY_RULE_SETUP #line 315 "./util/configlexer.lex" -{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 107: YY_RULE_SETUP #line 316 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 108: YY_RULE_SETUP #line 317 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } +{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } YY_BREAK case 109: YY_RULE_SETUP #line 318 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } YY_BREAK case 110: YY_RULE_SETUP #line 319 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } YY_BREAK case 111: YY_RULE_SETUP #line 320 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } YY_BREAK case 112: YY_RULE_SETUP #line 321 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } YY_BREAK case 113: YY_RULE_SETUP #line 322 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } YY_BREAK case 114: YY_RULE_SETUP #line 323 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 115: YY_RULE_SETUP #line 324 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 116: YY_RULE_SETUP #line 325 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } YY_BREAK case 117: YY_RULE_SETUP #line 326 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 118: YY_RULE_SETUP #line 327 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 119: YY_RULE_SETUP #line 328 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 120: YY_RULE_SETUP #line 329 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 121: YY_RULE_SETUP #line 330 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 122: YY_RULE_SETUP #line 331 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 123: YY_RULE_SETUP #line 332 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 124: YY_RULE_SETUP #line 333 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 125: YY_RULE_SETUP #line 334 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 126: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } YY_BREAK case 127: YY_RULE_SETUP #line 336 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 128: YY_RULE_SETUP #line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 129: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 130: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 131: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 132: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 133: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } YY_BREAK case 134: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 135: YY_RULE_SETUP #line 344 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 136: YY_RULE_SETUP #line 345 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 137: YY_RULE_SETUP #line 346 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 138: YY_RULE_SETUP #line 347 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 139: YY_RULE_SETUP #line 348 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 140: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 141: YY_RULE_SETUP -#line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 350 "./util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 142: YY_RULE_SETUP -#line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +#line 351 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 143: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 144: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 145: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 146: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 147: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 148: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 149: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 150: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 151: YY_RULE_SETUP #line 361 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 152: YY_RULE_SETUP #line 362 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 153: YY_RULE_SETUP #line 363 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 154: YY_RULE_SETUP #line 364 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 155: YY_RULE_SETUP #line 365 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 156: YY_RULE_SETUP #line 366 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 157: YY_RULE_SETUP #line 367 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 158: YY_RULE_SETUP #line 368 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 159: YY_RULE_SETUP #line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 160: YY_RULE_SETUP #line 370 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 161: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 162: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 163: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 164: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 165: YY_RULE_SETUP #line 375 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 166: YY_RULE_SETUP #line 376 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 167: YY_RULE_SETUP #line 377 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 168: YY_RULE_SETUP #line 378 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 169: YY_RULE_SETUP #line 379 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 170: YY_RULE_SETUP #line 380 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 171: YY_RULE_SETUP #line 381 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 172: YY_RULE_SETUP #line 382 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 173: YY_RULE_SETUP #line 383 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 174: YY_RULE_SETUP #line 384 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 175: YY_RULE_SETUP #line 385 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 176: YY_RULE_SETUP #line 386 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 177: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 178: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 179: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 180: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 181: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 182: YY_RULE_SETUP #line 392 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 183: YY_RULE_SETUP #line 393 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 184: YY_RULE_SETUP #line 394 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 185: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 186: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 187: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 188: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 189: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 190: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 191: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 192: YY_RULE_SETUP -#line 403 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } +#line 402 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 193: YY_RULE_SETUP -#line 405 "./util/configlexer.lex" +#line 403 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 194: YY_RULE_SETUP -#line 407 "./util/configlexer.lex" +#line 405 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 195: YY_RULE_SETUP -#line 409 "./util/configlexer.lex" +#line 407 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 196: YY_RULE_SETUP -#line 411 "./util/configlexer.lex" +#line 409 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 197: YY_RULE_SETUP -#line 413 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 411 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 198: YY_RULE_SETUP -#line 414 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +#line 413 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 199: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 200: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 201: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 202: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 203: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 204: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 205: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 206: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 207: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 208: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 209: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 210: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 211: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 212: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 213: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 214: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 215: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 216: YY_RULE_SETUP #line 432 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 217: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 218: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 219: YY_RULE_SETUP -#line 436 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } +#line 435 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 220: YY_RULE_SETUP -#line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 436 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 221: YY_RULE_SETUP -#line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +#line 438 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 222: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 223: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 224: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 225: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 226: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 227: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 228: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 229: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 230: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 231: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 232: -/* rule 232 can match eol */ YY_RULE_SETUP #line 450 "./util/configlexer.lex" +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } + YY_BREAK +case 233: +YY_RULE_SETUP +#line 451 "./util/configlexer.lex" +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } + YY_BREAK +case 234: +/* rule 234 can match eol */ +YY_RULE_SETUP +#line 452 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 233: +case 235: YY_RULE_SETUP -#line 453 "./util/configlexer.lex" +#line 455 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 454 "./util/configlexer.lex" +#line 456 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 234: +case 236: YY_RULE_SETUP -#line 459 "./util/configlexer.lex" +#line 461 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 235: -/* rule 235 can match eol */ +case 237: +/* rule 237 can match eol */ YY_RULE_SETUP -#line 460 "./util/configlexer.lex" +#line 462 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 236: +case 238: YY_RULE_SETUP -#line 462 "./util/configlexer.lex" +#line 464 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4040,34 +4069,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 237: +case 239: YY_RULE_SETUP -#line 474 "./util/configlexer.lex" +#line 476 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 475 "./util/configlexer.lex" +#line 477 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 238: +case 240: YY_RULE_SETUP -#line 480 "./util/configlexer.lex" +#line 482 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 239: -/* rule 239 can match eol */ +case 241: +/* rule 241 can match eol */ YY_RULE_SETUP -#line 481 "./util/configlexer.lex" +#line 483 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 240: +case 242: YY_RULE_SETUP -#line 483 "./util/configlexer.lex" +#line 485 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4080,38 +4109,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 241: +case 243: YY_RULE_SETUP -#line 495 "./util/configlexer.lex" +#line 497 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 497 "./util/configlexer.lex" +#line 499 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 242: +case 244: YY_RULE_SETUP -#line 501 "./util/configlexer.lex" +#line 503 "./util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 243: -/* rule 243 can match eol */ +case 245: +/* rule 245 can match eol */ YY_RULE_SETUP -#line 502 "./util/configlexer.lex" +#line 504 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 244: +case 246: YY_RULE_SETUP -#line 503 "./util/configlexer.lex" +#line 505 "./util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 245: +case 247: YY_RULE_SETUP -#line 504 "./util/configlexer.lex" +#line 506 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -4119,27 +4148,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 509 "./util/configlexer.lex" +#line 511 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 246: +case 248: YY_RULE_SETUP -#line 513 "./util/configlexer.lex" +#line 515 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 247: -/* rule 247 can match eol */ +case 249: +/* rule 249 can match eol */ YY_RULE_SETUP -#line 514 "./util/configlexer.lex" +#line 516 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 248: +case 250: YY_RULE_SETUP -#line 516 "./util/configlexer.lex" +#line 518 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -4149,7 +4178,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 522 "./util/configlexer.lex" +#line 524 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -4161,33 +4190,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 249: +case 251: YY_RULE_SETUP -#line 533 "./util/configlexer.lex" +#line 535 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 250: +case 252: YY_RULE_SETUP -#line 537 "./util/configlexer.lex" +#line 539 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 251: +case 253: YY_RULE_SETUP -#line 541 "./util/configlexer.lex" +#line 543 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 252: +case 254: YY_RULE_SETUP -#line 545 "./util/configlexer.lex" +#line 547 "./util/configlexer.lex" ECHO; YY_BREAK -#line 4189 "" +#line 4218 "" case YY_END_OF_BUFFER: { @@ -4395,7 +4424,7 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ @@ -4444,7 +4473,7 @@ static int yy_get_next_buffer (void) 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. */ 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 ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); } @@ -4478,7 +4507,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2484 ) + if ( yy_current_state >= 2508 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; @@ -4506,11 +4535,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 >= 2484 ) + if ( yy_current_state >= 2508 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - yy_is_jam = (yy_current_state == 2483); + yy_is_jam = (yy_current_state == 2507); return yy_is_jam ? 0 : yy_current_state; } @@ -4668,12 +4697,12 @@ static void yy_load_buffer_state (void) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - b->yy_buf_size = (yy_size_t)size; + b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc((yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -4829,9 +4858,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; @@ -4860,7 +4889,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 ) { @@ -4876,7 +4905,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (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 = NULL; @@ -4959,7 +4988,7 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ) do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -4976,7 +5005,7 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -5149,7 +5178,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 545 "./util/configlexer.lex" +#line 547 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index a0469406a..0e158d161 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -236,6 +236,8 @@ ssl-service-pem{COLON} { YDVAR(1, VAR_SSL_SERVICE_PEM) } tls-service-pem{COLON} { YDVAR(1, VAR_SSL_SERVICE_PEM) } ssl-port{COLON} { YDVAR(1, VAR_SSL_PORT) } tls-port{COLON} { YDVAR(1, VAR_SSL_PORT) } +ssl-cert-bundle{COLON} { YDVAR(1, VAR_TLS_CERT_BUNDLE) } +tls-cert-bundle{COLON} { YDVAR(1, VAR_TLS_CERT_BUNDLE) } use-systemd{COLON} { YDVAR(1, VAR_USE_SYSTEMD) } do-daemonize{COLON} { YDVAR(1, VAR_DO_DAEMONIZE) } interface{COLON} { YDVAR(1, VAR_INTERFACE) } diff --git a/util/configparser.c b/util/configparser.c index a6b3fd731..487cec69b 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -258,104 +258,105 @@ extern int yydebug; VAR_FORWARD_FIRST = 387, VAR_STUB_SSL_UPSTREAM = 388, VAR_FORWARD_SSL_UPSTREAM = 389, - VAR_STUB_FIRST = 390, - VAR_MINIMAL_RESPONSES = 391, - VAR_RRSET_ROUNDROBIN = 392, - VAR_MAX_UDP_SIZE = 393, - VAR_DELAY_CLOSE = 394, - VAR_UNBLOCK_LAN_ZONES = 395, - VAR_INSECURE_LAN_ZONES = 396, - VAR_INFRA_CACHE_MIN_RTT = 397, - VAR_DNS64_PREFIX = 398, - VAR_DNS64_SYNTHALL = 399, - VAR_DNSTAP = 400, - VAR_DNSTAP_ENABLE = 401, - VAR_DNSTAP_SOCKET_PATH = 402, - VAR_DNSTAP_SEND_IDENTITY = 403, - VAR_DNSTAP_SEND_VERSION = 404, - VAR_DNSTAP_IDENTITY = 405, - VAR_DNSTAP_VERSION = 406, - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 407, - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 408, - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 409, - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 410, - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 411, - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 412, - VAR_RESPONSE_IP_TAG = 413, - VAR_RESPONSE_IP = 414, - VAR_RESPONSE_IP_DATA = 415, - VAR_HARDEN_ALGO_DOWNGRADE = 416, - VAR_IP_TRANSPARENT = 417, - VAR_DISABLE_DNSSEC_LAME_CHECK = 418, - VAR_IP_RATELIMIT = 419, - VAR_IP_RATELIMIT_SLABS = 420, - VAR_IP_RATELIMIT_SIZE = 421, - VAR_RATELIMIT = 422, - VAR_RATELIMIT_SLABS = 423, - VAR_RATELIMIT_SIZE = 424, - VAR_RATELIMIT_FOR_DOMAIN = 425, - VAR_RATELIMIT_BELOW_DOMAIN = 426, - VAR_IP_RATELIMIT_FACTOR = 427, - VAR_RATELIMIT_FACTOR = 428, - VAR_SEND_CLIENT_SUBNET = 429, - 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_AGGRESSIVE_NSEC = 456, - VAR_USE_SYSTEMD = 457, - VAR_SHM_ENABLE = 458, - VAR_SHM_KEY = 459, - VAR_DNSCRYPT = 460, - VAR_DNSCRYPT_ENABLE = 461, - VAR_DNSCRYPT_PORT = 462, - VAR_DNSCRYPT_PROVIDER = 463, - VAR_DNSCRYPT_SECRET_KEY = 464, - VAR_DNSCRYPT_PROVIDER_CERT = 465, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 466, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 467, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 468, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 469, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 470, - VAR_IPSECMOD_ENABLED = 471, - VAR_IPSECMOD_HOOK = 472, - VAR_IPSECMOD_IGNORE_BOGUS = 473, - VAR_IPSECMOD_MAX_TTL = 474, - VAR_IPSECMOD_WHITELIST = 475, - VAR_IPSECMOD_STRICT = 476, - VAR_CACHEDB = 477, - VAR_CACHEDB_BACKEND = 478, - VAR_CACHEDB_SECRETSEED = 479, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 480, - VAR_FOR_UPSTREAM = 481, - VAR_AUTH_ZONE = 482, - VAR_ZONEFILE = 483, - VAR_MASTER = 484, - VAR_URL = 485, - VAR_FOR_DOWNSTREAM = 486, - VAR_FALLBACK_ENABLED = 487 + VAR_TLS_CERT_BUNDLE = 390, + VAR_STUB_FIRST = 391, + VAR_MINIMAL_RESPONSES = 392, + VAR_RRSET_ROUNDROBIN = 393, + VAR_MAX_UDP_SIZE = 394, + VAR_DELAY_CLOSE = 395, + VAR_UNBLOCK_LAN_ZONES = 396, + VAR_INSECURE_LAN_ZONES = 397, + VAR_INFRA_CACHE_MIN_RTT = 398, + VAR_DNS64_PREFIX = 399, + VAR_DNS64_SYNTHALL = 400, + VAR_DNSTAP = 401, + VAR_DNSTAP_ENABLE = 402, + VAR_DNSTAP_SOCKET_PATH = 403, + VAR_DNSTAP_SEND_IDENTITY = 404, + VAR_DNSTAP_SEND_VERSION = 405, + VAR_DNSTAP_IDENTITY = 406, + VAR_DNSTAP_VERSION = 407, + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 408, + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 409, + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 410, + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 411, + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 412, + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 413, + VAR_RESPONSE_IP_TAG = 414, + VAR_RESPONSE_IP = 415, + VAR_RESPONSE_IP_DATA = 416, + VAR_HARDEN_ALGO_DOWNGRADE = 417, + VAR_IP_TRANSPARENT = 418, + VAR_DISABLE_DNSSEC_LAME_CHECK = 419, + VAR_IP_RATELIMIT = 420, + VAR_IP_RATELIMIT_SLABS = 421, + VAR_IP_RATELIMIT_SIZE = 422, + VAR_RATELIMIT = 423, + VAR_RATELIMIT_SLABS = 424, + VAR_RATELIMIT_SIZE = 425, + VAR_RATELIMIT_FOR_DOMAIN = 426, + VAR_RATELIMIT_BELOW_DOMAIN = 427, + VAR_IP_RATELIMIT_FACTOR = 428, + VAR_RATELIMIT_FACTOR = 429, + VAR_SEND_CLIENT_SUBNET = 430, + VAR_CLIENT_SUBNET_ZONE = 431, + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 432, + VAR_CLIENT_SUBNET_OPCODE = 433, + VAR_MAX_CLIENT_SUBNET_IPV4 = 434, + VAR_MAX_CLIENT_SUBNET_IPV6 = 435, + VAR_CAPS_WHITELIST = 436, + VAR_CACHE_MAX_NEGATIVE_TTL = 437, + VAR_PERMIT_SMALL_HOLDDOWN = 438, + VAR_QNAME_MINIMISATION = 439, + VAR_QNAME_MINIMISATION_STRICT = 440, + VAR_IP_FREEBIND = 441, + VAR_DEFINE_TAG = 442, + VAR_LOCAL_ZONE_TAG = 443, + VAR_ACCESS_CONTROL_TAG = 444, + VAR_LOCAL_ZONE_OVERRIDE = 445, + VAR_ACCESS_CONTROL_TAG_ACTION = 446, + VAR_ACCESS_CONTROL_TAG_DATA = 447, + VAR_VIEW = 448, + VAR_ACCESS_CONTROL_VIEW = 449, + VAR_VIEW_FIRST = 450, + VAR_SERVE_EXPIRED = 451, + VAR_FAKE_DSA = 452, + VAR_FAKE_SHA1 = 453, + VAR_LOG_IDENTITY = 454, + VAR_HIDE_TRUSTANCHOR = 455, + VAR_TRUST_ANCHOR_SIGNALING = 456, + VAR_AGGRESSIVE_NSEC = 457, + VAR_USE_SYSTEMD = 458, + VAR_SHM_ENABLE = 459, + VAR_SHM_KEY = 460, + VAR_DNSCRYPT = 461, + VAR_DNSCRYPT_ENABLE = 462, + VAR_DNSCRYPT_PORT = 463, + VAR_DNSCRYPT_PROVIDER = 464, + VAR_DNSCRYPT_SECRET_KEY = 465, + VAR_DNSCRYPT_PROVIDER_CERT = 466, + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 467, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 468, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 469, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 470, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 471, + VAR_IPSECMOD_ENABLED = 472, + VAR_IPSECMOD_HOOK = 473, + VAR_IPSECMOD_IGNORE_BOGUS = 474, + VAR_IPSECMOD_MAX_TTL = 475, + VAR_IPSECMOD_WHITELIST = 476, + VAR_IPSECMOD_STRICT = 477, + VAR_CACHEDB = 478, + VAR_CACHEDB_BACKEND = 479, + VAR_CACHEDB_SECRETSEED = 480, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 481, + VAR_FOR_UPSTREAM = 482, + VAR_AUTH_ZONE = 483, + VAR_ZONEFILE = 484, + VAR_MASTER = 485, + VAR_URL = 486, + VAR_FOR_DOWNSTREAM = 487, + VAR_FALLBACK_ENABLED = 488 }; #endif /* Tokens. */ @@ -491,104 +492,105 @@ extern int yydebug; #define VAR_FORWARD_FIRST 387 #define VAR_STUB_SSL_UPSTREAM 388 #define VAR_FORWARD_SSL_UPSTREAM 389 -#define VAR_STUB_FIRST 390 -#define VAR_MINIMAL_RESPONSES 391 -#define VAR_RRSET_ROUNDROBIN 392 -#define VAR_MAX_UDP_SIZE 393 -#define VAR_DELAY_CLOSE 394 -#define VAR_UNBLOCK_LAN_ZONES 395 -#define VAR_INSECURE_LAN_ZONES 396 -#define VAR_INFRA_CACHE_MIN_RTT 397 -#define VAR_DNS64_PREFIX 398 -#define VAR_DNS64_SYNTHALL 399 -#define VAR_DNSTAP 400 -#define VAR_DNSTAP_ENABLE 401 -#define VAR_DNSTAP_SOCKET_PATH 402 -#define VAR_DNSTAP_SEND_IDENTITY 403 -#define VAR_DNSTAP_SEND_VERSION 404 -#define VAR_DNSTAP_IDENTITY 405 -#define VAR_DNSTAP_VERSION 406 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 407 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 408 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 409 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 410 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 411 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 412 -#define VAR_RESPONSE_IP_TAG 413 -#define VAR_RESPONSE_IP 414 -#define VAR_RESPONSE_IP_DATA 415 -#define VAR_HARDEN_ALGO_DOWNGRADE 416 -#define VAR_IP_TRANSPARENT 417 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 418 -#define VAR_IP_RATELIMIT 419 -#define VAR_IP_RATELIMIT_SLABS 420 -#define VAR_IP_RATELIMIT_SIZE 421 -#define VAR_RATELIMIT 422 -#define VAR_RATELIMIT_SLABS 423 -#define VAR_RATELIMIT_SIZE 424 -#define VAR_RATELIMIT_FOR_DOMAIN 425 -#define VAR_RATELIMIT_BELOW_DOMAIN 426 -#define VAR_IP_RATELIMIT_FACTOR 427 -#define VAR_RATELIMIT_FACTOR 428 -#define VAR_SEND_CLIENT_SUBNET 429 -#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_AGGRESSIVE_NSEC 456 -#define VAR_USE_SYSTEMD 457 -#define VAR_SHM_ENABLE 458 -#define VAR_SHM_KEY 459 -#define VAR_DNSCRYPT 460 -#define VAR_DNSCRYPT_ENABLE 461 -#define VAR_DNSCRYPT_PORT 462 -#define VAR_DNSCRYPT_PROVIDER 463 -#define VAR_DNSCRYPT_SECRET_KEY 464 -#define VAR_DNSCRYPT_PROVIDER_CERT 465 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 466 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 467 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 468 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 469 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 470 -#define VAR_IPSECMOD_ENABLED 471 -#define VAR_IPSECMOD_HOOK 472 -#define VAR_IPSECMOD_IGNORE_BOGUS 473 -#define VAR_IPSECMOD_MAX_TTL 474 -#define VAR_IPSECMOD_WHITELIST 475 -#define VAR_IPSECMOD_STRICT 476 -#define VAR_CACHEDB 477 -#define VAR_CACHEDB_BACKEND 478 -#define VAR_CACHEDB_SECRETSEED 479 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 480 -#define VAR_FOR_UPSTREAM 481 -#define VAR_AUTH_ZONE 482 -#define VAR_ZONEFILE 483 -#define VAR_MASTER 484 -#define VAR_URL 485 -#define VAR_FOR_DOWNSTREAM 486 -#define VAR_FALLBACK_ENABLED 487 +#define VAR_TLS_CERT_BUNDLE 390 +#define VAR_STUB_FIRST 391 +#define VAR_MINIMAL_RESPONSES 392 +#define VAR_RRSET_ROUNDROBIN 393 +#define VAR_MAX_UDP_SIZE 394 +#define VAR_DELAY_CLOSE 395 +#define VAR_UNBLOCK_LAN_ZONES 396 +#define VAR_INSECURE_LAN_ZONES 397 +#define VAR_INFRA_CACHE_MIN_RTT 398 +#define VAR_DNS64_PREFIX 399 +#define VAR_DNS64_SYNTHALL 400 +#define VAR_DNSTAP 401 +#define VAR_DNSTAP_ENABLE 402 +#define VAR_DNSTAP_SOCKET_PATH 403 +#define VAR_DNSTAP_SEND_IDENTITY 404 +#define VAR_DNSTAP_SEND_VERSION 405 +#define VAR_DNSTAP_IDENTITY 406 +#define VAR_DNSTAP_VERSION 407 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 408 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 409 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 410 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 411 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 412 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 413 +#define VAR_RESPONSE_IP_TAG 414 +#define VAR_RESPONSE_IP 415 +#define VAR_RESPONSE_IP_DATA 416 +#define VAR_HARDEN_ALGO_DOWNGRADE 417 +#define VAR_IP_TRANSPARENT 418 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 419 +#define VAR_IP_RATELIMIT 420 +#define VAR_IP_RATELIMIT_SLABS 421 +#define VAR_IP_RATELIMIT_SIZE 422 +#define VAR_RATELIMIT 423 +#define VAR_RATELIMIT_SLABS 424 +#define VAR_RATELIMIT_SIZE 425 +#define VAR_RATELIMIT_FOR_DOMAIN 426 +#define VAR_RATELIMIT_BELOW_DOMAIN 427 +#define VAR_IP_RATELIMIT_FACTOR 428 +#define VAR_RATELIMIT_FACTOR 429 +#define VAR_SEND_CLIENT_SUBNET 430 +#define VAR_CLIENT_SUBNET_ZONE 431 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 432 +#define VAR_CLIENT_SUBNET_OPCODE 433 +#define VAR_MAX_CLIENT_SUBNET_IPV4 434 +#define VAR_MAX_CLIENT_SUBNET_IPV6 435 +#define VAR_CAPS_WHITELIST 436 +#define VAR_CACHE_MAX_NEGATIVE_TTL 437 +#define VAR_PERMIT_SMALL_HOLDDOWN 438 +#define VAR_QNAME_MINIMISATION 439 +#define VAR_QNAME_MINIMISATION_STRICT 440 +#define VAR_IP_FREEBIND 441 +#define VAR_DEFINE_TAG 442 +#define VAR_LOCAL_ZONE_TAG 443 +#define VAR_ACCESS_CONTROL_TAG 444 +#define VAR_LOCAL_ZONE_OVERRIDE 445 +#define VAR_ACCESS_CONTROL_TAG_ACTION 446 +#define VAR_ACCESS_CONTROL_TAG_DATA 447 +#define VAR_VIEW 448 +#define VAR_ACCESS_CONTROL_VIEW 449 +#define VAR_VIEW_FIRST 450 +#define VAR_SERVE_EXPIRED 451 +#define VAR_FAKE_DSA 452 +#define VAR_FAKE_SHA1 453 +#define VAR_LOG_IDENTITY 454 +#define VAR_HIDE_TRUSTANCHOR 455 +#define VAR_TRUST_ANCHOR_SIGNALING 456 +#define VAR_AGGRESSIVE_NSEC 457 +#define VAR_USE_SYSTEMD 458 +#define VAR_SHM_ENABLE 459 +#define VAR_SHM_KEY 460 +#define VAR_DNSCRYPT 461 +#define VAR_DNSCRYPT_ENABLE 462 +#define VAR_DNSCRYPT_PORT 463 +#define VAR_DNSCRYPT_PROVIDER 464 +#define VAR_DNSCRYPT_SECRET_KEY 465 +#define VAR_DNSCRYPT_PROVIDER_CERT 466 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 467 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 468 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 469 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 470 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 471 +#define VAR_IPSECMOD_ENABLED 472 +#define VAR_IPSECMOD_HOOK 473 +#define VAR_IPSECMOD_IGNORE_BOGUS 474 +#define VAR_IPSECMOD_MAX_TTL 475 +#define VAR_IPSECMOD_WHITELIST 476 +#define VAR_IPSECMOD_STRICT 477 +#define VAR_CACHEDB 478 +#define VAR_CACHEDB_BACKEND 479 +#define VAR_CACHEDB_SECRETSEED 480 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 481 +#define VAR_FOR_UPSTREAM 482 +#define VAR_AUTH_ZONE 483 +#define VAR_ZONEFILE 484 +#define VAR_MASTER 485 +#define VAR_URL 486 +#define VAR_FOR_DOWNSTREAM 487 +#define VAR_FALLBACK_ENABLED 488 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -599,7 +601,7 @@ union YYSTYPE char* str; -#line 603 "util/configparser.c" /* yacc.c:355 */ +#line 605 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -616,7 +618,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 620 "util/configparser.c" /* yacc.c:358 */ +#line 622 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -858,21 +860,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 471 +#define YYLAST 473 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 233 +#define YYNTOKENS 234 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 253 +#define YYNNTS 254 /* YYNRULES -- Number of rules. */ -#define YYNRULES 483 +#define YYNRULES 485 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 723 +#define YYNSTATES 726 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 487 +#define YYMAXUTOK 488 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -929,7 +931,7 @@ static const yytype_uint8 yytranslate[] = 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 + 225, 226, 227, 228, 229, 230, 231, 232, 233 }; #if YYDEBUG @@ -953,38 +955,38 @@ static const yytype_uint16 yyrline[] = 229, 229, 230, 231, 231, 232, 232, 233, 233, 234, 234, 234, 235, 235, 236, 236, 237, 237, 238, 238, 239, 239, 239, 240, 240, 240, 241, 241, 241, 242, - 242, 243, 243, 244, 244, 245, 245, 246, 246, 248, - 260, 261, 262, 262, 262, 262, 262, 263, 265, 277, - 278, 279, 279, 279, 279, 280, 282, 296, 297, 298, - 298, 298, 298, 299, 299, 299, 301, 317, 318, 319, - 319, 319, 319, 320, 320, 320, 322, 331, 340, 351, - 360, 369, 378, 389, 398, 409, 422, 437, 448, 465, - 482, 495, 510, 519, 528, 537, 546, 555, 564, 573, - 582, 591, 600, 609, 618, 627, 636, 645, 654, 661, - 668, 677, 686, 695, 709, 718, 727, 736, 743, 750, - 776, 784, 791, 798, 805, 812, 820, 828, 836, 843, - 854, 861, 870, 879, 888, 895, 902, 910, 918, 928, - 938, 948, 961, 972, 980, 993, 1002, 1011, 1020, 1030, - 1040, 1048, 1061, 1070, 1078, 1087, 1095, 1108, 1117, 1124, - 1134, 1144, 1154, 1164, 1174, 1184, 1194, 1204, 1211, 1218, - 1225, 1234, 1243, 1252, 1259, 1269, 1286, 1293, 1311, 1324, - 1337, 1346, 1355, 1364, 1373, 1383, 1393, 1404, 1413, 1422, - 1435, 1448, 1457, 1464, 1473, 1482, 1491, 1500, 1508, 1521, - 1529, 1557, 1564, 1579, 1589, 1599, 1606, 1613, 1622, 1636, - 1655, 1674, 1686, 1698, 1710, 1721, 1740, 1750, 1759, 1767, - 1775, 1788, 1801, 1814, 1827, 1836, 1845, 1855, 1865, 1878, - 1891, 1902, 1915, 1926, 1939, 1949, 1956, 1963, 1972, 1982, - 1992, 2002, 2009, 2016, 2025, 2035, 2045, 2052, 2059, 2066, - 2076, 2086, 2096, 2106, 2135, 2145, 2153, 2162, 2177, 2186, - 2191, 2192, 2193, 2193, 2193, 2194, 2194, 2194, 2195, 2195, - 2197, 2207, 2216, 2223, 2233, 2240, 2247, 2254, 2261, 2266, - 2267, 2268, 2268, 2269, 2269, 2270, 2270, 2271, 2272, 2273, - 2274, 2275, 2276, 2278, 2286, 2293, 2301, 2309, 2316, 2323, - 2332, 2341, 2350, 2359, 2368, 2377, 2382, 2383, 2384, 2386, - 2392, 2402, 2409, 2418, 2426, 2432, 2433, 2435, 2435, 2435, - 2436, 2436, 2437, 2438, 2439, 2440, 2441, 2443, 2453, 2463, - 2470, 2479, 2486, 2495, 2503, 2516, 2524, 2537, 2542, 2543, - 2544, 2544, 2546, 2560 + 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, + 249, 261, 262, 263, 263, 263, 263, 263, 264, 266, + 278, 279, 280, 280, 280, 280, 281, 283, 297, 298, + 299, 299, 299, 299, 300, 300, 300, 302, 318, 319, + 320, 320, 320, 320, 321, 321, 321, 323, 332, 341, + 352, 361, 370, 379, 390, 399, 410, 423, 438, 449, + 466, 483, 496, 511, 520, 529, 538, 547, 556, 565, + 574, 583, 592, 601, 610, 619, 628, 637, 646, 655, + 662, 669, 678, 685, 694, 703, 717, 726, 735, 744, + 751, 758, 784, 792, 799, 806, 813, 820, 828, 836, + 844, 851, 862, 869, 878, 887, 896, 903, 910, 918, + 926, 936, 946, 956, 969, 980, 988, 1001, 1010, 1019, + 1028, 1038, 1048, 1056, 1069, 1078, 1086, 1095, 1103, 1116, + 1125, 1132, 1142, 1152, 1162, 1172, 1182, 1192, 1202, 1212, + 1219, 1226, 1233, 1242, 1251, 1260, 1267, 1277, 1294, 1301, + 1319, 1332, 1345, 1354, 1363, 1372, 1381, 1391, 1401, 1412, + 1421, 1430, 1443, 1456, 1465, 1472, 1481, 1490, 1499, 1508, + 1516, 1529, 1537, 1565, 1572, 1587, 1597, 1607, 1614, 1621, + 1630, 1644, 1663, 1682, 1694, 1706, 1718, 1729, 1748, 1758, + 1767, 1775, 1783, 1796, 1809, 1822, 1835, 1844, 1853, 1863, + 1873, 1886, 1899, 1910, 1923, 1934, 1947, 1957, 1964, 1971, + 1980, 1990, 2000, 2010, 2017, 2024, 2033, 2043, 2053, 2060, + 2067, 2074, 2084, 2094, 2104, 2114, 2143, 2153, 2161, 2170, + 2185, 2194, 2199, 2200, 2201, 2201, 2201, 2202, 2202, 2202, + 2203, 2203, 2205, 2215, 2224, 2231, 2241, 2248, 2255, 2262, + 2269, 2274, 2275, 2276, 2276, 2277, 2277, 2278, 2278, 2279, + 2280, 2281, 2282, 2283, 2284, 2286, 2294, 2301, 2309, 2317, + 2324, 2331, 2340, 2349, 2358, 2367, 2376, 2385, 2390, 2391, + 2392, 2394, 2400, 2410, 2417, 2426, 2434, 2440, 2441, 2443, + 2443, 2443, 2444, 2444, 2445, 2446, 2447, 2448, 2449, 2451, + 2461, 2471, 2478, 2487, 2494, 2503, 2511, 2524, 2532, 2545, + 2550, 2551, 2552, 2552, 2554, 2568 }; #endif @@ -1035,12 +1037,13 @@ static const char *const yytname[] = "VAR_LOG_REPLIES", "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM", "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "VAR_FORWARD_FIRST", "VAR_STUB_SSL_UPSTREAM", "VAR_FORWARD_SSL_UPSTREAM", - "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES", "VAR_RRSET_ROUNDROBIN", - "VAR_MAX_UDP_SIZE", "VAR_DELAY_CLOSE", "VAR_UNBLOCK_LAN_ZONES", - "VAR_INSECURE_LAN_ZONES", "VAR_INFRA_CACHE_MIN_RTT", "VAR_DNS64_PREFIX", - "VAR_DNS64_SYNTHALL", "VAR_DNSTAP", "VAR_DNSTAP_ENABLE", - "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_SEND_IDENTITY", - "VAR_DNSTAP_SEND_VERSION", "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION", + "VAR_TLS_CERT_BUNDLE", "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES", + "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", "VAR_DELAY_CLOSE", + "VAR_UNBLOCK_LAN_ZONES", "VAR_INSECURE_LAN_ZONES", + "VAR_INFRA_CACHE_MIN_RTT", "VAR_DNS64_PREFIX", "VAR_DNS64_SYNTHALL", + "VAR_DNSTAP", "VAR_DNSTAP_ENABLE", "VAR_DNSTAP_SOCKET_PATH", + "VAR_DNSTAP_SEND_IDENTITY", "VAR_DNSTAP_SEND_VERSION", + "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION", "VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES", "VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES", "VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES", @@ -1095,17 +1098,18 @@ static const char *const yytname[] = "server_outgoing_tcp_mss", "server_tcp_upstream", "server_udp_upstream_without_downstream", "server_ssl_upstream", "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", - "server_use_systemd", "server_do_daemonize", "server_use_syslog", - "server_log_time_ascii", "server_log_queries", "server_log_replies", - "server_chroot", "server_username", "server_directory", "server_logfile", - "server_pidfile", "server_root_hints", "server_dlv_anchor_file", - "server_dlv_anchor", "server_auto_trust_anchor_file", - "server_trust_anchor_file", "server_trusted_keys_file", - "server_trust_anchor", "server_trust_anchor_signaling", - "server_domain_insecure", "server_hide_identity", "server_hide_version", - "server_hide_trustanchor", "server_identity", "server_version", - "server_so_rcvbuf", "server_so_sndbuf", "server_so_reuseport", - "server_ip_transparent", "server_ip_freebind", "server_edns_buffer_size", + "server_tls_cert_bundle", "server_use_systemd", "server_do_daemonize", + "server_use_syslog", "server_log_time_ascii", "server_log_queries", + "server_log_replies", "server_chroot", "server_username", + "server_directory", "server_logfile", "server_pidfile", + "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor", + "server_auto_trust_anchor_file", "server_trust_anchor_file", + "server_trusted_keys_file", "server_trust_anchor", + "server_trust_anchor_signaling", "server_domain_insecure", + "server_hide_identity", "server_hide_version", "server_hide_trustanchor", + "server_identity", "server_version", "server_so_rcvbuf", + "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent", + "server_ip_freebind", "server_edns_buffer_size", "server_msg_buffer_size", "server_msg_cache_size", "server_msg_cache_slabs", "server_num_queries_per_thread", "server_jostle_timeout", "server_delay_close", @@ -1210,14 +1214,14 @@ static const yytype_uint16 yytoknum[] = 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487 + 485, 486, 487, 488 }; # endif -#define YYPACT_NINF -222 +#define YYPACT_NINF -223 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-222))) + (!!((Yystate) == (-223))) #define YYTABLE_NINF -1 @@ -1228,79 +1232,79 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -222, 0, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, 216, -36, -32, -39, -35, -24, - -128, -99, -158, -221, 2, 3, 4, 5, 20, 21, + -223, 0, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, 217, -36, -31, -39, -35, -24, + -128, -100, -159, -222, 2, 3, 4, 5, 6, 21, 22, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 48, 49, 50, 51, 53, 54, 55, 56, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, - 88, 91, 93, 94, 95, 96, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 112, 113, + 88, 89, 92, 94, 95, 96, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 188, 189, 190, 191, 192, - 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 213, 214, - 215, 246, 247, 248, 249, 253, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, 254, - 255, 297, 298, 299, 300, -222, -222, -222, -222, -222, - -222, -222, 301, 302, 303, 304, 305, -222, -222, -222, - -222, -222, -222, 309, 313, 314, 338, 339, 340, 341, - -222, -222, -222, -222, -222, -222, -222, -222, 351, 352, - 353, 354, 355, 356, 357, -222, -222, -222, -222, -222, - -222, -222, -222, 358, 359, 360, 361, 362, 363, 398, - 400, -222, -222, -222, -222, -222, -222, -222, -222, -222, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 428, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, 429, -222, -222, 430, 432, - 433, 434, 435, 436, 437, 438, 439, 440, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, 441, - 442, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - 443, 444, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, 445, 446, 447, -222, -222, -222, - -222, -222, -222, -222, -222, -222, 448, 449, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, 450, 451, 452, 453, 454, 455, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, 456, -222, - -222, 457, 458, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, 459, 460, 461, -222, -222, -222, -222, - -222, -222, -222 + 176, 177, 178, 179, 180, 181, 189, 190, 191, 192, + 193, 194, 195, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 214, + 215, 216, 247, 248, 249, 250, 254, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, 255, 256, 298, 299, 300, 301, -223, -223, -223, + -223, -223, -223, -223, 302, 303, 304, 305, 306, -223, + -223, -223, -223, -223, -223, 310, 314, 315, 339, 340, + 341, 343, -223, -223, -223, -223, -223, -223, -223, -223, + 353, 354, 355, 356, 357, 358, 359, -223, -223, -223, + -223, -223, -223, -223, -223, 360, 361, 362, 363, 364, + 365, 400, 402, -223, -223, -223, -223, -223, -223, -223, + -223, -223, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 430, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, 431, -223, -223, + 432, 434, 435, 436, 437, 438, 439, 440, 441, 442, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, 443, 444, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, 445, 446, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, 447, 448, 449, + -223, -223, -223, -223, -223, -223, -223, -223, -223, 450, + 451, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, 452, 453, 454, 455, + 456, 457, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, 458, -223, -223, 459, 460, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, 461, 462, 463, -223, + -223, -223, -223, -223, -223, -223 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1308,9 +1312,9 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 14, 179, 188, 399, 445, 418, 196, - 454, 477, 206, 3, 16, 181, 190, 198, 208, 401, - 420, 447, 456, 479, 4, 5, 6, 10, 13, 8, + 2, 0, 1, 14, 180, 189, 401, 447, 420, 197, + 456, 479, 207, 3, 16, 182, 191, 199, 209, 403, + 422, 449, 458, 481, 4, 5, 6, 10, 13, 8, 9, 7, 11, 12, 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, @@ -1327,122 +1331,122 @@ 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, 15, 17, 18, 77, - 80, 89, 166, 167, 19, 139, 140, 141, 142, 143, - 144, 28, 68, 20, 81, 82, 39, 61, 76, 21, - 22, 24, 25, 23, 26, 27, 112, 177, 113, 114, - 115, 116, 162, 78, 67, 93, 110, 111, 29, 30, - 31, 32, 33, 69, 83, 84, 99, 55, 65, 56, - 170, 94, 49, 50, 169, 51, 52, 103, 107, 120, - 128, 149, 104, 62, 34, 35, 36, 91, 121, 122, - 123, 37, 38, 40, 41, 43, 44, 42, 126, 45, - 46, 47, 53, 72, 108, 86, 127, 79, 145, 87, - 88, 105, 106, 92, 48, 70, 73, 54, 57, 95, - 96, 71, 146, 97, 58, 59, 60, 178, 109, 159, - 160, 168, 98, 66, 100, 101, 102, 147, 63, 64, - 85, 74, 75, 90, 117, 118, 119, 124, 125, 150, - 151, 153, 155, 156, 154, 157, 163, 129, 130, 133, - 134, 131, 132, 135, 136, 138, 137, 148, 158, 171, - 173, 172, 174, 175, 176, 152, 161, 164, 165, 0, - 0, 0, 0, 0, 0, 180, 182, 183, 184, 186, - 187, 185, 0, 0, 0, 0, 0, 189, 191, 192, - 193, 194, 195, 0, 0, 0, 0, 0, 0, 0, - 197, 199, 200, 203, 204, 201, 205, 202, 0, 0, - 0, 0, 0, 0, 0, 207, 209, 210, 211, 212, - 213, 214, 215, 0, 0, 0, 0, 0, 0, 0, - 0, 400, 402, 404, 403, 409, 405, 406, 407, 408, + 0, 0, 0, 0, 0, 0, 0, 15, 17, 18, + 77, 80, 89, 166, 167, 19, 139, 140, 141, 142, + 143, 144, 28, 68, 20, 81, 82, 39, 61, 76, + 21, 22, 24, 25, 23, 26, 27, 112, 177, 113, + 114, 115, 116, 179, 162, 78, 67, 93, 110, 111, + 29, 30, 31, 32, 33, 69, 83, 84, 99, 55, + 65, 56, 170, 94, 49, 50, 169, 51, 52, 103, + 107, 120, 128, 149, 104, 62, 34, 35, 36, 91, + 121, 122, 123, 37, 38, 40, 41, 43, 44, 42, + 126, 45, 46, 47, 53, 72, 108, 86, 127, 79, + 145, 87, 88, 105, 106, 92, 48, 70, 73, 54, + 57, 95, 96, 71, 146, 97, 58, 59, 60, 178, + 109, 159, 160, 168, 98, 66, 100, 101, 102, 147, + 63, 64, 85, 74, 75, 90, 117, 118, 119, 124, + 125, 150, 151, 153, 155, 156, 154, 157, 163, 129, + 130, 133, 134, 131, 132, 135, 136, 138, 137, 148, + 158, 171, 173, 172, 174, 175, 176, 152, 161, 164, + 165, 0, 0, 0, 0, 0, 0, 181, 183, 184, + 185, 187, 188, 186, 0, 0, 0, 0, 0, 190, + 192, 193, 194, 195, 196, 0, 0, 0, 0, 0, + 0, 0, 198, 200, 201, 204, 205, 202, 206, 203, + 0, 0, 0, 0, 0, 0, 0, 208, 210, 211, + 212, 213, 214, 215, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 402, 404, 406, 405, 411, 407, 408, + 409, 410, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 421, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 0, 448, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 419, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 0, 446, 448, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 455, 457, - 458, 459, 461, 462, 460, 463, 464, 465, 466, 0, - 0, 478, 480, 481, 217, 216, 223, 232, 230, 238, - 239, 242, 240, 241, 243, 244, 257, 258, 259, 260, - 261, 283, 284, 285, 290, 291, 235, 292, 293, 296, - 294, 295, 298, 299, 300, 313, 271, 272, 274, 275, - 301, 316, 266, 268, 317, 323, 324, 325, 236, 282, - 337, 338, 267, 332, 253, 231, 262, 314, 320, 302, - 0, 0, 341, 237, 218, 252, 306, 219, 233, 234, - 263, 264, 339, 304, 308, 309, 220, 342, 286, 312, - 254, 270, 318, 319, 322, 331, 265, 335, 333, 334, - 276, 281, 310, 311, 277, 278, 303, 327, 255, 256, - 245, 247, 248, 249, 250, 343, 344, 345, 287, 288, - 289, 297, 346, 347, 0, 0, 0, 305, 279, 450, - 356, 360, 358, 357, 361, 359, 0, 0, 364, 365, - 224, 225, 226, 227, 228, 229, 307, 321, 336, 366, - 367, 280, 348, 0, 0, 0, 0, 0, 0, 328, - 329, 330, 451, 273, 269, 326, 251, 221, 222, 368, - 370, 369, 371, 372, 373, 246, 374, 375, 376, 379, - 378, 377, 380, 381, 382, 383, 384, 392, 0, 396, - 397, 0, 0, 398, 385, 390, 386, 387, 388, 389, - 391, 410, 412, 411, 414, 415, 416, 417, 413, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 449, 467, 468, 469, 472, 470, 471, 473, 474, - 475, 476, 482, 483, 315, 340, 355, 452, 453, 362, - 363, 349, 350, 0, 0, 0, 354, 393, 394, 395, - 353, 351, 352 + 457, 459, 460, 461, 463, 464, 462, 465, 466, 467, + 468, 0, 0, 480, 482, 483, 218, 217, 224, 233, + 231, 239, 240, 243, 241, 242, 244, 245, 259, 260, + 261, 262, 263, 285, 286, 287, 292, 293, 236, 294, + 295, 298, 296, 297, 300, 301, 302, 315, 273, 274, + 276, 277, 303, 318, 268, 270, 319, 325, 326, 327, + 237, 284, 339, 340, 269, 334, 255, 232, 264, 316, + 322, 304, 0, 0, 343, 238, 219, 254, 308, 220, + 234, 235, 265, 266, 341, 306, 310, 311, 221, 344, + 288, 314, 256, 272, 320, 321, 324, 333, 267, 337, + 335, 336, 278, 283, 312, 313, 279, 280, 305, 329, + 257, 258, 246, 248, 249, 250, 251, 252, 345, 346, + 347, 289, 290, 291, 299, 348, 349, 0, 0, 0, + 307, 281, 452, 358, 362, 360, 359, 363, 361, 0, + 0, 366, 367, 225, 226, 227, 228, 229, 230, 309, + 323, 338, 368, 369, 282, 350, 0, 0, 0, 0, + 0, 0, 330, 331, 332, 453, 275, 271, 328, 253, + 222, 223, 370, 372, 371, 373, 374, 375, 247, 376, + 377, 378, 381, 380, 379, 382, 383, 384, 385, 386, + 394, 0, 398, 399, 0, 0, 400, 387, 392, 388, + 389, 390, 391, 393, 412, 414, 413, 416, 417, 418, + 419, 415, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 451, 469, 470, 471, 474, 472, + 473, 475, 476, 477, 478, 484, 485, 317, 342, 357, + 454, 455, 364, 365, 351, 352, 0, 0, 0, 356, + 395, 396, 397, 355, 353, 354 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222 + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 13, 14, 24, 196, 15, 25, 365, 16, - 26, 377, 17, 27, 390, 18, 28, 405, 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, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 366, 367, 368, 369, - 370, 371, 378, 379, 380, 381, 382, 406, 407, 408, - 409, 410, 411, 412, 391, 392, 393, 394, 395, 396, - 397, 19, 29, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 20, 30, 442, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 21, 31, 456, - 457, 355, 356, 357, 358, 22, 32, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 23, 33, - 481, 482, 483 + -1, 1, 13, 14, 24, 197, 15, 25, 367, 16, + 26, 379, 17, 27, 392, 18, 28, 407, 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, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 368, 369, 370, + 371, 372, 373, 380, 381, 382, 383, 384, 408, 409, + 410, 411, 412, 413, 414, 393, 394, 395, 396, 397, + 398, 399, 19, 29, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 20, 30, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 21, 31, + 458, 459, 357, 358, 359, 360, 22, 32, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 23, + 33, 483, 484, 485 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1450,116 +1454,116 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 2, 383, 479, 480, 359, 398, 360, 361, 372, 455, - 0, 3, 484, 485, 486, 487, 373, 374, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 488, 489, 490, 491, 492, 493, 494, 384, 385, 495, - 496, 4, 497, 498, 499, 500, 501, 5, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 502, 503, - 504, 505, 386, 506, 507, 508, 509, 362, 413, 414, - 415, 416, 417, 418, 419, 420, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 6, 525, 526, 527, 528, 529, 363, 530, 364, - 375, 531, 376, 532, 533, 534, 535, 7, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 387, 388, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 8, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 389, 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, 399, 9, 400, 401, 402, 403, 404, 615, 616, - 617, 618, 619, 620, 621, 10, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 11, 638, 639, 640, 0, 12, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 641, 642, 643, 644, - 62, 63, 64, 645, 646, 647, 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, 100, 101, 102, 103, 104, 105, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 106, 107, 108, 657, - 109, 110, 111, 658, 659, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 660, 661, - 662, 663, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 664, 665, 666, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 677, 178, - 678, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 189, 190, 191, 192, 193, 194, 690, 691, - 692, 195, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 722 + 2, 385, 481, 482, 361, 400, 362, 363, 457, 374, + 0, 3, 486, 487, 488, 489, 490, 375, 376, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 491, 492, 493, 494, 495, 496, 386, 387, 497, + 498, 4, 499, 500, 501, 502, 503, 5, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 504, 505, + 506, 507, 388, 508, 509, 510, 511, 364, 415, 416, + 417, 418, 419, 420, 421, 422, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 6, 527, 528, 529, 530, 531, 365, 532, 533, + 366, 377, 534, 378, 535, 536, 537, 7, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 389, 390, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 8, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 391, 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, 401, 9, 402, 403, 404, 405, 406, 618, + 619, 620, 621, 622, 623, 624, 10, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 11, 641, 642, 643, 0, 12, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 644, 645, 646, + 647, 62, 63, 64, 648, 649, 650, 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, 100, 101, 102, 103, 104, 105, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 106, 107, 108, + 660, 109, 110, 111, 661, 662, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 663, + 664, 665, 135, 666, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 680, 179, 681, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 190, 191, 192, 193, 194, 195, + 693, 694, 695, 196, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725 }; static const yytype_int16 yycheck[] = { - 0, 40, 223, 224, 40, 40, 42, 43, 40, 108, - -1, 11, 10, 10, 10, 10, 48, 49, 146, 147, + 0, 40, 224, 225, 40, 40, 42, 43, 108, 40, + -1, 11, 10, 10, 10, 10, 10, 48, 49, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 10, 10, 10, 10, 10, 10, 10, 76, 77, 10, - 10, 41, 10, 10, 10, 10, 10, 47, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 10, 10, + 158, 10, 10, 10, 10, 10, 10, 76, 77, 10, + 10, 41, 10, 10, 10, 10, 10, 47, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 10, 10, 10, 10, 101, 10, 10, 10, 10, 103, 92, 93, 94, 95, 96, 97, 98, 99, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 91, 10, 10, 10, 10, 10, 133, 10, 135, - 132, 10, 134, 10, 10, 10, 10, 107, 10, 10, + 10, 91, 10, 10, 10, 10, 10, 133, 10, 10, + 136, 132, 10, 134, 10, 10, 10, 107, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 159, 160, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 160, 161, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 145, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 194, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 146, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 195, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 226, 192, 228, 229, 230, 231, 232, 10, 10, - 10, 10, 10, 10, 10, 205, 10, 10, 10, 10, + 10, 10, 227, 193, 229, 230, 231, 232, 233, 10, + 10, 10, 10, 10, 10, 10, 206, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 222, 10, 10, 10, -1, 227, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 10, 10, 10, 10, - 44, 45, 46, 10, 10, 10, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 100, 101, 102, 10, - 104, 105, 106, 10, 10, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 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, 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, 191, 10, 193, - 10, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 216, 217, 218, 219, 220, 221, 10, 10, - 10, 225, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 223, 10, 10, 10, -1, 228, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 10, 10, 10, + 10, 44, 45, 46, 10, 10, 10, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 100, 101, 102, + 10, 104, 105, 106, 10, 10, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 10, + 10, 10, 135, 10, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 10, 194, 10, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 217, 218, 219, 220, 221, 222, + 10, 10, 10, 226, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10 + 10, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 234, 0, 11, 41, 47, 91, 107, 145, 192, - 205, 222, 227, 235, 236, 239, 242, 245, 248, 434, - 445, 460, 468, 481, 237, 240, 243, 246, 249, 435, - 446, 461, 469, 482, 12, 13, 14, 15, 16, 17, + 0, 235, 0, 11, 41, 47, 91, 107, 146, 193, + 206, 223, 228, 236, 237, 240, 243, 246, 249, 436, + 447, 462, 470, 483, 238, 241, 244, 247, 250, 437, + 448, 463, 471, 484, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 44, 45, 46, 50, 51, 52, 53, 54, @@ -1569,13 +1573,13 @@ static const yytype_uint16 yystos[] = 85, 86, 87, 88, 89, 90, 100, 101, 102, 104, 105, 106, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 158, 159, 160, 161, 162, 163, + 127, 128, 129, 130, 131, 135, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 193, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 216, - 217, 218, 219, 220, 221, 225, 238, 251, 252, 253, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 217, 218, 219, 220, 221, 222, 226, 239, 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, @@ -1591,20 +1595,20 @@ static const yytype_uint16 yystos[] = 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, 405, 406, 407, 408, 464, 465, 466, 467, 40, - 42, 43, 103, 133, 135, 241, 409, 410, 411, 412, - 413, 414, 40, 48, 49, 132, 134, 244, 415, 416, - 417, 418, 419, 40, 76, 77, 101, 159, 160, 194, - 247, 427, 428, 429, 430, 431, 432, 433, 40, 226, - 228, 229, 230, 231, 232, 250, 420, 421, 422, 423, - 424, 425, 426, 92, 93, 94, 95, 96, 97, 98, - 99, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 108, 462, 463, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 223, - 224, 483, 484, 485, 10, 10, 10, 10, 10, 10, + 404, 405, 406, 407, 408, 409, 410, 466, 467, 468, + 469, 40, 42, 43, 103, 133, 136, 242, 411, 412, + 413, 414, 415, 416, 40, 48, 49, 132, 134, 245, + 417, 418, 419, 420, 421, 40, 76, 77, 101, 160, + 161, 195, 248, 429, 430, 431, 432, 433, 434, 435, + 40, 227, 229, 230, 231, 232, 233, 251, 422, 423, + 424, 425, 426, 427, 428, 92, 93, 94, 95, 96, + 97, 98, 99, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 108, 464, 465, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 224, 225, 485, 486, 487, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1628,34 +1632,34 @@ 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 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 233, 234, 234, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 236, 237, 237, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, - 240, 240, 241, 241, 241, 241, 241, 241, 242, 243, - 243, 244, 244, 244, 244, 244, 245, 246, 246, 247, - 247, 247, 247, 247, 247, 247, 248, 249, 249, 250, - 250, 250, 250, 250, 250, 250, 251, 252, 253, 254, + 0, 234, 235, 235, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 237, 238, 238, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 240, 241, 241, 242, 242, 242, 242, 242, 242, 243, + 244, 244, 245, 245, 245, 245, 245, 246, 247, 247, + 248, 248, 248, 248, 248, 248, 248, 249, 250, 250, + 251, 251, 251, 251, 251, 251, 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, @@ -1674,15 +1678,15 @@ static const yytype_uint16 yyr1[] = 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 435, 436, 436, 436, 436, 436, 436, 436, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 446, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 469, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 482, - 483, 483, 484, 485 + 435, 436, 437, 437, 438, 438, 438, 438, 438, 438, + 438, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 448, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 471, 472, + 472, 472, 472, 472, 472, 472, 472, 472, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 484, 485, 485, 486, 487 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1706,10 +1710,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, - 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, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 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, 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, @@ -1719,24 +1723,24 @@ 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, 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, - 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, 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, - 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, 1, 1, 1, 1, 1, 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, 1, 2, 2 + 1, 2, 2, 2, 3, 3, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 1, 2, 2 }; @@ -2417,11 +2421,11 @@ yyreduce: { OUTYY(("\nP(server:)\n")); } -#line 2421 "util/configparser.c" /* yacc.c:1646 */ +#line 2425 "util/configparser.c" /* yacc.c:1646 */ break; - case 179: -#line 249 "./util/configparser.y" /* yacc.c:1646 */ + case 180: +#line 250 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2432,11 +2436,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2436 "util/configparser.c" /* yacc.c:1646 */ +#line 2440 "util/configparser.c" /* yacc.c:1646 */ break; - case 188: -#line 266 "./util/configparser.y" /* yacc.c:1646 */ + case 189: +#line 267 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2447,11 +2451,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2451 "util/configparser.c" /* yacc.c:1646 */ +#line 2455 "util/configparser.c" /* yacc.c:1646 */ break; - case 196: -#line 283 "./util/configparser.y" /* yacc.c:1646 */ + case 197: +#line 284 "./util/configparser.y" /* yacc.c:1646 */ { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2464,11 +2468,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2468 "util/configparser.c" /* yacc.c:1646 */ +#line 2472 "util/configparser.c" /* yacc.c:1646 */ break; - case 206: -#line 302 "./util/configparser.y" /* yacc.c:1646 */ + case 207: +#line 303 "./util/configparser.y" /* yacc.c:1646 */ { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2483,11 +2487,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2487 "util/configparser.c" /* yacc.c:1646 */ +#line 2491 "util/configparser.c" /* yacc.c:1646 */ break; - case 216: -#line 323 "./util/configparser.y" /* yacc.c:1646 */ + case 217: +#line 324 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2495,11 +2499,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2499 "util/configparser.c" /* yacc.c:1646 */ +#line 2503 "util/configparser.c" /* yacc.c:1646 */ break; - case 217: -#line 332 "./util/configparser.y" /* yacc.c:1646 */ + case 218: +#line 333 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2507,11 +2511,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2511 "util/configparser.c" /* yacc.c:1646 */ +#line 2515 "util/configparser.c" /* yacc.c:1646 */ break; - case 218: -#line 341 "./util/configparser.y" /* yacc.c:1646 */ + case 219: +#line 342 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2521,11 +2525,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2525 "util/configparser.c" /* yacc.c:1646 */ +#line 2529 "util/configparser.c" /* yacc.c:1646 */ break; - case 219: -#line 352 "./util/configparser.y" /* yacc.c:1646 */ + case 220: +#line 353 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2533,11 +2537,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2537 "util/configparser.c" /* yacc.c:1646 */ +#line 2541 "util/configparser.c" /* yacc.c:1646 */ break; - case 220: -#line 361 "./util/configparser.y" /* yacc.c:1646 */ + case 221: +#line 362 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2545,11 +2549,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2549 "util/configparser.c" /* yacc.c:1646 */ +#line 2553 "util/configparser.c" /* yacc.c:1646 */ break; - case 221: -#line 370 "./util/configparser.y" /* yacc.c:1646 */ + case 222: +#line 371 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2557,11 +2561,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2561 "util/configparser.c" /* yacc.c:1646 */ +#line 2565 "util/configparser.c" /* yacc.c:1646 */ break; - case 222: -#line 379 "./util/configparser.y" /* yacc.c:1646 */ + case 223: +#line 380 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2571,11 +2575,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2575 "util/configparser.c" /* yacc.c:1646 */ +#line 2579 "util/configparser.c" /* yacc.c:1646 */ break; - case 223: -#line 390 "./util/configparser.y" /* yacc.c:1646 */ + case 224: +#line 391 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2583,11 +2587,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2587 "util/configparser.c" /* yacc.c:1646 */ +#line 2591 "util/configparser.c" /* yacc.c:1646 */ break; - case 224: -#line 399 "./util/configparser.y" /* yacc.c:1646 */ + case 225: +#line 400 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -2597,11 +2601,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2601 "util/configparser.c" /* yacc.c:1646 */ +#line 2605 "util/configparser.c" /* yacc.c:1646 */ break; - case 225: -#line 410 "./util/configparser.y" /* yacc.c:1646 */ + case 226: +#line 411 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -2612,11 +2616,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2616 "util/configparser.c" /* yacc.c:1646 */ +#line 2620 "util/configparser.c" /* yacc.c:1646 */ break; - case 226: -#line 423 "./util/configparser.y" /* yacc.c:1646 */ + case 227: +#line 424 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -2630,11 +2634,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2634 "util/configparser.c" /* yacc.c:1646 */ +#line 2638 "util/configparser.c" /* yacc.c:1646 */ break; - case 227: -#line 438 "./util/configparser.y" /* yacc.c:1646 */ + case 228: +#line 439 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -2644,11 +2648,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2648 "util/configparser.c" /* yacc.c:1646 */ +#line 2652 "util/configparser.c" /* yacc.c:1646 */ break; - case 228: -#line 449 "./util/configparser.y" /* yacc.c:1646 */ + case 229: +#line 450 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -2664,11 +2668,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2668 "util/configparser.c" /* yacc.c:1646 */ +#line 2672 "util/configparser.c" /* yacc.c:1646 */ break; - case 229: -#line 466 "./util/configparser.y" /* yacc.c:1646 */ + case 230: +#line 467 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -2684,11 +2688,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2688 "util/configparser.c" /* yacc.c:1646 */ +#line 2692 "util/configparser.c" /* yacc.c:1646 */ break; - case 230: -#line 483 "./util/configparser.y" /* yacc.c:1646 */ + case 231: +#line 484 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2700,11 +2704,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2704 "util/configparser.c" /* yacc.c:1646 */ +#line 2708 "util/configparser.c" /* yacc.c:1646 */ break; - case 231: -#line 496 "./util/configparser.y" /* yacc.c:1646 */ + case 232: +#line 497 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2718,11 +2722,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2722 "util/configparser.c" /* yacc.c:1646 */ +#line 2726 "util/configparser.c" /* yacc.c:1646 */ break; - case 232: -#line 511 "./util/configparser.y" /* yacc.c:1646 */ + case 233: +#line 512 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2730,11 +2734,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2734 "util/configparser.c" /* yacc.c:1646 */ +#line 2738 "util/configparser.c" /* yacc.c:1646 */ break; - case 233: -#line 520 "./util/configparser.y" /* yacc.c:1646 */ + case 234: +#line 521 "./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, @@ -2742,11 +2746,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2746 "util/configparser.c" /* yacc.c:1646 */ +#line 2750 "util/configparser.c" /* yacc.c:1646 */ break; - case 234: -#line 529 "./util/configparser.y" /* yacc.c:1646 */ + case 235: +#line 530 "./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, @@ -2754,11 +2758,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2758 "util/configparser.c" /* yacc.c:1646 */ +#line 2762 "util/configparser.c" /* yacc.c:1646 */ break; - case 235: -#line 538 "./util/configparser.y" /* yacc.c:1646 */ + case 236: +#line 539 "./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) @@ -2766,11 +2770,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2770 "util/configparser.c" /* yacc.c:1646 */ +#line 2774 "util/configparser.c" /* yacc.c:1646 */ break; - case 236: -#line 547 "./util/configparser.y" /* yacc.c:1646 */ + case 237: +#line 548 "./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) @@ -2778,11 +2782,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2782 "util/configparser.c" /* yacc.c:1646 */ +#line 2786 "util/configparser.c" /* yacc.c:1646 */ break; - case 237: -#line 556 "./util/configparser.y" /* yacc.c:1646 */ + case 238: +#line 557 "./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) @@ -2790,11 +2794,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2794 "util/configparser.c" /* yacc.c:1646 */ +#line 2798 "util/configparser.c" /* yacc.c:1646 */ break; - case 238: -#line 565 "./util/configparser.y" /* yacc.c:1646 */ + case 239: +#line 566 "./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) @@ -2802,11 +2806,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2806 "util/configparser.c" /* yacc.c:1646 */ +#line 2810 "util/configparser.c" /* yacc.c:1646 */ break; - case 239: -#line 574 "./util/configparser.y" /* yacc.c:1646 */ + case 240: +#line 575 "./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) @@ -2814,11 +2818,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2818 "util/configparser.c" /* yacc.c:1646 */ +#line 2822 "util/configparser.c" /* yacc.c:1646 */ break; - case 240: -#line 583 "./util/configparser.y" /* yacc.c:1646 */ + case 241: +#line 584 "./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) @@ -2826,11 +2830,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2830 "util/configparser.c" /* yacc.c:1646 */ +#line 2834 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: -#line 592 "./util/configparser.y" /* yacc.c:1646 */ + case 242: +#line 593 "./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) @@ -2838,11 +2842,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2842 "util/configparser.c" /* yacc.c:1646 */ +#line 2846 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: -#line 601 "./util/configparser.y" /* yacc.c:1646 */ + case 243: +#line 602 "./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) @@ -2850,11 +2854,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2854 "util/configparser.c" /* yacc.c:1646 */ +#line 2858 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: -#line 610 "./util/configparser.y" /* yacc.c:1646 */ + case 244: +#line 611 "./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) @@ -2862,11 +2866,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2866 "util/configparser.c" /* yacc.c:1646 */ +#line 2870 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: -#line 619 "./util/configparser.y" /* yacc.c:1646 */ + case 245: +#line 620 "./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) @@ -2874,11 +2878,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2878 "util/configparser.c" /* yacc.c:1646 */ +#line 2882 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: -#line 628 "./util/configparser.y" /* yacc.c:1646 */ + case 246: +#line 629 "./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) @@ -2886,11 +2890,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2890 "util/configparser.c" /* yacc.c:1646 */ +#line 2894 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: -#line 637 "./util/configparser.y" /* yacc.c:1646 */ + case 247: +#line 638 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2898,11 +2902,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2902 "util/configparser.c" /* yacc.c:1646 */ +#line 2906 "util/configparser.c" /* yacc.c:1646 */ break; - case 247: -#line 646 "./util/configparser.y" /* yacc.c:1646 */ + case 248: +#line 647 "./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) @@ -2910,31 +2914,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2914 "util/configparser.c" /* yacc.c:1646 */ +#line 2918 "util/configparser.c" /* yacc.c:1646 */ break; - case 248: -#line 655 "./util/configparser.y" /* yacc.c:1646 */ + case 249: +#line 656 "./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 2924 "util/configparser.c" /* yacc.c:1646 */ +#line 2928 "util/configparser.c" /* yacc.c:1646 */ break; - case 249: -#line 662 "./util/configparser.y" /* yacc.c:1646 */ + case 250: +#line 663 "./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 2934 "util/configparser.c" /* yacc.c:1646 */ +#line 2938 "util/configparser.c" /* yacc.c:1646 */ break; - case 250: -#line 669 "./util/configparser.y" /* yacc.c:1646 */ + case 251: +#line 670 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2942,11 +2946,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2946 "util/configparser.c" /* yacc.c:1646 */ +#line 2950 "util/configparser.c" /* yacc.c:1646 */ break; - case 251: -#line 678 "./util/configparser.y" /* yacc.c:1646 */ + case 252: +#line 679 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->tls_cert_bundle); + cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); + } +#line 2960 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 253: +#line 686 "./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) @@ -2954,11 +2968,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2958 "util/configparser.c" /* yacc.c:1646 */ +#line 2972 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: -#line 687 "./util/configparser.y" /* yacc.c:1646 */ + case 254: +#line 695 "./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) @@ -2966,11 +2980,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2970 "util/configparser.c" /* yacc.c:1646 */ +#line 2984 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: -#line 696 "./util/configparser.y" /* yacc.c:1646 */ + case 255: +#line 704 "./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) @@ -2983,11 +2997,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2987 "util/configparser.c" /* yacc.c:1646 */ +#line 3001 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: -#line 710 "./util/configparser.y" /* yacc.c:1646 */ + case 256: +#line 718 "./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) @@ -2995,11 +3009,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2999 "util/configparser.c" /* yacc.c:1646 */ +#line 3013 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: -#line 719 "./util/configparser.y" /* yacc.c:1646 */ + case 257: +#line 727 "./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) @@ -3007,11 +3021,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3011 "util/configparser.c" /* yacc.c:1646 */ +#line 3025 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: -#line 728 "./util/configparser.y" /* yacc.c:1646 */ + case 258: +#line 736 "./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) @@ -3019,31 +3033,31 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3023 "util/configparser.c" /* yacc.c:1646 */ +#line 3037 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: -#line 737 "./util/configparser.y" /* yacc.c:1646 */ + case 259: +#line 745 "./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 3033 "util/configparser.c" /* yacc.c:1646 */ +#line 3047 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: -#line 744 "./util/configparser.y" /* yacc.c:1646 */ + case 260: +#line 752 "./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 3043 "util/configparser.c" /* yacc.c:1646 */ +#line 3057 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: -#line 751 "./util/configparser.y" /* yacc.c:1646 */ + case 261: +#line 759 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3068,105 +3082,105 @@ yyreduce: } } } -#line 3072 "util/configparser.c" /* yacc.c:1646 */ +#line 3086 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: -#line 777 "./util/configparser.y" /* yacc.c:1646 */ + case 262: +#line 785 "./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 3083 "util/configparser.c" /* yacc.c:1646 */ +#line 3097 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: -#line 785 "./util/configparser.y" /* yacc.c:1646 */ + case 263: +#line 793 "./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 3093 "util/configparser.c" /* yacc.c:1646 */ +#line 3107 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: -#line 792 "./util/configparser.y" /* yacc.c:1646 */ + case 264: +#line 800 "./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 3103 "util/configparser.c" /* yacc.c:1646 */ +#line 3117 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: -#line 799 "./util/configparser.y" /* yacc.c:1646 */ + case 265: +#line 807 "./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 3113 "util/configparser.c" /* yacc.c:1646 */ +#line 3127 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: -#line 806 "./util/configparser.y" /* yacc.c:1646 */ + case 266: +#line 814 "./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 3123 "util/configparser.c" /* yacc.c:1646 */ +#line 3137 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: -#line 813 "./util/configparser.y" /* yacc.c:1646 */ + case 267: +#line 821 "./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 3134 "util/configparser.c" /* yacc.c:1646 */ +#line 3148 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: -#line 821 "./util/configparser.y" /* yacc.c:1646 */ + case 268: +#line 829 "./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 3145 "util/configparser.c" /* yacc.c:1646 */ +#line 3159 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: -#line 829 "./util/configparser.y" /* yacc.c:1646 */ + case 269: +#line 837 "./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 3156 "util/configparser.c" /* yacc.c:1646 */ +#line 3170 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: -#line 837 "./util/configparser.y" /* yacc.c:1646 */ + case 270: +#line 845 "./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 3166 "util/configparser.c" /* yacc.c:1646 */ +#line 3180 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: -#line 844 "./util/configparser.y" /* yacc.c:1646 */ + case 271: +#line 852 "./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) @@ -3176,21 +3190,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3180 "util/configparser.c" /* yacc.c:1646 */ +#line 3194 "util/configparser.c" /* yacc.c:1646 */ break; - case 270: -#line 855 "./util/configparser.y" /* yacc.c:1646 */ + case 272: +#line 863 "./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 3190 "util/configparser.c" /* yacc.c:1646 */ +#line 3204 "util/configparser.c" /* yacc.c:1646 */ break; - case 271: -#line 862 "./util/configparser.y" /* yacc.c:1646 */ + case 273: +#line 870 "./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) @@ -3198,11 +3212,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3202 "util/configparser.c" /* yacc.c:1646 */ +#line 3216 "util/configparser.c" /* yacc.c:1646 */ break; - case 272: -#line 871 "./util/configparser.y" /* yacc.c:1646 */ + case 274: +#line 879 "./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) @@ -3210,11 +3224,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3214 "util/configparser.c" /* yacc.c:1646 */ +#line 3228 "util/configparser.c" /* yacc.c:1646 */ break; - case 273: -#line 880 "./util/configparser.y" /* yacc.c:1646 */ + case 275: +#line 888 "./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) @@ -3222,53 +3236,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3226 "util/configparser.c" /* yacc.c:1646 */ +#line 3240 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: -#line 889 "./util/configparser.y" /* yacc.c:1646 */ + case 276: +#line 897 "./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 3236 "util/configparser.c" /* yacc.c:1646 */ +#line 3250 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: -#line 896 "./util/configparser.y" /* yacc.c:1646 */ + case 277: +#line 904 "./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 3246 "util/configparser.c" /* yacc.c:1646 */ +#line 3260 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: -#line 903 "./util/configparser.y" /* yacc.c:1646 */ + case 278: +#line 911 "./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 3257 "util/configparser.c" /* yacc.c:1646 */ +#line 3271 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: -#line 911 "./util/configparser.y" /* yacc.c:1646 */ + case 279: +#line 919 "./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 3268 "util/configparser.c" /* yacc.c:1646 */ +#line 3282 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: -#line 919 "./util/configparser.y" /* yacc.c:1646 */ + case 280: +#line 927 "./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) @@ -3277,11 +3291,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3281 "util/configparser.c" /* yacc.c:1646 */ +#line 3295 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: -#line 929 "./util/configparser.y" /* yacc.c:1646 */ + case 281: +#line 937 "./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) @@ -3290,11 +3304,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3294 "util/configparser.c" /* yacc.c:1646 */ +#line 3308 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: -#line 939 "./util/configparser.y" /* yacc.c:1646 */ + case 282: +#line 947 "./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) @@ -3303,11 +3317,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3307 "util/configparser.c" /* yacc.c:1646 */ +#line 3321 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: -#line 949 "./util/configparser.y" /* yacc.c:1646 */ + case 283: +#line 957 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3319,11 +3333,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3323 "util/configparser.c" /* yacc.c:1646 */ +#line 3337 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: -#line 962 "./util/configparser.y" /* yacc.c:1646 */ + case 284: +#line 970 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3333,22 +3347,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3337 "util/configparser.c" /* yacc.c:1646 */ +#line 3351 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: -#line 973 "./util/configparser.y" /* yacc.c:1646 */ + case 285: +#line 981 "./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 3348 "util/configparser.c" /* yacc.c:1646 */ +#line 3362 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: -#line 981 "./util/configparser.y" /* yacc.c:1646 */ + case 286: +#line 989 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3360,11 +3374,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3364 "util/configparser.c" /* yacc.c:1646 */ +#line 3378 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: -#line 994 "./util/configparser.y" /* yacc.c:1646 */ + case 287: +#line 1002 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3372,11 +3386,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3376 "util/configparser.c" /* yacc.c:1646 */ +#line 3390 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: -#line 1003 "./util/configparser.y" /* yacc.c:1646 */ + case 288: +#line 1011 "./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) @@ -3384,11 +3398,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3388 "util/configparser.c" /* yacc.c:1646 */ +#line 3402 "util/configparser.c" /* yacc.c:1646 */ break; - case 287: -#line 1012 "./util/configparser.y" /* yacc.c:1646 */ + case 289: +#line 1020 "./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) @@ -3396,11 +3410,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3400 "util/configparser.c" /* yacc.c:1646 */ +#line 3414 "util/configparser.c" /* yacc.c:1646 */ break; - case 288: -#line 1021 "./util/configparser.y" /* yacc.c:1646 */ + case 290: +#line 1029 "./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) @@ -3409,11 +3423,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3413 "util/configparser.c" /* yacc.c:1646 */ +#line 3427 "util/configparser.c" /* yacc.c:1646 */ break; - case 289: -#line 1031 "./util/configparser.y" /* yacc.c:1646 */ + case 291: +#line 1039 "./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) @@ -3422,22 +3436,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3426 "util/configparser.c" /* yacc.c:1646 */ +#line 3440 "util/configparser.c" /* yacc.c:1646 */ break; - case 290: -#line 1041 "./util/configparser.y" /* yacc.c:1646 */ + case 292: +#line 1049 "./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 3437 "util/configparser.c" /* yacc.c:1646 */ +#line 3451 "util/configparser.c" /* yacc.c:1646 */ break; - case 291: -#line 1049 "./util/configparser.y" /* yacc.c:1646 */ + case 293: +#line 1057 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3449,11 +3463,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3453 "util/configparser.c" /* yacc.c:1646 */ +#line 3467 "util/configparser.c" /* yacc.c:1646 */ break; - case 292: -#line 1062 "./util/configparser.y" /* yacc.c:1646 */ + case 294: +#line 1070 "./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) @@ -3461,22 +3475,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3465 "util/configparser.c" /* yacc.c:1646 */ +#line 3479 "util/configparser.c" /* yacc.c:1646 */ break; - case 293: -#line 1071 "./util/configparser.y" /* yacc.c:1646 */ + case 295: +#line 1079 "./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 3476 "util/configparser.c" /* yacc.c:1646 */ +#line 3490 "util/configparser.c" /* yacc.c:1646 */ break; - case 294: -#line 1079 "./util/configparser.y" /* yacc.c:1646 */ + case 296: +#line 1087 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3484,22 +3498,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3488 "util/configparser.c" /* yacc.c:1646 */ +#line 3502 "util/configparser.c" /* yacc.c:1646 */ break; - case 295: -#line 1088 "./util/configparser.y" /* yacc.c:1646 */ + case 297: +#line 1096 "./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 3499 "util/configparser.c" /* yacc.c:1646 */ +#line 3513 "util/configparser.c" /* yacc.c:1646 */ break; - case 296: -#line 1096 "./util/configparser.y" /* yacc.c:1646 */ + case 298: +#line 1104 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3511,11 +3525,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3515 "util/configparser.c" /* yacc.c:1646 */ +#line 3529 "util/configparser.c" /* yacc.c:1646 */ break; - case 297: -#line 1109 "./util/configparser.y" /* yacc.c:1646 */ + case 299: +#line 1117 "./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) @@ -3523,21 +3537,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3527 "util/configparser.c" /* yacc.c:1646 */ +#line 3541 "util/configparser.c" /* yacc.c:1646 */ break; - case 298: -#line 1118 "./util/configparser.y" /* yacc.c:1646 */ + case 300: +#line 1126 "./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 3537 "util/configparser.c" /* yacc.c:1646 */ +#line 3551 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 1125 "./util/configparser.y" /* yacc.c:1646 */ + case 301: +#line 1133 "./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) @@ -3546,11 +3560,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3550 "util/configparser.c" /* yacc.c:1646 */ +#line 3564 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 1135 "./util/configparser.y" /* yacc.c:1646 */ + case 302: +#line 1143 "./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) @@ -3559,11 +3573,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3563 "util/configparser.c" /* yacc.c:1646 */ +#line 3577 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 1145 "./util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 1153 "./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) @@ -3572,11 +3586,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3576 "util/configparser.c" /* yacc.c:1646 */ +#line 3590 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 1155 "./util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 1163 "./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) @@ -3585,11 +3599,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3589 "util/configparser.c" /* yacc.c:1646 */ +#line 3603 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 1165 "./util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 1173 "./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) @@ -3598,11 +3612,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3602 "util/configparser.c" /* yacc.c:1646 */ +#line 3616 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 1175 "./util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1183 "./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) @@ -3611,11 +3625,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3615 "util/configparser.c" /* yacc.c:1646 */ +#line 3629 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 1185 "./util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1193 "./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) @@ -3624,11 +3638,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3628 "util/configparser.c" /* yacc.c:1646 */ +#line 3642 "util/configparser.c" /* yacc.c:1646 */ break; - case 306: -#line 1195 "./util/configparser.y" /* yacc.c:1646 */ + case 308: +#line 1203 "./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) @@ -3637,41 +3651,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3641 "util/configparser.c" /* yacc.c:1646 */ +#line 3655 "util/configparser.c" /* yacc.c:1646 */ break; - case 307: -#line 1205 "./util/configparser.y" /* yacc.c:1646 */ + case 309: +#line 1213 "./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 3651 "util/configparser.c" /* yacc.c:1646 */ +#line 3665 "util/configparser.c" /* yacc.c:1646 */ break; - case 308: -#line 1212 "./util/configparser.y" /* yacc.c:1646 */ + case 310: +#line 1220 "./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 3661 "util/configparser.c" /* yacc.c:1646 */ +#line 3675 "util/configparser.c" /* yacc.c:1646 */ break; - case 309: -#line 1219 "./util/configparser.y" /* yacc.c:1646 */ + case 311: +#line 1227 "./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 3671 "util/configparser.c" /* yacc.c:1646 */ +#line 3685 "util/configparser.c" /* yacc.c:1646 */ break; - case 310: -#line 1226 "./util/configparser.y" /* yacc.c:1646 */ + case 312: +#line 1234 "./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) @@ -3679,11 +3693,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3683 "util/configparser.c" /* yacc.c:1646 */ +#line 3697 "util/configparser.c" /* yacc.c:1646 */ break; - case 311: -#line 1235 "./util/configparser.y" /* yacc.c:1646 */ + case 313: +#line 1243 "./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) @@ -3691,11 +3705,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3695 "util/configparser.c" /* yacc.c:1646 */ +#line 3709 "util/configparser.c" /* yacc.c:1646 */ break; - case 312: -#line 1244 "./util/configparser.y" /* yacc.c:1646 */ + case 314: +#line 1252 "./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) @@ -3703,21 +3717,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3707 "util/configparser.c" /* yacc.c:1646 */ +#line 3721 "util/configparser.c" /* yacc.c:1646 */ break; - case 313: -#line 1253 "./util/configparser.y" /* yacc.c:1646 */ + case 315: +#line 1261 "./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 3717 "util/configparser.c" /* yacc.c:1646 */ +#line 3731 "util/configparser.c" /* yacc.c:1646 */ break; - case 314: -#line 1260 "./util/configparser.y" /* yacc.c:1646 */ + case 316: +#line 1268 "./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) @@ -3726,11 +3740,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3730 "util/configparser.c" /* yacc.c:1646 */ +#line 3744 "util/configparser.c" /* yacc.c:1646 */ break; - case 315: -#line 1270 "./util/configparser.y" /* yacc.c:1646 */ + case 317: +#line 1278 "./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 && @@ -3746,21 +3760,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 3750 "util/configparser.c" /* yacc.c:1646 */ +#line 3764 "util/configparser.c" /* yacc.c:1646 */ break; - case 316: -#line 1287 "./util/configparser.y" /* yacc.c:1646 */ + case 318: +#line 1295 "./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 3760 "util/configparser.c" /* yacc.c:1646 */ +#line 3774 "util/configparser.c" /* yacc.c:1646 */ break; - case 317: -#line 1294 "./util/configparser.y" /* yacc.c:1646 */ + case 319: +#line 1302 "./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) { @@ -3777,11 +3791,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3781 "util/configparser.c" /* yacc.c:1646 */ +#line 3795 "util/configparser.c" /* yacc.c:1646 */ break; - case 318: -#line 1312 "./util/configparser.y" /* yacc.c:1646 */ + case 320: +#line 1320 "./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) { @@ -3793,11 +3807,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3797 "util/configparser.c" /* yacc.c:1646 */ +#line 3811 "util/configparser.c" /* yacc.c:1646 */ break; - case 319: -#line 1325 "./util/configparser.y" /* yacc.c:1646 */ + case 321: +#line 1333 "./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) { @@ -3809,11 +3823,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3813 "util/configparser.c" /* yacc.c:1646 */ +#line 3827 "util/configparser.c" /* yacc.c:1646 */ break; - case 320: -#line 1338 "./util/configparser.y" /* yacc.c:1646 */ + case 322: +#line 1346 "./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) @@ -3821,11 +3835,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3825 "util/configparser.c" /* yacc.c:1646 */ +#line 3839 "util/configparser.c" /* yacc.c:1646 */ break; - case 321: -#line 1347 "./util/configparser.y" /* yacc.c:1646 */ + case 323: +#line 1355 "./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) @@ -3833,11 +3847,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3837 "util/configparser.c" /* yacc.c:1646 */ +#line 3851 "util/configparser.c" /* yacc.c:1646 */ break; - case 322: -#line 1356 "./util/configparser.y" /* yacc.c:1646 */ + case 324: +#line 1364 "./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) @@ -3845,11 +3859,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3849 "util/configparser.c" /* yacc.c:1646 */ +#line 3863 "util/configparser.c" /* yacc.c:1646 */ break; - case 323: -#line 1365 "./util/configparser.y" /* yacc.c:1646 */ + case 325: +#line 1373 "./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) @@ -3857,11 +3871,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3861 "util/configparser.c" /* yacc.c:1646 */ +#line 3875 "util/configparser.c" /* yacc.c:1646 */ break; - case 324: -#line 1374 "./util/configparser.y" /* yacc.c:1646 */ + case 326: +#line 1382 "./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) @@ -3870,11 +3884,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3874 "util/configparser.c" /* yacc.c:1646 */ +#line 3888 "util/configparser.c" /* yacc.c:1646 */ break; - case 325: -#line 1384 "./util/configparser.y" /* yacc.c:1646 */ + case 327: +#line 1392 "./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) @@ -3883,11 +3897,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3887 "util/configparser.c" /* yacc.c:1646 */ +#line 3901 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1394 "./util/configparser.y" /* yacc.c:1646 */ + case 328: +#line 1402 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3897,11 +3911,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3901 "util/configparser.c" /* yacc.c:1646 */ +#line 3915 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1405 "./util/configparser.y" /* yacc.c:1646 */ + case 329: +#line 1413 "./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) @@ -3909,11 +3923,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3913 "util/configparser.c" /* yacc.c:1646 */ +#line 3927 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1414 "./util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1422 "./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) @@ -3921,11 +3935,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3925 "util/configparser.c" /* yacc.c:1646 */ +#line 3939 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1423 "./util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1431 "./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) @@ -3937,11 +3951,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3941 "util/configparser.c" /* yacc.c:1646 */ +#line 3955 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1436 "./util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1444 "./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) @@ -3953,11 +3967,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3957 "util/configparser.c" /* yacc.c:1646 */ +#line 3971 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1449 "./util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1457 "./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) @@ -3965,21 +3979,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3969 "util/configparser.c" /* yacc.c:1646 */ +#line 3983 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1458 "./util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1466 "./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 3979 "util/configparser.c" /* yacc.c:1646 */ +#line 3993 "util/configparser.c" /* yacc.c:1646 */ break; - case 333: -#line 1465 "./util/configparser.y" /* yacc.c:1646 */ + case 335: +#line 1473 "./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) @@ -3987,11 +4001,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3991 "util/configparser.c" /* yacc.c:1646 */ +#line 4005 "util/configparser.c" /* yacc.c:1646 */ break; - case 334: -#line 1474 "./util/configparser.y" /* yacc.c:1646 */ + case 336: +#line 1482 "./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) @@ -3999,11 +4013,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4003 "util/configparser.c" /* yacc.c:1646 */ +#line 4017 "util/configparser.c" /* yacc.c:1646 */ break; - case 335: -#line 1483 "./util/configparser.y" /* yacc.c:1646 */ + case 337: +#line 1491 "./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) @@ -4011,11 +4025,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4015 "util/configparser.c" /* yacc.c:1646 */ +#line 4029 "util/configparser.c" /* yacc.c:1646 */ break; - case 336: -#line 1492 "./util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1500 "./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) @@ -4024,22 +4038,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4028 "util/configparser.c" /* yacc.c:1646 */ +#line 4042 "util/configparser.c" /* yacc.c:1646 */ break; - case 337: -#line 1501 "./util/configparser.y" /* yacc.c:1646 */ + case 339: +#line 1509 "./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 4039 "util/configparser.c" /* yacc.c:1646 */ +#line 4053 "util/configparser.c" /* yacc.c:1646 */ break; - case 338: -#line 1509 "./util/configparser.y" /* yacc.c:1646 */ + case 340: +#line 1517 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4051,22 +4065,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4055 "util/configparser.c" /* yacc.c:1646 */ +#line 4069 "util/configparser.c" /* yacc.c:1646 */ break; - case 339: -#line 1522 "./util/configparser.y" /* yacc.c:1646 */ + case 341: +#line 1530 "./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 4066 "util/configparser.c" /* yacc.c:1646 */ +#line 4080 "util/configparser.c" /* yacc.c:1646 */ break; - case 340: -#line 1530 "./util/configparser.y" /* yacc.c:1646 */ + case 342: +#line 1538 "./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 && @@ -4093,21 +4107,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4097 "util/configparser.c" /* yacc.c:1646 */ +#line 4111 "util/configparser.c" /* yacc.c:1646 */ break; - case 341: -#line 1558 "./util/configparser.y" /* yacc.c:1646 */ + case 343: +#line 1566 "./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 4107 "util/configparser.c" /* yacc.c:1646 */ +#line 4121 "util/configparser.c" /* yacc.c:1646 */ break; - case 342: -#line 1565 "./util/configparser.y" /* yacc.c:1646 */ + case 344: +#line 1573 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4121,11 +4135,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4125 "util/configparser.c" /* yacc.c:1646 */ +#line 4139 "util/configparser.c" /* yacc.c:1646 */ break; - case 343: -#line 1580 "./util/configparser.y" /* yacc.c:1646 */ + case 345: +#line 1588 "./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) @@ -4134,11 +4148,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4138 "util/configparser.c" /* yacc.c:1646 */ +#line 4152 "util/configparser.c" /* yacc.c:1646 */ break; - case 344: -#line 1590 "./util/configparser.y" /* yacc.c:1646 */ + case 346: +#line 1598 "./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) @@ -4147,31 +4161,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4151 "util/configparser.c" /* yacc.c:1646 */ +#line 4165 "util/configparser.c" /* yacc.c:1646 */ break; - case 345: -#line 1600 "./util/configparser.y" /* yacc.c:1646 */ + case 347: +#line 1608 "./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 4161 "util/configparser.c" /* yacc.c:1646 */ +#line 4175 "util/configparser.c" /* yacc.c:1646 */ break; - case 346: -#line 1607 "./util/configparser.y" /* yacc.c:1646 */ + case 348: +#line 1615 "./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 4171 "util/configparser.c" /* yacc.c:1646 */ +#line 4185 "util/configparser.c" /* yacc.c:1646 */ break; - case 347: -#line 1614 "./util/configparser.y" /* yacc.c:1646 */ + case 349: +#line 1622 "./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) @@ -4179,11 +4193,11 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4183 "util/configparser.c" /* yacc.c:1646 */ +#line 4197 "util/configparser.c" /* yacc.c:1646 */ break; - case 348: -#line 1623 "./util/configparser.y" /* yacc.c:1646 */ + case 350: +#line 1631 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -4196,11 +4210,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4200 "util/configparser.c" /* yacc.c:1646 */ +#line 4214 "util/configparser.c" /* yacc.c:1646 */ break; - case 349: -#line 1637 "./util/configparser.y" /* yacc.c:1646 */ + case 351: +#line 1645 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4218,11 +4232,11 @@ yyreduce: } } } -#line 4222 "util/configparser.c" /* yacc.c:1646 */ +#line 4236 "util/configparser.c" /* yacc.c:1646 */ break; - case 350: -#line 1656 "./util/configparser.y" /* yacc.c:1646 */ + case 352: +#line 1664 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4240,11 +4254,11 @@ yyreduce: } } } -#line 4244 "util/configparser.c" /* yacc.c:1646 */ +#line 4258 "util/configparser.c" /* yacc.c:1646 */ break; - case 351: -#line 1675 "./util/configparser.y" /* yacc.c:1646 */ + case 353: +#line 1683 "./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, @@ -4255,11 +4269,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4259 "util/configparser.c" /* yacc.c:1646 */ +#line 4273 "util/configparser.c" /* yacc.c:1646 */ break; - case 352: -#line 1687 "./util/configparser.y" /* yacc.c:1646 */ + case 354: +#line 1695 "./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, @@ -4270,11 +4284,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4274 "util/configparser.c" /* yacc.c:1646 */ +#line 4288 "util/configparser.c" /* yacc.c:1646 */ break; - case 353: -#line 1699 "./util/configparser.y" /* yacc.c:1646 */ + case 355: +#line 1707 "./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, @@ -4285,11 +4299,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4289 "util/configparser.c" /* yacc.c:1646 */ +#line 4303 "util/configparser.c" /* yacc.c:1646 */ break; - case 354: -#line 1711 "./util/configparser.y" /* yacc.c:1646 */ + case 356: +#line 1719 "./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, @@ -4299,11 +4313,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4303 "util/configparser.c" /* yacc.c:1646 */ +#line 4317 "util/configparser.c" /* yacc.c:1646 */ break; - case 355: -#line 1722 "./util/configparser.y" /* yacc.c:1646 */ + case 357: +#line 1730 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4321,11 +4335,11 @@ yyreduce: } } } -#line 4325 "util/configparser.c" /* yacc.c:1646 */ +#line 4339 "util/configparser.c" /* yacc.c:1646 */ break; - case 356: -#line 1741 "./util/configparser.y" /* yacc.c:1646 */ + case 358: +#line 1749 "./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) @@ -4333,11 +4347,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4337 "util/configparser.c" /* yacc.c:1646 */ +#line 4351 "util/configparser.c" /* yacc.c:1646 */ break; - case 357: -#line 1751 "./util/configparser.y" /* yacc.c:1646 */ + case 359: +#line 1759 "./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) @@ -4345,33 +4359,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4349 "util/configparser.c" /* yacc.c:1646 */ +#line 4363 "util/configparser.c" /* yacc.c:1646 */ break; - case 358: -#line 1760 "./util/configparser.y" /* yacc.c:1646 */ + case 360: +#line 1768 "./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 4360 "util/configparser.c" /* yacc.c:1646 */ +#line 4374 "util/configparser.c" /* yacc.c:1646 */ break; - case 359: -#line 1768 "./util/configparser.y" /* yacc.c:1646 */ + case 361: +#line 1776 "./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 4371 "util/configparser.c" /* yacc.c:1646 */ +#line 4385 "util/configparser.c" /* yacc.c:1646 */ break; - case 360: -#line 1776 "./util/configparser.y" /* yacc.c:1646 */ + case 362: +#line 1784 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4383,11 +4397,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4387 "util/configparser.c" /* yacc.c:1646 */ +#line 4401 "util/configparser.c" /* yacc.c:1646 */ break; - case 361: -#line 1789 "./util/configparser.y" /* yacc.c:1646 */ + case 363: +#line 1797 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4399,11 +4413,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4403 "util/configparser.c" /* yacc.c:1646 */ +#line 4417 "util/configparser.c" /* yacc.c:1646 */ break; - case 362: -#line 1802 "./util/configparser.y" /* yacc.c:1646 */ + case 364: +#line 1810 "./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) { @@ -4415,11 +4429,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 4419 "util/configparser.c" /* yacc.c:1646 */ +#line 4433 "util/configparser.c" /* yacc.c:1646 */ break; - case 363: -#line 1815 "./util/configparser.y" /* yacc.c:1646 */ + case 365: +#line 1823 "./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) { @@ -4431,11 +4445,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 4435 "util/configparser.c" /* yacc.c:1646 */ +#line 4449 "util/configparser.c" /* yacc.c:1646 */ break; - case 364: -#line 1828 "./util/configparser.y" /* yacc.c:1646 */ + case 366: +#line 1836 "./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) @@ -4443,11 +4457,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4447 "util/configparser.c" /* yacc.c:1646 */ +#line 4461 "util/configparser.c" /* yacc.c:1646 */ break; - case 365: -#line 1837 "./util/configparser.y" /* yacc.c:1646 */ + case 367: +#line 1845 "./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) @@ -4455,11 +4469,11 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4459 "util/configparser.c" /* yacc.c:1646 */ +#line 4473 "util/configparser.c" /* yacc.c:1646 */ break; - case 366: -#line 1846 "./util/configparser.y" /* yacc.c:1646 */ + case 368: +#line 1854 "./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) @@ -4468,11 +4482,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4472 "util/configparser.c" /* yacc.c:1646 */ +#line 4486 "util/configparser.c" /* yacc.c:1646 */ break; - case 367: -#line 1856 "./util/configparser.y" /* yacc.c:1646 */ + case 369: +#line 1864 "./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) @@ -4481,11 +4495,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4485 "util/configparser.c" /* yacc.c:1646 */ +#line 4499 "util/configparser.c" /* yacc.c:1646 */ break; - case 368: -#line 1866 "./util/configparser.y" /* yacc.c:1646 */ + case 370: +#line 1874 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -4497,11 +4511,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4501 "util/configparser.c" /* yacc.c:1646 */ +#line 4515 "util/configparser.c" /* yacc.c:1646 */ break; - case 369: -#line 1879 "./util/configparser.y" /* yacc.c:1646 */ + case 371: +#line 1887 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -4513,11 +4527,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4517 "util/configparser.c" /* yacc.c:1646 */ +#line 4531 "util/configparser.c" /* yacc.c:1646 */ break; - case 370: -#line 1892 "./util/configparser.y" /* yacc.c:1646 */ + case 372: +#line 1900 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -4527,11 +4541,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4531 "util/configparser.c" /* yacc.c:1646 */ +#line 4545 "util/configparser.c" /* yacc.c:1646 */ break; - case 371: -#line 1903 "./util/configparser.y" /* yacc.c:1646 */ + case 373: +#line 1911 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -4543,11 +4557,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4547 "util/configparser.c" /* yacc.c:1646 */ +#line 4561 "util/configparser.c" /* yacc.c:1646 */ break; - case 372: -#line 1916 "./util/configparser.y" /* yacc.c:1646 */ + case 374: +#line 1924 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -4557,11 +4571,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4561 "util/configparser.c" /* yacc.c:1646 */ +#line 4575 "util/configparser.c" /* yacc.c:1646 */ break; - case 373: -#line 1927 "./util/configparser.y" /* yacc.c:1646 */ + case 375: +#line 1935 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -4573,11 +4587,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4577 "util/configparser.c" /* yacc.c:1646 */ +#line 4591 "util/configparser.c" /* yacc.c:1646 */ break; - case 374: -#line 1940 "./util/configparser.y" /* yacc.c:1646 */ + case 376: +#line 1948 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -4586,31 +4600,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 4590 "util/configparser.c" /* yacc.c:1646 */ +#line 4604 "util/configparser.c" /* yacc.c:1646 */ break; - case 375: -#line 1950 "./util/configparser.y" /* yacc.c:1646 */ + case 377: +#line 1958 "./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 4600 "util/configparser.c" /* yacc.c:1646 */ +#line 4614 "util/configparser.c" /* yacc.c:1646 */ break; - case 376: -#line 1957 "./util/configparser.y" /* yacc.c:1646 */ + case 378: +#line 1965 "./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 4610 "util/configparser.c" /* yacc.c:1646 */ +#line 4624 "util/configparser.c" /* yacc.c:1646 */ break; - case 377: -#line 1964 "./util/configparser.y" /* yacc.c:1646 */ + case 379: +#line 1972 "./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) @@ -4618,11 +4632,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4622 "util/configparser.c" /* yacc.c:1646 */ +#line 4636 "util/configparser.c" /* yacc.c:1646 */ break; - case 378: -#line 1973 "./util/configparser.y" /* yacc.c:1646 */ + case 380: +#line 1981 "./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) @@ -4631,11 +4645,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4635 "util/configparser.c" /* yacc.c:1646 */ +#line 4649 "util/configparser.c" /* yacc.c:1646 */ break; - case 379: -#line 1983 "./util/configparser.y" /* yacc.c:1646 */ + case 381: +#line 1991 "./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) @@ -4644,11 +4658,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4648 "util/configparser.c" /* yacc.c:1646 */ +#line 4662 "util/configparser.c" /* yacc.c:1646 */ break; - case 380: -#line 1993 "./util/configparser.y" /* yacc.c:1646 */ + case 382: +#line 2001 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -4657,31 +4671,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 4661 "util/configparser.c" /* yacc.c:1646 */ +#line 4675 "util/configparser.c" /* yacc.c:1646 */ break; - case 381: -#line 2003 "./util/configparser.y" /* yacc.c:1646 */ + case 383: +#line 2011 "./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 4671 "util/configparser.c" /* yacc.c:1646 */ +#line 4685 "util/configparser.c" /* yacc.c:1646 */ break; - case 382: -#line 2010 "./util/configparser.y" /* yacc.c:1646 */ + case 384: +#line 2018 "./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 4681 "util/configparser.c" /* yacc.c:1646 */ +#line 4695 "util/configparser.c" /* yacc.c:1646 */ break; - case 383: -#line 2017 "./util/configparser.y" /* yacc.c:1646 */ + case 385: +#line 2025 "./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) @@ -4689,11 +4703,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4693 "util/configparser.c" /* yacc.c:1646 */ +#line 4707 "util/configparser.c" /* yacc.c:1646 */ break; - case 384: -#line 2026 "./util/configparser.y" /* yacc.c:1646 */ + case 386: +#line 2034 "./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) @@ -4702,11 +4716,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4706 "util/configparser.c" /* yacc.c:1646 */ +#line 4720 "util/configparser.c" /* yacc.c:1646 */ break; - case 385: -#line 2036 "./util/configparser.y" /* yacc.c:1646 */ + case 387: +#line 2044 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -4715,41 +4729,41 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 4719 "util/configparser.c" /* yacc.c:1646 */ +#line 4733 "util/configparser.c" /* yacc.c:1646 */ break; - case 386: -#line 2046 "./util/configparser.y" /* yacc.c:1646 */ + case 388: +#line 2054 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 4729 "util/configparser.c" /* yacc.c:1646 */ +#line 4743 "util/configparser.c" /* yacc.c:1646 */ break; - case 387: -#line 2053 "./util/configparser.y" /* yacc.c:1646 */ + case 389: +#line 2061 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4739 "util/configparser.c" /* yacc.c:1646 */ +#line 4753 "util/configparser.c" /* yacc.c:1646 */ break; - case 388: -#line 2060 "./util/configparser.y" /* yacc.c:1646 */ + case 390: +#line 2068 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4749 "util/configparser.c" /* yacc.c:1646 */ +#line 4763 "util/configparser.c" /* yacc.c:1646 */ break; - case 389: -#line 2067 "./util/configparser.y" /* yacc.c:1646 */ + case 391: +#line 2075 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4758,11 +4772,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4762 "util/configparser.c" /* yacc.c:1646 */ +#line 4776 "util/configparser.c" /* yacc.c:1646 */ break; - case 390: -#line 2077 "./util/configparser.y" /* yacc.c:1646 */ + case 392: +#line 2085 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4771,11 +4785,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4775 "util/configparser.c" /* yacc.c:1646 */ +#line 4789 "util/configparser.c" /* yacc.c:1646 */ break; - case 391: -#line 2087 "./util/configparser.y" /* yacc.c:1646 */ + case 393: +#line 2095 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4784,11 +4798,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4788 "util/configparser.c" /* yacc.c:1646 */ +#line 4802 "util/configparser.c" /* yacc.c:1646 */ break; - case 392: -#line 2097 "./util/configparser.y" /* yacc.c:1646 */ + case 394: +#line 2105 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -4797,11 +4811,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 4801 "util/configparser.c" /* yacc.c:1646 */ +#line 4815 "util/configparser.c" /* yacc.c:1646 */ break; - case 393: -#line 2107 "./util/configparser.y" /* yacc.c:1646 */ + case 395: +#line 2115 "./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 && @@ -4829,11 +4843,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4833 "util/configparser.c" /* yacc.c:1646 */ +#line 4847 "util/configparser.c" /* yacc.c:1646 */ break; - case 394: -#line 2136 "./util/configparser.y" /* yacc.c:1646 */ + case 396: +#line 2144 "./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)); @@ -4842,22 +4856,22 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 4846 "util/configparser.c" /* yacc.c:1646 */ +#line 4860 "util/configparser.c" /* yacc.c:1646 */ break; - case 395: -#line 2146 "./util/configparser.y" /* yacc.c:1646 */ + case 397: +#line 2154 "./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 4857 "util/configparser.c" /* yacc.c:1646 */ +#line 4871 "util/configparser.c" /* yacc.c:1646 */ break; - case 396: -#line 2154 "./util/configparser.y" /* yacc.c:1646 */ + case 398: +#line 2162 "./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))) { @@ -4865,11 +4879,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4869 "util/configparser.c" /* yacc.c:1646 */ +#line 4883 "util/configparser.c" /* yacc.c:1646 */ break; - case 397: -#line 2163 "./util/configparser.y" /* yacc.c:1646 */ + case 399: +#line 2171 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4883,11 +4897,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4887 "util/configparser.c" /* yacc.c:1646 */ +#line 4901 "util/configparser.c" /* yacc.c:1646 */ break; - case 398: -#line 2178 "./util/configparser.y" /* yacc.c:1646 */ + case 400: +#line 2186 "./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) @@ -4895,19 +4909,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4899 "util/configparser.c" /* yacc.c:1646 */ +#line 4913 "util/configparser.c" /* yacc.c:1646 */ break; - case 399: -#line 2187 "./util/configparser.y" /* yacc.c:1646 */ + case 401: +#line 2195 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 4907 "util/configparser.c" /* yacc.c:1646 */ +#line 4921 "util/configparser.c" /* yacc.c:1646 */ break; - case 410: -#line 2198 "./util/configparser.y" /* yacc.c:1646 */ + case 412: +#line 2206 "./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) @@ -4916,11 +4930,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4920 "util/configparser.c" /* yacc.c:1646 */ +#line 4934 "util/configparser.c" /* yacc.c:1646 */ break; - case 411: -#line 2208 "./util/configparser.y" /* yacc.c:1646 */ + case 413: +#line 2216 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4928,21 +4942,21 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4932 "util/configparser.c" /* yacc.c:1646 */ +#line 4946 "util/configparser.c" /* yacc.c:1646 */ break; - case 412: -#line 2217 "./util/configparser.y" /* yacc.c:1646 */ + case 414: +#line 2225 "./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 4942 "util/configparser.c" /* yacc.c:1646 */ +#line 4956 "util/configparser.c" /* yacc.c:1646 */ break; - case 413: -#line 2224 "./util/configparser.y" /* yacc.c:1646 */ + case 415: +#line 2232 "./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) @@ -4951,122 +4965,122 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4955 "util/configparser.c" /* yacc.c:1646 */ +#line 4969 "util/configparser.c" /* yacc.c:1646 */ break; - case 414: -#line 2234 "./util/configparser.y" /* yacc.c:1646 */ + case 416: +#line 2242 "./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 4965 "util/configparser.c" /* yacc.c:1646 */ +#line 4979 "util/configparser.c" /* yacc.c:1646 */ break; - case 415: -#line 2241 "./util/configparser.y" /* yacc.c:1646 */ + case 417: +#line 2249 "./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 4975 "util/configparser.c" /* yacc.c:1646 */ +#line 4989 "util/configparser.c" /* yacc.c:1646 */ break; - case 416: -#line 2248 "./util/configparser.y" /* yacc.c:1646 */ + case 418: +#line 2256 "./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 4985 "util/configparser.c" /* yacc.c:1646 */ +#line 4999 "util/configparser.c" /* yacc.c:1646 */ break; - case 417: -#line 2255 "./util/configparser.y" /* yacc.c:1646 */ + case 419: +#line 2263 "./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 4995 "util/configparser.c" /* yacc.c:1646 */ +#line 5009 "util/configparser.c" /* yacc.c:1646 */ break; - case 418: -#line 2262 "./util/configparser.y" /* yacc.c:1646 */ + case 420: +#line 2270 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 5003 "util/configparser.c" /* yacc.c:1646 */ +#line 5017 "util/configparser.c" /* yacc.c:1646 */ break; - case 433: -#line 2279 "./util/configparser.y" /* yacc.c:1646 */ + case 435: +#line 2287 "./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 5014 "util/configparser.c" /* yacc.c:1646 */ +#line 5028 "util/configparser.c" /* yacc.c:1646 */ break; - case 434: -#line 2287 "./util/configparser.y" /* yacc.c:1646 */ + case 436: +#line 2295 "./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 5024 "util/configparser.c" /* yacc.c:1646 */ +#line 5038 "util/configparser.c" /* yacc.c:1646 */ break; - case 435: -#line 2294 "./util/configparser.y" /* yacc.c:1646 */ + case 437: +#line 2302 "./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 5035 "util/configparser.c" /* yacc.c:1646 */ +#line 5049 "util/configparser.c" /* yacc.c:1646 */ break; - case 436: -#line 2302 "./util/configparser.y" /* yacc.c:1646 */ + case 438: +#line 2310 "./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 5046 "util/configparser.c" /* yacc.c:1646 */ +#line 5060 "util/configparser.c" /* yacc.c:1646 */ break; - case 437: -#line 2310 "./util/configparser.y" /* yacc.c:1646 */ + case 439: +#line 2318 "./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 5056 "util/configparser.c" /* yacc.c:1646 */ +#line 5070 "util/configparser.c" /* yacc.c:1646 */ break; - case 438: -#line 2317 "./util/configparser.y" /* yacc.c:1646 */ + case 440: +#line 2325 "./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 5066 "util/configparser.c" /* yacc.c:1646 */ +#line 5080 "util/configparser.c" /* yacc.c:1646 */ break; - case 439: -#line 2324 "./util/configparser.y" /* yacc.c:1646 */ + case 441: +#line 2332 "./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) @@ -5074,11 +5088,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5078 "util/configparser.c" /* yacc.c:1646 */ +#line 5092 "util/configparser.c" /* yacc.c:1646 */ break; - case 440: -#line 2333 "./util/configparser.y" /* yacc.c:1646 */ + case 442: +#line 2341 "./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) @@ -5086,11 +5100,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5090 "util/configparser.c" /* yacc.c:1646 */ +#line 5104 "util/configparser.c" /* yacc.c:1646 */ break; - case 441: -#line 2342 "./util/configparser.y" /* yacc.c:1646 */ + case 443: +#line 2350 "./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) @@ -5098,11 +5112,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5102 "util/configparser.c" /* yacc.c:1646 */ +#line 5116 "util/configparser.c" /* yacc.c:1646 */ break; - case 442: -#line 2351 "./util/configparser.y" /* yacc.c:1646 */ + case 444: +#line 2359 "./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) @@ -5110,11 +5124,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5114 "util/configparser.c" /* yacc.c:1646 */ +#line 5128 "util/configparser.c" /* yacc.c:1646 */ break; - case 443: -#line 2360 "./util/configparser.y" /* yacc.c:1646 */ + case 445: +#line 2368 "./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) @@ -5122,11 +5136,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5126 "util/configparser.c" /* yacc.c:1646 */ +#line 5140 "util/configparser.c" /* yacc.c:1646 */ break; - case 444: -#line 2369 "./util/configparser.y" /* yacc.c:1646 */ + case 446: +#line 2377 "./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) @@ -5134,29 +5148,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5138 "util/configparser.c" /* yacc.c:1646 */ +#line 5152 "util/configparser.c" /* yacc.c:1646 */ break; - case 445: -#line 2378 "./util/configparser.y" /* yacc.c:1646 */ + case 447: +#line 2386 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 5146 "util/configparser.c" /* yacc.c:1646 */ +#line 5160 "util/configparser.c" /* yacc.c:1646 */ break; - case 449: -#line 2387 "./util/configparser.y" /* yacc.c:1646 */ + case 451: +#line 2395 "./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 5156 "util/configparser.c" /* yacc.c:1646 */ +#line 5170 "util/configparser.c" /* yacc.c:1646 */ break; - case 450: -#line 2393 "./util/configparser.y" /* yacc.c:1646 */ + case 452: +#line 2401 "./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) @@ -5165,21 +5179,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5169 "util/configparser.c" /* yacc.c:1646 */ +#line 5183 "util/configparser.c" /* yacc.c:1646 */ break; - case 451: -#line 2403 "./util/configparser.y" /* yacc.c:1646 */ + case 453: +#line 2411 "./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 5179 "util/configparser.c" /* yacc.c:1646 */ +#line 5193 "util/configparser.c" /* yacc.c:1646 */ break; - case 452: -#line 2410 "./util/configparser.y" /* yacc.c:1646 */ + case 454: +#line 2418 "./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)); @@ -5187,31 +5201,31 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 5191 "util/configparser.c" /* yacc.c:1646 */ +#line 5205 "util/configparser.c" /* yacc.c:1646 */ break; - case 453: -#line 2419 "./util/configparser.y" /* yacc.c:1646 */ + case 455: +#line 2427 "./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 5202 "util/configparser.c" /* yacc.c:1646 */ +#line 5216 "util/configparser.c" /* yacc.c:1646 */ break; - case 454: -#line 2427 "./util/configparser.y" /* yacc.c:1646 */ + case 456: +#line 2435 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnscrypt:)\n")); OUTYY(("\nP(dnscrypt:)\n")); } -#line 5211 "util/configparser.c" /* yacc.c:1646 */ +#line 5225 "util/configparser.c" /* yacc.c:1646 */ break; - case 467: -#line 2444 "./util/configparser.y" /* yacc.c:1646 */ + case 469: +#line 2452 "./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) @@ -5219,11 +5233,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5223 "util/configparser.c" /* yacc.c:1646 */ +#line 5237 "util/configparser.c" /* yacc.c:1646 */ break; - case 468: -#line 2454 "./util/configparser.y" /* yacc.c:1646 */ + case 470: +#line 2462 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); @@ -5232,21 +5246,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5236 "util/configparser.c" /* yacc.c:1646 */ +#line 5250 "util/configparser.c" /* yacc.c:1646 */ break; - case 469: -#line 2464 "./util/configparser.y" /* yacc.c:1646 */ + case 471: +#line 2472 "./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 5246 "util/configparser.c" /* yacc.c:1646 */ +#line 5260 "util/configparser.c" /* yacc.c:1646 */ break; - case 470: -#line 2471 "./util/configparser.y" /* yacc.c:1646 */ + case 472: +#line 2479 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -5254,21 +5268,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 5258 "util/configparser.c" /* yacc.c:1646 */ +#line 5272 "util/configparser.c" /* yacc.c:1646 */ break; - case 471: -#line 2480 "./util/configparser.y" /* yacc.c:1646 */ + case 473: +#line 2488 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 5268 "util/configparser.c" /* yacc.c:1646 */ +#line 5282 "util/configparser.c" /* yacc.c:1646 */ break; - case 472: -#line 2487 "./util/configparser.y" /* yacc.c:1646 */ + case 474: +#line 2495 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -5276,22 +5290,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 5280 "util/configparser.c" /* yacc.c:1646 */ +#line 5294 "util/configparser.c" /* yacc.c:1646 */ break; - case 473: -#line 2496 "./util/configparser.y" /* yacc.c:1646 */ + case 475: +#line 2504 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5291 "util/configparser.c" /* yacc.c:1646 */ +#line 5305 "util/configparser.c" /* yacc.c:1646 */ break; - case 474: -#line 2504 "./util/configparser.y" /* yacc.c:1646 */ + case 476: +#line 2512 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5303,22 +5317,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5307 "util/configparser.c" /* yacc.c:1646 */ +#line 5321 "util/configparser.c" /* yacc.c:1646 */ break; - case 475: -#line 2517 "./util/configparser.y" /* yacc.c:1646 */ + case 477: +#line 2525 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5318 "util/configparser.c" /* yacc.c:1646 */ +#line 5332 "util/configparser.c" /* yacc.c:1646 */ break; - case 476: -#line 2525 "./util/configparser.y" /* yacc.c:1646 */ + case 478: +#line 2533 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5330,19 +5344,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5334 "util/configparser.c" /* yacc.c:1646 */ +#line 5348 "util/configparser.c" /* yacc.c:1646 */ break; - case 477: -#line 2538 "./util/configparser.y" /* yacc.c:1646 */ + case 479: +#line 2546 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(cachedb:)\n")); } -#line 5342 "util/configparser.c" /* yacc.c:1646 */ +#line 5356 "util/configparser.c" /* yacc.c:1646 */ break; - case 482: -#line 2547 "./util/configparser.y" /* yacc.c:1646 */ + case 484: +#line 2555 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -5355,11 +5369,11 @@ yyreduce: OUTYY(("P(Compiled without cachedb, ignoring)\n")); #endif } -#line 5359 "util/configparser.c" /* yacc.c:1646 */ +#line 5373 "util/configparser.c" /* yacc.c:1646 */ break; - case 483: -#line 2561 "./util/configparser.y" /* yacc.c:1646 */ + case 485: +#line 2569 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -5373,11 +5387,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5377 "util/configparser.c" /* yacc.c:1646 */ +#line 5391 "util/configparser.c" /* yacc.c:1646 */ break; -#line 5381 "util/configparser.c" /* yacc.c:1646 */ +#line 5395 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -5605,7 +5619,7 @@ yyreturn: #endif return yyresult; } -#line 2575 "./util/configparser.y" /* yacc.c:1906 */ +#line 2583 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index e50ee8adf..4960fe30c 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -177,104 +177,105 @@ extern int yydebug; VAR_FORWARD_FIRST = 387, VAR_STUB_SSL_UPSTREAM = 388, VAR_FORWARD_SSL_UPSTREAM = 389, - VAR_STUB_FIRST = 390, - VAR_MINIMAL_RESPONSES = 391, - VAR_RRSET_ROUNDROBIN = 392, - VAR_MAX_UDP_SIZE = 393, - VAR_DELAY_CLOSE = 394, - VAR_UNBLOCK_LAN_ZONES = 395, - VAR_INSECURE_LAN_ZONES = 396, - VAR_INFRA_CACHE_MIN_RTT = 397, - VAR_DNS64_PREFIX = 398, - VAR_DNS64_SYNTHALL = 399, - VAR_DNSTAP = 400, - VAR_DNSTAP_ENABLE = 401, - VAR_DNSTAP_SOCKET_PATH = 402, - VAR_DNSTAP_SEND_IDENTITY = 403, - VAR_DNSTAP_SEND_VERSION = 404, - VAR_DNSTAP_IDENTITY = 405, - VAR_DNSTAP_VERSION = 406, - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 407, - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 408, - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 409, - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 410, - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 411, - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 412, - VAR_RESPONSE_IP_TAG = 413, - VAR_RESPONSE_IP = 414, - VAR_RESPONSE_IP_DATA = 415, - VAR_HARDEN_ALGO_DOWNGRADE = 416, - VAR_IP_TRANSPARENT = 417, - VAR_DISABLE_DNSSEC_LAME_CHECK = 418, - VAR_IP_RATELIMIT = 419, - VAR_IP_RATELIMIT_SLABS = 420, - VAR_IP_RATELIMIT_SIZE = 421, - VAR_RATELIMIT = 422, - VAR_RATELIMIT_SLABS = 423, - VAR_RATELIMIT_SIZE = 424, - VAR_RATELIMIT_FOR_DOMAIN = 425, - VAR_RATELIMIT_BELOW_DOMAIN = 426, - VAR_IP_RATELIMIT_FACTOR = 427, - VAR_RATELIMIT_FACTOR = 428, - VAR_SEND_CLIENT_SUBNET = 429, - 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_AGGRESSIVE_NSEC = 456, - VAR_USE_SYSTEMD = 457, - VAR_SHM_ENABLE = 458, - VAR_SHM_KEY = 459, - VAR_DNSCRYPT = 460, - VAR_DNSCRYPT_ENABLE = 461, - VAR_DNSCRYPT_PORT = 462, - VAR_DNSCRYPT_PROVIDER = 463, - VAR_DNSCRYPT_SECRET_KEY = 464, - VAR_DNSCRYPT_PROVIDER_CERT = 465, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 466, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 467, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 468, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 469, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 470, - VAR_IPSECMOD_ENABLED = 471, - VAR_IPSECMOD_HOOK = 472, - VAR_IPSECMOD_IGNORE_BOGUS = 473, - VAR_IPSECMOD_MAX_TTL = 474, - VAR_IPSECMOD_WHITELIST = 475, - VAR_IPSECMOD_STRICT = 476, - VAR_CACHEDB = 477, - VAR_CACHEDB_BACKEND = 478, - VAR_CACHEDB_SECRETSEED = 479, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 480, - VAR_FOR_UPSTREAM = 481, - VAR_AUTH_ZONE = 482, - VAR_ZONEFILE = 483, - VAR_MASTER = 484, - VAR_URL = 485, - VAR_FOR_DOWNSTREAM = 486, - VAR_FALLBACK_ENABLED = 487 + VAR_TLS_CERT_BUNDLE = 390, + VAR_STUB_FIRST = 391, + VAR_MINIMAL_RESPONSES = 392, + VAR_RRSET_ROUNDROBIN = 393, + VAR_MAX_UDP_SIZE = 394, + VAR_DELAY_CLOSE = 395, + VAR_UNBLOCK_LAN_ZONES = 396, + VAR_INSECURE_LAN_ZONES = 397, + VAR_INFRA_CACHE_MIN_RTT = 398, + VAR_DNS64_PREFIX = 399, + VAR_DNS64_SYNTHALL = 400, + VAR_DNSTAP = 401, + VAR_DNSTAP_ENABLE = 402, + VAR_DNSTAP_SOCKET_PATH = 403, + VAR_DNSTAP_SEND_IDENTITY = 404, + VAR_DNSTAP_SEND_VERSION = 405, + VAR_DNSTAP_IDENTITY = 406, + VAR_DNSTAP_VERSION = 407, + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 408, + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 409, + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 410, + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 411, + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 412, + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 413, + VAR_RESPONSE_IP_TAG = 414, + VAR_RESPONSE_IP = 415, + VAR_RESPONSE_IP_DATA = 416, + VAR_HARDEN_ALGO_DOWNGRADE = 417, + VAR_IP_TRANSPARENT = 418, + VAR_DISABLE_DNSSEC_LAME_CHECK = 419, + VAR_IP_RATELIMIT = 420, + VAR_IP_RATELIMIT_SLABS = 421, + VAR_IP_RATELIMIT_SIZE = 422, + VAR_RATELIMIT = 423, + VAR_RATELIMIT_SLABS = 424, + VAR_RATELIMIT_SIZE = 425, + VAR_RATELIMIT_FOR_DOMAIN = 426, + VAR_RATELIMIT_BELOW_DOMAIN = 427, + VAR_IP_RATELIMIT_FACTOR = 428, + VAR_RATELIMIT_FACTOR = 429, + VAR_SEND_CLIENT_SUBNET = 430, + VAR_CLIENT_SUBNET_ZONE = 431, + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 432, + VAR_CLIENT_SUBNET_OPCODE = 433, + VAR_MAX_CLIENT_SUBNET_IPV4 = 434, + VAR_MAX_CLIENT_SUBNET_IPV6 = 435, + VAR_CAPS_WHITELIST = 436, + VAR_CACHE_MAX_NEGATIVE_TTL = 437, + VAR_PERMIT_SMALL_HOLDDOWN = 438, + VAR_QNAME_MINIMISATION = 439, + VAR_QNAME_MINIMISATION_STRICT = 440, + VAR_IP_FREEBIND = 441, + VAR_DEFINE_TAG = 442, + VAR_LOCAL_ZONE_TAG = 443, + VAR_ACCESS_CONTROL_TAG = 444, + VAR_LOCAL_ZONE_OVERRIDE = 445, + VAR_ACCESS_CONTROL_TAG_ACTION = 446, + VAR_ACCESS_CONTROL_TAG_DATA = 447, + VAR_VIEW = 448, + VAR_ACCESS_CONTROL_VIEW = 449, + VAR_VIEW_FIRST = 450, + VAR_SERVE_EXPIRED = 451, + VAR_FAKE_DSA = 452, + VAR_FAKE_SHA1 = 453, + VAR_LOG_IDENTITY = 454, + VAR_HIDE_TRUSTANCHOR = 455, + VAR_TRUST_ANCHOR_SIGNALING = 456, + VAR_AGGRESSIVE_NSEC = 457, + VAR_USE_SYSTEMD = 458, + VAR_SHM_ENABLE = 459, + VAR_SHM_KEY = 460, + VAR_DNSCRYPT = 461, + VAR_DNSCRYPT_ENABLE = 462, + VAR_DNSCRYPT_PORT = 463, + VAR_DNSCRYPT_PROVIDER = 464, + VAR_DNSCRYPT_SECRET_KEY = 465, + VAR_DNSCRYPT_PROVIDER_CERT = 466, + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 467, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 468, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 469, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 470, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 471, + VAR_IPSECMOD_ENABLED = 472, + VAR_IPSECMOD_HOOK = 473, + VAR_IPSECMOD_IGNORE_BOGUS = 474, + VAR_IPSECMOD_MAX_TTL = 475, + VAR_IPSECMOD_WHITELIST = 476, + VAR_IPSECMOD_STRICT = 477, + VAR_CACHEDB = 478, + VAR_CACHEDB_BACKEND = 479, + VAR_CACHEDB_SECRETSEED = 480, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 481, + VAR_FOR_UPSTREAM = 482, + VAR_AUTH_ZONE = 483, + VAR_ZONEFILE = 484, + VAR_MASTER = 485, + VAR_URL = 486, + VAR_FOR_DOWNSTREAM = 487, + VAR_FALLBACK_ENABLED = 488 }; #endif /* Tokens. */ @@ -410,104 +411,105 @@ extern int yydebug; #define VAR_FORWARD_FIRST 387 #define VAR_STUB_SSL_UPSTREAM 388 #define VAR_FORWARD_SSL_UPSTREAM 389 -#define VAR_STUB_FIRST 390 -#define VAR_MINIMAL_RESPONSES 391 -#define VAR_RRSET_ROUNDROBIN 392 -#define VAR_MAX_UDP_SIZE 393 -#define VAR_DELAY_CLOSE 394 -#define VAR_UNBLOCK_LAN_ZONES 395 -#define VAR_INSECURE_LAN_ZONES 396 -#define VAR_INFRA_CACHE_MIN_RTT 397 -#define VAR_DNS64_PREFIX 398 -#define VAR_DNS64_SYNTHALL 399 -#define VAR_DNSTAP 400 -#define VAR_DNSTAP_ENABLE 401 -#define VAR_DNSTAP_SOCKET_PATH 402 -#define VAR_DNSTAP_SEND_IDENTITY 403 -#define VAR_DNSTAP_SEND_VERSION 404 -#define VAR_DNSTAP_IDENTITY 405 -#define VAR_DNSTAP_VERSION 406 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 407 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 408 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 409 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 410 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 411 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 412 -#define VAR_RESPONSE_IP_TAG 413 -#define VAR_RESPONSE_IP 414 -#define VAR_RESPONSE_IP_DATA 415 -#define VAR_HARDEN_ALGO_DOWNGRADE 416 -#define VAR_IP_TRANSPARENT 417 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 418 -#define VAR_IP_RATELIMIT 419 -#define VAR_IP_RATELIMIT_SLABS 420 -#define VAR_IP_RATELIMIT_SIZE 421 -#define VAR_RATELIMIT 422 -#define VAR_RATELIMIT_SLABS 423 -#define VAR_RATELIMIT_SIZE 424 -#define VAR_RATELIMIT_FOR_DOMAIN 425 -#define VAR_RATELIMIT_BELOW_DOMAIN 426 -#define VAR_IP_RATELIMIT_FACTOR 427 -#define VAR_RATELIMIT_FACTOR 428 -#define VAR_SEND_CLIENT_SUBNET 429 -#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_AGGRESSIVE_NSEC 456 -#define VAR_USE_SYSTEMD 457 -#define VAR_SHM_ENABLE 458 -#define VAR_SHM_KEY 459 -#define VAR_DNSCRYPT 460 -#define VAR_DNSCRYPT_ENABLE 461 -#define VAR_DNSCRYPT_PORT 462 -#define VAR_DNSCRYPT_PROVIDER 463 -#define VAR_DNSCRYPT_SECRET_KEY 464 -#define VAR_DNSCRYPT_PROVIDER_CERT 465 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 466 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 467 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 468 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 469 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 470 -#define VAR_IPSECMOD_ENABLED 471 -#define VAR_IPSECMOD_HOOK 472 -#define VAR_IPSECMOD_IGNORE_BOGUS 473 -#define VAR_IPSECMOD_MAX_TTL 474 -#define VAR_IPSECMOD_WHITELIST 475 -#define VAR_IPSECMOD_STRICT 476 -#define VAR_CACHEDB 477 -#define VAR_CACHEDB_BACKEND 478 -#define VAR_CACHEDB_SECRETSEED 479 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 480 -#define VAR_FOR_UPSTREAM 481 -#define VAR_AUTH_ZONE 482 -#define VAR_ZONEFILE 483 -#define VAR_MASTER 484 -#define VAR_URL 485 -#define VAR_FOR_DOWNSTREAM 486 -#define VAR_FALLBACK_ENABLED 487 +#define VAR_TLS_CERT_BUNDLE 390 +#define VAR_STUB_FIRST 391 +#define VAR_MINIMAL_RESPONSES 392 +#define VAR_RRSET_ROUNDROBIN 393 +#define VAR_MAX_UDP_SIZE 394 +#define VAR_DELAY_CLOSE 395 +#define VAR_UNBLOCK_LAN_ZONES 396 +#define VAR_INSECURE_LAN_ZONES 397 +#define VAR_INFRA_CACHE_MIN_RTT 398 +#define VAR_DNS64_PREFIX 399 +#define VAR_DNS64_SYNTHALL 400 +#define VAR_DNSTAP 401 +#define VAR_DNSTAP_ENABLE 402 +#define VAR_DNSTAP_SOCKET_PATH 403 +#define VAR_DNSTAP_SEND_IDENTITY 404 +#define VAR_DNSTAP_SEND_VERSION 405 +#define VAR_DNSTAP_IDENTITY 406 +#define VAR_DNSTAP_VERSION 407 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 408 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 409 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 410 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 411 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 412 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 413 +#define VAR_RESPONSE_IP_TAG 414 +#define VAR_RESPONSE_IP 415 +#define VAR_RESPONSE_IP_DATA 416 +#define VAR_HARDEN_ALGO_DOWNGRADE 417 +#define VAR_IP_TRANSPARENT 418 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 419 +#define VAR_IP_RATELIMIT 420 +#define VAR_IP_RATELIMIT_SLABS 421 +#define VAR_IP_RATELIMIT_SIZE 422 +#define VAR_RATELIMIT 423 +#define VAR_RATELIMIT_SLABS 424 +#define VAR_RATELIMIT_SIZE 425 +#define VAR_RATELIMIT_FOR_DOMAIN 426 +#define VAR_RATELIMIT_BELOW_DOMAIN 427 +#define VAR_IP_RATELIMIT_FACTOR 428 +#define VAR_RATELIMIT_FACTOR 429 +#define VAR_SEND_CLIENT_SUBNET 430 +#define VAR_CLIENT_SUBNET_ZONE 431 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 432 +#define VAR_CLIENT_SUBNET_OPCODE 433 +#define VAR_MAX_CLIENT_SUBNET_IPV4 434 +#define VAR_MAX_CLIENT_SUBNET_IPV6 435 +#define VAR_CAPS_WHITELIST 436 +#define VAR_CACHE_MAX_NEGATIVE_TTL 437 +#define VAR_PERMIT_SMALL_HOLDDOWN 438 +#define VAR_QNAME_MINIMISATION 439 +#define VAR_QNAME_MINIMISATION_STRICT 440 +#define VAR_IP_FREEBIND 441 +#define VAR_DEFINE_TAG 442 +#define VAR_LOCAL_ZONE_TAG 443 +#define VAR_ACCESS_CONTROL_TAG 444 +#define VAR_LOCAL_ZONE_OVERRIDE 445 +#define VAR_ACCESS_CONTROL_TAG_ACTION 446 +#define VAR_ACCESS_CONTROL_TAG_DATA 447 +#define VAR_VIEW 448 +#define VAR_ACCESS_CONTROL_VIEW 449 +#define VAR_VIEW_FIRST 450 +#define VAR_SERVE_EXPIRED 451 +#define VAR_FAKE_DSA 452 +#define VAR_FAKE_SHA1 453 +#define VAR_LOG_IDENTITY 454 +#define VAR_HIDE_TRUSTANCHOR 455 +#define VAR_TRUST_ANCHOR_SIGNALING 456 +#define VAR_AGGRESSIVE_NSEC 457 +#define VAR_USE_SYSTEMD 458 +#define VAR_SHM_ENABLE 459 +#define VAR_SHM_KEY 460 +#define VAR_DNSCRYPT 461 +#define VAR_DNSCRYPT_ENABLE 462 +#define VAR_DNSCRYPT_PORT 463 +#define VAR_DNSCRYPT_PROVIDER 464 +#define VAR_DNSCRYPT_SECRET_KEY 465 +#define VAR_DNSCRYPT_PROVIDER_CERT 466 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 467 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 468 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 469 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 470 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 471 +#define VAR_IPSECMOD_ENABLED 472 +#define VAR_IPSECMOD_HOOK 473 +#define VAR_IPSECMOD_IGNORE_BOGUS 474 +#define VAR_IPSECMOD_MAX_TTL 475 +#define VAR_IPSECMOD_WHITELIST 476 +#define VAR_IPSECMOD_STRICT 477 +#define VAR_CACHEDB 478 +#define VAR_CACHEDB_BACKEND 479 +#define VAR_CACHEDB_SECRETSEED 480 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 481 +#define VAR_FOR_UPSTREAM 482 +#define VAR_AUTH_ZONE 483 +#define VAR_ZONEFILE 484 +#define VAR_MASTER 485 +#define VAR_URL 486 +#define VAR_FOR_DOWNSTREAM 487 +#define VAR_FALLBACK_ENABLED 488 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -518,7 +520,7 @@ union YYSTYPE char* str; -#line 522 "util/configparser.h" /* yacc.c:1909 */ +#line 524 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 69ba5f75e..3911fa481 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -109,7 +109,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_LOG_REPLIES %token VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM %token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST -%token VAR_STUB_SSL_UPSTREAM VAR_FORWARD_SSL_UPSTREAM +%token VAR_STUB_SSL_UPSTREAM VAR_FORWARD_SSL_UPSTREAM VAR_TLS_CERT_BUNDLE %token VAR_STUB_FIRST VAR_MINIMAL_RESPONSES VAR_RRSET_ROUNDROBIN %token VAR_MAX_UDP_SIZE VAR_DELAY_CLOSE %token VAR_UNBLOCK_LAN_ZONES VAR_INSECURE_LAN_ZONES @@ -243,7 +243,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_ipsecmod_enabled | server_ipsecmod_hook | server_ipsecmod_ignore_bogus | server_ipsecmod_max_ttl | server_ipsecmod_whitelist | server_ipsecmod_strict | - server_udp_upstream_without_downstream | server_aggressive_nsec + server_udp_upstream_without_downstream | server_aggressive_nsec | + server_tls_cert_bundle ; stubstart: VAR_STUB_ZONE { @@ -674,6 +675,13 @@ server_ssl_port: VAR_SSL_PORT STRING_ARG free($2); } ; +server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG + { + OUTYY(("P(server_tls_cert_bundle:%s)\n", $2)); + free(cfg_parser->cfg->tls_cert_bundle); + cfg_parser->cfg->tls_cert_bundle = $2; + } + ; server_use_systemd: VAR_USE_SYSTEMD STRING_ARG { OUTYY(("P(server_use_systemd:%s)\n", $2)); diff --git a/util/netevent.c b/util/netevent.c index 1a58cfc72..78ee8a0ab 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -964,6 +964,32 @@ tcp_callback_reader(struct comm_point* c) } } +#ifdef HAVE_SSL +/** log certificate details */ +static void +log_cert(unsigned level, const char* str, X509* cert) +{ + BIO* bio; + char nul = 0; + char* pp = NULL; + long len; + if(verbosity < level) return; + bio = BIO_new(BIO_s_mem()); + if(!bio) return; + X509_print_ex(bio, cert, 0, (unsigned long)-1 + ^(X509_FLAG_NO_SUBJECT + |X509_FLAG_NO_ISSUER|X509_FLAG_NO_VALIDITY + |X509_FLAG_NO_EXTENSIONS|X509_FLAG_NO_AUX + |X509_FLAG_NO_ATTRIBUTES)); + BIO_write(bio, &nul, sizeof(nul)); + len = BIO_get_mem_data(bio, &pp); + if(len != 0 && pp) { + verbose(level, "%s: \n%s", str, pp); + } + BIO_free(bio); +} +#endif /* HAVE_SSL */ + /** continue ssl handshake */ #ifdef HAVE_SSL static int @@ -1015,8 +1041,51 @@ ssl_handshake(struct comm_point* c) } } /* this is where peer verification could take place */ - log_addr(VERB_ALGO, "SSL DNS connection", &c->repinfo.addr, - c->repinfo.addrlen); + if((SSL_get_verify_mode(c->ssl)&SSL_VERIFY_PEER)) { + /* verification */ + if(SSL_get_verify_result(c->ssl) == X509_V_OK) { + X509* x = SSL_get_peer_certificate(c->ssl); + if(!x) { + log_addr(VERB_ALGO, "SSL connection failed: " + "no certificate", + &c->repinfo.addr, c->repinfo.addrlen); + return 0; + } + log_cert(VERB_ALGO, "peer certificate", x); +#ifdef HAVE_SSL_GET0_PEERNAME + if(SSL_get0_peername(c->ssl)) { + char buf[255]; + snprintf(buf, sizeof(buf), "SSL connection " + "to %s authenticated", + SSL_get0_peername(c->ssl)); + log_addr(VERB_ALGO, buf, &c->repinfo.addr, + c->repinfo.addrlen); + } else { +#endif + log_addr(VERB_ALGO, "SSL connection " + "authenticated", &c->repinfo.addr, + c->repinfo.addrlen); +#ifdef HAVE_SSL_GET0_PEERNAME + } +#endif + X509_free(x); + } else { + X509* x = SSL_get_peer_certificate(c->ssl); + if(x) { + log_cert(VERB_ALGO, "peer certificate", x); + X509_free(x); + } + log_addr(VERB_ALGO, "SSL connection failed: " + "failed to authenticate", + &c->repinfo.addr, c->repinfo.addrlen); + return 0; + } + } else { + /* unauthenticated, the verify peer flag was not set + * in c->ssl when the ssl object was created from ssl_ctx */ + log_addr(VERB_ALGO, "SSL connection", &c->repinfo.addr, + c->repinfo.addrlen); + } /* setup listen rw correctly */ if(c->tcp_is_reading) { -- 2.47.3