diff options
author | Riccardo Spagni <ric@spagni.net> | 2015-08-14 19:12:19 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2015-08-14 19:12:19 +0200 |
commit | 93944333c52050ab31d509fcee2333f2e166d945 (patch) | |
tree | 77e223a83bd35329987358ae6448a0ca661e731c /external | |
parent | Merge pull request #369 (diff) | |
download | monero-93944333c52050ab31d509fcee2333f2e166d945.tar.xz |
update unbound
Diffstat (limited to '')
45 files changed, 2396 insertions, 3406 deletions
diff --git a/external/unbound/Makefile.in b/external/unbound/Makefile.in index 40cf9a57d..20829d899 100644 --- a/external/unbound/Makefile.in +++ b/external/unbound/Makefile.in @@ -168,7 +168,7 @@ HOST_OBJ=unbound-host.lo HOST_OBJ_LINK=$(HOST_OBJ) $(SLDNS_OBJ) $(COMPAT_OBJ_WITHOUT_CTIMEARC4) @WIN_HOST_OBJ_LINK@ UBANCHOR_SRC=smallapp/unbound-anchor.c UBANCHOR_OBJ=unbound-anchor.lo -UBANCHOR_OBJ_LINK=$(UBANCHOR_OBJ) \ +UBANCHOR_OBJ_LINK=$(UBANCHOR_OBJ) parseutil.lo \ $(COMPAT_OBJ_WITHOUT_CTIME) @WIN_UBANCHOR_OBJ_LINK@ TESTBOUND_SRC=testcode/testbound.c testcode/testpkts.c \ daemon/worker.c daemon/acl_list.c daemon/daemon.c daemon/stats.c \ @@ -1175,7 +1175,7 @@ delayer.lo delayer.o: $(srcdir)/testcode/delayer.c config.h $(srcdir)/util/net_h unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h \ $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h unbound-anchor.lo unbound-anchor.o: $(srcdir)/smallapp/unbound-anchor.c config.h $(srcdir)/libunbound/unbound.h \ - $(srcdir)/sldns/rrdef.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/parseutil.h \ petal.lo petal.o: $(srcdir)/testcode/petal.c config.h \ diff --git a/external/unbound/config.h.cmake.in b/external/unbound/config.h.cmake.in index 863a65421..d9bfebf33 100644 --- a/external/unbound/config.h.cmake.in +++ b/external/unbound/config.h.cmake.in @@ -85,6 +85,10 @@ `SSL_COMP_get_compression_methods', and to 0 if you don't. */ #cmakedefine HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS +/* Define to 1 if you have the declaration of `SSL_CTX_set_ecdh_auto', and to + 0 if you don't. */ +#cmakedefine HAVE_DECL_SSL_CTX_SET_ECDH_AUTO + /* Define to 1 if you have the declaration of `strlcat', and to 0 if you don't. */ #cmakedefine HAVE_DECL_STRLCAT diff --git a/external/unbound/config.h.in b/external/unbound/config.h.in index 723b3ad02..7576e1509 100644 --- a/external/unbound/config.h.in +++ b/external/unbound/config.h.in @@ -82,6 +82,10 @@ `SSL_COMP_get_compression_methods', and to 0 if you don't. */ #undef HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS +/* Define to 1 if you have the declaration of `SSL_CTX_set_ecdh_auto', and to + 0 if you don't. */ +#undef HAVE_DECL_SSL_CTX_SET_ECDH_AUTO + /* Define to 1 if you have the declaration of `strlcat', and to 0 if you don't. */ #undef HAVE_DECL_STRLCAT diff --git a/external/unbound/configure b/external/unbound/configure index 630d6e450..e2b1bdec4 100755 --- a/external/unbound/configure +++ b/external/unbound/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.5.4. +# Generated by GNU Autoconf 2.69 for unbound 1.5.5. # # Report bugs to <unbound-bugs@nlnetlabs.nl>. # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.5.4' -PACKAGE_STRING='unbound 1.5.4' +PACKAGE_VERSION='1.5.5' +PACKAGE_STRING='unbound 1.5.5' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl' PACKAGE_URL='' @@ -1389,7 +1389,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.5.4 to adapt to many kinds of systems. +\`configure' configures unbound 1.5.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1454,7 +1454,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.5.4:";; + short | recursive ) echo "Configuration of unbound 1.5.5:";; esac cat <<\_ACEOF @@ -1629,7 +1629,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.5.4 +unbound configure 1.5.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2338,7 +2338,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.5.4, which was +It was created by unbound $as_me 1.5.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2690,7 +2690,7 @@ UNBOUND_VERSION_MAJOR=1 UNBOUND_VERSION_MINOR=5 -UNBOUND_VERSION_MICRO=4 +UNBOUND_VERSION_MICRO=5 LIBUNBOUND_CURRENT=5 @@ -16684,7 +16684,7 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LibreSSL" >&5 $as_echo_n "checking for LibreSSL... " >&6; } -if grep OPENSSL_VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then +if grep VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -16845,6 +16845,36 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SK_SSL_COMP_POP_FREE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "SSL_CTX_set_ecdh_auto" "ac_cv_have_decl_SSL_CTX_set_ecdh_auto" " +$ac_includes_default +#ifdef HAVE_OPENSSL_ERR_H +#include <openssl/err.h> +#endif + +#ifdef HAVE_OPENSSL_RAND_H +#include <openssl/rand.h> +#endif + +#ifdef HAVE_OPENSSL_CONF_H +#include <openssl/conf.h> +#endif + +#ifdef HAVE_OPENSSL_ENGINE_H +#include <openssl/engine.h> +#endif +#include <openssl/ssl.h> +#include <openssl/evp.h> + +" +if test "x$ac_cv_have_decl_SSL_CTX_set_ecdh_auto" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_SSL_CTX_SET_ECDH_AUTO $ac_have_decl +_ACEOF fi @@ -18150,6 +18180,8 @@ esac fi +LIBOBJ_WITHOUT_CTIMEARC4="$LIBOBJS" + ac_fn_c_check_func "$LINENO" "reallocarray" "ac_cv_func_reallocarray" if test "x$ac_cv_func_reallocarray" = xyes; then : $as_echo "#define HAVE_REALLOCARRAY 1" >>confdefs.h @@ -18164,8 +18196,6 @@ esac fi -LIBOBJ_WITHOUT_CTIMEARC4="$LIBOBJS" - if test "$USE_NSS" = "no"; then ac_fn_c_check_func "$LINENO" "arc4random" "ac_cv_func_arc4random" if test "x$ac_cv_func_arc4random" = xyes; then : @@ -18890,7 +18920,7 @@ _ACEOF -version=1.5.4 +version=1.5.5 date=`date +'%b %e, %Y'` @@ -19405,7 +19435,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unbound $as_me 1.5.4, which was +This file was extended by unbound $as_me 1.5.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19471,7 +19501,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unbound config.status 1.5.4 +unbound config.status 1.5.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/external/unbound/configure.ac b/external/unbound/configure.ac index de809afdd..5ad39c7d5 100644 --- a/external/unbound/configure.ac +++ b/external/unbound/configure.ac @@ -10,7 +10,7 @@ sinclude(dnstap/dnstap.m4) # must be numbers. ac_defun because of later processing m4_define([VERSION_MAJOR],[1]) m4_define([VERSION_MINOR],[5]) -m4_define([VERSION_MICRO],[4]) +m4_define([VERSION_MICRO],[5]) AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) @@ -566,7 +566,7 @@ if test $USE_NSS = "no"; then ACX_WITH_SSL ACX_LIB_SSL AC_MSG_CHECKING([for LibreSSL]) -if grep OPENSSL_VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then +if grep VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then AC_MSG_RESULT([yes]) AC_DEFINE([HAVE_LIBRESSL], [1], [Define if we have LibreSSL]) # libressl provides these compat functions, but they may also be @@ -578,7 +578,7 @@ fi AC_CHECK_HEADERS([openssl/conf.h],,, [AC_INCLUDES_DEFAULT]) AC_CHECK_HEADERS([openssl/engine.h],,, [AC_INCLUDES_DEFAULT]) AC_CHECK_FUNCS([OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode]) -AC_CHECK_DECLS([SSL_COMP_get_compression_methods,sk_SSL_COMP_pop_free], [], [], [ +AC_CHECK_DECLS([SSL_COMP_get_compression_methods,sk_SSL_COMP_pop_free,SSL_CTX_set_ecdh_auto], [], [], [ AC_INCLUDES_DEFAULT #ifdef HAVE_OPENSSL_ERR_H #include <openssl/err.h> @@ -998,9 +998,10 @@ AC_REPLACE_FUNCS(strlcat) AC_REPLACE_FUNCS(strlcpy) AC_REPLACE_FUNCS(memmove) AC_REPLACE_FUNCS(gmtime_r) -AC_REPLACE_FUNCS(reallocarray) +dnl without CTIME, ARC4-functions and without reallocarray. LIBOBJ_WITHOUT_CTIMEARC4="$LIBOBJS" AC_SUBST(LIBOBJ_WITHOUT_CTIMEARC4) +AC_REPLACE_FUNCS(reallocarray) if test "$USE_NSS" = "no"; then AC_REPLACE_FUNCS(arc4random) AC_REPLACE_FUNCS(arc4random_uniform) diff --git a/external/unbound/daemon/daemon.c b/external/unbound/daemon/daemon.c index 0cd37ae82..e763f724e 100644 --- a/external/unbound/daemon/daemon.c +++ b/external/unbound/daemon/daemon.c @@ -399,6 +399,12 @@ daemon_create_workers(struct daemon* daemon) verbose(VERB_ALGO, "total of %d outgoing ports available", numport); daemon->num = (daemon->cfg->num_threads?daemon->cfg->num_threads:1); + if(daemon->reuseport && (int)daemon->num < (int)daemon->num_ports) { + log_warn("cannot reduce num-threads to %d because so-reuseport " + "so continuing with %d threads.", (int)daemon->num, + (int)daemon->num_ports); + daemon->num = (int)daemon->num_ports; + } daemon->workers = (struct worker**)calloc((size_t)daemon->num, sizeof(struct worker*)); if(daemon->cfg->dnstap) { @@ -464,7 +470,7 @@ thread_start(void* arg) #endif #ifdef SO_REUSEPORT if(worker->daemon->cfg->so_reuseport) - port_num = worker->thread_num; + port_num = worker->thread_num % worker->daemon->num_ports; else port_num = 0; #endif diff --git a/external/unbound/daemon/remote.c b/external/unbound/daemon/remote.c index 93d0eda28..300948b32 100644 --- a/external/unbound/daemon/remote.c +++ b/external/unbound/daemon/remote.c @@ -243,9 +243,9 @@ daemon_remote_create(struct config_file* cfg) goto setup_error; } verbose(VERB_ALGO, "setup SSL certificates"); - if (!SSL_CTX_use_certificate_file(rc->ctx,s_cert,SSL_FILETYPE_PEM)) { + if (!SSL_CTX_use_certificate_chain_file(rc->ctx,s_cert)) { log_err("Error for server-cert-file: %s", s_cert); - log_crypto_err("Error in SSL_CTX use_certificate_file"); + log_crypto_err("Error in SSL_CTX use_certificate_chain_file"); goto setup_error; } if(!SSL_CTX_use_PrivateKey_file(rc->ctx,s_key,SSL_FILETYPE_PEM)) { @@ -258,6 +258,23 @@ daemon_remote_create(struct config_file* cfg) log_crypto_err("Error in SSL_CTX check_private_key"); goto setup_error; } +#if HAVE_DECL_SSL_CTX_SET_ECDH_AUTO + if(!SSL_CTX_set_ecdh_auto(rc->ctx,1)) { + log_crypto_err("Error in SSL_CTX_ecdh_auto, not enabling ECDHE"); + } +#elif defined(USE_ECDSA) + if(1) { + EC_KEY *ecdh = EC_KEY_new_by_curve_name (NID_X9_62_prime256v1); + if (!ecdh) { + log_crypto_err("could not find p256, not enabling ECDHE"); + } else { + if (1 != SSL_CTX_set_tmp_ecdh (rc->ctx, ecdh)) { + log_crypto_err("Error in SSL_CTX_set_tmp_ecdh, not enabling ECDHE"); + } + EC_KEY_free (ecdh); + } + } +#endif if(!SSL_CTX_load_verify_locations(rc->ctx, s_cert, NULL)) { log_crypto_err("Error setting up SSL_CTX verify locations"); setup_error: @@ -1683,6 +1700,7 @@ parse_delegpt(SSL* ssl, char* args, uint8_t* nm, int allow_names) } } } + dp->has_parent_side_NS = 1; return dp; } diff --git a/external/unbound/daemon/worker.c b/external/unbound/daemon/worker.c index f4e87289a..79aec4d3a 100644 --- a/external/unbound/daemon/worker.c +++ b/external/unbound/daemon/worker.c @@ -568,7 +568,7 @@ answer_from_cache(struct worker* worker, struct query_info* qinfo, if(rep->an_numrrsets > 0 && (rep->rrsets[0]->rk.type == htons(LDNS_RR_TYPE_CNAME) || rep->rrsets[0]->rk.type == htons(LDNS_RR_TYPE_DNAME))) { - if(!reply_check_cname_chain(rep)) { + if(!reply_check_cname_chain(qinfo, rep)) { /* cname chain invalid, redo iterator steps */ verbose(VERB_ALGO, "Cache reply: cname chain broken"); bail_out: diff --git a/external/unbound/doc/Changelog b/external/unbound/doc/Changelog index f06654de4..35f67c113 100644 --- a/external/unbound/doc/Changelog +++ b/external/unbound/doc/Changelog @@ -1,3 +1,73 @@ +13 August 2015: Wouter + - 5011 implementation does not insist on all algorithms, when + harden-algo-downgrade is turned off. + - Reap the child process that libunbound spawns. + +11 August 2015: Wouter + - Fix #694: configure script does not detect LibreSSL 2.2.2 + +4 August 2015: Wouter + - Document that local-zone nodefault matches exactly and transparent + can be used to release a subzone. + +3 August 2015: Wouter + - Document in the manual more text about configuring locally served + zones. + - Fix 5011 anchor update timer after reload. + - Fix mktime in unbound-anchor not using UTC. + +30 July 2015: Wouter + - please afl-gcc (llvm) for uninitialised variable warning. + - Added permit-small-holddown config to debug fast 5011 rollover. + +24 July 2015: Wouter + - Fix #690: Reload fails when so-reuseport is yes after changing + num-threads. + - iana portlist update. + +21 July 2015: Wouter + - Fix configure to detect SSL_CTX_set_ecdh_auto. + - iana portlist update. + +20 July 2015: Wouter + - Enable ECDHE for servers. Where available, use + SSL_CTX_set_ecdh_auto() for TLS-wrapped server configurations to + enable ECDHE. Otherwise, manually offer curve p256. + Client connections should automatically use ECDHE when available. + (thanks Daniel Kahn Gillmor) + +18 July 2015: Willem + - Allow certificate chain files to allow for intermediate certificates. + (thanks Daniel Kahn Gillmor) + +13 July 2015: Wouter + - makedist produces sha1 and sha256 files for created binaries too. + +9 July 2015: Wouter + - 1.5.4 release tag + - trunk has 1.5.5 in development. + - Fix #681: Setting forwarders with unbound-control forward + implicitly turns on forward-first. + +29 June 2015: Wouter + - iana portlist update. + - Fix alloc with log for allocation size checks. + +26 June 2015: Wouter + - Fix #677 Fix DNAME responses from cache that failed internal chain + test. + - iana portlist update. + +22 June 2015: Wouter + - Fix #677 Fix CNAME corresponding to a DNAME was checked incorrectly + and was therefore always synthesized (thanks to Valentin Dietrich). + +4 June 2015: Wouter + - RFC 7553 RR type URI support, is now enabled by default. + +2 June 2015: Wouter + - Fix #674: Do not free pointers given by getenv. + 29 May 2015: Wouter - Fix that unparseable error responses are ratelimited. - SOA negative TTL is capped at minimumttl in its rdata section. diff --git a/external/unbound/doc/example.conf.in b/external/unbound/doc/example.conf.in index efe64f394..90491119e 100644 --- a/external/unbound/doc/example.conf.in +++ b/external/unbound/doc/example.conf.in @@ -444,6 +444,9 @@ server: # If the value 0 is given, missing anchors are not removed. # keep-missing: 31622400 # 366 days + # debug option that allows very small holddown times for key rollover + # permit-small-holddown: no + # the amount of memory to use for the key cache. # plain value in bytes or you can append k, m or G. default is "4Mb". # key-cache-size: 4m @@ -623,6 +626,8 @@ remote-control: # nameservers by hostname or by ipaddress. If you set stub-prime to yes, # the list is treated as priming hints (default is no). # With stub-first yes, it attempts without the stub if it fails. +# Consider adding domain-insecure: name and local-zone: name nodefault +# to the server: section if the stub is a locally served zone. # stub-zone: # name: "example.com" # stub-addr: 192.0.2.68 diff --git a/external/unbound/doc/unbound.conf.5.in b/external/unbound/doc/unbound.conf.5.in index 8836ed50c..cfbedd7d0 100644 --- a/external/unbound/doc/unbound.conf.5.in +++ b/external/unbound/doc/unbound.conf.5.in @@ -801,6 +801,10 @@ mechanism work with zones that perform regular (non\-5011) rollovers. The default is 366 days. The value 0 does not remove missing anchors, as per the RFC. .TP +.B permit\-small\-holddown: \fI<yes or no> +Debug option that allows the autotrust 5011 rollover timers to assume +very small values. Default is no. +.TP .B key\-cache\-size: \fI<number> Number of bytes size of the key cache. Default is 4 megabytes. A plain number is in bytes, append 'k', 'm' or 'g' for kilobytes, megabytes @@ -895,7 +899,8 @@ infected machines without answering the queries. Used to turn off default contents for AS112 zones. The other types also turn off default contents for the zone. The 'nodefault' option has no other effect than turning off default contents for the -given zone. +given zone. Use \fInodefault\fR if you use exactly that zone, if you want to +use a subzone, use \fItransparent\fR. .P The default zones are localhost, reverse 127.0.0.1 and ::1, and the AS112 zones. The AS112 zones are reverse DNS zones for private use and reserved @@ -1124,6 +1129,12 @@ bit on replies for the private zone (authoritative servers do not set the AD bit). This setup makes unbound capable of answering queries for the private zone, and can even set the AD bit ('authentic'), but the AA ('authoritative') bit is not set on these replies. +.P +Consider adding \fBserver:\fR statements for \fBdomain\-insecure:\fR and +for \fBlocal\-zone:\fI name nodefault\fR for the zone if it is a locally +served zone. The insecure clause stops DNSSEC from invalidating the +zone. The local zone nodefault (or \fItransparent\fR) clause makes the +(reverse\-) zone bypass unbound's filtering of RFC1918 zones. .TP .B name: \fI<domain name> Name of the stub zone. diff --git a/external/unbound/iterator/iter_scrub.c b/external/unbound/iterator/iter_scrub.c index e9db19482..cc05867c0 100644 --- a/external/unbound/iterator/iter_scrub.c +++ b/external/unbound/iterator/iter_scrub.c @@ -372,7 +372,7 @@ scrub_normalize(sldns_buffer* pkt, struct msg_parse* msg, /* check next cname */ uint8_t* t = NULL; size_t tlen = 0; - if(!parse_get_cname_target(rrset, &t, &tlen)) + if(!parse_get_cname_target(nx, &t, &tlen)) return 0; if(dname_pkt_compare(pkt, alias, t) == 0) { /* it's OK and better capitalized */ diff --git a/external/unbound/libunbound/libunbound.c b/external/unbound/libunbound/libunbound.c index b3a4c2ba7..a3a1d21a8 100644 --- a/external/unbound/libunbound/libunbound.c +++ b/external/unbound/libunbound/libunbound.c @@ -65,6 +65,9 @@ #ifdef HAVE_PTHREAD #include <signal.h> #endif +#ifdef HAVE_SYS_WAIT_H +#include <sys/wait.h> +#endif #if defined(UB_ON_WINDOWS) && defined (HAVE_WINDOWS_H) #include <windows.h> @@ -218,6 +221,12 @@ static void ub_stop_bg(struct ub_ctx* ctx) ub_thread_join(ctx->bg_tid); } else { lock_basic_unlock(&ctx->cfglock); +#ifndef UB_ON_WINDOWS + if(waitpid(ctx->bg_pid, NULL, 0) == -1) { + if(verbosity > 2) + log_err("waitpid: %s", strerror(errno)); + } +#endif } } else { diff --git a/external/unbound/makedist.sh b/external/unbound/makedist.sh index f06017668..23c89fc3d 100755 --- a/external/unbound/makedist.sh +++ b/external/unbound/makedist.sh @@ -136,6 +136,43 @@ create_temp_dir () { cd $temp_dir } +# pass filename as $1 arg. +# creates file.sha1 and file.sha256 +storehash () { + case $OSTYPE in + linux*) + sha=`sha1sum $1 | awk '{ print $1 }'` + sha256=`sha256sum $1 | awk '{ print $1 }'` + ;; + freebsd*) + sha=`sha1 $1 | awk '{ print $5 }'` + sha256=`sha256 $1 | awk '{ print $5 }'` + ;; + *) + # in case $OSTYPE is gone. + case `uname` in + Linux*) + sha=`sha1sum $1 | awk '{ print $1 }'` + sha256=`sha256sum $1 | awk '{ print $1 }'` + ;; + FreeBSD*) + sha=`sha1 $1 | awk '{ print $5 }'` + sha256=`sha256 $1 | awk '{ print $5 }'` + ;; + *) + sha=`sha1sum $1 | awk '{ print $1 }'` + sha256=`sha256sum $1 | awk '{ print $1 }'` + ;; + esac + ;; + esac + echo $sha > $1.sha1 + echo $sha256 > $1.sha256 + echo "hash of $1.{sha1,sha256}" + echo "sha1 $sha" + echo "sha256 $sha256" +} + SNAPSHOT="no" RC="no" @@ -311,6 +348,8 @@ if [ "$DOWIN" = "yes" ]; then mv unbound-$version.zip $cwd/. cleanup fi + storehash unbound_setup_$version.exe + storehash unbound-$version.zip ls -lG unbound_setup_$version.exe ls -lG unbound-$version.zip info "Done" @@ -411,36 +450,7 @@ tar czf ../unbound-$version.tar.gz unbound-$version || error_cleanup "Failed to cleanup -case $OSTYPE in - linux*) - sha=`sha1sum unbound-$version.tar.gz | awk '{ print $1 }'` - sha256=`sha256sum unbound-$version.tar.gz | awk '{ print $1 }'` - ;; - freebsd*) - sha=`sha1 unbound-$version.tar.gz | awk '{ print $5 }'` - sha256=`sha256 unbound-$version.tar.gz | awk '{ print $5 }'` - ;; - *) - # in case $OSTYPE is gone. - case `uname` in - Linux*) - sha=`sha1sum unbound-$version.tar.gz | awk '{ print $1 }'` - sha256=`sha256sum unbound-$version.tar.gz | awk '{ print $1 }'` - ;; - FreeBSD*) - sha=`sha1 unbound-$version.tar.gz | awk '{ print $5 }'` - sha256=`sha256 unbound-$version.tar.gz | awk '{ print $5 }'` - ;; - *) - sha=`sha1sum unbound-$version.tar.gz | awk '{ print $1 }'` - sha256=`sha256sum unbound-$version.tar.gz | awk '{ print $1 }'` - ;; - esac - ;; -esac -echo $sha > unbound-$version.tar.gz.sha1 -echo $sha256 > unbound-$version.tar.gz.sha256 +storehash unbound-$version.tar.gz info "Unbound distribution created successfully." -info "SHA1sum: $sha" diff --git a/external/unbound/services/cache/dns.c b/external/unbound/services/cache/dns.c index 53127ce59..ba81afde4 100644 --- a/external/unbound/services/cache/dns.c +++ b/external/unbound/services/cache/dns.c @@ -505,7 +505,7 @@ tomsg(struct module_env* env, struct query_info* q, struct reply_info* r, return NULL; if(r->an_numrrsets > 0 && (r->rrsets[0]->rk.type == htons( LDNS_RR_TYPE_CNAME) || r->rrsets[0]->rk.type == htons( - LDNS_RR_TYPE_DNAME)) && !reply_check_cname_chain(r)) { + LDNS_RR_TYPE_DNAME)) && !reply_check_cname_chain(q, r)) { /* cname chain is now invalid, reconstruct msg */ rrset_array_unlock(r->ref, r->rrset_count); return NULL; diff --git a/external/unbound/sldns/rrdef.c b/external/unbound/sldns/rrdef.c index 72161d7b6..a8c6229b9 100644 --- a/external/unbound/sldns/rrdef.c +++ b/external/unbound/sldns/rrdef.c @@ -213,13 +213,11 @@ static const sldns_rdf_type type_eui48_wireformat[] = { static const sldns_rdf_type type_eui64_wireformat[] = { LDNS_RDF_TYPE_EUI64 }; -#ifdef DRAFT_RRTYPES static const sldns_rdf_type type_uri_wireformat[] = { LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_LONG_STR }; -#endif static const sldns_rdf_type type_caa_wireformat[] = { LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_TAG, @@ -590,12 +588,8 @@ static sldns_rr_descriptor rdata_field_descriptors[] = { /* ANY: A request for all (available) records */ {LDNS_RR_TYPE_ANY, "ANY", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 }, -#ifdef DRAFT_RRTYPES /* 256 */ {LDNS_RR_TYPE_URI, "URI", 3, 3, type_uri_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 }, -#else -{LDNS_RR_TYPE_NULL, "TYPE256", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 }, -#endif /* 257 */ {LDNS_RR_TYPE_CAA, "CAA", 3, 3, type_caa_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 }, diff --git a/external/unbound/sldns/rrdef.h b/external/unbound/sldns/rrdef.h index 933bcdfbf..678d2bc79 100644 --- a/external/unbound/sldns/rrdef.h +++ b/external/unbound/sldns/rrdef.h @@ -220,8 +220,7 @@ enum sldns_enum_rr_type LDNS_RR_TYPE_MAILA = 254, /** any type (wildcard) */ LDNS_RR_TYPE_ANY = 255, - /** draft-faltstrom-uri-06 */ - LDNS_RR_TYPE_URI = 256, + LDNS_RR_TYPE_URI = 256, /* RFC 7553 */ LDNS_RR_TYPE_CAA = 257, /* RFC 6844 */ /** DNSSEC Trust Authorities */ diff --git a/external/unbound/smallapp/unbound-anchor.c b/external/unbound/smallapp/unbound-anchor.c index 576a30f64..92bfa8428 100644 --- a/external/unbound/smallapp/unbound-anchor.c +++ b/external/unbound/smallapp/unbound-anchor.c @@ -117,6 +117,7 @@ #include "config.h" #include "libunbound/unbound.h" #include "sldns/rrdef.h" +#include "sldns/parseutil.h" #include <expat.h> #ifndef HAVE_EXPAT_H #error "need libexpat to parse root-anchors.xml file." @@ -1328,7 +1329,7 @@ xml_convertdate(const char* str) /* but ignore, (lenient) */ } - t = mktime(&tm); + t = sldns_mktime_from_utc(&tm); if(t == (time_t)-1) { if(verb) printf("xml_convertdate mktime failure\n"); return 0; diff --git a/external/unbound/smallapp/unbound-control.c b/external/unbound/smallapp/unbound-control.c index d4b147d67..571b4d0b0 100644 --- a/external/unbound/smallapp/unbound-control.c +++ b/external/unbound/smallapp/unbound-control.c @@ -161,7 +161,7 @@ setup_ctx(struct config_file* cfg) if(cfg->remote_control_use_cert) { if(!(SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv3) & SSL_OP_NO_SSLv3)) ssl_err("could not set SSL_OP_NO_SSLv3"); - if(!SSL_CTX_use_certificate_file(ctx,c_cert,SSL_FILETYPE_PEM) || + if(!SSL_CTX_use_certificate_chain_file(ctx,c_cert) || !SSL_CTX_use_PrivateKey_file(ctx,c_key,SSL_FILETYPE_PEM) || !SSL_CTX_check_private_key(ctx)) ssl_err("Error setting up SSL_CTX client key and cert"); diff --git a/external/unbound/testcode/petal.c b/external/unbound/testcode/petal.c index 964735b39..a54181c37 100644 --- a/external/unbound/testcode/petal.c +++ b/external/unbound/testcode/petal.c @@ -236,12 +236,28 @@ setup_ctx(char* key, char* cert) if(!ctx) print_exit("out of memory"); (void)SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2); (void)SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv3); - if(!SSL_CTX_use_certificate_file(ctx, cert, SSL_FILETYPE_PEM)) + if(!SSL_CTX_use_certificate_chain_file(ctx, cert)) print_exit("cannot read cert"); if(!SSL_CTX_use_PrivateKey_file(ctx, key, SSL_FILETYPE_PEM)) print_exit("cannot read key"); if(!SSL_CTX_check_private_key(ctx)) print_exit("private key is not correct"); +#if HAVE_DECL_SSL_CTX_SET_ECDH_AUTO + if (!SSL_CTX_set_ecdh_auto(ctx,1)) + if(verb>=1) printf("failed to set_ecdh_auto, not enabling ECDHE\n"); +#elif defined(USE_ECDSA) + if(1) { + EC_KEY *ecdh = EC_KEY_new_by_curve_name (NID_X9_62_prime256v1); + if (!ecdh) { + if(verb>=1) printf("could not find p256, not enabling ECDHE\n"); + } else { + if (1 != SSL_CTX_set_tmp_ecdh (ctx, ecdh)) { + if(verb>=1) printf("Error in SSL_CTX_set_tmp_ecdh, not enabling ECDHE\n"); + } + EC_KEY_free(ecdh); + } + } +#endif if(!SSL_CTX_load_verify_locations(ctx, cert, NULL)) print_exit("cannot load cert verify locations"); return ctx; diff --git a/external/unbound/testdata/ctrl_pipe.tpkg b/external/unbound/testdata/ctrl_pipe.tpkg Binary files differdeleted file mode 100644 index 877fcf901..000000000 --- a/external/unbound/testdata/ctrl_pipe.tpkg +++ /dev/null diff --git a/external/unbound/testdata/fwd_any.rpl b/external/unbound/testdata/fwd_any.rpl deleted file mode 100644 index 4284ee79e..000000000 --- a/external/unbound/testdata/fwd_any.rpl +++ /dev/null @@ -1,161 +0,0 @@ -; This is a comment. -; config options go here. -forward-zone: name: "." forward-addr: 216.0.0.1 -CONFIG_END - -SCENARIO_BEGIN Test query and cache with type ANY -RANGE_BEGIN 0 1000 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR RD RA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -SECTION AUTHORITY -www.example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 10.20.30.50 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR RD RA NOERROR -SECTION QUESTION -www.example.com. IN ANY -SECTION ANSWER -;; different type in this answer. -www.example.com. IN TXT "text" -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR RD RA NOERROR -SECTION QUESTION -www.example.com. IN AAAA -SECTION ANSWER -www.example.com. IN AAAA ::5 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qname qtype -ADJUST copy_id -REPLY QR RD RA NOERROR -SECTION QUESTION -www.foo.com. IN ANY -SECTION ANSWER -www.foo.com. IN A 1.2.3.77 -www.foo.com. IN AAAA ::77 -ENTRY_END - -RANGE_END - -STEP 10 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN A -ENTRY_END -; unneccesary nothing steps. -STEP 20 NOTHING -STEP 30 CHECK_ANSWER -ENTRY_BEGIN -MATCH opcode qname qtype -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -ENTRY_END - -; test cache synthesis -STEP 40 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN ANY -ENTRY_END -STEP 50 NOTHING -STEP 60 CHECK_ANSWER -ENTRY_BEGIN -MATCH opcode qname qtype -SECTION QUESTION -www.example.com. IN ANY -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -ENTRY_END - -; and again -; the synthesized result itself is not added to the cache -STEP 62 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN ANY -ENTRY_END -STEP 63 NOTHING -STEP 64 CHECK_ANSWER -ENTRY_BEGIN -MATCH opcode qname qtype -SECTION QUESTION -www.example.com. IN ANY -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -ENTRY_END - -; AAAA lookup to add more data in cache -STEP 70 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN AAAA -ENTRY_END -STEP 80 NOTHING -STEP 90 CHECK_ANSWER -ENTRY_BEGIN -MATCH opcode qname qtype -SECTION QUESTION -www.example.com. IN AAAA -SECTION ANSWER -www.example.com. IN AAAA ::5 -ENTRY_END - -; test cache synthesis of AAAA, and two rrsets. -STEP 100 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN ANY -ENTRY_END -STEP 110 NOTHING -STEP 120 CHECK_ANSWER -ENTRY_BEGIN -MATCH opcode qname qtype -SECTION QUESTION -www.example.com. IN ANY -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -www.example.com. IN AAAA ::5 -ENTRY_END - -; test query that is not synthesized from cache. -STEP 130 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.foo.com. IN ANY -ENTRY_END -STEP 140 NOTHING -STEP 150 CHECK_ANSWER -ENTRY_BEGIN -MATCH opcode qname qtype -SECTION QUESTION -www.foo.com. IN ANY -SECTION ANSWER -www.foo.com. IN A 1.2.3.77 -www.foo.com. IN AAAA ::77 -ENTRY_END - -SCENARIO_END diff --git a/external/unbound/testdata/fwd_capsid_strip.tpkg b/external/unbound/testdata/fwd_capsid_strip.tpkg Binary files differdeleted file mode 100644 index c0be8a3c5..000000000 --- a/external/unbound/testdata/fwd_capsid_strip.tpkg +++ /dev/null diff --git a/external/unbound/testdata/fwd_capsid_white.tpkg b/external/unbound/testdata/fwd_capsid_white.tpkg Binary files differdeleted file mode 100644 index 199befb56..000000000 --- a/external/unbound/testdata/fwd_capsid_white.tpkg +++ /dev/null diff --git a/external/unbound/testdata/iter_domain_sale.rpl b/external/unbound/testdata/iter_domain_sale.rpl deleted file mode 100644 index ff612780a..000000000 --- a/external/unbound/testdata/iter_domain_sale.rpl +++ /dev/null @@ -1,273 +0,0 @@ -; config options -server: - target-fetch-policy: "0 0 0 0 0" - -stub-zone: - name: "." - stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. -CONFIG_END - -SCENARIO_BEGIN Test resolver with a domain sale -; and the old operator is nasty, keeps running his server with the old data. -; and lots of lookups keep going towards the domain. -; eventually, the NS record has to timeout. - -; K.ROOT-SERVERS.NET. -RANGE_BEGIN 0 100 - ADDRESS 193.0.14.129 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -. IN NS -SECTION ANSWER -. IN NS K.ROOT-SERVERS.NET. -SECTION ADDITIONAL -K.ROOT-SERVERS.NET. IN A 193.0.14.129 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode subdomain -ADJUST copy_id copy_query -REPLY QR NOERROR -SECTION QUESTION -com. IN A -SECTION AUTHORITY -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END -RANGE_END - -; a.gtld-servers.net. (before sale of domain) -RANGE_BEGIN 0 20 - ADDRESS 192.5.6.30 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -com. IN NS -SECTION ANSWER -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode subdomain -ADJUST copy_id copy_query -REPLY QR NOERROR -SECTION QUESTION -example.com. IN A -SECTION AUTHORITY -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ENTRY_END -RANGE_END - -; a.gtld-servers.net. (after sale of domain) -RANGE_BEGIN 30 200 - ADDRESS 192.5.6.30 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -com. IN NS -SECTION ANSWER -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode subdomain -ADJUST copy_id copy_query -REPLY QR NOERROR -SECTION QUESTION -example.com. IN A -SECTION AUTHORITY -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 8.8.8.8 -ENTRY_END -RANGE_END - -; ns.example.com. first owner -RANGE_BEGIN 0 200 - ADDRESS 1.2.3.4 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR AA NOERROR -SECTION QUESTION -example.com. IN NS -SECTION ANSWER -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qname -ADJUST copy_id copy_query -REPLY QR AA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 3600 IN A 10.20.30.40 -SECTION AUTHORITY -example.com. 3600 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 3600 IN A 1.2.3.4 -ENTRY_END - -; nxdomains for any name,type -; last in RANGE so that it matches everything left over. -; it includes the NS record. -ENTRY_BEGIN -MATCH opcode -ADJUST copy_id copy_query -REPLY QR AA NXDOMAIN -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -SECTION AUTHORITY -example.com. 3600 IN SOA a. b. 1 2 3 4 5 -example.com. 3600 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 3600 IN A 1.2.3.4 -ENTRY_END -RANGE_END - -; ns.example.com. new owner -RANGE_BEGIN 0 200 - ADDRESS 8.8.8.8 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR AA NOERROR -SECTION QUESTION -example.com. IN NS -SECTION ANSWER -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 8.8.8.8 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR AA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 3600 IN A 88.88.88.88 -SECTION AUTHORITY -example.com. 3600 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 3600 IN A 8.8.8.8 -ENTRY_END -RANGE_END - -; Fetch the old record from the old owner. -STEP 1 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN A -ENTRY_END -; recursion happens here. -STEP 5 CHECK_ANSWER -ENTRY_BEGIN -MATCH all ttl -REPLY QR RD RA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 3600 IN A 10.20.30.40 -SECTION AUTHORITY -example.com. 3600 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 3600 IN A 1.2.3.4 -ENTRY_END - -; the domain is sold (right at this time). -; but the information stays in the cache. - -; after 1800 secs still the cached answer -STEP 20 TIME_PASSES ELAPSE 1800 - -STEP 30 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN A -ENTRY_END -; recursion happens here. -STEP 40 CHECK_ANSWER -ENTRY_BEGIN -MATCH all ttl -REPLY QR RD RA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 1800 IN A 10.20.30.40 -SECTION AUTHORITY -example.com. 1800 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 1800 IN A 1.2.3.4 -ENTRY_END - -; and ask another query -STEP 50 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -nx1.example.com. IN A -ENTRY_END -; recursion happens here. -STEP 60 CHECK_ANSWER -ENTRY_BEGIN -MATCH all ttl -REPLY QR RD RA NXDOMAIN -SECTION QUESTION -nx1.example.com. IN A -SECTION ANSWER -SECTION AUTHORITY -; at TTL 5 because TTL is capped at min-ttl of 5 in rdata of SOA -example.com. 5 IN SOA a. b. 1 2 3 4 5 -example.com. 1800 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 1800 IN A 1.2.3.4 -ENTRY_END - -; after another 1900 seconds the domain must have timed out. -STEP 70 TIME_PASSES ELAPSE 1900 - -; the NS record should have timed out. -STEP 80 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN A -ENTRY_END -; recursion happens here. -STEP 90 CHECK_ANSWER -ENTRY_BEGIN -MATCH all ttl -REPLY QR RD RA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 3600 IN A 88.88.88.88 -SECTION AUTHORITY -example.com. 3600 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 3600 IN A 8.8.8.8 -ENTRY_END - -SCENARIO_END diff --git a/external/unbound/testdata/iter_domain_sale_nschange.rpl b/external/unbound/testdata/iter_domain_sale_nschange.rpl deleted file mode 100644 index bc396f67c..000000000 --- a/external/unbound/testdata/iter_domain_sale_nschange.rpl +++ /dev/null @@ -1,342 +0,0 @@ -; config options -server: - target-fetch-policy: "0 0 0 0 0" - -stub-zone: - name: "." - stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. -CONFIG_END - -SCENARIO_BEGIN Test resolver with a domain sale and NS changes -; and the old operator is nasty, keeps running his server with the old data. -; and lots of lookups keep going towards the domain. -; and the old server is changing the NS record of the old domain. - -; K.ROOT-SERVERS.NET. -RANGE_BEGIN 0 100 - ADDRESS 193.0.14.129 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -. IN NS -SECTION ANSWER -. IN NS K.ROOT-SERVERS.NET. -SECTION ADDITIONAL -K.ROOT-SERVERS.NET. IN A 193.0.14.129 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode subdomain -ADJUST copy_id copy_query -REPLY QR NOERROR -SECTION QUESTION -com. IN A -SECTION AUTHORITY -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END -RANGE_END - -; a.gtld-servers.net. (before sale of domain) -RANGE_BEGIN 0 20 - ADDRESS 192.5.6.30 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -com. IN NS -SECTION ANSWER -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode subdomain -ADJUST copy_id copy_query -REPLY QR NOERROR -SECTION QUESTION -example.com. IN A -SECTION AUTHORITY -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ENTRY_END -RANGE_END - -; a.gtld-servers.net. (after sale of domain) -RANGE_BEGIN 30 200 - ADDRESS 192.5.6.30 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -com. IN NS -SECTION ANSWER -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode subdomain -ADJUST copy_id copy_query -REPLY QR NOERROR -SECTION QUESTION -example.com. IN A -SECTION AUTHORITY -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 8.8.8.8 -ENTRY_END -RANGE_END - -; ns.example.com. first owner -RANGE_BEGIN 0 30 - ADDRESS 1.2.3.4 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR AA NOERROR -SECTION QUESTION -example.com. IN NS -SECTION ANSWER -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qname -ADJUST copy_id copy_query -REPLY QR AA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 3600 IN A 10.20.30.40 -SECTION AUTHORITY -example.com. 3600 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 3600 IN A 1.2.3.4 -ENTRY_END - -; nxdomains for any name,type -; last in RANGE so that it matches everything left over. -; it includes the NS record. -ENTRY_BEGIN -MATCH opcode -ADJUST copy_id copy_query -REPLY QR AA NXDOMAIN -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -SECTION AUTHORITY -example.com. 3600 IN SOA a. b. 1 2 3 4 5 -example.com. 3600 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 3600 IN A 1.2.3.4 -ENTRY_END -RANGE_END - -; ns.example.com. first owner, NS changed -RANGE_BEGIN 40 200 - ADDRESS 1.2.3.4 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR AA NOERROR -SECTION QUESTION -example.com. IN NS -SECTION ANSWER -example.com. IN NS nsb.example.com. -SECTION ADDITIONAL -nsb.example.com. IN A 1.2.3.4 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qname -ADJUST copy_id copy_query -REPLY QR AA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 3600 IN A 10.20.30.40 -SECTION AUTHORITY -example.com. 3600 IN NS nsb.example.com. -SECTION ADDITIONAL -nsb.example.com. 3600 IN A 1.2.3.4 -ENTRY_END - -; nxdomains for any name,type -; last in RANGE so that it matches everything left over. -; it includes the NS record. -ENTRY_BEGIN -MATCH opcode -ADJUST copy_id copy_query -REPLY QR AA NXDOMAIN -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -SECTION AUTHORITY -example.com. 3600 IN SOA a. b. 1 2 3 4 5 -example.com. 3600 IN NS nsb.example.com. -SECTION ADDITIONAL -nsb.example.com. 3600 IN A 1.2.3.4 -ENTRY_END -RANGE_END - -; ns.example.com. new owner -RANGE_BEGIN 0 200 - ADDRESS 8.8.8.8 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR AA NOERROR -SECTION QUESTION -example.com. IN NS -SECTION ANSWER -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 8.8.8.8 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR AA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 3600 IN A 88.88.88.88 -SECTION AUTHORITY -example.com. 3600 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 3600 IN A 8.8.8.8 -ENTRY_END -RANGE_END - -; Fetch the old record from the old owner. -STEP 1 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN A -ENTRY_END -; recursion happens here. -STEP 5 CHECK_ANSWER -ENTRY_BEGIN -MATCH all ttl -REPLY QR RD RA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 3600 IN A 10.20.30.40 -SECTION AUTHORITY -example.com. 3600 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 3600 IN A 1.2.3.4 -ENTRY_END - -; the domain is sold (right at this time). -; but the information stays in the cache. - -; after 1800 secs still the cached answer -STEP 20 TIME_PASSES ELAPSE 1800 - -STEP 30 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN A -ENTRY_END -; recursion happens here. -STEP 40 CHECK_ANSWER -ENTRY_BEGIN -MATCH all ttl -REPLY QR RD RA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 1800 IN A 10.20.30.40 -SECTION AUTHORITY -example.com. 1800 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 1800 IN A 1.2.3.4 -ENTRY_END - -; and ask another query -STEP 50 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -nx1.example.com. IN A -ENTRY_END -; recursion happens here. -STEP 60 CHECK_ANSWER -ENTRY_BEGIN -MATCH all ttl -REPLY QR RD RA NXDOMAIN -SECTION QUESTION -nx1.example.com. IN A -SECTION ANSWER -SECTION AUTHORITY -; at TTL 5 because TTL capped at ttl of minttl in rdata of SOA. -example.com. 5 IN SOA a. b. 1 2 3 4 5 -example.com. 3600 IN NS nsb.example.com. -SECTION ADDITIONAL -nsb.example.com. 3600 IN A 1.2.3.4 -ENTRY_END - -STEP 62 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -nx1.example.com. IN A -ENTRY_END -; recursion happens here. -STEP 63 CHECK_ANSWER -ENTRY_BEGIN -MATCH all ttl -REPLY QR RD RA NXDOMAIN -SECTION QUESTION -nx1.example.com. IN A -SECTION ANSWER -SECTION AUTHORITY -; at TTL 5 because TTL capped at ttl of minttl in rdata of SOA. -example.com. 5 IN SOA a. b. 1 2 3 4 5 -example.com. 1800 IN NS nsb.example.com. -SECTION ADDITIONAL -nsb.example.com. 3600 IN A 1.2.3.4 -ENTRY_END - -; after another 1900 seconds the domain must have timed out. -STEP 70 TIME_PASSES ELAPSE 1900 - -; the NS record should have timed out. -STEP 80 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN A -ENTRY_END -; recursion happens here. -STEP 90 CHECK_ANSWER -ENTRY_BEGIN -MATCH all ttl -REPLY QR RD RA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 3600 IN A 88.88.88.88 -SECTION AUTHORITY -example.com. 3600 IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. 3600 IN A 8.8.8.8 -ENTRY_END - -SCENARIO_END diff --git a/external/unbound/testdata/root_anchor.tpkg b/external/unbound/testdata/root_anchor.tpkg Binary files differdeleted file mode 100644 index dfb4c5a1c..000000000 --- a/external/unbound/testdata/root_anchor.tpkg +++ /dev/null diff --git a/external/unbound/testdata/val_spurious_ns.rpl b/external/unbound/testdata/val_spurious_ns.rpl deleted file mode 100644 index 741fd1aff..000000000 --- a/external/unbound/testdata/val_spurious_ns.rpl +++ /dev/null @@ -1,151 +0,0 @@ -; config options -; The island of trust is at example.com -server: - trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b" - val-override-date: "20070916134226" - target-fetch-policy: "0 0 0 0 0" - -stub-zone: - name: "." - stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. -CONFIG_END - -SCENARIO_BEGIN Test validator with spurious unsigned NS in auth section - -; K.ROOT-SERVERS.NET. -RANGE_BEGIN 0 100 - ADDRESS 193.0.14.129 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -. IN NS -SECTION ANSWER -. IN NS K.ROOT-SERVERS.NET. -SECTION ADDITIONAL -K.ROOT-SERVERS.NET. IN A 193.0.14.129 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION AUTHORITY -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END -RANGE_END - -; a.gtld-servers.net. -RANGE_BEGIN 0 100 - ADDRESS 192.5.6.30 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -com. IN NS -SECTION ANSWER -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION AUTHORITY -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ENTRY_END -RANGE_END - -; ns.example.com. -RANGE_BEGIN 0 100 - ADDRESS 1.2.3.4 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -example.com. IN NS -SECTION ANSWER -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} -ENTRY_END - -; response to DNSKEY priming query -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -example.com. IN DNSKEY -SECTION ANSWER -example.com. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJII s70j+sDS/UT2QRp61SE7S3E EXopNXoFE73JLRmvpi/UrOO/Vz4Se 6wXv/CYCKjGw06U4WRgR YXcpEhJROyNapmdIKSx hOzfLVE1gqA0PweZR8d tY3aNQSRn3sPpwJr6Mi /PqQKAMMrZ9ckJpf1+b QMOOvxgzz2U1GS18b3y ZKcgTMEaJzd/GZYzi/B N2DzQ0MsrSwYXfsNLFO Bbs8PJMW4LYIxeeOe6rUgkWOF 7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b} -example.com. 3600 IN RRSIG DNSKEY 3 2 3600 20070926134802 20070829134802 2854 example.com. MCwCFG1yhRNtTEa3Eno2zhVVuy2EJX3wAhQeLyUp6+UXcpC5qGNu9tkrTEgPUg== ;{id = 2854} -SECTION AUTHORITY -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} -ENTRY_END - -; response to query of interest -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854} -SECTION AUTHORITY -example.com. IN NS ns.example.com. -;example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -www.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854} -ENTRY_END -RANGE_END - -STEP 1 QUERY -ENTRY_BEGIN -REPLY RD DO -SECTION QUESTION -www.example.com. IN A -ENTRY_END - -; recursion happens here. -STEP 10 CHECK_ANSWER -ENTRY_BEGIN -MATCH all -REPLY QR RD RA AD DO NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -www.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854} -SECTION AUTHORITY -; removed by spurious NS record removal code -;;example.com. IN NS ns.example.com. -;;example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854} -ENTRY_END - -SCENARIO_END diff --git a/external/unbound/testdata/val_ta_algo_dnskey_dp.rpl b/external/unbound/testdata/val_ta_algo_dnskey_dp.rpl deleted file mode 100644 index b23c0f1b0..000000000 --- a/external/unbound/testdata/val_ta_algo_dnskey_dp.rpl +++ /dev/null @@ -1,182 +0,0 @@ -; config options -; The island of trust is at example.com -server: - trust-anchor: "example.com. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJIIs70j+sDS/UT2QRp61SE7S3EEXopNXoFE73JLRmvpi/UrOO/Vz4Se6wXv/CYCKjGw06U4WRgRYXcpEhJROyNapmdIKSxhOzfLVE1gqA0PweZR8dtY3aNQSRn3sPpwJr6Mi/PqQKAMMrZ9ckJpf1+bQMOOvxgzz2U1GS18b3yZKcgTMEaJzd/GZYzi/BN2DzQ0MsrSwYXfsNLFOBbs8PJMW4LYIxeeOe6rUgkWOF7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b}" - trust-anchor: "example.com. 3600 IN DS 30899 5 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512" - val-override-date: "20070916134226" - target-fetch-policy: "0 0 0 0 0" - harden-algo-downgrade: no - -stub-zone: - name: "." - stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. -CONFIG_END - -SCENARIO_BEGIN Test validator with multiple algorithm trust anchor without harden - -; K.ROOT-SERVERS.NET. -RANGE_BEGIN 0 100 - ADDRESS 193.0.14.129 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -. IN NS -SECTION ANSWER -. IN NS K.ROOT-SERVERS.NET. -SECTION ADDITIONAL -K.ROOT-SERVERS.NET. IN A 193.0.14.129 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION AUTHORITY -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END -RANGE_END - -; a.gtld-servers.net. -RANGE_BEGIN 0 100 - ADDRESS 192.5.6.30 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -com. IN NS -SECTION ANSWER -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION AUTHORITY -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ENTRY_END -RANGE_END - -; ns.example.com. -RANGE_BEGIN 0 100 - ADDRESS 1.2.3.4 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -example.com. IN NS -SECTION ANSWER -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com. 3600 IN RRSIG NS 5 2 3600 20070926134150 20070829134150 30899 example.com. YTqtYba73HIOQuPr5oDyIX9pfmz1ybEBjwlD/jUgcPmFINUOZ9FeqG6ywgRKwn4AizkKTK00p1sxZYMKxl91wg== ;{id = 30899} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} -ns.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. Dn1ziMKrc3NdJkSv8g61Y9WNk3+BAuwCwnYzAZiHmkejkSCPViLJN7+f4Conp9l8LkTl50ZnLgoYrrUYNhMj6w== ;{id = 30899} -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR AA NOERROR -SECTION QUESTION -ns.example.com. IN AAAA -SECTION ANSWER -SECTION AUTHORITY -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com. 3600 IN RRSIG NS 5 2 3600 20070926134150 20070829134150 30899 example.com. YTqtYba73HIOQuPr5oDyIX9pfmz1ybEBjwlD/jUgcPmFINUOZ9FeqG6ywgRKwn4AizkKTK00p1sxZYMKxl91wg== ;{id = 30899} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} -ns.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. Dn1ziMKrc3NdJkSv8g61Y9WNk3+BAuwCwnYzAZiHmkejkSCPViLJN7+f4Conp9l8LkTl50ZnLgoYrrUYNhMj6w== ;{id = 30899} -ENTRY_END - - -; response to DNSKEY priming query -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -example.com. IN DNSKEY -SECTION ANSWER -example.com. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b} -example.com. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJIIs70j+sDS/UT2QRp61SE7S3EEXopNXoFE73JLRmvpi/UrOO/Vz4Se6wXv/CYCKjGw06U4WRgRYXcpEhJROyNapmdIKSxhOzfLVE1gqA0PweZR8dtY3aNQSRn3sPpwJr6Mi/PqQKAMMrZ9ckJpf1+bQMOOvxgzz2U1GS18b3yZKcgTMEaJzd/GZYzi/BN2DzQ0MsrSwYXfsNLFOBbs8PJMW4LYIxeeOe6rUgkWOF7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 512b} -example.com. 3600 IN RRSIG DNSKEY 3 2 3600 20070926134150 20070829134150 2854 example.com. AKIIYDOGHogglFqJK94ZtOnF7EfGikgAyloMNRSMCrQgFaFkmcOyjrc= ;{id = 2854} -example.com. 3600 IN RRSIG DNSKEY 5 2 3600 20070926134150 20070829134150 30899 example.com. J55fsz1GGMnngc4r50xvXDUdaVMlfcLKLVsfMhwNLF+ERac5XV/lLRAc/aSER+qQdsSo0CrjYjy1wat7YQpDAA== ;{id = 30899} -SECTION AUTHORITY -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com. 3600 IN RRSIG NS 5 2 3600 20070926134150 20070829134150 30899 example.com. YTqtYba73HIOQuPr5oDyIX9pfmz1ybEBjwlD/jUgcPmFINUOZ9FeqG6ywgRKwn4AizkKTK00p1sxZYMKxl91wg== ;{id = 30899} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} -ns.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. Dn1ziMKrc3NdJkSv8g61Y9WNk3+BAuwCwnYzAZiHmkejkSCPViLJN7+f4Conp9l8LkTl50ZnLgoYrrUYNhMj6w== ;{id = 30899} -ENTRY_END - -; response to query of interest -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854} -www.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. JNWECShNE+nCLQwOXJJ3xpUkh2G+FCh5nk8uYAHIVQRse/BIvCMSlvRrtVyw9RnXvk5RR2bEgN0pRdLWW7ug5Q== ;{id = 30899} -SECTION AUTHORITY -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com. 3600 IN RRSIG NS 5 2 3600 20070926134150 20070829134150 30899 example.com. YTqtYba73HIOQuPr5oDyIX9pfmz1ybEBjwlD/jUgcPmFINUOZ9FeqG6ywgRKwn4AizkKTK00p1sxZYMKxl91wg== ;{id = 30899} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -www.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854} -ns.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. Dn1ziMKrc3NdJkSv8g61Y9WNk3+BAuwCwnYzAZiHmkejkSCPViLJN7+f4Conp9l8LkTl50ZnLgoYrrUYNhMj6w== ;{id = 30899} -ENTRY_END -RANGE_END - -STEP 1 QUERY -ENTRY_BEGIN -REPLY RD DO -SECTION QUESTION -www.example.com. IN A -ENTRY_END - -; recursion happens here. -STEP 10 CHECK_ANSWER -ENTRY_BEGIN -MATCH all -REPLY QR RD RA AD DO NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -www.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. JNWECShNE+nCLQwOXJJ3xpUkh2G+FCh5nk8uYAHIVQRse/BIvCMSlvRrtVyw9RnXvk5RR2bEgN0pRdLWW7ug5Q== ;{id = 30899} -www.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854} -SECTION AUTHORITY -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com. 3600 IN RRSIG NS 5 2 3600 20070926134150 20070829134150 30899 example.com. YTqtYba73HIOQuPr5oDyIX9pfmz1ybEBjwlD/jUgcPmFINUOZ9FeqG6ywgRKwn4AizkKTK00p1sxZYMKxl91wg== ;{id = 30899} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854} -ns.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. Dn1ziMKrc3NdJkSv8g61Y9WNk3+BAuwCwnYzAZiHmkejkSCPViLJN7+f4Conp9l8LkTl50ZnLgoYrrUYNhMj6w== ;{id = 30899} -ENTRY_END - -SCENARIO_END diff --git a/external/unbound/testdata/val_ta_algo_missing_dp.rpl b/external/unbound/testdata/val_ta_algo_missing_dp.rpl deleted file mode 100644 index 2cf0556f5..000000000 --- a/external/unbound/testdata/val_ta_algo_missing_dp.rpl +++ /dev/null @@ -1,185 +0,0 @@ -; config options -; The island of trust is at example.com -server: - trust-anchor: "example.com. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJIIs70j+sDS/UT2QRp61SE7S3EEXopNXoFE73JLRmvpi/UrOO/Vz4Se6wXv/CYCKjGw06U4WRgRYXcpEhJROyNapmdIKSxhOzfLVE1gqA0PweZR8dtY3aNQSRn3sPpwJr6Mi/PqQKAMMrZ9ckJpf1+bQMOOvxgzz2U1GS18b3yZKcgTMEaJzd/GZYzi/BN2DzQ0MsrSwYXfsNLFOBbs8PJMW4LYIxeeOe6rUgkWOF7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b}" - trust-anchor: "example.com. 3600 IN DS 30899 5 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512" - trust-anchor: "example.com. 3600 IN DS 30899 7 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512" - val-override-date: "20070916134226" - target-fetch-policy: "0 0 0 0 0" - harden-algo-downgrade: no - -stub-zone: - name: "." - stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. -CONFIG_END - -SCENARIO_BEGIN Test validator with multiple algorithm missing one - -; K.ROOT-SERVERS.NET. -RANGE_BEGIN 0 100 - ADDRESS 193.0.14.129 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -. IN NS -SECTION ANSWER -. IN NS K.ROOT-SERVERS.NET. -SECTION ADDITIONAL -K.ROOT-SERVERS.NET. IN A 193.0.14.129 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION AUTHORITY -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END -RANGE_END - -; a.gtld-servers.net. -RANGE_BEGIN 0 100 - ADDRESS 192.5.6.30 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -com. IN NS -SECTION ANSWER -com. IN NS a.gtld-servers.net. -SECTION ADDITIONAL -a.gtld-servers.net. IN A 192.5.6.30 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION AUTHORITY -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ENTRY_END -RANGE_END - -; ns.example.com. -RANGE_BEGIN 0 100 - ADDRESS 1.2.3.4 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -example.com. IN NS -SECTION ANSWER -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com. 3600 IN RRSIG NS 5 2 3600 20070926134150 20070829134150 30899 example.com. YTqtYba73HIOQuPr5oDyIX9pfmz1ybEBjwlD/jUgcPmFINUOZ9FeqG6ywgRKwn4AizkKTK00p1sxZYMKxl91wg== ;{id = 30899} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} -ns.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. Dn1ziMKrc3NdJkSv8g61Y9WNk3+BAuwCwnYzAZiHmkejkSCPViLJN7+f4Conp9l8LkTl50ZnLgoYrrUYNhMj6w== ;{id = 30899} -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR AA NOERROR -SECTION QUESTION -ns.example.com. IN AAAA -SECTION ANSWER -SECTION AUTHORITY -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com. 3600 IN RRSIG NS 5 2 3600 20070926134150 20070829134150 30899 example.com. YTqtYba73HIOQuPr5oDyIX9pfmz1ybEBjwlD/jUgcPmFINUOZ9FeqG6ywgRKwn4AizkKTK00p1sxZYMKxl91wg== ;{id = 30899} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} -ns.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. Dn1ziMKrc3NdJkSv8g61Y9WNk3+BAuwCwnYzAZiHmkejkSCPViLJN7+f4Conp9l8LkTl50ZnLgoYrrUYNhMj6w== ;{id = 30899} -ENTRY_END - - -; response to DNSKEY priming query -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -example.com. IN DNSKEY -SECTION ANSWER -example.com. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b} -example.com. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJIIs70j+sDS/UT2QRp61SE7S3EEXopNXoFE73JLRmvpi/UrOO/Vz4Se6wXv/CYCKjGw06U4WRgRYXcpEhJROyNapmdIKSxhOzfLVE1gqA0PweZR8dtY3aNQSRn3sPpwJr6Mi/PqQKAMMrZ9ckJpf1+bQMOOvxgzz2U1GS18b3yZKcgTMEaJzd/GZYzi/BN2DzQ0MsrSwYXfsNLFOBbs8PJMW4LYIxeeOe6rUgkWOF7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 512b} -example.com. 3600 IN RRSIG DNSKEY 3 2 3600 20070926134150 20070829134150 2854 example.com. AKIIYDOGHogglFqJK94ZtOnF7EfGikgAyloMNRSMCrQgFaFkmcOyjrc= ;{id = 2854} -example.com. 3600 IN RRSIG DNSKEY 5 2 3600 20070926134150 20070829134150 30899 example.com. J55fsz1GGMnngc4r50xvXDUdaVMlfcLKLVsfMhwNLF+ERac5XV/lLRAc/aSER+qQdsSo0CrjYjy1wat7YQpDAA== ;{id = 30899} -SECTION AUTHORITY -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com. 3600 IN RRSIG NS 5 2 3600 20070926134150 20070829134150 30899 example.com. YTqtYba73HIOQuPr5oDyIX9pfmz1ybEBjwlD/jUgcPmFINUOZ9FeqG6ywgRKwn4AizkKTK00p1sxZYMKxl91wg== ;{id = 30899} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854} -ns.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. Dn1ziMKrc3NdJkSv8g61Y9WNk3+BAuwCwnYzAZiHmkejkSCPViLJN7+f4Conp9l8LkTl50ZnLgoYrrUYNhMj6w== ;{id = 30899} -ENTRY_END - -; response to query of interest -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854} -www.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. JNWECShNE+nCLQwOXJJ3xpUkh2G+FCh5nk8uYAHIVQRse/BIvCMSlvRrtVyw9RnXvk5RR2bEgN0pRdLWW7ug5Q== ;{id = 30899} -SECTION AUTHORITY -example.com. IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com. 3600 IN RRSIG NS 5 2 3600 20070926134150 20070829134150 30899 example.com. YTqtYba73HIOQuPr5oDyIX9pfmz1ybEBjwlD/jUgcPmFINUOZ9FeqG6ywgRKwn4AizkKTK00p1sxZYMKxl91wg== ;{id = 30899} -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -www.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854} -ns.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. Dn1ziMKrc3NdJkSv8g61Y9WNk3+BAuwCwnYzAZiHmkejkSCPViLJN7+f4Conp9l8LkTl50ZnLgoYrrUYNhMj6w== ;{id = 30899} -ENTRY_END -RANGE_END - -STEP 1 QUERY -ENTRY_BEGIN -REPLY RD DO -SECTION QUESTION -www.example.com. IN A -ENTRY_END - -; recursion happens here. -STEP 10 CHECK_ANSWER -ENTRY_BEGIN -MATCH all -REPLY QR RD RA AD DO NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. 3600 IN A 10.20.30.40 -www.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. JNWECShNE+nCLQwOXJJ3xpUkh2G+FCh5nk8uYAHIVQRse/BIvCMSlvRrtVyw9RnXvk5RR2bEgN0pRdLWW7ug5Q== ;{id = 30899} -www.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854} - -SECTION AUTHORITY -example.com. 3600 IN NS ns.example.com. -example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854} -example.com. 3600 IN RRSIG NS 5 2 3600 20070926134150 20070829134150 30899 example.com. YTqtYba73HIOQuPr5oDyIX9pfmz1ybEBjwlD/jUgcPmFINUOZ9FeqG6ywgRKwn4AizkKTK00p1sxZYMKxl91wg== ;{id = 30899} - -SECTION ADDITIONAL -ns.example.com. 3600 IN A 1.2.3.4 -ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854} -ns.example.com. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.com. Dn1ziMKrc3NdJkSv8g61Y9WNk3+BAuwCwnYzAZiHmkejkSCPViLJN7+f4Conp9l8LkTl50ZnLgoYrrUYNhMj6w== ;{id = 30899} -ENTRY_END - -SCENARIO_END diff --git a/external/unbound/util/alloc.c b/external/unbound/util/alloc.c index 66bdc7db9..05d2fa362 100644 --- a/external/unbound/util/alloc.c +++ b/external/unbound/util/alloc.c @@ -364,6 +364,9 @@ void *unbound_stat_malloc(size_t size) #ifdef calloc #undef calloc #endif +#ifndef INT_MAX +#define INT_MAX (((int)-1)>>1) +#endif /** calloc with stats */ void *unbound_stat_calloc(size_t nmemb, size_t size) { diff --git a/external/unbound/util/config_file.c b/external/unbound/util/config_file.c index 5d31301fa..3ef545a7b 100644 --- a/external/unbound/util/config_file.c +++ b/external/unbound/util/config_file.c @@ -70,6 +70,8 @@ uid_t cfg_uid = (uid_t)-1; /** from cfg username, after daemonise setup performed */ gid_t cfg_gid = (gid_t)-1; +/** for debug allow small timeout values for fast rollovers */ +int autr_permit_small_holddown = 0; /** global config during parsing */ struct config_parser_state* cfg_parser = 0; @@ -200,6 +202,7 @@ config_create(void) cfg->add_holddown = 30*24*3600; cfg->del_holddown = 30*24*3600; cfg->keep_missing = 366*24*3600; /* one year plus a little leeway */ + cfg->permit_small_holddown = 0; cfg->key_cache_size = 4 * 1024 * 1024; cfg->key_cache_slabs = 4; cfg->neg_cache_size = 1 * 1024 * 1024; @@ -444,6 +447,9 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_UNSIGNED_OR_ZERO("add-holddown:", add_holddown) else S_UNSIGNED_OR_ZERO("del-holddown:", del_holddown) else S_UNSIGNED_OR_ZERO("keep-missing:", keep_missing) + else if(strcmp(opt, "permit-small-holddown:") == 0) + { IS_YES_OR_NO; cfg->permit_small_holddown = (strcmp(val, "yes") == 0); + autr_permit_small_holddown = cfg->permit_small_holddown; } else S_MEMSIZE("key-cache-size:", key_cache_size) else S_POW2("key-cache-slabs:", key_cache_slabs) else S_MEMSIZE("neg-cache-size:", neg_cache_size) @@ -705,6 +711,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_UNS(opt, "add-holddown", add_holddown) else O_UNS(opt, "del-holddown", del_holddown) else O_UNS(opt, "keep-missing", keep_missing) + else O_YNO(opt, "permit-small-holddown", permit_small_holddown) else O_MEM(opt, "key-cache-size", key_cache_size) else O_DEC(opt, "key-cache-slabs", key_cache_slabs) else O_MEM(opt, "neg-cache-size", neg_cache_size) @@ -1243,6 +1250,7 @@ config_apply(struct config_file* config) MINIMAL_RESPONSES = config->minimal_responses; RRSET_ROUNDROBIN = config->rrset_roundrobin; log_set_time_asc(config->log_time_ascii); + autr_permit_small_holddown = config->permit_small_holddown; } void config_lookup_uid(struct config_file* cfg) diff --git a/external/unbound/util/config_file.h b/external/unbound/util/config_file.h index 1c3c31dcf..99b15e06e 100644 --- a/external/unbound/util/config_file.h +++ b/external/unbound/util/config_file.h @@ -269,6 +269,8 @@ struct config_file { unsigned int del_holddown; /** autotrust keep_missing time, in seconds. 0 is forever. */ unsigned int keep_missing; + /** permit small holddown values, allowing 5011 rollover very fast */ + int permit_small_holddown; /** size of the key cache */ size_t key_cache_size; @@ -368,6 +370,8 @@ struct config_file { extern uid_t cfg_uid; /** from cfg username, after daemonise setup performed */ extern gid_t cfg_gid; +/** debug and enable small timeouts */ +extern int autr_permit_small_holddown; /** * Stub config options diff --git a/external/unbound/util/configlexer.c b/external/unbound/util/configlexer.c index 83087781f..3ce3c0de3 100644 --- a/external/unbound/util/configlexer.c +++ b/external/unbound/util/configlexer.c @@ -363,8 +363,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 174 -#define YY_END_OF_BUFFER 175 +#define YY_NUM_RULES 175 +#define YY_END_OF_BUFFER 176 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -372,198 +372,201 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1731] = +static yyconst flex_int16_t yy_accept[1752] = { 0, - 1, 1, 156, 156, 160, 160, 164, 164, 168, 168, - 1, 1, 175, 172, 1, 154, 154, 173, 2, 173, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 156, - 157, 157, 158, 173, 160, 161, 161, 162, 173, 167, - 164, 165, 165, 166, 173, 168, 169, 169, 170, 173, - 171, 155, 2, 159, 173, 171, 172, 0, 1, 2, - 2, 2, 2, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 156, 0, 160, 0, 167, 0, 164, - 168, 0, 171, 0, 2, 2, 171, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 171, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 171, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 70, 172, 172, 172, 172, 172, 6, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 171, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 171, 172, 172, 172, 172, 172, 30, - 172, 172, 172, 172, 172, 172, 172, 172, 135, 172, - 12, 13, 172, 15, 14, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 128, 172, 172, 172, 172, 172, 172, - 3, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 171, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 163, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 33, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 34, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 85, 163, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 84, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 68, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 20, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 31, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 32, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 22, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 148, 172, 172, - 172, 172, 172, 172, 26, 172, 27, 172, 172, 172, - 71, 172, 72, 172, 69, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 5, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 87, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 23, 172, 172, 172, 172, 172, 112, 111, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 35, 172, 172, 172, 172, 172, 172, 172, 172, 74, - 73, 172, 172, 172, 172, 172, 172, 172, 108, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 53, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 57, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 110, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 4, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 105, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 121, 172, 106, 172, 133, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 21, 172, 172, 172, - - 172, 76, 172, 77, 75, 172, 172, 172, 172, 172, - 172, 172, 83, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 107, 172, 172, 172, 172, 132, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 67, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 28, 172, 172, 17, 172, - 172, 172, 16, 172, 92, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 42, - 44, 172, 172, 172, 172, 172, 172, 172, 172, 136, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 78, 172, 172, 172, 172, 172, 172, - 82, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 86, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 127, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 96, 172, 100, 172, 172, 172, 172, 81, 172, - 172, 63, 172, 119, 172, 172, 172, 172, 134, 172, - 172, 172, 172, 172, 172, 172, 141, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 99, 172, - - 172, 172, 172, 172, 45, 46, 172, 29, 52, 101, - 172, 113, 109, 172, 172, 38, 172, 103, 172, 172, - 172, 172, 172, 7, 172, 66, 172, 172, 172, 150, - 172, 118, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 88, - 140, 172, 172, 172, 172, 172, 172, 172, 172, 129, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 102, 172, 37, 39, 172, 172, - 172, 172, 172, 65, 172, 172, 172, 149, 172, 172, - - 172, 172, 123, 18, 19, 172, 172, 172, 172, 172, - 172, 172, 62, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 125, 122, 172, 172, 172, 172, 172, - 172, 172, 172, 36, 172, 172, 172, 172, 172, 172, - 172, 11, 172, 172, 172, 172, 172, 172, 172, 172, - 10, 172, 172, 172, 153, 172, 40, 172, 131, 124, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 95, 94, 172, 172, 126, 120, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 47, 172, 130, 172, 172, - - 172, 172, 172, 172, 41, 172, 172, 172, 89, 91, - 114, 172, 172, 172, 93, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 137, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 24, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 139, 172, - 172, 117, 172, 172, 172, 172, 172, 172, 172, 50, - 172, 25, 172, 9, 172, 172, 172, 172, 115, 54, - 172, 172, 172, 98, 172, 172, 172, 172, 172, 172, - 172, 138, 79, 172, 172, 172, 172, 56, 60, 55, - - 172, 48, 172, 8, 172, 151, 172, 172, 97, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 61, - 59, 172, 49, 172, 172, 116, 172, 172, 90, 43, - 172, 172, 172, 172, 172, 172, 80, 58, 51, 152, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 64, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 104, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 144, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 142, 172, - 145, 146, 172, 172, 172, 172, 172, 143, 147, 0 + 1, 1, 157, 157, 161, 161, 165, 165, 169, 169, + 1, 1, 176, 173, 1, 155, 155, 174, 2, 174, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 157, + 158, 158, 159, 174, 161, 162, 162, 163, 174, 168, + 165, 166, 166, 167, 174, 169, 170, 170, 171, 174, + 172, 156, 2, 160, 174, 172, 173, 0, 1, 2, + 2, 2, 2, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 157, 0, 161, 0, 168, 0, + 165, 169, 0, 172, 0, 2, 2, 172, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 172, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 172, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 70, 173, 173, 173, + 173, 173, 173, 6, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 172, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 172, 173, + 173, 173, 173, 173, 30, 173, 173, 173, 173, 173, + 173, 173, 173, 136, 173, 12, 13, 173, 15, 14, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 129, + 173, 173, 173, 173, 173, 173, 3, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 172, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 164, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 33, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 34, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 85, + 164, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 84, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 68, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 20, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 31, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 32, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 22, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 149, 173, 173, 173, + 173, 173, 173, 26, 173, 27, 173, 173, 173, 71, + 173, 72, 173, 69, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 5, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 87, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 23, + 173, 173, 173, 173, 173, 113, 112, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 35, 173, 173, 173, 173, 173, 173, 173, 173, 74, + 73, 173, 173, 173, 173, 173, 173, 173, 109, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 53, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 57, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 111, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 4, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 105, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 122, 173, 106, 173, 134, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 21, 173, 173, + 173, 173, 76, 173, 77, 75, 173, 173, 173, 173, + 173, 173, 173, 83, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 107, 173, 173, 173, 173, + 133, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 67, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 28, 173, 173, + 17, 173, 173, 173, 16, 173, 92, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 42, 44, 173, 173, 173, 173, 173, 173, 173, + + 173, 137, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 78, 173, 173, 173, 173, + 173, 173, 82, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 86, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 128, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 96, 173, 100, 173, 173, 173, + 173, 81, 173, 173, 63, 173, 120, 173, 173, 173, + 173, 135, 173, 173, 173, 173, 173, 173, 173, 142, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 99, 173, 173, 173, 173, 173, 45, 46, 173, + 29, 52, 101, 173, 114, 110, 173, 173, 38, 173, + 103, 173, 173, 173, 173, 173, 7, 173, 173, 66, + 173, 173, 173, 151, 173, 119, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 88, 141, 173, 173, 173, 173, 173, + 173, 173, 173, 130, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 102, 173, + + 37, 39, 173, 173, 173, 173, 173, 173, 65, 173, + 173, 173, 150, 173, 173, 173, 173, 124, 18, 19, + 173, 173, 173, 173, 173, 173, 173, 62, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 126, 123, + 173, 173, 173, 173, 173, 173, 173, 173, 36, 173, + 173, 173, 173, 173, 173, 173, 11, 173, 173, 173, + 173, 173, 173, 173, 173, 10, 173, 173, 173, 173, + 154, 173, 40, 173, 132, 125, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 95, 94, 173, + 173, 127, 121, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 47, 173, 131, 173, 173, 173, 173, 173, 173, + 173, 41, 173, 173, 173, 89, 91, 115, 173, 173, + 173, 93, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 138, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 24, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 140, 173, 173, 118, + 173, 173, 173, 173, 173, 173, 173, 50, 173, 25, + 173, 9, 173, 173, 173, 173, 173, 116, 54, 173, + + 173, 173, 98, 173, 173, 173, 173, 173, 173, 173, + 139, 79, 173, 173, 173, 173, 56, 60, 55, 173, + 48, 173, 8, 173, 173, 152, 173, 173, 97, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 61, + 59, 173, 49, 173, 108, 173, 117, 173, 173, 90, + 43, 173, 173, 173, 173, 173, 173, 80, 58, 51, + 153, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 64, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 104, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 145, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 143, + 173, 146, 147, 173, 173, 173, 173, 173, 144, 148, + 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -606,784 +609,794 @@ static yyconst flex_int32_t yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1745] = +static yyconst flex_int16_t yy_base[1766] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 2883, 2837, 50, 3431, 3431, 3431, 129, 94, + 87, 108, 2487, 2363, 50, 3475, 3475, 3475, 129, 94, 70, 104, 130, 90, 92, 115, 127, 95, 84, 111, - 137, 148, 50, 150, 161, 158, 154, 167, 182, 2287, - 3431, 3431, 3431, 70, 2251, 3431, 3431, 3431, 42, 1839, - 1625, 3431, 3431, 3431, 199, 1573, 3431, 3431, 3431, 141, - 1198, 3431, 203, 3431, 207, 122, 861, 213, 120, 0, - 224, 0, 0, 103, 147, 140, 206, 171, 170, 208, - 210, 211, 200, 226, 217, 214, 225, 227, 232, 180, - 230, 235, 242, 229, 246, 247, 240, 249, 252, 253, - - 257, 258, 259, 261, 262, 267, 268, 269, 274, 275, - 276, 278, 280, 284, 283, 286, 282, 290, 292, 299, - 303, 293, 296, 812, 318, 609, 321, 447, 327, 359, - 174, 332, 164, 336, 340, 0, 317, 333, 341, 311, - 335, 337, 339, 342, 349, 346, 352, 355, 376, 357, - 345, 360, 49, 359, 361, 367, 368, 372, 370, 369, - 378, 371, 373, 382, 392, 399, 400, 401, 386, 408, - 404, 411, 417, 413, 415, 402, 418, 414, 419, 423, - 416, 425, 429, 426, 432, 435, 433, 302, 437, 443, - 439, 440, 441, 454, 460, 457, 456, 446, 461, 467, - - 466, 475, 463, 464, 473, 474, 477, 483, 488, 486, - 489, 479, 491, 493, 494, 492, 502, 500, 503, 505, - 512, 508, 509, 511, 513, 515, 517, 518, 519, 521, - 525, 531, 524, 523, 529, 530, 539, 541, 542, 547, - 554, 548, 549, 550, 556, 558, 560, 562, 566, 567, - 574, 570, 571, 579, 572, 573, 588, 580, 591, 581, - 583, 585, 593, 595, 599, 615, 601, 610, 604, 605, - 606, 608, 637, 612, 620, 611, 623, 641, 622, 633, - 644, 643, 645, 651, 646, 652, 653, 656, 655, 654, - 660, 661, 662, 663, 674, 673, 667, 685, 681, 682, - - 664, 683, 689, 690, 697, 693, 694, 695, 696, 698, - 701, 704, 708, 3431, 710, 705, 712, 713, 715, 3431, - 716, 717, 718, 719, 724, 723, 735, 721, 733, 738, - 740, 734, 741, 742, 743, 763, 745, 750, 752, 748, - 753, 760, 756, 767, 770, 772, 775, 774, 754, 777, - 778, 780, 783, 788, 791, 794, 795, 796, 797, 801, - 802, 803, 804, 808, 816, 810, 822, 811, 828, 831, - 825, 833, 835, 841, 818, 837, 840, 843, 845, 846, - 847, 853, 850, 852, 856, 857, 854, 860, 870, 862, - 873, 875, 877, 878, 880, 881, 883, 889, 863, 887, - - 893, 894, 886, 888, 898, 905, 906, 914, 907, 915, - 912, 916, 923, 924, 917, 925, 928, 929, 930, 931, - 933, 932, 935, 938, 939, 945, 942, 943, 948, 953, - 955, 957, 958, 959, 962, 963, 967, 965, 966, 975, - 976, 978, 980, 979, 982, 986, 981, 988, 991, 3431, - 1001, 995, 992, 998, 892, 1003, 1005, 1031, 3431, 1007, - 3431, 3431, 1006, 3431, 3431, 1008, 1009, 1010, 1018, 1054, - 1019, 1011, 1012, 1025, 1027, 1032, 1033, 1020, 1041, 1044, - 1046, 1038, 1045, 1048, 1052, 1062, 1049, 1059, 1069, 1071, - 1080, 1081, 1079, 1078, 1083, 1085, 1068, 1087, 1088, 1090, - - 1094, 1101, 1097, 3431, 1098, 1100, 1099, 1104, 1106, 1108, - 3431, 1109, 1110, 1112, 1114, 1117, 1118, 1120, 1122, 1123, - 1124, 1127, 1128, 1125, 1132, 1135, 1145, 1151, 1144, 1137, - 1147, 1150, 1153, 1157, 1165, 1161, 1154, 1162, 1168, 1166, - 1170, 1177, 1167, 1179, 1171, 1173, 1178, 1180, 1201, 1181, - 1184, 1188, 1187, 1189, 1191, 1193, 1211, 1203, 1209, 1216, - 1219, 1208, 1220, 1225, 1228, 1235, 1226, 1227, 1230, 1237, - 1195, 1240, 1239, 1242, 1246, 1251, 1248, 3431, 1258, 1254, - 1255, 1259, 1262, 1260, 1264, 1266, 1263, 1268, 1269, 1270, - 1276, 1283, 3431, 1271, 1277, 1281, 1286, 1287, 1288, 1294, - - 1297, 1304, 3431, 1306, 1307, 1309, 1300, 1302, 1310, 1313, - 1314, 1318, 1319, 1315, 1322, 1325, 1327, 1328, 1329, 1333, - 1332, 1334, 1339, 1341, 1340, 1343, 1342, 1346, 1344, 1351, - 1357, 1361, 1358, 1365, 1362, 1366, 1367, 1372, 1369, 1374, - 1370, 1371, 3431, 125, 1376, 1377, 1375, 1391, 1393, 1394, - 1397, 1384, 1400, 1401, 1403, 1385, 1405, 1407, 1409, 1410, - 1411, 1412, 1415, 1419, 1422, 1413, 1430, 1421, 1425, 1431, - 1423, 1435, 1437, 1378, 1438, 1443, 1444, 1441, 1445, 1446, - 1449, 1450, 1454, 1451, 1452, 1453, 3431, 1469, 1461, 1455, - 1467, 1471, 1478, 1474, 1479, 1481, 1482, 1488, 1484, 1490, - - 1492, 1498, 1496, 1501, 1486, 1489, 1508, 1509, 1510, 1512, - 1511, 1502, 3431, 1514, 1517, 1519, 1531, 1521, 1522, 1528, - 1524, 1533, 1523, 1540, 1534, 1543, 3431, 1544, 1545, 1546, - 1553, 1554, 1556, 1557, 1559, 1560, 1561, 1563, 1564, 1567, - 1570, 1572, 1575, 3431, 1581, 1584, 1585, 1591, 1583, 1577, - 1587, 1594, 1589, 1595, 1602, 1599, 1600, 1603, 1604, 1605, - 1601, 1607, 1608, 1611, 1610, 1612, 3431, 1628, 1625, 1629, - 1636, 1630, 1640, 1639, 1631, 1641, 1624, 1645, 1646, 1647, - 1648, 1649, 1652, 1654, 1655, 1656, 1657, 1658, 1659, 1667, - 1661, 1662, 1675, 1676, 1679, 1678, 1681, 1687, 1688, 1689, - - 3431, 1693, 1694, 1695, 1696, 1697, 1703, 1705, 1701, 1706, - 1707, 1708, 1709, 1718, 1711, 1717, 1719, 1721, 1714, 1722, - 1724, 1731, 1729, 1737, 1735, 1742, 1744, 3431, 1745, 1753, - 1749, 1755, 1747, 1761, 3431, 1757, 3431, 1764, 1770, 1773, - 3431, 1777, 3431, 1779, 3431, 1723, 1780, 1772, 1758, 1760, - 1784, 1782, 1786, 1788, 1790, 1792, 1793, 1762, 1794, 1795, - 3431, 1798, 1796, 1801, 1806, 1799, 1803, 1809, 1805, 1815, - 1807, 1826, 1820, 1827, 1824, 1829, 1830, 3431, 1831, 1832, - 1834, 1837, 1841, 1848, 1845, 1842, 1849, 1835, 1853, 1863, - 1861, 1852, 1864, 1865, 1866, 1872, 1868, 1869, 1876, 1873, - - 1877, 1879, 1880, 1882, 1881, 1884, 1892, 1886, 1888, 1889, - 3431, 1898, 1890, 1894, 1902, 1904, 3431, 3431, 1913, 1915, - 1916, 1907, 1917, 1909, 1922, 1924, 1930, 1936, 1919, 1927, - 1929, 1932, 1937, 1938, 1941, 1943, 1944, 1950, 1945, 1948, - 3431, 1958, 1952, 1960, 1961, 1963, 1969, 1968, 1971, 3431, - 3431, 1976, 1972, 1973, 1975, 1982, 1979, 1978, 3431, 1986, - 1988, 1993, 1997, 1999, 2000, 1987, 1990, 2008, 1989, 2011, - 2001, 2012, 2014, 2020, 2016, 2017, 2019, 2022, 2023, 2030, - 3431, 2027, 2032, 2034, 2037, 2038, 2039, 2040, 2043, 2041, - 2044, 2045, 2053, 2054, 2056, 2057, 2058, 2062, 2059, 2066, - - 2068, 2069, 2075, 2071, 3431, 2085, 2072, 2086, 2082, 2084, - 2087, 2094, 2091, 2092, 2093, 2095, 2097, 2096, 2099, 2100, - 2101, 2108, 3431, 2109, 2120, 2106, 2116, 2122, 2114, 2124, - 2127, 2129, 3431, 2130, 2137, 2134, 2136, 2139, 2141, 2133, - 2144, 2147, 2148, 2149, 2150, 2155, 2157, 2152, 2158, 2160, - 2161, 2163, 2168, 2175, 2165, 2169, 2182, 2181, 2190, 2192, - 2178, 2188, 2196, 2193, 2194, 2195, 2197, 2206, 2199, 2208, - 2202, 3431, 2209, 2210, 2216, 2218, 2213, 2219, 2223, 2220, - 2227, 3431, 2224, 3431, 2230, 3431, 2231, 2235, 2232, 2237, - 2238, 2239, 2240, 2245, 2253, 2241, 3431, 2259, 2247, 2254, - - 2257, 3431, 2262, 3431, 3431, 2249, 2267, 2273, 2269, 2274, - 2270, 2277, 3431, 2278, 2279, 2282, 2280, 2284, 2288, 2290, - 2291, 2292, 2293, 2294, 3431, 2296, 2295, 2298, 2306, 3431, - 2304, 2309, 2310, 2312, 2319, 2320, 2322, 2311, 2323, 2331, - 2328, 3431, 2330, 2324, 2335, 2332, 2337, 2344, 2340, 2346, - 2341, 2342, 2350, 2355, 2356, 3431, 2358, 2360, 3431, 2359, - 2361, 2362, 3431, 2367, 3431, 2369, 2370, 2366, 2371, 2377, - 2374, 2387, 2379, 2384, 2389, 2382, 2393, 2396, 2390, 3431, - 3431, 2400, 2397, 2402, 2407, 2403, 2405, 2409, 2412, 3431, - 2413, 2416, 2417, 2418, 2419, 2425, 2420, 2427, 2428, 2422, - - 2429, 2430, 2431, 3431, 2435, 2439, 2441, 2444, 2442, 2445, - 3431, 2447, 2448, 2449, 2453, 2455, 2469, 2472, 2474, 2464, - 2476, 2479, 2481, 2482, 2484, 2486, 2487, 3431, 2452, 2489, - 2490, 2492, 2493, 2494, 2495, 2496, 2503, 2499, 2505, 3431, - 2507, 2508, 2510, 2516, 2513, 2520, 2517, 2521, 2524, 2525, - 2526, 2527, 2528, 2529, 2534, 2536, 2535, 2538, 2540, 2553, - 2542, 3431, 2545, 3431, 2549, 2555, 2562, 2559, 3431, 2561, - 2563, 3431, 2566, 3431, 2564, 2569, 2570, 2580, 3431, 2582, - 2571, 2583, 2575, 2577, 2573, 2588, 3431, 2593, 2595, 2600, - 2596, 2586, 2594, 2603, 2602, 2604, 2610, 2611, 3431, 2612, - - 2613, 2619, 2615, 2459, 3431, 3431, 2620, 3431, 3431, 3431, - 2625, 3431, 3431, 2626, 2630, 3431, 2633, 3431, 2639, 2635, - 2627, 2616, 2637, 3431, 2641, 3431, 2649, 2645, 2646, 3431, - 2648, 3431, 2650, 2651, 2652, 2654, 2657, 2665, 2668, 2658, - 2660, 2662, 2669, 2671, 2672, 2673, 2676, 2679, 2680, 2682, - 2684, 2685, 2686, 2687, 2689, 2690, 2691, 2699, 2704, 3431, - 3431, 2692, 2701, 2694, 2707, 2708, 2710, 2713, 2714, 3431, - 2721, 2723, 2718, 2722, 2724, 2726, 2729, 2728, 2734, 2740, - 2736, 2738, 2739, 2741, 3431, 2743, 3431, 3431, 2746, 2748, - 2750, 2752, 2755, 3431, 2756, 2764, 2757, 3431, 2769, 2759, - - 2772, 2775, 3431, 3431, 3431, 2776, 2765, 2779, 2780, 2781, - 2782, 2783, 3431, 2784, 2789, 2790, 2792, 2797, 2803, 2798, - 2800, 2809, 2811, 3431, 3431, 2817, 2814, 2815, 2804, 2806, - 2816, 2822, 2819, 3431, 2823, 2825, 2828, 2829, 2830, 2832, - 2835, 3431, 2834, 2836, 2840, 2846, 2842, 2848, 2849, 2850, - 3431, 2852, 2854, 2858, 3431, 2862, 3431, 2865, 3431, 3431, - 2860, 2868, 2871, 2876, 2878, 2882, 2866, 2872, 2888, 2890, - 2887, 3431, 3431, 2879, 2897, 3431, 3431, 2893, 2894, 2895, - 2896, 2898, 2901, 2902, 2906, 2903, 2904, 2907, 2909, 2915, - 2917, 2918, 2919, 2923, 2926, 3431, 2924, 3431, 2929, 2931, - - 2932, 2933, 2935, 2940, 3431, 2941, 2939, 2934, 3431, 3431, - 3431, 2952, 2953, 2955, 3431, 2956, 2958, 2945, 2960, 2963, - 2962, 2971, 2969, 2973, 3431, 2970, 2975, 2977, 2974, 2979, - 2982, 2983, 2984, 2986, 2985, 2996, 2987, 3000, 3003, 3431, - 3005, 2993, 3009, 3001, 2997, 3017, 3021, 3007, 3012, 3014, - 3023, 3018, 3025, 3027, 3028, 3036, 3033, 3038, 3431, 3040, - 3029, 3431, 3041, 3035, 3052, 3043, 3054, 3056, 3058, 3431, - 3060, 3431, 3061, 3431, 3065, 3066, 3068, 3069, 3431, 3431, - 3070, 3072, 3076, 3431, 3077, 3073, 3079, 3080, 3083, 3084, - 3086, 3431, 3431, 3087, 3089, 3093, 3090, 3431, 3431, 3431, - - 3099, 3431, 3102, 3431, 3095, 3431, 3104, 3108, 3431, 3110, - 3112, 3114, 3115, 3116, 3117, 3119, 3120, 3118, 3122, 3431, - 3431, 3127, 3431, 3130, 3133, 3431, 3134, 3135, 3431, 3431, - 3144, 3141, 3142, 3143, 3145, 3148, 3431, 3431, 3431, 3431, - 3149, 3150, 3152, 3154, 3151, 3156, 3157, 3159, 3161, 3158, - 3166, 3175, 3168, 3176, 3183, 3181, 3431, 3177, 3179, 3189, - 3190, 3186, 3188, 3187, 3194, 3196, 3197, 3199, 3202, 3204, - 3211, 3203, 3213, 3218, 3219, 3220, 3207, 3232, 3229, 3230, - 3217, 3231, 3238, 3234, 3235, 3431, 3239, 3240, 3241, 3242, - 3245, 3247, 3243, 3256, 3263, 3249, 3251, 3261, 3266, 3267, - - 3268, 3269, 3271, 3270, 3431, 3272, 3273, 3279, 3281, 3282, - 3284, 3285, 3286, 3291, 3292, 3294, 3296, 3301, 3431, 3297, - 3431, 3431, 3305, 3306, 3307, 3312, 3314, 3431, 3431, 3431, - 3339, 3346, 3353, 3360, 3367, 94, 3374, 3381, 3388, 3395, - 3402, 3409, 3416, 3423 + 137, 148, 50, 170, 150, 157, 160, 140, 166, 2236, + 3475, 3475, 3475, 70, 2188, 3475, 3475, 3475, 42, 1913, + 1777, 3475, 3475, 3475, 192, 1681, 3475, 3475, 3475, 141, + 1627, 3475, 198, 3475, 202, 122, 1553, 208, 120, 0, + 219, 0, 0, 103, 201, 203, 206, 164, 212, 204, + 214, 125, 215, 225, 217, 221, 224, 227, 229, 230, + 236, 237, 244, 228, 246, 249, 248, 253, 254, 173, + + 255, 259, 260, 261, 262, 265, 264, 270, 263, 274, + 276, 277, 278, 284, 290, 286, 287, 291, 158, 293, + 299, 295, 303, 305, 1394, 315, 1200, 319, 1040, 327, + 776, 615, 320, 539, 335, 339, 0, 317, 332, 340, + 334, 296, 325, 336, 338, 346, 343, 350, 354, 375, + 355, 342, 357, 49, 359, 360, 353, 366, 368, 364, + 371, 372, 370, 369, 391, 377, 393, 402, 394, 387, + 405, 401, 409, 412, 410, 398, 413, 414, 415, 416, + 418, 420, 422, 423, 424, 427, 428, 435, 431, 439, + 433, 450, 436, 432, 452, 459, 461, 460, 457, 448, + + 458, 468, 465, 476, 472, 464, 473, 474, 475, 483, + 488, 489, 491, 480, 486, 494, 498, 495, 505, 493, + 508, 506, 515, 503, 512, 513, 514, 516, 518, 520, + 519, 521, 531, 522, 528, 529, 532, 535, 538, 542, + 545, 544, 550, 552, 555, 557, 558, 560, 563, 561, + 564, 565, 571, 578, 574, 575, 581, 576, 582, 583, + 593, 595, 585, 587, 589, 596, 599, 597, 619, 605, + 608, 609, 613, 612, 616, 628, 614, 624, 625, 626, + 647, 629, 639, 648, 645, 646, 657, 650, 652, 656, + 659, 658, 662, 663, 664, 665, 667, 675, 679, 677, + + 689, 682, 690, 691, 693, 695, 696, 704, 685, 700, + 701, 703, 710, 712, 702, 714, 3475, 718, 705, 716, + 720, 721, 722, 3475, 725, 727, 728, 730, 731, 732, + 738, 735, 737, 743, 744, 746, 749, 750, 751, 771, + 755, 752, 762, 760, 756, 773, 758, 780, 769, 778, + 785, 782, 786, 788, 789, 791, 792, 795, 809, 794, + 796, 802, 803, 813, 805, 816, 818, 819, 820, 822, + 830, 824, 827, 832, 840, 843, 845, 851, 833, 847, + 849, 855, 856, 857, 839, 863, 861, 864, 865, 869, + 867, 872, 876, 874, 879, 880, 887, 875, 889, 881, + + 836, 895, 893, 898, 900, 891, 902, 904, 910, 907, + 908, 909, 922, 913, 924, 916, 927, 933, 669, 915, + 929, 923, 935, 936, 937, 938, 939, 943, 944, 946, + 952, 940, 949, 956, 954, 963, 951, 964, 966, 969, + 970, 971, 972, 980, 973, 974, 984, 982, 987, 986, + 990, 988, 997, 995, 3475, 1005, 999, 1001, 1002, 1007, + 1008, 1010, 1036, 3475, 1012, 3475, 3475, 1011, 3475, 3475, + 1014, 1016, 1017, 1024, 1059, 1025, 1029, 1018, 1031, 1033, + 1037, 1038, 1042, 1049, 1051, 1062, 1046, 1052, 1056, 1068, + 1069, 1064, 1073, 1080, 1082, 1088, 1089, 1087, 1086, 1093, + + 1094, 1095, 1098, 1097, 1096, 1100, 1106, 1110, 1107, 3475, + 1108, 1109, 1111, 1118, 1116, 1121, 3475, 1053, 1122, 1120, + 1123, 1128, 1129, 1130, 1133, 1134, 1135, 1136, 1142, 1138, + 1140, 1147, 1151, 1153, 1155, 1157, 1158, 1162, 1163, 1164, + 1171, 1169, 1168, 1174, 1178, 1175, 1180, 1182, 1177, 1185, + 1183, 1188, 1190, 1191, 1213, 1193, 1194, 1196, 1199, 1198, + 1201, 1205, 1206, 1208, 1220, 1226, 1227, 1207, 1230, 1232, + 1242, 1239, 1236, 1246, 1243, 1249, 1252, 1250, 1254, 1256, + 1258, 1260, 1263, 3475, 1269, 1268, 1266, 1273, 1274, 1272, + 1217, 1275, 1276, 1278, 1280, 1282, 1281, 1292, 3475, 1288, + + 1293, 1289, 1294, 1297, 1298, 1301, 1305, 1313, 1309, 3475, + 1317, 1314, 1320, 1319, 1321, 1324, 1325, 1326, 1327, 1329, + 1331, 1330, 1335, 1343, 1340, 1333, 1345, 1338, 1350, 1352, + 1353, 1354, 1355, 1357, 1358, 1362, 1364, 1368, 1370, 1367, + 1378, 1371, 1374, 1379, 1384, 1381, 1383, 1385, 1386, 3475, + 442, 1387, 1393, 1389, 1400, 1402, 1398, 1405, 1406, 1407, + 1412, 1413, 1396, 1414, 1416, 1419, 1422, 1424, 1423, 1425, + 1427, 1431, 1433, 1434, 1436, 1439, 1441, 1442, 1444, 1445, + 1451, 1450, 1452, 1453, 1456, 1457, 1458, 1460, 1462, 1465, + 1470, 1466, 1473, 3475, 1479, 1475, 1476, 1472, 1478, 1495, + + 1487, 1496, 1488, 1491, 1498, 1502, 1499, 1505, 1507, 1509, + 1511, 1512, 1513, 1519, 1520, 1517, 1521, 1523, 1527, 1524, + 3475, 1529, 1530, 1534, 1543, 1536, 1540, 1546, 1544, 1547, + 1548, 1556, 1549, 1561, 3475, 1563, 1557, 1551, 1568, 1569, + 1572, 1574, 1576, 1577, 1578, 1580, 1581, 1584, 1582, 1587, + 1591, 3475, 1595, 1599, 1596, 1607, 1603, 1592, 1604, 1606, + 1608, 1609, 1618, 1610, 1614, 1617, 1619, 1620, 1616, 1622, + 1623, 1626, 1625, 1633, 3475, 1640, 1642, 1644, 1643, 1646, + 1654, 1653, 1650, 1655, 1656, 1658, 1659, 1662, 1663, 1665, + 1666, 1667, 1671, 1672, 1673, 1670, 1690, 1668, 1691, 1679, + + 1692, 1678, 1694, 1677, 1699, 1707, 1708, 1705, 3475, 1710, + 1711, 1712, 1713, 1714, 1720, 1722, 1716, 1718, 1723, 1724, + 1725, 1739, 1726, 1728, 1732, 1736, 1730, 1738, 1741, 1752, + 1742, 1757, 1746, 1748, 1758, 1763, 3475, 1740, 1771, 1768, + 1772, 1764, 1779, 3475, 1775, 3475, 1778, 1780, 1790, 3475, + 1787, 3475, 1789, 3475, 1791, 1795, 1777, 1797, 1798, 1799, + 1800, 1802, 1803, 1805, 1807, 1808, 1809, 1811, 1816, 3475, + 1810, 1817, 1824, 1827, 1814, 1818, 1826, 1820, 1837, 1836, + 1847, 1833, 1848, 1844, 1846, 1849, 3475, 1850, 1851, 1854, + 1856, 1857, 1864, 1862, 1861, 1868, 1865, 1869, 1882, 1878, + + 1871, 1880, 1881, 1883, 1891, 1884, 1887, 1894, 1895, 1885, + 1896, 1897, 1898, 1902, 1905, 1909, 1906, 1908, 1910, 3475, + 1915, 1919, 1922, 1921, 1911, 3475, 3475, 1924, 1932, 1936, + 1937, 1938, 1925, 1939, 1940, 1950, 1943, 1946, 1952, 1954, + 1955, 1956, 1957, 1958, 1959, 1961, 1962, 1963, 1971, 1970, + 3475, 1979, 1973, 1986, 1984, 1975, 1992, 1985, 1993, 3475, + 3475, 1989, 1994, 1999, 2000, 2006, 2004, 2003, 3475, 2005, + 2008, 2009, 2010, 2011, 2013, 2018, 2023, 2027, 2028, 2024, + 2032, 2033, 2029, 2035, 2034, 2036, 2037, 2040, 2047, 2052, + 3475, 2049, 2056, 2053, 2057, 2059, 2060, 2061, 2064, 2066, + + 2063, 2067, 2071, 2078, 2074, 2077, 2079, 2081, 2084, 2086, + 2090, 2087, 2097, 2098, 3475, 2105, 2093, 2107, 2094, 2109, + 2112, 2115, 2114, 2103, 2116, 2117, 2106, 2118, 2122, 2124, + 2129, 2125, 3475, 2131, 2135, 2132, 2141, 2142, 2138, 2143, + 2146, 2149, 3475, 2152, 2158, 2154, 2155, 2161, 2160, 2163, + 2166, 2167, 2169, 2170, 2171, 2176, 2177, 2179, 2180, 2182, + 2184, 2183, 2186, 2193, 2196, 2191, 2200, 2203, 2206, 2216, + 2213, 2201, 2207, 2222, 2218, 2220, 2221, 2210, 2228, 2225, + 2231, 2229, 3475, 2234, 2238, 2243, 2245, 2232, 2240, 2248, + 2249, 2250, 3475, 2251, 3475, 2254, 3475, 2257, 2261, 2258, + + 2262, 2263, 2264, 2268, 2265, 2279, 2273, 3475, 2276, 2267, + 2275, 2280, 3475, 2291, 3475, 3475, 2282, 2286, 2298, 2292, + 2294, 2299, 2303, 3475, 2304, 2296, 2305, 2308, 2307, 2310, + 2312, 2313, 2314, 2315, 2318, 3475, 2321, 2330, 2319, 2327, + 3475, 2320, 2340, 2323, 2341, 2331, 2342, 2343, 2344, 2345, + 2355, 2351, 2352, 3475, 2353, 2354, 2358, 2359, 2361, 2369, + 2366, 2373, 2367, 2376, 2378, 2377, 2370, 3475, 2384, 2387, + 3475, 2383, 2390, 2391, 3475, 2393, 3475, 2394, 2397, 2395, + 2402, 2404, 2405, 2409, 2398, 2415, 2401, 2413, 2422, 2416, + 2418, 3475, 3475, 2428, 2423, 2430, 2433, 2425, 2431, 2435, + + 2442, 3475, 2436, 2439, 2443, 2445, 2446, 2447, 2448, 2453, + 2450, 2455, 2457, 2456, 2458, 3475, 2463, 2459, 2468, 2467, + 2469, 2471, 3475, 2473, 2475, 2476, 2479, 2484, 2490, 2495, + 2499, 2496, 2501, 2503, 2505, 2506, 2508, 2511, 2512, 3475, + 2480, 2514, 2515, 2517, 2518, 2520, 2519, 2523, 2528, 2529, + 2521, 2533, 3475, 2530, 2535, 2537, 2543, 2538, 2546, 2547, + 2548, 2551, 2552, 2554, 2555, 2556, 2558, 2561, 2562, 2563, + 2565, 2567, 2575, 2578, 3475, 2568, 3475, 2576, 2583, 2591, + 2589, 3475, 2587, 2592, 3475, 2593, 3475, 2594, 2595, 2596, + 2604, 3475, 2607, 2599, 2608, 2610, 2611, 2612, 2614, 3475, + + 2617, 2620, 2619, 2624, 2626, 2627, 2628, 2630, 2633, 2639, + 2636, 3475, 2635, 2640, 2648, 2644, 2647, 3475, 3475, 2653, + 3475, 3475, 3475, 2656, 3475, 3475, 2657, 2659, 3475, 2661, + 3475, 2668, 2664, 2666, 2667, 2669, 3475, 2671, 2673, 3475, + 2675, 2676, 2677, 3475, 2679, 3475, 2680, 2684, 2681, 2688, + 2691, 2697, 2699, 2700, 2687, 2701, 2702, 2703, 2704, 2706, + 2708, 2710, 2711, 2716, 2717, 2718, 2720, 2721, 2722, 2723, + 2724, 2732, 2741, 3475, 3475, 2725, 2733, 2727, 2735, 2738, + 2743, 2746, 2752, 3475, 2757, 2750, 2754, 2758, 2748, 2760, + 2765, 2767, 2769, 2775, 2762, 2772, 2771, 2774, 3475, 2776, + + 3475, 3475, 2777, 2779, 2784, 2785, 2788, 2789, 3475, 2792, + 2799, 2791, 3475, 2802, 2803, 2808, 2810, 3475, 3475, 3475, + 2811, 2805, 2814, 2813, 2815, 2816, 2817, 3475, 2819, 2821, + 2824, 2828, 2831, 2833, 2841, 2837, 2839, 2845, 3475, 3475, + 2851, 2848, 2849, 2847, 2840, 2850, 2857, 2853, 3475, 2860, + 2859, 2861, 2864, 2866, 2867, 2869, 3475, 2870, 2871, 2876, + 2880, 2872, 2883, 2884, 2885, 3475, 2887, 2886, 2893, 2888, + 3475, 2900, 3475, 2905, 3475, 3475, 2894, 2906, 2908, 2910, + 2913, 2916, 2902, 2917, 2923, 2922, 2924, 3475, 3475, 2919, + 2932, 3475, 3475, 2926, 2929, 2930, 2933, 2935, 2937, 2938, + + 2939, 2940, 2941, 2945, 2950, 2951, 2952, 2954, 2955, 2958, + 2961, 3475, 2960, 3475, 2965, 2968, 2969, 2962, 2970, 2974, + 2975, 3475, 2977, 2976, 2979, 3475, 3475, 3475, 2989, 2990, + 2992, 3475, 2993, 2996, 2982, 2995, 3003, 2997, 3011, 2999, + 3010, 3475, 3000, 3007, 3013, 3014, 3017, 3020, 3021, 3023, + 3025, 3027, 3029, 3032, 3034, 3037, 3475, 3039, 3035, 3041, + 3043, 3045, 3046, 3048, 3050, 3052, 3054, 3056, 3058, 3060, + 3061, 3062, 3063, 3070, 3069, 3074, 3475, 3078, 3075, 3475, + 3079, 3083, 3080, 3089, 3091, 3093, 3095, 3475, 3099, 3475, + 3101, 3475, 3104, 3096, 3105, 3107, 3108, 3475, 3475, 3109, + + 3112, 3115, 3475, 3116, 3118, 3119, 3122, 3123, 3124, 3126, + 3475, 3475, 3127, 3129, 3133, 3135, 3475, 3475, 3475, 3143, + 3475, 3144, 3475, 3150, 3146, 3475, 3152, 3153, 3475, 3136, + 3156, 3158, 3134, 3161, 3162, 3164, 3165, 3163, 3167, 3475, + 3475, 3172, 3475, 3174, 3475, 3178, 3475, 3175, 3179, 3475, + 3475, 3186, 3184, 3185, 3188, 3191, 3189, 3475, 3475, 3475, + 3475, 3192, 3193, 3195, 3197, 3194, 3199, 3200, 3202, 3204, + 3201, 3206, 3214, 3218, 3220, 3226, 3222, 3475, 3223, 3227, + 3229, 3233, 3230, 3232, 3231, 3234, 3237, 3239, 3240, 3241, + 3242, 3249, 3251, 3257, 3259, 3261, 3262, 3255, 3268, 3272, + + 3269, 3265, 3273, 3280, 3277, 3278, 3475, 3281, 3279, 3282, + 3287, 3288, 3285, 3283, 3293, 3303, 3305, 3299, 3295, 3308, + 3309, 3311, 3312, 3315, 3313, 3475, 3317, 3319, 3321, 3323, + 3325, 3327, 3328, 3329, 3334, 3336, 3338, 3345, 3341, 3475, + 3349, 3475, 3475, 3350, 3339, 3351, 3353, 3357, 3475, 3475, + 3475, 3383, 3390, 3397, 3404, 3411, 94, 3418, 3425, 3432, + 3439, 3446, 3453, 3460, 3467 } ; -static yyconst flex_int16_t yy_def[1745] = +static yyconst flex_int16_t yy_def[1766] = { 0, - 1730, 1, 1731, 1731, 1732, 1732, 1733, 1733, 1734, 1734, - 1735, 1735, 1730, 1736, 1730, 1730, 1730, 1730, 1737, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1738, - 1730, 1730, 1730, 1738, 1739, 1730, 1730, 1730, 1739, 1740, - 1730, 1730, 1730, 1730, 1740, 1741, 1730, 1730, 1730, 1741, - 1742, 1730, 1743, 1730, 1742, 1742, 1736, 1736, 1730, 1744, - 1737, 1744, 1737, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1738, 1738, 1739, 1739, 1740, 1740, 1730, - 1741, 1741, 1742, 1742, 1743, 1743, 1742, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1742, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1742, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1742, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1742, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, - 1730, 1730, 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1742, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1742, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, - 1736, 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1736, 1736, - 1730, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1730, 1730, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - - 1736, 1730, 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1730, 1736, - 1736, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1730, 1736, - 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1730, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, - - 1736, 1736, 1736, 1736, 1730, 1730, 1736, 1730, 1730, 1730, - 1736, 1730, 1730, 1736, 1736, 1730, 1736, 1730, 1736, 1736, - 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1730, - 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1730, 1736, 1730, 1730, 1736, 1736, - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1730, 1736, 1736, - - 1736, 1736, 1730, 1730, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1730, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1730, 1736, 1736, 1730, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1736, - - 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1730, 1730, - 1730, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, - 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1730, 1730, - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1730, 1730, 1730, - - 1736, 1730, 1736, 1730, 1736, 1730, 1736, 1736, 1730, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1730, 1736, 1730, 1736, 1736, 1730, 1736, 1736, 1730, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1730, 1730, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, - 1730, 1730, 1736, 1736, 1736, 1736, 1736, 1730, 1730, 0, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730 + 1751, 1, 1752, 1752, 1753, 1753, 1754, 1754, 1755, 1755, + 1756, 1756, 1751, 1757, 1751, 1751, 1751, 1751, 1758, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1759, + 1751, 1751, 1751, 1759, 1760, 1751, 1751, 1751, 1760, 1761, + 1751, 1751, 1751, 1751, 1761, 1762, 1751, 1751, 1751, 1762, + 1763, 1751, 1764, 1751, 1763, 1763, 1757, 1757, 1751, 1765, + 1758, 1765, 1758, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1759, 1759, 1760, 1760, 1761, 1761, + 1751, 1762, 1762, 1763, 1763, 1764, 1764, 1763, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1763, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1763, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1763, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1763, 1757, + 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1751, 1751, 1757, 1751, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1763, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1763, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1751, 1757, 1757, 1757, 1751, + 1757, 1751, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1751, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1751, 1757, 1751, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, + 1757, 1757, 1751, 1757, 1751, 1751, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, + 1751, 1757, 1757, 1757, 1751, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1751, 1757, 1751, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1751, 1757, 1751, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1751, 1751, 1757, + 1751, 1751, 1751, 1757, 1751, 1751, 1757, 1757, 1751, 1757, + 1751, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1751, + 1757, 1757, 1757, 1751, 1757, 1751, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1751, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + + 1751, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1751, 1751, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, + 1751, 1757, 1751, 1757, 1751, 1751, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1751, 1757, + 1757, 1751, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1751, 1751, 1751, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1751, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1751, 1751, 1757, + + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1751, 1751, 1757, 1757, 1757, 1757, 1751, 1751, 1751, 1757, + 1751, 1757, 1751, 1757, 1757, 1751, 1757, 1757, 1751, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1751, 1757, 1751, 1757, 1751, 1757, 1751, 1757, 1757, 1751, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1751, 1751, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1751, 1751, 1757, 1757, 1757, 1757, 1757, 1751, 1751, + 0, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751 } ; -static yyconst flex_int16_t yy_nxt[3471] = +static yyconst flex_int16_t yy_nxt[3515] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, 26, 27, 28, 29, 30, 31, 32, 33, 34, 14, 35, 36, 37, 38, 39, 14, 14, 14, 14, 41, - 42, 43, 41, 42, 43, 126, 46, 47, 126, 44, + 42, 43, 41, 42, 43, 127, 46, 47, 127, 44, 48, 69, 44, 46, 47, 70, 49, 48, 57, 58, 59, 68, 68, 49, 51, 52, 53, 54, 60, 18, - 57, 58, 59, 124, 124, 55, 51, 52, 53, 54, - 60, 18, 68, 104, 219, 74, 75, 55, 15, 16, + 57, 58, 59, 125, 125, 55, 51, 52, 53, 54, + 60, 18, 68, 104, 221, 74, 75, 55, 15, 16, 17, 62, 63, 64, 67, 67, 68, 67, 67, 65, 67, 95, 68, 76, 68, 67, 85, 68, 66, 15, - 16, 17, 62, 63, 64, 68, 68, 77, 138, 87, + 16, 17, 62, 63, 64, 68, 68, 77, 139, 87, 65, 69, 94, 68, 78, 70, 86, 68, 88, 66, - 72, 79, 72, 72, 134, 72, 89, 134, 96, 68, - 72, 73, 68, 90, 131, 131, 91, 80, 137, 68, - 97, 81, 68, 92, 82, 93, 83, 84, 98, 68, - 68, 101, 68, 139, 99, 102, 68, 117, 100, 118, - 68, 105, 140, 68, 109, 113, 134, 106, 110, 68, - 107, 103, 68, 68, 119, 114, 132, 108, 111, 115, - 116, 112, 68, 120, 68, 122, 144, 156, 121, 123, - - 128, 143, 128, 128, 72, 128, 72, 72, 133, 72, - 133, 133, 68, 133, 67, 136, 67, 67, 68, 67, - 68, 141, 68, 68, 67, 72, 68, 72, 72, 68, - 72, 148, 145, 149, 142, 72, 73, 68, 68, 68, - 146, 68, 68, 151, 68, 147, 152, 68, 155, 161, - 158, 150, 68, 159, 68, 153, 157, 154, 68, 68, - 162, 68, 165, 163, 68, 68, 166, 160, 169, 68, - 68, 68, 170, 68, 68, 168, 167, 172, 175, 68, - 68, 68, 171, 164, 173, 177, 68, 68, 68, 178, - 68, 185, 68, 174, 68, 68, 68, 176, 68, 187, - - 181, 179, 68, 182, 68, 68, 180, 186, 68, 183, - 184, 68, 189, 192, 68, 68, 258, 195, 190, 188, - 194, 124, 124, 68, 126, 191, 196, 126, 128, 134, - 128, 128, 197, 128, 193, 131, 131, 133, 200, 133, - 133, 72, 133, 72, 72, 68, 72, 68, 199, 68, - 198, 68, 136, 68, 68, 201, 205, 68, 68, 208, - 130, 68, 206, 207, 68, 209, 203, 68, 202, 68, - 216, 68, 68, 68, 204, 220, 217, 218, 221, 68, - 68, 68, 68, 68, 68, 68, 227, 210, 68, 232, - 68, 228, 211, 222, 68, 223, 224, 212, 68, 225, - - 226, 231, 213, 230, 68, 233, 234, 236, 214, 215, - 229, 68, 68, 68, 68, 239, 68, 235, 241, 238, - 68, 240, 237, 68, 242, 68, 68, 68, 68, 68, - 68, 68, 243, 244, 245, 68, 246, 68, 68, 248, - 249, 68, 256, 250, 68, 68, 252, 68, 247, 68, - 260, 68, 68, 68, 263, 68, 259, 251, 68, 129, - 253, 264, 254, 255, 262, 257, 68, 266, 134, 68, - 261, 267, 68, 68, 272, 68, 68, 270, 68, 68, - 269, 271, 274, 273, 265, 68, 68, 68, 268, 68, - 275, 68, 279, 277, 276, 68, 280, 281, 68, 282, - - 68, 68, 283, 68, 68, 68, 68, 284, 286, 289, - 287, 278, 68, 288, 68, 68, 291, 68, 285, 293, - 68, 68, 292, 68, 68, 68, 290, 68, 298, 68, - 68, 68, 303, 68, 300, 68, 68, 68, 297, 295, - 294, 68, 68, 68, 296, 302, 304, 299, 305, 301, - 308, 68, 306, 68, 68, 307, 312, 313, 314, 68, - 68, 68, 68, 309, 310, 311, 68, 320, 68, 315, - 68, 319, 68, 322, 68, 321, 318, 316, 68, 68, - 317, 326, 68, 68, 68, 68, 68, 336, 328, 323, - 324, 68, 68, 68, 329, 68, 330, 68, 331, 325, - - 68, 332, 327, 68, 333, 68, 334, 68, 337, 335, - 342, 68, 340, 68, 338, 339, 134, 68, 68, 341, - 68, 127, 68, 68, 68, 344, 343, 68, 352, 345, - 346, 353, 68, 356, 68, 68, 355, 354, 361, 347, - 357, 348, 349, 350, 358, 68, 351, 359, 363, 68, - 362, 366, 360, 68, 364, 68, 68, 68, 68, 365, - 369, 370, 368, 68, 68, 68, 68, 68, 68, 375, - 376, 367, 68, 68, 68, 68, 68, 388, 371, 68, - 372, 373, 374, 379, 381, 68, 68, 378, 384, 383, - 377, 382, 385, 68, 68, 68, 380, 68, 387, 386, - - 389, 68, 68, 391, 392, 68, 68, 68, 68, 68, - 68, 397, 396, 68, 390, 394, 68, 68, 398, 395, - 68, 400, 68, 401, 68, 68, 393, 68, 68, 68, - 68, 68, 403, 68, 404, 68, 68, 399, 402, 405, - 409, 410, 412, 411, 408, 68, 68, 68, 406, 407, - 68, 413, 68, 68, 68, 68, 416, 68, 418, 428, - 68, 417, 68, 430, 68, 68, 68, 414, 68, 429, - 419, 415, 68, 432, 420, 68, 421, 426, 427, 68, - 434, 422, 68, 423, 68, 431, 68, 68, 439, 68, - 68, 424, 68, 433, 440, 68, 436, 435, 445, 441, - - 134, 425, 437, 68, 444, 438, 68, 68, 68, 68, - 443, 442, 450, 68, 68, 68, 68, 449, 446, 453, - 68, 448, 68, 68, 125, 447, 451, 452, 68, 458, - 68, 455, 463, 459, 68, 454, 460, 68, 456, 461, - 68, 457, 462, 68, 464, 68, 465, 68, 466, 68, - 470, 467, 68, 68, 468, 68, 469, 68, 68, 68, - 474, 471, 68, 472, 68, 68, 68, 475, 68, 68, - 480, 477, 68, 68, 68, 68, 478, 483, 476, 473, - 479, 494, 68, 484, 481, 68, 482, 68, 485, 68, - 68, 486, 68, 68, 488, 68, 493, 490, 68, 68, - - 68, 68, 495, 489, 68, 68, 68, 492, 496, 491, - 68, 497, 553, 487, 499, 500, 498, 68, 68, 68, - 501, 503, 506, 502, 68, 504, 68, 68, 68, 68, - 510, 508, 505, 507, 511, 68, 68, 68, 512, 514, - 68, 68, 68, 68, 68, 68, 509, 68, 513, 519, - 68, 68, 524, 520, 68, 68, 526, 68, 515, 516, - 68, 517, 521, 518, 527, 68, 523, 68, 522, 68, - 68, 68, 529, 525, 68, 68, 528, 68, 68, 68, - 534, 533, 536, 537, 532, 530, 535, 68, 68, 531, - 68, 134, 68, 68, 68, 539, 542, 543, 68, 540, - - 68, 546, 544, 68, 68, 538, 541, 68, 549, 547, - 68, 550, 548, 68, 545, 68, 551, 68, 68, 68, - 68, 68, 68, 68, 68, 566, 565, 564, 552, 563, - 68, 68, 68, 554, 561, 562, 574, 68, 578, 68, - 577, 575, 555, 68, 68, 68, 580, 581, 556, 576, - 68, 579, 557, 68, 582, 558, 68, 68, 68, 583, - 68, 68, 559, 584, 68, 560, 68, 567, 568, 585, - 569, 68, 588, 570, 68, 589, 590, 586, 571, 587, - 68, 68, 593, 68, 572, 573, 592, 594, 595, 591, - 68, 68, 68, 68, 596, 68, 597, 68, 600, 68, - - 68, 603, 68, 598, 601, 599, 68, 602, 605, 68, - 68, 68, 68, 68, 604, 608, 68, 610, 68, 607, - 68, 68, 68, 612, 68, 609, 68, 615, 606, 68, - 68, 613, 68, 611, 68, 68, 68, 68, 621, 68, - 68, 620, 614, 626, 68, 616, 617, 68, 624, 68, - 619, 618, 629, 622, 625, 623, 68, 68, 630, 68, - 631, 628, 68, 68, 627, 68, 68, 634, 632, 68, - 636, 633, 637, 68, 68, 641, 638, 68, 68, 68, - 68, 643, 68, 68, 639, 68, 635, 640, 644, 134, - 68, 68, 68, 68, 645, 646, 68, 657, 642, 68, - - 68, 68, 647, 68, 649, 68, 661, 68, 682, 648, - 134, 658, 650, 68, 660, 68, 651, 662, 652, 663, - 68, 68, 653, 68, 654, 659, 666, 664, 68, 655, - 665, 68, 68, 668, 656, 673, 667, 68, 68, 68, - 68, 670, 68, 672, 679, 669, 671, 68, 674, 68, - 678, 68, 68, 675, 68, 676, 680, 683, 68, 684, - 68, 681, 687, 68, 688, 689, 68, 68, 685, 690, - 68, 68, 68, 677, 68, 68, 68, 686, 68, 693, - 68, 68, 68, 68, 692, 698, 691, 696, 68, 68, - 702, 694, 695, 68, 697, 68, 700, 701, 68, 68, - - 68, 699, 703, 706, 707, 708, 68, 704, 705, 68, - 710, 711, 68, 712, 68, 709, 68, 713, 68, 68, - 714, 68, 68, 715, 716, 68, 68, 68, 720, 718, - 68, 68, 717, 724, 68, 722, 723, 68, 727, 68, - 68, 68, 719, 726, 68, 68, 68, 721, 730, 728, - 725, 68, 68, 68, 68, 68, 68, 735, 68, 729, - 736, 738, 731, 68, 741, 732, 734, 739, 742, 68, - 68, 733, 737, 68, 68, 740, 744, 68, 68, 68, - 748, 68, 68, 68, 68, 743, 68, 68, 68, 68, - 68, 747, 746, 745, 782, 750, 68, 68, 756, 749, - - 757, 751, 753, 68, 754, 68, 68, 755, 752, 68, - 760, 758, 68, 68, 759, 68, 764, 68, 762, 68, - 767, 68, 68, 68, 68, 68, 761, 68, 771, 769, - 763, 68, 765, 68, 68, 68, 772, 68, 766, 774, - 768, 773, 68, 68, 770, 775, 777, 68, 778, 68, - 68, 776, 780, 68, 779, 68, 68, 68, 68, 783, - 786, 68, 68, 68, 68, 68, 68, 68, 781, 787, - 784, 785, 791, 68, 794, 797, 795, 788, 792, 68, - 790, 68, 789, 68, 793, 800, 68, 796, 799, 801, - 68, 68, 803, 68, 68, 806, 68, 807, 68, 798, - - 68, 68, 68, 805, 68, 802, 804, 808, 68, 809, - 68, 810, 813, 68, 68, 815, 816, 811, 812, 814, - 68, 68, 68, 68, 68, 823, 68, 817, 818, 68, - 824, 68, 819, 68, 68, 68, 68, 820, 827, 821, - 68, 822, 828, 68, 825, 68, 68, 829, 831, 826, - 832, 835, 68, 830, 837, 68, 68, 68, 68, 838, - 834, 836, 839, 833, 841, 68, 68, 843, 68, 68, - 845, 68, 68, 68, 844, 68, 68, 840, 847, 68, - 850, 849, 68, 848, 68, 132, 842, 68, 854, 68, - 852, 855, 846, 68, 853, 68, 68, 68, 857, 68, - - 851, 68, 856, 68, 858, 861, 68, 68, 859, 864, - 860, 68, 68, 68, 68, 68, 68, 68, 870, 68, - 68, 862, 68, 68, 68, 865, 130, 868, 874, 876, - 863, 866, 867, 871, 869, 877, 68, 68, 873, 878, - 68, 68, 68, 68, 872, 875, 879, 883, 68, 880, - 881, 68, 68, 68, 885, 884, 882, 68, 68, 68, - 68, 68, 887, 889, 68, 892, 68, 68, 68, 68, - 68, 68, 886, 68, 68, 888, 899, 890, 901, 68, - 891, 895, 893, 896, 897, 894, 900, 68, 68, 898, - 68, 68, 902, 68, 908, 909, 903, 905, 907, 68, - - 68, 68, 910, 904, 911, 68, 68, 68, 68, 68, - 916, 906, 913, 68, 917, 68, 918, 68, 68, 68, - 68, 68, 914, 68, 912, 924, 68, 923, 915, 68, - 68, 68, 919, 68, 68, 68, 68, 920, 952, 922, - 929, 68, 925, 68, 932, 921, 933, 68, 926, 68, - 927, 931, 928, 934, 68, 930, 68, 68, 937, 68, - 935, 68, 938, 936, 941, 68, 942, 68, 945, 68, - 68, 943, 68, 68, 68, 939, 68, 940, 964, 944, - 949, 947, 68, 948, 68, 68, 956, 946, 950, 68, - 951, 68, 68, 953, 68, 955, 68, 959, 68, 954, - - 68, 957, 68, 961, 68, 68, 68, 68, 68, 958, - 68, 68, 966, 68, 969, 68, 963, 68, 68, 68, - 960, 68, 968, 970, 976, 965, 962, 68, 967, 975, - 973, 971, 68, 977, 979, 972, 68, 974, 68, 68, - 981, 68, 68, 68, 68, 984, 68, 68, 982, 68, - 980, 129, 978, 68, 68, 990, 987, 68, 985, 988, - 68, 68, 991, 992, 68, 68, 993, 983, 995, 986, - 996, 989, 994, 68, 997, 68, 68, 68, 68, 1002, - 68, 68, 998, 1001, 68, 68, 1004, 1005, 68, 68, - 1006, 68, 68, 68, 68, 999, 68, 1000, 68, 1013, - - 68, 68, 68, 1003, 68, 1011, 68, 1007, 1010, 1012, - 68, 1008, 1009, 1019, 68, 1017, 68, 1018, 1014, 68, - 1015, 68, 1016, 1020, 1023, 68, 1021, 68, 68, 68, - 1024, 68, 1022, 1025, 68, 1026, 68, 1032, 1027, 68, - 1028, 68, 68, 1029, 68, 1031, 1030, 1033, 68, 68, - 68, 1034, 1035, 68, 1040, 68, 68, 68, 1037, 1036, - 68, 1042, 68, 1043, 68, 1048, 1045, 1050, 1039, 1046, - 68, 1041, 68, 68, 1038, 68, 1053, 1044, 1047, 1051, - 68, 68, 1049, 68, 68, 68, 1055, 68, 68, 1061, - 68, 68, 1056, 1054, 68, 1052, 1057, 1058, 68, 68, - - 68, 68, 68, 1059, 1065, 68, 1060, 1062, 1063, 68, - 1066, 68, 68, 68, 1067, 1073, 1068, 1071, 1064, 1072, - 68, 1069, 1070, 68, 68, 1075, 68, 1078, 68, 68, - 1074, 68, 68, 1082, 68, 68, 1076, 1081, 1083, 68, - 1079, 1084, 68, 1086, 68, 1077, 68, 1080, 1085, 68, - 68, 68, 68, 68, 1088, 68, 68, 68, 1087, 1089, - 1092, 1098, 1093, 1090, 1097, 68, 68, 1091, 68, 68, - 68, 68, 1096, 1102, 68, 1094, 1095, 1104, 68, 1105, - 68, 68, 1107, 68, 68, 1106, 1108, 68, 1100, 1099, - 1101, 1103, 1109, 1111, 68, 1113, 68, 68, 68, 68, - - 1114, 1115, 1110, 68, 68, 68, 68, 68, 68, 68, - 1125, 68, 68, 68, 1127, 1116, 1117, 1118, 68, 1112, - 68, 68, 1119, 1123, 1120, 1121, 68, 1122, 68, 1124, - 1129, 1130, 68, 1131, 68, 1132, 68, 1135, 1126, 68, - 1128, 68, 68, 1133, 1139, 68, 68, 1138, 68, 68, - 1142, 68, 1134, 68, 1144, 1141, 68, 1137, 1143, 68, - 68, 68, 68, 1147, 68, 1136, 1140, 68, 1150, 68, - 68, 1146, 68, 68, 1156, 68, 1145, 68, 1154, 1148, - 68, 68, 1155, 1152, 1151, 1153, 1159, 68, 1149, 1162, - 68, 1157, 1163, 68, 68, 1161, 1158, 1164, 1160, 1166, - - 68, 1165, 68, 1169, 68, 68, 68, 68, 68, 68, - 1171, 68, 1168, 1174, 68, 1176, 1167, 1170, 68, 1172, - 68, 68, 68, 1179, 1178, 68, 1177, 1180, 68, 1181, - 68, 68, 68, 1175, 1173, 68, 68, 1183, 1185, 68, - 1184, 1187, 68, 68, 68, 1182, 1190, 68, 1186, 68, - 68, 68, 68, 68, 1188, 1189, 1195, 68, 1192, 68, - 1197, 68, 1196, 127, 1191, 68, 68, 1198, 1193, 68, - 1194, 68, 1199, 1204, 68, 1202, 1205, 1201, 1203, 68, - 1207, 68, 68, 1200, 1210, 68, 68, 1209, 1211, 68, - 68, 68, 68, 1206, 68, 1214, 68, 1212, 1208, 125, - - 68, 1215, 68, 68, 68, 68, 68, 68, 68, 1224, - 68, 1213, 1217, 1223, 1218, 1219, 68, 1216, 68, 1220, - 1228, 68, 68, 68, 68, 1221, 1222, 1226, 1225, 1230, - 1227, 68, 68, 1231, 68, 68, 68, 1232, 1236, 1233, - 68, 1234, 68, 68, 68, 1237, 1240, 68, 1229, 68, - 1239, 1243, 68, 68, 68, 1235, 68, 1244, 68, 1241, - 1245, 1238, 68, 1247, 1249, 1246, 1248, 68, 68, 1242, - 68, 68, 68, 68, 68, 1252, 1250, 1253, 68, 68, - 1251, 68, 68, 68, 1254, 1257, 68, 1258, 1262, 68, - 1256, 68, 1261, 1255, 68, 1263, 68, 1259, 1264, 68, - - 1266, 68, 68, 1260, 1269, 68, 1267, 1268, 68, 68, - 1265, 1272, 68, 1274, 68, 68, 1270, 68, 1273, 68, - 1275, 68, 1271, 1279, 68, 68, 1278, 1276, 68, 68, - 68, 68, 68, 1281, 68, 1277, 1284, 68, 1287, 68, - 68, 68, 68, 68, 1288, 1283, 1290, 68, 1286, 1289, - 1280, 68, 1282, 68, 68, 1285, 68, 68, 1299, 68, - 68, 68, 1292, 1300, 68, 68, 1297, 68, 1291, 1315, - 1293, 68, 1295, 1383, 1301, 1294, 68, 1296, 1298, 1302, - 1303, 68, 1304, 1305, 68, 1306, 68, 1308, 68, 1307, - 1309, 68, 1310, 68, 68, 1312, 68, 1313, 68, 68, - - 1316, 68, 68, 1318, 68, 68, 68, 68, 68, 1322, - 1321, 68, 1320, 1311, 1324, 68, 1326, 68, 1314, 68, - 68, 1317, 68, 1319, 1323, 68, 1329, 1330, 68, 68, - 1325, 1332, 68, 68, 1334, 1328, 68, 68, 68, 68, - 68, 68, 1327, 1337, 1331, 1335, 68, 68, 68, 1336, - 68, 1341, 68, 1339, 68, 1333, 1343, 68, 1347, 1344, - 1346, 68, 1340, 1342, 1338, 68, 1345, 68, 1350, 1351, - 1349, 68, 1352, 68, 68, 68, 68, 1348, 68, 1357, - 1353, 68, 68, 68, 1355, 68, 1358, 68, 1354, 68, - 1356, 1360, 68, 1361, 68, 68, 1363, 1362, 68, 1364, - - 68, 1367, 1359, 1365, 1366, 68, 68, 68, 68, 1368, - 1369, 1370, 68, 1371, 68, 68, 68, 1377, 1372, 1374, - 1373, 1376, 68, 68, 68, 68, 1381, 68, 68, 1378, - 1380, 68, 68, 1384, 1375, 1382, 1385, 68, 68, 68, - 1379, 1387, 68, 1386, 1388, 68, 1389, 68, 1390, 68, - 1392, 68, 1394, 68, 1393, 1391, 1395, 68, 68, 1398, - 68, 68, 68, 68, 68, 1400, 68, 1399, 1403, 68, - 68, 1402, 68, 1397, 68, 1396, 1404, 68, 1401, 1405, - 68, 68, 1406, 68, 68, 68, 1408, 1413, 68, 1411, - 1407, 68, 68, 1409, 68, 1410, 68, 68, 68, 68, - - 1414, 68, 68, 68, 68, 1412, 68, 1422, 1423, 1417, - 1424, 68, 1419, 68, 1416, 1425, 68, 1420, 1415, 68, - 68, 1418, 68, 1421, 1426, 68, 68, 1433, 1428, 1430, - 68, 1427, 1434, 68, 68, 68, 68, 1436, 68, 1429, - 68, 68, 1431, 1432, 1435, 1442, 68, 1443, 68, 1437, - 68, 68, 68, 68, 1438, 68, 1439, 1440, 68, 1441, - 68, 1451, 68, 1450, 68, 1445, 1444, 68, 68, 68, - 1446, 68, 1454, 1447, 1448, 1455, 68, 68, 1449, 1452, - 1457, 68, 1456, 1459, 68, 1453, 1460, 68, 68, 1461, - 1458, 68, 68, 68, 68, 68, 68, 1464, 1465, 1462, - - 1463, 68, 68, 1467, 68, 1474, 1469, 1470, 1472, 68, - 68, 1468, 68, 1466, 1473, 68, 68, 1475, 68, 1471, - 1476, 68, 1477, 68, 1478, 1481, 68, 68, 68, 68, - 1479, 68, 1480, 1482, 68, 68, 1483, 68, 1486, 1484, - 68, 68, 68, 1485, 68, 1491, 68, 68, 68, 68, - 1489, 1490, 68, 1488, 68, 1487, 1492, 1496, 68, 1498, - 68, 68, 68, 1497, 68, 1493, 68, 1500, 1494, 1499, - 68, 1495, 68, 1501, 68, 1504, 1505, 68, 68, 1502, - 68, 1507, 1730, 68, 68, 1503, 1508, 1509, 68, 1510, - 68, 68, 1506, 1511, 68, 1514, 1512, 1517, 1513, 68, - - 68, 1515, 68, 1516, 1518, 68, 68, 68, 68, 68, - 68, 1521, 1525, 68, 68, 68, 68, 1529, 68, 68, - 1530, 68, 1519, 1520, 1524, 1522, 1527, 68, 1523, 68, - 68, 68, 1532, 1526, 1528, 68, 68, 1531, 68, 1538, - 1535, 68, 1540, 68, 68, 68, 68, 68, 1541, 1533, - 1730, 68, 68, 68, 1542, 1536, 1534, 68, 1537, 1539, - 1543, 1544, 1545, 1546, 68, 68, 1549, 68, 68, 1548, - 68, 1547, 68, 1551, 68, 68, 1550, 1553, 1557, 1552, - 1555, 68, 68, 68, 1559, 68, 68, 68, 1562, 68, - 1563, 68, 1556, 1554, 68, 68, 68, 68, 68, 68, - - 1564, 1560, 1561, 1568, 1567, 68, 1558, 1570, 68, 68, - 1565, 1572, 68, 68, 1566, 68, 1574, 68, 1571, 68, - 1573, 68, 1576, 1569, 68, 1575, 68, 1577, 1579, 68, - 68, 1578, 1580, 68, 1584, 68, 1582, 68, 1581, 68, - 68, 68, 1585, 1589, 1587, 68, 1583, 68, 68, 1592, - 68, 1593, 68, 68, 1598, 68, 1730, 1586, 1595, 1588, - 1594, 1596, 1590, 1591, 68, 1599, 68, 1600, 68, 1597, - 68, 1602, 68, 68, 1603, 1601, 1604, 68, 68, 1606, - 68, 68, 68, 1609, 68, 68, 1607, 1605, 68, 68, - 1608, 68, 68, 1610, 1611, 68, 68, 1612, 68, 68, - - 1620, 68, 68, 1618, 1621, 68, 1622, 68, 1614, 1613, - 1623, 68, 1615, 1616, 68, 1626, 68, 1617, 1624, 1619, - 68, 1625, 68, 1629, 68, 1630, 68, 68, 68, 68, - 68, 68, 68, 1637, 68, 1627, 1634, 1635, 1638, 68, - 1628, 1639, 68, 1632, 1640, 68, 68, 68, 1642, 1636, - 1633, 1643, 1631, 68, 68, 68, 68, 68, 1641, 1645, - 68, 68, 68, 68, 68, 1649, 68, 1644, 68, 68, - 68, 68, 1657, 68, 1646, 1647, 1648, 1651, 68, 1658, - 68, 1653, 1650, 1659, 1654, 1652, 1656, 68, 68, 68, - 1663, 68, 1660, 68, 1655, 68, 1667, 1668, 68, 68, - - 68, 68, 68, 1662, 1665, 1661, 68, 1664, 68, 68, - 1666, 68, 1669, 1670, 68, 68, 68, 1730, 1671, 68, - 1672, 1677, 1674, 68, 1675, 68, 1680, 1673, 1678, 68, - 68, 68, 68, 1676, 1679, 1681, 1682, 1683, 1684, 1685, - 1686, 68, 68, 68, 68, 1690, 68, 68, 1688, 1687, - 68, 68, 68, 68, 68, 68, 1693, 68, 1697, 68, - 1692, 68, 1689, 68, 1698, 1691, 1702, 1696, 68, 1700, - 1703, 1694, 1695, 68, 1699, 68, 1701, 1705, 68, 68, - 68, 68, 68, 68, 68, 68, 1706, 1707, 1709, 1711, - 1712, 68, 1704, 68, 68, 1715, 68, 68, 68, 1718, - - 1708, 1710, 1719, 68, 68, 1721, 68, 1722, 68, 68, - 1713, 1720, 1714, 68, 1724, 1716, 1717, 68, 68, 68, - 1723, 1730, 1725, 1728, 68, 1729, 68, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1726, 1727, 40, - 40, 40, 40, 40, 40, 40, 45, 45, 45, 45, - 45, 45, 45, 50, 50, 50, 50, 50, 50, 50, - 56, 56, 56, 56, 56, 56, 56, 61, 61, 61, - 61, 61, 61, 61, 71, 71, 1730, 71, 71, 71, - 71, 124, 124, 1730, 1730, 1730, 124, 124, 126, 126, - 1730, 1730, 126, 1730, 126, 128, 1730, 1730, 1730, 1730, - - 1730, 128, 131, 131, 1730, 1730, 1730, 131, 131, 133, - 1730, 1730, 1730, 1730, 1730, 133, 135, 135, 1730, 135, - 135, 135, 135, 72, 72, 1730, 72, 72, 72, 72, - 13, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730 + 72, 79, 72, 72, 135, 72, 89, 68, 96, 68, + 72, 73, 68, 90, 132, 132, 91, 80, 138, 68, + 97, 81, 68, 92, 82, 93, 83, 84, 98, 148, + 68, 101, 68, 110, 99, 102, 121, 111, 100, 68, + 68, 122, 68, 118, 114, 119, 68, 112, 68, 123, + 113, 103, 68, 124, 115, 68, 192, 105, 116, 117, + 120, 106, 171, 129, 144, 129, 129, 107, 129, 72, + + 108, 72, 72, 134, 72, 134, 134, 109, 134, 67, + 137, 67, 67, 68, 67, 68, 68, 140, 68, 67, + 72, 142, 72, 72, 68, 72, 68, 68, 146, 68, + 72, 73, 150, 68, 143, 141, 68, 68, 145, 68, + 68, 68, 68, 152, 147, 156, 149, 157, 68, 68, + 151, 162, 159, 153, 154, 160, 68, 155, 68, 163, + 68, 68, 158, 164, 166, 68, 68, 68, 167, 161, + 170, 68, 68, 68, 68, 68, 68, 68, 173, 169, + 172, 177, 68, 165, 168, 174, 68, 179, 68, 68, + 68, 180, 176, 175, 178, 181, 68, 187, 68, 68, + + 189, 183, 68, 68, 184, 68, 182, 68, 68, 185, + 188, 68, 196, 194, 186, 68, 203, 68, 125, 125, + 190, 191, 127, 132, 132, 127, 193, 197, 129, 135, + 129, 129, 199, 129, 195, 198, 134, 68, 134, 134, + 72, 134, 72, 72, 68, 72, 68, 201, 68, 200, + 68, 137, 68, 207, 68, 68, 204, 210, 68, 208, + 209, 202, 68, 205, 211, 68, 68, 68, 218, 68, + 206, 68, 68, 219, 220, 222, 68, 223, 68, 224, + 68, 68, 68, 68, 68, 230, 212, 68, 229, 68, + 235, 213, 226, 225, 228, 227, 214, 233, 234, 68, + + 236, 215, 232, 68, 231, 68, 68, 216, 217, 238, + 68, 237, 241, 68, 68, 239, 243, 68, 242, 244, + 240, 68, 68, 246, 68, 68, 68, 68, 68, 245, + 68, 247, 68, 249, 68, 68, 68, 252, 251, 68, + 68, 255, 259, 68, 68, 68, 248, 68, 68, 253, + 250, 68, 262, 261, 135, 254, 265, 263, 257, 258, + 68, 256, 68, 260, 68, 266, 267, 264, 269, 135, + 68, 68, 68, 68, 270, 275, 68, 68, 274, 273, + 68, 272, 276, 277, 68, 68, 68, 68, 68, 268, + 282, 271, 68, 280, 279, 68, 283, 284, 68, 278, + + 68, 68, 285, 68, 286, 68, 68, 68, 287, 289, + 68, 281, 292, 288, 290, 68, 291, 68, 68, 293, + 68, 294, 296, 295, 68, 68, 68, 68, 68, 301, + 68, 68, 68, 68, 68, 297, 303, 307, 306, 300, + 68, 68, 298, 68, 68, 305, 299, 68, 302, 304, + 68, 135, 308, 311, 68, 317, 68, 68, 309, 315, + 316, 310, 68, 313, 68, 318, 314, 68, 312, 68, + 68, 324, 68, 68, 326, 68, 68, 68, 322, 323, + 325, 319, 321, 68, 320, 330, 68, 68, 68, 328, + 68, 327, 332, 68, 68, 68, 333, 68, 334, 68, + + 340, 68, 335, 329, 339, 68, 331, 68, 68, 68, + 336, 68, 341, 337, 346, 338, 344, 68, 342, 343, + 68, 135, 345, 348, 68, 68, 68, 133, 68, 357, + 347, 68, 356, 349, 350, 362, 68, 68, 68, 360, + 68, 68, 358, 351, 359, 352, 353, 354, 361, 363, + 355, 68, 365, 366, 367, 370, 364, 68, 68, 68, + 68, 368, 68, 372, 68, 369, 373, 374, 68, 68, + 68, 68, 379, 371, 68, 68, 68, 68, 380, 68, + 376, 68, 375, 518, 377, 378, 383, 68, 385, 68, + 382, 68, 386, 381, 68, 387, 389, 68, 388, 384, + + 390, 68, 68, 68, 392, 68, 391, 68, 68, 395, + 393, 396, 68, 68, 68, 68, 68, 68, 397, 400, + 394, 398, 68, 401, 68, 399, 68, 404, 68, 402, + 68, 405, 68, 68, 68, 403, 407, 68, 406, 68, + 68, 408, 68, 68, 68, 417, 410, 68, 415, 68, + 68, 414, 416, 409, 413, 68, 68, 411, 68, 412, + 421, 68, 68, 68, 68, 418, 423, 68, 68, 433, + 68, 419, 68, 422, 68, 435, 420, 131, 424, 434, + 432, 68, 425, 68, 426, 68, 437, 431, 436, 427, + 68, 428, 68, 439, 68, 438, 440, 68, 68, 429, + + 68, 68, 441, 68, 68, 445, 68, 135, 68, 430, + 446, 449, 442, 443, 68, 68, 450, 68, 451, 448, + 444, 68, 447, 454, 455, 68, 452, 453, 68, 456, + 68, 68, 68, 458, 68, 460, 68, 463, 466, 68, + 457, 464, 68, 467, 68, 68, 459, 468, 68, 465, + 461, 68, 68, 462, 469, 68, 470, 68, 471, 68, + 497, 68, 475, 68, 473, 474, 472, 68, 68, 68, + 479, 478, 476, 68, 477, 68, 68, 68, 480, 68, + 482, 68, 485, 488, 68, 483, 68, 68, 68, 484, + 481, 68, 68, 68, 490, 489, 491, 486, 487, 68, + + 494, 68, 498, 68, 493, 68, 495, 68, 502, 496, + 68, 499, 68, 500, 68, 501, 68, 505, 492, 68, + 68, 68, 68, 507, 506, 68, 508, 68, 68, 509, + 504, 512, 503, 510, 68, 68, 68, 513, 511, 68, + 516, 68, 514, 520, 517, 68, 519, 68, 68, 68, + 68, 68, 68, 521, 525, 68, 68, 515, 68, 530, + 526, 68, 532, 68, 68, 522, 68, 523, 68, 524, + 527, 531, 533, 529, 528, 68, 68, 534, 68, 536, + 535, 68, 68, 68, 68, 68, 68, 540, 539, 542, + 541, 538, 68, 545, 68, 537, 68, 543, 68, 135, + + 68, 549, 68, 544, 548, 546, 550, 68, 547, 68, + 552, 68, 555, 68, 68, 556, 554, 68, 553, 68, + 68, 551, 68, 68, 68, 557, 68, 559, 68, 68, + 68, 572, 558, 571, 570, 569, 68, 68, 560, 567, + 568, 68, 580, 68, 584, 68, 583, 561, 68, 68, + 68, 586, 130, 562, 68, 582, 585, 563, 68, 581, + 564, 68, 588, 68, 68, 68, 589, 565, 68, 587, + 566, 68, 573, 574, 68, 575, 68, 591, 576, 590, + 68, 68, 595, 577, 592, 68, 621, 593, 594, 578, + 579, 596, 68, 599, 68, 600, 601, 598, 68, 68, + + 68, 68, 602, 597, 603, 68, 68, 68, 68, 68, + 68, 610, 68, 604, 605, 607, 608, 612, 68, 68, + 68, 68, 68, 68, 615, 606, 611, 609, 68, 614, + 68, 617, 68, 68, 68, 68, 619, 616, 613, 622, + 68, 68, 68, 618, 620, 68, 68, 68, 68, 628, + 68, 627, 68, 623, 68, 624, 633, 631, 636, 68, + 637, 626, 625, 68, 629, 68, 630, 68, 632, 68, + 68, 638, 634, 635, 68, 68, 68, 643, 644, 641, + 68, 68, 640, 68, 645, 648, 68, 68, 639, 68, + 68, 650, 68, 651, 135, 68, 642, 68, 646, 647, + + 68, 653, 68, 68, 652, 68, 68, 649, 68, 664, + 68, 68, 128, 68, 654, 668, 656, 68, 68, 68, + 68, 665, 671, 657, 655, 68, 667, 669, 658, 68, + 659, 670, 68, 666, 660, 672, 661, 673, 68, 68, + 677, 662, 68, 675, 68, 702, 663, 674, 68, 680, + 679, 68, 681, 676, 68, 68, 678, 682, 68, 683, + 685, 68, 68, 686, 68, 689, 68, 690, 68, 687, + 68, 694, 68, 688, 691, 68, 696, 684, 68, 695, + 68, 68, 692, 697, 68, 68, 68, 68, 68, 693, + 68, 700, 68, 68, 68, 705, 703, 698, 699, 709, + + 68, 68, 708, 701, 68, 68, 68, 704, 707, 68, + 68, 713, 706, 68, 714, 715, 712, 68, 717, 710, + 718, 68, 716, 711, 720, 68, 68, 722, 721, 68, + 723, 68, 68, 68, 719, 724, 68, 68, 68, 68, + 728, 68, 68, 68, 730, 68, 731, 68, 726, 732, + 68, 725, 68, 734, 735, 68, 727, 68, 733, 729, + 738, 736, 68, 737, 68, 68, 68, 68, 739, 68, + 68, 743, 744, 746, 68, 749, 68, 750, 742, 68, + 68, 740, 68, 68, 741, 747, 68, 745, 748, 752, + 68, 68, 756, 68, 751, 68, 68, 68, 68, 68, + + 754, 68, 753, 755, 758, 68, 126, 764, 68, 765, + 68, 757, 68, 761, 68, 766, 759, 68, 68, 68, + 762, 763, 767, 760, 68, 68, 68, 772, 68, 770, + 775, 68, 768, 769, 68, 68, 68, 68, 779, 68, + 771, 773, 777, 68, 780, 68, 68, 774, 68, 783, + 781, 68, 776, 68, 68, 778, 68, 68, 786, 782, + 785, 788, 68, 68, 68, 68, 784, 790, 68, 68, + 68, 791, 68, 787, 68, 794, 789, 68, 68, 792, + 793, 795, 68, 799, 68, 68, 803, 68, 68, 796, + 68, 68, 798, 797, 802, 807, 805, 800, 801, 68, + + 68, 804, 808, 68, 806, 814, 809, 68, 68, 811, + 68, 68, 813, 812, 68, 815, 816, 68, 810, 68, + 818, 68, 817, 68, 68, 68, 823, 824, 820, 68, + 819, 68, 68, 68, 825, 68, 68, 826, 821, 68, + 831, 68, 68, 822, 827, 833, 68, 832, 68, 828, + 836, 829, 68, 830, 837, 68, 68, 834, 68, 68, + 68, 68, 838, 68, 835, 68, 840, 844, 68, 68, + 841, 839, 846, 68, 848, 68, 845, 842, 847, 850, + 68, 68, 849, 852, 68, 843, 68, 854, 68, 68, + 68, 853, 68, 68, 68, 856, 68, 859, 858, 68, + + 857, 851, 863, 68, 68, 861, 864, 68, 68, 855, + 862, 68, 860, 865, 866, 68, 68, 870, 68, 68, + 68, 68, 68, 868, 867, 873, 68, 869, 68, 68, + 68, 68, 68, 879, 68, 68, 874, 68, 68, 135, + 871, 877, 875, 883, 872, 68, 876, 886, 880, 878, + 885, 887, 68, 882, 68, 68, 68, 890, 68, 881, + 884, 892, 68, 888, 889, 68, 68, 68, 68, 893, + 68, 68, 891, 894, 68, 68, 898, 68, 68, 68, + 68, 901, 68, 68, 68, 68, 895, 909, 897, 68, + 68, 68, 899, 133, 896, 900, 902, 904, 903, 905, + + 906, 907, 68, 68, 68, 913, 68, 908, 910, 911, + 915, 68, 914, 912, 917, 918, 916, 68, 919, 68, + 68, 920, 68, 68, 68, 68, 68, 925, 68, 922, + 68, 926, 68, 927, 68, 68, 68, 68, 68, 923, + 68, 921, 68, 932, 68, 924, 933, 928, 68, 929, + 68, 68, 68, 68, 68, 931, 938, 934, 68, 935, + 68, 930, 944, 936, 68, 941, 942, 937, 940, 68, + 68, 939, 950, 945, 943, 68, 68, 947, 131, 946, + 68, 948, 951, 68, 68, 952, 955, 68, 953, 68, + 68, 68, 68, 958, 949, 957, 954, 959, 960, 68, + + 961, 68, 68, 68, 964, 956, 962, 68, 963, 68, + 68, 68, 68, 969, 68, 68, 967, 68, 971, 68, + 68, 68, 68, 68, 966, 974, 68, 968, 68, 68, + 68, 973, 68, 976, 965, 970, 68, 979, 68, 68, + 977, 972, 975, 978, 980, 68, 981, 983, 68, 68, + 982, 985, 984, 986, 987, 989, 68, 991, 68, 68, + 68, 68, 68, 68, 994, 988, 68, 992, 68, 68, + 990, 1000, 997, 68, 68, 998, 68, 68, 995, 1001, + 68, 68, 1002, 68, 1005, 1003, 993, 999, 996, 1006, + 68, 1007, 68, 68, 68, 68, 68, 68, 1012, 68, + + 1011, 1008, 1004, 68, 1014, 1015, 68, 68, 68, 68, + 68, 1009, 1016, 1010, 68, 1017, 1023, 68, 68, 1013, + 68, 68, 68, 68, 1020, 130, 1021, 68, 1018, 1019, + 1022, 68, 1027, 68, 68, 1033, 68, 68, 1024, 1032, + 1025, 1029, 1030, 1026, 68, 1031, 1028, 1034, 68, 68, + 68, 68, 68, 1035, 1043, 68, 1038, 1042, 68, 1037, + 1039, 1041, 68, 1040, 68, 1036, 68, 68, 68, 68, + 68, 68, 1051, 68, 68, 68, 1054, 1045, 1044, 1053, + 1048, 1047, 68, 68, 1046, 68, 1059, 68, 1050, 1052, + 1055, 68, 1056, 1061, 1049, 1057, 68, 68, 68, 1064, + + 1058, 68, 1062, 1060, 68, 68, 68, 1063, 1066, 1068, + 1065, 68, 68, 1072, 1067, 68, 68, 68, 68, 1069, + 68, 68, 68, 68, 1076, 68, 1077, 1078, 1079, 1070, + 68, 1071, 1073, 1074, 1080, 68, 68, 1075, 1083, 68, + 68, 68, 1089, 1085, 68, 68, 68, 68, 68, 68, + 1082, 1093, 68, 1081, 1084, 1092, 1086, 1087, 1090, 68, + 1088, 68, 1094, 1095, 68, 68, 1091, 1097, 68, 68, + 1096, 68, 68, 68, 1099, 68, 68, 1098, 68, 68, + 1100, 1103, 1108, 68, 1101, 1109, 68, 1104, 1102, 68, + 68, 68, 1113, 68, 1107, 1106, 68, 1115, 68, 68, + + 1105, 1116, 68, 1117, 1118, 68, 68, 1110, 1111, 68, + 68, 1112, 1120, 1119, 1122, 68, 1114, 68, 68, 68, + 1124, 68, 1126, 1121, 68, 1125, 68, 68, 68, 68, + 68, 1123, 1134, 1136, 68, 1131, 68, 68, 1127, 1128, + 1129, 68, 1138, 68, 68, 1130, 1141, 68, 1132, 1133, + 68, 1135, 1140, 68, 68, 68, 1146, 1139, 68, 1142, + 1143, 68, 1137, 1144, 68, 1150, 68, 68, 1153, 1149, + 68, 1154, 68, 68, 1152, 68, 1145, 1148, 68, 68, + 1155, 68, 68, 68, 1147, 1159, 1151, 1156, 68, 68, + 1162, 68, 68, 1158, 68, 68, 68, 1168, 68, 1157, + + 128, 1160, 1166, 68, 1167, 68, 1163, 1171, 68, 1165, + 1174, 1164, 68, 68, 1161, 68, 1169, 1175, 68, 68, + 1178, 1170, 68, 1176, 1172, 68, 1173, 1177, 68, 1181, + 68, 1180, 68, 68, 68, 1186, 1183, 68, 1188, 1179, + 68, 68, 1182, 68, 68, 1184, 68, 1185, 126, 1190, + 68, 1191, 68, 1189, 1192, 68, 1193, 68, 1195, 1187, + 68, 68, 68, 68, 1194, 1196, 68, 1197, 1199, 68, + 68, 1198, 1202, 68, 68, 68, 68, 68, 1200, 68, + 68, 1201, 1208, 1204, 1207, 68, 1209, 68, 68, 1211, + 1203, 68, 68, 1205, 68, 1206, 1214, 1213, 68, 1210, + + 1212, 1215, 1216, 68, 68, 1219, 68, 1221, 68, 1217, + 68, 68, 1218, 1222, 1223, 68, 68, 68, 1226, 68, + 68, 1220, 68, 1224, 68, 68, 68, 68, 1225, 1227, + 68, 68, 68, 68, 1229, 68, 1230, 1231, 1235, 68, + 1228, 1232, 68, 68, 1236, 1243, 1239, 1233, 1238, 1237, + 1234, 1240, 68, 68, 68, 68, 68, 68, 1242, 1244, + 1245, 1241, 1248, 68, 68, 68, 68, 68, 1249, 1253, + 68, 68, 1250, 68, 1246, 68, 1256, 1247, 68, 68, + 1252, 68, 68, 1257, 1251, 68, 1254, 1258, 68, 68, + 68, 1259, 1262, 1255, 1264, 68, 68, 1260, 1263, 68, + + 1261, 1265, 68, 68, 1266, 68, 68, 68, 1267, 68, + 68, 1270, 1271, 68, 68, 1275, 68, 68, 1280, 1269, + 1277, 68, 1268, 1274, 1272, 68, 1276, 68, 68, 1278, + 68, 1279, 1273, 1282, 68, 68, 1283, 68, 1281, 1285, + 68, 1287, 68, 68, 1286, 68, 1288, 68, 68, 1289, + 1284, 68, 1291, 1292, 68, 68, 1294, 68, 68, 68, + 68, 1290, 68, 1297, 1300, 68, 1301, 68, 68, 68, + 68, 68, 1296, 1293, 1303, 68, 1299, 1298, 1295, 68, + 68, 68, 1302, 68, 1312, 68, 1751, 68, 68, 1305, + 1313, 68, 68, 1310, 1304, 1307, 68, 1328, 1306, 1308, + + 1309, 1314, 68, 1317, 1311, 1315, 1318, 68, 68, 1316, + 1319, 68, 1321, 68, 1322, 68, 1323, 68, 68, 1325, + 68, 1320, 1326, 68, 68, 1329, 68, 68, 1331, 68, + 68, 68, 68, 68, 1334, 68, 1335, 1324, 1333, 1337, + 68, 68, 68, 1327, 1340, 68, 1330, 68, 1332, 68, + 68, 1336, 1339, 1343, 1344, 68, 1338, 1346, 68, 68, + 68, 1348, 1342, 68, 68, 1341, 68, 68, 68, 1345, + 68, 1351, 1349, 68, 68, 68, 1350, 68, 1355, 68, + 68, 1353, 1360, 1751, 1357, 1347, 1358, 68, 68, 1356, + 68, 1354, 1352, 1359, 1361, 68, 1364, 1363, 1365, 68, + + 1362, 68, 1366, 68, 68, 68, 68, 68, 68, 1371, + 1367, 68, 1372, 1369, 1368, 1374, 68, 1370, 1375, 68, + 68, 1377, 68, 68, 68, 1376, 68, 1381, 1373, 68, + 1384, 68, 68, 1382, 1378, 1383, 68, 1379, 68, 68, + 68, 1385, 68, 1380, 1388, 68, 1391, 68, 68, 1751, + 1390, 68, 68, 1387, 1392, 1395, 68, 1394, 1386, 68, + 68, 1397, 1389, 1393, 1396, 68, 1398, 1399, 68, 68, + 1401, 68, 1402, 68, 1400, 1403, 68, 1404, 68, 68, + 68, 68, 1410, 68, 1409, 68, 1407, 68, 68, 68, + 1413, 68, 68, 68, 1405, 1408, 68, 1414, 1415, 68, + + 68, 1406, 1418, 68, 1412, 1417, 1411, 1416, 1419, 68, + 1420, 68, 68, 68, 68, 68, 68, 1422, 68, 1428, + 68, 1426, 68, 68, 1421, 1423, 1424, 1425, 68, 68, + 68, 1429, 68, 68, 68, 68, 68, 68, 1427, 68, + 1437, 1438, 1432, 1439, 68, 68, 1434, 68, 1431, 1430, + 68, 1435, 1440, 68, 1433, 68, 1436, 1441, 68, 1445, + 68, 1443, 68, 1442, 68, 1448, 68, 1444, 1449, 68, + 68, 1450, 68, 1451, 68, 1446, 1447, 68, 1453, 68, + 1457, 68, 1458, 68, 68, 1452, 68, 68, 68, 68, + 1454, 68, 1459, 1455, 1465, 1466, 68, 68, 1456, 1460, + + 68, 68, 1461, 68, 68, 1469, 1462, 1463, 1470, 1464, + 1471, 68, 1467, 1473, 68, 68, 1472, 68, 1468, 1475, + 68, 1476, 68, 68, 1477, 68, 68, 68, 68, 68, + 1480, 68, 1481, 68, 1474, 1479, 68, 1483, 1485, 1478, + 68, 1486, 1488, 68, 1489, 68, 1484, 1482, 1490, 68, + 1492, 68, 68, 68, 1491, 1487, 1493, 68, 1494, 68, + 68, 68, 68, 68, 1495, 68, 1496, 1498, 1497, 68, + 1499, 68, 68, 68, 1500, 1502, 68, 1501, 68, 68, + 1507, 68, 68, 68, 68, 1505, 1504, 1506, 68, 1503, + 1508, 1512, 68, 1513, 1514, 68, 68, 68, 68, 68, + + 68, 1509, 1516, 1510, 1515, 68, 68, 1511, 1517, 1519, + 1751, 1518, 68, 1521, 68, 1520, 1522, 68, 68, 1524, + 68, 1526, 68, 1525, 1527, 68, 1523, 1528, 68, 68, + 1531, 68, 1529, 1532, 68, 68, 68, 1534, 68, 1535, + 1533, 68, 68, 1530, 68, 68, 1538, 68, 1542, 68, + 68, 68, 68, 68, 1546, 1536, 1537, 68, 1547, 1544, + 1539, 1541, 68, 68, 68, 1540, 68, 68, 1549, 1543, + 68, 1545, 68, 68, 68, 1555, 1552, 68, 1548, 1557, + 68, 68, 68, 1559, 1550, 1558, 68, 68, 68, 68, + 1553, 68, 1551, 1554, 68, 1556, 1562, 1560, 1563, 1561, + + 1564, 68, 68, 1567, 68, 68, 1566, 68, 68, 68, + 1569, 68, 68, 1568, 1571, 68, 1565, 1570, 1575, 68, + 1573, 1577, 68, 68, 1580, 68, 68, 1574, 1572, 68, + 1581, 1578, 68, 68, 1579, 68, 1576, 68, 1582, 68, + 1588, 68, 1586, 1585, 68, 1590, 68, 68, 1583, 68, + 1592, 68, 1584, 68, 1591, 68, 1595, 68, 68, 1598, + 68, 1599, 68, 1589, 68, 1587, 68, 1593, 68, 1603, + 68, 1596, 68, 68, 68, 68, 1594, 1608, 1601, 1606, + 1597, 68, 68, 1600, 1604, 1611, 68, 68, 1602, 1612, + 68, 68, 68, 1605, 1607, 68, 1614, 1616, 1609, 1610, + + 1617, 68, 1618, 68, 1619, 68, 1613, 68, 68, 1615, + 1621, 68, 1620, 68, 1622, 1623, 68, 68, 1626, 68, + 68, 68, 1624, 1629, 68, 1627, 1625, 68, 68, 1628, + 68, 68, 1630, 1631, 68, 68, 68, 1751, 68, 68, + 1640, 68, 1632, 1638, 1641, 68, 68, 68, 68, 1633, + 1634, 1642, 1635, 1636, 1643, 68, 68, 1637, 68, 1639, + 1644, 1645, 68, 1647, 68, 68, 1649, 1650, 68, 1651, + 68, 1652, 1646, 68, 68, 68, 68, 68, 1658, 68, + 1648, 1655, 1656, 1659, 68, 1660, 68, 68, 1653, 1661, + 68, 68, 1663, 1664, 1657, 1654, 68, 68, 68, 1662, + + 68, 68, 1666, 68, 68, 68, 68, 68, 1670, 68, + 1665, 68, 68, 68, 68, 1678, 68, 1669, 68, 1667, + 1672, 1668, 1679, 1680, 1674, 1671, 68, 1675, 1673, 1677, + 68, 1681, 68, 1684, 68, 68, 1688, 1676, 68, 68, + 1689, 68, 68, 68, 68, 68, 68, 1683, 1685, 68, + 1686, 68, 68, 68, 68, 1682, 1690, 1691, 1687, 1698, + 1693, 68, 1692, 68, 1695, 1696, 1699, 68, 1694, 68, + 1701, 68, 1697, 68, 68, 1706, 1702, 68, 1703, 1704, + 68, 68, 1700, 1707, 68, 68, 1705, 1711, 1708, 68, + 68, 68, 68, 68, 68, 68, 1709, 68, 1714, 68, + + 68, 1718, 1719, 1713, 1710, 68, 1721, 68, 1712, 1751, + 1715, 68, 1717, 1716, 1720, 68, 1722, 68, 1724, 1726, + 68, 68, 1723, 68, 68, 68, 1725, 68, 1727, 68, + 1728, 68, 1730, 68, 1732, 68, 1733, 68, 1736, 68, + 68, 68, 1739, 1729, 1731, 1740, 68, 1751, 68, 1742, + 68, 68, 1734, 68, 1735, 1741, 1743, 68, 1737, 1738, + 1744, 68, 68, 68, 1749, 68, 1745, 1746, 1750, 68, + 1747, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1748, 40, 40, 40, 40, 40, 40, 40, + 45, 45, 45, 45, 45, 45, 45, 50, 50, 50, + + 50, 50, 50, 50, 56, 56, 56, 56, 56, 56, + 56, 61, 61, 61, 61, 61, 61, 61, 71, 71, + 1751, 71, 71, 71, 71, 125, 125, 1751, 1751, 1751, + 125, 125, 127, 127, 1751, 1751, 127, 1751, 127, 129, + 1751, 1751, 1751, 1751, 1751, 129, 132, 132, 1751, 1751, + 1751, 132, 132, 134, 1751, 1751, 1751, 1751, 1751, 134, + 136, 136, 1751, 136, 136, 136, 136, 72, 72, 1751, + 72, 72, 72, 72, 13, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751 } ; -static yyconst flex_int16_t yy_chk[3471] = +static yyconst flex_int16_t yy_chk[3515] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1391,381 +1404,387 @@ static yyconst flex_int16_t yy_chk[3471] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4, 49, 5, 5, 49, 3, 5, 15, 4, 6, 6, 15, 5, 6, 9, 9, - 9, 153, 33, 6, 7, 7, 7, 7, 9, 7, + 9, 154, 33, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 44, 44, 7, 8, 8, 8, 8, - 10, 8, 21, 33, 153, 21, 21, 8, 11, 11, - 11, 11, 11, 11, 1736, 20, 29, 20, 20, 11, + 10, 8, 21, 33, 154, 21, 21, 8, 11, 11, + 11, 11, 11, 11, 1757, 20, 29, 20, 20, 11, 20, 29, 24, 21, 25, 20, 24, 28, 11, 12, 12, 12, 12, 12, 12, 74, 22, 22, 74, 25, 12, 69, 28, 30, 22, 69, 24, 26, 26, 12, - 19, 22, 19, 19, 66, 19, 26, 644, 30, 27, + 19, 22, 19, 19, 66, 19, 26, 82, 30, 27, 19, 19, 23, 27, 60, 60, 27, 23, 66, 31, - 31, 23, 76, 27, 23, 27, 23, 23, 31, 75, - 32, 32, 34, 75, 31, 32, 37, 37, 31, 37, - 36, 34, 76, 35, 35, 36, 133, 34, 35, 38, - 34, 32, 79, 78, 37, 36, 131, 34, 35, 36, - 36, 35, 90, 38, 39, 39, 79, 90, 38, 39, - - 55, 78, 55, 55, 63, 55, 63, 63, 65, 63, - 65, 65, 83, 65, 68, 63, 68, 68, 77, 68, - 80, 77, 81, 82, 68, 71, 86, 71, 71, 85, - 71, 83, 80, 84, 77, 71, 71, 87, 84, 88, - 81, 94, 91, 85, 89, 82, 86, 92, 89, 93, - 92, 84, 97, 92, 93, 87, 91, 88, 95, 96, - 94, 98, 96, 95, 99, 100, 96, 92, 99, 101, - 102, 103, 100, 104, 105, 98, 97, 102, 105, 106, - 107, 108, 101, 95, 103, 107, 109, 110, 111, 107, - 112, 114, 113, 104, 117, 115, 114, 106, 116, 116, - - 110, 108, 118, 111, 119, 122, 109, 115, 123, 112, - 113, 120, 117, 120, 188, 121, 188, 122, 118, 116, - 121, 125, 125, 140, 127, 119, 123, 127, 129, 137, - 129, 129, 137, 129, 120, 132, 132, 134, 140, 134, - 134, 135, 134, 135, 135, 138, 135, 141, 139, 142, - 138, 143, 135, 139, 144, 141, 145, 151, 146, 147, - 130, 145, 145, 146, 147, 148, 143, 148, 142, 150, - 150, 154, 152, 155, 144, 154, 151, 152, 155, 156, - 157, 160, 159, 162, 158, 163, 160, 148, 149, 164, - 161, 161, 149, 156, 164, 157, 158, 149, 169, 158, - - 159, 163, 149, 162, 165, 165, 166, 167, 149, 149, - 161, 166, 167, 168, 176, 170, 171, 166, 172, 169, - 170, 171, 168, 172, 173, 174, 178, 175, 181, 173, - 177, 179, 174, 175, 176, 180, 177, 182, 184, 179, - 180, 183, 186, 181, 185, 187, 183, 186, 178, 189, - 190, 191, 192, 193, 193, 190, 189, 182, 198, 128, - 184, 194, 185, 185, 192, 187, 194, 195, 197, 196, - 191, 196, 195, 199, 200, 203, 204, 198, 201, 200, - 197, 199, 202, 201, 194, 205, 206, 202, 196, 207, - 203, 212, 207, 205, 204, 208, 208, 209, 210, 210, - - 209, 211, 211, 213, 216, 214, 215, 212, 214, 217, - 215, 206, 218, 216, 217, 219, 219, 220, 213, 221, - 222, 223, 220, 224, 221, 225, 218, 226, 226, 227, - 228, 229, 231, 230, 228, 234, 233, 231, 225, 223, - 222, 235, 236, 232, 224, 230, 232, 227, 233, 229, - 235, 237, 234, 238, 239, 234, 239, 239, 240, 240, - 242, 243, 244, 236, 237, 238, 241, 245, 245, 241, - 246, 244, 247, 247, 248, 246, 243, 242, 249, 250, - 242, 251, 252, 253, 255, 256, 251, 258, 253, 248, - 249, 254, 258, 260, 254, 261, 254, 262, 255, 250, - - 257, 256, 252, 259, 256, 263, 256, 264, 259, 257, - 264, 265, 262, 267, 260, 261, 269, 270, 271, 263, - 272, 126, 268, 276, 274, 265, 264, 266, 267, 266, - 266, 268, 275, 271, 279, 277, 270, 269, 276, 266, - 272, 266, 266, 266, 273, 280, 266, 274, 278, 273, - 277, 281, 275, 278, 279, 282, 281, 283, 285, 280, - 284, 284, 283, 284, 286, 287, 290, 289, 288, 289, - 290, 282, 291, 292, 293, 294, 301, 301, 285, 297, - 286, 287, 288, 293, 294, 296, 295, 292, 297, 296, - 291, 295, 298, 299, 300, 302, 293, 298, 300, 299, - - 302, 303, 304, 304, 305, 306, 307, 308, 309, 305, - 310, 310, 309, 311, 303, 307, 312, 316, 311, 308, - 313, 313, 315, 315, 317, 318, 306, 319, 321, 322, - 323, 324, 317, 328, 318, 326, 325, 312, 316, 319, - 324, 325, 327, 326, 323, 329, 332, 327, 321, 322, - 330, 328, 331, 333, 334, 335, 331, 337, 333, 339, - 340, 332, 338, 340, 339, 341, 349, 329, 343, 339, - 334, 330, 342, 342, 335, 336, 336, 337, 338, 344, - 344, 336, 345, 336, 346, 341, 348, 347, 349, 350, - 351, 336, 352, 343, 350, 353, 346, 345, 355, 351, - - 354, 336, 347, 355, 354, 348, 356, 357, 358, 359, - 353, 352, 360, 360, 361, 362, 363, 359, 356, 363, - 364, 358, 366, 368, 124, 357, 361, 362, 365, 367, - 375, 365, 371, 367, 367, 364, 368, 371, 366, 369, - 369, 366, 370, 370, 372, 372, 373, 373, 374, 376, - 378, 375, 377, 374, 376, 378, 377, 379, 380, 381, - 382, 379, 383, 380, 384, 382, 387, 383, 385, 386, - 386, 385, 388, 67, 390, 399, 385, 389, 384, 381, - 385, 399, 389, 390, 387, 391, 388, 392, 391, 393, - 394, 392, 395, 396, 393, 397, 398, 395, 403, 400, - - 404, 398, 400, 394, 455, 401, 402, 397, 401, 396, - 405, 402, 455, 392, 404, 405, 403, 406, 407, 409, - 406, 408, 410, 407, 411, 408, 408, 410, 412, 415, - 413, 412, 409, 411, 413, 413, 414, 416, 414, 416, - 417, 418, 419, 420, 422, 421, 412, 423, 415, 421, - 424, 425, 426, 422, 427, 428, 428, 426, 417, 418, - 429, 419, 423, 420, 429, 430, 425, 431, 424, 432, - 433, 434, 431, 427, 435, 436, 430, 438, 439, 437, - 436, 435, 438, 439, 434, 432, 437, 440, 441, 433, - 442, 444, 443, 447, 445, 441, 444, 445, 446, 442, - - 448, 448, 446, 449, 453, 440, 443, 452, 451, 448, - 454, 452, 449, 451, 447, 456, 453, 457, 463, 460, - 466, 467, 468, 472, 473, 469, 468, 467, 454, 466, - 469, 471, 478, 456, 460, 463, 471, 474, 475, 475, - 474, 472, 457, 458, 476, 477, 477, 478, 458, 473, - 482, 476, 458, 479, 479, 458, 480, 483, 481, 480, - 484, 487, 458, 481, 485, 458, 470, 470, 470, 482, - 470, 488, 485, 470, 486, 486, 487, 483, 470, 484, - 497, 489, 490, 490, 470, 470, 489, 491, 492, 488, - 494, 493, 491, 492, 493, 495, 494, 496, 497, 498, - - 499, 500, 500, 495, 498, 496, 501, 499, 502, 503, - 505, 507, 506, 502, 501, 506, 508, 508, 509, 505, - 510, 512, 513, 510, 514, 507, 515, 513, 503, 516, - 517, 510, 518, 509, 519, 520, 521, 524, 519, 522, - 523, 518, 512, 524, 525, 514, 515, 526, 522, 530, - 517, 516, 527, 520, 523, 521, 529, 527, 528, 531, - 529, 526, 532, 528, 525, 533, 537, 532, 530, 534, - 534, 531, 535, 536, 538, 539, 536, 535, 540, 543, - 539, 541, 541, 545, 537, 546, 533, 538, 542, 542, - 547, 544, 548, 550, 543, 544, 551, 550, 540, 553, - - 552, 554, 545, 555, 547, 556, 554, 571, 571, 546, - 61, 551, 548, 549, 553, 558, 549, 555, 549, 556, - 562, 559, 549, 557, 549, 552, 559, 557, 560, 549, - 558, 561, 563, 560, 549, 565, 559, 564, 567, 568, - 565, 562, 569, 564, 568, 561, 563, 566, 566, 570, - 567, 573, 572, 566, 574, 566, 569, 572, 575, 573, - 577, 570, 576, 576, 577, 579, 580, 581, 574, 580, - 579, 582, 584, 566, 583, 587, 585, 575, 586, 583, - 588, 589, 590, 594, 582, 588, 581, 586, 591, 595, - 592, 584, 585, 596, 587, 592, 590, 591, 597, 598, - - 599, 589, 594, 597, 598, 599, 600, 595, 596, 601, - 601, 602, 607, 604, 608, 600, 602, 604, 604, 605, - 605, 606, 609, 605, 606, 610, 611, 614, 610, 608, - 612, 613, 607, 614, 615, 612, 613, 616, 617, 617, - 618, 619, 609, 616, 621, 620, 622, 611, 620, 618, - 615, 623, 625, 624, 627, 626, 629, 625, 628, 619, - 626, 628, 621, 630, 631, 622, 624, 629, 632, 631, - 633, 623, 627, 632, 635, 630, 634, 634, 636, 637, - 638, 639, 641, 642, 638, 633, 640, 647, 645, 646, - 674, 637, 636, 635, 674, 640, 652, 656, 648, 639, - - 649, 641, 645, 648, 646, 649, 650, 647, 642, 651, - 652, 650, 653, 654, 651, 655, 656, 657, 654, 658, - 659, 659, 660, 661, 662, 666, 653, 663, 663, 661, - 655, 664, 657, 668, 665, 671, 664, 669, 658, 666, - 660, 665, 667, 670, 662, 667, 669, 672, 670, 673, - 675, 668, 672, 678, 671, 676, 677, 679, 680, 675, - 678, 681, 682, 684, 685, 686, 683, 690, 673, 679, - 676, 677, 683, 689, 686, 690, 688, 680, 684, 691, - 682, 688, 681, 692, 685, 693, 694, 689, 692, 693, - 693, 695, 695, 696, 697, 698, 699, 699, 705, 691, - - 698, 706, 700, 697, 701, 694, 696, 700, 703, 701, - 702, 702, 705, 704, 712, 707, 708, 703, 704, 706, - 707, 708, 709, 711, 710, 712, 714, 709, 710, 715, - 714, 716, 711, 718, 719, 723, 721, 711, 717, 711, - 720, 711, 717, 717, 715, 722, 725, 718, 720, 716, - 721, 724, 724, 719, 726, 726, 728, 729, 730, 728, - 723, 725, 729, 722, 731, 731, 732, 733, 733, 734, - 735, 735, 736, 737, 734, 738, 739, 730, 737, 740, - 740, 739, 741, 738, 742, 56, 732, 743, 745, 750, - 742, 746, 736, 745, 743, 749, 746, 747, 748, 751, - - 741, 753, 747, 748, 749, 752, 752, 754, 750, 755, - 751, 756, 757, 761, 755, 758, 759, 760, 760, 762, - 763, 753, 765, 764, 766, 756, 51, 758, 764, 766, - 754, 756, 757, 761, 759, 768, 777, 769, 763, 768, - 768, 770, 772, 775, 762, 765, 769, 773, 771, 770, - 771, 774, 773, 776, 775, 774, 772, 778, 779, 780, - 781, 782, 777, 779, 783, 782, 784, 785, 786, 787, - 788, 789, 776, 791, 792, 778, 789, 780, 791, 790, - 781, 785, 783, 786, 787, 784, 790, 793, 794, 788, - 796, 795, 792, 797, 798, 799, 793, 795, 797, 798, - - 799, 800, 800, 794, 802, 802, 803, 804, 805, 806, - 807, 796, 804, 809, 807, 807, 808, 808, 810, 811, - 812, 813, 805, 815, 803, 814, 819, 813, 806, 816, - 814, 817, 809, 818, 820, 846, 821, 810, 846, 812, - 819, 823, 815, 822, 822, 811, 823, 825, 816, 824, - 817, 821, 818, 824, 826, 820, 827, 829, 827, 833, - 825, 831, 827, 826, 830, 830, 831, 832, 834, 836, - 849, 832, 850, 834, 858, 827, 838, 829, 858, 833, - 840, 838, 839, 839, 848, 840, 850, 836, 842, 842, - 844, 844, 847, 847, 852, 849, 851, 853, 853, 848, - - 854, 851, 855, 855, 856, 857, 859, 860, 863, 852, - 862, 866, 860, 864, 864, 867, 857, 869, 865, 871, - 854, 868, 863, 865, 871, 859, 856, 870, 862, 870, - 868, 866, 873, 872, 874, 867, 875, 869, 872, 874, - 876, 876, 877, 879, 880, 880, 881, 888, 877, 882, - 875, 50, 873, 883, 886, 884, 883, 885, 881, 883, - 884, 887, 885, 886, 892, 889, 887, 879, 889, 882, - 890, 883, 888, 891, 891, 890, 893, 894, 895, 896, - 897, 898, 892, 895, 896, 900, 898, 899, 899, 901, - 900, 902, 903, 905, 904, 893, 906, 894, 908, 907, - - 909, 910, 913, 897, 907, 905, 914, 901, 904, 906, - 912, 902, 903, 914, 915, 912, 916, 913, 908, 922, - 909, 924, 910, 915, 919, 919, 915, 920, 921, 923, - 920, 929, 916, 921, 925, 922, 926, 927, 923, 930, - 924, 931, 927, 925, 932, 926, 925, 928, 928, 933, - 934, 929, 930, 935, 935, 936, 937, 939, 932, 931, - 940, 937, 938, 938, 943, 942, 939, 944, 934, 939, - 942, 936, 944, 945, 933, 946, 947, 938, 940, 945, - 948, 947, 943, 949, 953, 954, 949, 955, 952, 956, - 958, 957, 949, 948, 956, 946, 952, 953, 960, 966, - - 961, 969, 967, 954, 961, 962, 955, 957, 958, 963, - 962, 964, 965, 971, 963, 969, 964, 967, 960, 968, - 968, 965, 966, 970, 972, 971, 973, 974, 975, 976, - 970, 977, 974, 978, 978, 979, 972, 977, 979, 982, - 975, 980, 980, 983, 983, 973, 984, 976, 982, 985, - 986, 987, 988, 990, 985, 989, 991, 992, 984, 986, - 989, 994, 990, 987, 993, 993, 994, 988, 995, 996, - 997, 999, 992, 998, 998, 990, 991, 1000, 1000, 1001, - 1001, 1002, 1003, 1004, 1007, 1002, 1004, 1003, 996, 995, - 997, 999, 1006, 1008, 1009, 1010, 1010, 1006, 1008, 1011, - - 1011, 1012, 1007, 1013, 1014, 1015, 1012, 1016, 1018, 1017, - 1019, 1019, 1020, 1021, 1021, 1013, 1013, 1013, 1026, 1009, - 1022, 1024, 1013, 1017, 1014, 1015, 1029, 1016, 1027, 1018, - 1024, 1025, 1025, 1026, 1028, 1027, 1030, 1030, 1020, 1031, - 1022, 1032, 1034, 1028, 1035, 1040, 1036, 1034, 1037, 1035, - 1038, 1038, 1029, 1039, 1040, 1037, 1041, 1032, 1039, 1042, - 1043, 1044, 1045, 1043, 1048, 1031, 1036, 1046, 1046, 1047, - 1049, 1042, 1050, 1051, 1052, 1052, 1041, 1055, 1050, 1044, - 1053, 1056, 1051, 1048, 1047, 1049, 1054, 1054, 1045, 1057, - 1061, 1053, 1058, 1058, 1057, 1056, 1053, 1059, 1055, 1060, - - 1062, 1059, 1059, 1063, 1060, 1064, 1065, 1066, 1063, 1067, - 1065, 1069, 1062, 1068, 1071, 1070, 1061, 1064, 1068, 1066, - 1070, 1073, 1074, 1074, 1073, 1077, 1071, 1075, 1075, 1076, - 1076, 1078, 1080, 1069, 1067, 1079, 1083, 1078, 1080, 1081, - 1079, 1083, 1085, 1087, 1089, 1077, 1088, 1088, 1081, 1090, - 1091, 1092, 1093, 1096, 1085, 1087, 1093, 1094, 1090, 1099, - 1095, 1106, 1094, 45, 1089, 1095, 1100, 1096, 1091, 1101, - 1092, 1098, 1098, 1103, 1103, 1100, 1106, 1099, 1101, 1107, - 1108, 1109, 1111, 1098, 1111, 1108, 1110, 1110, 1112, 1112, - 1114, 1115, 1117, 1107, 1116, 1116, 1118, 1114, 1109, 40, - - 1119, 1117, 1120, 1121, 1122, 1123, 1124, 1127, 1126, 1127, - 1128, 1115, 1119, 1126, 1120, 1121, 1131, 1118, 1129, 1122, - 1132, 1132, 1133, 1138, 1134, 1123, 1124, 1129, 1128, 1134, - 1131, 1135, 1136, 1135, 1137, 1139, 1144, 1136, 1140, 1137, - 1141, 1138, 1143, 1140, 1146, 1141, 1145, 1145, 1133, 1147, - 1144, 1148, 1149, 1151, 1152, 1139, 1148, 1149, 1150, 1146, - 1150, 1143, 1153, 1152, 1153, 1151, 1152, 1154, 1155, 1147, - 1157, 1160, 1158, 1161, 1162, 1157, 1154, 1158, 1168, 1164, - 1155, 1166, 1167, 1169, 1160, 1164, 1171, 1166, 1170, 1170, - 1162, 1173, 1169, 1161, 1176, 1171, 1174, 1167, 1172, 1172, - - 1174, 1175, 1179, 1168, 1177, 1177, 1175, 1176, 1178, 1183, - 1173, 1182, 1182, 1184, 1184, 1186, 1178, 1187, 1183, 1185, - 1185, 1188, 1179, 1189, 1189, 1191, 1188, 1186, 1192, 1193, - 1194, 1195, 1197, 1192, 1200, 1187, 1195, 1196, 1198, 1198, - 1199, 1201, 1202, 1203, 1199, 1194, 1201, 1205, 1197, 1200, - 1191, 1206, 1193, 1207, 1209, 1196, 1208, 1210, 1212, 1212, - 1213, 1214, 1203, 1213, 1229, 1215, 1209, 1216, 1202, 1229, - 1205, 1304, 1207, 1304, 1214, 1206, 1220, 1208, 1210, 1215, - 1216, 1217, 1217, 1218, 1218, 1219, 1219, 1221, 1221, 1220, - 1222, 1222, 1223, 1223, 1224, 1225, 1225, 1226, 1226, 1227, - - 1230, 1230, 1231, 1232, 1232, 1233, 1234, 1235, 1236, 1236, - 1235, 1238, 1234, 1224, 1237, 1237, 1239, 1239, 1227, 1241, - 1242, 1231, 1243, 1233, 1236, 1245, 1243, 1244, 1244, 1247, - 1238, 1246, 1246, 1248, 1248, 1242, 1249, 1250, 1251, 1252, - 1253, 1254, 1241, 1251, 1245, 1249, 1255, 1257, 1256, 1250, - 1258, 1255, 1259, 1253, 1261, 1247, 1257, 1263, 1261, 1258, - 1260, 1265, 1254, 1256, 1252, 1260, 1259, 1266, 1266, 1267, - 1265, 1268, 1268, 1270, 1267, 1271, 1275, 1263, 1273, 1275, - 1268, 1276, 1277, 1281, 1271, 1285, 1276, 1283, 1270, 1284, - 1273, 1278, 1278, 1280, 1280, 1282, 1282, 1281, 1292, 1283, - - 1286, 1286, 1277, 1284, 1285, 1288, 1293, 1289, 1291, 1288, - 1289, 1290, 1290, 1291, 1295, 1294, 1296, 1297, 1292, 1294, - 1293, 1296, 1297, 1298, 1300, 1301, 1302, 1303, 1322, 1298, - 1301, 1302, 1307, 1307, 1295, 1303, 1311, 1311, 1314, 1321, - 1300, 1315, 1315, 1314, 1317, 1317, 1319, 1320, 1320, 1323, - 1322, 1319, 1325, 1325, 1323, 1321, 1327, 1328, 1329, 1331, - 1331, 1327, 1333, 1334, 1335, 1334, 1336, 1333, 1337, 1337, - 1340, 1336, 1341, 1329, 1342, 1328, 1338, 1338, 1335, 1339, - 1339, 1343, 1340, 1344, 1345, 1346, 1342, 1347, 1347, 1345, - 1341, 1348, 1349, 1343, 1350, 1344, 1351, 1352, 1353, 1354, - - 1348, 1355, 1356, 1357, 1362, 1346, 1364, 1356, 1357, 1351, - 1358, 1358, 1353, 1363, 1350, 1359, 1359, 1354, 1349, 1365, - 1366, 1352, 1367, 1355, 1362, 1368, 1369, 1369, 1364, 1366, - 1373, 1363, 1371, 1371, 1374, 1372, 1375, 1373, 1376, 1365, - 1378, 1377, 1367, 1368, 1372, 1379, 1379, 1380, 1381, 1374, - 1382, 1383, 1380, 1384, 1375, 1386, 1376, 1377, 1389, 1378, - 1390, 1391, 1391, 1390, 1392, 1382, 1381, 1393, 1395, 1397, - 1383, 1400, 1395, 1384, 1386, 1396, 1396, 1407, 1389, 1392, - 1399, 1399, 1397, 1401, 1401, 1393, 1402, 1402, 1406, 1406, - 1400, 1408, 1409, 1410, 1411, 1412, 1414, 1409, 1410, 1407, - - 1408, 1415, 1416, 1412, 1417, 1420, 1415, 1416, 1418, 1418, - 1420, 1414, 1421, 1411, 1419, 1419, 1429, 1421, 1430, 1417, - 1422, 1422, 1423, 1423, 1426, 1429, 1427, 1428, 1431, 1426, - 1427, 1433, 1428, 1430, 1432, 1435, 1431, 1436, 1435, 1432, - 1437, 1438, 1439, 1433, 1440, 1440, 1443, 1441, 1444, 14, - 1438, 1439, 1445, 1437, 1447, 1436, 1441, 1446, 1446, 1448, - 1448, 1449, 1450, 1447, 1452, 1443, 1453, 1450, 1444, 1449, - 1454, 1445, 1461, 1452, 1456, 1456, 1458, 1458, 1467, 1453, - 1462, 1462, 13, 1463, 1468, 1454, 1463, 1464, 1464, 1465, - 1465, 1474, 1461, 1466, 1466, 1469, 1467, 1474, 1468, 1471, - - 1469, 1470, 1470, 1471, 1475, 1478, 1479, 1480, 1481, 1475, - 1482, 1479, 1483, 1483, 1484, 1486, 1487, 1487, 1485, 1488, - 1488, 1489, 1478, 1478, 1482, 1480, 1485, 1490, 1481, 1491, - 1492, 1493, 1490, 1484, 1486, 1494, 1497, 1489, 1495, 1497, - 1493, 1499, 1500, 1500, 1501, 1502, 1508, 1503, 1501, 1491, - 0, 1507, 1504, 1506, 1502, 1494, 1492, 1518, 1495, 1499, - 1503, 1504, 1506, 1507, 1512, 1513, 1513, 1514, 1516, 1512, - 1517, 1508, 1519, 1516, 1521, 1520, 1514, 1518, 1522, 1517, - 1520, 1523, 1526, 1522, 1524, 1524, 1529, 1527, 1528, 1528, - 1529, 1530, 1521, 1519, 1531, 1532, 1533, 1535, 1534, 1537, - - 1530, 1526, 1527, 1534, 1533, 1542, 1523, 1536, 1536, 1545, - 1531, 1538, 1538, 1544, 1532, 1539, 1541, 1541, 1537, 1548, - 1539, 1543, 1543, 1535, 1549, 1542, 1550, 1544, 1546, 1546, - 1552, 1545, 1547, 1547, 1551, 1551, 1549, 1553, 1548, 1554, - 1555, 1561, 1552, 1556, 1554, 1557, 1550, 1564, 1556, 1558, - 1558, 1560, 1560, 1563, 1566, 1566, 0, 1553, 1563, 1555, - 1561, 1564, 1557, 1557, 1565, 1567, 1567, 1568, 1568, 1565, - 1569, 1571, 1571, 1573, 1573, 1569, 1575, 1575, 1576, 1577, - 1577, 1578, 1581, 1582, 1582, 1586, 1578, 1576, 1583, 1585, - 1581, 1587, 1588, 1583, 1585, 1589, 1590, 1586, 1591, 1594, - - 1595, 1595, 1597, 1591, 1596, 1596, 1597, 1605, 1588, 1587, - 1601, 1601, 1589, 1589, 1603, 1607, 1607, 1590, 1603, 1594, - 1608, 1605, 1610, 1611, 1611, 1612, 1612, 1613, 1614, 1615, - 1618, 1616, 1617, 1619, 1619, 1608, 1616, 1617, 1622, 1622, - 1610, 1624, 1624, 1614, 1625, 1625, 1627, 1628, 1628, 1618, - 1615, 1631, 1613, 1632, 1633, 1634, 1631, 1635, 1627, 1633, - 1636, 1641, 1642, 1645, 1643, 1641, 1644, 1632, 1646, 1647, - 1650, 1648, 1649, 1649, 1634, 1635, 1636, 1643, 1651, 1650, - 1653, 1645, 1642, 1651, 1646, 1644, 1648, 1652, 1654, 1658, - 1655, 1659, 1652, 1656, 1647, 1655, 1660, 1661, 1662, 1664, - - 1663, 1660, 1661, 1654, 1658, 1653, 1665, 1656, 1666, 1667, - 1659, 1668, 1662, 1663, 1669, 1672, 1670, 0, 1664, 1677, - 1665, 1670, 1667, 1671, 1668, 1673, 1673, 1666, 1671, 1681, - 1674, 1675, 1676, 1669, 1672, 1674, 1675, 1676, 1677, 1678, - 1679, 1679, 1680, 1682, 1678, 1683, 1684, 1685, 1681, 1680, - 1683, 1687, 1688, 1689, 1690, 1693, 1687, 1691, 1691, 1692, - 1685, 1696, 1682, 1697, 1692, 1684, 1696, 1690, 1694, 1694, - 1697, 1688, 1689, 1698, 1693, 1695, 1695, 1699, 1699, 1700, - 1701, 1702, 1704, 1703, 1706, 1707, 1700, 1701, 1703, 1706, - 1707, 1708, 1698, 1709, 1710, 1710, 1711, 1712, 1713, 1713, - - 1702, 1704, 1714, 1714, 1715, 1716, 1716, 1717, 1717, 1720, - 1708, 1715, 1709, 1718, 1720, 1711, 1712, 1723, 1724, 1725, - 1718, 0, 1723, 1726, 1726, 1727, 1727, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1724, 1725, 1731, - 1731, 1731, 1731, 1731, 1731, 1731, 1732, 1732, 1732, 1732, - 1732, 1732, 1732, 1733, 1733, 1733, 1733, 1733, 1733, 1733, - 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1735, 1735, 1735, - 1735, 1735, 1735, 1735, 1737, 1737, 0, 1737, 1737, 1737, - 1737, 1738, 1738, 0, 0, 0, 1738, 1738, 1739, 1739, - 0, 0, 1739, 0, 1739, 1740, 0, 0, 0, 0, - - 0, 1740, 1741, 1741, 0, 0, 0, 1741, 1741, 1742, - 0, 0, 0, 0, 0, 1742, 1743, 1743, 0, 1743, - 1743, 1743, 1743, 1744, 1744, 0, 1744, 1744, 1744, 1744, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730 + 31, 23, 38, 27, 23, 27, 23, 23, 31, 82, + 32, 32, 35, 35, 31, 32, 38, 35, 31, 36, + 119, 38, 37, 37, 36, 37, 78, 35, 39, 39, + 35, 32, 34, 39, 36, 100, 119, 34, 36, 36, + 37, 34, 100, 55, 78, 55, 55, 34, 55, 63, + + 34, 63, 63, 65, 63, 65, 65, 34, 65, 68, + 63, 68, 68, 75, 68, 76, 80, 75, 77, 68, + 71, 77, 71, 71, 79, 71, 81, 83, 80, 85, + 71, 71, 84, 86, 77, 76, 87, 84, 79, 88, + 94, 89, 90, 85, 81, 89, 83, 90, 91, 92, + 84, 93, 92, 86, 87, 92, 93, 88, 95, 94, + 97, 96, 91, 95, 96, 98, 99, 101, 96, 92, + 99, 102, 103, 104, 105, 109, 107, 106, 102, 98, + 101, 106, 108, 95, 97, 103, 110, 108, 111, 112, + 113, 108, 105, 104, 107, 109, 114, 115, 116, 117, + + 117, 111, 115, 118, 112, 120, 110, 122, 142, 113, + 116, 121, 122, 121, 114, 123, 142, 124, 126, 126, + 117, 118, 128, 133, 133, 128, 120, 123, 130, 138, + 130, 130, 138, 130, 121, 124, 135, 143, 135, 135, + 136, 135, 136, 136, 139, 136, 141, 140, 144, 139, + 145, 136, 140, 146, 152, 147, 143, 148, 146, 146, + 147, 141, 148, 144, 149, 157, 149, 151, 151, 153, + 145, 155, 156, 152, 153, 155, 160, 156, 158, 157, + 159, 164, 163, 161, 162, 162, 149, 150, 161, 166, + 166, 150, 159, 158, 160, 159, 150, 164, 165, 170, + + 167, 150, 163, 165, 162, 167, 169, 150, 150, 168, + 176, 167, 171, 172, 168, 169, 173, 171, 172, 174, + 170, 173, 175, 176, 174, 177, 178, 179, 180, 175, + 181, 177, 182, 179, 183, 184, 185, 182, 181, 186, + 187, 185, 188, 189, 194, 191, 178, 188, 193, 183, + 180, 190, 191, 190, 651, 184, 194, 192, 187, 187, + 200, 186, 192, 189, 195, 195, 196, 193, 197, 199, + 201, 196, 198, 197, 198, 202, 206, 203, 201, 200, + 202, 199, 203, 204, 205, 207, 208, 209, 204, 196, + 209, 198, 214, 207, 206, 210, 210, 211, 215, 205, + + 211, 212, 212, 213, 213, 220, 216, 218, 214, 216, + 217, 208, 219, 215, 217, 224, 218, 219, 222, 220, + 221, 221, 223, 222, 225, 226, 227, 223, 228, 228, + 229, 231, 230, 232, 234, 224, 230, 234, 233, 227, + 235, 236, 225, 233, 237, 232, 226, 238, 229, 231, + 239, 134, 235, 237, 240, 242, 242, 241, 236, 241, + 241, 236, 243, 239, 244, 243, 240, 245, 238, 246, + 247, 248, 248, 250, 250, 249, 251, 252, 246, 247, + 249, 244, 245, 253, 244, 254, 255, 256, 258, 252, + 254, 251, 256, 257, 259, 260, 257, 263, 257, 264, + + 261, 265, 258, 253, 260, 261, 255, 262, 266, 268, + 259, 267, 262, 259, 267, 259, 265, 270, 263, 264, + 271, 272, 266, 268, 274, 273, 277, 132, 275, 271, + 267, 269, 270, 269, 269, 276, 278, 279, 280, 274, + 276, 282, 272, 269, 273, 269, 269, 269, 275, 277, + 269, 283, 279, 280, 281, 284, 278, 285, 286, 281, + 284, 282, 288, 286, 289, 283, 287, 287, 290, 287, + 292, 291, 292, 285, 293, 294, 295, 296, 293, 297, + 289, 419, 288, 419, 290, 291, 296, 298, 297, 300, + 295, 299, 298, 294, 302, 299, 301, 309, 300, 296, + + 302, 301, 303, 304, 304, 305, 303, 306, 307, 307, + 305, 308, 310, 311, 315, 312, 308, 319, 309, 312, + 306, 310, 313, 313, 314, 311, 316, 316, 320, 314, + 318, 318, 321, 322, 323, 315, 320, 325, 319, 326, + 327, 321, 328, 329, 330, 331, 323, 332, 329, 333, + 331, 328, 330, 322, 327, 334, 335, 325, 336, 326, + 335, 337, 338, 339, 342, 332, 337, 341, 345, 343, + 347, 333, 344, 336, 343, 344, 334, 131, 338, 343, + 342, 349, 339, 340, 340, 346, 346, 341, 345, 340, + 350, 340, 348, 348, 352, 347, 349, 351, 353, 340, + + 354, 355, 350, 356, 357, 354, 360, 358, 361, 340, + 355, 358, 351, 352, 362, 363, 359, 365, 360, 357, + 353, 359, 356, 363, 364, 364, 361, 362, 366, 365, + 367, 368, 369, 367, 370, 369, 372, 371, 373, 373, + 366, 371, 371, 374, 374, 379, 368, 375, 401, 372, + 370, 385, 375, 370, 376, 376, 377, 377, 378, 380, + 401, 381, 382, 378, 380, 381, 379, 382, 383, 384, + 386, 385, 383, 387, 384, 386, 388, 389, 387, 391, + 389, 390, 390, 393, 392, 389, 394, 398, 393, 389, + 388, 395, 396, 400, 395, 394, 396, 391, 392, 397, + + 398, 399, 402, 406, 397, 403, 399, 402, 406, 400, + 404, 403, 405, 404, 407, 405, 408, 409, 396, 410, + 411, 412, 409, 411, 410, 414, 412, 420, 416, 413, + 408, 415, 407, 413, 413, 422, 415, 416, 414, 417, + 418, 421, 417, 421, 418, 418, 420, 423, 424, 425, + 426, 427, 432, 422, 426, 428, 429, 417, 430, 431, + 427, 433, 433, 437, 431, 423, 435, 424, 434, 425, + 428, 432, 434, 430, 429, 436, 438, 435, 439, 437, + 436, 440, 441, 442, 443, 445, 446, 441, 440, 443, + 442, 439, 444, 446, 448, 438, 447, 444, 450, 449, + + 452, 450, 451, 445, 449, 447, 451, 454, 448, 453, + 453, 457, 456, 458, 459, 457, 454, 456, 453, 460, + 461, 452, 462, 468, 465, 458, 471, 460, 472, 473, + 478, 474, 459, 473, 472, 471, 474, 476, 461, 465, + 468, 477, 476, 479, 480, 480, 479, 462, 463, 481, + 482, 482, 129, 463, 483, 478, 481, 463, 487, 477, + 463, 484, 484, 485, 488, 518, 485, 463, 489, 483, + 463, 475, 475, 475, 486, 475, 492, 487, 475, 486, + 490, 491, 491, 475, 488, 493, 518, 489, 490, 475, + 475, 492, 494, 495, 495, 496, 497, 494, 499, 498, + + 496, 497, 498, 493, 499, 500, 501, 502, 505, 504, + 503, 506, 506, 500, 501, 503, 504, 508, 507, 509, + 511, 512, 508, 513, 512, 502, 507, 505, 515, 511, + 514, 514, 520, 516, 519, 521, 516, 513, 509, 519, + 522, 523, 524, 515, 516, 525, 526, 527, 528, 525, + 530, 524, 531, 520, 529, 521, 530, 528, 533, 532, + 534, 523, 522, 533, 526, 534, 527, 535, 529, 536, + 537, 535, 531, 532, 538, 539, 540, 540, 541, 538, + 543, 542, 537, 541, 542, 545, 544, 546, 536, 549, + 545, 547, 547, 548, 548, 551, 539, 550, 543, 544, + + 552, 550, 553, 554, 549, 556, 557, 546, 558, 556, + 560, 559, 127, 561, 551, 560, 553, 562, 563, 568, + 564, 557, 563, 554, 552, 555, 559, 561, 555, 591, + 555, 562, 565, 558, 555, 564, 555, 565, 566, 567, + 568, 555, 569, 566, 570, 591, 555, 565, 573, 571, + 570, 572, 572, 567, 571, 575, 569, 572, 574, 572, + 573, 576, 578, 574, 577, 577, 579, 578, 580, 575, + 581, 582, 582, 576, 579, 583, 585, 572, 587, 583, + 586, 585, 580, 586, 590, 588, 589, 592, 593, 581, + 594, 589, 595, 597, 596, 594, 592, 587, 588, 598, + + 600, 602, 597, 590, 598, 601, 603, 593, 596, 604, + 605, 603, 595, 606, 604, 605, 602, 607, 607, 600, + 608, 609, 606, 601, 611, 608, 612, 612, 611, 611, + 612, 614, 613, 615, 609, 613, 616, 617, 618, 619, + 617, 620, 622, 621, 619, 626, 620, 623, 615, 621, + 628, 614, 625, 623, 624, 624, 616, 627, 622, 618, + 627, 625, 629, 626, 630, 631, 632, 633, 628, 634, + 635, 632, 633, 635, 636, 638, 637, 639, 631, 640, + 638, 629, 639, 642, 630, 636, 643, 634, 637, 641, + 641, 644, 645, 646, 640, 647, 645, 648, 649, 652, + + 643, 654, 642, 644, 647, 653, 125, 655, 663, 656, + 657, 646, 655, 652, 656, 657, 648, 658, 659, 660, + 653, 654, 658, 649, 661, 662, 664, 663, 665, 661, + 666, 666, 659, 660, 667, 669, 668, 670, 670, 671, + 662, 664, 668, 672, 671, 673, 674, 665, 675, 674, + 672, 676, 667, 677, 678, 669, 679, 680, 677, 673, + 676, 679, 682, 681, 683, 684, 675, 681, 685, 686, + 687, 682, 688, 678, 689, 685, 680, 690, 692, 683, + 684, 686, 691, 690, 698, 693, 695, 696, 697, 687, + 699, 695, 689, 688, 693, 699, 697, 691, 692, 701, + + 703, 696, 700, 704, 698, 705, 700, 700, 702, 702, + 705, 707, 704, 703, 706, 706, 707, 708, 701, 709, + 709, 710, 708, 711, 712, 713, 714, 715, 711, 716, + 710, 714, 715, 717, 716, 718, 720, 717, 712, 719, + 719, 722, 723, 713, 718, 722, 724, 720, 726, 718, + 725, 718, 727, 718, 725, 725, 729, 723, 728, 730, + 731, 733, 726, 738, 724, 67, 728, 732, 732, 737, + 729, 727, 734, 734, 737, 736, 733, 730, 736, 739, + 739, 740, 738, 741, 741, 731, 742, 743, 743, 744, + 745, 742, 746, 747, 749, 745, 748, 748, 747, 750, + + 746, 740, 753, 751, 758, 750, 754, 753, 755, 744, + 751, 754, 749, 755, 756, 757, 759, 760, 760, 756, + 761, 762, 764, 758, 757, 763, 765, 759, 769, 766, + 763, 767, 768, 768, 770, 771, 764, 773, 772, 61, + 761, 766, 764, 772, 762, 774, 765, 776, 769, 767, + 774, 776, 776, 771, 777, 779, 778, 779, 780, 770, + 773, 781, 783, 777, 778, 782, 781, 784, 785, 782, + 786, 787, 780, 783, 788, 789, 787, 790, 791, 792, + 798, 790, 796, 793, 794, 795, 784, 798, 786, 804, + 802, 800, 788, 56, 785, 789, 791, 793, 792, 794, + + 795, 796, 797, 799, 801, 802, 803, 797, 799, 800, + 804, 805, 803, 801, 806, 807, 805, 808, 808, 806, + 807, 810, 810, 811, 812, 813, 814, 815, 817, 812, + 818, 815, 815, 816, 816, 819, 820, 821, 823, 813, + 824, 811, 827, 821, 825, 814, 822, 817, 826, 818, + 828, 822, 838, 829, 831, 820, 827, 823, 833, 824, + 834, 819, 833, 825, 830, 830, 831, 826, 829, 832, + 835, 828, 838, 834, 832, 836, 842, 836, 51, 835, + 840, 836, 839, 839, 841, 840, 843, 845, 841, 857, + 847, 843, 848, 848, 836, 847, 842, 849, 851, 851, + + 853, 853, 849, 855, 857, 845, 855, 856, 856, 858, + 859, 860, 861, 862, 862, 863, 860, 864, 864, 865, + 866, 867, 871, 868, 859, 867, 875, 861, 869, 872, + 876, 866, 878, 869, 858, 863, 873, 873, 877, 874, + 871, 865, 868, 872, 874, 882, 875, 877, 880, 879, + 876, 879, 878, 880, 881, 883, 884, 885, 885, 881, + 883, 886, 888, 889, 889, 882, 890, 886, 891, 892, + 884, 893, 892, 895, 894, 892, 893, 897, 890, 894, + 896, 898, 895, 901, 898, 896, 888, 892, 891, 899, + 900, 900, 902, 903, 899, 904, 906, 910, 905, 907, + + 904, 901, 897, 905, 907, 908, 908, 909, 911, 912, + 913, 902, 909, 903, 914, 910, 916, 915, 917, 906, + 918, 916, 919, 925, 913, 50, 914, 921, 911, 912, + 915, 922, 921, 924, 923, 928, 928, 933, 917, 925, + 918, 923, 924, 919, 929, 924, 922, 929, 930, 931, + 932, 934, 935, 930, 937, 937, 933, 936, 938, 932, + 934, 935, 936, 934, 939, 931, 940, 941, 942, 943, + 944, 945, 945, 946, 947, 948, 948, 939, 938, 947, + 942, 941, 950, 949, 940, 953, 952, 956, 944, 946, + 948, 952, 949, 954, 943, 949, 955, 958, 954, 957, + + 950, 962, 955, 953, 957, 959, 963, 956, 959, 962, + 958, 964, 965, 966, 959, 968, 967, 970, 966, 963, + 971, 972, 973, 974, 971, 975, 972, 973, 974, 964, + 976, 965, 967, 968, 975, 977, 980, 970, 978, 978, + 979, 983, 984, 980, 981, 982, 985, 984, 986, 987, + 977, 988, 988, 976, 979, 987, 981, 982, 985, 989, + 983, 992, 989, 990, 990, 994, 986, 993, 993, 995, + 992, 996, 997, 998, 995, 1001, 999, 994, 1000, 1002, + 996, 999, 1003, 1003, 997, 1004, 1005, 1000, 998, 1006, + 1004, 1007, 1008, 1008, 1002, 1001, 1009, 1010, 1010, 1012, + + 1000, 1011, 1011, 1012, 1013, 1017, 1019, 1005, 1006, 1013, + 1014, 1007, 1016, 1014, 1018, 1024, 1009, 1016, 1027, 1018, + 1020, 1020, 1022, 1017, 1021, 1021, 1023, 1022, 1025, 1026, + 1028, 1019, 1027, 1029, 1029, 1024, 1030, 1032, 1023, 1023, + 1023, 1031, 1031, 1034, 1036, 1023, 1035, 1035, 1025, 1026, + 1039, 1028, 1034, 1037, 1038, 1040, 1040, 1032, 1041, 1036, + 1037, 1042, 1030, 1038, 1044, 1045, 1046, 1047, 1048, 1044, + 1045, 1049, 1049, 1048, 1047, 1050, 1039, 1042, 1051, 1052, + 1050, 1053, 1054, 1055, 1041, 1054, 1046, 1051, 1056, 1057, + 1057, 1058, 1059, 1053, 1060, 1062, 1061, 1063, 1063, 1052, + + 45, 1055, 1061, 1066, 1062, 1064, 1058, 1065, 1065, 1060, + 1068, 1059, 1067, 1072, 1056, 1068, 1064, 1069, 1069, 1073, + 1071, 1064, 1078, 1070, 1066, 1071, 1067, 1070, 1070, 1074, + 1075, 1073, 1076, 1077, 1074, 1079, 1076, 1080, 1081, 1072, + 1079, 1082, 1075, 1081, 1088, 1077, 1084, 1078, 40, 1084, + 1085, 1085, 1089, 1082, 1086, 1086, 1087, 1087, 1089, 1080, + 1090, 1091, 1092, 1094, 1088, 1090, 1096, 1091, 1094, 1098, + 1100, 1092, 1099, 1099, 1101, 1102, 1103, 1105, 1096, 1110, + 1104, 1098, 1105, 1101, 1104, 1107, 1106, 1111, 1109, 1109, + 1100, 1106, 1112, 1102, 1117, 1103, 1111, 1110, 1118, 1107, + + 1109, 1112, 1114, 1114, 1120, 1119, 1121, 1121, 1126, 1117, + 1119, 1122, 1118, 1122, 1123, 1123, 1125, 1127, 1127, 1129, + 1128, 1120, 1130, 1125, 1131, 1132, 1133, 1134, 1126, 1128, + 1135, 1139, 1142, 1137, 1130, 1144, 1131, 1132, 1137, 1140, + 1129, 1133, 1138, 1146, 1138, 1146, 1142, 1134, 1140, 1139, + 1135, 1143, 1143, 1145, 1147, 1148, 1149, 1150, 1145, 1147, + 1148, 1144, 1151, 1152, 1153, 1155, 1156, 1151, 1152, 1157, + 1157, 1158, 1153, 1159, 1149, 14, 1160, 1150, 1161, 1163, + 1156, 1160, 1167, 1161, 1155, 1162, 1158, 1162, 1164, 1166, + 1165, 1163, 1165, 1159, 1167, 1172, 1169, 1164, 1166, 1170, + + 1164, 1169, 1173, 1174, 1170, 1176, 1178, 1180, 1172, 1179, + 1185, 1176, 1178, 1187, 1181, 1182, 1182, 1183, 1187, 1174, + 1184, 1184, 1173, 1181, 1179, 1188, 1183, 1186, 1190, 1185, + 1191, 1186, 1180, 1189, 1189, 1195, 1190, 1198, 1188, 1194, + 1194, 1196, 1196, 1199, 1195, 1197, 1197, 1200, 1203, 1198, + 1191, 1204, 1200, 1201, 1201, 1205, 1204, 1206, 1207, 1208, + 1209, 1199, 1211, 1207, 1210, 1210, 1211, 1212, 1214, 1213, + 1215, 1218, 1206, 1203, 1213, 1217, 1209, 1208, 1205, 1220, + 1219, 1221, 1212, 1222, 1224, 1224, 13, 1225, 1226, 1215, + 1225, 1227, 1241, 1221, 1214, 1218, 1228, 1241, 1217, 1219, + + 1220, 1226, 1229, 1229, 1222, 1227, 1230, 1230, 1232, 1228, + 1231, 1231, 1233, 1233, 1234, 1234, 1235, 1235, 1236, 1237, + 1237, 1232, 1238, 1238, 1239, 1242, 1242, 1243, 1244, 1244, + 1245, 1247, 1246, 1251, 1247, 1248, 1248, 1236, 1246, 1249, + 1249, 1250, 1254, 1239, 1252, 1252, 1243, 1255, 1245, 1256, + 1258, 1248, 1251, 1256, 1257, 1257, 1250, 1259, 1259, 1260, + 1261, 1261, 1255, 1262, 1263, 1254, 1264, 1265, 1266, 1258, + 1267, 1264, 1262, 1268, 1269, 1270, 1263, 1271, 1268, 1272, + 1276, 1266, 1273, 0, 1270, 1260, 1271, 1273, 1278, 1269, + 1274, 1267, 1265, 1272, 1274, 1279, 1279, 1278, 1280, 1283, + + 1276, 1281, 1281, 1280, 1284, 1286, 1288, 1289, 1290, 1288, + 1281, 1294, 1289, 1284, 1283, 1291, 1291, 1286, 1293, 1293, + 1295, 1295, 1296, 1297, 1298, 1294, 1299, 1299, 1290, 1301, + 1303, 1303, 1302, 1301, 1296, 1302, 1304, 1297, 1305, 1306, + 1307, 1304, 1308, 1298, 1307, 1309, 1310, 1313, 1311, 0, + 1309, 1310, 1314, 1306, 1311, 1315, 1316, 1314, 1305, 1317, + 1315, 1317, 1308, 1313, 1316, 1320, 1320, 1324, 1324, 1327, + 1328, 1328, 1330, 1330, 1327, 1332, 1333, 1333, 1334, 1335, + 1332, 1336, 1341, 1338, 1339, 1339, 1336, 1341, 1342, 1343, + 1345, 1345, 1347, 1349, 1334, 1338, 1348, 1347, 1348, 1355, + + 1350, 1335, 1351, 1351, 1343, 1350, 1342, 1349, 1352, 1352, + 1353, 1353, 1354, 1356, 1357, 1358, 1359, 1355, 1360, 1361, + 1361, 1359, 1362, 1363, 1354, 1356, 1357, 1358, 1364, 1365, + 1366, 1362, 1367, 1368, 1369, 1370, 1371, 1376, 1360, 1378, + 1370, 1371, 1365, 1372, 1372, 1377, 1367, 1379, 1364, 1363, + 1380, 1368, 1373, 1373, 1366, 1381, 1369, 1376, 1382, 1380, + 1389, 1378, 1386, 1377, 1383, 1383, 1387, 1379, 1385, 1385, + 1388, 1386, 1390, 1387, 1395, 1381, 1382, 1391, 1389, 1392, + 1393, 1393, 1394, 1397, 1396, 1388, 1398, 1394, 1400, 1403, + 1390, 1404, 1395, 1391, 1404, 1405, 1405, 1406, 1392, 1396, + + 1407, 1408, 1397, 1412, 1410, 1408, 1398, 1400, 1410, 1403, + 1411, 1411, 1406, 1414, 1414, 1415, 1412, 1422, 1407, 1416, + 1416, 1417, 1417, 1421, 1421, 1424, 1423, 1425, 1426, 1427, + 1424, 1429, 1425, 1430, 1415, 1423, 1431, 1427, 1430, 1422, + 1432, 1431, 1433, 1433, 1434, 1434, 1429, 1426, 1435, 1436, + 1437, 1437, 1445, 1435, 1436, 1432, 1438, 1438, 1441, 1444, + 1442, 1443, 1446, 1441, 1442, 1448, 1443, 1445, 1444, 1447, + 1446, 1451, 1450, 1452, 1447, 1450, 1453, 1448, 1454, 1455, + 1455, 1456, 1458, 1459, 1462, 1453, 1452, 1454, 1460, 1451, + 1456, 1461, 1461, 1462, 1463, 1463, 1464, 1465, 1468, 1467, + + 1470, 1458, 1465, 1459, 1464, 1469, 1477, 1460, 1467, 1469, + 0, 1468, 1472, 1472, 1483, 1470, 1474, 1474, 1478, 1478, + 1479, 1480, 1480, 1479, 1481, 1481, 1477, 1482, 1482, 1484, + 1485, 1490, 1483, 1486, 1486, 1485, 1487, 1490, 1494, 1491, + 1487, 1495, 1496, 1484, 1491, 1497, 1495, 1498, 1499, 1499, + 1500, 1501, 1502, 1503, 1503, 1494, 1494, 1504, 1504, 1501, + 1496, 1498, 1505, 1506, 1507, 1497, 1508, 1509, 1506, 1500, + 1510, 1502, 1513, 1511, 1518, 1513, 1509, 1515, 1505, 1516, + 1516, 1517, 1519, 1518, 1507, 1517, 1520, 1521, 1524, 1523, + 1510, 1525, 1508, 1511, 1535, 1515, 1521, 1519, 1523, 1520, + + 1524, 1529, 1530, 1530, 1531, 1533, 1529, 1536, 1534, 1538, + 1533, 1540, 1543, 1531, 1535, 1537, 1525, 1534, 1539, 1544, + 1537, 1541, 1541, 1539, 1545, 1545, 1546, 1538, 1536, 1547, + 1546, 1543, 1548, 1549, 1544, 1550, 1540, 1551, 1547, 1552, + 1553, 1553, 1551, 1550, 1554, 1555, 1555, 1559, 1548, 1556, + 1558, 1558, 1549, 1560, 1556, 1561, 1561, 1562, 1563, 1564, + 1564, 1565, 1565, 1554, 1566, 1552, 1567, 1559, 1568, 1569, + 1569, 1562, 1570, 1571, 1572, 1573, 1560, 1574, 1567, 1572, + 1563, 1575, 1574, 1566, 1570, 1576, 1576, 1579, 1568, 1578, + 1578, 1581, 1583, 1571, 1573, 1582, 1581, 1583, 1575, 1575, + + 1584, 1584, 1585, 1585, 1586, 1586, 1579, 1587, 1594, 1582, + 1589, 1589, 1587, 1591, 1591, 1593, 1593, 1595, 1596, 1596, + 1597, 1600, 1594, 1601, 1601, 1597, 1595, 1602, 1604, 1600, + 1605, 1606, 1602, 1604, 1607, 1608, 1609, 0, 1610, 1613, + 1614, 1614, 1605, 1610, 1615, 1615, 1633, 1616, 1630, 1606, + 1607, 1616, 1608, 1608, 1620, 1620, 1622, 1609, 1625, 1613, + 1622, 1624, 1624, 1627, 1627, 1628, 1630, 1631, 1631, 1632, + 1632, 1633, 1625, 1634, 1635, 1638, 1636, 1637, 1639, 1639, + 1628, 1636, 1637, 1642, 1642, 1644, 1644, 1648, 1634, 1646, + 1646, 1649, 1649, 1652, 1638, 1635, 1653, 1654, 1652, 1648, + + 1655, 1657, 1654, 1656, 1662, 1663, 1666, 1664, 1662, 1665, + 1653, 1667, 1668, 1671, 1669, 1670, 1670, 1657, 1672, 1655, + 1664, 1656, 1671, 1672, 1666, 1663, 1673, 1667, 1665, 1669, + 1674, 1673, 1675, 1676, 1677, 1679, 1681, 1668, 1676, 1680, + 1682, 1681, 1683, 1685, 1684, 1682, 1686, 1675, 1677, 1687, + 1679, 1688, 1689, 1690, 1691, 1674, 1683, 1684, 1680, 1691, + 1686, 1692, 1685, 1693, 1688, 1689, 1692, 1698, 1687, 1694, + 1694, 1695, 1690, 1696, 1697, 1699, 1695, 1702, 1696, 1697, + 1699, 1701, 1693, 1700, 1700, 1703, 1698, 1704, 1701, 1705, + 1706, 1709, 1704, 1708, 1710, 1714, 1702, 1713, 1708, 1711, + + 1712, 1712, 1713, 1706, 1703, 1715, 1715, 1719, 1705, 0, + 1709, 1718, 1711, 1710, 1714, 1716, 1716, 1717, 1718, 1720, + 1720, 1721, 1717, 1722, 1723, 1725, 1719, 1724, 1721, 1727, + 1722, 1728, 1724, 1729, 1727, 1730, 1728, 1731, 1731, 1732, + 1733, 1734, 1734, 1723, 1725, 1735, 1735, 0, 1736, 1737, + 1737, 1745, 1729, 1739, 1730, 1736, 1738, 1738, 1732, 1733, + 1739, 1741, 1744, 1746, 1747, 1747, 1741, 1744, 1748, 1748, + 1745, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1746, 1752, 1752, 1752, 1752, 1752, 1752, 1752, + 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1754, 1754, 1754, + + 1754, 1754, 1754, 1754, 1755, 1755, 1755, 1755, 1755, 1755, + 1755, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1758, 1758, + 0, 1758, 1758, 1758, 1758, 1759, 1759, 0, 0, 0, + 1759, 1759, 1760, 1760, 0, 0, 1760, 0, 1760, 1761, + 0, 0, 0, 0, 0, 1761, 1762, 1762, 0, 0, + 0, 1762, 1762, 1763, 0, 0, 0, 0, 0, 1763, + 1764, 1764, 0, 1764, 1764, 1764, 1764, 1765, 1765, 0, + 1765, 1765, 1765, 1765, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751 } ; static yy_state_type yy_last_accepting_state; @@ -1966,7 +1985,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1968 "<stdout>" +#line 1987 "<stdout>" #define INITIAL 0 #define quotedstring 1 @@ -2153,7 +2172,7 @@ YY_DECL #line 197 "./util/configlexer.lex" -#line 2155 "<stdout>" +#line 2174 "<stdout>" if ( !(yy_init) ) { @@ -2212,13 +2231,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 >= 1731 ) + if ( yy_current_state >= 1752 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 3431 ); + while ( yy_base[yy_current_state] != 3475 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2784,274 +2803,279 @@ YY_RULE_SETUP case 108: YY_RULE_SETUP #line 309 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 109: YY_RULE_SETUP #line 310 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 110: YY_RULE_SETUP #line 311 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 111: YY_RULE_SETUP #line 312 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 112: YY_RULE_SETUP #line 313 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 113: YY_RULE_SETUP #line 314 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 114: YY_RULE_SETUP #line 315 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 115: YY_RULE_SETUP #line 316 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 116: YY_RULE_SETUP #line 317 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 117: YY_RULE_SETUP #line 318 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 118: YY_RULE_SETUP #line 319 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 119: YY_RULE_SETUP #line 320 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 120: YY_RULE_SETUP #line 321 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 121: YY_RULE_SETUP #line 322 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 122: YY_RULE_SETUP #line 323 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 123: YY_RULE_SETUP #line 324 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 124: YY_RULE_SETUP #line 325 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 125: YY_RULE_SETUP #line 326 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 126: YY_RULE_SETUP #line 327 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 127: YY_RULE_SETUP #line 328 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 128: YY_RULE_SETUP #line 329 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 129: YY_RULE_SETUP #line 330 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 130: YY_RULE_SETUP #line 331 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 131: YY_RULE_SETUP #line 332 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 132: YY_RULE_SETUP #line 333 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 133: YY_RULE_SETUP #line 334 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 134: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 135: YY_RULE_SETUP #line 336 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 136: YY_RULE_SETUP #line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 137: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 138: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 139: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 140: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 141: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 142: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 143: YY_RULE_SETUP -#line 345 "./util/configlexer.lex" +#line 344 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 144: YY_RULE_SETUP -#line 347 "./util/configlexer.lex" +#line 346 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 145: YY_RULE_SETUP -#line 349 "./util/configlexer.lex" +#line 348 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 146: YY_RULE_SETUP -#line 351 "./util/configlexer.lex" +#line 350 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 147: YY_RULE_SETUP -#line 353 "./util/configlexer.lex" +#line 352 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 148: YY_RULE_SETUP -#line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +#line 354 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 149: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 150: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 151: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 152: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 153: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 154: -/* rule 154 can match eol */ YY_RULE_SETUP #line 361 "./util/configlexer.lex" +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } + YY_BREAK +case 155: +/* rule 155 can match eol */ +YY_RULE_SETUP +#line 362 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 155: +case 156: YY_RULE_SETUP -#line 364 "./util/configlexer.lex" +#line 365 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 365 "./util/configlexer.lex" +#line 366 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 370 "./util/configlexer.lex" +#line 371 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 157: -/* rule 157 can match eol */ +case 158: +/* rule 158 can match eol */ YY_RULE_SETUP -#line 371 "./util/configlexer.lex" +#line 372 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 373 "./util/configlexer.lex" +#line 374 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3064,34 +3088,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 159: +case 160: YY_RULE_SETUP -#line 385 "./util/configlexer.lex" +#line 386 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 386 "./util/configlexer.lex" +#line 387 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 391 "./util/configlexer.lex" +#line 392 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 161: -/* rule 161 can match eol */ +case 162: +/* rule 162 can match eol */ YY_RULE_SETUP -#line 392 "./util/configlexer.lex" +#line 393 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 394 "./util/configlexer.lex" +#line 395 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3104,38 +3128,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 163: +case 164: YY_RULE_SETUP -#line 406 "./util/configlexer.lex" +#line 407 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 408 "./util/configlexer.lex" +#line 409 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 164: -YY_RULE_SETUP -#line 412 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 165: -/* rule 165 can match eol */ YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 166: +/* rule 166 can match eol */ YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 167: YY_RULE_SETUP #line 415 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 168: +YY_RULE_SETUP +#line 416 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -3143,27 +3167,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 420 "./util/configlexer.lex" +#line 421 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 424 "./util/configlexer.lex" +#line 425 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 169: -/* rule 169 can match eol */ +case 170: +/* rule 170 can match eol */ YY_RULE_SETUP -#line 425 "./util/configlexer.lex" +#line 426 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 427 "./util/configlexer.lex" +#line 428 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -3173,7 +3197,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 433 "./util/configlexer.lex" +#line 434 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -3185,33 +3209,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 444 "./util/configlexer.lex" +#line 445 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 448 "./util/configlexer.lex" +#line 449 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 452 "./util/configlexer.lex" +#line 453 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 456 "./util/configlexer.lex" +#line 457 "./util/configlexer.lex" ECHO; YY_BREAK -#line 3213 "<stdout>" +#line 3237 "<stdout>" case YY_END_OF_BUFFER: { @@ -3501,7 +3525,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 >= 1731 ) + if ( yy_current_state >= 1752 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3529,11 +3553,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 >= 1731 ) + if ( yy_current_state >= 1752 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1730); + yy_is_jam = (yy_current_state == 1751); return yy_is_jam ? 0 : yy_current_state; } @@ -4166,7 +4190,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 456 "./util/configlexer.lex" +#line 457 "./util/configlexer.lex" diff --git a/external/unbound/util/configlexer.lex b/external/unbound/util/configlexer.lex index 5622f2170..a776c766f 100644 --- a/external/unbound/util/configlexer.lex +++ b/external/unbound/util/configlexer.lex @@ -306,6 +306,7 @@ val-nsec3-keysize-iterations{COLON} { add-holddown{COLON} { YDVAR(1, VAR_ADD_HOLDDOWN) } del-holddown{COLON} { YDVAR(1, VAR_DEL_HOLDDOWN) } keep-missing{COLON} { YDVAR(1, VAR_KEEP_MISSING) } +permit-small-holddown{COLON} { YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } use-syslog{COLON} { YDVAR(1, VAR_USE_SYSLOG) } log-time-ascii{COLON} { YDVAR(1, VAR_LOG_TIME_ASCII) } log-queries{COLON} { YDVAR(1, VAR_LOG_QUERIES) } diff --git a/external/unbound/util/configparser.c b/external/unbound/util/configparser.c index f7ebd5d51..a571f5c7f 100644 --- a/external/unbound/util/configparser.c +++ b/external/unbound/util/configparser.c @@ -284,7 +284,8 @@ extern int yydebug; VAR_RATELIMIT_BELOW_DOMAIN = 412, VAR_RATELIMIT_FACTOR = 413, VAR_CAPS_WHITELIST = 414, - VAR_CACHE_MAX_NEGATIVE_TTL = 415 + VAR_CACHE_MAX_NEGATIVE_TTL = 415, + VAR_PERMIT_SMALL_HOLDDOWN = 416 }; #endif /* Tokens. */ @@ -446,6 +447,7 @@ extern int yydebug; #define VAR_RATELIMIT_FACTOR 413 #define VAR_CAPS_WHITELIST 414 #define VAR_CACHE_MAX_NEGATIVE_TTL 415 +#define VAR_PERMIT_SMALL_HOLDDOWN 416 @@ -459,7 +461,7 @@ typedef union YYSTYPE /* Line 387 of yacc.c */ -#line 463 "util/configparser.c" +#line 465 "util/configparser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -487,7 +489,7 @@ int yyparse (); /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ -#line 491 "util/configparser.c" +#line 493 "util/configparser.c" #ifdef short # undef short @@ -707,20 +709,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 301 +#define YYLAST 303 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 161 +#define YYNTOKENS 162 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 166 +#define YYNNTS 167 /* YYNRULES -- Number of rules. */ -#define YYNRULES 317 +#define YYNRULES 319 /* YYNRULES -- Number of states. */ -#define YYNSTATES 467 +#define YYNSTATES 470 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 415 +#define YYMAXUTOK 416 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -769,7 +771,7 @@ static const yytype_uint8 yytranslate[] = 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160 + 155, 156, 157, 158, 159, 160, 161 }; #if YYDEBUG @@ -790,109 +792,110 @@ static const yytype_uint16 yyprhs[] = 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 257, 259, 261, 263, - 266, 267, 269, 271, 273, 275, 277, 279, 282, 283, - 285, 287, 289, 291, 294, 297, 300, 303, 306, 309, - 312, 315, 318, 321, 324, 327, 330, 333, 336, 339, - 342, 345, 348, 351, 354, 357, 360, 363, 366, 369, - 372, 375, 378, 381, 384, 387, 390, 393, 396, 399, - 402, 405, 408, 411, 414, 417, 420, 423, 426, 429, - 432, 435, 438, 441, 444, 447, 450, 453, 456, 459, - 462, 465, 468, 471, 474, 477, 480, 483, 486, 489, - 492, 495, 498, 501, 504, 507, 510, 513, 516, 519, - 522, 525, 528, 531, 534, 538, 541, 544, 547, 550, - 553, 556, 559, 562, 565, 568, 571, 574, 577, 580, - 583, 586, 589, 592, 595, 599, 602, 605, 608, 611, - 614, 617, 620, 623, 626, 629, 633, 637, 640, 643, - 646, 649, 652, 655, 658, 661, 664, 667, 669, 672, - 673, 675, 677, 679, 681, 683, 685, 687, 689, 692, - 695, 698, 701, 704, 707, 710, 713, 715, 718, 719, - 721, 723, 725, 727, 729, 731, 733, 735, 737, 739, - 741, 743, 746, 749, 752, 755, 758, 761, 764, 767, - 770, 773, 776, 779, 781, 784, 785, 787 + 265, 268, 269, 271, 273, 275, 277, 279, 281, 284, + 285, 287, 289, 291, 293, 296, 299, 302, 305, 308, + 311, 314, 317, 320, 323, 326, 329, 332, 335, 338, + 341, 344, 347, 350, 353, 356, 359, 362, 365, 368, + 371, 374, 377, 380, 383, 386, 389, 392, 395, 398, + 401, 404, 407, 410, 413, 416, 419, 422, 425, 428, + 431, 434, 437, 440, 443, 446, 449, 452, 455, 458, + 461, 464, 467, 470, 473, 476, 479, 482, 485, 488, + 491, 494, 497, 500, 503, 506, 509, 512, 515, 518, + 521, 524, 527, 530, 533, 536, 540, 543, 546, 549, + 552, 555, 558, 561, 564, 567, 570, 573, 576, 579, + 582, 585, 588, 591, 594, 597, 600, 604, 607, 610, + 613, 616, 619, 622, 625, 628, 631, 634, 638, 642, + 645, 648, 651, 654, 657, 660, 663, 666, 669, 672, + 674, 677, 678, 680, 682, 684, 686, 688, 690, 692, + 694, 697, 700, 703, 706, 709, 712, 715, 718, 720, + 723, 724, 726, 728, 730, 732, 734, 736, 738, 740, + 742, 744, 746, 748, 751, 754, 757, 760, 763, 766, + 769, 772, 775, 778, 781, 784, 786, 789, 790, 792 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 162, 0, -1, -1, 162, 163, -1, 164, 165, -1, - 167, 168, -1, 170, 171, -1, 323, 324, -1, 297, - 298, -1, 308, 309, -1, 11, -1, 165, 166, -1, - -1, 173, -1, 174, -1, 178, -1, 181, -1, 187, - -1, 188, -1, 189, -1, 190, -1, 179, -1, 200, - -1, 201, -1, 202, -1, 203, -1, 204, -1, 223, - -1, 224, -1, 225, -1, 229, -1, 230, -1, 184, - -1, 231, -1, 232, -1, 235, -1, 233, -1, 234, - -1, 237, -1, 238, -1, 239, -1, 252, -1, 213, - -1, 214, -1, 215, -1, 216, -1, 240, -1, 255, - -1, 209, -1, 211, -1, 256, -1, 262, -1, 263, - -1, 264, -1, 185, -1, 222, -1, 271, -1, 272, - -1, 210, -1, 267, -1, 197, -1, 180, -1, 205, - -1, 253, -1, 259, -1, 241, -1, 254, -1, 274, - -1, 275, -1, 186, -1, 175, -1, 196, -1, 245, - -1, 176, -1, 182, -1, 183, -1, 206, -1, 207, - -1, 273, -1, 243, -1, 247, -1, 248, -1, 177, - -1, 276, -1, 226, -1, 251, -1, 198, -1, 212, - -1, 257, -1, 258, -1, 261, -1, 266, -1, 208, - -1, 268, -1, 269, -1, 270, -1, 217, -1, 221, - -1, 249, -1, 250, -1, 218, -1, 242, -1, 265, - -1, 199, -1, 191, -1, 192, -1, 193, -1, 194, - -1, 195, -1, 277, -1, 278, -1, 279, -1, 219, - -1, 227, -1, 228, -1, 280, -1, 281, -1, 236, - -1, 244, -1, 220, -1, 282, -1, 284, -1, 283, - -1, 285, -1, 286, -1, 287, -1, 246, -1, 260, - -1, 38, -1, 168, 169, -1, -1, 288, -1, 289, - -1, 290, -1, 292, -1, 291, -1, 44, -1, 171, - 172, -1, -1, 293, -1, 294, -1, 295, -1, 296, - -1, 13, 10, -1, 12, 10, -1, 76, 10, -1, - 79, 10, -1, 97, 10, -1, 14, 10, -1, 16, - 10, -1, 67, 10, -1, 15, 10, -1, 80, 10, - -1, 81, 10, -1, 31, 10, -1, 60, 10, -1, - 75, 10, -1, 17, 10, -1, 18, 10, -1, 19, - 10, -1, 20, 10, -1, 123, 10, -1, 124, 10, - -1, 125, 10, -1, 126, 10, -1, 127, 10, -1, - 77, 10, -1, 66, 10, -1, 102, 10, -1, 122, - 10, -1, 21, 10, -1, 22, 10, -1, 23, 10, - -1, 24, 10, -1, 25, 10, -1, 68, 10, -1, - 82, 10, -1, 83, 10, -1, 110, 10, -1, 54, - 10, -1, 64, 10, -1, 55, 10, -1, 103, 10, - -1, 48, 10, -1, 49, 10, -1, 50, 10, -1, - 51, 10, -1, 114, 10, -1, 118, 10, -1, 119, - 10, -1, 152, 10, -1, 115, 10, -1, 61, 10, - -1, 26, 10, -1, 27, 10, -1, 28, 10, -1, - 99, 10, -1, 133, 10, -1, 134, 10, -1, 29, - 10, -1, 30, 10, -1, 32, 10, -1, 33, 10, - -1, 35, 10, -1, 36, 10, -1, 34, 10, -1, - 135, 10, -1, 41, 10, -1, 42, 10, -1, 43, - 10, -1, 52, 10, -1, 71, 10, -1, 120, 10, - -1, 85, 10, -1, 151, 10, -1, 78, 10, -1, - 159, 10, -1, 86, 10, -1, 87, 10, -1, 116, - 10, -1, 117, 10, -1, 101, 10, -1, 47, 10, - -1, 69, 10, -1, 72, 10, 10, -1, 53, 10, - -1, 56, 10, -1, 106, 10, -1, 107, 10, -1, - 70, 10, -1, 160, 10, -1, 108, 10, -1, 57, - 10, -1, 58, 10, -1, 59, 10, -1, 121, 10, - -1, 109, 10, -1, 65, 10, -1, 112, 10, -1, - 113, 10, -1, 111, 10, -1, 62, 10, -1, 63, - 10, -1, 84, 10, -1, 73, 10, 10, -1, 74, - 10, -1, 98, 10, -1, 130, 10, -1, 131, 10, - -1, 132, 10, -1, 136, 10, -1, 137, 10, -1, - 153, 10, -1, 155, 10, -1, 154, 10, -1, 156, - 10, 10, -1, 157, 10, 10, -1, 158, 10, -1, - 37, 10, -1, 39, 10, -1, 40, 10, -1, 129, - 10, -1, 100, 10, -1, 37, 10, -1, 45, 10, - -1, 46, 10, -1, 128, 10, -1, 88, -1, 298, - 299, -1, -1, 300, -1, 302, -1, 301, -1, 304, - -1, 305, -1, 306, -1, 307, -1, 303, -1, 89, - 10, -1, 91, 10, -1, 90, 10, -1, 96, 10, - -1, 92, 10, -1, 93, 10, -1, 94, 10, -1, - 95, 10, -1, 138, -1, 309, 310, -1, -1, 311, - -1, 312, -1, 313, -1, 314, -1, 315, -1, 316, - -1, 317, -1, 318, -1, 319, -1, 320, -1, 321, - -1, 322, -1, 139, 10, -1, 140, 10, -1, 141, - 10, -1, 142, 10, -1, 143, 10, -1, 144, 10, - -1, 145, 10, -1, 146, 10, -1, 147, 10, -1, - 148, 10, -1, 149, 10, -1, 150, 10, -1, 104, - -1, 324, 325, -1, -1, 326, -1, 105, 10, -1 + 163, 0, -1, -1, 163, 164, -1, 165, 166, -1, + 168, 169, -1, 171, 172, -1, 325, 326, -1, 299, + 300, -1, 310, 311, -1, 11, -1, 166, 167, -1, + -1, 174, -1, 175, -1, 179, -1, 182, -1, 188, + -1, 189, -1, 190, -1, 191, -1, 180, -1, 201, + -1, 202, -1, 203, -1, 204, -1, 205, -1, 224, + -1, 225, -1, 226, -1, 230, -1, 231, -1, 185, + -1, 232, -1, 233, -1, 236, -1, 234, -1, 235, + -1, 238, -1, 239, -1, 240, -1, 253, -1, 214, + -1, 215, -1, 216, -1, 217, -1, 241, -1, 256, + -1, 210, -1, 212, -1, 257, -1, 263, -1, 264, + -1, 265, -1, 186, -1, 223, -1, 273, -1, 274, + -1, 211, -1, 268, -1, 198, -1, 181, -1, 206, + -1, 254, -1, 260, -1, 242, -1, 255, -1, 276, + -1, 277, -1, 187, -1, 176, -1, 197, -1, 246, + -1, 177, -1, 183, -1, 184, -1, 207, -1, 208, + -1, 275, -1, 244, -1, 248, -1, 249, -1, 178, + -1, 278, -1, 227, -1, 252, -1, 199, -1, 213, + -1, 258, -1, 259, -1, 262, -1, 267, -1, 209, + -1, 269, -1, 270, -1, 271, -1, 218, -1, 222, + -1, 250, -1, 251, -1, 219, -1, 243, -1, 266, + -1, 200, -1, 192, -1, 193, -1, 194, -1, 195, + -1, 196, -1, 279, -1, 280, -1, 281, -1, 220, + -1, 228, -1, 229, -1, 282, -1, 283, -1, 237, + -1, 245, -1, 221, -1, 284, -1, 286, -1, 285, + -1, 287, -1, 288, -1, 289, -1, 247, -1, 261, + -1, 272, -1, 38, -1, 169, 170, -1, -1, 290, + -1, 291, -1, 292, -1, 294, -1, 293, -1, 44, + -1, 172, 173, -1, -1, 295, -1, 296, -1, 297, + -1, 298, -1, 13, 10, -1, 12, 10, -1, 76, + 10, -1, 79, 10, -1, 97, 10, -1, 14, 10, + -1, 16, 10, -1, 67, 10, -1, 15, 10, -1, + 80, 10, -1, 81, 10, -1, 31, 10, -1, 60, + 10, -1, 75, 10, -1, 17, 10, -1, 18, 10, + -1, 19, 10, -1, 20, 10, -1, 123, 10, -1, + 124, 10, -1, 125, 10, -1, 126, 10, -1, 127, + 10, -1, 77, 10, -1, 66, 10, -1, 102, 10, + -1, 122, 10, -1, 21, 10, -1, 22, 10, -1, + 23, 10, -1, 24, 10, -1, 25, 10, -1, 68, + 10, -1, 82, 10, -1, 83, 10, -1, 110, 10, + -1, 54, 10, -1, 64, 10, -1, 55, 10, -1, + 103, 10, -1, 48, 10, -1, 49, 10, -1, 50, + 10, -1, 51, 10, -1, 114, 10, -1, 118, 10, + -1, 119, 10, -1, 152, 10, -1, 115, 10, -1, + 61, 10, -1, 26, 10, -1, 27, 10, -1, 28, + 10, -1, 99, 10, -1, 133, 10, -1, 134, 10, + -1, 29, 10, -1, 30, 10, -1, 32, 10, -1, + 33, 10, -1, 35, 10, -1, 36, 10, -1, 34, + 10, -1, 135, 10, -1, 41, 10, -1, 42, 10, + -1, 43, 10, -1, 52, 10, -1, 71, 10, -1, + 120, 10, -1, 85, 10, -1, 151, 10, -1, 78, + 10, -1, 159, 10, -1, 86, 10, -1, 87, 10, + -1, 116, 10, -1, 117, 10, -1, 101, 10, -1, + 47, 10, -1, 69, 10, -1, 72, 10, 10, -1, + 53, 10, -1, 56, 10, -1, 106, 10, -1, 107, + 10, -1, 70, 10, -1, 160, 10, -1, 108, 10, + -1, 57, 10, -1, 58, 10, -1, 59, 10, -1, + 121, 10, -1, 109, 10, -1, 65, 10, -1, 112, + 10, -1, 113, 10, -1, 111, 10, -1, 161, 10, + -1, 62, 10, -1, 63, 10, -1, 84, 10, -1, + 73, 10, 10, -1, 74, 10, -1, 98, 10, -1, + 130, 10, -1, 131, 10, -1, 132, 10, -1, 136, + 10, -1, 137, 10, -1, 153, 10, -1, 155, 10, + -1, 154, 10, -1, 156, 10, 10, -1, 157, 10, + 10, -1, 158, 10, -1, 37, 10, -1, 39, 10, + -1, 40, 10, -1, 129, 10, -1, 100, 10, -1, + 37, 10, -1, 45, 10, -1, 46, 10, -1, 128, + 10, -1, 88, -1, 300, 301, -1, -1, 302, -1, + 304, -1, 303, -1, 306, -1, 307, -1, 308, -1, + 309, -1, 305, -1, 89, 10, -1, 91, 10, -1, + 90, 10, -1, 96, 10, -1, 92, 10, -1, 93, + 10, -1, 94, 10, -1, 95, 10, -1, 138, -1, + 311, 312, -1, -1, 313, -1, 314, -1, 315, -1, + 316, -1, 317, -1, 318, -1, 319, -1, 320, -1, + 321, -1, 322, -1, 323, -1, 324, -1, 139, 10, + -1, 140, 10, -1, 141, 10, -1, 142, 10, -1, + 143, 10, -1, 144, 10, -1, 145, 10, -1, 146, + 10, -1, 147, 10, -1, 148, 10, -1, 149, 10, + -1, 150, 10, -1, 104, -1, 326, 327, -1, -1, + 328, -1, 105, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -910,26 +913,26 @@ static const yytype_uint16 yyrline[] = 174, 174, 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, 179, 180, 180, 180, 181, 181, 181, 182, 182, 182, 183, 183, 184, 184, 185, - 185, 185, 186, 186, 187, 187, 188, 188, 190, 202, - 203, 204, 204, 204, 204, 204, 206, 218, 219, 220, - 220, 220, 220, 222, 231, 240, 251, 260, 269, 278, - 291, 306, 315, 324, 333, 342, 351, 360, 369, 378, - 387, 396, 405, 414, 421, 428, 437, 446, 460, 469, - 478, 485, 492, 499, 507, 514, 521, 528, 535, 543, - 551, 559, 566, 573, 582, 591, 598, 605, 613, 621, - 631, 641, 654, 665, 673, 686, 695, 704, 713, 723, - 731, 744, 753, 761, 770, 778, 791, 800, 807, 817, - 827, 837, 847, 857, 867, 877, 887, 894, 901, 908, - 917, 926, 935, 942, 952, 969, 976, 994, 1007, 1020, - 1029, 1038, 1047, 1056, 1066, 1076, 1085, 1094, 1101, 1110, - 1119, 1128, 1136, 1149, 1157, 1181, 1188, 1203, 1213, 1223, - 1230, 1237, 1246, 1255, 1263, 1276, 1289, 1302, 1311, 1321, - 1328, 1335, 1344, 1354, 1364, 1371, 1378, 1387, 1392, 1393, - 1394, 1394, 1394, 1395, 1395, 1395, 1396, 1396, 1398, 1408, - 1417, 1424, 1434, 1441, 1448, 1455, 1462, 1467, 1468, 1469, - 1469, 1470, 1470, 1471, 1471, 1472, 1473, 1474, 1475, 1476, - 1477, 1479, 1487, 1494, 1502, 1510, 1517, 1524, 1533, 1542, - 1551, 1560, 1569, 1578, 1583, 1584, 1585, 1587 + 185, 185, 186, 186, 187, 187, 188, 188, 189, 191, + 203, 204, 205, 205, 205, 205, 205, 207, 219, 220, + 221, 221, 221, 221, 223, 232, 241, 252, 261, 270, + 279, 292, 307, 316, 325, 334, 343, 352, 361, 370, + 379, 388, 397, 406, 415, 422, 429, 438, 447, 461, + 470, 479, 486, 493, 500, 508, 515, 522, 529, 536, + 544, 552, 560, 567, 574, 583, 592, 599, 606, 614, + 622, 632, 642, 655, 666, 674, 687, 696, 705, 714, + 724, 732, 745, 754, 762, 771, 779, 792, 801, 808, + 818, 828, 838, 848, 858, 868, 878, 888, 895, 902, + 909, 918, 927, 936, 943, 953, 970, 977, 995, 1008, + 1021, 1030, 1039, 1048, 1057, 1067, 1077, 1086, 1095, 1102, + 1111, 1120, 1129, 1138, 1146, 1159, 1167, 1191, 1198, 1213, + 1223, 1233, 1240, 1247, 1256, 1265, 1273, 1286, 1299, 1312, + 1321, 1331, 1338, 1345, 1354, 1364, 1374, 1381, 1388, 1397, + 1402, 1403, 1404, 1404, 1404, 1405, 1405, 1405, 1406, 1406, + 1408, 1418, 1427, 1434, 1444, 1451, 1458, 1465, 1472, 1477, + 1478, 1479, 1479, 1480, 1480, 1481, 1481, 1482, 1483, 1484, + 1485, 1486, 1487, 1489, 1497, 1504, 1512, 1520, 1527, 1534, + 1543, 1552, 1561, 1570, 1579, 1588, 1593, 1594, 1595, 1597 }; #endif @@ -994,17 +997,18 @@ static const char *const yytname[] = "VAR_HARDEN_ALGO_DOWNGRADE", "VAR_IP_TRANSPARENT", "VAR_RATELIMIT", "VAR_RATELIMIT_SLABS", "VAR_RATELIMIT_SIZE", "VAR_RATELIMIT_FOR_DOMAIN", "VAR_RATELIMIT_BELOW_DOMAIN", "VAR_RATELIMIT_FACTOR", - "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", "$accept", - "toplevelvars", "toplevelvar", "serverstart", "contents_server", - "content_server", "stubstart", "contents_stub", "content_stub", - "forwardstart", "contents_forward", "content_forward", - "server_num_threads", "server_verbosity", "server_statistics_interval", - "server_statistics_cumulative", "server_extended_statistics", - "server_port", "server_interface", "server_outgoing_interface", - "server_outgoing_range", "server_outgoing_port_permit", - "server_outgoing_port_avoid", "server_outgoing_num_tcp", - "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", - "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_upstream", + "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", + "VAR_PERMIT_SMALL_HOLDDOWN", "$accept", "toplevelvars", "toplevelvar", + "serverstart", "contents_server", "content_server", "stubstart", + "contents_stub", "content_stub", "forwardstart", "contents_forward", + "content_forward", "server_num_threads", "server_verbosity", + "server_statistics_interval", "server_statistics_cumulative", + "server_extended_statistics", "server_port", "server_interface", + "server_outgoing_interface", "server_outgoing_range", + "server_outgoing_port_permit", "server_outgoing_port_avoid", + "server_outgoing_num_tcp", "server_incoming_num_tcp", + "server_interface_automatic", "server_do_ip4", "server_do_ip6", + "server_do_udp", "server_do_tcp", "server_tcp_upstream", "server_ssl_upstream", "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", "server_log_queries", @@ -1039,7 +1043,8 @@ static const char *const yytname[] = "server_val_clean_additional", "server_val_permissive_mode", "server_ignore_cd_flag", "server_val_log_level", "server_val_nsec3_keysize_iterations", "server_add_holddown", - "server_del_holddown", "server_keep_missing", "server_key_cache_size", + "server_del_holddown", "server_keep_missing", + "server_permit_small_holddown", "server_key_cache_size", "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", "server_local_data", "server_local_data_ptr", "server_minimal_responses", "server_rrset_roundrobin", "server_max_udp_size", "server_dns64_prefix", @@ -1085,28 +1090,28 @@ static const yytype_uint16 yytoknum[] = 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415 + 415, 416 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 161, 162, 162, 163, 163, 163, 163, 163, 163, - 164, 165, 165, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 167, 168, - 168, 169, 169, 169, 169, 169, 170, 171, 171, 172, - 172, 172, 172, 173, 174, 175, 176, 177, 178, 179, + 0, 162, 163, 163, 164, 164, 164, 164, 164, 164, + 165, 166, 166, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 168, + 169, 169, 170, 170, 170, 170, 170, 171, 172, 172, + 173, 173, 173, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, @@ -1118,12 +1123,12 @@ static const yytype_uint16 yyr1[] = 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 298, - 299, 299, 299, 299, 299, 299, 299, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 309, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 324, 325, 326 + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 300, 301, 301, 301, 301, 301, 301, 301, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 311, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 326, 327, 328 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1141,9 +1146,9 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1151,16 +1156,16 @@ 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, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 1, 2, 0, 1, 2 + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 2, 0, 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. @@ -1168,8 +1173,8 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 10, 128, 136, 267, 313, 286, 3, - 12, 130, 138, 269, 288, 315, 4, 5, 6, 8, + 2, 0, 1, 10, 129, 137, 269, 315, 288, 3, + 12, 131, 139, 271, 290, 317, 4, 5, 6, 8, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1181,62 +1186,62 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 11, 13, 14, - 70, 73, 82, 15, 21, 61, 16, 74, 75, 32, - 54, 69, 17, 18, 19, 20, 104, 105, 106, 107, - 108, 71, 60, 86, 103, 22, 23, 24, 25, 26, - 62, 76, 77, 92, 48, 58, 49, 87, 42, 43, - 44, 45, 96, 100, 112, 119, 97, 55, 27, 28, - 29, 84, 113, 114, 30, 31, 33, 34, 36, 37, - 35, 117, 38, 39, 40, 46, 65, 101, 79, 118, - 72, 126, 80, 81, 98, 99, 85, 41, 63, 66, - 47, 50, 88, 89, 64, 127, 90, 51, 52, 53, - 102, 91, 59, 93, 94, 95, 56, 57, 78, 67, - 68, 83, 109, 110, 111, 115, 116, 120, 122, 121, - 123, 124, 125, 0, 0, 0, 0, 0, 129, 131, - 132, 133, 135, 134, 0, 0, 0, 0, 137, 139, - 140, 141, 142, 0, 0, 0, 0, 0, 0, 0, - 0, 268, 270, 272, 271, 277, 273, 274, 275, 276, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 287, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 0, 314, 316, 144, 143, - 148, 151, 149, 157, 158, 159, 160, 170, 171, 172, - 173, 174, 193, 194, 195, 199, 200, 154, 201, 202, - 205, 203, 204, 207, 208, 209, 222, 183, 184, 185, - 186, 210, 225, 179, 181, 226, 232, 233, 234, 155, - 192, 241, 242, 180, 237, 167, 150, 175, 223, 229, - 211, 0, 0, 245, 156, 145, 166, 215, 146, 152, - 153, 176, 177, 243, 213, 217, 218, 147, 246, 196, - 221, 168, 182, 227, 228, 231, 236, 178, 240, 238, - 239, 187, 191, 219, 220, 188, 189, 212, 235, 169, - 161, 162, 163, 164, 165, 247, 248, 249, 197, 198, - 206, 250, 251, 214, 190, 252, 254, 253, 0, 0, - 257, 216, 230, 258, 259, 260, 262, 261, 263, 264, - 265, 266, 278, 280, 279, 282, 283, 284, 285, 281, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 317, 224, 244, 255, 256 + 0, 0, 0, 0, 0, 0, 0, 0, 11, 13, + 14, 70, 73, 82, 15, 21, 61, 16, 74, 75, + 32, 54, 69, 17, 18, 19, 20, 104, 105, 106, + 107, 108, 71, 60, 86, 103, 22, 23, 24, 25, + 26, 62, 76, 77, 92, 48, 58, 49, 87, 42, + 43, 44, 45, 96, 100, 112, 119, 97, 55, 27, + 28, 29, 84, 113, 114, 30, 31, 33, 34, 36, + 37, 35, 117, 38, 39, 40, 46, 65, 101, 79, + 118, 72, 126, 80, 81, 98, 99, 85, 41, 63, + 66, 47, 50, 88, 89, 64, 127, 90, 51, 52, + 53, 102, 91, 59, 93, 94, 95, 128, 56, 57, + 78, 67, 68, 83, 109, 110, 111, 115, 116, 120, + 122, 121, 123, 124, 125, 0, 0, 0, 0, 0, + 130, 132, 133, 134, 136, 135, 0, 0, 0, 0, + 138, 140, 141, 142, 143, 0, 0, 0, 0, 0, + 0, 0, 0, 270, 272, 274, 273, 279, 275, 276, + 277, 278, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 289, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 316, 318, + 145, 144, 149, 152, 150, 158, 159, 160, 161, 171, + 172, 173, 174, 175, 194, 195, 196, 200, 201, 155, + 202, 203, 206, 204, 205, 208, 209, 210, 223, 184, + 185, 186, 187, 211, 226, 180, 182, 227, 233, 234, + 235, 156, 193, 243, 244, 181, 238, 168, 151, 176, + 224, 230, 212, 0, 0, 247, 157, 146, 167, 216, + 147, 153, 154, 177, 178, 245, 214, 218, 219, 148, + 248, 197, 222, 169, 183, 228, 229, 232, 237, 179, + 241, 239, 240, 188, 192, 220, 221, 189, 190, 213, + 236, 170, 162, 163, 164, 165, 166, 249, 250, 251, + 198, 199, 207, 252, 253, 215, 191, 254, 256, 255, + 0, 0, 259, 217, 231, 242, 260, 261, 262, 264, + 263, 265, 266, 267, 268, 280, 282, 281, 284, 285, + 286, 287, 283, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 319, 225, 246, 257, 258 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 9, 10, 16, 137, 11, 17, 258, 12, - 18, 268, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 259, 260, 261, - 262, 263, 269, 270, 271, 272, 13, 19, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 14, 20, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 15, 21, 316, 317 + -1, 1, 9, 10, 16, 138, 11, 17, 260, 12, + 18, 270, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 261, 262, + 263, 264, 265, 271, 272, 273, 274, 13, 19, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 14, 20, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 15, 21, 318, 319 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -1247,17 +1252,17 @@ static const yytype_int16 yypact[] = -81, 116, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -12, 89, 47, -13, 22, -80, 16, 17, 18, 23, 24, 78, 107, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 139, 140, - 141, 142, 143, 145, 146, 147, 148, 149, 163, 164, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, -81, -81, -81, + 121, 122, 123, 124, 125, 126, 127, 128, 140, 141, + 142, 143, 145, 146, 147, 148, 149, 163, 164, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 209, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, @@ -1269,28 +1274,28 @@ static const yytype_int16 yypact[] = -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, 258, 259, 260, 261, 262, -81, -81, - -81, -81, -81, -81, 263, 264, 265, 266, -81, -81, - -81, -81, -81, 267, 268, 269, 270, 271, 272, 273, - 274, -81, -81, -81, -81, -81, -81, -81, -81, -81, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, 287, -81, -81, -81, -81, + -81, -81, -81, -81, -81, 260, 261, 262, 263, 264, + -81, -81, -81, -81, -81, -81, 265, 266, 267, 268, + -81, -81, -81, -81, -81, 269, 270, 271, 272, 273, + 274, 275, 276, -81, -81, -81, -81, -81, -81, -81, + -81, -81, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, -81, -81, -81, -81, -81, -81, + -81, -81, -81, -81, -81, -81, -81, 289, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, 288, 289, -81, -81, -81, -81, -81, -81, -81, + -81, -81, -81, 290, 291, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81, -81, 290, 291, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, + 292, 293, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81 + -81, -81, -81, -81, -81, -81, -81, -81, -81, -81 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1312,7 +1317,7 @@ static const yytype_int8 yypgoto[] = -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81 + -81, -81, -81, -81, -81, -81, -81 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1323,35 +1328,35 @@ static const yytype_uint16 yytable[] = { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 315, 318, 319, 320, 47, - 48, 49, 0, 321, 322, 50, 51, 52, 53, 54, + 42, 43, 44, 45, 46, 317, 320, 321, 322, 47, + 48, 49, 0, 323, 324, 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, 273, 274, 275, 276, - 277, 278, 279, 280, 264, 91, 92, 93, 323, 94, - 95, 96, 265, 266, 97, 98, 99, 100, 101, 102, + 85, 86, 87, 88, 89, 90, 275, 276, 277, 278, + 279, 280, 281, 282, 266, 91, 92, 93, 325, 94, + 95, 96, 267, 268, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 2, 324, 119, 120, - 121, 122, 123, 124, 125, 126, 253, 3, 254, 255, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 334, - 335, 336, 337, 338, 4, 339, 340, 341, 342, 343, - 5, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 344, 345, 267, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 256, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 6, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 257, 386, - 7, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 8, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466 + 113, 114, 115, 116, 117, 118, 2, 326, 119, 120, + 121, 122, 123, 124, 125, 126, 255, 3, 256, 257, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 336, 337, 338, 339, 4, 340, 341, 342, 343, 344, + 5, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 345, 346, 269, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 258, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 6, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 259, 387, + 7, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 8, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469 }; #define yypact_value_is_default(Yystate) \ @@ -1376,7 +1381,7 @@ static const yytype_int16 yycheck[] = 122, 123, 124, 125, 126, 127, 0, 10, 130, 131, 132, 133, 134, 135, 136, 137, 37, 11, 39, 40, 10, 10, 10, 10, 10, 10, 10, 10, 10, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 10, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 10, 10, 10, 10, 38, 10, 10, 10, 10, 10, 44, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 10, 10, 128, 10, 10, 10, 10, @@ -1392,16 +1397,16 @@ static const yytype_int16 yycheck[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10 + 10, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 162, 0, 11, 38, 44, 88, 104, 138, 163, - 164, 167, 170, 297, 308, 323, 165, 168, 171, 298, - 309, 324, 12, 13, 14, 15, 16, 17, 18, 19, + 0, 163, 0, 11, 38, 44, 88, 104, 138, 164, + 165, 168, 171, 299, 310, 325, 166, 169, 172, 300, + 311, 326, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 41, 42, 43, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, @@ -1412,7 +1417,7 @@ static const yytype_uint16 yystos[] = 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135, 136, 137, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 166, 173, 174, + 154, 155, 156, 157, 158, 159, 160, 161, 167, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, @@ -1424,13 +1429,13 @@ static const yytype_uint16 yystos[] = 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 37, 39, 40, 100, 129, 169, 288, - 289, 290, 291, 292, 37, 45, 46, 128, 172, 293, - 294, 295, 296, 89, 90, 91, 92, 93, 94, 95, - 96, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 105, 325, 326, 10, 10, + 285, 286, 287, 288, 289, 37, 39, 40, 100, 129, + 170, 290, 291, 292, 293, 294, 37, 45, 46, 128, + 173, 295, 296, 297, 298, 89, 90, 91, 92, 93, + 94, 95, 96, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 105, 327, 328, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1445,7 +1450,7 @@ static const yytype_uint16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -2253,9 +2258,9 @@ yyreduce: } break; - case 128: + case 129: /* Line 1792 of yacc.c */ -#line 191 "./util/configparser.y" +#line 192 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2268,9 +2273,9 @@ yyreduce: } break; - case 136: + case 137: /* Line 1792 of yacc.c */ -#line 207 "./util/configparser.y" +#line 208 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2283,9 +2288,9 @@ yyreduce: } break; - case 143: + case 144: /* Line 1792 of yacc.c */ -#line 223 "./util/configparser.y" +#line 224 "./util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2295,9 +2300,9 @@ yyreduce: } break; - case 144: + case 145: /* Line 1792 of yacc.c */ -#line 232 "./util/configparser.y" +#line 233 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2307,9 +2312,9 @@ yyreduce: } break; - case 145: + case 146: /* Line 1792 of yacc.c */ -#line 241 "./util/configparser.y" +#line 242 "./util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) @@ -2321,9 +2326,9 @@ yyreduce: } break; - case 146: + case 147: /* Line 1792 of yacc.c */ -#line 252 "./util/configparser.y" +#line 253 "./util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2333,9 +2338,9 @@ yyreduce: } break; - case 147: + case 148: /* Line 1792 of yacc.c */ -#line 261 "./util/configparser.y" +#line 262 "./util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2345,9 +2350,9 @@ yyreduce: } break; - case 148: + case 149: /* Line 1792 of yacc.c */ -#line 270 "./util/configparser.y" +#line 271 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2357,9 +2362,9 @@ yyreduce: } break; - case 149: + case 150: /* Line 1792 of yacc.c */ -#line 279 "./util/configparser.y" +#line 280 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2373,9 +2378,9 @@ yyreduce: } break; - case 150: + case 151: /* Line 1792 of yacc.c */ -#line 292 "./util/configparser.y" +#line 293 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2391,9 +2396,9 @@ yyreduce: } break; - case 151: + case 152: /* Line 1792 of yacc.c */ -#line 307 "./util/configparser.y" +#line 308 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2403,9 +2408,9 @@ yyreduce: } break; - case 152: + case 153: /* Line 1792 of yacc.c */ -#line 316 "./util/configparser.y" +#line 317 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, @@ -2415,9 +2420,9 @@ yyreduce: } break; - case 153: + case 154: /* Line 1792 of yacc.c */ -#line 325 "./util/configparser.y" +#line 326 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, @@ -2427,9 +2432,9 @@ yyreduce: } break; - case 154: + case 155: /* Line 1792 of yacc.c */ -#line 334 "./util/configparser.y" +#line 335 "./util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2439,9 +2444,9 @@ yyreduce: } break; - case 155: + case 156: /* Line 1792 of yacc.c */ -#line 343 "./util/configparser.y" +#line 344 "./util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2451,9 +2456,9 @@ yyreduce: } break; - case 156: + case 157: /* Line 1792 of yacc.c */ -#line 352 "./util/configparser.y" +#line 353 "./util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2463,9 +2468,9 @@ yyreduce: } break; - case 157: + case 158: /* Line 1792 of yacc.c */ -#line 361 "./util/configparser.y" +#line 362 "./util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2475,9 +2480,9 @@ yyreduce: } break; - case 158: + case 159: /* Line 1792 of yacc.c */ -#line 370 "./util/configparser.y" +#line 371 "./util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2487,9 +2492,9 @@ yyreduce: } break; - case 159: + case 160: /* Line 1792 of yacc.c */ -#line 379 "./util/configparser.y" +#line 380 "./util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2499,9 +2504,9 @@ yyreduce: } break; - case 160: + case 161: /* Line 1792 of yacc.c */ -#line 388 "./util/configparser.y" +#line 389 "./util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2511,9 +2516,9 @@ yyreduce: } break; - case 161: + case 162: /* Line 1792 of yacc.c */ -#line 397 "./util/configparser.y" +#line 398 "./util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2523,9 +2528,9 @@ yyreduce: } break; - case 162: + case 163: /* Line 1792 of yacc.c */ -#line 406 "./util/configparser.y" +#line 407 "./util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2535,9 +2540,9 @@ yyreduce: } break; - case 163: + case 164: /* Line 1792 of yacc.c */ -#line 415 "./util/configparser.y" +#line 416 "./util/configparser.y" { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->ssl_service_key); @@ -2545,9 +2550,9 @@ yyreduce: } break; - case 164: + case 165: /* Line 1792 of yacc.c */ -#line 422 "./util/configparser.y" +#line 423 "./util/configparser.y" { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->ssl_service_pem); @@ -2555,9 +2560,9 @@ yyreduce: } break; - case 165: + case 166: /* Line 1792 of yacc.c */ -#line 429 "./util/configparser.y" +#line 430 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2567,9 +2572,9 @@ yyreduce: } break; - case 166: + case 167: /* Line 1792 of yacc.c */ -#line 438 "./util/configparser.y" +#line 439 "./util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2579,9 +2584,9 @@ yyreduce: } break; - case 167: + case 168: /* Line 1792 of yacc.c */ -#line 447 "./util/configparser.y" +#line 448 "./util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2596,9 +2601,9 @@ yyreduce: } break; - case 168: + case 169: /* Line 1792 of yacc.c */ -#line 461 "./util/configparser.y" +#line 462 "./util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2608,9 +2613,9 @@ yyreduce: } break; - case 169: + case 170: /* Line 1792 of yacc.c */ -#line 470 "./util/configparser.y" +#line 471 "./util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2620,9 +2625,9 @@ yyreduce: } break; - case 170: + case 171: /* Line 1792 of yacc.c */ -#line 479 "./util/configparser.y" +#line 480 "./util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2630,9 +2635,9 @@ yyreduce: } break; - case 171: + case 172: /* Line 1792 of yacc.c */ -#line 486 "./util/configparser.y" +#line 487 "./util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2640,9 +2645,9 @@ yyreduce: } break; - case 172: + case 173: /* Line 1792 of yacc.c */ -#line 493 "./util/configparser.y" +#line 494 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2650,9 +2655,9 @@ yyreduce: } break; - case 173: + case 174: /* Line 1792 of yacc.c */ -#line 500 "./util/configparser.y" +#line 501 "./util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2661,9 +2666,9 @@ yyreduce: } break; - case 174: + case 175: /* Line 1792 of yacc.c */ -#line 508 "./util/configparser.y" +#line 509 "./util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2671,9 +2676,9 @@ yyreduce: } break; - case 175: + case 176: /* Line 1792 of yacc.c */ -#line 515 "./util/configparser.y" +#line 516 "./util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) @@ -2681,9 +2686,9 @@ yyreduce: } break; - case 176: + case 177: /* Line 1792 of yacc.c */ -#line 522 "./util/configparser.y" +#line 523 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dlv_anchor_file); @@ -2691,9 +2696,9 @@ yyreduce: } break; - case 177: + case 178: /* Line 1792 of yacc.c */ -#line 529 "./util/configparser.y" +#line 530 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2701,9 +2706,9 @@ yyreduce: } break; - case 178: + case 179: /* Line 1792 of yacc.c */ -#line 536 "./util/configparser.y" +#line 537 "./util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2712,9 +2717,9 @@ yyreduce: } break; - case 179: + case 180: /* Line 1792 of yacc.c */ -#line 544 "./util/configparser.y" +#line 545 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2723,9 +2728,9 @@ yyreduce: } break; - case 180: + case 181: /* Line 1792 of yacc.c */ -#line 552 "./util/configparser.y" +#line 553 "./util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2734,9 +2739,9 @@ yyreduce: } break; - case 181: + case 182: /* Line 1792 of yacc.c */ -#line 560 "./util/configparser.y" +#line 561 "./util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2744,9 +2749,9 @@ yyreduce: } break; - case 182: + case 183: /* Line 1792 of yacc.c */ -#line 567 "./util/configparser.y" +#line 568 "./util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str))) @@ -2754,9 +2759,9 @@ yyreduce: } break; - case 183: + case 184: /* Line 1792 of yacc.c */ -#line 574 "./util/configparser.y" +#line 575 "./util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2766,9 +2771,9 @@ yyreduce: } break; - case 184: + case 185: /* Line 1792 of yacc.c */ -#line 583 "./util/configparser.y" +#line 584 "./util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2778,9 +2783,9 @@ yyreduce: } break; - case 185: + case 186: /* Line 1792 of yacc.c */ -#line 592 "./util/configparser.y" +#line 593 "./util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2788,9 +2793,9 @@ yyreduce: } break; - case 186: + case 187: /* Line 1792 of yacc.c */ -#line 599 "./util/configparser.y" +#line 600 "./util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2798,9 +2803,9 @@ yyreduce: } break; - case 187: + case 188: /* Line 1792 of yacc.c */ -#line 606 "./util/configparser.y" +#line 607 "./util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf)) @@ -2809,9 +2814,9 @@ yyreduce: } break; - case 188: + case 189: /* Line 1792 of yacc.c */ -#line 614 "./util/configparser.y" +#line 615 "./util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf)) @@ -2820,9 +2825,9 @@ yyreduce: } break; - case 189: + case 190: /* Line 1792 of yacc.c */ -#line 622 "./util/configparser.y" +#line 623 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2833,9 +2838,9 @@ yyreduce: } break; - case 190: + case 191: /* Line 1792 of yacc.c */ -#line 632 "./util/configparser.y" +#line 633 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2846,9 +2851,9 @@ yyreduce: } break; - case 191: + case 192: /* Line 1792 of yacc.c */ -#line 642 "./util/configparser.y" +#line 643 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2862,9 +2867,9 @@ yyreduce: } break; - case 192: + case 193: /* Line 1792 of yacc.c */ -#line 655 "./util/configparser.y" +#line 656 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2876,9 +2881,9 @@ yyreduce: } break; - case 193: + case 194: /* Line 1792 of yacc.c */ -#line 666 "./util/configparser.y" +#line 667 "./util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) @@ -2887,9 +2892,9 @@ yyreduce: } break; - case 194: + case 195: /* Line 1792 of yacc.c */ -#line 674 "./util/configparser.y" +#line 675 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2903,9 +2908,9 @@ yyreduce: } break; - case 195: + case 196: /* Line 1792 of yacc.c */ -#line 687 "./util/configparser.y" +#line 688 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2915,9 +2920,9 @@ yyreduce: } break; - case 196: + case 197: /* Line 1792 of yacc.c */ -#line 696 "./util/configparser.y" +#line 697 "./util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2927,9 +2932,9 @@ yyreduce: } break; - case 197: + case 198: /* Line 1792 of yacc.c */ -#line 705 "./util/configparser.y" +#line 706 "./util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2939,9 +2944,9 @@ yyreduce: } break; - case 198: + case 199: /* Line 1792 of yacc.c */ -#line 714 "./util/configparser.y" +#line 715 "./util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2952,9 +2957,9 @@ yyreduce: } break; - case 199: + case 200: /* Line 1792 of yacc.c */ -#line 724 "./util/configparser.y" +#line 725 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) @@ -2963,9 +2968,9 @@ yyreduce: } break; - case 200: + case 201: /* Line 1792 of yacc.c */ -#line 732 "./util/configparser.y" +#line 733 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2979,9 +2984,9 @@ yyreduce: } break; - case 201: + case 202: /* Line 1792 of yacc.c */ -#line 745 "./util/configparser.y" +#line 746 "./util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2991,9 +2996,9 @@ yyreduce: } break; - case 202: + case 203: /* Line 1792 of yacc.c */ -#line 754 "./util/configparser.y" +#line 755 "./util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " @@ -3002,9 +3007,9 @@ yyreduce: } break; - case 203: + case 204: /* Line 1792 of yacc.c */ -#line 762 "./util/configparser.y" +#line 763 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3014,9 +3019,9 @@ yyreduce: } break; - case 204: + case 205: /* Line 1792 of yacc.c */ -#line 771 "./util/configparser.y" +#line 772 "./util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " @@ -3025,9 +3030,9 @@ yyreduce: } break; - case 205: + case 206: /* Line 1792 of yacc.c */ -#line 779 "./util/configparser.y" +#line 780 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3041,9 +3046,9 @@ yyreduce: } break; - case 206: + case 207: /* Line 1792 of yacc.c */ -#line 792 "./util/configparser.y" +#line 793 "./util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3053,9 +3058,9 @@ yyreduce: } break; - case 207: + case 208: /* Line 1792 of yacc.c */ -#line 801 "./util/configparser.y" +#line 802 "./util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -3063,9 +3068,9 @@ yyreduce: } break; - case 208: + case 209: /* Line 1792 of yacc.c */ -#line 808 "./util/configparser.y" +#line 809 "./util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3076,9 +3081,9 @@ yyreduce: } break; - case 209: + case 210: /* Line 1792 of yacc.c */ -#line 818 "./util/configparser.y" +#line 819 "./util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3089,9 +3094,9 @@ yyreduce: } break; - case 210: + case 211: /* Line 1792 of yacc.c */ -#line 828 "./util/configparser.y" +#line 829 "./util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3102,9 +3107,9 @@ yyreduce: } break; - case 211: + case 212: /* Line 1792 of yacc.c */ -#line 838 "./util/configparser.y" +#line 839 "./util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3115,9 +3120,9 @@ yyreduce: } break; - case 212: + case 213: /* Line 1792 of yacc.c */ -#line 848 "./util/configparser.y" +#line 849 "./util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3128,9 +3133,9 @@ yyreduce: } break; - case 213: + case 214: /* Line 1792 of yacc.c */ -#line 858 "./util/configparser.y" +#line 859 "./util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3141,9 +3146,9 @@ yyreduce: } break; - case 214: + case 215: /* Line 1792 of yacc.c */ -#line 868 "./util/configparser.y" +#line 869 "./util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3154,9 +3159,9 @@ yyreduce: } break; - case 215: + case 216: /* Line 1792 of yacc.c */ -#line 878 "./util/configparser.y" +#line 879 "./util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3167,9 +3172,9 @@ yyreduce: } break; - case 216: + case 217: /* Line 1792 of yacc.c */ -#line 888 "./util/configparser.y" +#line 889 "./util/configparser.y" { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[(2) - (2)].str))) @@ -3177,9 +3182,9 @@ yyreduce: } break; - case 217: + case 218: /* Line 1792 of yacc.c */ -#line 895 "./util/configparser.y" +#line 896 "./util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) @@ -3187,9 +3192,9 @@ yyreduce: } break; - case 218: + case 219: /* Line 1792 of yacc.c */ -#line 902 "./util/configparser.y" +#line 903 "./util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) @@ -3197,9 +3202,9 @@ yyreduce: } break; - case 219: + case 220: /* Line 1792 of yacc.c */ -#line 909 "./util/configparser.y" +#line 910 "./util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3209,9 +3214,9 @@ yyreduce: } break; - case 220: + case 221: /* Line 1792 of yacc.c */ -#line 918 "./util/configparser.y" +#line 919 "./util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3221,9 +3226,9 @@ yyreduce: } break; - case 221: + case 222: /* Line 1792 of yacc.c */ -#line 927 "./util/configparser.y" +#line 928 "./util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3233,9 +3238,9 @@ yyreduce: } break; - case 222: + case 223: /* Line 1792 of yacc.c */ -#line 936 "./util/configparser.y" +#line 937 "./util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) @@ -3243,9 +3248,9 @@ yyreduce: } break; - case 223: + case 224: /* Line 1792 of yacc.c */ -#line 943 "./util/configparser.y" +#line 944 "./util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3256,9 +3261,9 @@ yyreduce: } break; - case 224: + case 225: /* Line 1792 of yacc.c */ -#line 953 "./util/configparser.y" +#line 954 "./util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && @@ -3276,9 +3281,9 @@ yyreduce: } break; - case 225: + case 226: /* Line 1792 of yacc.c */ -#line 970 "./util/configparser.y" +#line 971 "./util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -3286,9 +3291,9 @@ yyreduce: } break; - case 226: + case 227: /* Line 1792 of yacc.c */ -#line 977 "./util/configparser.y" +#line 978 "./util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -3307,9 +3312,9 @@ yyreduce: } break; - case 227: + case 228: /* Line 1792 of yacc.c */ -#line 995 "./util/configparser.y" +#line 996 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -3323,9 +3328,9 @@ yyreduce: } break; - case 228: + case 229: /* Line 1792 of yacc.c */ -#line 1008 "./util/configparser.y" +#line 1009 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -3339,9 +3344,9 @@ yyreduce: } break; - case 229: + case 230: /* Line 1792 of yacc.c */ -#line 1021 "./util/configparser.y" +#line 1022 "./util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3351,9 +3356,9 @@ yyreduce: } break; - case 230: + case 231: /* Line 1792 of yacc.c */ -#line 1030 "./util/configparser.y" +#line 1031 "./util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3363,9 +3368,9 @@ yyreduce: } break; - case 231: + case 232: /* Line 1792 of yacc.c */ -#line 1039 "./util/configparser.y" +#line 1040 "./util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3375,9 +3380,9 @@ yyreduce: } break; - case 232: + case 233: /* Line 1792 of yacc.c */ -#line 1048 "./util/configparser.y" +#line 1049 "./util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3387,9 +3392,9 @@ yyreduce: } break; - case 233: + case 234: /* Line 1792 of yacc.c */ -#line 1057 "./util/configparser.y" +#line 1058 "./util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3400,9 +3405,9 @@ yyreduce: } break; - case 234: + case 235: /* Line 1792 of yacc.c */ -#line 1067 "./util/configparser.y" +#line 1068 "./util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3413,9 +3418,9 @@ yyreduce: } break; - case 235: + case 236: /* Line 1792 of yacc.c */ -#line 1077 "./util/configparser.y" +#line 1078 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3425,9 +3430,9 @@ yyreduce: } break; - case 236: + case 237: /* Line 1792 of yacc.c */ -#line 1086 "./util/configparser.y" +#line 1087 "./util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3437,9 +3442,9 @@ yyreduce: } break; - case 237: + case 238: /* Line 1792 of yacc.c */ -#line 1095 "./util/configparser.y" +#line 1096 "./util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -3447,9 +3452,9 @@ yyreduce: } break; - case 238: + case 239: /* Line 1792 of yacc.c */ -#line 1102 "./util/configparser.y" +#line 1103 "./util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3459,9 +3464,9 @@ yyreduce: } break; - case 239: + case 240: /* Line 1792 of yacc.c */ -#line 1111 "./util/configparser.y" +#line 1112 "./util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3471,9 +3476,9 @@ yyreduce: } break; - case 240: + case 241: /* Line 1792 of yacc.c */ -#line 1120 "./util/configparser.y" +#line 1121 "./util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3483,9 +3488,22 @@ yyreduce: } break; - case 241: + case 242: +/* Line 1792 of yacc.c */ +#line 1130 "./util/configparser.y" + { + OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->permit_small_holddown = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 243: /* Line 1792 of yacc.c */ -#line 1129 "./util/configparser.y" +#line 1139 "./util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) @@ -3494,9 +3512,9 @@ yyreduce: } break; - case 242: + case 244: /* Line 1792 of yacc.c */ -#line 1137 "./util/configparser.y" +#line 1147 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3510,9 +3528,9 @@ yyreduce: } break; - case 243: + case 245: /* Line 1792 of yacc.c */ -#line 1150 "./util/configparser.y" +#line 1160 "./util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) @@ -3521,9 +3539,9 @@ yyreduce: } break; - case 244: + case 246: /* Line 1792 of yacc.c */ -#line 1158 "./util/configparser.y" +#line 1168 "./util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && @@ -3548,9 +3566,9 @@ yyreduce: } break; - case 245: + case 247: /* Line 1792 of yacc.c */ -#line 1182 "./util/configparser.y" +#line 1192 "./util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) @@ -3558,9 +3576,9 @@ yyreduce: } break; - case 246: + case 248: /* Line 1792 of yacc.c */ -#line 1189 "./util/configparser.y" +#line 1199 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -3576,9 +3594,9 @@ yyreduce: } break; - case 247: + case 249: /* Line 1792 of yacc.c */ -#line 1204 "./util/configparser.y" +#line 1214 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3589,9 +3607,9 @@ yyreduce: } break; - case 248: + case 250: /* Line 1792 of yacc.c */ -#line 1214 "./util/configparser.y" +#line 1224 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3602,9 +3620,9 @@ yyreduce: } break; - case 249: + case 251: /* Line 1792 of yacc.c */ -#line 1224 "./util/configparser.y" +#line 1234 "./util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[(2) - (2)].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[(2) - (2)].str)); @@ -3612,9 +3630,9 @@ yyreduce: } break; - case 250: + case 252: /* Line 1792 of yacc.c */ -#line 1231 "./util/configparser.y" +#line 1241 "./util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dns64_prefix); @@ -3622,9 +3640,9 @@ yyreduce: } break; - case 251: + case 253: /* Line 1792 of yacc.c */ -#line 1238 "./util/configparser.y" +#line 1248 "./util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3634,9 +3652,9 @@ yyreduce: } break; - case 252: + case 254: /* Line 1792 of yacc.c */ -#line 1247 "./util/configparser.y" +#line 1257 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3646,9 +3664,9 @@ yyreduce: } break; - case 253: + case 255: /* Line 1792 of yacc.c */ -#line 1256 "./util/configparser.y" +#line 1266 "./util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->ratelimit_size)) @@ -3657,9 +3675,9 @@ yyreduce: } break; - case 254: + case 256: /* Line 1792 of yacc.c */ -#line 1264 "./util/configparser.y" +#line 1274 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3673,9 +3691,9 @@ yyreduce: } break; - case 255: + case 257: /* Line 1792 of yacc.c */ -#line 1277 "./util/configparser.y" +#line 1287 "./util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) { @@ -3689,9 +3707,9 @@ yyreduce: } break; - case 256: + case 258: /* Line 1792 of yacc.c */ -#line 1290 "./util/configparser.y" +#line 1300 "./util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) { @@ -3705,9 +3723,9 @@ yyreduce: } break; - case 257: + case 259: /* Line 1792 of yacc.c */ -#line 1303 "./util/configparser.y" +#line 1313 "./util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3717,9 +3735,9 @@ yyreduce: } break; - case 258: + case 260: /* Line 1792 of yacc.c */ -#line 1312 "./util/configparser.y" +#line 1322 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->stubs->name) @@ -3730,9 +3748,9 @@ yyreduce: } break; - case 259: + case 261: /* Line 1792 of yacc.c */ -#line 1322 "./util/configparser.y" +#line 1332 "./util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) @@ -3740,9 +3758,9 @@ yyreduce: } break; - case 260: + case 262: /* Line 1792 of yacc.c */ -#line 1329 "./util/configparser.y" +#line 1339 "./util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) @@ -3750,9 +3768,9 @@ yyreduce: } break; - case 261: + case 263: /* Line 1792 of yacc.c */ -#line 1336 "./util/configparser.y" +#line 1346 "./util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3762,9 +3780,9 @@ yyreduce: } break; - case 262: + case 264: /* Line 1792 of yacc.c */ -#line 1345 "./util/configparser.y" +#line 1355 "./util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3775,9 +3793,9 @@ yyreduce: } break; - case 263: + case 265: /* Line 1792 of yacc.c */ -#line 1355 "./util/configparser.y" +#line 1365 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->forwards->name) @@ -3788,9 +3806,9 @@ yyreduce: } break; - case 264: + case 266: /* Line 1792 of yacc.c */ -#line 1365 "./util/configparser.y" +#line 1375 "./util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) @@ -3798,9 +3816,9 @@ yyreduce: } break; - case 265: + case 267: /* Line 1792 of yacc.c */ -#line 1372 "./util/configparser.y" +#line 1382 "./util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) @@ -3808,9 +3826,9 @@ yyreduce: } break; - case 266: + case 268: /* Line 1792 of yacc.c */ -#line 1379 "./util/configparser.y" +#line 1389 "./util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3820,17 +3838,17 @@ yyreduce: } break; - case 267: + case 269: /* Line 1792 of yacc.c */ -#line 1388 "./util/configparser.y" +#line 1398 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 278: + case 280: /* Line 1792 of yacc.c */ -#line 1399 "./util/configparser.y" +#line 1409 "./util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3841,9 +3859,9 @@ yyreduce: } break; - case 279: + case 281: /* Line 1792 of yacc.c */ -#line 1409 "./util/configparser.y" +#line 1419 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3853,9 +3871,9 @@ yyreduce: } break; - case 280: + case 282: /* Line 1792 of yacc.c */ -#line 1418 "./util/configparser.y" +#line 1428 "./util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) @@ -3863,9 +3881,9 @@ yyreduce: } break; - case 281: + case 283: /* Line 1792 of yacc.c */ -#line 1425 "./util/configparser.y" +#line 1435 "./util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3876,9 +3894,9 @@ yyreduce: } break; - case 282: + case 284: /* Line 1792 of yacc.c */ -#line 1435 "./util/configparser.y" +#line 1445 "./util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -3886,9 +3904,9 @@ yyreduce: } break; - case 283: + case 285: /* Line 1792 of yacc.c */ -#line 1442 "./util/configparser.y" +#line 1452 "./util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -3896,9 +3914,9 @@ yyreduce: } break; - case 284: + case 286: /* Line 1792 of yacc.c */ -#line 1449 "./util/configparser.y" +#line 1459 "./util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -3906,9 +3924,9 @@ yyreduce: } break; - case 285: + case 287: /* Line 1792 of yacc.c */ -#line 1456 "./util/configparser.y" +#line 1466 "./util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -3916,17 +3934,17 @@ yyreduce: } break; - case 286: + case 288: /* Line 1792 of yacc.c */ -#line 1463 "./util/configparser.y" +#line 1473 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } break; - case 301: + case 303: /* Line 1792 of yacc.c */ -#line 1480 "./util/configparser.y" +#line 1490 "./util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3935,9 +3953,9 @@ yyreduce: } break; - case 302: + case 304: /* Line 1792 of yacc.c */ -#line 1488 "./util/configparser.y" +#line 1498 "./util/configparser.y" { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dnstap_socket_path); @@ -3945,9 +3963,9 @@ yyreduce: } break; - case 303: + case 305: /* Line 1792 of yacc.c */ -#line 1495 "./util/configparser.y" +#line 1505 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3956,9 +3974,9 @@ yyreduce: } break; - case 304: + case 306: /* Line 1792 of yacc.c */ -#line 1503 "./util/configparser.y" +#line 1513 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3967,9 +3985,9 @@ yyreduce: } break; - case 305: + case 307: /* Line 1792 of yacc.c */ -#line 1511 "./util/configparser.y" +#line 1521 "./util/configparser.y" { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dnstap_identity); @@ -3977,9 +3995,9 @@ yyreduce: } break; - case 306: + case 308: /* Line 1792 of yacc.c */ -#line 1518 "./util/configparser.y" +#line 1528 "./util/configparser.y" { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dnstap_version); @@ -3987,9 +4005,9 @@ yyreduce: } break; - case 307: + case 309: /* Line 1792 of yacc.c */ -#line 1525 "./util/configparser.y" +#line 1535 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3999,9 +4017,9 @@ yyreduce: } break; - case 308: + case 310: /* Line 1792 of yacc.c */ -#line 1534 "./util/configparser.y" +#line 1544 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4011,9 +4029,9 @@ yyreduce: } break; - case 309: + case 311: /* Line 1792 of yacc.c */ -#line 1543 "./util/configparser.y" +#line 1553 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4023,9 +4041,9 @@ yyreduce: } break; - case 310: + case 312: /* Line 1792 of yacc.c */ -#line 1552 "./util/configparser.y" +#line 1562 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4035,9 +4053,9 @@ yyreduce: } break; - case 311: + case 313: /* Line 1792 of yacc.c */ -#line 1561 "./util/configparser.y" +#line 1571 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4047,9 +4065,9 @@ yyreduce: } break; - case 312: + case 314: /* Line 1792 of yacc.c */ -#line 1570 "./util/configparser.y" +#line 1580 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4059,17 +4077,17 @@ yyreduce: } break; - case 313: + case 315: /* Line 1792 of yacc.c */ -#line 1579 "./util/configparser.y" +#line 1589 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } break; - case 317: + case 319: /* Line 1792 of yacc.c */ -#line 1588 "./util/configparser.y" +#line 1598 "./util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->python_script); @@ -4079,7 +4097,7 @@ yyreduce: /* Line 1792 of yacc.c */ -#line 4083 "util/configparser.c" +#line 4101 "util/configparser.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4311,7 +4329,7 @@ yyreturn: /* Line 2055 of yacc.c */ -#line 1593 "./util/configparser.y" +#line 1603 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/external/unbound/util/configparser.h b/external/unbound/util/configparser.h index 52ec99221..ca2daeefd 100644 --- a/external/unbound/util/configparser.h +++ b/external/unbound/util/configparser.h @@ -203,7 +203,8 @@ extern int yydebug; VAR_RATELIMIT_BELOW_DOMAIN = 412, VAR_RATELIMIT_FACTOR = 413, VAR_CAPS_WHITELIST = 414, - VAR_CACHE_MAX_NEGATIVE_TTL = 415 + VAR_CACHE_MAX_NEGATIVE_TTL = 415, + VAR_PERMIT_SMALL_HOLDDOWN = 416 }; #endif /* Tokens. */ @@ -365,6 +366,7 @@ extern int yydebug; #define VAR_RATELIMIT_FACTOR 413 #define VAR_CAPS_WHITELIST 414 #define VAR_CACHE_MAX_NEGATIVE_TTL 415 +#define VAR_PERMIT_SMALL_HOLDDOWN 416 @@ -378,7 +380,7 @@ typedef union YYSTYPE /* Line 2058 of yacc.c */ -#line 382 "util/configparser.h" +#line 384 "util/configparser.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/external/unbound/util/configparser.y b/external/unbound/util/configparser.y index ad7f3d292..d6db3c86f 100644 --- a/external/unbound/util/configparser.y +++ b/external/unbound/util/configparser.y @@ -121,7 +121,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_HARDEN_ALGO_DOWNGRADE VAR_IP_TRANSPARENT %token VAR_RATELIMIT VAR_RATELIMIT_SLABS VAR_RATELIMIT_SIZE %token VAR_RATELIMIT_FOR_DOMAIN VAR_RATELIMIT_BELOW_DOMAIN VAR_RATELIMIT_FACTOR -%token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL +%token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL VAR_PERMIT_SMALL_HOLDDOWN %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -185,7 +185,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_ip_transparent | server_ratelimit | server_ratelimit_slabs | server_ratelimit_size | server_ratelimit_for_domain | server_ratelimit_below_domain | server_ratelimit_factor | - server_caps_whitelist | server_cache_max_negative_ttl + server_caps_whitelist | server_cache_max_negative_ttl | + server_permit_small_holddown ; stubstart: VAR_STUB_ZONE { @@ -1125,6 +1126,15 @@ server_keep_missing: VAR_KEEP_MISSING STRING_ARG free($2); } ; +server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG + { + OUTYY(("P(server_permit_small_holddown:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->permit_small_holddown = + (strcmp($2, "yes")==0); + free($2); + } server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG { OUTYY(("P(server_key_cache_size:%s)\n", $2)); diff --git a/external/unbound/util/data/msgencode.c b/external/unbound/util/data/msgencode.c index f9a8c5f67..43464e9bb 100644 --- a/external/unbound/util/data/msgencode.c +++ b/external/unbound/util/data/msgencode.c @@ -283,7 +283,7 @@ compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt, size_t owner_pos, uint16_t* owner_ptr, int owner_labs) { struct compress_tree_node* p; - struct compress_tree_node** insertpt; + struct compress_tree_node** insertpt = NULL; if(!*owner_ptr) { /* compress first time dname */ if((p = compress_tree_lookup(tree, key->rk.dname, diff --git a/external/unbound/util/data/msgreply.c b/external/unbound/util/data/msgreply.c index b1d3df639..06593ffe1 100644 --- a/external/unbound/util/data/msgreply.c +++ b/external/unbound/util/data/msgreply.c @@ -822,13 +822,13 @@ log_query_info(enum verbosity_value v, const char* str, } int -reply_check_cname_chain(struct reply_info* rep) +reply_check_cname_chain(struct query_info* qinfo, struct reply_info* rep) { /* check only answer section rrs for matching cname chain. * the cache may return changed rdata, but owner names are untouched.*/ size_t i; - uint8_t* sname = rep->rrsets[0]->rk.dname; - size_t snamelen = rep->rrsets[0]->rk.dname_len; + uint8_t* sname = qinfo->qname; + size_t snamelen = qinfo->qname_len; for(i=0; i<rep->an_numrrsets; i++) { uint16_t t = ntohs(rep->rrsets[i]->rk.type); if(t == LDNS_RR_TYPE_DNAME) diff --git a/external/unbound/util/data/msgreply.h b/external/unbound/util/data/msgreply.h index e8d6d762e..708897950 100644 --- a/external/unbound/util/data/msgreply.h +++ b/external/unbound/util/data/msgreply.h @@ -359,10 +359,11 @@ uint8_t* reply_find_final_cname_target(struct query_info* qinfo, /** * Check if cname chain in cached reply is still valid. + * @param qinfo: query info with query name. * @param rep: reply to check. * @return: true if valid, false if invalid. */ -int reply_check_cname_chain(struct reply_info* rep); +int reply_check_cname_chain(struct query_info* qinfo, struct reply_info* rep); /** * Check security status of all RRs in the message. diff --git a/external/unbound/util/iana_ports.inc b/external/unbound/util/iana_ports.inc index 03ad2baaf..91dd39abe 100644 --- a/external/unbound/util/iana_ports.inc +++ b/external/unbound/util/iana_ports.inc @@ -1066,7 +1066,6 @@ 1404, 1405, 1406, -1407, 1408, 1409, 1410, @@ -4667,6 +4666,7 @@ 7725, 7726, 7727, +7728, 7734, 7738, 7741, @@ -4781,6 +4781,7 @@ 8301, 8320, 8321, +8322, 8351, 8376, 8377, @@ -4788,6 +4789,7 @@ 8379, 8380, 8383, +8384, 8400, 8401, 8402, @@ -4804,6 +4806,7 @@ 8474, 8500, 8501, +8503, 8554, 8555, 8567, @@ -5034,6 +5037,7 @@ 10200, 10201, 10252, +10253, 10260, 10288, 10439, @@ -5168,6 +5172,8 @@ 17220, 17221, 17222, +17224, +17225, 17234, 17235, 17500, @@ -5380,6 +5386,7 @@ 40843, 40853, 41111, +41230, 41794, 41795, 42508, diff --git a/external/unbound/util/net_help.c b/external/unbound/util/net_help.c index 8b39af6b3..07605b19f 100644 --- a/external/unbound/util/net_help.c +++ b/external/unbound/util/net_help.c @@ -629,9 +629,9 @@ void* listen_sslctx_create(char* key, char* pem, char* verifypem) SSL_CTX_free(ctx); return NULL; } - if(!SSL_CTX_use_certificate_file(ctx, pem, SSL_FILETYPE_PEM)) { + if(!SSL_CTX_use_certificate_chain_file(ctx, pem)) { log_err("error for cert file: %s", pem); - log_crypto_err("error in SSL_CTX use_certificate_file"); + log_crypto_err("error in SSL_CTX use_certificate_chain_file"); SSL_CTX_free(ctx); return NULL; } @@ -647,6 +647,23 @@ void* listen_sslctx_create(char* key, char* pem, char* verifypem) SSL_CTX_free(ctx); return NULL; } +#if HAVE_DECL_SSL_CTX_SET_ECDH_AUTO + if(!SSL_CTX_set_ecdh_auto(ctx,1)) { + log_crypto_err("Error in SSL_CTX_ecdh_auto, not enabling ECDHE"); + } +#elif defined(USE_ECDSA) + if(1) { + EC_KEY *ecdh = EC_KEY_new_by_curve_name (NID_X9_62_prime256v1); + if (!ecdh) { + log_crypto_err("could not find p256, not enabling ECDHE"); + } else { + if (1 != SSL_CTX_set_tmp_ecdh (ctx, ecdh)) { + log_crypto_err("Error in SSL_CTX_set_tmp_ecdh, not enabling ECDHE"); + } + EC_KEY_free (ecdh); + } + } +#endif if(verifypem && verifypem[0]) { if(!SSL_CTX_load_verify_locations(ctx, verifypem, NULL)) { @@ -684,7 +701,7 @@ void* connect_sslctx_create(char* key, char* pem, char* verifypem) return NULL; } if(key && key[0]) { - if(!SSL_CTX_use_certificate_file(ctx, pem, SSL_FILETYPE_PEM)) { + if(!SSL_CTX_use_certificate_chain_file(ctx, pem)) { log_err("error in client certificate %s", pem); log_crypto_err("error in certificate file"); SSL_CTX_free(ctx); diff --git a/external/unbound/validator/autotrust.c b/external/unbound/validator/autotrust.c index d90eec9eb..e63b086e6 100644 --- a/external/unbound/validator/autotrust.c +++ b/external/unbound/validator/autotrust.c @@ -1225,7 +1225,7 @@ verify_dnskey(struct module_env* env, struct val_env* ve, { char* reason = NULL; uint8_t sigalg[ALGO_NEEDS_MAX+1]; - int downprot = 1; + int downprot = env->cfg->harden_algo_downgrade; enum sec_status sec = val_verify_DNSKEY_with_TA(env, ve, rrset, tp->ds_rrset, tp->dnskey_rrset, downprot?sigalg:NULL, &reason); /* sigalg is ignored, it returns algorithms signalled to exist, but @@ -1447,9 +1447,11 @@ set_tp_times(struct trust_anchor* tp, time_t rrsig_exp_interval, if(rrsig_exp_interval/2 < x) x = rrsig_exp_interval/2; /* MAX(1hr, x) */ - if(x < 3600) - tp->autr->query_interval = 3600; - else tp->autr->query_interval = x; + if(!autr_permit_small_holddown) { + if(x < 3600) + tp->autr->query_interval = 3600; + else tp->autr->query_interval = x; + } else tp->autr->query_interval = x; /* x= MIN(1day, ttl/10, expire/10) */ x = 24 * 3600; @@ -1458,9 +1460,11 @@ set_tp_times(struct trust_anchor* tp, time_t rrsig_exp_interval, if(rrsig_exp_interval/10 < x) x = rrsig_exp_interval/10; /* MAX(1hr, x) */ - if(x < 3600) - tp->autr->retry_time = 3600; - else tp->autr->retry_time = x; + if(!autr_permit_small_holddown) { + if(x < 3600) + tp->autr->retry_time = 3600; + else tp->autr->retry_time = x; + } else tp->autr->retry_time = x; if(qi != tp->autr->query_interval || rt != tp->autr->retry_time) { *changed = 1; @@ -1959,8 +1963,12 @@ calc_next_probe(struct module_env* env, time_t wait) { /* make it random, 90-100% */ time_t rnd, rest; - if(wait < 3600) - wait = 3600; + if(!autr_permit_small_holddown) { + if(wait < 3600) + wait = 3600; + } else { + if(wait == 0) wait = 1; + } rnd = wait/10; rest = wait-rnd; rnd = (time_t)ub_random_max(env->rnd, (long int)rnd); @@ -2349,6 +2357,8 @@ todo_probe(struct module_env* env, time_t* next) if( (el=rbtree_first(&env->anchors->autr->probe)) == RBTREE_NULL) { /* in case of revoked anchors */ lock_basic_unlock(&env->anchors->lock); + /* signal that there are no anchors to probe */ + *next = 0; return NULL; } tp = (struct trust_anchor*)el->key; @@ -2378,6 +2388,7 @@ autr_probe_timer(struct module_env* env) struct trust_anchor* tp; time_t next_probe = 3600; int num = 0; + if(autr_permit_small_holddown) next_probe = 1; verbose(VERB_ALGO, "autotrust probe timer callback"); /* while there are still anchors to probe */ while( (tp = todo_probe(env, &next_probe)) ) { @@ -2386,7 +2397,7 @@ autr_probe_timer(struct module_env* env) num++; } regional_free_all(env->scratch); - if(num == 0) + if(next_probe == 0) return 0; /* no trust points to probe */ verbose(VERB_ALGO, "autotrust probe timer %d callbacks done", num); return next_probe; diff --git a/external/unbound/validator/validator.c b/external/unbound/validator/validator.c index 74068659f..f8b429e52 100644 --- a/external/unbound/validator/validator.c +++ b/external/unbound/validator/validator.c @@ -2769,7 +2769,7 @@ process_dnskey_response(struct module_qstate* qstate, struct val_qstate* vq, vq->state = VAL_VALIDATE_STATE; return; } - downprot = 1; + downprot = qstate->env->cfg->harden_algo_downgrade; vq->key_entry = val_verify_new_DNSKEYs(qstate->region, qstate->env, ve, dnskey, vq->ds_rrset, downprot, &reason); |