aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2024-03-16 23:58:33 +0000
committerCy Schubert <cy@FreeBSD.org>2024-03-17 00:00:52 +0000
commit5a33598e88ad8fbc0affa74dee0a2d8cc4010fbc (patch)
tree211c17b0e7eeb34cdd84e378e3720514e8987b8c
parent217a625642d38bfc0d3d03192b013d4bc7a32458 (diff)
downloadsrc-vendor/unbound.tar.gz
src-vendor/unbound.zip
unbound: Vendor import 1.19.3vendor/unbound/1.19.3vendor/unbound
-rw-r--r--acx_nlnetlabs.m4121
-rw-r--r--config.h.in~1456
-rwxr-xr-xconfigure350
-rw-r--r--configure.ac28
-rw-r--r--daemon/remote.c10
-rw-r--r--daemon/worker.c28
-rw-r--r--dnstap/dnstap.c32
-rw-r--r--dnstap/dnstap.h4
-rw-r--r--dnstap/dnstap.m4107
-rw-r--r--dnstap/dnstap.proto82
-rw-r--r--doc/Changelog140
-rw-r--r--doc/README11
-rw-r--r--doc/example.conf.in25
-rw-r--r--doc/libunbound.3.in4
-rw-r--r--doc/unbound-anchor.8.in2
-rw-r--r--doc/unbound-checkconf.8.in2
-rw-r--r--doc/unbound-control.8.in2
-rw-r--r--doc/unbound-host.1.in2
-rw-r--r--doc/unbound.8.in4
-rw-r--r--doc/unbound.conf.5.in24
-rw-r--r--iterator/iter_fwd.c1
-rw-r--r--iterator/iter_hints.c5
-rw-r--r--iterator/iter_scrub.c3
-rw-r--r--iterator/iterator.c8
-rw-r--r--services/authzone.c2
-rw-r--r--services/cache/dns.c12
-rw-r--r--services/localzone.c6
-rw-r--r--services/mesh.c10
-rw-r--r--services/outside_network.c46
-rw-r--r--testcode/testpkts.c1
-rw-r--r--testcode/unitauth.c16
-rw-r--r--testdata/01-doc.tdir/01-doc.test26
-rw-r--r--testdata/auth_axfr.tdir/auth_axfr.test14
-rw-r--r--testdata/auth_https.tdir/auth_https.test14
-rw-r--r--testdata/blanks_cached_zone.tdir/blanks_cached_zone.test14
-rw-r--r--testdata/blanks_https.tdir/blanks_https.test14
-rw-r--r--testdata/cachedb_no_store.tdir/cachedb_no_store.post2
-rw-r--r--testdata/cachedb_no_store.tdir/cachedb_no_store.test14
-rw-r--r--testdata/common.sh128
-rw-r--r--testdata/fwd_ancil.tdir/fwd_ancil.post4
-rw-r--r--testdata/fwd_ancil.tdir/fwd_ancil.pre2
-rw-r--r--testdata/fwd_ancil.tdir/fwd_ancil.test2
-rw-r--r--testdata/fwd_bogus.tdir/fwd_bogus.test2
-rw-r--r--testdata/fwd_capsid.tdir/fwd_capsid.test2
-rw-r--r--testdata/fwd_capsid_fallback.tdir/fwd_capsid_fallback.test2
-rw-r--r--testdata/fwd_capsid_strip.tdir/fwd_capsid_strip.test2
-rw-r--r--testdata/fwd_capsid_white.tdir/fwd_capsid_white.test2
-rw-r--r--testdata/fwd_edns_bksec.tdir/fwd_edns_bksec.test4
-rw-r--r--testdata/fwd_edns_probe.tdir/fwd_edns_probe.test4
-rw-r--r--testdata/fwd_malformed.tdir/fwd_malformed.test2
-rw-r--r--testdata/fwd_no_edns.tdir/fwd_no_edns.test2
-rw-r--r--testdata/fwd_oneport.tdir/fwd_oneport.post2
-rw-r--r--testdata/fwd_oneport.tdir/fwd_oneport.test14
-rw-r--r--testdata/fwd_tcp.tdir/fwd_tcp.test2
-rw-r--r--testdata/fwd_tcp_tc.tdir/fwd_tcp_tc.test2
-rw-r--r--testdata/fwd_three.tdir/fwd_three.post2
-rw-r--r--testdata/fwd_three.tdir/fwd_three.test8
-rw-r--r--testdata/fwd_three_service.tdir/fwd_three_service.post2
-rw-r--r--testdata/fwd_three_service.tdir/fwd_three_service.test8
-rw-r--r--testdata/fwd_ttlexpire.tdir/fwd_ttlexpire.test4
-rw-r--r--testdata/fwd_udp.tdir/fwd_udp.test2
-rw-r--r--testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.test4
-rw-r--r--testdata/fwd_udptmout.tdir/fwd_udptmout.post2
-rw-r--r--testdata/fwd_udptmout.tdir/fwd_udptmout.test14
-rw-r--r--testdata/fwd_waitudp.tdir/fwd_waitudp.post2
-rw-r--r--testdata/fwd_waitudp.tdir/fwd_waitudp.test8
-rw-r--r--testdata/fwd_zero.tdir/fwd_zero.test2
-rw-r--r--testdata/http_user_agent.tdir/http_user_agent.test14
-rw-r--r--testdata/iter_cname_minimise_nx.rpl1
-rw-r--r--testdata/iter_dname_insec.rpl20
-rw-r--r--testdata/iter_dname_ttl.rpl310
-rw-r--r--testdata/iter_dname_yx.rpl699
-rw-r--r--testdata/iter_ghost_sub.rpl2
-rw-r--r--testdata/iter_scrub_dname_insec.rpl4
-rw-r--r--testdata/local_cname.rpl36
-rw-r--r--testdata/local_nodefault.tdir/local_nodefault.test6
-rw-r--r--testdata/local_norec.tdir/local_norec.test8
-rw-r--r--testdata/local_nosnoop.tdir/local_nosnoop.test8
-rw-r--r--testdata/padding.tdir/padding.post4
-rw-r--r--testdata/padding.tdir/padding.test25
-rw-r--r--testdata/pymod.tdir/pymod.test4
-rw-r--r--testdata/pymod_thread.tdir/pymod_thread.test20
-rw-r--r--testdata/root_zonemd.tdir/root_zonemd.test32
-rw-r--r--testdata/rrset_use_cached.rpl151
-rw-r--r--testdata/serve_expired_0ttl_nodata.rpl2
-rw-r--r--testdata/serve_expired_0ttl_nxdomain.rpl2
-rw-r--r--testdata/serve_expired_0ttl_servfail.rpl2
-rw-r--r--testdata/serve_expired_cached_servfail.rpl2
-rw-r--r--testdata/serve_expired_cached_servfail_refresh.rpl2
-rw-r--r--testdata/serve_expired_client_timeout_servfail.rpl2
-rw-r--r--testdata/stat_timer.tdir/stat_timer.test2
-rw-r--r--testdata/stat_values.tdir/stat_values.test4
-rw-r--r--testdata/stub_auth_tc.tdir/stub_auth_tc.test2
-rw-r--r--testdata/subnet_scopezero_noedns.crpl441
-rw-r--r--testdata/tcp_reuse.tdir/tcp_reuse.post4
-rw-r--r--testdata/tls_reuse.tdir/tls_reuse.post4
-rw-r--r--testdata/val_cnametocnamewctoposwc.rpl2
-rw-r--r--testdata/val_cnametodnametocnametopos.rpl4
-rw-r--r--testdata/val_dnametopos.rpl4
-rw-r--r--testdata/val_dnametoposwc.rpl4
-rw-r--r--testdata/val_nsec3_cnametocnamewctoposwc.rpl2
-rw-r--r--testdata/zonemd_reload.tdir/zonemd_reload.test14
-rw-r--r--util/config_file.c3
-rw-r--r--util/config_file.h2
-rw-r--r--util/configlexer.c7280
-rw-r--r--util/configlexer.lex1
-rw-r--r--util/configparser.c3789
-rw-r--r--util/configparser.h6
-rw-r--r--util/configparser.y13
-rw-r--r--util/data/msgencode.c3
-rw-r--r--util/data/msgreply.c53
-rw-r--r--util/data/msgreply.h6
-rw-r--r--util/data/packed_rrset.c5
-rw-r--r--util/iana_ports.inc1
-rw-r--r--util/netevent.c12
-rw-r--r--validator/autotrust.c8
-rw-r--r--validator/val_sigcrypt.c2
-rw-r--r--validator/val_utils.c55
-rw-r--r--validator/validator.c2
-rw-r--r--winrc/rsrc_anchorupd.rc2
-rw-r--r--winrc/rsrc_svcinst.rc2
-rw-r--r--winrc/rsrc_svcuninst.rc2
-rw-r--r--winrc/rsrc_unbound.rc2
-rw-r--r--winrc/rsrc_unbound_anchor.rc2
-rw-r--r--winrc/rsrc_unbound_checkconf.rc2
-rw-r--r--winrc/rsrc_unbound_control.rc2
-rw-r--r--winrc/rsrc_unbound_host.rc2
-rw-r--r--winrc/unbound-control-setup.cmd16
128 files changed, 7822 insertions, 8172 deletions
diff --git a/acx_nlnetlabs.m4 b/acx_nlnetlabs.m4
index f27615bd8bce..6a01dc5a4769 100644
--- a/acx_nlnetlabs.m4
+++ b/acx_nlnetlabs.m4
@@ -2,7 +2,10 @@
# Copyright 2009, Wouter Wijngaards, NLnet Labs.
# BSD licensed.
#
-# Version 46
+# Version 48
+# 2024-01-16 fix to add -l:libssp.a to -lcrypto link check.
+# and check for getaddrinfo with only header.
+# 2024-01-15 fix to add crypt32 to -lcrypto link check when checking for gdi32.
# 2023-05-04 fix to remove unused whitespace.
# 2023-01-26 fix -Wstrict-prototypes.
# 2022-09-01 fix checking if nonblocking sockets work on OpenBSD.
@@ -707,7 +710,7 @@ AC_DEFUN([ACX_SSL_CHECKS], [
LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir_lib"
ACX_RUNTIME_PATH_ADD([$ssldir_lib])
fi
-
+
AC_MSG_CHECKING([for EVP_sha256 in -lcrypto])
LIBS="$LIBS -lcrypto"
LIBSSL_LIBS="$LIBSSL_LIBS -lcrypto"
@@ -732,40 +735,73 @@ AC_DEFUN([ACX_SSL_CHECKS], [
]])],[
AC_DEFINE([HAVE_EVP_SHA256], 1,
[If you have EVP_sha256])
- AC_MSG_RESULT(yes)
+ AC_MSG_RESULT(yes)
],[
AC_MSG_RESULT(no)
LIBS="$BAKLIBS"
LIBSSL_LIBS="$BAKSSLLIBS"
- LIBS="$LIBS -ldl"
- LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
- AC_MSG_CHECKING([if -lcrypto needs -ldl])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
- int EVP_sha256(void);
- (void)EVP_sha256();
- ]])],[
- AC_DEFINE([HAVE_EVP_SHA256], 1,
- [If you have EVP_sha256])
- AC_MSG_RESULT(yes)
- ],[
- AC_MSG_RESULT(no)
- LIBS="$BAKLIBS"
- LIBSSL_LIBS="$BAKSSLLIBS"
- LIBS="$LIBS -ldl -pthread"
- LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
- AC_MSG_CHECKING([if -lcrypto needs -ldl -pthread])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
- int EVP_sha256(void);
- (void)EVP_sha256();
- ]])],[
- AC_DEFINE([HAVE_EVP_SHA256], 1,
- [If you have EVP_sha256])
- AC_MSG_RESULT(yes)
- ],[
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([OpenSSL found in $ssldir, but version 0.9.7 or higher is required])
+
+ LIBS="$LIBS -lgdi32 -lws2_32 -lcrypt32"
+ LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32 -lcrypt32"
+ AC_MSG_CHECKING([if -lcrypto needs -lgdi32 -lws2_32 -lcrypt32])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
+ int EVP_sha256(void);
+ (void)EVP_sha256();
+ ]])],[
+ AC_DEFINE([HAVE_EVP_SHA256], 1,
+ [If you have EVP_sha256])
+ AC_MSG_RESULT(yes)
+ ],[
+ AC_MSG_RESULT(no)
+ LIBS="$BAKLIBS"
+ LIBSSL_LIBS="$BAKSSLLIBS"
+
+ LIBS="$LIBS -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a"
+ LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a"
+ AC_MSG_CHECKING([if -lcrypto needs -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
+ int EVP_sha256(void);
+ (void)EVP_sha256();
+ ]])],[
+ AC_DEFINE([HAVE_EVP_SHA256], 1,
+ [If you have EVP_sha256])
+ AC_MSG_RESULT(yes)
+ ],[
+ AC_MSG_RESULT(no)
+ LIBS="$BAKLIBS"
+ LIBSSL_LIBS="$BAKSSLLIBS"
+
+ LIBS="$LIBS -ldl"
+ LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
+ AC_MSG_CHECKING([if -lcrypto needs -ldl])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
+ int EVP_sha256(void);
+ (void)EVP_sha256();
+ ]])],[
+ AC_DEFINE([HAVE_EVP_SHA256], 1,
+ [If you have EVP_sha256])
+ AC_MSG_RESULT(yes)
+ ],[
+ AC_MSG_RESULT(no)
+ LIBS="$BAKLIBS"
+ LIBSSL_LIBS="$BAKSSLLIBS"
+ LIBS="$LIBS -ldl -pthread"
+ LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
+ AC_MSG_CHECKING([if -lcrypto needs -ldl -pthread])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
+ int EVP_sha256(void);
+ (void)EVP_sha256();
+ ]])],[
+ AC_DEFINE([HAVE_EVP_SHA256], 1,
+ [If you have EVP_sha256])
+ AC_MSG_RESULT(yes)
+ ],[
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR([OpenSSL found in $ssldir, but version 0.9.7 or higher is required])
+ ])
+ ])
])
- ])
+ ])
])
])
fi
@@ -779,7 +815,7 @@ AC_CHECK_HEADERS([openssl/rand.h],,, [AC_INCLUDES_DEFAULT])
dnl Check for SSL, where SSL is mandatory
dnl Adds --with-ssl option, searches for openssl and defines HAVE_SSL if found
-dnl Setup of CPPFLAGS, CFLAGS. Adds -lcrypto to LIBS.
+dnl Setup of CPPFLAGS, CFLAGS. Adds -lcrypto to LIBS.
dnl Checks main header files of SSL.
dnl
AC_DEFUN([ACX_WITH_SSL],
@@ -872,7 +908,7 @@ dnl see if on windows
if test "$ac_cv_header_windows_h" = "yes"; then
AC_DEFINE(USE_WINSOCK, 1, [Whether the windows socket API is used])
USE_WINSOCK="1"
- if echo $LIBS | grep 'lws2_32' >/dev/null; then
+ if echo "$LIBS" | grep 'lws2_32' >/dev/null; then
:
else
LIBS="$LIBS -lws2_32"
@@ -880,6 +916,24 @@ if test "$ac_cv_header_windows_h" = "yes"; then
fi
],
dnl no quick getaddrinfo, try mingw32 and winsock2 library.
+dnl perhaps getaddrinfo needs only the include
+AC_LINK_IFELSE(
+[AC_LANG_PROGRAM(
+[
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+],
+[
+ (void)getaddrinfo(NULL, NULL, NULL, NULL);
+]
+)],
+[
+ac_cv_func_getaddrinfo="yes"
+AC_DEFINE(USE_WINSOCK, 1, [Whether the windows socket API is used])
+USE_WINSOCK="1"
+],
+
ORIGLIBS="$LIBS"
LIBS="$LIBS -lws2_32"
AC_LINK_IFELSE(
@@ -904,6 +958,7 @@ ac_cv_func_getaddrinfo="no"
LIBS="$ORIGLIBS"
])
)
+)
AC_MSG_RESULT($ac_cv_func_getaddrinfo)
if test $ac_cv_func_getaddrinfo = yes; then
diff --git a/config.h.in~ b/config.h.in~
deleted file mode 100644
index f31354d01408..000000000000
--- a/config.h.in~
+++ /dev/null
@@ -1,1456 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* apply the noreturn attribute to a function that exits the program */
-#undef ATTR_NORETURN
-
-/* apply the weak attribute to a symbol */
-#undef ATTR_WEAK
-
-/* Directory to chroot to */
-#undef CHROOT_DIR
-
-/* Define this to enable client subnet option. */
-#undef CLIENT_SUBNET
-
-/* Do sha512 definitions in config.h */
-#undef COMPAT_SHA512
-
-/* Command line arguments used with configure */
-#undef CONFCMDLINE
-
-/* Pathname to the Unbound configuration file */
-#undef CONFIGFILE
-
-/* Define this if on macOSX10.4-darwin8 and setreuid and setregid do not work
- */
-#undef DARWIN_BROKEN_SETREUID
-
-/* Whether daemon is deprecated */
-#undef DEPRECATED_DAEMON
-
-/* Deprecate RSA 1024 bit length, makes that an unsupported key */
-#undef DEPRECATE_RSA_1024
-
-/* Define this to enable kernel based UDP source port randomization. */
-#undef DISABLE_EXPLICIT_PORT_RANDOMISATION
-
-/* default dnstap socket path */
-#undef DNSTAP_SOCKET_PATH
-
-/* Define if you want to use debug lock checking (slow). */
-#undef ENABLE_LOCK_CHECKS
-
-/* Define this if you enabled-allsymbols from libunbound to link binaries to
- it for smaller install size, but the libunbound export table is polluted by
- internal symbols */
-#undef EXPORT_ALL_SYMBOLS
-
-/* Define to 1 if you have the `accept4' function. */
-#undef HAVE_ACCEPT4
-
-/* Define to 1 if you have the `arc4random' function. */
-#undef HAVE_ARC4RANDOM
-
-/* Define to 1 if you have the `arc4random_uniform' function. */
-#undef HAVE_ARC4RANDOM_UNIFORM
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#undef HAVE_ARPA_INET_H
-
-/* Whether the C compiler accepts the "format" attribute */
-#undef HAVE_ATTR_FORMAT
-
-/* Whether the C compiler accepts the "noreturn" attribute */
-#undef HAVE_ATTR_NORETURN
-
-/* Whether the C compiler accepts the "unused" attribute */
-#undef HAVE_ATTR_UNUSED
-
-/* Whether the C compiler accepts the "weak" attribute */
-#undef HAVE_ATTR_WEAK
-
-/* If we have be64toh */
-#undef HAVE_BE64TOH
-
-/* Define to 1 if you have the `BIO_set_callback_ex' function. */
-#undef HAVE_BIO_SET_CALLBACK_EX
-
-/* Define to 1 if you have the <bsd/stdlib.h> header file. */
-#undef HAVE_BSD_STDLIB_H
-
-/* Define to 1 if you have the <bsd/string.h> header file. */
-#undef HAVE_BSD_STRING_H
-
-/* Define to 1 if you have the `chown' function. */
-#undef HAVE_CHOWN
-
-/* Define to 1 if you have the `chroot' function. */
-#undef HAVE_CHROOT
-
-/* Define to 1 if you have the `CRYPTO_cleanup_all_ex_data' function. */
-#undef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA
-
-/* Define to 1 if you have the `CRYPTO_THREADID_set_callback' function. */
-#undef HAVE_CRYPTO_THREADID_SET_CALLBACK
-
-/* Define to 1 if you have the `ctime_r' function. */
-#undef HAVE_CTIME_R
-
-/* Define to 1 if you have the `daemon' function. */
-#undef HAVE_DAEMON
-
-/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
- don't. */
-#undef HAVE_DECL_ARC4RANDOM
-
-/* Define to 1 if you have the declaration of `arc4random_uniform', and to 0
- if you don't. */
-#undef HAVE_DECL_ARC4RANDOM_UNIFORM
-
-/* Define to 1 if you have the declaration of `evsignal_assign', and to 0 if
- you don't. */
-#undef HAVE_DECL_EVSIGNAL_ASSIGN
-
-/* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you
- don't. */
-#undef HAVE_DECL_INET_NTOP
-
-/* Define to 1 if you have the declaration of `inet_pton', and to 0 if you
- don't. */
-#undef HAVE_DECL_INET_PTON
-
-/* Define to 1 if you have the declaration of `nghttp2_session_server_new',
- and to 0 if you don't. */
-#undef HAVE_DECL_NGHTTP2_SESSION_SERVER_NEW
-
-/* Define to 1 if you have the declaration of `NID_ED25519', and to 0 if you
- don't. */
-#undef HAVE_DECL_NID_ED25519
-
-/* Define to 1 if you have the declaration of `NID_ED448', and to 0 if you
- don't. */
-#undef HAVE_DECL_NID_ED448
-
-/* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you
- don't. */
-#undef HAVE_DECL_NID_SECP384R1
-
-/* Define to 1 if you have the declaration of `NID_X9_62_prime256v1', and to 0
- if you don't. */
-#undef HAVE_DECL_NID_X9_62_PRIME256V1
-
-/* Define to 1 if you have the declaration of `reallocarray', and to 0 if you
- don't. */
-#undef HAVE_DECL_REALLOCARRAY
-
-/* Define to 1 if you have the declaration of `redisConnect', and to 0 if you
- don't. */
-#undef HAVE_DECL_REDISCONNECT
-
-/* Define to 1 if you have the declaration of `sk_SSL_COMP_pop_free', and to 0
- if you don't. */
-#undef HAVE_DECL_SK_SSL_COMP_POP_FREE
-
-/* Define to 1 if you have the declaration of
- `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
-
-/* Define to 1 if you have the declaration of `strlcpy', and to 0 if you
- don't. */
-#undef HAVE_DECL_STRLCPY
-
-/* Define to 1 if you have the declaration of `XML_StopParser', and to 0 if
- you don't. */
-#undef HAVE_DECL_XML_STOPPARSER
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the `DSA_SIG_set0' function. */
-#undef HAVE_DSA_SIG_SET0
-
-/* Define to 1 if you have the <endian.h> header file. */
-#undef HAVE_ENDIAN_H
-
-/* Define to 1 if you have the `endprotoent' function. */
-#undef HAVE_ENDPROTOENT
-
-/* Define to 1 if you have the `endpwent' function. */
-#undef HAVE_ENDPWENT
-
-/* Define to 1 if you have the `endservent' function. */
-#undef HAVE_ENDSERVENT
-
-/* Define to 1 if you have the `ENGINE_cleanup' function. */
-#undef HAVE_ENGINE_CLEANUP
-
-/* Define to 1 if you have the `ERR_free_strings' function. */
-#undef HAVE_ERR_FREE_STRINGS
-
-/* Define to 1 if you have the `ERR_load_crypto_strings' function. */
-#undef HAVE_ERR_LOAD_CRYPTO_STRINGS
-
-/* Define to 1 if you have the `event_assign' function. */
-#undef HAVE_EVENT_ASSIGN
-
-/* Define to 1 if you have the `event_base_free' function. */
-#undef HAVE_EVENT_BASE_FREE
-
-/* Define to 1 if you have the `event_base_get_method' function. */
-#undef HAVE_EVENT_BASE_GET_METHOD
-
-/* Define to 1 if you have the `event_base_new' function. */
-#undef HAVE_EVENT_BASE_NEW
-
-/* Define to 1 if you have the `event_base_once' function. */
-#undef HAVE_EVENT_BASE_ONCE
-
-/* Define to 1 if you have the <event.h> header file. */
-#undef HAVE_EVENT_H
-
-/* Define to 1 if you have the `EVP_aes_256_cbc' function. */
-#undef HAVE_EVP_AES_256_CBC
-
-/* Define to 1 if you have the `EVP_cleanup' function. */
-#undef HAVE_EVP_CLEANUP
-
-/* Define to 1 if you have the `EVP_default_properties_is_fips_enabled'
- function. */
-#undef HAVE_EVP_DEFAULT_PROPERTIES_IS_FIPS_ENABLED
-
-/* Define to 1 if you have the `EVP_DigestVerify' function. */
-#undef HAVE_EVP_DIGESTVERIFY
-
-/* Define to 1 if you have the `EVP_dss1' function. */
-#undef HAVE_EVP_DSS1
-
-/* Define to 1 if you have the `EVP_EncryptInit_ex' function. */
-#undef HAVE_EVP_ENCRYPTINIT_EX
-
-/* Define to 1 if you have the `EVP_MAC_CTX_set_params' function. */
-#undef HAVE_EVP_MAC_CTX_SET_PARAMS
-
-/* Define to 1 if you have the `EVP_MD_CTX_new' function. */
-#undef HAVE_EVP_MD_CTX_NEW
-
-/* Define to 1 if you have the `EVP_sha1' function. */
-#undef HAVE_EVP_SHA1
-
-/* Define to 1 if you have the `EVP_sha256' function. */
-#undef HAVE_EVP_SHA256
-
-/* Define to 1 if you have the `EVP_sha512' function. */
-#undef HAVE_EVP_SHA512
-
-/* Define to 1 if you have the `ev_default_loop' function. */
-#undef HAVE_EV_DEFAULT_LOOP
-
-/* Define to 1 if you have the `ev_loop' function. */
-#undef HAVE_EV_LOOP
-
-/* Define to 1 if you have the <expat.h> header file. */
-#undef HAVE_EXPAT_H
-
-/* Define to 1 if you have the `explicit_bzero' function. */
-#undef HAVE_EXPLICIT_BZERO
-
-/* Define to 1 if you have the `fcntl' function. */
-#undef HAVE_FCNTL
-
-/* Define to 1 if you have the `FIPS_mode' function. */
-#undef HAVE_FIPS_MODE
-
-/* Define to 1 if you have the `fork' function. */
-#undef HAVE_FORK
-
-/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
-#undef HAVE_FSEEKO
-
-/* Define to 1 if you have the `fsync' function. */
-#undef HAVE_FSYNC
-
-/* Whether getaddrinfo is available */
-#undef HAVE_GETADDRINFO
-
-/* Define to 1 if you have the `getauxval' function. */
-#undef HAVE_GETAUXVAL
-
-/* Define to 1 if you have the `getentropy' function. */
-#undef HAVE_GETENTROPY
-
-/* Define to 1 if you have the `getifaddrs' function. */
-#undef HAVE_GETIFADDRS
-
-/* Define to 1 if you have the <getopt.h> header file. */
-#undef HAVE_GETOPT_H
-
-/* Define to 1 if you have the `getpwnam' function. */
-#undef HAVE_GETPWNAM
-
-/* Define to 1 if you have the `getrlimit' function. */
-#undef HAVE_GETRLIMIT
-
-/* Define to 1 if you have the `gettid' function. */
-#undef HAVE_GETTID
-
-/* Define to 1 if you have the `glob' function. */
-#undef HAVE_GLOB
-
-/* Define to 1 if you have the <glob.h> header file. */
-#undef HAVE_GLOB_H
-
-/* Define to 1 if you have the `gmtime_r' function. */
-#undef HAVE_GMTIME_R
-
-/* Define to 1 if you have the <grp.h> header file. */
-#undef HAVE_GRP_H
-
-/* Define to 1 if you have the <hiredis/hiredis.h> header file. */
-#undef HAVE_HIREDIS_HIREDIS_H
-
-/* Define to 1 if you have the `HMAC_Init_ex' function. */
-#undef HAVE_HMAC_INIT_EX
-
-/* If we have htobe64 */
-#undef HAVE_HTOBE64
-
-/* Define to 1 if you have the <ifaddrs.h> header file. */
-#undef HAVE_IFADDRS_H
-
-/* Define to 1 if you have the `if_nametoindex' function. */
-#undef HAVE_IF_NAMETOINDEX
-
-/* Define to 1 if you have the `inet_aton' function. */
-#undef HAVE_INET_ATON
-
-/* Define to 1 if you have the `inet_ntop' function. */
-#undef HAVE_INET_NTOP
-
-/* Define to 1 if you have the `inet_pton' function. */
-#undef HAVE_INET_PTON
-
-/* Define to 1 if you have the `initgroups' function. */
-#undef HAVE_INITGROUPS
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* if the function 'ioctlsocket' is available */
-#undef HAVE_IOCTLSOCKET
-
-/* Define to 1 if you have the <iphlpapi.h> header file. */
-#undef HAVE_IPHLPAPI_H
-
-/* Define to 1 if you have the `isblank' function. */
-#undef HAVE_ISBLANK
-
-/* Define to 1 if you have the `kill' function. */
-#undef HAVE_KILL
-
-/* Use portable libbsd functions */
-#undef HAVE_LIBBSD
-
-/* Define to 1 if you have the <libkern/OSByteOrder.h> header file. */
-#undef HAVE_LIBKERN_OSBYTEORDER_H
-
-/* Define if we have LibreSSL */
-#undef HAVE_LIBRESSL
-
-/* Define to 1 if you have the <linux/net_tstamp.h> header file. */
-#undef HAVE_LINUX_NET_TSTAMP_H
-
-/* Define to 1 if you have the `localtime_r' function. */
-#undef HAVE_LOCALTIME_R
-
-/* Define to 1 if you have the <login_cap.h> header file. */
-#undef HAVE_LOGIN_CAP_H
-
-/* If have GNU libc compatible malloc */
-#undef HAVE_MALLOC
-
-/* Define to 1 if you have the `memmove' function. */
-#undef HAVE_MEMMOVE
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#undef HAVE_NETDB_H
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define to 1 if you have the <netinet/tcp.h> header file. */
-#undef HAVE_NETINET_TCP_H
-
-/* Define to 1 if you have the <netioapi.h> header file. */
-#undef HAVE_NETIOAPI_H
-
-/* Use libnettle for crypto */
-#undef HAVE_NETTLE
-
-/* Define to 1 if you have the <nettle/dsa-compat.h> header file. */
-#undef HAVE_NETTLE_DSA_COMPAT_H
-
-/* Define to 1 if you have the <nettle/eddsa.h> header file. */
-#undef HAVE_NETTLE_EDDSA_H
-
-/* Define to 1 if you have the <net/if.h> header file. */
-#undef HAVE_NET_IF_H
-
-/* Define this to use nghttp2 client. */
-#undef HAVE_NGHTTP2
-
-/* Define to 1 if you have the <nghttp2/nghttp2.h> header file. */
-#undef HAVE_NGHTTP2_NGHTTP2_H
-
-/* Use libnss for crypto */
-#undef HAVE_NSS
-
-/* Define to 1 if you have the `OpenSSL_add_all_digests' function. */
-#undef HAVE_OPENSSL_ADD_ALL_DIGESTS
-
-/* Define to 1 if you have the <openssl/bn.h> header file. */
-#undef HAVE_OPENSSL_BN_H
-
-/* Define to 1 if you have the `OPENSSL_config' function. */
-#undef HAVE_OPENSSL_CONFIG
-
-/* Define to 1 if you have the <openssl/conf.h> header file. */
-#undef HAVE_OPENSSL_CONF_H
-
-/* Define to 1 if you have the <openssl/core_names.h> header file. */
-#undef HAVE_OPENSSL_CORE_NAMES_H
-
-/* Define to 1 if you have the <openssl/dh.h> header file. */
-#undef HAVE_OPENSSL_DH_H
-
-/* Define to 1 if you have the <openssl/dsa.h> header file. */
-#undef HAVE_OPENSSL_DSA_H
-
-/* Define to 1 if you have the <openssl/engine.h> header file. */
-#undef HAVE_OPENSSL_ENGINE_H
-
-/* Define to 1 if you have the <openssl/err.h> header file. */
-#undef HAVE_OPENSSL_ERR_H
-
-/* Define to 1 if you have the `OPENSSL_init_crypto' function. */
-#undef HAVE_OPENSSL_INIT_CRYPTO
-
-/* Define to 1 if you have the `OPENSSL_init_ssl' function. */
-#undef HAVE_OPENSSL_INIT_SSL
-
-/* Define to 1 if you have the <openssl/param_build.h> header file. */
-#undef HAVE_OPENSSL_PARAM_BUILD_H
-
-/* Define to 1 if you have the <openssl/rand.h> header file. */
-#undef HAVE_OPENSSL_RAND_H
-
-/* Define to 1 if you have the <openssl/rsa.h> header file. */
-#undef HAVE_OPENSSL_RSA_H
-
-/* Define to 1 if you have the <openssl/ssl.h> header file. */
-#undef HAVE_OPENSSL_SSL_H
-
-/* Define to 1 if you have the `OSSL_PARAM_BLD_new' function. */
-#undef HAVE_OSSL_PARAM_BLD_NEW
-
-/* Define to 1 if you have the `poll' function. */
-#undef HAVE_POLL
-
-/* Define to 1 if you have the <poll.h> header file. */
-#undef HAVE_POLL_H
-
-/* Define if you have POSIX threads libraries and header files. */
-#undef HAVE_PTHREAD
-
-/* Have PTHREAD_PRIO_INHERIT. */
-#undef HAVE_PTHREAD_PRIO_INHERIT
-
-/* Define to 1 if the system has the type `pthread_rwlock_t'. */
-#undef HAVE_PTHREAD_RWLOCK_T
-
-/* Define to 1 if the system has the type `pthread_spinlock_t'. */
-#undef HAVE_PTHREAD_SPINLOCK_T
-
-/* Define to 1 if you have the <pwd.h> header file. */
-#undef HAVE_PWD_H
-
-/* Define if you have Python libraries and header files. */
-#undef HAVE_PYTHON
-
-/* Define to 1 if you have the `random' function. */
-#undef HAVE_RANDOM
-
-/* Define to 1 if you have the `RAND_cleanup' function. */
-#undef HAVE_RAND_CLEANUP
-
-/* If we have reallocarray(3) */
-#undef HAVE_REALLOCARRAY
-
-/* Define to 1 if you have the `recvmsg' function. */
-#undef HAVE_RECVMSG
-
-/* Define to 1 if you have the `sendmsg' function. */
-#undef HAVE_SENDMSG
-
-/* Define to 1 if you have the `setregid' function. */
-#undef HAVE_SETREGID
-
-/* Define to 1 if you have the `setresgid' function. */
-#undef HAVE_SETRESGID
-
-/* Define to 1 if you have the `setresuid' function. */
-#undef HAVE_SETRESUID
-
-/* Define to 1 if you have the `setreuid' function. */
-#undef HAVE_SETREUID
-
-/* Define to 1 if you have the `setrlimit' function. */
-#undef HAVE_SETRLIMIT
-
-/* Define to 1 if you have the `setsid' function. */
-#undef HAVE_SETSID
-
-/* Define to 1 if you have the `setusercontext' function. */
-#undef HAVE_SETUSERCONTEXT
-
-/* Define to 1 if you have the `SHA512_Update' function. */
-#undef HAVE_SHA512_UPDATE
-
-/* Define to 1 if you have the `shmget' function. */
-#undef HAVE_SHMGET
-
-/* Define to 1 if you have the `sigprocmask' function. */
-#undef HAVE_SIGPROCMASK
-
-/* Define to 1 if you have the `sleep' function. */
-#undef HAVE_SLEEP
-
-/* Define to 1 if you have the `snprintf' function. */
-#undef HAVE_SNPRINTF
-
-/* Define to 1 if you have the `socketpair' function. */
-#undef HAVE_SOCKETPAIR
-
-/* Using Solaris threads */
-#undef HAVE_SOLARIS_THREADS
-
-/* Define to 1 if you have the `srandom' function. */
-#undef HAVE_SRANDOM
-
-/* Define if you have the SSL libraries installed. */
-#undef HAVE_SSL
-
-/* Define to 1 if you have the `SSL_CTX_set_alpn_protos' function. */
-#undef HAVE_SSL_CTX_SET_ALPN_PROTOS
-
-/* Define to 1 if you have the `SSL_CTX_set_alpn_select_cb' function. */
-#undef HAVE_SSL_CTX_SET_ALPN_SELECT_CB
-
-/* Define to 1 if you have the `SSL_CTX_set_ciphersuites' function. */
-#undef HAVE_SSL_CTX_SET_CIPHERSUITES
-
-/* Define to 1 if you have the `SSL_CTX_set_security_level' function. */
-#undef HAVE_SSL_CTX_SET_SECURITY_LEVEL
-
-/* Define to 1 if you have the `SSL_CTX_set_tlsext_ticket_key_evp_cb'
- function. */
-#undef HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_EVP_CB
-
-/* Define to 1 if you have the `SSL_get0_alpn_selected' function. */
-#undef HAVE_SSL_GET0_ALPN_SELECTED
-
-/* Define to 1 if you have the `SSL_get0_peername' function. */
-#undef HAVE_SSL_GET0_PEERNAME
-
-/* Define to 1 if you have the `SSL_get1_peer_certificate' function. */
-#undef HAVE_SSL_GET1_PEER_CERTIFICATE
-
-/* Define to 1 if you have the `SSL_set1_host' function. */
-#undef HAVE_SSL_SET1_HOST
-
-/* Define to 1 if you have the <stdarg.h> header file. */
-#undef HAVE_STDARG_H
-
-/* Define to 1 if you have the <stdbool.h> header file. */
-#undef HAVE_STDBOOL_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strftime' function. */
-#undef HAVE_STRFTIME
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strlcat' function. */
-#undef HAVE_STRLCAT
-
-/* Define to 1 if you have the `strlcpy' function. */
-#undef HAVE_STRLCPY
-
-/* Define to 1 if you have the `strptime' function. */
-#undef HAVE_STRPTIME
-
-/* Define to 1 if you have the `strsep' function. */
-#undef HAVE_STRSEP
-
-/* Define to 1 if `ipi_spec_dst' is a member of `struct in_pktinfo'. */
-#undef HAVE_STRUCT_IN_PKTINFO_IPI_SPEC_DST
-
-/* Define to 1 if `sun_len' is a member of `struct sockaddr_un'. */
-#undef HAVE_STRUCT_SOCKADDR_UN_SUN_LEN
-
-/* Define if you have Swig libraries and header files. */
-#undef HAVE_SWIG
-
-/* Define to 1 if you have the <syslog.h> header file. */
-#undef HAVE_SYSLOG_H
-
-/* Define to 1 if systemd should be used */
-#undef HAVE_SYSTEMD
-
-/* Define to 1 if you have the <sys/endian.h> header file. */
-#undef HAVE_SYS_ENDIAN_H
-
-/* Define to 1 if you have the <sys/ipc.h> header file. */
-#undef HAVE_SYS_IPC_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/resource.h> header file. */
-#undef HAVE_SYS_RESOURCE_H
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-#undef HAVE_SYS_SELECT_H
-
-/* Define to 1 if you have the <sys/sha2.h> header file. */
-#undef HAVE_SYS_SHA2_H
-
-/* Define to 1 if you have the <sys/shm.h> header file. */
-#undef HAVE_SYS_SHM_H
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#undef HAVE_SYS_SOCKET_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/sysctl.h> header file. */
-#undef HAVE_SYS_SYSCTL_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <sys/uio.h> header file. */
-#undef HAVE_SYS_UIO_H
-
-/* Define to 1 if you have the <sys/un.h> header file. */
-#undef HAVE_SYS_UN_H
-
-/* Define to 1 if you have the <sys/wait.h> header file. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to 1 if you have the <TargetConditionals.h> header file. */
-#undef HAVE_TARGETCONDITIONALS_H
-
-/* Define to 1 if you have the <time.h> header file. */
-#undef HAVE_TIME_H
-
-/* Define to 1 if you have the `tzset' function. */
-#undef HAVE_TZSET
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `usleep' function. */
-#undef HAVE_USLEEP
-
-/* Define to 1 if you have the `vfork' function. */
-#undef HAVE_VFORK
-
-/* Define to 1 if you have the <vfork.h> header file. */
-#undef HAVE_VFORK_H
-
-/* Define to 1 if you have the <windows.h> header file. */
-#undef HAVE_WINDOWS_H
-
-/* Using Windows threads */
-#undef HAVE_WINDOWS_THREADS
-
-/* Define to 1 if you have the <winsock2.h> header file. */
-#undef HAVE_WINSOCK2_H
-
-/* Define to 1 if `fork' works. */
-#undef HAVE_WORKING_FORK
-
-/* Define to 1 if `vfork' works. */
-#undef HAVE_WORKING_VFORK
-
-/* Define to 1 if you have the `writev' function. */
-#undef HAVE_WRITEV
-
-/* Define to 1 if you have the <ws2tcpip.h> header file. */
-#undef HAVE_WS2TCPIP_H
-
-/* Define to 1 if you have the `X509_VERIFY_PARAM_set1_host' function. */
-#undef HAVE_X509_VERIFY_PARAM_SET1_HOST
-
-/* Define to 1 if you have the `_beginthreadex' function. */
-#undef HAVE__BEGINTHREADEX
-
-/* If HMAC_Init_ex() returns void */
-#undef HMAC_INIT_EX_RETURNS_VOID
-
-/* if lex has yylex_destroy */
-#undef LEX_HAS_YYLEX_DESTROY
-
-/* Define to the sub-directory where libtool stores uninstalled libraries. */
-#undef LT_OBJDIR
-
-/* Define to the maximum message length to pass to syslog. */
-#undef MAXSYSLOGMSGLEN
-
-/* Define if memcmp() does not compare unsigned bytes */
-#undef MEMCMP_IS_BROKEN
-
-/* Define if mkdir has one argument. */
-#undef MKDIR_HAS_ONE_ARG
-
-/* Define if the network stack does not fully support nonblocking io (causes
- lower performance). */
-#undef NONBLOCKING_IS_BROKEN
-
-/* Put -D_ALL_SOURCE define in config.h */
-#undef OMITTED__D_ALL_SOURCE
-
-/* Put -D_BSD_SOURCE define in config.h */
-#undef OMITTED__D_BSD_SOURCE
-
-/* Put -D_DEFAULT_SOURCE define in config.h */
-#undef OMITTED__D_DEFAULT_SOURCE
-
-/* Put -D_GNU_SOURCE define in config.h */
-#undef OMITTED__D_GNU_SOURCE
-
-/* Put -D_LARGEFILE_SOURCE=1 define in config.h */
-#undef OMITTED__D_LARGEFILE_SOURCE_1
-
-/* Put -D_POSIX_C_SOURCE=200112 define in config.h */
-#undef OMITTED__D_POSIX_C_SOURCE_200112
-
-/* Put -D_XOPEN_SOURCE=600 define in config.h */
-#undef OMITTED__D_XOPEN_SOURCE_600
-
-/* Put -D_XOPEN_SOURCE_EXTENDED=1 define in config.h */
-#undef OMITTED__D_XOPEN_SOURCE_EXTENDED_1
-
-/* Put -D__EXTENSIONS__ define in config.h */
-#undef OMITTED__D__EXTENSIONS__
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* default pidfile location */
-#undef PIDFILE
-
-/* Define to necessary symbol if this constant uses a non-standard name on
- your system. */
-#undef PTHREAD_CREATE_JOINABLE
-
-/* Return type of signal handlers, but autoconf 2.70 says 'your code may
- safely assume C89 semantics that RETSIGTYPE is void.' */
-#undef RETSIGTYPE
-
-/* if REUSEPORT is enabled by default */
-#undef REUSEPORT_DEFAULT
-
-/* default rootkey location */
-#undef ROOT_ANCHOR_FILE
-
-/* default rootcert location */
-#undef ROOT_CERT_FILE
-
-/* version number for resource files */
-#undef RSRC_PACKAGE_VERSION
-
-/* Directory to chdir to */
-#undef RUN_DIR
-
-/* Shared data */
-#undef SHARE_DIR
-
-/* The size of `pthread_t', as computed by sizeof. */
-#undef SIZEOF_PTHREAD_T
-
-/* The size of `size_t', as computed by sizeof. */
-#undef SIZEOF_SIZE_T
-
-/* The size of `time_t', as computed by sizeof. */
-#undef SIZEOF_TIME_T
-
-/* The size of `unsigned long', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_LONG
-
-/* define if (v)snprintf does not return length needed, (but length used) */
-#undef SNPRINTF_RET_BROKEN
-
-/* Define to 1 if libsodium supports sodium_set_misuse_handler */
-#undef SODIUM_MISUSE_HANDLER
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* use default strptime. */
-#undef STRPTIME_WORKS
-
-/* Use win32 resources and API */
-#undef UB_ON_WINDOWS
-
-/* the SYSLOG_FACILITY to use, default LOG_DAEMON */
-#undef UB_SYSLOG_FACILITY
-
-/* default username */
-#undef UB_USERNAME
-
-/* use to enable lightweight alloc assertions, for debug use */
-#undef UNBOUND_ALLOC_LITE
-
-/* use malloc not regions, for debug use */
-#undef UNBOUND_ALLOC_NONREGIONAL
-
-/* use statistics for allocs and frees, for debug use */
-#undef UNBOUND_ALLOC_STATS
-
-/* define this to enable debug checks. */
-#undef UNBOUND_DEBUG
-
-/* Define to 1 to use cachedb support */
-#undef USE_CACHEDB
-
-/* Define to 1 to enable dnscrypt support */
-#undef USE_DNSCRYPT
-
-/* Define to 1 to enable dnscrypt with xchacha20 support */
-#undef USE_DNSCRYPT_XCHACHA20
-
-/* Define to 1 to enable dnstap support */
-#undef USE_DNSTAP
-
-/* Define this to enable DSA support. */
-#undef USE_DSA
-
-/* Define this to enable ECDSA support. */
-#undef USE_ECDSA
-
-/* Define this to enable an EVP workaround for older openssl */
-#undef USE_ECDSA_EVP_WORKAROUND
-
-/* Define this to enable ED25519 support. */
-#undef USE_ED25519
-
-/* Define this to enable ED448 support. */
-#undef USE_ED448
-
-/* Define this to enable GOST support. */
-#undef USE_GOST
-
-/* Define to 1 to use ipsecmod support. */
-#undef USE_IPSECMOD
-
-/* Define to 1 to use ipset support */
-#undef USE_IPSET
-
-/* Define if you enable libevent */
-#undef USE_LIBEVENT
-
-/* Define this to enable use of /proc/sys/net/ipv4/ip_local_port_range as a
- default outgoing port range. This is only for the libunbound on Linux and
- does not affect unbound resolving daemon itself. This may severely limit
- the number of available outgoing ports and thus decrease randomness. Define
- this only when the target system restricts (e.g. some of SELinux enabled
- distributions) the use of non-ephemeral ports. */
-#undef USE_LINUX_IP_LOCAL_PORT_RANGE
-
-/* Define if you want to use internal select based events */
-#undef USE_MINI_EVENT
-
-/* Define this to enable client TCP Fast Open. */
-#undef USE_MSG_FASTOPEN
-
-/* Define this to enable client TCP Fast Open. */
-#undef USE_OSX_MSG_FASTOPEN
-
-/* Define this to use hiredis client. */
-#undef USE_REDIS
-
-/* Define this to enable SHA1 support. */
-#undef USE_SHA1
-
-/* Define this to enable SHA256 and SHA512 support. */
-#undef USE_SHA2
-
-/* Enable extensions on AIX 3, Interix. */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris. */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop. */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
-/* Define this to enable server TCP Fast Open. */
-#undef USE_TCP_FASTOPEN
-
-/* Whether the windows socket API is used */
-#undef USE_WINSOCK
-
-/* the version of the windows API enabled */
-#undef WINVER
-
-/* Define if you want dynlib module. */
-#undef WITH_DYNLIBMODULE
-
-/* Define if you want Python module. */
-#undef WITH_PYTHONMODULE
-
-/* Define if you want PyUnbound. */
-#undef WITH_PYUNBOUND
-
-/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
- `char[]'. */
-#undef YYTEXT_POINTER
-
-/* Enable large inode numbers on Mac OS X 10.5. */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS
-
-/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
-#undef _LARGEFILE_SOURCE
-
-/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES
-
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Enable for compile on Minix */
-#undef _NETBSD_SOURCE
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
- this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
-
-/* defined to use gcc ansi snprintf and sscanf that understands %lld when
- compiled for windows. */
-#undef __USE_MINGW_ANSI_STDIO
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef gid_t
-
-/* in_addr_t */
-#undef in_addr_t
-
-/* in_port_t */
-#undef in_port_t
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Define to `short' if <sys/types.h> does not define. */
-#undef int16_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef int32_t
-
-/* Define to `long long' if <sys/types.h> does not define. */
-#undef int64_t
-
-/* Define to `signed char' if <sys/types.h> does not define. */
-#undef int8_t
-
-/* Define if replacement function should be used. */
-#undef malloc
-
-/* Define to `long int' if <sys/types.h> does not define. */
-#undef off_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef pid_t
-
-/* Define to 'int' if not defined */
-#undef rlim_t
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
-
-/* Define to 'int' if not defined */
-#undef socklen_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef ssize_t
-
-/* Define to 'unsigned char if not defined */
-#undef u_char
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef uid_t
-
-/* Define to `unsigned short' if <sys/types.h> does not define. */
-#undef uint16_t
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef uint32_t
-
-/* Define to `unsigned long long' if <sys/types.h> does not define. */
-#undef uint64_t
-
-/* Define to `unsigned char' if <sys/types.h> does not define. */
-#undef uint8_t
-
-/* Define as `fork' if `vfork' does not work. */
-#undef vfork
-
-#if defined(OMITTED__D_GNU_SOURCE) && !defined(_GNU_SOURCE)
-#define _GNU_SOURCE 1
-#endif
-
-#if defined(OMITTED__D_BSD_SOURCE) && !defined(_BSD_SOURCE)
-#define _BSD_SOURCE 1
-#endif
-
-#if defined(OMITTED__D_DEFAULT_SOURCE) && !defined(_DEFAULT_SOURCE)
-#define _DEFAULT_SOURCE 1
-#endif
-
-#if defined(OMITTED__D__EXTENSIONS__) && !defined(__EXTENSIONS__)
-#define __EXTENSIONS__ 1
-#endif
-
-#if defined(OMITTED__D_POSIX_C_SOURCE_200112) && !defined(_POSIX_C_SOURCE)
-#define _POSIX_C_SOURCE 200112
-#endif
-
-#if defined(OMITTED__D_XOPEN_SOURCE_600) && !defined(_XOPEN_SOURCE)
-#define _XOPEN_SOURCE 600
-#endif
-
-#if defined(OMITTED__D_XOPEN_SOURCE_EXTENDED_1) && !defined(_XOPEN_SOURCE_EXTENDED)
-#define _XOPEN_SOURCE_EXTENDED 1
-#endif
-
-#if defined(OMITTED__D_ALL_SOURCE) && !defined(_ALL_SOURCE)
-#define _ALL_SOURCE 1
-#endif
-
-#if defined(OMITTED__D_LARGEFILE_SOURCE_1) && !defined(_LARGEFILE_SOURCE)
-#define _LARGEFILE_SOURCE 1
-#endif
-
-
-
-
-#ifndef _OPENBSD_SOURCE
-#define _OPENBSD_SOURCE 1
-#endif
-
-#ifndef UNBOUND_DEBUG
-# ifndef NDEBUG
-# define NDEBUG
-# endif
-#endif
-
-/** Use small-ldns codebase */
-#define USE_SLDNS 1
-#ifdef HAVE_SSL
-# define LDNS_BUILD_CONFIG_HAVE_SSL 1
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <assert.h>
-
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-
-#ifdef HAVE_STDARG_H
-#include <stdarg.h>
-#endif
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
-#include <errno.h>
-
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#ifdef HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-#if !defined(USE_WINSOCK) || !defined(HAVE_SNPRINTF) || defined(SNPRINTF_RET_BROKEN) || defined(__USE_MINGW_ANSI_STDIO)
-#define ARG_LL "%ll"
-#else
-#define ARG_LL "%I64"
-#endif
-
-#ifndef AF_LOCAL
-#define AF_LOCAL AF_UNIX
-#endif
-
-
-
-#ifdef HAVE_ATTR_FORMAT
-# define ATTR_FORMAT(archetype, string_index, first_to_check) \
- __attribute__ ((format (archetype, string_index, first_to_check)))
-#else /* !HAVE_ATTR_FORMAT */
-# define ATTR_FORMAT(archetype, string_index, first_to_check) /* empty */
-#endif /* !HAVE_ATTR_FORMAT */
-
-
-#if defined(DOXYGEN)
-# define ATTR_UNUSED(x) x
-#elif defined(__cplusplus)
-# define ATTR_UNUSED(x)
-#elif defined(HAVE_ATTR_UNUSED)
-# define ATTR_UNUSED(x) x __attribute__((unused))
-#else /* !HAVE_ATTR_UNUSED */
-# define ATTR_UNUSED(x) x
-#endif /* !HAVE_ATTR_UNUSED */
-
-
-#ifndef HAVE_FSEEKO
-#define fseeko fseek
-#define ftello ftell
-#endif /* HAVE_FSEEKO */
-
-
-#ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN 256
-#endif
-
-#if !defined(HAVE_SNPRINTF) || defined(SNPRINTF_RET_BROKEN)
-#define snprintf snprintf_unbound
-#define vsnprintf vsnprintf_unbound
-#include <stdarg.h>
-int snprintf (char *str, size_t count, const char *fmt, ...);
-int vsnprintf (char *str, size_t count, const char *fmt, va_list arg);
-#endif /* HAVE_SNPRINTF or SNPRINTF_RET_BROKEN */
-
-#ifndef HAVE_INET_PTON
-#define inet_pton inet_pton_unbound
-int inet_pton(int af, const char* src, void* dst);
-#endif /* HAVE_INET_PTON */
-
-
-#ifndef HAVE_INET_NTOP
-#define inet_ntop inet_ntop_unbound
-const char *inet_ntop(int af, const void *src, char *dst, size_t size);
-#endif
-
-
-#ifndef HAVE_INET_ATON
-#define inet_aton inet_aton_unbound
-int inet_aton(const char *cp, struct in_addr *addr);
-#endif
-
-
-#ifndef HAVE_MEMMOVE
-#define memmove memmove_unbound
-void *memmove(void *dest, const void *src, size_t n);
-#endif
-
-
-#ifndef HAVE_STRLCAT
-#define strlcat strlcat_unbound
-size_t strlcat(char *dst, const char *src, size_t siz);
-#endif
-
-
-#ifndef HAVE_STRLCPY
-#define strlcpy strlcpy_unbound
-size_t strlcpy(char *dst, const char *src, size_t siz);
-#endif
-
-
-#ifndef HAVE_GMTIME_R
-#define gmtime_r gmtime_r_unbound
-struct tm *gmtime_r(const time_t *timep, struct tm *result);
-#endif
-
-
-#ifndef HAVE_REALLOCARRAY
-#define reallocarray reallocarrayunbound
-void* reallocarray(void *ptr, size_t nmemb, size_t size);
-#endif
-
-
-#if !defined(HAVE_SLEEP) || defined(HAVE_WINDOWS_H)
-#define sleep(x) Sleep((x)*1000) /* on win32 */
-#endif /* HAVE_SLEEP */
-
-
-#ifndef HAVE_USLEEP
-#define usleep(x) Sleep((x)/1000 + 1) /* on win32 */
-#endif /* HAVE_USLEEP */
-
-
-#ifndef HAVE_RANDOM
-#define random rand /* on win32, for tests only (bad random) */
-#endif /* HAVE_RANDOM */
-
-
-#ifndef HAVE_SRANDOM
-#define srandom(x) srand(x) /* on win32, for tests only (bad random) */
-#endif /* HAVE_SRANDOM */
-
-
-/* detect if we need to cast to unsigned int for FD_SET to avoid warnings */
-#ifdef HAVE_WINSOCK2_H
-#define FD_SET_T (u_int)
-#else
-#define FD_SET_T
-#endif
-
-
-#ifndef IPV6_MIN_MTU
-#define IPV6_MIN_MTU 1280
-#endif /* IPV6_MIN_MTU */
-
-
-#ifdef MEMCMP_IS_BROKEN
-#include "compat/memcmp.h"
-#define memcmp memcmp_unbound
-int memcmp(const void *x, const void *y, size_t n);
-#endif
-
-
-
-#ifndef HAVE_CTIME_R
-#define ctime_r unbound_ctime_r
-char *ctime_r(const time_t *timep, char *buf);
-#endif
-
-#ifndef HAVE_STRSEP
-#define strsep unbound_strsep
-char *strsep(char **stringp, const char *delim);
-#endif
-
-#ifndef HAVE_ISBLANK
-#define isblank unbound_isblank
-int isblank(int c);
-#endif
-
-#ifndef HAVE_EXPLICIT_BZERO
-#define explicit_bzero unbound_explicit_bzero
-void explicit_bzero(void* buf, size_t len);
-#endif
-
-#if defined(HAVE_INET_NTOP) && !HAVE_DECL_INET_NTOP
-const char *inet_ntop(int af, const void *src, char *dst, size_t size);
-#endif
-
-#if defined(HAVE_INET_PTON) && !HAVE_DECL_INET_PTON
-int inet_pton(int af, const char* src, void* dst);
-#endif
-
-#if !defined(HAVE_STRPTIME) || !defined(STRPTIME_WORKS)
-#define strptime unbound_strptime
-struct tm;
-char *strptime(const char *s, const char *format, struct tm *tm);
-#endif
-
-#if !HAVE_DECL_REALLOCARRAY
-void *reallocarray(void *ptr, size_t nmemb, size_t size);
-#endif
-
-#ifdef HAVE_LIBBSD
-#include <bsd/string.h>
-#include <bsd/stdlib.h>
-#endif
-
-#ifdef HAVE_LIBRESSL
-# if !HAVE_DECL_STRLCPY
-size_t strlcpy(char *dst, const char *src, size_t siz);
-# endif
-# if !HAVE_DECL_STRLCAT
-size_t strlcat(char *dst, const char *src, size_t siz);
-# endif
-# if !HAVE_DECL_ARC4RANDOM && defined(HAVE_ARC4RANDOM)
-uint32_t arc4random(void);
-# endif
-# if !HAVE_DECL_ARC4RANDOM_UNIFORM && defined(HAVE_ARC4RANDOM_UNIFORM)
-uint32_t arc4random_uniform(uint32_t upper_bound);
-# endif
-#endif /* HAVE_LIBRESSL */
-#ifndef HAVE_ARC4RANDOM
-int getentropy(void* buf, size_t len);
-uint32_t arc4random(void);
-void arc4random_buf(void* buf, size_t n);
-void _ARC4_LOCK(void);
-void _ARC4_UNLOCK(void);
-void _ARC4_LOCK_DESTROY(void);
-#endif
-#ifndef HAVE_ARC4RANDOM_UNIFORM
-uint32_t arc4random_uniform(uint32_t upper_bound);
-#endif
-#ifdef COMPAT_SHA512
-#ifndef SHA512_DIGEST_LENGTH
-#define SHA512_BLOCK_LENGTH 128
-#define SHA512_DIGEST_LENGTH 64
-#define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1)
-typedef struct _SHA512_CTX {
- uint64_t state[8];
- uint64_t bitcount[2];
- uint8_t buffer[SHA512_BLOCK_LENGTH];
-} SHA512_CTX;
-#endif /* SHA512_DIGEST_LENGTH */
-void SHA512_Init(SHA512_CTX*);
-void SHA512_Update(SHA512_CTX*, void*, size_t);
-void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*);
-unsigned char *SHA512(void* data, unsigned int data_len, unsigned char *digest);
-#endif /* COMPAT_SHA512 */
-
-
-
-#if defined(HAVE_EVENT_H) && !defined(HAVE_EVENT_BASE_ONCE) && !(defined(HAVE_EV_LOOP) || defined(HAVE_EV_DEFAULT_LOOP)) && (defined(HAVE_PTHREAD) || defined(HAVE_SOLARIS_THREADS))
- /* using version of libevent that is not threadsafe. */
-# define LIBEVENT_SIGNAL_PROBLEM 1
-#endif
-
-#ifndef CHECKED_INET6
-# define CHECKED_INET6
-# ifdef AF_INET6
-# define INET6
-# else
-# define AF_INET6 28
-# endif
-#endif /* CHECKED_INET6 */
-
-#ifndef HAVE_GETADDRINFO
-struct sockaddr_storage;
-#include "compat/fake-rfc2553.h"
-#endif
-
-#ifdef UNBOUND_ALLOC_STATS
-# define malloc(s) unbound_stat_malloc_log(s, __FILE__, __LINE__, __func__)
-# define calloc(n,s) unbound_stat_calloc_log(n, s, __FILE__, __LINE__, __func__)
-# define free(p) unbound_stat_free_log(p, __FILE__, __LINE__, __func__)
-# define realloc(p,s) unbound_stat_realloc_log(p, s, __FILE__, __LINE__, __func__)
-void *unbound_stat_malloc(size_t size);
-void *unbound_stat_calloc(size_t nmemb, size_t size);
-void unbound_stat_free(void *ptr);
-void *unbound_stat_realloc(void *ptr, size_t size);
-void *unbound_stat_malloc_log(size_t size, const char* file, int line,
- const char* func);
-void *unbound_stat_calloc_log(size_t nmemb, size_t size, const char* file,
- int line, const char* func);
-void unbound_stat_free_log(void *ptr, const char* file, int line,
- const char* func);
-void *unbound_stat_realloc_log(void *ptr, size_t size, const char* file,
- int line, const char* func);
-#elif defined(UNBOUND_ALLOC_LITE)
-# include "util/alloc.h"
-#endif /* UNBOUND_ALLOC_LITE and UNBOUND_ALLOC_STATS */
-
-/** default port for DNS traffic. */
-#define UNBOUND_DNS_PORT 53
-/** default port for DNS over TLS traffic. */
-#define UNBOUND_DNS_OVER_TLS_PORT 853
-/** default port for DNS over HTTPS traffic. */
-#define UNBOUND_DNS_OVER_HTTPS_PORT 443
-/** default port for unbound control traffic, registered port with IANA,
- ub-dns-control 8953/tcp unbound dns nameserver control */
-#define UNBOUND_CONTROL_PORT 8953
-/** the version of unbound-control that this software implements */
-#define UNBOUND_CONTROL_VERSION 1
-
-
diff --git a/configure b/configure
index c87c669c8435..6aa1aeb80676 100755
--- a/configure
+++ b/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.19.1.
+# Generated by GNU Autoconf 2.69 for unbound 1.19.3.
#
# Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>.
#
@@ -591,8 +591,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='unbound'
PACKAGE_TARNAME='unbound'
-PACKAGE_VERSION='1.19.1'
-PACKAGE_STRING='unbound 1.19.1'
+PACKAGE_VERSION='1.19.3'
+PACKAGE_STRING='unbound 1.19.3'
PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues'
PACKAGE_URL=''
@@ -655,6 +655,8 @@ DNSTAP_SOCKET_TESTBIN
DNSTAP_SOCKET_PATH
opt_dnstap_socket_path
ENABLE_DNSTAP
+PROTOBUFC_LIBS
+PROTOBUFC_CFLAGS
PROTOC_C
UBSYMS
EXTRALINK
@@ -926,7 +928,9 @@ SYSTEMD_CFLAGS
SYSTEMD_LIBS
SYSTEMD_DAEMON_CFLAGS
SYSTEMD_DAEMON_LIBS
-PYTHON_VERSION'
+PYTHON_VERSION
+PROTOBUFC_CFLAGS
+PROTOBUFC_LIBS'
# Initialize some variables set by options.
@@ -1477,7 +1481,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.19.1 to adapt to many kinds of systems.
+\`configure' configures unbound 1.19.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1543,7 +1547,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of unbound 1.19.1:";;
+ short | recursive ) echo "Configuration of unbound 1.19.3:";;
esac
cat <<\_ACEOF
@@ -1718,6 +1722,10 @@ Some influential environment variables:
The installed Python version to use, for example '2.3'. This
string will be appended to the Python interpreter canonical
name.
+ PROTOBUFC_CFLAGS
+ C compiler flags for PROTOBUFC, overriding pkg-config
+ PROTOBUFC_LIBS
+ linker flags for PROTOBUFC, overriding pkg-config
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -1785,7 +1793,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-unbound configure 1.19.1
+unbound configure 1.19.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2494,7 +2502,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.19.1, which was
+It was created by unbound $as_me 1.19.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2846,11 +2854,11 @@ UNBOUND_VERSION_MAJOR=1
UNBOUND_VERSION_MINOR=19
-UNBOUND_VERSION_MICRO=1
+UNBOUND_VERSION_MICRO=3
LIBUNBOUND_CURRENT=9
-LIBUNBOUND_REVISION=24
+LIBUNBOUND_REVISION=26
LIBUNBOUND_AGE=1
# 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0
@@ -2942,6 +2950,8 @@ LIBUNBOUND_AGE=1
# 1.18.0 had 9:22:1
# 1.19.0 had 9:23:1
# 1.19.1 had 9:24:1
+# 1.19.2 had 9:25:1
+# 1.19.3 had 9:26:1
# Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary
@@ -14416,7 +14426,7 @@ CC=$lt_save_CC
# pkg-config is only needed for these options, do not require it otherwise
-if test "$enable_systemd" = "yes" -o "$with_pyunbound" = "yes" -o "$with_pythonmod" = "yes"; then
+if test "$enable_systemd" = "yes" -o "$enable_dnstap" = "yes" -o "$with_pyunbound" = "yes" -o "$with_pythonmod" = "yes"; then
@@ -18104,19 +18114,86 @@ else
$as_echo "no" >&6; }
LIBS="$BAKLIBS"
LIBSSL_LIBS="$BAKSSLLIBS"
- LIBS="$LIBS -ldl"
- LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl" >&5
+
+ LIBS="$LIBS -lgdi32 -lws2_32 -lcrypt32"
+ LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32 -lcrypt32"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32 -lws2_32 -lcrypt32" >&5
+$as_echo_n "checking if -lcrypto needs -lgdi32 -lws2_32 -lcrypt32... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ int EVP_sha256(void);
+ (void)EVP_sha256();
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+
+$as_echo "#define HAVE_EVP_SHA256 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LIBS="$BAKLIBS"
+ LIBSSL_LIBS="$BAKSSLLIBS"
+
+ LIBS="$LIBS -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a"
+ LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a" >&5
+$as_echo_n "checking if -lcrypto needs -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ int EVP_sha256(void);
+ (void)EVP_sha256();
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+
+$as_echo "#define HAVE_EVP_SHA256 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LIBS="$BAKLIBS"
+ LIBSSL_LIBS="$BAKSSLLIBS"
+
+ LIBS="$LIBS -ldl"
+ LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl" >&5
$as_echo_n "checking if -lcrypto needs -ldl... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
- int EVP_sha256(void);
- (void)EVP_sha256();
+ int EVP_sha256(void);
+ (void)EVP_sha256();
;
return 0;
@@ -18127,28 +18204,28 @@ if ac_fn_c_try_link "$LINENO"; then :
$as_echo "#define HAVE_EVP_SHA256 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- LIBS="$BAKLIBS"
- LIBSSL_LIBS="$BAKSSLLIBS"
- LIBS="$LIBS -ldl -pthread"
- LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl -pthread" >&5
+ LIBS="$BAKLIBS"
+ LIBSSL_LIBS="$BAKSSLLIBS"
+ LIBS="$LIBS -ldl -pthread"
+ LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl -pthread" >&5
$as_echo_n "checking if -lcrypto needs -ldl -pthread... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
- int EVP_sha256(void);
- (void)EVP_sha256();
+ int EVP_sha256(void);
+ (void)EVP_sha256();
;
return 0;
@@ -18159,14 +18236,22 @@ if ac_fn_c_try_link "$LINENO"; then :
$as_echo "#define HAVE_EVP_SHA256 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- as_fn_error $? "OpenSSL found in $ssldir, but version 0.9.7 or higher is required" "$LINENO" 5
+ as_fn_error $? "OpenSSL found in $ssldir, but version 0.9.7 or higher is required" "$LINENO" 5
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext \
@@ -19847,7 +19932,7 @@ if test x_$enable_static_exe = x_yes; then
if test "$on_mingw" = yes; then
staticexe="-all-static"
# for static compile, include gdi32 and zlib here.
- if echo $LIBS | grep 'lgdi32' >/dev/null; then
+ if echo "$LIBS" | grep 'lgdi32' >/dev/null; then
:
else
LIBS="$LIBS -lgdi32"
@@ -19892,7 +19977,11 @@ if test "x$ac_cv_lib_z_compress" = xyes; then :
LIBS="$LIBS -lz"
fi
- LIBS="$LIBS -l:libssp.a"
+ if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
+ :
+ else
+ LIBS="$LIBS -l:libssp.a"
+ fi
fi
fi
@@ -19951,7 +20040,11 @@ if test "x$ac_cv_lib_z_compress" = xyes; then :
LIBS="$LIBS -lz"
fi
- LIBS="$LIBS -l:libssp.a"
+ if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
+ :
+ else
+ LIBS="$LIBS -l:libssp.a"
+ fi
fi
fi
@@ -19998,7 +20091,7 @@ if test "$ac_cv_header_windows_h" = "yes"; then
$as_echo "#define USE_WINSOCK 1" >>confdefs.h
USE_WINSOCK="1"
- if echo $LIBS | grep 'lws2_32' >/dev/null; then
+ if echo "$LIBS" | grep 'lws2_32' >/dev/null; then
:
else
LIBS="$LIBS -lws2_32"
@@ -20006,6 +20099,33 @@ $as_echo "#define USE_WINSOCK 1" >>confdefs.h
fi
else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+
+int
+main ()
+{
+
+ (void)getaddrinfo(NULL, NULL, NULL, NULL);
+
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ac_cv_func_getaddrinfo="yes"
+
+$as_echo "#define USE_WINSOCK 1" >>confdefs.h
+
+USE_WINSOCK="1"
+
+else
ORIGLIBS="$LIBS"
LIBS="$LIBS -lws2_32"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20047,6 +20167,10 @@ fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5
$as_echo "$ac_cv_func_getaddrinfo" >&6; }
if test $ac_cv_func_getaddrinfo = yes; then
@@ -20166,7 +20290,11 @@ else
WINDRES="$ac_cv_prog_WINDRES"
fi
- LIBS="$LIBS -liphlpapi -lcrypt32"
+ if echo "$LIBS" | grep crypt32 >/dev/null; then
+ LIBS="$LIBS -liphlpapi"
+ else
+ LIBS="$LIBS -liphlpapi -lcrypt32"
+ fi
WINAPPS="unbound-service-install.exe unbound-service-remove.exe anchor-update.exe"
WIN_DAEMON_SRC="winrc/win_svc.c winrc/w_inst.c"
@@ -21199,7 +21327,7 @@ fi
# check for dnstap if requested
- # Check whether --enable-dnstap was given.
+ # Check whether --enable-dnstap was given.
if test "${enable_dnstap+set}" = set; then :
enableval=$enable_dnstap; opt_dnstap=$enableval
else
@@ -21216,8 +21344,8 @@ else
fi
- if test "x$opt_dnstap" != "xno"; then
- # Extract the first word of "protoc-c", so it can be a program name with args.
+ if test "x$opt_dnstap" != "xno"; then
+ # Extract the first word of "protoc-c", so it can be a program name with args.
set dummy protoc-c; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
@@ -21257,36 +21385,132 @@ $as_echo "no" >&6; }
fi
- if test -z "$PROTOC_C"; then
- as_fn_error $? "The protoc-c program was not found. Please install protobuf-c!" "$LINENO" 5
- fi
+ if test -z "$PROTOC_C"; then
+ as_fn_error $? "The protoc-c program was not found. Please install protobuf-c!" "$LINENO" 5
+ fi
# Check whether --with-protobuf-c was given.
if test "${with_protobuf_c+set}" = set; then :
withval=$with_protobuf_c;
- # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
- if test -f $withval/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I$withval/include/google"
- else
- CFLAGS="$CFLAGS -I$withval/include"
- fi
- LDFLAGS="$LDFLAGS -L$withval/lib"
+ # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
+ if test -f $withval/include/google/protobuf-c/protobuf-c.h; then
+ CFLAGS="$CFLAGS -I$withval/include/google"
+ else
+ CFLAGS="$CFLAGS -I$withval/include"
+ fi
+ LDFLAGS="$LDFLAGS -L$withval/lib"
else
- # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
- if test -f /usr/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I/usr/include/google"
- else
- if test -f /usr/local/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I/usr/local/include/google"
- LDFLAGS="$LDFLAGS -L/usr/local/lib"
- fi
- fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PROTOBUFC" >&5
+$as_echo_n "checking for PROTOBUFC... " >&6; }
+
+if test -n "$PROTOBUFC_CFLAGS"; then
+ pkg_cv_PROTOBUFC_CFLAGS="$PROTOBUFC_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libprotobuf-c\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libprotobuf-c") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_PROTOBUFC_CFLAGS=`$PKG_CONFIG --cflags "libprotobuf-c" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$PROTOBUFC_LIBS"; then
+ pkg_cv_PROTOBUFC_LIBS="$PROTOBUFC_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libprotobuf-c\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libprotobuf-c") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_PROTOBUFC_LIBS=`$PKG_CONFIG --libs "libprotobuf-c" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
fi
+ if test $_pkg_short_errors_supported = yes; then
+ PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libprotobuf-c" 2>&1`
+ else
+ PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libprotobuf-c" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$PROTOBUFC_PKG_ERRORS" >&5
+
+
+ # pkg-config failed; try falling back to known values
+ # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
+ if test -f /usr/include/google/protobuf-c/protobuf-c.h; then
+ CFLAGS="$CFLAGS -I/usr/include/google"
+ else
+ if test -f /usr/local/include/google/protobuf-c/protobuf-c.h; then
+ CFLAGS="$CFLAGS -I/usr/local/include/google"
+ LDFLAGS="$LDFLAGS -L/usr/local/lib"
+ else
+ as_fn_error $? "The protobuf-c package was not found with pkg-config. Please install protobuf-c!" "$LINENO" 5
+ fi
+ fi
+
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing protobuf_c_message_pack" >&5
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+ # pkg-config failed; try falling back to known values
+ # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
+ if test -f /usr/include/google/protobuf-c/protobuf-c.h; then
+ CFLAGS="$CFLAGS -I/usr/include/google"
+ else
+ if test -f /usr/local/include/google/protobuf-c/protobuf-c.h; then
+ CFLAGS="$CFLAGS -I/usr/local/include/google"
+ LDFLAGS="$LDFLAGS -L/usr/local/lib"
+ else
+ as_fn_error $? "The protobuf-c package was not found with pkg-config. Please install protobuf-c!" "$LINENO" 5
+ fi
+ fi
+
+
+else
+ PROTOBUFC_CFLAGS=$pkg_cv_PROTOBUFC_CFLAGS
+ PROTOBUFC_LIBS=$pkg_cv_PROTOBUFC_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+ CFLAGS="$CFLAGS $PROTOBUFC_CFLAGS"
+ LIBS="$LIBS $PROTOBUFC_LIBS"
+
+fi
+
+
+
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing protobuf_c_message_pack" >&5
$as_echo_n "checking for library containing protobuf_c_message_pack... " >&6; }
if ${ac_cv_search_protobuf_c_message_pack+:} false; then :
$as_echo_n "(cached) " >&6
@@ -21368,13 +21592,13 @@ _ACEOF
DNSTAP_OBJ="dnstap.lo dnstap.pb-c.lo dnstap_fstrm.lo dtstream.lo"
- else
+ else
ENABLE_DNSTAP=0
- fi
+ fi
# check for dnscrypt if requested
@@ -21895,7 +22119,7 @@ _ACEOF
-version=1.19.1
+version=1.19.3
date=`date +'%b %e, %Y'`
@@ -22414,7 +22638,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.19.1, which was
+This file was extended by unbound $as_me 1.19.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -22480,7 +22704,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.19.1
+unbound config.status 1.19.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 70fc7e7fdf49..e0dedbef9add 100644
--- a/configure.ac
+++ b/configure.ac
@@ -11,14 +11,14 @@ sinclude(dnscrypt/dnscrypt.m4)
# must be numbers. ac_defun because of later processing
m4_define([VERSION_MAJOR],[1])
m4_define([VERSION_MINOR],[19])
-m4_define([VERSION_MICRO],[1])
+m4_define([VERSION_MICRO],[3])
AC_INIT([unbound],m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]),[unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues],[unbound])
AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR])
AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR])
AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO])
LIBUNBOUND_CURRENT=9
-LIBUNBOUND_REVISION=24
+LIBUNBOUND_REVISION=26
LIBUNBOUND_AGE=1
# 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0
@@ -110,6 +110,8 @@ LIBUNBOUND_AGE=1
# 1.18.0 had 9:22:1
# 1.19.0 had 9:23:1
# 1.19.1 had 9:24:1
+# 1.19.2 had 9:25:1
+# 1.19.3 had 9:26:1
# Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary
@@ -407,7 +409,7 @@ AC_CHECK_TOOL(STRIP, strip)
ACX_LIBTOOL_C_ONLY
# pkg-config is only needed for these options, do not require it otherwise
-if test "$enable_systemd" = "yes" -o "$with_pyunbound" = "yes" -o "$with_pythonmod" = "yes"; then
+if test "$enable_systemd" = "yes" -o "$enable_dnstap" = "yes" -o "$with_pyunbound" = "yes" -o "$with_pythonmod" = "yes"; then
PKG_PROG_PKG_CONFIG
fi
@@ -1526,13 +1528,17 @@ if test x_$enable_static_exe = x_yes; then
if test "$on_mingw" = yes; then
staticexe="-all-static"
# for static compile, include gdi32 and zlib here.
- if echo $LIBS | grep 'lgdi32' >/dev/null; then
+ if echo "$LIBS" | grep 'lgdi32' >/dev/null; then
:
else
LIBS="$LIBS -lgdi32"
fi
AC_CHECK_LIB([z], [compress], [ LIBS="$LIBS -lz" ])
- LIBS="$LIBS -l:libssp.a"
+ if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
+ :
+ else
+ LIBS="$LIBS -l:libssp.a"
+ fi
fi
fi
@@ -1549,7 +1555,11 @@ if test x_$enable_fully_static = x_yes; then
LIBS="$LIBS -lgdi32"
fi
AC_CHECK_LIB([z], [compress], [ LIBS="$LIBS -lz" ])
- LIBS="$LIBS -l:libssp.a"
+ if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
+ :
+ else
+ LIBS="$LIBS -l:libssp.a"
+ fi
fi
fi
@@ -1569,7 +1579,11 @@ if test "$USE_WINSOCK" = 1; then
#include <windows.h>
])
AC_CHECK_TOOL(WINDRES, windres)
- LIBS="$LIBS -liphlpapi -lcrypt32"
+ if echo "$LIBS" | grep crypt32 >/dev/null; then
+ LIBS="$LIBS -liphlpapi"
+ else
+ LIBS="$LIBS -liphlpapi -lcrypt32"
+ fi
WINAPPS="unbound-service-install.exe unbound-service-remove.exe anchor-update.exe"
AC_SUBST(WINAPPS)
WIN_DAEMON_SRC="winrc/win_svc.c winrc/w_inst.c"
diff --git a/daemon/remote.c b/daemon/remote.c
index 3eb711ce6428..5d79eafd23be 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -553,7 +553,7 @@ ssl_print_text(RES* res, const char* text)
static int
ssl_print_vmsg(RES* ssl, const char* format, va_list args)
{
- char msg[1024];
+ char msg[65535];
vsnprintf(msg, sizeof(msg), format, args);
return ssl_print_text(ssl, msg);
}
@@ -3181,10 +3181,10 @@ execute_cmd(struct daemon_remote* rc, RES* ssl, char* cmd,
do_flush_bogus(ssl, worker);
} else if(cmdcmp(p, "flush_negative", 14)) {
do_flush_negative(ssl, worker);
- } else if(cmdcmp(p, "rpz_enable", 10)) {
- do_rpz_enable(ssl, worker, skipwhite(p+10));
- } else if(cmdcmp(p, "rpz_disable", 11)) {
- do_rpz_disable(ssl, worker, skipwhite(p+11));
+ } else if(cmdcmp(p, "rpz_enable", 10)) {
+ do_rpz_enable(ssl, worker, skipwhite(p+10));
+ } else if(cmdcmp(p, "rpz_disable", 11)) {
+ do_rpz_disable(ssl, worker, skipwhite(p+11));
} else {
(void)ssl_printf(ssl, "error unknown command '%s'\n", p);
}
diff --git a/daemon/worker.c b/daemon/worker.c
index 8ae05eb67e66..176abf57d56e 100644
--- a/daemon/worker.c
+++ b/daemon/worker.c
@@ -1151,7 +1151,7 @@ deny_refuse(struct comm_point* c, enum acl_access acl,
log_assert(sldns_buffer_limit(c->buffer) >= LDNS_HEADER_SIZE
&& LDNS_QDCOUNT(sldns_buffer_begin(c->buffer)) == 1);
- sldns_buffer_skip(c->buffer, LDNS_HEADER_SIZE); /* skip header */
+ sldns_buffer_set_position(c->buffer, LDNS_HEADER_SIZE); /* skip header */
/* check additional section is present and that we respond with EDEs */
if(LDNS_ARCOUNT(sldns_buffer_begin(c->buffer)) != 1
@@ -1163,6 +1163,7 @@ deny_refuse(struct comm_point* c, enum acl_access acl,
LDNS_QR_SET(sldns_buffer_begin(c->buffer));
LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
LDNS_RCODE_REFUSED);
+ sldns_buffer_set_position(c->buffer, LDNS_HEADER_SIZE);
sldns_buffer_flip(c->buffer);
return 1;
}
@@ -1326,15 +1327,6 @@ deny_refuse_non_local(struct comm_point* c, enum acl_access acl,
worker, repinfo, acladdr, ede, check_result);
}
-/* Returns 1 if the ip rate limit check can happen before EDNS parsing,
- * else 0 */
-static int
-pre_edns_ip_ratelimit_check(enum acl_access acl)
-{
- if(acl == acl_allow_cookie) return 0;
- return 1;
-}
-
/* Check if the query is blocked by source IP rate limiting.
* Returns 1 if it passes the check, 0 otherwise. */
static int
@@ -1463,7 +1455,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
if(worker->dtenv.log_client_query_messages) {
log_addr(VERB_ALGO, "request from client", &repinfo->client_addr, repinfo->client_addrlen);
log_addr(VERB_ALGO, "to local addr", (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->socket->addr->ai_addrlen);
- dt_msg_send_client_query(&worker->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, c->type, c->buffer,
+ dt_msg_send_client_query(&worker->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, c->type, c->ssl, c->buffer,
((worker->env.cfg->sock_queue_timeout && timeval_isset(&c->recv_tv))?&c->recv_tv:NULL));
}
#endif
@@ -1498,7 +1490,9 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
}
worker->stats.num_queries++;
- pre_edns_ip_ratelimit = pre_edns_ip_ratelimit_check(acl);
+ pre_edns_ip_ratelimit = !worker->env.cfg->do_answer_cookie
+ || sldns_buffer_limit(c->buffer) < LDNS_HEADER_SIZE
+ || LDNS_ARCOUNT(sldns_buffer_begin(c->buffer)) == 0;
/* If the IP rate limiting check needs extra EDNS information (e.g.,
* DNS Cookies) postpone the check until after EDNS is parsed. */
@@ -1952,7 +1946,7 @@ send_reply_rc:
if(worker->dtenv.log_client_response_messages) {
log_addr(VERB_ALGO, "from local addr", (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->socket->addr->ai_addrlen);
log_addr(VERB_ALGO, "response to client", &repinfo->client_addr, repinfo->client_addrlen);
- dt_msg_send_client_response(&worker->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, c->type, c->buffer);
+ dt_msg_send_client_response(&worker->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, c->type, c->ssl, c->buffer);
}
#endif
if(worker->env.cfg->log_replies)
@@ -1966,11 +1960,15 @@ send_reply_rc:
qinfo.qname = qinfo.local_alias->rrset->rk.dname;
log_reply_info(NO_VERBOSE, &qinfo,
&repinfo->client_addr, repinfo->client_addrlen,
- tv, 1, c->buffer);
+ tv, 1, c->buffer,
+ (worker->env.cfg->log_destaddr?(void*)repinfo->c->socket->addr->ai_addr:NULL),
+ c->type);
} else {
log_reply_info(NO_VERBOSE, &qinfo,
&repinfo->client_addr, repinfo->client_addrlen,
- tv, 1, c->buffer);
+ tv, 1, c->buffer,
+ (worker->env.cfg->log_destaddr?(void*)repinfo->c->socket->addr->ai_addr:NULL),
+ c->type);
}
}
#ifdef USE_DNSCRYPT
diff --git a/dnstap/dnstap.c b/dnstap/dnstap.c
index d15eb9b004b2..5cdda0c2d77e 100644
--- a/dnstap/dnstap.c
+++ b/dnstap/dnstap.c
@@ -305,6 +305,7 @@ dt_msg_fill_net(struct dt_msg *dm,
struct sockaddr_storage *qs,
struct sockaddr_storage *rs,
enum comm_point_type cptype,
+ void *cpssl,
ProtobufCBinaryData *qaddr, protobuf_c_boolean *has_qaddr,
uint32_t *qport, protobuf_c_boolean *has_qport,
ProtobufCBinaryData *raddr, protobuf_c_boolean *has_raddr,
@@ -371,13 +372,26 @@ dt_msg_fill_net(struct dt_msg *dm,
*has_rport = 1;
}
- log_assert(cptype == comm_udp || cptype == comm_tcp);
if (cptype == comm_udp) {
/* socket_protocol */
dm->m.socket_protocol = DNSTAP__SOCKET_PROTOCOL__UDP;
dm->m.has_socket_protocol = 1;
} else if (cptype == comm_tcp) {
+ if (cpssl == NULL) {
+ /* socket_protocol */
+ dm->m.socket_protocol = DNSTAP__SOCKET_PROTOCOL__TCP;
+ dm->m.has_socket_protocol = 1;
+ } else {
+ /* socket_protocol */
+ dm->m.socket_protocol = DNSTAP__SOCKET_PROTOCOL__DOT;
+ dm->m.has_socket_protocol = 1;
+ }
+ } else if (cptype == comm_http) {
/* socket_protocol */
+ dm->m.socket_protocol = DNSTAP__SOCKET_PROTOCOL__DOH;
+ dm->m.has_socket_protocol = 1;
+ } else {
+ /* other socket protocol */
dm->m.socket_protocol = DNSTAP__SOCKET_PROTOCOL__TCP;
dm->m.has_socket_protocol = 1;
}
@@ -388,6 +402,7 @@ dt_msg_send_client_query(struct dt_env *env,
struct sockaddr_storage *qsock,
struct sockaddr_storage *rsock,
enum comm_point_type cptype,
+ void *cpssl,
sldns_buffer *qmsg,
struct timeval* tstamp)
{
@@ -410,8 +425,7 @@ dt_msg_send_client_query(struct dt_env *env,
dt_fill_buffer(qmsg, &dm.m.query_message, &dm.m.has_query_message);
/* socket_family, socket_protocol, query_address, query_port, response_address, response_port */
- log_assert(cptype == comm_udp || cptype == comm_tcp);
- dt_msg_fill_net(&dm, qsock, rsock, cptype,
+ dt_msg_fill_net(&dm, qsock, rsock, cptype, cpssl,
&dm.m.query_address, &dm.m.has_query_address,
&dm.m.query_port, &dm.m.has_query_port,
&dm.m.response_address, &dm.m.has_response_address,
@@ -427,6 +441,7 @@ dt_msg_send_client_response(struct dt_env *env,
struct sockaddr_storage *qsock,
struct sockaddr_storage *rsock,
enum comm_point_type cptype,
+ void *cpssl,
sldns_buffer *rmsg)
{
struct dt_msg dm;
@@ -446,8 +461,7 @@ dt_msg_send_client_response(struct dt_env *env,
dt_fill_buffer(rmsg, &dm.m.response_message, &dm.m.has_response_message);
/* socket_family, socket_protocol, query_address, query_port, response_address, response_port */
- log_assert(cptype == comm_udp || cptype == comm_tcp);
- dt_msg_fill_net(&dm, qsock, rsock, cptype,
+ dt_msg_fill_net(&dm, qsock, rsock, cptype, cpssl,
&dm.m.query_address, &dm.m.has_query_address,
&dm.m.query_port, &dm.m.has_query_port,
&dm.m.response_address, &dm.m.has_response_address,
@@ -462,6 +476,7 @@ dt_msg_send_outside_query(struct dt_env *env,
struct sockaddr_storage *rsock,
struct sockaddr_storage *qsock,
enum comm_point_type cptype,
+ void *cpssl,
uint8_t *zone, size_t zone_len,
sldns_buffer *qmsg)
{
@@ -497,8 +512,7 @@ dt_msg_send_outside_query(struct dt_env *env,
dt_fill_buffer(qmsg, &dm.m.query_message, &dm.m.has_query_message);
/* socket_family, socket_protocol, response_address, response_port, query_address, query_port */
- log_assert(cptype == comm_udp || cptype == comm_tcp);
- dt_msg_fill_net(&dm, rsock, qsock, cptype,
+ dt_msg_fill_net(&dm, rsock, qsock, cptype, cpssl,
&dm.m.response_address, &dm.m.has_response_address,
&dm.m.response_port, &dm.m.has_response_port,
&dm.m.query_address, &dm.m.has_query_address,
@@ -513,6 +527,7 @@ dt_msg_send_outside_response(struct dt_env *env,
struct sockaddr_storage *rsock,
struct sockaddr_storage *qsock,
enum comm_point_type cptype,
+ void *cpssl,
uint8_t *zone, size_t zone_len,
uint8_t *qbuf, size_t qbuf_len,
const struct timeval *qtime,
@@ -556,8 +571,7 @@ dt_msg_send_outside_response(struct dt_env *env,
dt_fill_buffer(rmsg, &dm.m.response_message, &dm.m.has_response_message);
/* socket_family, socket_protocol, response_address, response_port, query_address, query_port */
- log_assert(cptype == comm_udp || cptype == comm_tcp);
- dt_msg_fill_net(&dm, rsock, qsock, cptype,
+ dt_msg_fill_net(&dm, rsock, qsock, cptype, cpssl,
&dm.m.response_address, &dm.m.has_response_address,
&dm.m.response_port, &dm.m.has_response_port,
&dm.m.query_address, &dm.m.has_query_address,
diff --git a/dnstap/dnstap.h b/dnstap/dnstap.h
index 169bdc2c6815..77914c20c9cf 100644
--- a/dnstap/dnstap.h
+++ b/dnstap/dnstap.h
@@ -133,6 +133,7 @@ dt_msg_send_client_query(struct dt_env *env,
struct sockaddr_storage *qsock,
struct sockaddr_storage *rsock,
enum comm_point_type cptype,
+ void *cpssl,
struct sldns_buffer *qmsg,
struct timeval* tstamp);
@@ -149,6 +150,7 @@ dt_msg_send_client_response(struct dt_env *env,
struct sockaddr_storage *qsock,
struct sockaddr_storage *rsock,
enum comm_point_type cptype,
+ void *cpssl,
struct sldns_buffer *rmsg);
/**
@@ -168,6 +170,7 @@ dt_msg_send_outside_query(struct dt_env *env,
struct sockaddr_storage *rsock,
struct sockaddr_storage *qsock,
enum comm_point_type cptype,
+ void *cpssl,
uint8_t *zone, size_t zone_len,
struct sldns_buffer *qmsg);
@@ -192,6 +195,7 @@ dt_msg_send_outside_response(struct dt_env *env,
struct sockaddr_storage *rsock,
struct sockaddr_storage *qsock,
enum comm_point_type cptype,
+ void *cpssl,
uint8_t *zone, size_t zone_len,
uint8_t *qbuf, size_t qbuf_len,
const struct timeval *qtime,
diff --git a/dnstap/dnstap.m4 b/dnstap/dnstap.m4
index be8b40c4505d..80b7bc92c927 100644
--- a/dnstap/dnstap.m4
+++ b/dnstap/dnstap.m4
@@ -5,45 +5,76 @@
# Check for required dnstap libraries and add dnstap configure args.
AC_DEFUN([dt_DNSTAP],
[
- AC_ARG_ENABLE([dnstap],
- AS_HELP_STRING([--enable-dnstap],
- [Enable dnstap support (requires protobuf-c)]),
- [opt_dnstap=$enableval], [opt_dnstap=no])
+ AC_ARG_ENABLE([dnstap],
+ AS_HELP_STRING([--enable-dnstap],
+ [Enable dnstap support (requires protobuf-c)]),
+ [opt_dnstap=$enableval],
+ [opt_dnstap=no])
- AC_ARG_WITH([dnstap-socket-path],
- AS_HELP_STRING([--with-dnstap-socket-path=pathname],
- [set default dnstap socket path]),
- [opt_dnstap_socket_path=$withval], [opt_dnstap_socket_path="$1"])
+ AC_ARG_WITH([dnstap-socket-path],
+ AS_HELP_STRING([--with-dnstap-socket-path=pathname],
+ [set default dnstap socket path]),
+ [opt_dnstap_socket_path=$withval],
+ [opt_dnstap_socket_path="$1"])
- if test "x$opt_dnstap" != "xno"; then
- AC_PATH_PROG([PROTOC_C], [protoc-c])
- if test -z "$PROTOC_C"; then
- AC_MSG_ERROR([The protoc-c program was not found. Please install protobuf-c!])
+ if test "x$opt_dnstap" != "xno"; then
+ AC_PATH_PROG([PROTOC_C], [protoc-c])
+ if test -z "$PROTOC_C"; then
+ AC_MSG_ERROR([The protoc-c program was not found. Please install protobuf-c!])
+ fi
+ AC_ARG_WITH([protobuf-c],
+ AS_HELP_STRING([--with-protobuf-c=path], [Path where protobuf-c is installed, for dnstap]),
+ [
+ # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
+ if test -f $withval/include/google/protobuf-c/protobuf-c.h; then
+ CFLAGS="$CFLAGS -I$withval/include/google"
+ else
+ CFLAGS="$CFLAGS -I$withval/include"
+ fi
+ LDFLAGS="$LDFLAGS -L$withval/lib"
+ ],
+ [
+ ifdef([PKG_CHECK_MODULES],
+ [
+ PKG_CHECK_MODULES([PROTOBUFC], [libprotobuf-c],
+ [
+ CFLAGS="$CFLAGS $PROTOBUFC_CFLAGS"
+ LIBS="$LIBS $PROTOBUFC_LIBS"
+ ],
+ [
+ # pkg-config failed; try falling back to known values
+ # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
+ if test -f /usr/include/google/protobuf-c/protobuf-c.h; then
+ CFLAGS="$CFLAGS -I/usr/include/google"
+ else
+ if test -f /usr/local/include/google/protobuf-c/protobuf-c.h; then
+ CFLAGS="$CFLAGS -I/usr/local/include/google"
+ LDFLAGS="$LDFLAGS -L/usr/local/lib"
+ else
+ AC_MSG_ERROR([The protobuf-c package was not found with pkg-config. Please install protobuf-c!])
+ fi
+ fi
+ ]
+ )
+ ],
+ [
+ # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
+ if test -f /usr/include/google/protobuf-c/protobuf-c.h; then
+ CFLAGS="$CFLAGS -I/usr/include/google"
+ else
+ if test -f /usr/local/include/google/protobuf-c/protobuf-c.h; then
+ CFLAGS="$CFLAGS -I/usr/local/include/google"
+ LDFLAGS="$LDFLAGS -L/usr/local/lib"
+ fi
+ fi
+ ]
+ )
+ ]
+ )
+ AC_SEARCH_LIBS([protobuf_c_message_pack], [protobuf-c], [],
+ AC_MSG_ERROR([The protobuf-c library was not found. Please install the development libraries for protobuf-c!]))
+ $2
+ else
+ $3
fi
- AC_ARG_WITH([protobuf-c], AS_HELP_STRING([--with-protobuf-c=path],
- [Path where protobuf-c is installed, for dnstap]), [
- # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
- if test -f $withval/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I$withval/include/google"
- else
- CFLAGS="$CFLAGS -I$withval/include"
- fi
- LDFLAGS="$LDFLAGS -L$withval/lib"
- ], [
- # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
- if test -f /usr/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I/usr/include/google"
- else
- if test -f /usr/local/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I/usr/local/include/google"
- LDFLAGS="$LDFLAGS -L/usr/local/lib"
- fi
- fi
- ])
- AC_SEARCH_LIBS([protobuf_c_message_pack], [protobuf-c], [],
- AC_MSG_ERROR([The protobuf-c library was not found. Please install the development libraries for protobuf-c!]))
- $2
- else
- $3
- fi
])
diff --git a/dnstap/dnstap.proto b/dnstap/dnstap.proto
index 88bfb4e94129..dfc8ad411d94 100644
--- a/dnstap/dnstap.proto
+++ b/dnstap/dnstap.proto
@@ -13,8 +13,8 @@
// with this file. If not, see:
//
// <http://creativecommons.org/publicdomain/zero/1.0/>.
-syntax = "proto2";
+syntax = "proto2";
package dnstap;
// "Dnstap": this is the top-level dnstap type, which is a "union" type that
@@ -56,11 +56,60 @@ enum SocketFamily {
INET6 = 2; // IPv6 (RFC 2460)
}
-// SocketProtocol: the transport protocol of a socket. This specifies how to
-// interpret "transport port" fields.
+// SocketProtocol: the protocol used to transport a DNS message.
enum SocketProtocol {
- UDP = 1; // User Datagram Protocol (RFC 768)
- TCP = 2; // Transmission Control Protocol (RFC 793)
+ UDP = 1; // DNS over UDP transport (RFC 1035 section 4.2.1)
+ TCP = 2; // DNS over TCP transport (RFC 1035 section 4.2.2)
+ DOT = 3; // DNS over TLS (RFC 7858)
+ DOH = 4; // DNS over HTTPS (RFC 8484)
+ DNSCryptUDP = 5; // DNSCrypt over UDP (https://dnscrypt.info/protocol)
+ DNSCryptTCP = 6; // DNSCrypt over TCP (https://dnscrypt.info/protocol)
+ DOQ = 7; // DNS over QUIC (RFC 9250)
+}
+
+// Policy: information about any name server operator policy
+// applied to the processing of a DNS message.
+message Policy {
+
+ // Match: what aspect of the message or message exchange
+ // triggered the application of the Policy.
+ enum Match {
+ QNAME = 1; // Name in question section of query
+ CLIENT_IP = 2; // Client IP address
+ RESPONSE_IP = 3; // Address in A/AAAA RRSet
+ NS_NAME = 4; // Authoritative name server, by name
+ NS_IP = 5; // Authoritative name server, by IP address
+ }
+
+ // The Action taken to implement the Policy.
+ enum Action {
+ NXDOMAIN = 1; // Respond with NXDOMAIN
+ NODATA = 2; // Respond with empty answer section
+ PASS = 3; // Do not alter the response (passthrough)
+ DROP = 4; // Do not respond.
+ TRUNCATE = 5; // Truncate UDP response, forcing TCP retry
+ LOCAL_DATA = 6; // Respond with local data from policy
+ }
+
+ // type: the type of policy applied, e.g. "RPZ" for a
+ // policy from a Response Policy Zone.
+ optional string type = 1;
+
+ // rule: the rule matched by the message.
+ //
+ // In a RPZ context, this is the owner name of the rule in
+ // the Reponse Policy Zone in wire format.
+ optional bytes rule = 2;
+
+ // action: the policy action taken in response to the
+ // rule match.
+ optional Action action = 3;
+
+ // match: the feature of the message exchange which matched the rule.
+ optional Match match = 4;
+
+ // The matched value. Format depends on the matched feature .
+ optional bytes value = 5;
}
// Message: a wire-format (RFC 1035 section 4) DNS message and associated
@@ -158,6 +207,24 @@ message Message {
// STUB_RESPONSE is a DNS response message sent from a DNS server to a
// stub resolver, from the perspective of the stub resolver.
STUB_RESPONSE = 10;
+
+ // TOOL_QUERY is a DNS query message sent from a DNS software tool to a
+ // DNS server, from the perspective of the tool.
+ TOOL_QUERY = 11;
+
+ // TOOL_RESPONSE is a DNS response message received by a DNS software
+ // tool from a DNS server, from the perspective of the tool.
+ TOOL_RESPONSE = 12;
+
+ // UPDATE_QUERY is a Dynamic DNS Update request (RFC 2136) received
+ // by an authoritative name server, from the perspective of the
+ // authoritative name server.
+ UPDATE_QUERY = 13;
+
+ // UPDATE_RESPONSE is a Dynamic DNS Update response (RFC 2136) sent
+ // from an authoritative name server, from the perspective of the
+ // authoritative name server.
+ UPDATE_RESPONSE = 14;
}
// One of the Type values described above.
@@ -215,6 +282,9 @@ message Message {
// The responder's original wire-format DNS response message, verbatim.
optional bytes response_message = 14;
+
+ // Operator policy applied to the processing of this message, if any.
+ optional Policy policy = 15;
}
// All fields except for 'type' in the Message schema are optional.
@@ -236,7 +306,6 @@ message Message {
// RESOLVER_QUERY:
// socket_family, socket_protocol
-// query_name, query_type, query_class
// query_message
// query_time_sec, query_time_nsec
// query_zone
@@ -244,7 +313,6 @@ message Message {
// RESOLVER_RESPONSE:
// socket_family, socket_protocol
-// query_name, query_type, query_class
// query_time_sec, query_time_nsec
// query_zone
// response_address, response_port
diff --git a/doc/Changelog b/doc/Changelog
index 05112e898a39..328e83289102 100644
--- a/doc/Changelog
+++ b/doc/Changelog
@@ -1,6 +1,144 @@
+8 March 2024: Wouter
+ - Fix unbound-control-setup.cmd to use 3072 bits so that certificates
+ are long enough for newer OpenSSL versions.
+ - Fix TTL of synthesized CNAME when a DNAME is used from cache.
+ - Fix unbound-control-setup.cmd to have CA v3 basicConstraints,
+ like unbound-control-setup.sh has.
+
+7 March 2024: Wouter
+ - Version set to 1.19.3 for release. After 1.19.2 point release with
+ security fix for CVE-2024-1931, Denial of service when trimming
+ EDE text on positive replies. The code repo includes the fix and
+ is for version 1.19.3.
+
+5 March 2024: Wouter
+ - Fix for #1022: Fix ede prohibited in access control refused answers.
+
+4 March 2024: Wouter
+ - Fix edns subnet replies for scope zero answers to not get stored
+ in the global cache, and in cachedb, when the upstream replies
+ without an EDNS record.
+
+28 February 2024: Wouter
+ - Move github workflows to use checkoutv4.
+
+23 February 2024: Yorgos
+ - Document the suspend argument for process_ds_response().
+
+22 February 2024: Wouter
+ - Fix trim of EDE text from large udp responses from spinning cpu.
+
+20 February 2024: Yorgos
+ - Merge #1010: Mention REFUSED has the TC bit set with unmatched
+ allow_cookie acl in the manpage. It also fixes the code to match the
+ documentation about clients with a valid cookie that bypass the
+ ratelimit regardless of the allow_cookie acl.
+
+13 February 2024: Wouter
+ - Fix CVE-2023-50387, DNSSEC verification complexity can be exploited
+ to exhaust CPU resources and stall DNS resolvers.
+ - Fix CVE-2023-50868, NSEC3 closest encloser proof can exhaust CPU.
+ - These fixes are part of the 1.19.1 release, that is a security
+ point release on 1.19.0, the code repository continues with these
+ fixes, with version number 1.19.2.
+
+8 February 2024: Wouter
+ - Fix documentation for access-control in the unbound.conf man page.
+
+7 February 2024: Yorgos
+ - Fix #1006: Can't find protobuf-c package since #999.
+
+30 January 2024: Wouter
+ - Merge #999: Search for protobuf-c with pkg-config.
+
+23 January 2024: Yorgos
+ - Update message TTL when using cached RRSETs. It could result in
+ non-expired messages with expired RRSETs (non-usable messages by
+ Unbound).
+
+22 January 2024: Yorgos
+ - Update error printout for duplicate trust anchors to include the
+ trust anchor name (relates to #920).
+
+22 January 2024: Wouter
+ - Fix for #997: Print details for SSL certificate failure.
+
+17 January 2024: Wouter
+ - Update workflow for ports to use newer openssl on windows compile.
+ - Fix warning for windres on resource files due to redefinition.
+
+16 January 2024: Wouter
+ - Fix to link with libssp for libcrypto and getaddrinfo check for
+ only header. Also update crosscompile to remove ssp for 32bit.
+ - Merge #993: Update b.root-servers.net also in example config file.
+
+15 January 2024: Wouter
+ - Fix to link with -lcrypt32 for OpenSSL 3.2.0 on Windows.
+
+9 January 2024: Wouter
+ - Merge #988: Fix NLnetLabs#981: dump_cache truncates large records.
+
+5 January 2024: Wouter
+ - Merge #987: skip edns frag retry if advertised udp payload size is
+ not smaller.
+ - Fix unit test for #987 change in udp1xxx retry packet send.
+
+4 January 2024: Wouter
+ - Remove unneeded newlines and improve indentation in remote control
+ code.
+
+3 January 2024: Wouter
+ - Merge #980: DoH: reject non-h2 early. To fix #979: Improve errors
+ for non-HTTP/2 DoH clients.
+ - Merge #985: Add DoH and DoT to dnstap message.
+ - Fix #983: Sha1 runtime insecure change was incomplete.
+
+22 December 2023: Yorgos
+ - Update example.conf with cookie options.
+
+8 December 2023: Yorgos
+ - Merge PR #973: Use the origin (DNAME) TTL for synthesized CNAMEs as
+ per RFC 6672.
+
+8 December 2023: Wouter
+ - Fix root_zonemd unit test, it checks that the root ZONEMD verifies,
+ now that the root has a valid ZONEMD.
+
+7 December 2023: Wouter
+ - Fix #974: doc: default number of outgoing ports without libevent.
+ - Merge #975: Fixed some syntax errors in rpl files.
+
+6 December 2023: Wouter
+ - Fix to sync the tests script file common.sh.
+ - iana portlist update.
+ - Updated IPv4 and IPv6 address for b.root-servers.net in root hints.
+ - Update test script file common.sh.
+ - Fix tests to use new common.sh functions, wait_logfile and
+ kill_from_pidfile.
+
+5 December 2023: Wouter
+ - Merge #971: fix 'WARNING: Message has 41 extra bytes at end'.
+ - Fix #969: [FR] distinguish Do53, DoT and DoH in the logs.
+ - Fix dnstap that assertion failed on logging other than UDP and TCP
+ traffic. It lists it as TCP traffic.
+
+27 November 2023: Yorgos
+ - Merge #968: Replace the obsolescent fgrep with grep -F in tests.
+
+27 November 2023: Wouter
+ - Fix #964: config.h.in~ backup file in release tar balls.
+
+24 November 2023: Yorgos
+ - Use 127.0.0.1 explicitly in tests to avoid delays and errors on
+ newer systems.
+
+9 November 2023: Wouter
+ - Fix unit test parse of origin syntax.
+
2 November 2023: Wouter
- Set version number to 1.19.0.
- - Tag for 1.19.0rc1 release.
+ - Tag for 1.19.0rc1 release. It became 1.19.0 release on 8 nov 2023.
+ The repository continues with 1.19.1.
1 November 2023: George
- Mention flex and bison in README.md when building from repository
diff --git a/doc/README b/doc/README
index eef91ce02836..b92f649ef30f 100644
--- a/doc/README
+++ b/doc/README
@@ -1,4 +1,4 @@
-README for Unbound 1.19.1
+README for Unbound 1.19.3
Copyright 2007 NLnet Labs
http://unbound.net
@@ -19,11 +19,10 @@ The DNSTAP code has BSD license in dnstap/dnstap.c.
* Make and install: ./configure; make; make install
* --with-libevent=/path/to/libevent
Can be set to either the system install or the build directory.
- --with-libevent=no (default) gives a builtin alternative
- implementation. libevent is useful when having many (thousands)
- of outgoing ports. This improves randomization and spoof
- resistance. For the default of 16 ports the builtin alternative
- works well and is a little faster.
+ --with-libevent=no gives a builtin alternative implementation.
+ Libevent is enabled by default, it is useful when having many
+ (thousands) of outgoing ports. This improves randomization and spoof
+ resistance. It also allows a higher number of outgoing queries.
* --with-libexpat=/path/to/libexpat
Can be set to the install directory of libexpat.
* --without-pthreads
diff --git a/doc/example.conf.in b/doc/example.conf.in
index fcfb1da815db..d791cf8d4761 100644
--- a/doc/example.conf.in
+++ b/doc/example.conf.in
@@ -1,7 +1,7 @@
#
# Example configuration file.
#
-# See unbound.conf(5) man page, version 1.19.1.
+# See unbound.conf(5) man page, version 1.19.3.
#
# this is a comment.
@@ -303,6 +303,7 @@ server:
# Choose deny (drop message), refuse (polite error reply),
# allow (recursive ok), allow_setrd (recursive ok, rd bit is forced on),
# allow_snoop (recursive and nonrecursive ok)
+ # allow_cookie (allow UDP with valid cookie or stateful transport)
# deny_non_local (drop queries unless can be answered from local-data)
# refuse_non_local (like deny_non_local but polite error reply).
# access-control: 127.0.0.0/8 allow
@@ -441,6 +442,9 @@ server:
# filtering log-queries and log-replies from the log.
# log-tag-queryreply: no
+ # log with destination address, port and type for log-replies.
+ # log-destaddr: no
+
# log the local-zone actions, like local-zone type inform is enabled
# also for the other local zone types.
# log-local-actions: no
@@ -983,6 +987,13 @@ server:
# if 0(default) it is disabled, otherwise states qps allowed per ip address
# ip-ratelimit: 0
+ # global query ratelimit for all ip addresses with a valid DNS Cookie.
+ # feature is experimental.
+ # if 0(default) it is disabled, otherwise states qps allowed per ip address
+ # useful in combination with 'allow_cookie'.
+ # If used, suggested to be higher than ip-ratelimit, tenfold.
+ # ip-ratelimit-cookie: 0
+
# ip ratelimits are tracked in a cache, size in bytes of cache (or k,m).
# ip-ratelimit-size: 4m
# ip ratelimit cache slabs, reduces lock contention if equal to cpucount.
@@ -1004,6 +1015,14 @@ server:
# the number of servers that will be used in the fast server selection.
# fast-server-num: 3
+ # reply to requests containing DNS Cookies as specified in RFC 7873 and RFC 9018.
+ # answer-cookie: no
+
+ # secret for DNS Cookie generation.
+ # useful for anycast deployments.
+ # example value "000102030405060708090a0b0c0d0e0f".
+ # cookie-secret: <128 bit random hex string>
+
# Enable to attach Extended DNS Error codes (RFC8914) to responses.
# ede: no
@@ -1150,7 +1169,7 @@ remote-control:
# sources of notifies.
# auth-zone:
# name: "."
-# primary: 199.9.14.201 # b.root-servers.net
+# primary: 170.247.170.2 # b.root-servers.net
# primary: 192.33.4.12 # c.root-servers.net
# primary: 199.7.91.13 # d.root-servers.net
# primary: 192.5.5.241 # f.root-servers.net
@@ -1158,7 +1177,7 @@ remote-control:
# primary: 193.0.14.129 # k.root-servers.net
# primary: 192.0.47.132 # xfr.cjr.dns.icann.org
# primary: 192.0.32.132 # xfr.lax.dns.icann.org
-# primary: 2001:500:200::b # b.root-servers.net
+# primary: 2801:1b8:10::b # b.root-servers.net
# primary: 2001:500:2::c # c.root-servers.net
# primary: 2001:500:2d::d # d.root-servers.net
# primary: 2001:500:2f::f # f.root-servers.net
diff --git a/doc/libunbound.3.in b/doc/libunbound.3.in
index 4a55eaa9e2ca..aeffa9516514 100644
--- a/doc/libunbound.3.in
+++ b/doc/libunbound.3.in
@@ -1,4 +1,4 @@
-.TH "libunbound" "3" "Feb 13, 2024" "NLnet Labs" "unbound 1.19.1"
+.TH "libunbound" "3" "Mar 14, 2024" "NLnet Labs" "unbound 1.19.3"
.\"
.\" libunbound.3 -- unbound library functions manual
.\"
@@ -44,7 +44,7 @@
.B ub_ctx_zone_remove,
.B ub_ctx_data_add,
.B ub_ctx_data_remove
-\- Unbound DNS validating resolver 1.19.1 functions.
+\- Unbound DNS validating resolver 1.19.3 functions.
.SH "SYNOPSIS"
.B #include <unbound.h>
.LP
diff --git a/doc/unbound-anchor.8.in b/doc/unbound-anchor.8.in
index fee56e9dfa51..f372d58e278a 100644
--- a/doc/unbound-anchor.8.in
+++ b/doc/unbound-anchor.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-anchor" "8" "Feb 13, 2024" "NLnet Labs" "unbound 1.19.1"
+.TH "unbound-anchor" "8" "Mar 14, 2024" "NLnet Labs" "unbound 1.19.3"
.\"
.\" unbound-anchor.8 -- unbound anchor maintenance utility manual
.\"
diff --git a/doc/unbound-checkconf.8.in b/doc/unbound-checkconf.8.in
index 9a14ef06bc3d..cde6d5c7aef2 100644
--- a/doc/unbound-checkconf.8.in
+++ b/doc/unbound-checkconf.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-checkconf" "8" "Feb 13, 2024" "NLnet Labs" "unbound 1.19.1"
+.TH "unbound-checkconf" "8" "Mar 14, 2024" "NLnet Labs" "unbound 1.19.3"
.\"
.\" unbound-checkconf.8 -- unbound configuration checker manual
.\"
diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in
index e747ec47e25a..4de6988ba0c0 100644
--- a/doc/unbound-control.8.in
+++ b/doc/unbound-control.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-control" "8" "Feb 13, 2024" "NLnet Labs" "unbound 1.19.1"
+.TH "unbound-control" "8" "Mar 14, 2024" "NLnet Labs" "unbound 1.19.3"
.\"
.\" unbound-control.8 -- unbound remote control manual
.\"
diff --git a/doc/unbound-host.1.in b/doc/unbound-host.1.in
index 9c9e9e2bf4a0..aacaa0e2eb31 100644
--- a/doc/unbound-host.1.in
+++ b/doc/unbound-host.1.in
@@ -1,4 +1,4 @@
-.TH "unbound\-host" "1" "Feb 13, 2024" "NLnet Labs" "unbound 1.19.1"
+.TH "unbound\-host" "1" "Mar 14, 2024" "NLnet Labs" "unbound 1.19.3"
.\"
.\" unbound-host.1 -- unbound DNS lookup utility
.\"
diff --git a/doc/unbound.8.in b/doc/unbound.8.in
index 4967a22d328c..542c71e52486 100644
--- a/doc/unbound.8.in
+++ b/doc/unbound.8.in
@@ -1,4 +1,4 @@
-.TH "unbound" "8" "Feb 13, 2024" "NLnet Labs" "unbound 1.19.1"
+.TH "unbound" "8" "Mar 14, 2024" "NLnet Labs" "unbound 1.19.3"
.\"
.\" unbound.8 -- unbound manual
.\"
@@ -9,7 +9,7 @@
.\"
.SH "NAME"
.B unbound
-\- Unbound DNS validating resolver 1.19.1.
+\- Unbound DNS validating resolver 1.19.3.
.SH "SYNOPSIS"
.B unbound
.RB [ \-h ]
diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in
index 79ca04904c96..d37451aa4539 100644
--- a/doc/unbound.conf.5.in
+++ b/doc/unbound.conf.5.in
@@ -1,4 +1,4 @@
-.TH "unbound.conf" "5" "Feb 13, 2024" "NLnet Labs" "unbound 1.19.1"
+.TH "unbound.conf" "5" "Mar 14, 2024" "NLnet Labs" "unbound 1.19.3"
.\"
.\" unbound.conf.5 -- unbound.conf manual
.\"
@@ -699,6 +699,12 @@ When at the limit, further connections are accepted but closed immediately.
This option is experimental at this time.
.TP
.B access\-control: \fI<IP netblock> <action>
+Specify treatment of incoming queries from their originating IP address.
+Queries can be allowed to have access to this server that gives DNS
+answers, or refused, with other actions possible. The IP address range
+can be specified as a netblock, it is possible to give the statement
+several times in order to specify the treatment of different netblocks.
+.IP
The netblock is given as an IP4 or IP6 address with /size appended for a
classless network block. The action can be \fIdeny\fR, \fIrefuse\fR,
\fIallow\fR, \fIallow_setrd\fR, \fIallow_snoop\fR, \fIallow_cookie\fR,
@@ -738,7 +744,7 @@ the cache contents (for malicious acts). However, nonrecursive queries can
also be a valuable debugging tool (when you want to examine the cache
contents). In that case use \fIallow_snoop\fR for your administration host.
.IP
-The \fIallow_cookie\fR action allows access to UDP queries that contain a
+The \fIallow_cookie\fR action allows access only to UDP queries that contain a
valid DNS Cookie as specified in RFC 7873 and RFC 9018, when the
\fBanswer\-cookie\fR option is enabled.
UDP queries containing only a DNS Client Cookie and no Server Cookie, or an
@@ -747,10 +753,8 @@ generated DNS Cookie, allowing clients to retry with that DNS Cookie.
The \fIallow_cookie\fR action will also accept requests over stateful
transports, regardless of the presence of an DNS Cookie and regardless of the
\fBanswer\-cookie\fR setting.
-If \fBip\-ratelimit\fR is used, clients with a valid DNS Cookie will bypass the
-ratelimit.
-If a ratelimit for such clients is still needed, \fBip\-ratelimit\-cookie\fR
-can be used instead.
+UDP queries without a DNS Cookie receive REFUSED responses with the TC flag set,
+that may trigger fall back to TCP for those clients.
.IP
By default only localhost is \fIallow\fRed, the rest is \fIrefuse\fRd.
The default is \fIrefuse\fRd, because that is protocol\-friendly. The DNS
@@ -913,6 +917,11 @@ Prints the word 'query' and 'reply' with log\-queries and log\-replies.
This makes filtering logs easier. The default is off (for backwards
compatibility).
.TP
+.B log\-destaddr: \fI<yes or no>
+Prints the destination address, port and type in the log\-replies output.
+This disambiguates what type of traffic, eg. udp or tcp, and to what local
+port the traffic was sent to.
+.TP
.B log\-local\-actions: \fI<yes or no>
Print log lines to inform about local zone actions. These lines are like the
local\-zone type inform prints out, but they are also printed for the other
@@ -1839,6 +1848,9 @@ The ratelimit is in queries per second that are allowed. More queries are
completely dropped and will not receive a reply, SERVFAIL or otherwise.
IP ratelimiting happens before looking in the cache. This may be useful for
mitigating amplification attacks.
+Clients with a valid DNS Cookie will bypass the ratelimit.
+If a ratelimit for such clients is still needed, \fBip\-ratelimit\-cookie\fR
+can be used instead.
Default is 0 (disabled).
.TP 5
.B ip\-ratelimit\-cookie: \fI<number or 0>
diff --git a/iterator/iter_fwd.c b/iterator/iter_fwd.c
index 151372912476..c4b2411297e3 100644
--- a/iterator/iter_fwd.c
+++ b/iterator/iter_fwd.c
@@ -523,4 +523,3 @@ forwards_delete_stub_hole(struct iter_forwards* fwd, uint16_t c, uint8_t* nm)
fwd_zone_free(z);
fwd_init_parents(fwd);
}
-
diff --git a/iterator/iter_hints.c b/iterator/iter_hints.c
index a60d9a6b1cf2..4f86f3676a29 100644
--- a/iterator/iter_hints.c
+++ b/iterator/iter_hints.c
@@ -129,7 +129,7 @@ compile_time_root_prime(int do_ip4, int do_ip6)
dp->has_parent_side_NS = 1;
if(do_ip4) {
if(!ah(dp, "A.ROOT-SERVERS.NET.", "198.41.0.4")) goto failed;
- if(!ah(dp, "B.ROOT-SERVERS.NET.", "199.9.14.201")) goto failed;
+ if(!ah(dp, "B.ROOT-SERVERS.NET.", "170.247.170.2")) goto failed;
if(!ah(dp, "C.ROOT-SERVERS.NET.", "192.33.4.12")) goto failed;
if(!ah(dp, "D.ROOT-SERVERS.NET.", "199.7.91.13")) goto failed;
if(!ah(dp, "E.ROOT-SERVERS.NET.", "192.203.230.10")) goto failed;
@@ -144,7 +144,7 @@ compile_time_root_prime(int do_ip4, int do_ip6)
}
if(do_ip6) {
if(!ah(dp, "A.ROOT-SERVERS.NET.", "2001:503:ba3e::2:30")) goto failed;
- if(!ah(dp, "B.ROOT-SERVERS.NET.", "2001:500:200::b")) goto failed;
+ if(!ah(dp, "B.ROOT-SERVERS.NET.", "2801:1b8:10::b")) goto failed;
if(!ah(dp, "C.ROOT-SERVERS.NET.", "2001:500:2::c")) goto failed;
if(!ah(dp, "D.ROOT-SERVERS.NET.", "2001:500:2d::d")) goto failed;
if(!ah(dp, "E.ROOT-SERVERS.NET.", "2001:500:a8::e")) goto failed;
@@ -560,4 +560,3 @@ hints_delete_stub(struct iter_hints* hints, uint16_t c, uint8_t* nm)
hints_stub_free(z);
name_tree_init_parents(&hints->tree);
}
-
diff --git a/iterator/iter_scrub.c b/iterator/iter_scrub.c
index 5f2e30337229..48867e50c557 100644
--- a/iterator/iter_scrub.c
+++ b/iterator/iter_scrub.c
@@ -283,7 +283,8 @@ synth_cname_rrset(uint8_t** sname, size_t* snamelen, uint8_t* alias,
sizeof(uint32_t)+sizeof(uint16_t)+aliaslen);
if(!cn->rr_first->ttl_data)
return NULL;
- sldns_write_uint32(cn->rr_first->ttl_data, 0); /* TTL = 0 */
+ memmove(cn->rr_first->ttl_data, rrset->rr_first->ttl_data,
+ sizeof(uint32_t)); /* RFC6672: synth CNAME TTL == DNAME TTL */
sldns_write_uint16(cn->rr_first->ttl_data+4, aliaslen);
memmove(cn->rr_first->ttl_data+6, alias, aliaslen);
cn->rr_first->size = sizeof(uint16_t)+aliaslen;
diff --git a/iterator/iterator.c b/iterator/iterator.c
index 6ff811a27d06..e9fea544aa69 100644
--- a/iterator/iterator.c
+++ b/iterator/iterator.c
@@ -4151,10 +4151,10 @@ process_response(struct module_qstate* qstate, struct iter_qstate* iq,
/* like packet got dropped */
goto handle_it;
}
- if(!inplace_cb_edns_back_parsed_call(qstate->env, qstate)) {
- log_err("unable to call edns_back_parsed callback");
- goto handle_it;
- }
+ }
+ if(!inplace_cb_edns_back_parsed_call(qstate->env, qstate)) {
+ log_err("unable to call edns_back_parsed callback");
+ goto handle_it;
}
/* remove CD-bit, we asked for in case we handle validation ourself */
diff --git a/services/authzone.c b/services/authzone.c
index 9d02cfbffe4c..93fef8ef1c29 100644
--- a/services/authzone.c
+++ b/services/authzone.c
@@ -2702,7 +2702,7 @@ create_synth_cname(uint8_t* qname, size_t qname_len, struct regional* region,
if(!d)
return 0; /* out of memory */
(*cname)->entry.data = d;
- d->ttl = 0; /* 0 for synthesized CNAME TTL */
+ d->ttl = dname->data->ttl; /* RFC6672: synth CNAME TTL == DNAME TTL */
d->count = 1;
d->rrsig_count = 0;
d->trust = rrset_trust_ans_noAA;
diff --git a/services/cache/dns.c b/services/cache/dns.c
index 7bc1b7b47bf1..6a980548d72f 100644
--- a/services/cache/dns.c
+++ b/services/cache/dns.c
@@ -80,6 +80,7 @@ store_rrsets(struct module_env* env, struct reply_info* rep, time_t now,
struct regional* region, time_t qstarttime)
{
size_t i;
+ time_t ttl, min_ttl = rep->ttl;
/* see if rrset already exists in cache, if not insert it. */
for(i=0; i<rep->rrset_count; i++) {
rep->ref[i].key = rep->rrsets[i];
@@ -112,6 +113,15 @@ store_rrsets(struct module_env* env, struct reply_info* rep, time_t now,
case 1: /* ref updated, item inserted */
rep->rrsets[i] = rep->ref[i].key;
}
+ /* if ref was updated make sure the message ttl is updated to
+ * the minimum of the current rrsets. */
+ ttl = ((struct packed_rrset_data*)rep->rrsets[i]->entry.data)->ttl;
+ if(ttl < min_ttl) min_ttl = ttl;
+ }
+ if(min_ttl < rep->ttl) {
+ rep->ttl = min_ttl;
+ rep->prefetch_ttl = PREFETCH_TTL_CALC(rep->ttl);
+ rep->serve_expired_ttl = rep->ttl + SERVE_EXPIRED_TTL;
}
}
@@ -818,7 +828,7 @@ synth_dname_msg(struct ub_packed_rrset_key* rrset, struct regional* region,
if(!newd)
return NULL;
ck->entry.data = newd;
- newd->ttl = 0; /* 0 for synthesized CNAME TTL */
+ newd->ttl = d->ttl - now; /* RFC6672: synth CNAME TTL == DNAME TTL */
newd->count = 1;
newd->rrsig_count = 0;
newd->trust = rrset_trust_ans_noAA;
diff --git a/services/localzone.c b/services/localzone.c
index 44da22d785d9..9c8e3c7acb16 100644
--- a/services/localzone.c
+++ b/services/localzone.c
@@ -1532,7 +1532,7 @@ local_data_answer(struct local_zone* z, struct module_env* env,
return 0; /* invalid cname */
if(dname_is_wild(ctarget)) {
/* synthesize cname target */
- struct packed_rrset_data* d;
+ struct packed_rrset_data* d, *lr_d;
/* -3 for wildcard label and root label from qname */
size_t newtargetlen = qinfo->qname_len + ctargetlen - 3;
@@ -1560,8 +1560,10 @@ local_data_answer(struct local_zone* z, struct module_env* env,
+ newtargetlen);
if(!d)
return 0; /* out of memory */
+ lr_d = (struct packed_rrset_data*)lr->rrset->entry.data;
qinfo->local_alias->rrset->entry.data = d;
- d->ttl = 0; /* 0 for synthesized CNAME TTL */
+ d->ttl = lr_d->rr_ttl[0]; /* RFC6672-like behavior:
+ synth CNAME TTL uses original TTL*/
d->count = 1;
d->rrsig_count = 0;
d->trust = rrset_trust_ans_noAA;
diff --git a/services/mesh.c b/services/mesh.c
index 509bee36a2c4..47cfb04249b5 100644
--- a/services/mesh.c
+++ b/services/mesh.c
@@ -69,6 +69,12 @@
#include "edns-subnet/subnetmod.h"
#include "edns-subnet/edns-subnet.h"
#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
/**
* Compare two response-ip client info entries for the purpose of mesh state
@@ -1429,7 +1435,9 @@ mesh_send_reply(struct mesh_state* m, int rcode, struct reply_info* rep,
if(m->s.env->cfg->log_replies) {
log_reply_info(NO_VERBOSE, &m->s.qinfo,
&r->query_reply.client_addr,
- r->query_reply.client_addrlen, duration, 0, r_buffer);
+ r->query_reply.client_addrlen, duration, 0, r_buffer,
+ (m->s.env->cfg->log_destaddr?(void*)r->query_reply.c->socket->addr->ai_addr:NULL),
+ r->query_reply.c->type);
}
}
diff --git a/services/outside_network.c b/services/outside_network.c
index 12923f07d788..1f89740da360 100644
--- a/services/outside_network.c
+++ b/services/outside_network.c
@@ -1009,7 +1009,7 @@ use_free_buffer(struct outside_network* outnet)
sldns_buffer tmp;
sldns_buffer_init_frm_data(&tmp, w->pkt, w->pkt_len);
dt_msg_send_outside_query(outnet->dtenv, &w->sq->addr,
- &pend_tcp->pi->addr, comm_tcp, w->sq->zone,
+ &pend_tcp->pi->addr, comm_tcp, NULL, w->sq->zone,
w->sq->zonelen, &tmp);
}
#endif
@@ -2237,7 +2237,7 @@ randomize_and_send_udp(struct pending* pend, sldns_buffer* packet, int timeout)
outnet->dtenv->log_forwarder_query_messages)) {
log_addr(VERB_ALGO, "from local addr", &pend->pc->pif->addr, pend->pc->pif->addrlen);
log_addr(VERB_ALGO, "request to upstream", &pend->addr, pend->addrlen);
- dt_msg_send_outside_query(outnet->dtenv, &pend->addr, &pend->pc->pif->addr, comm_udp,
+ dt_msg_send_outside_query(outnet->dtenv, &pend->addr, &pend->pc->pif->addr, comm_udp, NULL,
pend->sq->zone, pend->sq->zonelen, packet);
}
#endif
@@ -2517,7 +2517,7 @@ pending_tcp_query(struct serviced_query* sq, sldns_buffer* packet,
sldns_buffer tmp;
sldns_buffer_init_frm_data(&tmp, w->pkt, w->pkt_len);
dt_msg_send_outside_query(sq->outnet->dtenv, &sq->addr,
- &pend->pi->addr, comm_tcp, sq->zone,
+ &pend->pi->addr, comm_tcp, NULL, sq->zone,
sq->zonelen, &tmp);
}
#endif
@@ -2820,6 +2820,25 @@ serviced_perturb_qname(struct ub_randstate* rnd, uint8_t* qbuf, size_t len)
}
}
+static uint16_t
+serviced_query_udp_size(struct serviced_query* sq, enum serviced_query_status status) {
+ uint16_t udp_size;
+ if(status == serviced_query_UDP_EDNS_FRAG) {
+ if(addr_is_ip6(&sq->addr, sq->addrlen)) {
+ if(EDNS_FRAG_SIZE_IP6 < EDNS_ADVERTISED_SIZE)
+ udp_size = EDNS_FRAG_SIZE_IP6;
+ else udp_size = EDNS_ADVERTISED_SIZE;
+ } else {
+ if(EDNS_FRAG_SIZE_IP4 < EDNS_ADVERTISED_SIZE)
+ udp_size = EDNS_FRAG_SIZE_IP4;
+ else udp_size = EDNS_ADVERTISED_SIZE;
+ }
+ } else {
+ udp_size = EDNS_ADVERTISED_SIZE;
+ }
+ return udp_size;
+}
+
/** put serviced query into a buffer */
static void
serviced_encode(struct serviced_query* sq, sldns_buffer* buff, int with_edns)
@@ -2843,19 +2862,7 @@ serviced_encode(struct serviced_query* sq, sldns_buffer* buff, int with_edns)
edns.opt_list_in = NULL;
edns.opt_list_out = sq->opt_list;
edns.opt_list_inplace_cb_out = NULL;
- if(sq->status == serviced_query_UDP_EDNS_FRAG) {
- if(addr_is_ip6(&sq->addr, sq->addrlen)) {
- if(EDNS_FRAG_SIZE_IP6 < EDNS_ADVERTISED_SIZE)
- edns.udp_size = EDNS_FRAG_SIZE_IP6;
- else edns.udp_size = EDNS_ADVERTISED_SIZE;
- } else {
- if(EDNS_FRAG_SIZE_IP4 < EDNS_ADVERTISED_SIZE)
- edns.udp_size = EDNS_FRAG_SIZE_IP4;
- else edns.udp_size = EDNS_ADVERTISED_SIZE;
- }
- } else {
- edns.udp_size = EDNS_ADVERTISED_SIZE;
- }
+ edns.udp_size = serviced_query_udp_size(sq, sq->status);
edns.bits = 0;
if(sq->dnssec & EDNS_DO)
edns.bits = EDNS_DO;
@@ -3083,7 +3090,7 @@ serviced_tcp_callback(struct comm_point* c, void* arg, int error,
log_addr(VERB_ALGO, "response from upstream", &sq->addr, sq->addrlen);
log_addr(VERB_ALGO, "to local addr", &pi->addr, pi->addrlen);
dt_msg_send_outside_response(sq->outnet->dtenv, &sq->addr,
- &pi->addr, c->type, sq->zone, sq->zonelen, sq->qbuf,
+ &pi->addr, c->type, c->ssl, sq->zone, sq->zonelen, sq->qbuf,
sq->qbuflen, &sq->last_sent_time, sq->outnet->now_tv,
c->buffer);
}
@@ -3252,7 +3259,8 @@ serviced_udp_callback(struct comm_point* c, void* arg, int error,
sq->pending = NULL; /* removed after callback */
if(error == NETEVENT_TIMEOUT) {
- if(sq->status == serviced_query_UDP_EDNS && sq->last_rtt < 5000) {
+ if(sq->status == serviced_query_UDP_EDNS && sq->last_rtt < 5000 &&
+ (serviced_query_udp_size(sq, serviced_query_UDP_EDNS_FRAG) < serviced_query_udp_size(sq, serviced_query_UDP_EDNS))) {
/* fallback to 1480/1280 */
sq->status = serviced_query_UDP_EDNS_FRAG;
log_name_addr(VERB_ALGO, "try edns1xx0", sq->qbuf+10,
@@ -3296,7 +3304,7 @@ serviced_udp_callback(struct comm_point* c, void* arg, int error,
log_addr(VERB_ALGO, "to local addr", &p->pc->pif->addr,
p->pc->pif->addrlen);
dt_msg_send_outside_response(outnet->dtenv, &sq->addr,
- &p->pc->pif->addr, c->type, sq->zone, sq->zonelen,
+ &p->pc->pif->addr, c->type, c->ssl, sq->zone, sq->zonelen,
sq->qbuf, sq->qbuflen, &sq->last_sent_time,
sq->outnet->now_tv, c->buffer);
}
diff --git a/testcode/testpkts.c b/testcode/testpkts.c
index aa852f01ee47..8c68c48415a4 100644
--- a/testcode/testpkts.c
+++ b/testcode/testpkts.c
@@ -470,6 +470,7 @@ get_origin(const char* name, struct sldns_file_parse_state* pstate, char* parse)
store = *end;
*end = 0;
verbose(3, "parsing '%s'\n", parse);
+ pstate->origin_len = sizeof(pstate->origin);
status = sldns_str2wire_dname_buf(parse, pstate->origin,
&pstate->origin_len);
*end = store;
diff --git a/testcode/unitauth.c b/testcode/unitauth.c
index 11eeb43b2163..23c57e095e97 100644
--- a/testcode/unitauth.c
+++ b/testcode/unitauth.c
@@ -279,14 +279,14 @@ static struct q_ans example_com_queries[] = {
";flags QR AA rcode NOERROR\n"
";answer section\n"
"redir.example.com. 3600 IN DNAME redir.example.org.\n"
-"abc.redir.example.com. 0 IN CNAME abc.redir.example.org.\n"
+"abc.redir.example.com. 3600 IN CNAME abc.redir.example.org.\n"
},
{ "example.com", "foo.abc.redir.example.com. A", "",
";flags QR AA rcode NOERROR\n"
";answer section\n"
"redir.example.com. 3600 IN DNAME redir.example.org.\n"
-"foo.abc.redir.example.com. 0 IN CNAME foo.abc.redir.example.org.\n"
+"foo.abc.redir.example.com. 3600 IN CNAME foo.abc.redir.example.org.\n"
},
{ "example.com", "redir2.example.com. DNAME", "",
@@ -299,42 +299,42 @@ static struct q_ans example_com_queries[] = {
";flags QR AA rcode NOERROR\n"
";answer section\n"
"redir2.example.com. 3600 IN DNAME redir2.example.org.\n"
-"abc.redir2.example.com. 0 IN CNAME abc.redir2.example.org.\n"
+"abc.redir2.example.com. 3600 IN CNAME abc.redir2.example.org.\n"
},
{ "example.com", "obscured.redir2.example.com. A", "",
";flags QR AA rcode NOERROR\n"
";answer section\n"
"redir2.example.com. 3600 IN DNAME redir2.example.org.\n"
-"obscured.redir2.example.com. 0 IN CNAME obscured.redir2.example.org.\n"
+"obscured.redir2.example.com. 3600 IN CNAME obscured.redir2.example.org.\n"
},
{ "example.com", "under2.redir2.example.com. A", "",
";flags QR AA rcode NOERROR\n"
";answer section\n"
"redir2.example.com. 3600 IN DNAME redir2.example.org.\n"
-"under2.redir2.example.com. 0 IN CNAME under2.redir2.example.org.\n"
+"under2.redir2.example.com. 3600 IN CNAME under2.redir2.example.org.\n"
},
{ "example.com", "doubleobscured.under2.redir2.example.com. A", "",
";flags QR AA rcode NOERROR\n"
";answer section\n"
"redir2.example.com. 3600 IN DNAME redir2.example.org.\n"
-"doubleobscured.under2.redir2.example.com. 0 IN CNAME doubleobscured.under2.redir2.example.org.\n"
+"doubleobscured.under2.redir2.example.com. 3600 IN CNAME doubleobscured.under2.redir2.example.org.\n"
},
{ "example.com", "foo.doubleobscured.under2.redir2.example.com. A", "",
";flags QR AA rcode NOERROR\n"
";answer section\n"
"redir2.example.com. 3600 IN DNAME redir2.example.org.\n"
-"foo.doubleobscured.under2.redir2.example.com. 0 IN CNAME foo.doubleobscured.under2.redir2.example.org.\n"
+"foo.doubleobscured.under2.redir2.example.com. 3600 IN CNAME foo.doubleobscured.under2.redir2.example.org.\n"
},
{ "example.com", "foo.under2.redir2.example.com. A", "",
";flags QR AA rcode NOERROR\n"
";answer section\n"
"redir2.example.com. 3600 IN DNAME redir2.example.org.\n"
-"foo.under2.redir2.example.com. 0 IN CNAME foo.under2.redir2.example.org.\n"
+"foo.under2.redir2.example.com. 3600 IN CNAME foo.under2.redir2.example.org.\n"
},
{ "example.com", "sub.example.com. NS", "",
diff --git a/testdata/01-doc.tdir/01-doc.test b/testdata/01-doc.tdir/01-doc.test
index 484b0be42e43..904672bd02de 100644
--- a/testdata/01-doc.tdir/01-doc.test
+++ b/testdata/01-doc.tdir/01-doc.test
@@ -24,21 +24,21 @@ fi
(cd $PRE; find . -name "*.h" -print) >hlist
(cd $PRE; find . -name "*.c" -print) >>hlist
# filter out config.h
-fgrep -v -e "config.h" hlist > ilist; mv ilist hlist
-fgrep -v -e "util/configparser" hlist > ilist; mv ilist hlist
-fgrep -v -e "util/configlexer" hlist > ilist; mv ilist hlist
-fgrep -v -e "util/configyyrename" hlist > ilist; mv ilist hlist
-fgrep -v -e "util/locks.h" hlist > ilist; mv ilist hlist
-fgrep -v -e "util/storage/lookup3.c" hlist > ilist; mv ilist hlist
-fgrep -v -e "ldns-src/" hlist > ilist; mv ilist hlist
-fgrep -v -e "libunbound/python/libunbound_wrap.c" hlist > ilist; mv ilist hlist
-fgrep -v -e "pythonmod/interface.h" hlist > ilist; mv ilist hlist
-fgrep -v -e "dnstap" hlist > ilist; mv ilist hlist
-fgrep -v -e "util/siphash.c" hlist > ilist; mv ilist hlist
+grep -F -v -e "config.h" hlist > ilist; mv ilist hlist
+grep -F -v -e "util/configparser" hlist > ilist; mv ilist hlist
+grep -F -v -e "util/configlexer" hlist > ilist; mv ilist hlist
+grep -F -v -e "util/configyyrename" hlist > ilist; mv ilist hlist
+grep -F -v -e "util/locks.h" hlist > ilist; mv ilist hlist
+grep -F -v -e "util/storage/lookup3.c" hlist > ilist; mv ilist hlist
+grep -F -v -e "ldns-src/" hlist > ilist; mv ilist hlist
+grep -F -v -e "libunbound/python/libunbound_wrap.c" hlist > ilist; mv ilist hlist
+grep -F -v -e "pythonmod/interface.h" hlist > ilist; mv ilist hlist
+grep -F -v -e "dnstap" hlist > ilist; mv ilist hlist
+grep -F -v -e "util/siphash.c" hlist > ilist; mv ilist hlist
# filter out compat
-fgrep -v -e "compat/" hlist > ilist; mv ilist hlist
+grep -F -v -e "compat/" hlist > ilist; mv ilist hlist
for h in `cat hlist`; do
- if fgrep "`basename $h`" $PRE/doc/html/files.html >/dev/null; then
+ if grep -F "`basename $h`" $PRE/doc/html/files.html >/dev/null; then
: # ok
else
echo "Warning: $h has no documentation."
diff --git a/testdata/auth_axfr.tdir/auth_axfr.test b/testdata/auth_axfr.tdir/auth_axfr.test
index f9171eea0728..39b9f97424ce 100644
--- a/testdata/auth_axfr.tdir/auth_axfr.test
+++ b/testdata/auth_axfr.tdir/auth_axfr.test
@@ -7,35 +7,35 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
if grep SERVFAIL outfile; then
echo "> try again"
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
echo "> cat logfiles"
cat fwd.log
diff --git a/testdata/auth_https.tdir/auth_https.test b/testdata/auth_https.tdir/auth_https.test
index c2471b7d6439..a99be1a7ae5d 100644
--- a/testdata/auth_https.tdir/auth_https.test
+++ b/testdata/auth_https.tdir/auth_https.test
@@ -8,35 +8,35 @@ PRE="../.."
. ../common.sh
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
if grep SERVFAIL outfile; then
echo "> try again"
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
echo "> cat logfiles"
cat petal.log
diff --git a/testdata/blanks_cached_zone.tdir/blanks_cached_zone.test b/testdata/blanks_cached_zone.tdir/blanks_cached_zone.test
index c405950c3794..580cd22b3fed 100644
--- a/testdata/blanks_cached_zone.tdir/blanks_cached_zone.test
+++ b/testdata/blanks_cached_zone.tdir/blanks_cached_zone.test
@@ -8,35 +8,35 @@ PRE="../.."
# do the test
TARGET=ns1.blanks.example.com.
echo "> dig $TARGET"
-dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
if grep SERVFAIL outfile; then
echo "> try again"
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
echo "> cat logfiles"
cat unbound.log
diff --git a/testdata/blanks_https.tdir/blanks_https.test b/testdata/blanks_https.tdir/blanks_https.test
index 2c4c5dc7a473..7e0ac89364d1 100644
--- a/testdata/blanks_https.tdir/blanks_https.test
+++ b/testdata/blanks_https.tdir/blanks_https.test
@@ -8,35 +8,35 @@ PRE="../.."
# do the test
TARGET=ns1.blanks.example.com.
echo "> dig $TARGET"
-dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
if grep SERVFAIL outfile; then
echo "> try again"
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT $TARGET | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT $TARGET | tee outfile
fi
echo "> cat logfiles"
cat petal.log
diff --git a/testdata/cachedb_no_store.tdir/cachedb_no_store.post b/testdata/cachedb_no_store.tdir/cachedb_no_store.post
index 901f01a8753d..320dcc3e3e3b 100644
--- a/testdata/cachedb_no_store.tdir/cachedb_no_store.post
+++ b/testdata/cachedb_no_store.tdir/cachedb_no_store.post
@@ -16,5 +16,5 @@ if test -f fwd4.log; then cat fwd4.log; else echo "no fwd4.log"; fi
cat unbound.log
if test -f unbound2.log; then cat unbound2.log; else echo "no unbound2.log"; fi
kill_pid $FWD_PID
-kill_pid `cat unbound.pid`
+kill_from_pidfile "unbound.pid"
rm -f $CONTROL_PATH/controlpipe.$CONTROL_PID
diff --git a/testdata/cachedb_no_store.tdir/cachedb_no_store.test b/testdata/cachedb_no_store.tdir/cachedb_no_store.test
index 352026844776..47a89656c6c2 100644
--- a/testdata/cachedb_no_store.tdir/cachedb_no_store.test
+++ b/testdata/cachedb_no_store.tdir/cachedb_no_store.test
@@ -13,7 +13,7 @@ get_ldns_testns
# query for a text record that is stored by unbound's cache and cachedb
# in the testframe cache.
echo "> dig txt1.example.com."
-dig @localhost -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
if grep "example text message" outfile; then
echo "OK"
else
@@ -31,7 +31,7 @@ echo "FWD_PID=$FWD_PID" >> .tpkg.var.test
wait_ldns_testns_up fwd2.log
echo "> dig txt1.example.com. from unbound cache"
-dig @localhost -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
if grep "example text message" outfile; then
echo "OK"
else
@@ -50,7 +50,7 @@ else
fi
echo "> dig txt1.example.com. from cachedb"
-dig @localhost -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
if grep "example text message" outfile; then
echo "OK"
else
@@ -69,7 +69,7 @@ wait_ldns_testns_up fwd3.log
# stop unbound to flush the cachedb cache
echo "> stop unbound"
-kill_pid `cat unbound.pid`
+kill_from_pidfile "unbound.pid"
echo ""
echo "> config unbound with cachedb-no-store: yes"
@@ -84,7 +84,7 @@ wait_unbound_up unbound2.log
echo ""
echo "> dig txt1.example.com."
-dig @localhost -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
if grep "example text message" outfile; then
echo "OK"
else
@@ -102,7 +102,7 @@ echo "FWD_PID=$FWD_PID" >> .tpkg.var.test
wait_ldns_testns_up fwd4.log
echo "> dig txt1.example.com. from unbound cache"
-dig @localhost -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
if grep "example text message" outfile; then
echo "OK"
else
@@ -121,7 +121,7 @@ else
fi
echo "> dig txt1.example.com. from cachedb, but that has no message stored"
-dig @localhost -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT txt1.example.com. TXT | tee outfile
if grep "SERVFAIL" outfile; then
echo "OK"
else
diff --git a/testdata/common.sh b/testdata/common.sh
index b0e66f8dfa7f..bf2d301eb815 100644
--- a/testdata/common.sh
+++ b/testdata/common.sh
@@ -1,7 +1,12 @@
# common.sh - an include file for commonly used functions for test code.
# BSD licensed (see LICENSE file).
#
-# Version 3
+# Version 6
+# 2023-12-06: list wait_for_soa_serial in overview
+# 2023-12-06: get_ldns_notify, skip_test and teststep, and previous changes
+# also included are wait_logfile, cpu_count, process_cpu_list, and
+# kill_from_pidfile, and use HOME variable for HOME/bin.
+# 2011-04-06: tpk wait_logfile to wait (with timeout) for a logfile line to appear
# 2011-02-23: get_pcat for PCAT, PCAT_DIFF and PCAT_PRINT defines.
# 2011-02-18: ports check on BSD,Solaris. wait_nsd_up.
# 2011-02-11: first version.
@@ -21,14 +26,19 @@
# set_doxygen_path : set doxygen path
# skip_if_in_list : set SKIP=1 if name in list and tool not available.
# get_random_port x : get RND_PORT a sequence of free random port numbers.
+# wait_logfile : wait on logfile to see entry.
# wait_server_up : wait on logfile to see when server comes up.
# wait_ldns_testns_up : wait for ldns-testns to come up.
# wait_unbound_up : wait for unbound to come up.
# wait_petal_up : wait for petal to come up.
# wait_nsd_up : wait for nsd to come up.
# wait_server_up_or_fail: wait for server to come up or print a failure string
+# wait_for_soa_serial : wait and dig at server for serial.
# skip_test x : print message and skip test (must be called in .pre)
# kill_pid : kill a server, make sure and wait for it to go down.
+# cpu_count : get number of cpus in system
+# process_cpu_list : get cpu affinity list for process
+# kill_from_pidfile : kill the pid in the given pid file
# teststep : print the current test step in the output
@@ -61,7 +71,7 @@ get_ldns_testns () {
if test -x "`which ldns-testns 2>&1`"; then
LDNS_TESTNS=ldns-testns
else
- LDNS_TESTNS=/home/wouter/bin/ldns-testns
+ LDNS_TESTNS=$HOME/bin/ldns-testns
fi
}
@@ -70,7 +80,7 @@ get_ldns_notify () {
if test -x "`which ldns-notify 2>&1`"; then
LDNS_NOTIFY=ldns-notify
else
- LDNS_NOTIFY=/home/wouter/bin/ldns-notify
+ LDNS_NOTIFY=$HOME/bin/ldns-notify
fi
}
@@ -160,16 +170,42 @@ get_random_port () {
done
}
+# wait for a logfile line to appear, with a timeout.
+# pass <logfilename> <string to watch> <timeout>
+# $1 : logfilename
+# $2 : string to watch for.
+# $3 : timeout in seconds.
+# exits with failure if it times out
+wait_logfile () {
+ local WAIT_THRES=30
+ local MAX_UP_TRY=`expr $3 + $WAIT_THRES`
+ local try
+ for (( try=0 ; try <= $MAX_UP_TRY ; try++ )) ; do
+ if test -f $1 && grep -F "$2" $1 >/dev/null; then
+ #echo "done on try $try"
+ break;
+ fi
+ if test $try -eq $MAX_UP_TRY; then
+ echo "Logfile in $1 did not get $2!"
+ cat $1
+ exit 1;
+ fi
+ if test $try -ge $WAIT_THRES; then
+ sleep 1
+ fi
+ done
+}
+
# wait for server to go up, pass <logfilename> <string to watch>
# $1 : logfilename
# $2 : string to watch for.
# exits with failure if it does not come up
wait_server_up () {
- local MAX_UP_TRY=120
local WAIT_THRES=30
+ local MAX_UP_TRY=120
local try
for (( try=0 ; try <= $MAX_UP_TRY ; try++ )) ; do
- if test -f $1 && fgrep "$2" $1 >/dev/null; then
+ if test -f $1 && grep -F "$2" $1 >/dev/null; then
#echo "done on try $try"
break;
fi
@@ -220,11 +256,11 @@ wait_server_up_or_fail () {
local WAIT_THRES=30
local try
for (( try=0 ; try <= $MAX_UP_TRY ; try++ )) ; do
- if test -f $1 && fgrep "$2" $1 >/dev/null; then
+ if test -f $1 && grep -F "$2" $1 >/dev/null; then
echo "done on try $try"
break;
fi
- if test -f $1 && fgrep "$3" $1 >/dev/null; then
+ if test -f $1 && grep -F "$3" $1 >/dev/null; then
echo "failed on try $try"
break;
fi
@@ -239,6 +275,33 @@ wait_server_up_or_fail () {
done
}
+# $1: zone
+# $2: serial to be expected
+# $3: server to query
+# $4: port
+# $5: # times to try (# seconds dig is ran)
+wait_for_soa_serial () {
+ TS_START=`date +%s`
+ for i in `seq 1 $5`
+ do
+ SERIAL=`dig -p $4 @$3 $1 SOA +short | awk '{ print $3 }'`
+ if test "$?" != "0"
+ then
+ echo "** \"dig -p $4 @$3 $1 SOA +short\" failed!"
+ return 1
+ fi
+ if test "$SERIAL" = "$2"
+ then
+ TS_END=`date +%s`
+ echo "*** Serial $2 was seen in $i tries (`expr $TS_END - $TS_START`) seconds"
+ return 0
+ fi
+ sleep 1
+ done
+ echo "** Serial $2 was not seen in $5 tries (did see: $SERIAL)"
+ return 1
+}
+
# kill a pid, make sure and wait for it to go down.
# $1 : pid to kill
kill_pid () {
@@ -268,11 +331,58 @@ kill_pid () {
# set doxygen path, so that make doc can find doxygen
set_doxygen_path () {
- if test -x '/home/wouter/bin/doxygen'; then
- export PATH="/home/wouter/bin:$PATH"
+ if test -x '$HOME/bin/doxygen'; then
+ export PATH="$HOME/bin:$PATH"
fi
}
+# get number of cpus in system
+cpu_count()
+{
+ local sys=$(uname -s)
+ if [ "${sys}" = "Linux" ]; then
+ nproc
+ elif [ "${sys}" = "FreeBSD" ]; then
+ sysctl -n hw.ncpu
+ fi
+}
+
+# get cpu affinity list for process
+# $1 : pid
+process_cpu_list() {
+ local pid=${1}
+ local sys=$(uname -s)
+
+ if [ "${sys}" = "Linux" ]; then
+ local defl=$(taskset -pc ${pid} | sed -n -e 's/^.*: //p' | head -n 1)
+ elif [ "${sys}" = "FreeBSD" ]; then
+ local defl=$(cpuset -g -p ${pid} | sed -n -e 's/^.*: //p' | head -n 1)
+ fi
+
+ if [ -n "${defl}" ]; then
+ local infl
+ defl=$(echo "${defl}" | sed -e 's/,/ /g')
+ for i in ${defl}; do
+ rng=$(echo "${i}-${i}" | sed -e 's/^\([0-9]*\)-\([0-9]*\).*$/\1 \2/')
+ infl="${infl} $(seq -s ' ' ${rng})"
+ done
+ infl=$(echo ${infl} | sed -e 's/ */ /' -e 's/^ *//')
+ echo "${infl}"
+ fi
+}
+
+#
+#
+kill_from_pidfile() {
+ local pidfile="$1"
+ if test -f "$pidfile"; then
+ local pid=`head -n 1 "$pidfile"`
+ if test ! -z "$pid"; then
+ kill_pid "$pid"
+ fi
+ fi
+}
+
# Print the current test step in the output
teststep () {
echo
diff --git a/testdata/fwd_ancil.tdir/fwd_ancil.post b/testdata/fwd_ancil.tdir/fwd_ancil.post
index c11bd44cd8a0..6bb5f2ecc6fb 100644
--- a/testdata/fwd_ancil.tdir/fwd_ancil.post
+++ b/testdata/fwd_ancil.tdir/fwd_ancil.post
@@ -7,10 +7,10 @@
# do your teardown here
. ../common.sh
kill_pid $FWD_PID
-if fgrep "service stopped" unbound.log; then
+if grep -F "service stopped" unbound.log; then
exit 0
fi
-if fgrep "disable interface-automatic" unbound.log; then
+if grep -F "disable interface-automatic" unbound.log; then
echo "skip test"
exit 0
fi
diff --git a/testdata/fwd_ancil.tdir/fwd_ancil.pre b/testdata/fwd_ancil.tdir/fwd_ancil.pre
index 6c0fb7a0b234..ceede1afed99 100644
--- a/testdata/fwd_ancil.tdir/fwd_ancil.pre
+++ b/testdata/fwd_ancil.tdir/fwd_ancil.pre
@@ -36,7 +36,7 @@ wait_ldns_testns_up fwd.log
# wait for unbound to come up
# string 'Start of service' in log.
wait_server_up_or_fail unbound.log "start of service" "disable interface-automatic"
-if fgrep "disable interface-automatic" unbound.log; then
+if grep -F "disable interface-automatic" unbound.log; then
skip_test "skip test"
fi
diff --git a/testdata/fwd_ancil.tdir/fwd_ancil.test b/testdata/fwd_ancil.tdir/fwd_ancil.test
index 8da4754ce0ac..b5d063aa0184 100644
--- a/testdata/fwd_ancil.tdir/fwd_ancil.test
+++ b/testdata/fwd_ancil.tdir/fwd_ancil.test
@@ -7,7 +7,7 @@
PRE="../.."
. ../common.sh
-if fgrep "disable interface-automatic" unbound.log; then
+if grep -F "disable interface-automatic" unbound.log; then
echo "skip test"
exit 0
fi
diff --git a/testdata/fwd_bogus.tdir/fwd_bogus.test b/testdata/fwd_bogus.tdir/fwd_bogus.test
index 743b4e66a694..c0c38bb25f09 100644
--- a/testdata/fwd_bogus.tdir/fwd_bogus.test
+++ b/testdata/fwd_bogus.tdir/fwd_bogus.test
@@ -8,7 +8,7 @@ PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_capsid.tdir/fwd_capsid.test b/testdata/fwd_capsid.tdir/fwd_capsid.test
index 8b49691e5fd5..79dc997f9943 100644
--- a/testdata/fwd_capsid.tdir/fwd_capsid.test
+++ b/testdata/fwd_capsid.tdir/fwd_capsid.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_capsid_fallback.tdir/fwd_capsid_fallback.test b/testdata/fwd_capsid_fallback.tdir/fwd_capsid_fallback.test
index eba834f14dfd..b392a3958d88 100644
--- a/testdata/fwd_capsid_fallback.tdir/fwd_capsid_fallback.test
+++ b/testdata/fwd_capsid_fallback.tdir/fwd_capsid_fallback.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT wwwabcdefghijklmnopqrstuvwxyzwww.example.com | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT wwwabcdefghijklmnopqrstuvwxyzwww.example.com | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_capsid_strip.tdir/fwd_capsid_strip.test b/testdata/fwd_capsid_strip.tdir/fwd_capsid_strip.test
index a74f89f79af2..414ceb074ac2 100644
--- a/testdata/fwd_capsid_strip.tdir/fwd_capsid_strip.test
+++ b/testdata/fwd_capsid_strip.tdir/fwd_capsid_strip.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT wwwabcdefghijklmnopqrstuvwxyzwww.example.com | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT wwwabcdefghijklmnopqrstuvwxyzwww.example.com | tee outfile
echo "> cat logfiles"
cat fwd.log
cat fwd2.log
diff --git a/testdata/fwd_capsid_white.tdir/fwd_capsid_white.test b/testdata/fwd_capsid_white.tdir/fwd_capsid_white.test
index d287259e045b..d4dd9106d161 100644
--- a/testdata/fwd_capsid_white.tdir/fwd_capsid_white.test
+++ b/testdata/fwd_capsid_white.tdir/fwd_capsid_white.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT wwwabcdefghijklmnopqrstuvwxyzwww.example.com | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT wwwabcdefghijklmnopqrstuvwxyzwww.example.com | tee outfile
echo "> cat logfiles"
cat fwd.log
cat fwd2.log
diff --git a/testdata/fwd_edns_bksec.tdir/fwd_edns_bksec.test b/testdata/fwd_edns_bksec.tdir/fwd_edns_bksec.test
index 4acd01e88dd1..93bbef88d7da 100644
--- a/testdata/fwd_edns_bksec.tdir/fwd_edns_bksec.test
+++ b/testdata/fwd_edns_bksec.tdir/fwd_edns_bksec.test
@@ -10,7 +10,7 @@ PRE="../.."
# First the nasty name.
# The server should not have performed EDNS fallback and cached it.
echo "> dig nasty.example.com."
-dig @localhost -p $UNBOUND_PORT nasty.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT nasty.example.com. | tee outfile
# no answer possible for it.
echo "> check backed-off"
@@ -27,7 +27,7 @@ fi
# Then the www name.
# See if we can still get the EDNS data.
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_edns_probe.tdir/fwd_edns_probe.test b/testdata/fwd_edns_probe.tdir/fwd_edns_probe.test
index 225120421cb0..2e3ae1dc2a90 100644
--- a/testdata/fwd_edns_probe.tdir/fwd_edns_probe.test
+++ b/testdata/fwd_edns_probe.tdir/fwd_edns_probe.test
@@ -10,7 +10,7 @@ PRE="../.."
# First the nasty name.
# The server should not have performed EDNS fallback and cached it.
echo "> dig nasty.example.com."
-dig @localhost -p $UNBOUND_PORT nasty.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT nasty.example.com. | tee outfile
# no answer possible for it.
echo "> check no-answer"
@@ -27,7 +27,7 @@ fi
# Then the www name.
# See if we can still get the EDNS data.
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_malformed.tdir/fwd_malformed.test b/testdata/fwd_malformed.tdir/fwd_malformed.test
index 621605daeee8..8d6567bef3e8 100644
--- a/testdata/fwd_malformed.tdir/fwd_malformed.test
+++ b/testdata/fwd_malformed.tdir/fwd_malformed.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_no_edns.tdir/fwd_no_edns.test b/testdata/fwd_no_edns.tdir/fwd_no_edns.test
index bc209ea09c50..405d17b09dcb 100644
--- a/testdata/fwd_no_edns.tdir/fwd_no_edns.test
+++ b/testdata/fwd_no_edns.tdir/fwd_no_edns.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_oneport.tdir/fwd_oneport.post b/testdata/fwd_oneport.tdir/fwd_oneport.post
index 8aafab7ca9bd..11c96dbae683 100644
--- a/testdata/fwd_oneport.tdir/fwd_oneport.post
+++ b/testdata/fwd_oneport.tdir/fwd_oneport.post
@@ -9,7 +9,7 @@
kill_pid $FWD_PID
# find all extra forked testns and kill them.
-pidlist=`fgrep "forked pid:" fwd.log | sed -e 's/forked pid: //'`
+pidlist=`grep -F "forked pid:" fwd.log | sed -e 's/forked pid: //'`
for p in $pidlist; do
kill_pid $p
done
diff --git a/testdata/fwd_oneport.tdir/fwd_oneport.test b/testdata/fwd_oneport.tdir/fwd_oneport.test
index 59d5b016308e..930277112300 100644
--- a/testdata/fwd_oneport.tdir/fwd_oneport.test
+++ b/testdata/fwd_oneport.tdir/fwd_oneport.test
@@ -11,7 +11,7 @@ PRE="../.."
# so that all three queries get timeouts during the later test.
#
#echo "> dig www1.example.com."
-#dig @localhost -p $UNBOUND_PORT www1.example.com. | tee outfile
+#dig @127.0.0.1 -p $UNBOUND_PORT www1.example.com. | tee outfile
#echo "> cat logfiles"
#cat fwd.log
#cat unbound.log
@@ -24,17 +24,17 @@ PRE="../.."
#fi
echo "> do queries"
-dig @localhost -p $UNBOUND_PORT www1.example.com. >outfile1 &
+dig @127.0.0.1 -p $UNBOUND_PORT www1.example.com. >outfile1 &
digpid1=$!
-dig @localhost -p $UNBOUND_PORT www2.example.com. >outfile2 &
+dig @127.0.0.1 -p $UNBOUND_PORT www2.example.com. >outfile2 &
digpid2=$!
-dig @localhost -p $UNBOUND_PORT www3.example.com. >outfile3 &
+dig @127.0.0.1 -p $UNBOUND_PORT www3.example.com. >outfile3 &
digpid3=$!
-dig @localhost -p $UNBOUND_PORT www4.example.com. >outfile4 &
+dig @127.0.0.1 -p $UNBOUND_PORT www4.example.com. >outfile4 &
digpid4=$!
-dig @localhost -p $UNBOUND_PORT www5.example.com. >outfile5 &
+dig @127.0.0.1 -p $UNBOUND_PORT www5.example.com. >outfile5 &
digpid5=$!
-dig @localhost -p $UNBOUND_PORT www6.example.com. >outfile6 &
+dig @127.0.0.1 -p $UNBOUND_PORT www6.example.com. >outfile6 &
digpid6=$!
sleep 12
kill -9 $digpid1
diff --git a/testdata/fwd_tcp.tdir/fwd_tcp.test b/testdata/fwd_tcp.tdir/fwd_tcp.test
index 9ecc5df153e9..e887b50d257f 100644
--- a/testdata/fwd_tcp.tdir/fwd_tcp.test
+++ b/testdata/fwd_tcp.tdir/fwd_tcp.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost +vc -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 +vc -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_tcp_tc.tdir/fwd_tcp_tc.test b/testdata/fwd_tcp_tc.tdir/fwd_tcp_tc.test
index 1a8f9edc1e64..80f15e438b2d 100644
--- a/testdata/fwd_tcp_tc.tdir/fwd_tcp_tc.test
+++ b/testdata/fwd_tcp_tc.tdir/fwd_tcp_tc.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_three.tdir/fwd_three.post b/testdata/fwd_three.tdir/fwd_three.post
index 7b2971d625f6..00a92103cc62 100644
--- a/testdata/fwd_three.tdir/fwd_three.post
+++ b/testdata/fwd_three.tdir/fwd_three.post
@@ -11,7 +11,7 @@
kill_pid $FWD_PID
# find all extra forked testns and kill them.
-pidlist=`fgrep "forked pid:" fwd.log | sed -e 's/forked pid: //'`
+pidlist=`grep -F "forked pid:" fwd.log | sed -e 's/forked pid: //'`
for p in $pidlist; do
kill_pid $p
done
diff --git a/testdata/fwd_three.tdir/fwd_three.test b/testdata/fwd_three.tdir/fwd_three.test
index 962d0bf1c12b..b0c8b9af9186 100644
--- a/testdata/fwd_three.tdir/fwd_three.test
+++ b/testdata/fwd_three.tdir/fwd_three.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www1.example.com."
-dig @localhost -p $UNBOUND_PORT www1.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www1.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -20,11 +20,11 @@ else
fi
echo "> do three queries"
-dig @localhost -p $UNBOUND_PORT +retry=10 +time=1 www1.example.com. >outfile1 &
+dig @127.0.0.1 -p $UNBOUND_PORT +retry=10 +time=1 www1.example.com. >outfile1 &
digpid1=$!
-dig @localhost -p $UNBOUND_PORT +retry=10 +time=1 www2.example.com. >outfile2 &
+dig @127.0.0.1 -p $UNBOUND_PORT +retry=10 +time=1 www2.example.com. >outfile2 &
digpid2=$!
-dig @localhost -p $UNBOUND_PORT +retry=10 +time=1 www3.example.com. >outfile3 &
+dig @127.0.0.1 -p $UNBOUND_PORT +retry=10 +time=1 www3.example.com. >outfile3 &
digpid3=$!
sleep 5
kill -9 $digpid1
diff --git a/testdata/fwd_three_service.tdir/fwd_three_service.post b/testdata/fwd_three_service.tdir/fwd_three_service.post
index 1d7a8daaebe0..d4dec9bcd566 100644
--- a/testdata/fwd_three_service.tdir/fwd_three_service.post
+++ b/testdata/fwd_three_service.tdir/fwd_three_service.post
@@ -11,7 +11,7 @@
kill_pid $FWD_PID
# find all extra forked testns and kill them.
-pidlist=`fgrep "forked pid:" fwd.log | sed -e 's/forked pid: //'`
+pidlist=`grep -F "forked pid:" fwd.log | sed -e 's/forked pid: //'`
for p in $pidlist; do
kill_pid $p
done
diff --git a/testdata/fwd_three_service.tdir/fwd_three_service.test b/testdata/fwd_three_service.tdir/fwd_three_service.test
index 6c5e34a7c305..7262cb724cbe 100644
--- a/testdata/fwd_three_service.tdir/fwd_three_service.test
+++ b/testdata/fwd_three_service.tdir/fwd_three_service.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www1.example.com."
-dig @localhost -p $UNBOUND_PORT www1.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www1.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -20,11 +20,11 @@ else
fi
echo "> do three queries"
-dig @localhost -p $UNBOUND_PORT www1.example.com. >outfile1 &
+dig @127.0.0.1 -p $UNBOUND_PORT www1.example.com. >outfile1 &
digpid1=$!
-dig @localhost -p $UNBOUND_PORT www2.example.com. >outfile2 &
+dig @127.0.0.1 -p $UNBOUND_PORT www2.example.com. >outfile2 &
digpid2=$!
-dig @localhost -p $UNBOUND_PORT www3.example.com. >outfile3 &
+dig @127.0.0.1 -p $UNBOUND_PORT www3.example.com. >outfile3 &
digpid3=$!
sleep 5
kill -9 $digpid1
diff --git a/testdata/fwd_ttlexpire.tdir/fwd_ttlexpire.test b/testdata/fwd_ttlexpire.tdir/fwd_ttlexpire.test
index 41ea3953ccb6..13a83e617c4c 100644
--- a/testdata/fwd_ttlexpire.tdir/fwd_ttlexpire.test
+++ b/testdata/fwd_ttlexpire.tdir/fwd_ttlexpire.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> check answer"
if grep "10.20.30.40" outfile; then
echo "OK"
@@ -20,7 +20,7 @@ sleep 4
# query again
rm outfile
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> check answer"
if grep "10.20.30.40" outfile; then
echo "OK"
diff --git a/testdata/fwd_udp.tdir/fwd_udp.test b/testdata/fwd_udp.tdir/fwd_udp.test
index 9bd37adb3a7a..837fe6c8806c 100644
--- a/testdata/fwd_udp.tdir/fwd_udp.test
+++ b/testdata/fwd_udp.tdir/fwd_udp.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.test b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.test
index fad6497beb15..576e65a0d1fc 100644
--- a/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.test
+++ b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig tcp.example.com."
-dig @localhost -p $UNBOUND_PORT tcp.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT tcp.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -20,7 +20,7 @@ else
fi
echo "> dig udp.example.com."
-dig @localhost -p $UNBOUND_PORT udp.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT udp.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/fwd_udptmout.tdir/fwd_udptmout.post b/testdata/fwd_udptmout.tdir/fwd_udptmout.post
index f2138b9ec8ac..b8d3cc8a308c 100644
--- a/testdata/fwd_udptmout.tdir/fwd_udptmout.post
+++ b/testdata/fwd_udptmout.tdir/fwd_udptmout.post
@@ -10,7 +10,7 @@
kill_pid $FWD_PID
# find all extra forked testns and kill them.
-pidlist=`fgrep "forked pid:" fwd.log | sed -e 's/forked pid: //'`
+pidlist=`grep -F "forked pid:" fwd.log | sed -e 's/forked pid: //'`
for p in $pidlist; do
kill_pid $p
done
diff --git a/testdata/fwd_udptmout.tdir/fwd_udptmout.test b/testdata/fwd_udptmout.tdir/fwd_udptmout.test
index 8d89961047bc..1f8feda357d5 100644
--- a/testdata/fwd_udptmout.tdir/fwd_udptmout.test
+++ b/testdata/fwd_udptmout.tdir/fwd_udptmout.test
@@ -11,7 +11,7 @@ PRE="../.."
# so that all three queries get timeouts during the later test.
#
#echo "> dig www1.example.com."
-#dig @localhost -p $UNBOUND_PORT www1.example.com. | tee outfile
+#dig @127.0.0.1 -p $UNBOUND_PORT www1.example.com. | tee outfile
#echo "> cat logfiles"
#cat fwd.log
#cat unbound.log
@@ -24,17 +24,17 @@ PRE="../.."
#fi
echo "> do queries"
-dig @localhost -p $UNBOUND_PORT www1.example.com. >outfile1 &
+dig @127.0.0.1 -p $UNBOUND_PORT www1.example.com. >outfile1 &
digpid1=$!
-dig @localhost -p $UNBOUND_PORT www2.example.com. >outfile2 &
+dig @127.0.0.1 -p $UNBOUND_PORT www2.example.com. >outfile2 &
digpid2=$!
-dig @localhost -p $UNBOUND_PORT www3.example.com. >outfile3 &
+dig @127.0.0.1 -p $UNBOUND_PORT www3.example.com. >outfile3 &
digpid3=$!
-dig @localhost -p $UNBOUND_PORT www4.example.com. >outfile4 &
+dig @127.0.0.1 -p $UNBOUND_PORT www4.example.com. >outfile4 &
digpid4=$!
-dig @localhost -p $UNBOUND_PORT www5.example.com. >outfile5 &
+dig @127.0.0.1 -p $UNBOUND_PORT www5.example.com. >outfile5 &
digpid5=$!
-dig @localhost -p $UNBOUND_PORT www6.example.com. >outfile6 &
+dig @127.0.0.1 -p $UNBOUND_PORT www6.example.com. >outfile6 &
digpid6=$!
sleep 15
diff --git a/testdata/fwd_waitudp.tdir/fwd_waitudp.post b/testdata/fwd_waitudp.tdir/fwd_waitudp.post
index fedf97a41641..384418c56f10 100644
--- a/testdata/fwd_waitudp.tdir/fwd_waitudp.post
+++ b/testdata/fwd_waitudp.tdir/fwd_waitudp.post
@@ -11,7 +11,7 @@
kill_pid $FWD_PID
# find all extra forked testns and kill them.
-pidlist=`fgrep "forked pid:" fwd.log | sed -e 's/forked pid: //'`
+pidlist=`grep -F "forked pid:" fwd.log | sed -e 's/forked pid: //'`
for p in $pidlist; do
kill_pid $p
done
diff --git a/testdata/fwd_waitudp.tdir/fwd_waitudp.test b/testdata/fwd_waitudp.tdir/fwd_waitudp.test
index 1247885348ac..5158bd065232 100644
--- a/testdata/fwd_waitudp.tdir/fwd_waitudp.test
+++ b/testdata/fwd_waitudp.tdir/fwd_waitudp.test
@@ -11,7 +11,7 @@ PRE="../.."
# so that all three queries get timeouts during the later test.
#
#echo "> dig www1.example.com."
-#dig @localhost -p $UNBOUND_PORT www1.example.com. | tee outfile
+#dig @127.0.0.1 -p $UNBOUND_PORT www1.example.com. | tee outfile
#echo "> cat logfiles"
#cat fwd.log
#cat unbound.log
@@ -24,11 +24,11 @@ PRE="../.."
#fi
echo "> do three queries"
-dig @localhost -p $UNBOUND_PORT www1.example.com. >outfile1 &
+dig @127.0.0.1 -p $UNBOUND_PORT www1.example.com. >outfile1 &
digpid1=$!
-dig @localhost -p $UNBOUND_PORT www2.example.com. >outfile2 &
+dig @127.0.0.1 -p $UNBOUND_PORT www2.example.com. >outfile2 &
digpid2=$!
-dig @localhost -p $UNBOUND_PORT www3.example.com. >outfile3 &
+dig @127.0.0.1 -p $UNBOUND_PORT www3.example.com. >outfile3 &
digpid3=$!
sleep 15
kill -9 $digpid1
diff --git a/testdata/fwd_zero.tdir/fwd_zero.test b/testdata/fwd_zero.tdir/fwd_zero.test
index 2e0806d6f401..c939188831ac 100644
--- a/testdata/fwd_zero.tdir/fwd_zero.test
+++ b/testdata/fwd_zero.tdir/fwd_zero.test
@@ -17,7 +17,7 @@ echo "b4380100000100000000000003777777076578616d706c6503636f6d00" | xxd -r -p |
# now test that server is still up
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/http_user_agent.tdir/http_user_agent.test b/testdata/http_user_agent.tdir/http_user_agent.test
index dce2d476c8f6..95803089506c 100644
--- a/testdata/http_user_agent.tdir/http_user_agent.test
+++ b/testdata/http_user_agent.tdir/http_user_agent.test
@@ -9,35 +9,35 @@ PRE="../.."
# Query and check check that we get the correct answer from the auth_zone
query () {
echo "> dig www.example.com."
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
if grep SERVFAIL outfile; then
echo "> try again"
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
echo "> check answer"
if grep "1.2.3.4" outfile; then
diff --git a/testdata/iter_cname_minimise_nx.rpl b/testdata/iter_cname_minimise_nx.rpl
index 080055208daf..a04eb8b24791 100644
--- a/testdata/iter_cname_minimise_nx.rpl
+++ b/testdata/iter_cname_minimise_nx.rpl
@@ -241,6 +241,5 @@ v.example.com. 3600 IN RRSIG NSEC 3 3 3600 20070926134150 20070829134150 2854 ex
example.com. 3600 IN NSEC abc.example.com. NS SOA RRSIG NSEC DNSKEY
example.com. 3600 IN RRSIG NSEC 3 2 3600 20070926134150 20070829134150 2854 example.com. ABEOu6iietfjKY1MS0TutZZxUtRYA6XKsC1rMTrenwBF2darY3/Emco=
ENTRY_END
-ENTRY_END
SCENARIO_END
diff --git a/testdata/iter_dname_insec.rpl b/testdata/iter_dname_insec.rpl
index ce593ba5c20a..051363bd2e8f 100644
--- a/testdata/iter_dname_insec.rpl
+++ b/testdata/iter_dname_insec.rpl
@@ -397,7 +397,7 @@ ENTRY_END
STEP 220302 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA DO
SECTION QUESTION
a.example.com. IN A
@@ -420,7 +420,7 @@ ENTRY_END
STEP 220402 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA DO
SECTION QUESTION
a.b.example.com. IN A
@@ -523,7 +523,7 @@ ENTRY_END
STEP 220702 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA DO
SECTION QUESTION
a.x.example.com. IN A
@@ -607,7 +607,7 @@ ENTRY_END
STEP 220802 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA DO
SECTION QUESTION
a2.example.com. IN A
@@ -691,14 +691,14 @@ ENTRY_END
; CNAME chains should be followed and CNAME loops signalled as an error
STEP 220902 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA DO
REPLY NOERROR
SECTION QUESTION
cyc.example.com. IN A
SECTION ANSWER
-example.com. 0 IN DNAME example.com.
-cyc.example.com. 0 IN CNAME cyc.example.com.
+example.com. 3600 IN DNAME example.com.
+cyc.example.com. 3600 IN CNAME cyc.example.com.
ENTRY_END
; ns1.example.com.
@@ -857,7 +857,7 @@ ENTRY_END
STEP 221102 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA DO
SECTION QUESTION
shortloop.x.x. IN TXT
@@ -885,7 +885,7 @@ ENTRY_END
STEP 221202 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA DO
SECTION QUESTION
shortloop.x. IN TXT
@@ -999,7 +999,7 @@ ENTRY_END
; query returning maximal permissible length - should work
STEP 229002 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA DO
SECTION QUESTION
x.long. IN A
diff --git a/testdata/iter_dname_ttl.rpl b/testdata/iter_dname_ttl.rpl
new file mode 100644
index 000000000000..115947af3ab3
--- /dev/null
+++ b/testdata/iter_dname_ttl.rpl
@@ -0,0 +1,310 @@
+; config options
+; The island of trust is at example.com
+; validation is enabled because the pickup of DNAME from cache wants
+; a DNSSEC signed DNAME.
+server:
+ trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
+ trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
+ val-override-date: "20070916134226"
+ target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
+ fake-sha1: yes
+ trust-anchor-signaling: no
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test iterator for TTL of synthesized CNAME of a DNAME from cache.
+
+; 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 NS
+SECTION AUTHORITY
+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
+net. IN A
+SECTION AUTHORITY
+net. 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
+net. IN NS
+SECTION ANSWER
+net. 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 NS
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.net. IN A
+SECTION AUTHORITY
+example.net. IN NS ns.example.net.
+SECTION ADDITIONAL
+ns.example.net. IN A 1.2.3.5
+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 DSA 2 3600 20070926134150 20070829134150 2854 example.com. MCwCFBQRtlR4BEv9ohi+PGFjp+AHsJuHAhRCvz0shggvnvI88DFnBDCczHUcVA== ;{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 CNAME
+SECTION ANSWER
+www.example.com. IN CNAME www.example.net.
+www.example.com. 3600 IN RRSIG CNAME DSA 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFGcJxnNxpWCBzXejiSdl4p1BKRMnAhUApoJrugVBRwFgAoYAhhqlZFac7fE= ;{id = 2854}
+SECTION AUTHORITY
+SECTION ADDITIONAL
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www2.example.com. IN A
+SECTION ANSWER
+www2.example.com. 3600 IN CNAME www.example.net.
+www2.example.com. 3600 IN RRSIG CNAME 3 3 3600 20070926135752 20070829135752 2854 example.com. AGgh6pDCL7VF0uJablClW7cgvsPuNzpHZ+M7nZIwi61+0RPhFZLHcN4=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+foo.test-dname.example.com. IN A
+SECTION ANSWER
+test-dname.example.com. 3600 IN DNAME example.net.
+test-dname.example.com. 3600 IN RRSIG DNAME 3 3 3600 20070926135752 20070829135752 2854 example.com. ACp31Evt1c6tKzmTh/smAuGFydZ1OO26Qkej/BW4Bw5RFBQiKaY22Z0=
+foo.test-dname.example.com. 3600 IN CNAME foo.example.net.
+ENTRY_END
+RANGE_END
+
+; ns.example.net.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.5
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.net. IN NS
+SECTION ANSWER
+example.net. IN NS ns.example.net.
+example.net. 3600 IN RRSIG NS RSASHA1 2 3600 20070926134150 20070829134150 30899 example.net. E8JX0l4B+cSR5bkHQwOJy1pBmlLMTYCJ8EwfNMU/eCv0YhKwo26rHhn52FGisgv+Nwp7/NbhHqQ+kJgoZC94XA== ;{id = 30899}
+SECTION ADDITIONAL
+ns.example.net. IN A 1.2.3.5
+ns.example.net. 3600 IN RRSIG A RSASHA1 3 3600 20070926134150 20070829134150 30899 example.net. x+tQMC9FhzT7Fcy1pM5NrOC7E8nLd7THPI3C6ie4EwL8PrxllqlR3q/DKB0d/m0qCOPcgN6HFOYURV1s4uAcsw== ;{id = 30899}
+ENTRY_END
+
+; response to DNSKEY priming query
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.net. IN DNSKEY
+SECTION ANSWER
+example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}
+example.net. 3600 IN RRSIG DNSKEY RSASHA1 2 3600 20070926134150 20070829134150 30899 example.net. hiFzlQ8VoYgCuvIsfVuxC3mfJDqsTh0yc6abs5xMx5uEcIjb0dndFQx7INOM+imlzveEN73Hqp4OLFpFhsWLlw== ;{id = 30899}
+SECTION AUTHORITY
+example.net. IN NS ns.example.net.
+example.net. 3600 IN RRSIG NS RSASHA1 2 3600 20070926134150 20070829134150 30899 example.net. E8JX0l4B+cSR5bkHQwOJy1pBmlLMTYCJ8EwfNMU/eCv0YhKwo26rHhn52FGisgv+Nwp7/NbhHqQ+kJgoZC94XA== ;{id = 30899}
+SECTION ADDITIONAL
+ns.example.net. IN A 1.2.3.5
+ns.example.net. 3600 IN RRSIG A RSASHA1 3 3600 20070926134150 20070829134150 30899 example.net. x+tQMC9FhzT7Fcy1pM5NrOC7E8nLd7THPI3C6ie4EwL8PrxllqlR3q/DKB0d/m0qCOPcgN6HFOYURV1s4uAcsw== ;{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.net. IN A
+SECTION ANSWER
+www.example.net. IN A 11.12.13.14
+www.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. CPxF5hK9Kg5eT7W6LgZwr0ePYEm9HMcSY4vvqCS6gDWB4X9jvXLCfBkCLhsNybPBpGWlsLi5wM6MTdJXuPpsRA== ;{id = 30899}
+SECTION AUTHORITY
+SECTION ADDITIONAL
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+foo.example.net. IN A
+SECTION ANSWER
+foo.example.net. IN A 11.12.13.15
+foo.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. X6T6SE9UzxAD/4zKpwGOxEDyE4g7lfYYw3lvw533uwRN8mWTcBvSva0/jjyhrogJcuLO32jPHK6zGb93w2xnuA==
+SECTION AUTHORITY
+SECTION ADDITIONAL
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+foo2.example.net. IN A
+SECTION ANSWER
+foo2.example.net. IN A 11.12.13.16
+foo2.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. BZm+GljD8m9N+pNJN8D+LlSyHqM+InNUe0+heKILR9be+Goqv6SEb7LKtX6+kj3239Y5by7u+/Cuk8kkWistEQ==
+SECTION AUTHORITY
+SECTION ADDITIONAL
+ENTRY_END
+RANGE_END
+
+STEP 1 TIME_PASSES ELAPSE 10
+; Get DNAME in cache and then pick it up again from cache.
+STEP 10 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+foo.test-dname.example.com. IN A
+ENTRY_END
+
+STEP 20 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA AD DO NOERROR
+SECTION QUESTION
+foo.test-dname.example.com. IN A
+SECTION ANSWER
+test-dname.example.com. 3600 IN DNAME example.net.
+test-dname.example.com. 3600 IN RRSIG DNAME 3 3 3600 20070926135752 20070829135752 2854 example.com. ACp31Evt1c6tKzmTh/smAuGFydZ1OO26Qkej/BW4Bw5RFBQiKaY22Z0=
+foo.test-dname.example.com. 3600 IN CNAME foo.example.net.
+foo.example.net. IN A 11.12.13.15
+foo.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. X6T6SE9UzxAD/4zKpwGOxEDyE4g7lfYYw3lvw533uwRN8mWTcBvSva0/jjyhrogJcuLO32jPHK6zGb93w2xnuA==
+ENTRY_END
+
+STEP 30 TIME_PASSES ELAPSE 10
+
+; Use DNAME from cache
+STEP 40 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+foo2.test-dname.example.com. IN A
+ENTRY_END
+
+; Test the TTL on the synthesized CNAME for the DNAME record from cache.
+STEP 50 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA AD DO NOERROR
+SECTION QUESTION
+foo2.test-dname.example.com. IN A
+SECTION ANSWER
+test-dname.example.com. 3590 IN DNAME example.net.
+test-dname.example.com. 3590 IN RRSIG DNAME 3 3 3600 20070926135752 20070829135752 2854 example.com. ACp31Evt1c6tKzmTh/smAuGFydZ1OO26Qkej/BW4Bw5RFBQiKaY22Z0=
+foo2.test-dname.example.com. 3590 IN CNAME foo2.example.net.
+foo2.example.net. 3600 IN A 11.12.13.16
+foo2.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. BZm+GljD8m9N+pNJN8D+LlSyHqM+InNUe0+heKILR9be+Goqv6SEb7LKtX6+kj3239Y5by7u+/Cuk8kkWistEQ==
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/iter_dname_yx.rpl b/testdata/iter_dname_yx.rpl
index 18b9725cc66f..00d77de047cc 100644
--- a/testdata/iter_dname_yx.rpl
+++ b/testdata/iter_dname_yx.rpl
@@ -2,6 +2,8 @@
server:
harden-referral-path: no
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
+ minimal-responses: no
stub-zone:
name: "."
@@ -321,680 +323,6 @@ ENTRY_END
RANGE_END
; end of a.gtld-servers.net.
-; RFC 6672 section 2.2. The DNAME Substitution table tests
-;# QNAME owner DNAME target result
-;-- ---------------- -------------- -------------- -----------------
-;1 com. example.com. example.net. <no match>
-;2 example.com. example.com. example.net. [0]
-;3 a.example.com. example.com. example.net. a.example.net.
-;4 a.b.example.com. example.com. example.net. a.b.example.net.
-;5 ab.example.com. b.example.com. example.net. <no match>
-;6 foo.example.com. example.com. example.net. foo.example.net.
-;7 a.x.example.com. x.example.com. example.net. a.example.net.
-;8 a.example.com. example.com. y.example.net. a.y.example.net.
-;9 cyc.example.com. example.com. example.com. cyc.example.com.
-;10 cyc.example.com. example.com. c.example.com. cyc.c.example.com.
-;11 shortloop.x.x. x. . shortloop.x.
-;12 shortloop.x. x. . shortloop.
-;
-; [0] The result depends on the QTYPE. If the QTYPE = DNAME, then
-; the result is "example.com.", else "<no match>".
-;
-; Table 1. DNAME Substitution Examples
-
-; ; line no. 1 is mostly for authoritative server
-; ; line no. 2 QTYPE != DNAME
-; STEP 220201 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; example.com. IN NS
-; ENTRY_END
-;
-; STEP 220202 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode answer
-; REPLY QR RD RA DO
-; SECTION QUESTION
-; example.com. IN NS
-; SECTION ANSWER
-; example.com. IN NS ns1.example.com.
-; ENTRY_END
-;
-; ; line no. 2 QTYPE == DNAME
-; STEP 220203 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; example.com. IN DNAME
-; ENTRY_END
-;
-; STEP 220204 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode question answer
-; REPLY QR RD RA DO
-; SECTION QUESTION
-; example.com. IN DNAME
-; SECTION ANSWER
-; example.com. IN DNAME example.net.
-; ENTRY_END
-;
-;
-; ;# QNAME owner DNAME target result
-; ;-- ---------------- -------------- -------------- -----------------
-; ;3 a.example.com. example.com. example.net. a.example.net.
-;
-; STEP 220301 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; a.example.com. IN A
-; ENTRY_END
-;
-; STEP 220302 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode question answer
-; SECTION QUESTION
-; a.example.com. IN A
-; SECTION ANSWER
-; example.com. IN DNAME example.net.
-; a.example.com. IN CNAME a.example.net.
-; a.example.net. IN A 10.0.0.97
-; ENTRY_END
-;
-; ;# QNAME owner DNAME target result
-; ;-- ---------------- -------------- -------------- -----------------
-; ;4 a.b.example.com. example.com. example.net. a.b.example.net.
-;
-; STEP 220401 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; a.b.example.com. IN A
-; ENTRY_END
-;
-; STEP 220402 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode question answer
-; SECTION QUESTION
-; a.b.example.com. IN A
-; SECTION ANSWER
-; example.com. IN DNAME example.net.
-; a.b.example.com. IN CNAME a.b.example.net.
-; a.b.example.net. IN A 10.0.97.98
-; ENTRY_END
-;
-; ;# QNAME owner DNAME target result
-; ;-- ---------------- -------------- -------------- -----------------
-; ;5 ab.example.com. b.example.com. example.net. <no match>
-; ;6 foo.example.com. example.com. example.net. foo.example.net.
-;
-; ; line no. 5 is mostly for authoritative server
-; ; line no. 6 is basically the same as line no. 3
-;
-; ; ns1.example.com.
-; RANGE_BEGIN 220000 220699
-; ADDRESS 168.192.2.2
-; 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 ns1.example.com.
-; SECTION ADDITIONAL
-; ns1.example.com. IN A 168.192.2.2
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.com. IN A
-; SECTION ANSWER
-; ns1.example.com. IN A 168.192.2.2
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.com. IN AAAA
-; SECTION ANSWER
-; ENTRY_END
-;
-; ; line 2 DNAME
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; example.com. IN DNAME
-; SECTION ANSWER
-; example.com. IN DNAME example.net.
-; ENTRY_END
-;
-; ; line 3
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; a.example.com. IN A
-; SECTION ANSWER
-; example.com. IN DNAME example.net.
-; a.example.com. IN CNAME a.example.net.
-; ENTRY_END
-;
-; ; line 4
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; a.b.example.com. IN A
-; SECTION ANSWER
-; example.com. IN DNAME example.net.
-; a.b.example.com. IN CNAME a.b.example.net.
-; ENTRY_END
-; RANGE_END
-; ; end of ns1.example.com.
-;
-;
-; ;# QNAME owner DNAME target result
-; ;-- ---------------- -------------- -------------- -----------------
-; ;7 a.x.example.com. x.example.com. example.net. a.example.net.
-;
-; STEP 220701 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; a.x.example.com. IN A
-; ENTRY_END
-;
-; STEP 220702 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode question answer
-; SECTION QUESTION
-; a.x.example.com. IN A
-; SECTION ANSWER
-; x.example.com. IN DNAME example.net.
-; a.x.example.com. IN CNAME a.example.net.
-; a.example.net. IN A 10.0.0.97
-; ENTRY_END
-;
-; ; ns1.example.com.
-; RANGE_BEGIN 220700 220799
-; ADDRESS 168.192.2.2
-; 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 ns1.example.com.
-; SECTION ADDITIONAL
-; ns1.example.com. IN A 168.192.2.2
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.com. IN A
-; SECTION ANSWER
-; ns1.example.com. IN A 168.192.2.2
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.com. IN AAAA
-; SECTION ANSWER
-; ENTRY_END
-;
-; ; line 7 DNAME
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; example.com. IN DNAME
-; SECTION ANSWER
-; x.example.com. IN DNAME example.net.
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; a.x.example.com. IN A
-; SECTION ANSWER
-; x.example.com. IN DNAME example.net.
-; a.x.example.com. IN CNAME a.example.net.
-; ENTRY_END
-; RANGE_END
-; ; end of ns1.example.com.
-;
-; ;# QNAME owner DNAME target result
-; ;-- ---------------- -------------- -------------- -----------------
-; ;8 a.example.com. example.com. y.example.net. a.y.example.net.
-; ;
-; ; a.example.com. was renamed to a2.example.com. to avoid cache clashes
-; ; on the synthetized CNAME (caching CNAMEs is allowed by RFC 6672 section 3.4)
-;
-; STEP 220801 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; a2.example.com. IN A
-; ENTRY_END
-;
-; STEP 220802 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode question answer
-; SECTION QUESTION
-; a2.example.com. IN A
-; SECTION ANSWER
-; example.com. IN DNAME y.example.net.
-; a2.example.com. IN CNAME a2.y.example.net.
-; a2.y.example.net. IN A 10.97.50.121
-; ENTRY_END
-;
-; ; ns1.example.com.
-; RANGE_BEGIN 220800 220899
-; ADDRESS 168.192.2.2
-; 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 ns1.example.com.
-; SECTION ADDITIONAL
-; ns1.example.com. IN A 168.192.2.2
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.com. IN A
-; SECTION ANSWER
-; ns1.example.com. IN A 168.192.2.2
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.com. IN AAAA
-; SECTION ANSWER
-; ENTRY_END
-;
-; ; line 8 DNAME
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; example.com. IN DNAME
-; SECTION ANSWER
-; example.com. IN DNAME y.example.net.
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; a2.example.com. IN A
-; SECTION ANSWER
-; example.com. IN DNAME y.example.net.
-; a2.example.com. IN CNAME a2.y.example.net.
-; ENTRY_END
-; RANGE_END
-; ; end of ns1.example.com.
-;
-;
-; ;# QNAME owner DNAME target result
-; ;-- ---------------- -------------- -------------- -----------------
-; ;9 cyc.example.com. example.com. example.com. cyc.example.com.
-;
-; STEP 220901 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; cyc.example.com. IN A
-; ENTRY_END
-;
-; ; Expected result is defined by RFC 1034 section 3.6.2:
-; ; CNAME chains should be followed and CNAME loops signalled as an error
-; STEP 220902 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode question answer
-; REPLY SERVFAIL
-; SECTION QUESTION
-; cyc.example.com. IN A
-; ENTRY_END
-;
-; ; ns1.example.com.
-; RANGE_BEGIN 220900 220999
-; ADDRESS 168.192.2.2
-; 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 ns1.example.com.
-; SECTION ADDITIONAL
-; ns1.example.com. IN A 168.192.2.2
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.com. IN A
-; SECTION ANSWER
-; ns1.example.com. IN A 168.192.2.2
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.com. IN AAAA
-; SECTION ANSWER
-; ENTRY_END
-;
-; ; line 9 DNAME
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; example.com. IN DNAME
-; SECTION ANSWER
-; example.com. IN DNAME example.com.
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; cyc.example.com. IN A
-; SECTION ANSWER
-; example.com. IN DNAME example.com.
-; cyc.example.com. IN CNAME cyc.example.com.
-; ENTRY_END
-; RANGE_END
-; ; end of ns1.example.com.
-;
-; ;# QNAME owner DNAME target result
-; ;-- ---------------- -------------- -------------- -----------------
-; ;10 cyc.example.com. example.com. c.example.com. cyc.c.example.com.
-; ;
-; ; cyc.example.com. was renamed to cyc2.example.com. to avoid cache clashes
-; ; on the synthetized CNAME (caching CNAMEs is allowed by RFC 6672 section 3.4)
-; ;
-; ; target c.example.com. was renamed to cyc2.example.net.
-; ; to limit number of pre-canned answers required for the test
-;
-; STEP 221001 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; cyc2.example.com. IN A
-; ENTRY_END
-;
-; ; Expected result is defined by RFC 1034 section 3.6.2:
-; ; CNAME chains should be followed and CNAME loops signalled as an error
-; STEP 221002 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode question answer
-; REPLY SERVFAIL
-; SECTION QUESTION
-; cyc2.example.com. IN A
-; ENTRY_END
-;
-; ; ns1.example.com.
-; RANGE_BEGIN 221000 221099
-; ADDRESS 168.192.2.2
-; 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 ns1.example.com.
-; SECTION ADDITIONAL
-; ns1.example.com. IN A 168.192.2.2
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.com. IN A
-; SECTION ANSWER
-; ns1.example.com. IN A 168.192.2.2
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.com. IN AAAA
-; SECTION ANSWER
-; ENTRY_END
-;
-; ; line 10 DNAME
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; example.com. IN DNAME
-; SECTION ANSWER
-; example.com. IN DNAME cyc2.example.net.
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; cyc2.example.com. IN A
-; SECTION ANSWER
-; example.com. IN DNAME cyc2.example.net.
-; cyc2.example.com. IN CNAME cyc2.cyc2.example.net.
-; ENTRY_END
-; RANGE_END
-; ; end of ns1.example.com.
-;
-; ;# QNAME owner DNAME target result
-; ;-- ---------------- -------------- -------------- -----------------
-; ;11 shortloop.x.x. x. . shortloop.x.
-;
-; STEP 221101 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; shortloop.x.x. TXT
-; ENTRY_END
-;
-; STEP 221102 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode question answer
-; SECTION QUESTION
-; shortloop.x.x. IN TXT
-; SECTION ANSWER
-; x. IN DNAME .
-; ; unbound hack
-; x. IN DNAME .
-; shortloop.x.x. IN CNAME shortloop.x.
-; shortloop.x. IN CNAME shortloop.
-; shortloop. IN TXT "shortloop end"
-; ENTRY_END
-;
-; ;# QNAME owner DNAME target result
-; ;-- ---------------- -------------- -------------- -----------------
-; ;12 shortloop.x. x. . shortloop.
-;
-; ; expire potentically cached CNAMEs for shortloop.x. from cache
-; STEP 221200 TIME_PASSES ELAPSE 10000
-;
-; STEP 221201 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; shortloop.x. TXT
-; ENTRY_END
-;
-; STEP 221202 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode question answer
-; SECTION QUESTION
-; shortloop.x. IN TXT
-; SECTION ANSWER
-; x. IN DNAME .
-; shortloop.x. IN CNAME shortloop.
-; shortloop. IN TXT "shortloop end"
-; ENTRY_END
-;
-;
-; ; ns1.example.net. (data shared by whole 22xxxx range)
-; RANGE_BEGIN 220000 229999
-; ADDRESS 168.192.3.3
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; example.net. IN NS
-; SECTION ANSWER
-; example.net. IN NS ns1.example.net.
-; SECTION ADDITIONAL
-; example.net. IN A 168.192.3.3
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.net. IN A
-; SECTION ANSWER
-; ns1.example.net. IN A 168.192.3.3
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; ns1.example.net. IN AAAA
-; SECTION ANSWER
-; ENTRY_END
-;
-; ; line 3
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; a.example.net. IN A
-; SECTION ANSWER
-; a.example.net. IN A 10.0.0.97
-; ENTRY_END
-;
-; ; line 4
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; a.b.example.net. IN A
-; SECTION ANSWER
-; a.b.example.net. IN A 10.0.97.98
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; a2.y.example.net. IN A
-; SECTION ANSWER
-; a2.y.example.net. IN A 10.97.50.121
-; ENTRY_END
-;
-; ; line 10
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; cyc2.example.net. IN DNAME
-; SECTION ANSWER
-; cyc2.example.net. IN DNAME example.com.
-; ENTRY_END
-;
-; ENTRY_BEGIN
-; MATCH opcode qtype qname
-; ADJUST copy_id
-; REPLY QR AA NOERROR
-; SECTION QUESTION
-; cyc2.cyc2.example.net. IN A
-; SECTION ANSWER
-; cyc2.example.net. IN DNAME example.com.
-; cyc2.cyc2.example.com. IN CNAME cyc2.example.com.
-; ENTRY_END
-; RANGE_END
-; ; end of ns1.example.net.
-;
-;
-; ; RFC 6672 section 2.2: YXDOMAIN answers for too long results for substitution
-; ; RFC 6672 section 2.3: DNAME can be at zone apex: zone apex = long.
-; STEP 229001 QUERY
-; ENTRY_BEGIN
-; REPLY RD DO
-; SECTION QUESTION
-; x.long. IN A
-; ENTRY_END
-;
-; ; query returning maximal permissible length - should work
-; STEP 229002 CHECK_ANSWER
-; ENTRY_BEGIN
-; MATCH rcode question answer
-; SECTION QUESTION
-; x.long. IN A
-; SECTION ANSWER
-; long. 3600 IN DNAME 63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
-; x.long. 3600 IN CNAME x.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
-; x.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. 3600 IN A 192.0.2.1
-; ENTRY_END
-
; result of substitution has too long name
; YXDOMAIN should be propagated to the client
; Unbound SEVFAILs: https://www.ietf.org/mail-archive/web/dnsext/current/msg11282.html
@@ -1015,27 +343,4 @@ SECTION ANSWER
long. 3600 IN DNAME 63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
ENTRY_END
- ; ; YXDOMAIN should work even if the cache is empty
- ; STEP 229005 TIME_PASSES ELAPSE 4000
- ;
- ; STEP 229006 QUERY
- ; ENTRY_BEGIN
- ; REPLY RD DO
- ; SECTION QUESTION
- ; too.long. IN A
- ; ENTRY_END
- ;
- ; STEP 229007 CHECK_ANSWER
- ; ENTRY_BEGIN
- ; MATCH rcode question answer
- ; REPLY QR YXDOMAIN
- ; SECTION QUESTION
- ; x.long. IN A
- ; SECTION ANSWER
- ; long. 3600 IN DNAME 63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.63o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.60o-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
- ; ENTRY_END
-
-
-
-
SCENARIO_END
diff --git a/testdata/iter_ghost_sub.rpl b/testdata/iter_ghost_sub.rpl
index ccd6b29842e4..ccb736755d70 100644
--- a/testdata/iter_ghost_sub.rpl
+++ b/testdata/iter_ghost_sub.rpl
@@ -19,7 +19,7 @@ MATCH opcode qtype qname
ADJUST copy_id
REPLY QR NOERROR
SECTION QUESTION
-. 86400 IN NS
+. IN NS
SECTION ANSWER
. 86400 IN NS K.ROOT-SERVERS.NET.
SECTION ADDITIONAL
diff --git a/testdata/iter_scrub_dname_insec.rpl b/testdata/iter_scrub_dname_insec.rpl
index 921abe628f7f..826d89e29e6d 100644
--- a/testdata/iter_scrub_dname_insec.rpl
+++ b/testdata/iter_scrub_dname_insec.rpl
@@ -166,7 +166,7 @@ ENTRY_END
; answer to first query (simply puts DNAME in cache)
STEP 120 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA
SECTION QUESTION
x.y.example.com. IN A
@@ -235,7 +235,7 @@ ENTRY_END
STEP 250 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA
SECTION QUESTION
other.y.example.com. IN A
diff --git a/testdata/local_cname.rpl b/testdata/local_cname.rpl
index b8c4a56013ed..d68a2c40e3c0 100644
--- a/testdata/local_cname.rpl
+++ b/testdata/local_cname.rpl
@@ -52,6 +52,10 @@ server:
local-zone: example.net redirect
local-data: "example.net. IN CNAME cname.example.org."
+ # Test setup for synthesized CNAMEs
+ local-zone: synth.cname redirect
+ local-data: "synth.cname. IN CNAME *.from.resolution."
+
### template zone and tag intended to be used for tests with CNAME and
### other data.
##local-zone: ambiguous.example.com redirect
@@ -138,6 +142,18 @@ MATCH opcode qtype qname
ADJUST copy_id
REPLY QR NOERROR
SECTION QUESTION
+www.synth.cname.from.resolution. IN A
+SECTION ANSWER
+www.synth.cname.from.resolution. IN A 192.0.2.3
+SECTION AUTHORITY
+SECTION ADDITIONAL
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
example.org. IN AAAA
SECTION ANSWER
SECTION AUTHORITY
@@ -396,6 +412,26 @@ SECTION AUTHORITY
SECTION ADDITIONAL
ENTRY_END
+; Check CNAME synthesis
+STEP 201 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.synth.cname. IN A
+ENTRY_END
+
+STEP 202 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA AA NOERROR
+SECTION QUESTION
+www.synth.cname. IN A
+SECTION ANSWER
+www.synth.cname. IN CNAME www.synth.cname.from.resolution.
+www.synth.cname.from.resolution. IN A 192.0.2.3
+SECTION AUTHORITY
+SECTION ADDITIONAL
+ENTRY_END
; Relatively minor cases follow
diff --git a/testdata/local_nodefault.tdir/local_nodefault.test b/testdata/local_nodefault.tdir/local_nodefault.test
index 01e0ac042717..9bca122610f5 100644
--- a/testdata/local_nodefault.tdir/local_nodefault.test
+++ b/testdata/local_nodefault.tdir/local_nodefault.test
@@ -9,7 +9,7 @@ PRE="../.."
# this one should have NXDOMAIN builtin
#
echo "> dig 1.0.31.172.in-addr.arpa."
-dig @localhost -p $UNBOUND_PORT 1.0.31.172.in-addr.arpa. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT 1.0.31.172.in-addr.arpa. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -23,7 +23,7 @@ fi
# this one should give our own data as the reply
echo "> dig 1.0.30.172.in-addr.arpa."
-dig @localhost -p $UNBOUND_PORT 1.0.30.172.in-addr.arpa. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT 1.0.30.172.in-addr.arpa. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -38,7 +38,7 @@ fi
# this one should give our own data as the reply
# but different trailing dot in unbound.conf file
echo "> dig 1.0.29.172.in-addr.arpa."
-dig @localhost -p $UNBOUND_PORT 1.0.29.172.in-addr.arpa. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT 1.0.29.172.in-addr.arpa. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/local_norec.tdir/local_norec.test b/testdata/local_norec.tdir/local_norec.test
index b32f0aed1a8c..ce01d6b7c85a 100644
--- a/testdata/local_norec.tdir/local_norec.test
+++ b/testdata/local_norec.tdir/local_norec.test
@@ -11,7 +11,7 @@ PRE="../.."
# foo.example.com is available through local-data (and recursion...).
#
echo "> dig www.example.com. +RD"
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -24,7 +24,7 @@ else
fi
echo "> dig www.example.com. +norec"
-dig @localhost +norec -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 +norec -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -37,7 +37,7 @@ else
fi
echo "> dig foo.example.com. +RD"
-dig @localhost -p $UNBOUND_PORT foo.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT foo.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -50,7 +50,7 @@ else
fi
echo "> dig foo.example.com. +norec"
-dig @localhost +norec -p $UNBOUND_PORT foo.example.com. | tee outfile
+dig @127.0.0.1 +norec -p $UNBOUND_PORT foo.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/local_nosnoop.tdir/local_nosnoop.test b/testdata/local_nosnoop.tdir/local_nosnoop.test
index 1e762d5dc921..70a9de5f5579 100644
--- a/testdata/local_nosnoop.tdir/local_nosnoop.test
+++ b/testdata/local_nosnoop.tdir/local_nosnoop.test
@@ -14,7 +14,7 @@ PRE="../.."
# dig +norec for www does not work any more.
#
echo "> dig www.example.com. +RD"
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -27,7 +27,7 @@ else
fi
echo "> dig www.example.com. +norec"
-dig @localhost +norec -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 +norec -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -47,7 +47,7 @@ else
fi
echo "> dig foo.example.com. +RD"
-dig @localhost -p $UNBOUND_PORT foo.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT foo.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -60,7 +60,7 @@ else
fi
echo "> dig foo.example.com. +norec"
-dig @localhost +norec -p $UNBOUND_PORT foo.example.com. | tee outfile
+dig @127.0.0.1 +norec -p $UNBOUND_PORT foo.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/padding.tdir/padding.post b/testdata/padding.tdir/padding.post
index 9121ccf257eb..eaeefb8c4fe1 100644
--- a/testdata/padding.tdir/padding.post
+++ b/testdata/padding.tdir/padding.post
@@ -9,13 +9,13 @@
PRE="../.."
kill_pid $DNSTAP_SOCKET_PID
kill_pid $FWD_PID
-kill_pid `cat unbound2.pid`
+kill_from_pidfile "unbound2.pid"
if test -f unbound2.log; then
echo ">>> upstream log"
cat unbound2.log
fi
#kill_pid $UNBOUND_PID
-kill_pid `cat unbound.pid`
+kill_from_pidfile "unbound.pid"
if test -f unbound.log; then
echo ">>> unbound log"
cat unbound.log
diff --git a/testdata/padding.tdir/padding.test b/testdata/padding.tdir/padding.test
index 6161a49ae25d..2a0860851fa0 100644
--- a/testdata/padding.tdir/padding.test
+++ b/testdata/padding.tdir/padding.test
@@ -25,17 +25,10 @@ else
exit 1
fi
-echo "> wait for log to happen on timer"
-sleep 3
+echo "> wait for log to happen"
+wait_logfile tap.log "www.example.com" 45
echo "> check tap.log for dnstap info"
# see if it logged the information in tap.log
-# wait for a moment for filesystem to catch up.
-if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "www.example.com" tap.log >/dev/null; then :; else sleep 10; fi
if grep "www.example.com" tap.log; then echo "yes it is in tap.log";
else
echo "information not in tap.log"
@@ -67,12 +60,7 @@ fi
echo "> check tap.log for dnstap info"
# see if it logged the information in tap.log
# wait for a moment for filesystem to catch up.
-if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 10; fi
+wait_logfile tap.log "txt.example.com" 45
if grep "txt.example.com" tap.log; then echo "yes it is in tap.log";
else
echo "information not in tap.log"
@@ -131,12 +119,7 @@ dig @127.0.0.1 -p $UNBOUND_PORT fin.example.com. TXT | tee outfile
echo "> check tap.log for dnstap info"
# see if it logged the information in tap.log
# wait for a moment for filesystem to catch up.
-if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi
-if grep "fini" tap.log >/dev/null; then :; else sleep 10; fi
+wait_logfile tap.log "fini" 45
if grep "fini" tap.log; then echo "yes it is in tap.log";
else
echo "information not in tap.log"
diff --git a/testdata/pymod.tdir/pymod.test b/testdata/pymod.tdir/pymod.test
index 5ea87282b6f7..8d8ffcc3a56f 100644
--- a/testdata/pymod.tdir/pymod.test
+++ b/testdata/pymod.tdir/pymod.test
@@ -22,7 +22,7 @@ fi
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
@@ -35,7 +35,7 @@ else
fi
echo "> dig www2.example.com."
-dig @localhost -p $UNBOUND_PORT www2.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www2.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/pymod_thread.tdir/pymod_thread.test b/testdata/pymod_thread.tdir/pymod_thread.test
index 7c55d19ab49e..2b0464ae8c47 100644
--- a/testdata/pymod_thread.tdir/pymod_thread.test
+++ b/testdata/pymod_thread.tdir/pymod_thread.test
@@ -23,16 +23,16 @@ fi
# do the test
# generate some load.
echo "> dig www[1-10].example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile1 &
-dig @localhost -p $UNBOUND_PORT www2.example.com. | tee outfile3 &
-dig @localhost -p $UNBOUND_PORT www3.example.com. | tee outfile2 &
-dig @localhost -p $UNBOUND_PORT www4.example.com. | tee outfile4 &
-dig @localhost -p $UNBOUND_PORT www5.example.com. | tee outfile5 &
-dig @localhost -p $UNBOUND_PORT www6.example.com. | tee outfile6 &
-dig @localhost -p $UNBOUND_PORT www7.example.com. | tee outfile7 &
-dig @localhost -p $UNBOUND_PORT www8.example.com. | tee outfile8 &
-dig @localhost -p $UNBOUND_PORT www9.example.com. | tee outfile9 &
-dig @localhost -p $UNBOUND_PORT www10.example.com. | tee outfile10 &
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile1 &
+dig @127.0.0.1 -p $UNBOUND_PORT www2.example.com. | tee outfile3 &
+dig @127.0.0.1 -p $UNBOUND_PORT www3.example.com. | tee outfile2 &
+dig @127.0.0.1 -p $UNBOUND_PORT www4.example.com. | tee outfile4 &
+dig @127.0.0.1 -p $UNBOUND_PORT www5.example.com. | tee outfile5 &
+dig @127.0.0.1 -p $UNBOUND_PORT www6.example.com. | tee outfile6 &
+dig @127.0.0.1 -p $UNBOUND_PORT www7.example.com. | tee outfile7 &
+dig @127.0.0.1 -p $UNBOUND_PORT www8.example.com. | tee outfile8 &
+dig @127.0.0.1 -p $UNBOUND_PORT www9.example.com. | tee outfile9 &
+dig @127.0.0.1 -p $UNBOUND_PORT www10.example.com. | tee outfile10 &
wait # wait for all jobs to complete.
diff --git a/testdata/root_zonemd.tdir/root_zonemd.test b/testdata/root_zonemd.tdir/root_zonemd.test
index da64ab6e9c2d..2745b5009e8f 100644
--- a/testdata/root_zonemd.tdir/root_zonemd.test
+++ b/testdata/root_zonemd.tdir/root_zonemd.test
@@ -6,8 +6,8 @@
PRE="../.."
# do the test
-echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT . SOA | tee outfile
+echo "> dig . SOA"
+dig @127.0.0.1 -p $UNBOUND_PORT . SOA | tee outfile
echo "> check answer"
if grep root-servers outfile | grep "nstld.verisign-grs.com"; then
echo "OK"
@@ -26,7 +26,19 @@ else
fi
# This is the output when an unsupported algorithm is used.
-if grep "auth zone . ZONEMD unsupported algorithm" unbound.log; then
+if grep "auth zone . zonemd DNSSEC verification of SOA and ZONEMD RRsets secure" unbound.log; then
+ echo "OK"
+else
+ echo "ZONEMD verification not OK"
+ exit 1
+fi
+if grep "auth-zone . ZONEMD hash is correct" unbound.log; then
+ echo "OK"
+else
+ echo "ZONEMD verification not OK"
+ exit 1
+fi
+if grep "auth zone . ZONEMD verification successful" unbound.log; then
echo "OK"
else
echo "ZONEMD verification not OK"
@@ -40,12 +52,12 @@ if test $? -ne 0; then
exit 1
fi
# The output of the reload can be checked.
-#echo "> check unbound-control output"
-#if grep "example.com: ZONEMD verification successful" outfile; then
- #echo "OK"
-#else
- #echo "Not OK"
- #exit 1
-#fi
+echo "> check unbound-control output"
+if grep ".: ZONEMD verification successful" outfile; then
+ echo "OK"
+else
+ echo "Not OK"
+ exit 1
+fi
exit 0
diff --git a/testdata/rrset_use_cached.rpl b/testdata/rrset_use_cached.rpl
new file mode 100644
index 000000000000..8420ae02afe6
--- /dev/null
+++ b/testdata/rrset_use_cached.rpl
@@ -0,0 +1,151 @@
+server:
+ minimal-responses: no
+ serve-expired: yes
+ # The value does not matter, we will not simulate delay.
+ # We do not want only serve-expired because fetches from that
+ # apply a generous PREFETCH_LEEWAY.
+ serve-expired-client-timeout: 1000
+ # So that we can only have to give one SERVFAIL answer.
+ outbound-msg-retry: 0
+
+forward-zone: name: "." forward-addr: 216.0.0.1
+CONFIG_END
+
+SCENARIO_BEGIN RRset from cache updates the message TTL.
+
+STEP 1 QUERY
+ENTRY_BEGIN
+ REPLY RD
+ SECTION QUESTION
+ www.example.com. IN A
+ENTRY_END
+; the query is sent to the forwarder - no cache yet.
+STEP 2 CHECK_OUT_QUERY
+ENTRY_BEGIN
+ MATCH qname qtype opcode
+ SECTION QUESTION
+ www.example.com. IN A
+ENTRY_END
+STEP 3 REPLY
+ENTRY_BEGIN
+ MATCH opcode qtype qname
+ ADJUST copy_id
+ ; authoritative answer
+ REPLY QR AA RD RA NOERROR
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION ANSWER
+ www.example.com. 5 IN A 10.20.30.40
+ SECTION AUTHORITY
+ example.com. 10 IN NS ns.example.com.
+ SECTION ADDITIONAL
+ ns.example.com. 10 IN A 10.20.30.50
+ENTRY_END
+STEP 4 CHECK_ANSWER
+ENTRY_BEGIN
+ MATCH all ttl
+ REPLY QR RD RA
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION ANSWER
+ www.example.com. 5 IN A 10.20.30.40
+ SECTION AUTHORITY
+ example.com. 10 IN NS ns.example.com.
+ SECTION ADDITIONAL
+ ns.example.com. 10 IN A 10.20.30.50
+ENTRY_END
+
+; Wait for the A RRSET to expire.
+STEP 5 TIME_PASSES ELAPSE 6
+
+STEP 6 QUERY
+ENTRY_BEGIN
+ REPLY RD
+ SECTION QUESTION
+ www.example.com. IN A
+ENTRY_END
+; expired answer will not be served due to serve-expired-client-timeout.
+STEP 7 CHECK_OUT_QUERY
+ENTRY_BEGIN
+ MATCH qname qtype opcode
+ SECTION QUESTION
+ www.example.com. IN A
+ENTRY_END
+STEP 8 REPLY
+ENTRY_BEGIN
+ MATCH opcode qtype qname
+ ADJUST copy_id
+ ; authoritative answer
+ REPLY QR AA RD RA NOERROR
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION ANSWER
+ www.example.com. 5 IN A 10.20.30.40
+ SECTION AUTHORITY
+ example.com. 10 IN NS ns.example.com.
+ SECTION ADDITIONAL
+ ns.example.com. 10 IN A 10.20.30.50
+ENTRY_END
+; The cached NS related RRSETs will not be overwritten by the fresh answer.
+; The message should have a TTL of 4 instead of 5 from above.
+STEP 9 CHECK_ANSWER
+ENTRY_BEGIN
+ MATCH all ttl
+ REPLY QR RD RA
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION ANSWER
+ www.example.com. 5 IN A 10.20.30.40
+ SECTION AUTHORITY
+ example.com. 4 IN NS ns.example.com.
+ SECTION ADDITIONAL
+ ns.example.com. 4 IN A 10.20.30.50
+ENTRY_END
+
+; Wait for the NS RRSETs to expire.
+STEP 10 TIME_PASSES ELAPSE 5
+
+STEP 11 QUERY
+ENTRY_BEGIN
+ REPLY RD
+ SECTION QUESTION
+ www.example.com. IN A
+ENTRY_END
+; The message should be expired, again no expired answer at this point due to
+; serve-expired-client-timeout.
+STEP 12 CHECK_OUT_QUERY
+ENTRY_BEGIN
+ MATCH qname qtype opcode
+ SECTION QUESTION
+ www.example.com. IN A
+ENTRY_END
+STEP 13 REPLY
+ENTRY_BEGIN
+ MATCH opcode qtype qname
+ ADJUST copy_id
+ REPLY QR RD RA SERVFAIL
+ SECTION QUESTION
+ www.example.com. IN A
+ENTRY_END
+; The SERVFAIL will trigger the serve-expired-client-timeout logic to try and
+; replace the SERVFAIL with a possible cached (expired) answer.
+; The A RRSET would be at 0TTL left (not expired) but the message should have
+; been updated to use a TTL of 4 so expired by now.
+; If the message TTL was not updated (bug), this message would be treated as
+; non-expired and the now expired NS related RRSETs would fail sanity checks
+; for non-expired messages. The result would be SERVFAIL here.
+STEP 14 CHECK_ANSWER
+ENTRY_BEGIN
+ MATCH all ttl
+ REPLY QR RD RA
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION ANSWER
+ www.example.com. 0 IN A 10.20.30.40
+ SECTION AUTHORITY
+ example.com. 30 IN NS ns.example.com.
+ SECTION ADDITIONAL
+ ns.example.com. 30 IN A 10.20.30.50
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/serve_expired_0ttl_nodata.rpl b/testdata/serve_expired_0ttl_nodata.rpl
index 45b51444bccd..7f1b5a565853 100644
--- a/testdata/serve_expired_0ttl_nodata.rpl
+++ b/testdata/serve_expired_0ttl_nodata.rpl
@@ -46,7 +46,7 @@ RANGE_BEGIN 30 100
ADJUST copy_id
REPLY QR NOERROR
SECTION QUESTION
- example.com. 10 IN NS
+ example.com. IN NS
SECTION ANSWER
example.com. 10 IN NS ns.example.com.
SECTION ADDITIONAL
diff --git a/testdata/serve_expired_0ttl_nxdomain.rpl b/testdata/serve_expired_0ttl_nxdomain.rpl
index 0fcde9f2ddb6..4adb4b839a69 100644
--- a/testdata/serve_expired_0ttl_nxdomain.rpl
+++ b/testdata/serve_expired_0ttl_nxdomain.rpl
@@ -46,7 +46,7 @@ RANGE_BEGIN 30 100
ADJUST copy_id
REPLY QR NOERROR
SECTION QUESTION
- example.com. 10 IN NS
+ example.com. IN NS
SECTION ANSWER
example.com. 10 IN NS ns.example.com.
SECTION ADDITIONAL
diff --git a/testdata/serve_expired_0ttl_servfail.rpl b/testdata/serve_expired_0ttl_servfail.rpl
index aad7aa8c984f..6833af17b827 100644
--- a/testdata/serve_expired_0ttl_servfail.rpl
+++ b/testdata/serve_expired_0ttl_servfail.rpl
@@ -44,7 +44,7 @@ RANGE_BEGIN 30 100
ADJUST copy_id
REPLY QR NOERROR
SECTION QUESTION
- example.com. 10 IN NS
+ example.com. IN NS
SECTION ANSWER
example.com. 10 IN NS ns.example.com.
SECTION ADDITIONAL
diff --git a/testdata/serve_expired_cached_servfail.rpl b/testdata/serve_expired_cached_servfail.rpl
index 286de708b9c5..f5f4c7030198 100644
--- a/testdata/serve_expired_cached_servfail.rpl
+++ b/testdata/serve_expired_cached_servfail.rpl
@@ -45,7 +45,7 @@ RANGE_BEGIN 30 100
ADJUST copy_id
REPLY QR NOERROR
SECTION QUESTION
- example.com. 10 IN NS
+ example.com. IN NS
SECTION ANSWER
example.com. 10 IN NS ns.example.com.
SECTION ADDITIONAL
diff --git a/testdata/serve_expired_cached_servfail_refresh.rpl b/testdata/serve_expired_cached_servfail_refresh.rpl
index 664de9aa8732..9b7c1fda16c1 100644
--- a/testdata/serve_expired_cached_servfail_refresh.rpl
+++ b/testdata/serve_expired_cached_servfail_refresh.rpl
@@ -49,7 +49,7 @@ RANGE_BEGIN 60 100
ADJUST copy_id
REPLY QR NOERROR
SECTION QUESTION
- example.com. 10 IN NS
+ example.com. IN NS
SECTION ANSWER
example.com. 10 IN NS ns.example.com.
SECTION ADDITIONAL
diff --git a/testdata/serve_expired_client_timeout_servfail.rpl b/testdata/serve_expired_client_timeout_servfail.rpl
index 1cae3fd822ff..51aa04370da8 100644
--- a/testdata/serve_expired_client_timeout_servfail.rpl
+++ b/testdata/serve_expired_client_timeout_servfail.rpl
@@ -32,7 +32,7 @@ RANGE_BEGIN 0 20
ADJUST copy_id
REPLY QR NOERROR
SECTION QUESTION
- example.com. 10 IN NS
+ example.com. IN NS
SECTION ANSWER
example.com. 10 IN NS ns.example.com.
SECTION ADDITIONAL
diff --git a/testdata/stat_timer.tdir/stat_timer.test b/testdata/stat_timer.tdir/stat_timer.test
index 8a84c3f41d17..1dfd8dc71d21 100644
--- a/testdata/stat_timer.tdir/stat_timer.test
+++ b/testdata/stat_timer.tdir/stat_timer.test
@@ -7,7 +7,7 @@
PRE="../.."
# test if unbound is up
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> check answer"
if grep "10.20.30.40" outfile; then
echo "OK"
diff --git a/testdata/stat_values.tdir/stat_values.test b/testdata/stat_values.tdir/stat_values.test
index 22d55f1f0d31..814ecd1168d3 100644
--- a/testdata/stat_values.tdir/stat_values.test
+++ b/testdata/stat_values.tdir/stat_values.test
@@ -272,7 +272,7 @@ if grep "192.0.2.1" outfile; then
else
end 1
fi
-sleep 1 # make sure the outgoing UDP (and the edns1xx0 retry) are accounted for.
+sleep 1 # make sure the outgoing UDP (and no edns1xx0 retry because not a smaller buffer size) are accounted for.
check_stats "\
total.num.queries=1
total.num.expired=1
@@ -284,7 +284,7 @@ num.query.flags.AD=1
num.query.flags.RD=1
num.query.opcode.QUERY=1
num.query.type.A=1
-num.query.udpout=2
+num.query.udpout=1
total.num.cachemiss=1
msg.cache.count=2
rrset.cache.count=2
diff --git a/testdata/stub_auth_tc.tdir/stub_auth_tc.test b/testdata/stub_auth_tc.tdir/stub_auth_tc.test
index 7b7440274a60..f50c2b8fc273 100644
--- a/testdata/stub_auth_tc.tdir/stub_auth_tc.test
+++ b/testdata/stub_auth_tc.tdir/stub_auth_tc.test
@@ -7,7 +7,7 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
echo "> cat logfiles"
cat fwd.log
cat unbound.log
diff --git a/testdata/subnet_scopezero_noedns.crpl b/testdata/subnet_scopezero_noedns.crpl
new file mode 100644
index 000000000000..25df0dd71cf2
--- /dev/null
+++ b/testdata/subnet_scopezero_noedns.crpl
@@ -0,0 +1,441 @@
+; scope of 0, if the query also had scope of 0, do not answer this
+; to everyone, but only for scope 0 queries. Otherwise can answer cached.
+
+server:
+ target-fetch-policy: "0 0 0 0 0"
+ send-client-subnet: 1.2.3.4
+ module-config: "subnetcache validator iterator"
+ verbosity: 4
+ qname-minimisation: no
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129
+
+stub-zone:
+ name: "example.com"
+ stub-addr: 1.2.3.4
+CONFIG_END
+
+SCENARIO_BEGIN Test subnet cache with scope zero response without EDNS.
+
+; the upstream server.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+
+ENTRY_BEGIN
+MATCH opcode qtype qname ednsdata
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ;; we expect to receive empty
+HEX_EDNSDATA_END
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+RANGE_END
+
+RANGE_BEGIN 0 11
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+;copy_ednsdata_assume_clientsubnet
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.40
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ; client is 127.0.0.1
+ 00 08 ; OPC
+ 00 07 ; option length
+ 00 01 ; Family
+ 18 11 ; source mask, scopemask
+ 7f 00 00 ; address
+HEX_EDNSDATA_END
+ENTRY_END
+RANGE_END
+
+RANGE_BEGIN 20 31
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+;copy_ednsdata_assume_clientsubnet
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.41
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ; client is 127.0.0.1
+ 00 08 ; OPC
+ 00 07 ; option length
+ 00 01 ; Family
+ 18 11 ; source mask, scopemask
+ 7f 01 00 ; address
+HEX_EDNSDATA_END
+ENTRY_END
+RANGE_END
+
+RANGE_BEGIN 40 51
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+;copy_ednsdata_assume_clientsubnet
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.42
+SECTION AUTHORITY
+SECTION ADDITIONAL
+;no EDNS in this answer. Tests if the back_parsed callback
+;is called to process the lack of edns contents.
+;HEX_EDNSDATA_BEGIN
+ ;00 08 ; OPC
+ ;00 04 ; option length
+ ;00 01 ; Family
+ ;00 00 ; source mask, scopemask
+ ; ; address 0.0.0.0/0 scope 0
+;HEX_EDNSDATA_END
+ENTRY_END
+RANGE_END
+
+RANGE_BEGIN 120 131
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+;copy_ednsdata_assume_clientsubnet
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.43
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 ; OPC
+ 00 07 ; option length
+ 00 01 ; Family
+ 18 00 ; source mask, scopemask
+ 7f 02 00 ; address 127.2.0.0/24 scope 0
+HEX_EDNSDATA_END
+ENTRY_END
+RANGE_END
+
+; query for 127.0.0.0/24
+STEP 1 QUERY
+ENTRY_BEGIN
+HEX_ANSWER_BEGIN
+ 00 00 01 00 00 01 00 00 ;ID 0
+ 00 00 00 01 03 77 77 77 ; www.example.com A? (DO)
+ 07 65 78 61 6d 70 6c 65
+ 03 63 6f 6d 00 00 01 00
+ 01 00 00 29 10 00 00 00
+ 80 00 00 0b
+
+ 00 08 00 07 ; OPC, optlen
+ 00 01 18 00 ; ip4, scope 24, source 0
+ 7f 00 00 ;127.0.0.0/24
+HEX_ANSWER_END
+ENTRY_END
+
+; answer is 10.20.30.40 for 127.0.0.0/24 scope 17
+STEP 10 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ednsdata
+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
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ; client is 127.0.0.1
+ 00 08 ; OPC
+ 00 07 ; option length
+ 00 01 ; Family
+ 18 11 ; source mask, scopemask
+ 7f 00 00 ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+; query for 127.1.0.0/24
+STEP 20 QUERY
+ENTRY_BEGIN
+HEX_ANSWER_BEGIN
+ 00 00 01 00 00 01 00 00 ;ID 0
+ 00 00 00 01 03 77 77 77 ; www.example.com A? (DO)
+ 07 65 78 61 6d 70 6c 65
+ 03 63 6f 6d 00 00 01 00
+ 01 00 00 29 10 00 00 00
+ 80 00 00 0b
+
+ 00 08 00 07 ; OPC, optlen
+ 00 01 18 00 ; ip4, scope 24, source 0
+ 7f 01 00 ;127.1.0.0/24
+HEX_ANSWER_END
+ENTRY_END
+
+; answer is 10.20.30.41 for 127.1.0.0/24 scope 17
+STEP 30 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ednsdata
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.41
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ; client is 127.1.0.1
+ 00 08 ; OPC
+ 00 07 ; option length
+ 00 01 ; Family
+ 18 11 ; source mask, scopemask
+ 7f 01 00 ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+; query for 0.0.0.0/0
+STEP 40 QUERY
+ENTRY_BEGIN
+HEX_ANSWER_BEGIN
+ 00 00 01 00 00 01 00 00 ;ID 0
+ 00 00 00 01 03 77 77 77 ; www.example.com A? (DO)
+ 07 65 78 61 6d 70 6c 65
+ 03 63 6f 6d 00 00 01 00
+ 01 00 00 29 10 00 00 00
+ 80 00 00 08
+
+ 00 08 00 04 ; OPC, optlen
+ 00 01 00 00 ; ip4, scope 0, source 0
+ ;0.0.0.0/0
+HEX_ANSWER_END
+ENTRY_END
+
+; answer is 10.20.30.42 for 0.0.0.0/0 scope 0
+STEP 50 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ednsdata
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.42
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 ; OPC
+ 00 04 ; option length
+ 00 01 ; Family
+ 00 00 ; source mask, scopemask
+ ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+; query for 127.0.0.0/24, again, it should be in cache.
+; and not from the scope 0 answer.
+STEP 60 QUERY
+ENTRY_BEGIN
+HEX_ANSWER_BEGIN
+ 00 00 01 00 00 01 00 00 ;ID 0
+ 00 00 00 01 03 77 77 77 ; www.example.com A? (DO)
+ 07 65 78 61 6d 70 6c 65
+ 03 63 6f 6d 00 00 01 00
+ 01 00 00 29 10 00 00 00
+ 80 00 00 0b
+
+ 00 08 00 07 ; OPC, optlen
+ 00 01 18 00 ; ip4, scope 24, source 0
+ 7f 00 00 ;127.0.0.0/24
+HEX_ANSWER_END
+ENTRY_END
+
+; answer should be 10.20.30.40 for 127.0.0.0/24 scope 17
+STEP 70 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ednsdata
+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
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ; client is 127.0.0.1
+ 00 08 ; OPC
+ 00 07 ; option length
+ 00 01 ; Family
+ 18 11 ; source mask, scopemask
+ 7f 00 00 ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+; query for 127.1.0.0/24, again, it should be in cache.
+STEP 80 QUERY
+ENTRY_BEGIN
+HEX_ANSWER_BEGIN
+ 00 00 01 00 00 01 00 00 ;ID 0
+ 00 00 00 01 03 77 77 77 ; www.example.com A? (DO)
+ 07 65 78 61 6d 70 6c 65
+ 03 63 6f 6d 00 00 01 00
+ 01 00 00 29 10 00 00 00
+ 80 00 00 0b
+
+ 00 08 00 07 ; OPC, optlen
+ 00 01 18 00 ; ip4, scope 24, source 0
+ 7f 01 00 ;127.1.0.0/24
+HEX_ANSWER_END
+ENTRY_END
+
+; answer should be 10.20.30.41 for 127.1.0.0/24 scope 17
+STEP 90 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ednsdata
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.41
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ; client is 127.1.0.1
+ 00 08 ; OPC
+ 00 07 ; option length
+ 00 01 ; Family
+ 18 11 ; source mask, scopemask
+ 7f 01 00 ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+; query for 0.0.0.0/0, again.
+STEP 100 QUERY
+ENTRY_BEGIN
+HEX_ANSWER_BEGIN
+ 00 00 01 00 00 01 00 00 ;ID 0
+ 00 00 00 01 03 77 77 77 ; www.example.com A? (DO)
+ 07 65 78 61 6d 70 6c 65
+ 03 63 6f 6d 00 00 01 00
+ 01 00 00 29 10 00 00 00
+ 80 00 00 08
+
+ 00 08 00 04 ; OPC, optlen
+ 00 01 00 00 ; ip4, scope 0, source 0
+ ;0.0.0.0/0
+HEX_ANSWER_END
+ENTRY_END
+
+; answer should be 10.20.30.42 for 0.0.0.0/0 scope 0
+STEP 110 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ednsdata
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.42
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 ; OPC
+ 00 04 ; option length
+ 00 01 ; Family
+ 00 00 ; source mask, scopemask
+ ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+; now a query for a /24 that gets an answer for a /0.
+STEP 120 QUERY
+ENTRY_BEGIN
+HEX_ANSWER_BEGIN
+ 00 00 01 00 00 01 00 00 ;ID 0
+ 00 00 00 01 03 77 77 77 ; www.example.com A? (DO)
+ 07 65 78 61 6d 70 6c 65
+ 03 63 6f 6d 00 00 01 00
+ 01 00 00 29 10 00 00 00
+ 80 00 00 0b
+
+ 00 08 00 07 ; OPC, optlen
+ 00 01 18 00 ; ip4, scope 24, source 0
+ 7f 02 00 ;127.2.0.0/24
+HEX_ANSWER_END
+ENTRY_END
+
+; answer should be 10.20.30.43 for 127.2.0.0/24 scope 0
+STEP 130 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ednsdata
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.43
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ; client is 127.2.0.1
+ 00 08 ; OPC
+ 00 07 ; option length
+ 00 01 ; Family
+ 18 00 ; source mask, scopemask
+ 7f 02 00 ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+; the scope 0 answer is now used to answer queries from
+; query for 127.0.0.0/24
+STEP 140 QUERY
+ENTRY_BEGIN
+HEX_ANSWER_BEGIN
+ 00 00 01 00 00 01 00 00 ;ID 0
+ 00 00 00 01 03 77 77 77 ; www.example.com A? (DO)
+ 07 65 78 61 6d 70 6c 65
+ 03 63 6f 6d 00 00 01 00
+ 01 00 00 29 10 00 00 00
+ 80 00 00 0b
+
+ 00 08 00 07 ; OPC, optlen
+ 00 01 18 00 ; ip4, scope 24, source 0
+ 7f 00 00 ;127.0.0.0/24
+HEX_ANSWER_END
+ENTRY_END
+
+STEP 150 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ednsdata
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.43
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ; client is 127.0.0.1
+ 00 08 ; OPC
+ 00 07 ; option length
+ 00 01 ; Family
+ 18 00 ; source mask, scopemask
+ 7f 00 00 ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/tcp_reuse.tdir/tcp_reuse.post b/testdata/tcp_reuse.tdir/tcp_reuse.post
index ca75354714ed..7536918b7666 100644
--- a/testdata/tcp_reuse.tdir/tcp_reuse.post
+++ b/testdata/tcp_reuse.tdir/tcp_reuse.post
@@ -6,13 +6,13 @@
#
# do your teardown here
. ../common.sh
-kill_pid `cat unbound2.pid`
+kill_from_pidfile "unbound2.pid"
if test -f unbound2.log; then
echo ">>> upstream log"
cat unbound2.log
fi
#kill_pid $UNBOUND_PID
-kill_pid `cat unbound.pid`
+kill_from_pidfile "unbound.pid"
if test -f unbound.log; then
echo ">>> unbound log"
cat unbound.log
diff --git a/testdata/tls_reuse.tdir/tls_reuse.post b/testdata/tls_reuse.tdir/tls_reuse.post
index 2eef0da96233..6162086e8ede 100644
--- a/testdata/tls_reuse.tdir/tls_reuse.post
+++ b/testdata/tls_reuse.tdir/tls_reuse.post
@@ -6,13 +6,13 @@
#
# do your teardown here
. ../common.sh
-kill_pid `cat unbound2.pid`
+kill_from_pidfile "unbound2.pid"
if test -f unbound2.log; then
echo ">>> upstream log"
cat unbound2.log
fi
#kill_pid $UNBOUND_PID
-kill_pid `cat unbound.pid`
+kill_from_pidfile "unbound.pid"
if test -f unbound.log; then
echo ">>> unbound log"
cat unbound.log
diff --git a/testdata/val_cnametocnamewctoposwc.rpl b/testdata/val_cnametocnamewctoposwc.rpl
index c290026baa20..407666efc0fc 100644
--- a/testdata/val_cnametocnamewctoposwc.rpl
+++ b/testdata/val_cnametocnamewctoposwc.rpl
@@ -153,7 +153,7 @@ ns.example.com. 3600 IN A 1.2.3.4
ns.example.com. 3600 IN RRSIG A 8 2 3600 20121126131826 20121029131826 64050 example.com. L/EsWsRNhM0Lt8877XYfm0FkVc+utuRPYlW/yxEi/Nzs/mTb9BMrOygsW0qfpYakYgfFvinR7S7ce9/naWidzGkWKYR85g2WFms3/TgchpmfjZHEsNyuT8zsiGrj3bQ3RxpT5cmt/IS2QlOak/RhdtawKfd9aqkMTVpP2idEQwY=
ENTRY_END
-ENTRY_BEGING
+ENTRY_BEGIN
MATCH opcode qtype qname
ADJUST copy_id
REPLY QR NOERROR
diff --git a/testdata/val_cnametodnametocnametopos.rpl b/testdata/val_cnametodnametocnametopos.rpl
index 280e557b8acb..b8a1159acb29 100644
--- a/testdata/val_cnametodnametocnametopos.rpl
+++ b/testdata/val_cnametodnametocnametopos.rpl
@@ -400,7 +400,7 @@ ENTRY_END
; recursion happens here.
STEP 10 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA AD DO NOERROR
SECTION QUESTION
www.example.com. IN A
@@ -409,7 +409,7 @@ www.example.com. 3600 IN CNAME www.sub.example.net.
www.example.com. 3600 IN RRSIG CNAME 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFEv1gOb7KEskzkJNtFKKVBxY+Hb2AhUAqKJDIZJvNl+AdzqAt+JgdvnYAF0= ;{id = 2854}
sub.example.net. 3600 IN DNAME sub.example.com.
sub.example.net. 3600 IN RRSIG DNAME 5 3 3600 20070926134150 20070829134150 30899 example.net. G/UmcL1VmCF2mjB1O9IeNM2DnvayxEy6vOrvA+Ic/Gqcsgnq/f4VTCV9soQQIAWEir2v5Vt8hqPDP8rCRbMnyA== ;{id = 30899}
-www.sub.example.net. 0 IN CNAME www.sub.example.com.
+www.sub.example.net. 3600 IN CNAME www.sub.example.com.
www.sub.example.com. 3600 IN CNAME www.example.org.
www.sub.example.com. 3600 IN RRSIG CNAME 5 4 3600 20070926134150 20070829134150 30899 sub.example.com. ZE6A4pkyeUpNCscu2oeBv/3JbbirdwUaAMgmQ/ighzacUJCC6Lh8vAL5aYDEyTk7oktb8uS7gmYan171aM9/tg== ;{id = 30899}
www.example.org. 3600 IN A 11.11.11.11
diff --git a/testdata/val_dnametopos.rpl b/testdata/val_dnametopos.rpl
index c0ccc5977903..f314f3d9e431 100644
--- a/testdata/val_dnametopos.rpl
+++ b/testdata/val_dnametopos.rpl
@@ -220,14 +220,14 @@ ENTRY_END
; recursion happens here.
STEP 10 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA AD DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
example.com. 3600 IN DNAME example.net.
example.com. 3600 IN RRSIG DNAME 3 2 3600 20070926134150 20070829134150 2854 example.com. MCwCFH1xw24Hswia3g10AVL1yFUHUPdFAhQDrA+qZJwqXRPg2C1oiNPk9fosGg== ;{id = 2854}
-www.example.com. 0 IN CNAME www.example.net.
+www.example.com. 3600 IN CNAME www.example.net.
www.example.net. 3600 IN A 11.12.13.14
www.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. CPxF5hK9Kg5eT7W6LgZwr0ePYEm9HMcSY4vvqCS6gDWB4X9jvXLCfBkCLhsNybPBpGWlsLi5wM6MTdJXuPpsRA== ;{id = 30899}
SECTION AUTHORITY
diff --git a/testdata/val_dnametoposwc.rpl b/testdata/val_dnametoposwc.rpl
index 16481d17f704..3132e9ad1182 100644
--- a/testdata/val_dnametoposwc.rpl
+++ b/testdata/val_dnametoposwc.rpl
@@ -222,14 +222,14 @@ ENTRY_END
; recursion happens here.
STEP 10 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA AD DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
example.com. 3600 IN DNAME example.net.
example.com. 3600 IN RRSIG DNAME 3 2 3600 20070926134150 20070829134150 2854 example.com. MCwCFH1xw24Hswia3g10AVL1yFUHUPdFAhQDrA+qZJwqXRPg2C1oiNPk9fosGg== ;{id = 2854}
-www.example.com. 0 IN CNAME www.example.net.
+www.example.com. 3600 IN CNAME www.example.net.
www.example.net. 3600 IN A 11.12.13.14
www.example.net. 3600 IN RRSIG A 5 2 3600 20070926134150 20070829134150 30899 example.net. quSyDbSeHRvyMmanqq5rW+APC9MKOswbRLB5QP/G+C2iyokQFLuRTlX9Wmo/jo1Oo1MGBefJUmP9NdRd2EqABA== ;{id = 30899}
SECTION AUTHORITY
diff --git a/testdata/val_nsec3_cnametocnamewctoposwc.rpl b/testdata/val_nsec3_cnametocnamewctoposwc.rpl
index 0fba0e2e17e7..1651ae7dc94f 100644
--- a/testdata/val_nsec3_cnametocnamewctoposwc.rpl
+++ b/testdata/val_nsec3_cnametocnamewctoposwc.rpl
@@ -151,7 +151,7 @@ example.com. 3600 IN RRSIG NS 8 2 3600 20121126123249 20121029123249 64050 examp
SECTION ADDITIONAL
ENTRY_END
-ENTRY_BEGING
+ENTRY_BEGIN
MATCH opcode qtype qname
ADJUST copy_id
REPLY QR NOERROR
diff --git a/testdata/zonemd_reload.tdir/zonemd_reload.test b/testdata/zonemd_reload.tdir/zonemd_reload.test
index fbdf07511306..aac23d6b848e 100644
--- a/testdata/zonemd_reload.tdir/zonemd_reload.test
+++ b/testdata/zonemd_reload.tdir/zonemd_reload.test
@@ -7,35 +7,35 @@
PRE="../.."
# do the test
echo "> dig www.example.com."
-dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
if grep SERVFAIL outfile; then
echo "> try again"
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
- dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
echo "> cat logfiles"
cat fwd.log
diff --git a/util/config_file.c b/util/config_file.c
index 31ae8c8080e5..26185da0203c 100644
--- a/util/config_file.c
+++ b/util/config_file.c
@@ -142,6 +142,7 @@ config_create(void)
cfg->log_tag_queryreply = 0;
cfg->log_local_actions = 0;
cfg->log_servfail = 0;
+ cfg->log_destaddr = 0;
#ifndef USE_WINSOCK
# ifdef USE_MINI_EVENT
/* select max 1024 sockets */
@@ -690,6 +691,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
else S_YNO("log-tag-queryreply:", log_tag_queryreply)
else S_YNO("log-local-actions:", log_local_actions)
else S_YNO("log-servfail:", log_servfail)
+ else S_YNO("log-destaddr:", log_destaddr)
else S_YNO("val-permissive-mode:", val_permissive_mode)
else S_YNO("aggressive-nsec:", aggressive_nsec)
else S_YNO("ignore-cd-flag:", ignore_cd)
@@ -1127,6 +1129,7 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_YNO(opt, "log-tag-queryreply", log_tag_queryreply)
else O_YNO(opt, "log-local-actions", log_local_actions)
else O_YNO(opt, "log-servfail", log_servfail)
+ else O_YNO(opt, "log-destaddr", log_destaddr)
else O_STR(opt, "pidfile", pidfile)
else O_YNO(opt, "hide-identity", hide_identity)
else O_YNO(opt, "hide-version", hide_version)
diff --git a/util/config_file.h b/util/config_file.h
index ad22b8330e36..491109833e4b 100644
--- a/util/config_file.h
+++ b/util/config_file.h
@@ -349,6 +349,8 @@ struct config_file {
int log_servfail;
/** log identity to report */
char* log_identity;
+ /** log dest addr for log_replies */
+ int log_destaddr;
/** do not report identity (id.server, hostname.bind) */
int hide_identity;
diff --git a/util/configlexer.c b/util/configlexer.c
index 8a2b9448cad1..4fe0d8b4d61e 100644
--- a/util/configlexer.c
+++ b/util/configlexer.c
@@ -354,8 +354,8 @@ static void yynoreturn yy_fatal_error ( const char* msg );
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 384
-#define YY_END_OF_BUFFER 385
+#define YY_NUM_RULES 385
+#define YY_END_OF_BUFFER 386
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -363,427 +363,428 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[3807] =
+static const flex_int16_t yy_accept[3816] =
{ 0,
- 1, 1, 358, 358, 362, 362, 366, 366, 370, 370,
- 1, 1, 374, 374, 378, 378, 385, 382, 1, 356,
- 356, 383, 2, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 383, 358, 359, 359, 360,
- 383, 362, 363, 363, 364, 383, 369, 366, 367, 367,
- 368, 383, 370, 371, 371, 372, 383, 381, 357, 2,
- 361, 381, 383, 377, 374, 375, 375, 376, 383, 378,
- 379, 379, 380, 383, 382, 0, 1, 2, 2, 2,
- 2, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 358, 0, 362, 0, 369, 0, 366, 370, 0, 381,
- 0, 2, 2, 381, 377, 0, 374, 378, 0, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 381, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 354, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 136, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 146, 382, 382, 382, 382, 382,
-
- 382, 382, 381, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 118, 382,
- 382, 353, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 8, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 137, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 151, 382, 382,
- 381, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 344, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 381, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 71, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 266, 382, 14, 15, 382, 382, 20, 19,
-
- 382, 382, 245, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 144, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 243, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 3,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 381, 382, 382, 382, 382, 382, 382, 382, 382,
- 334, 382, 382, 382, 333, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 365, 382,
- 382, 382, 382, 382, 382, 382, 382, 70, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 74, 382, 303, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 345, 346,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 75,
-
- 382, 382, 145, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 140,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 232, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 22, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 172, 382, 382,
- 382, 382, 382, 381, 365, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 116,
- 382, 382, 382, 382, 382, 382, 382, 382, 311, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 16,
- 382, 382, 382, 382, 382, 382, 382, 382, 200, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 171, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 115, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 37, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 38, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 72, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 143, 382, 382, 382, 381,
- 382, 382, 382, 382, 382, 382, 135, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 73, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 270, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 201, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 60, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 289, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 65, 382, 66, 382,
-
- 382, 382, 382, 382, 382, 119, 382, 120, 382, 382,
- 382, 382, 382, 117, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 7, 382, 382,
- 382, 382, 381, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 255, 382, 382, 382, 382, 382,
- 175, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 271, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 51,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 61, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 223, 382, 222, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 17, 18, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 76,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 231, 382, 382, 382, 382, 382, 382,
- 382, 122, 382, 121, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 214, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 152, 382, 382, 382, 381, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 110, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 97, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 244, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 102, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 69, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 217, 218, 382, 382, 382, 305, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 6, 382, 382, 382, 382,
- 382, 382, 382, 324, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 309, 382, 382, 382, 382, 382,
- 382, 382, 335, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 48, 382,
- 382, 382, 382, 382, 50, 382, 382, 382, 98, 382,
-
- 382, 382, 382, 382, 58, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 381, 382, 210, 382,
- 382, 382, 147, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 236, 382, 382, 211, 382,
- 382, 382, 382, 251, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 59, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 149, 128, 382, 129,
- 382, 382, 382, 382, 127, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 168, 382, 382, 56, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 287,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 212,
- 382, 382, 382, 382, 382, 215, 382, 221, 382, 382,
- 382, 382, 382, 382, 382, 382, 250, 382, 382, 382,
- 382, 382, 382, 254, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 114, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 141, 382, 382,
- 382, 382, 382, 382, 382, 382, 67, 382, 382, 382,
-
- 382, 31, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 21, 382, 382, 382, 382, 382,
- 382, 382, 32, 41, 382, 180, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 208, 382, 382, 381, 382, 382, 382, 382, 349, 382,
- 382, 84, 86, 382, 382, 382, 382, 382, 382, 382,
- 382, 350, 382, 382, 382, 382, 382, 382, 382, 313,
- 382, 382, 382, 382, 267, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 130, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 167, 382, 52, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 261, 382, 382, 382, 382, 382,
- 382, 382, 382, 328, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 174, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 322,
- 382, 382, 382, 382, 242, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 341, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 193,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 123, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 187, 382, 202, 382, 382,
- 382, 382, 382, 382, 382, 381, 382, 155, 382, 382,
- 382, 382, 382, 382, 109, 382, 382, 382, 382, 234,
- 382, 382, 382, 382, 382, 382, 382, 252, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 279, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 382, 382, 382, 148, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 191, 382, 382, 382, 382,
- 382, 382, 382, 87, 382, 88, 382, 382, 382, 382,
- 382, 264, 382, 382, 382, 382, 382, 68, 331, 382,
- 382, 382, 382, 382, 96, 203, 382, 224, 382, 256,
- 382, 382, 216, 306, 382, 382, 382, 382, 301, 382,
- 382, 382, 80, 382, 205, 382, 382, 382, 382, 382,
- 382, 9, 382, 382, 382, 382, 382, 113, 382, 382,
- 382, 382, 382, 382, 293, 382, 382, 382, 382, 382,
-
- 382, 233, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 381, 382,
- 382, 382, 382, 190, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 192, 176, 382, 312, 382,
- 382, 382, 382, 382, 278, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 246, 382, 382, 382,
-
- 382, 382, 382, 304, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 173, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 332, 382, 204, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 79, 81, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 112, 382,
- 382, 382, 382, 382, 382, 291, 382, 382, 382, 382,
- 382, 382, 382, 308, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 238, 382, 39,
-
- 33, 35, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 40, 382, 34, 36, 382,
- 42, 382, 382, 382, 382, 382, 382, 382, 108, 382,
- 186, 382, 382, 382, 382, 382, 382, 382, 381, 382,
- 382, 382, 382, 382, 382, 336, 382, 382, 382, 382,
- 382, 240, 237, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 78, 382, 382, 382, 150, 382, 131, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 169, 53, 382, 382, 382, 373, 13, 382, 382, 382,
-
- 382, 382, 382, 382, 156, 382, 382, 382, 382, 382,
- 382, 382, 382, 326, 382, 329, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 12,
- 382, 382, 23, 382, 382, 382, 382, 382, 382, 382,
- 297, 382, 382, 343, 382, 382, 382, 382, 310, 382,
- 382, 382, 382, 82, 382, 248, 382, 382, 382, 382,
- 382, 239, 382, 382, 382, 382, 77, 382, 382, 382,
- 382, 382, 382, 24, 382, 382, 49, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 185,
- 184, 382, 382, 373, 382, 382, 382, 382, 382, 382,
-
- 382, 382, 382, 241, 235, 382, 253, 382, 382, 314,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 198, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 89, 382, 382,
- 382, 382, 382, 382, 382, 382, 292, 382, 382, 382,
- 382, 220, 382, 382, 382, 382, 382, 382, 247, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 299,
- 382, 382, 382, 337, 382, 339, 338, 182, 382, 382,
- 382, 83, 382, 382, 382, 382, 194, 382, 382, 382,
-
- 382, 382, 124, 126, 125, 382, 382, 382, 26, 382,
- 382, 177, 382, 179, 382, 225, 382, 382, 382, 382,
- 183, 382, 382, 382, 382, 257, 382, 382, 382, 382,
- 382, 382, 382, 158, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 269, 382, 382, 382,
- 382, 382, 382, 382, 351, 382, 28, 382, 307, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 94, 226, 382,
- 382, 263, 382, 382, 382, 290, 382, 330, 382, 219,
- 382, 382, 302, 382, 382, 382, 300, 62, 382, 382,
-
- 382, 382, 382, 382, 382, 4, 382, 382, 382, 382,
- 382, 139, 382, 157, 382, 382, 382, 199, 30, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 260, 43,
- 44, 382, 382, 382, 382, 382, 382, 382, 315, 382,
- 382, 382, 382, 382, 382, 382, 277, 382, 382, 382,
- 382, 382, 382, 382, 382, 229, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 93, 92, 382, 382, 63, 382, 382, 288, 296,
- 382, 265, 382, 382, 382, 382, 382, 11, 382, 382,
-
- 382, 382, 355, 382, 382, 382, 382, 382, 138, 382,
- 382, 382, 382, 382, 382, 227, 99, 382, 382, 46,
- 382, 382, 382, 382, 382, 382, 382, 382, 189, 382,
- 382, 382, 382, 382, 382, 382, 160, 382, 382, 382,
- 382, 268, 382, 382, 382, 382, 382, 276, 382, 382,
- 382, 382, 153, 382, 382, 382, 132, 134, 133, 382,
- 382, 382, 101, 105, 100, 382, 170, 382, 382, 382,
- 382, 90, 382, 262, 298, 382, 382, 382, 382, 382,
- 382, 10, 382, 382, 382, 382, 382, 294, 342, 382,
- 382, 382, 382, 382, 382, 382, 382, 348, 45, 382,
-
- 382, 382, 382, 382, 188, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 106, 104, 382, 382, 57, 382, 382, 91, 382, 327,
- 382, 382, 382, 382, 25, 382, 382, 382, 382, 382,
- 213, 382, 382, 340, 382, 382, 382, 382, 228, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 209, 382,
- 382, 178, 85, 382, 382, 382, 382, 382, 316, 382,
- 382, 382, 382, 382, 382, 382, 273, 382, 382, 272,
- 154, 382, 382, 103, 382, 54, 382, 382, 161, 162,
-
- 165, 166, 163, 164, 95, 325, 382, 382, 295, 142,
- 382, 382, 382, 382, 27, 382, 181, 382, 382, 382,
- 382, 207, 382, 259, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 196, 195, 230, 47,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 323, 382, 382, 382, 382, 111,
- 382, 258, 382, 286, 320, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 352, 382, 107, 55,
-
- 64, 5, 382, 382, 249, 382, 382, 321, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 274, 29, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 275, 382, 382, 382, 159, 382, 382, 382, 382,
- 382, 382, 382, 382, 197, 382, 206, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 317, 382, 382, 382,
- 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
- 382, 382, 382, 382, 347, 382, 382, 282, 382, 382,
- 382, 382, 382, 318, 382, 382, 382, 382, 382, 382,
- 319, 382, 382, 382, 280, 382, 283, 284, 382, 382,
-
- 382, 382, 382, 281, 285, 0
+ 1, 1, 359, 359, 363, 363, 367, 367, 371, 371,
+ 1, 1, 375, 375, 379, 379, 386, 383, 1, 357,
+ 357, 384, 2, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 384, 359, 360, 360, 361,
+ 384, 363, 364, 364, 365, 384, 370, 367, 368, 368,
+ 369, 384, 371, 372, 372, 373, 384, 382, 358, 2,
+ 362, 382, 384, 378, 375, 376, 376, 377, 384, 379,
+ 380, 380, 381, 384, 383, 0, 1, 2, 2, 2,
+ 2, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 359, 0, 363, 0, 370, 0, 367, 371, 0, 382,
+ 0, 2, 2, 382, 378, 0, 375, 379, 0, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 382, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 355, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 136, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 146, 383, 383, 383, 383, 383,
+
+ 383, 383, 382, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 118,
+ 383, 383, 354, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 8, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 137, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 151, 383,
+ 383, 382, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 345, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 382, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 71, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 267, 383, 14, 15, 383, 383,
+
+ 20, 19, 383, 383, 246, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 144, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 244, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 3, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 382, 383, 383, 383, 383, 383,
+ 383, 383, 383, 335, 383, 383, 383, 334, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 366, 383, 383, 383, 383, 383, 383, 383, 383,
+ 70, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 74, 383,
+ 304, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 346, 347, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 75, 383, 383, 145, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 140, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 233, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 22, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 172, 383, 383, 383, 383, 383, 382, 366, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 116, 383, 383, 383, 383, 383, 383,
+ 383, 383, 312, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 16, 383, 383, 383, 383, 383, 383,
+ 383, 383, 200, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 171, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 115, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 37,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 38, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 72,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 143, 383, 383, 383, 382, 383, 383, 383, 383, 383,
+ 383, 135, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 73,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 271, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 201, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 60, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 290, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 65, 383, 66, 383, 383, 383, 383, 383,
+ 383, 119, 383, 120, 383, 383, 383, 383, 383, 117,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 7, 383, 383, 383, 383, 382, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 256, 383, 383, 383, 383, 383, 175, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 272, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 51, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 61, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 224, 383, 223, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 17,
+ 18, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 76, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 232, 383, 383, 383, 383, 383, 383, 383, 122, 383,
+ 121, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 214, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 152, 383, 383,
+ 383, 382, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 110, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 97, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 245, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 102, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 69, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 217, 218, 383, 383, 383, 306, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 6, 383, 383, 383, 383, 383, 383,
+ 383, 325, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 310, 383, 383, 383, 383, 383, 383, 383,
+ 336, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 48, 383, 383, 383,
+
+ 383, 383, 50, 383, 383, 383, 98, 383, 383, 383,
+ 383, 383, 58, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 382, 383, 210, 383, 383, 383,
+ 147, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 237, 383, 383, 211, 383, 383, 383,
+ 383, 252, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 59, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 149, 128, 383, 129, 383, 383,
+ 383, 383, 127, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 168, 383, 383, 56, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 288, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 212, 383, 383,
+ 383, 383, 383, 222, 215, 383, 221, 383, 383, 383,
+ 383, 383, 383, 383, 383, 251, 383, 383, 383, 383,
+ 383, 383, 255, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 114, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 141, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 67, 383, 383, 383, 383,
+ 31, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 21, 383, 383, 383, 383, 383, 383,
+ 383, 32, 41, 383, 180, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 208,
+ 383, 383, 382, 383, 383, 383, 383, 350, 383, 383,
+ 84, 86, 383, 383, 383, 383, 383, 383, 383, 383,
+ 351, 383, 383, 383, 383, 383, 383, 383, 314, 383,
+ 383, 383, 383, 268, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 383, 130, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 167, 383, 52, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 262, 383, 383, 383, 383, 383, 383,
+ 383, 383, 329, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 174, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 323, 383,
+ 383, 383, 383, 243, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 342, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 193, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 123, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 187, 383, 202, 383, 383, 383,
+ 383, 383, 383, 383, 382, 383, 155, 383, 383, 383,
+ 383, 383, 383, 109, 383, 383, 383, 383, 235, 383,
+ 383, 383, 383, 383, 383, 383, 253, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 280, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 148, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 191, 383, 383, 383, 383, 383,
+ 383, 383, 87, 383, 88, 383, 383, 383, 383, 383,
+ 265, 383, 383, 383, 383, 383, 68, 332, 383, 383,
+ 383, 383, 383, 96, 203, 383, 225, 383, 257, 383,
+ 383, 216, 307, 383, 383, 383, 383, 302, 383, 383,
+ 383, 80, 383, 205, 383, 383, 383, 383, 383, 383,
+ 9, 383, 383, 383, 383, 383, 113, 383, 383, 383,
+
+ 383, 383, 383, 294, 383, 383, 383, 383, 383, 383,
+ 234, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 382, 383, 383,
+ 383, 383, 190, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 192, 176, 383, 313, 383, 383,
+ 383, 383, 383, 279, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 247, 383, 383, 383, 383,
+ 383, 383, 305, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 173, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 333, 383, 204, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 79, 81, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 112, 383, 383,
+ 383, 383, 383, 383, 292, 383, 383, 383, 383, 383,
+ 383, 383, 309, 383, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 239, 383, 39, 33,
+ 35, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 40, 383, 34, 36, 383, 42,
+ 383, 383, 383, 383, 383, 383, 383, 108, 383, 186,
+ 383, 383, 383, 383, 383, 383, 383, 382, 383, 383,
+ 383, 383, 383, 383, 337, 383, 383, 383, 383, 383,
+ 241, 238, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 78, 383, 383, 383, 150, 383, 131, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 169,
+
+ 53, 383, 383, 383, 374, 13, 383, 383, 383, 383,
+ 383, 383, 383, 156, 383, 383, 383, 383, 383, 383,
+ 383, 383, 327, 383, 330, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 12, 383,
+ 383, 23, 383, 383, 383, 383, 383, 383, 383, 298,
+ 383, 383, 344, 383, 383, 383, 383, 311, 383, 383,
+ 383, 383, 82, 383, 249, 383, 383, 383, 383, 383,
+ 240, 383, 383, 383, 383, 77, 383, 383, 383, 383,
+ 383, 383, 24, 383, 383, 49, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 185, 184,
+
+ 383, 383, 374, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 242, 236, 383, 254, 383, 383, 315, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 198, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 89, 383, 383, 383,
+ 383, 383, 383, 383, 383, 293, 383, 383, 383, 383,
+ 220, 383, 383, 383, 383, 383, 383, 248, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 300, 383,
+ 383, 383, 338, 383, 340, 339, 182, 383, 383, 383,
+
+ 83, 383, 383, 383, 383, 194, 383, 383, 383, 383,
+ 383, 124, 126, 125, 383, 383, 383, 26, 383, 383,
+ 177, 383, 179, 383, 226, 383, 383, 383, 383, 183,
+ 383, 383, 383, 383, 258, 383, 383, 383, 383, 383,
+ 383, 383, 158, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 270, 383, 383, 383, 383,
+ 383, 383, 383, 352, 383, 28, 383, 308, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 94, 227, 383, 383,
+ 264, 383, 383, 383, 291, 383, 331, 383, 219, 383,
+
+ 383, 303, 383, 383, 383, 301, 62, 383, 383, 383,
+ 383, 383, 383, 383, 4, 383, 383, 383, 383, 383,
+ 139, 383, 157, 383, 383, 383, 199, 30, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 261, 43, 44,
+ 383, 383, 383, 383, 383, 383, 383, 316, 383, 383,
+ 383, 383, 383, 383, 383, 278, 383, 383, 383, 383,
+ 383, 383, 383, 383, 230, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 93, 92, 383, 383, 63, 383, 383, 289, 297, 383,
+
+ 266, 383, 383, 383, 383, 383, 11, 383, 383, 383,
+ 383, 356, 383, 383, 383, 383, 383, 138, 383, 383,
+ 383, 383, 383, 383, 228, 99, 383, 383, 46, 383,
+ 383, 383, 383, 383, 383, 383, 383, 189, 383, 383,
+ 383, 383, 383, 383, 383, 160, 383, 383, 383, 383,
+ 269, 383, 383, 383, 383, 383, 277, 383, 383, 383,
+ 383, 153, 383, 383, 383, 132, 134, 133, 383, 383,
+ 383, 101, 105, 100, 383, 170, 383, 383, 383, 383,
+ 90, 383, 263, 299, 383, 383, 383, 383, 383, 383,
+ 10, 383, 383, 383, 383, 383, 295, 343, 383, 383,
+
+ 383, 383, 383, 383, 383, 383, 349, 45, 383, 383,
+ 383, 383, 383, 188, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 106,
+ 104, 383, 383, 57, 383, 383, 91, 383, 328, 383,
+ 383, 383, 383, 25, 383, 383, 383, 383, 383, 213,
+ 383, 383, 341, 383, 383, 383, 383, 229, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 209, 383, 383,
+ 178, 85, 383, 383, 383, 383, 383, 317, 383, 383,
+ 383, 383, 383, 383, 383, 274, 383, 383, 273, 154,
+
+ 383, 383, 103, 383, 54, 383, 383, 161, 162, 165,
+ 166, 163, 164, 95, 326, 383, 383, 296, 142, 383,
+ 383, 383, 383, 27, 383, 181, 383, 383, 383, 383,
+ 207, 383, 260, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 196, 195, 231, 47, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 324, 383, 383, 383, 383, 111, 383,
+ 259, 383, 287, 321, 383, 383, 383, 383, 383, 383,
+
+ 383, 383, 383, 383, 383, 353, 383, 107, 55, 64,
+ 5, 383, 383, 250, 383, 383, 322, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 275, 29, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 276, 383, 383, 383, 159, 383, 383, 383, 383, 383,
+ 383, 383, 383, 197, 383, 206, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 318, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 348, 383, 383, 283, 383, 383, 383,
+ 383, 383, 319, 383, 383, 383, 383, 383, 383, 320,
+
+ 383, 383, 383, 281, 383, 284, 285, 383, 383, 383,
+ 383, 383, 282, 286, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -829,17 +830,17 @@ static const YY_CHAR yy_meta[67] =
1, 1, 1, 1, 1, 1
} ;
-static const flex_int16_t yy_base[3825] =
+static const flex_int16_t yy_base[3834] =
{ 0,
0, 0, 64, 67, 70, 72, 78, 84, 89, 92,
- 131, 137, 112, 118, 123, 142, 616, 527, 96,10823,
- 10823,10823, 160, 185, 116, 183, 229, 132, 175, 173,
+ 131, 137, 112, 118, 123, 142, 616, 527, 96,10847,
+ 10847,10847, 160, 185, 116, 183, 229, 132, 175, 173,
232, 50, 66, 120, 263, 275, 159, 323, 134, 375,
- 416, 286, 308, 283, 126, 258, 516,10823,10823,10823,
- 95, 496,10823,10823,10823, 187, 471, 490,10823,10823,
- 10823, 238, 449,10823,10823,10823, 104, 401,10823, 351,
- 10823, 194, 369, 379, 381,10823,10823,10823, 375, 309,
- 10823,10823,10823, 146, 307, 392, 177, 0, 405, 0,
+ 416, 286, 308, 283, 126, 258, 516,10847,10847,10847,
+ 95, 496,10847,10847,10847, 187, 471, 490,10847,10847,
+ 10847, 238, 449,10847,10847,10847, 104, 401,10847, 351,
+ 10847, 194, 369, 379, 381,10847,10847,10847, 375, 309,
+ 10847,10847,10847, 146, 307, 392, 177, 0, 405, 0,
0, 201, 270, 233, 230, 310, 259, 290, 371, 178,
335, 396, 413, 415, 330, 358, 417, 368, 442, 402,
@@ -865,821 +866,823 @@ static const flex_int16_t yy_base[3825] =
1015, 1014, 1017, 1022, 1019, 1037, 1011, 1042, 1050, 1052,
1058, 167, 1043, 1064, 1066, 1055, 1072, 1075, 1070, 1080,
- 1081, 1049,10823, 1088, 1082, 1108, 1102, 1111, 1106, 1112,
+ 1081, 1049,10847, 1088, 1082, 1108, 1102, 1111, 1106, 1112,
1114, 1116, 1117, 1098, 1103, 1099, 1115, 1123, 1129, 1131,
1130, 1133, 1135, 1163, 1147, 1166, 1155, 1171, 1170, 1156,
- 1205, 1172, 1157, 1180, 1250, 1174, 1176, 1194, 1207, 1220,
- 320, 1208, 1178, 1237, 1203, 1204, 1243, 1239, 1247, 1258,
- 1273, 1262, 1264, 1272, 1286, 1288, 1290, 1284, 1259, 1289,
- 1232, 1306,10823, 1292, 1305, 1245, 1316, 1330, 1337, 1324,
- 1281, 1355, 1317, 1322, 1319, 1327, 1351, 1403, 1451, 1339,
- 1360, 1346, 1357, 1366,10823, 1392, 1382, 1500, 1387, 1391,
-
- 1410, 1407, 1405, 1398, 1431, 1432, 1409, 1352, 1438, 1423,
- 1350, 1448, 1465, 1459, 1457, 1460, 1478, 1458, 1490, 1483,
- 1365, 1505, 1491, 1496, 1507, 1529, 1501, 1520, 1532, 1546,
- 1530, 1531, 1533, 1538, 1541, 1559, 1547, 1564, 1558, 1568,
- 1569, 1556, 1565, 1574, 1582, 1589, 1604, 1649, 1609, 1596,
- 1593, 1602, 1601, 1620, 1617, 1615, 1614, 1616, 1629, 1630,
- 1651, 1595, 1415, 1653, 1642, 1659, 1664, 1668, 1656, 1675,
- 1679, 1683, 1691, 1689, 1685, 1686, 1695, 1706, 1687, 1698,
- 1712, 1716, 1714, 1723, 1732, 1719, 1728, 1439,10823, 1743,
- 1741,10823, 1727, 1744, 1736, 1749, 1739, 1756, 1745, 1750,
-
- 10823, 1773, 1763, 1774, 1778, 1768, 1779, 1771, 1783, 1792,
- 1772, 1803, 1799, 1790, 1800, 1807, 1801, 1805, 1809, 1827,
- 1819, 1830, 1822, 1826, 1836, 1831, 1832, 1841, 1846, 1834,
- 1857, 1842, 1903,10823, 1859, 1860, 1865, 1862, 1869, 1886,
- 1878, 1893, 1905, 1885, 1920, 1924, 1926, 1953, 1927, 1912,
- 1930, 1936, 1941, 1963, 1874, 1965, 1956, 1962, 1960, 1972,
- 1957, 1955, 1989, 1969, 1987, 1980, 1991,10823, 1999, 2005,
- 2007, 1875, 1998, 2000, 1993, 2003, 1986, 2004, 2022, 2024,
- 2016, 2021, 2030, 2033, 2045, 2052, 2046, 2057, 2064, 2049,
- 2050, 2048, 2051, 2060, 2067, 2086, 2047, 2069, 2085, 2082,
-
- 2083, 158, 2076, 2099, 2100, 2091, 2106, 2089, 2087, 2092,
- 2112, 2116, 2101, 2103, 2114, 2118, 2113, 2127, 2133, 2129,
- 2131, 2145, 2134, 2148, 2141, 2156, 2144, 2160, 2161, 2143,
- 2158, 2170, 2172, 2164, 2178, 2195, 2182, 2193, 2184, 2188,
- 2205, 2208, 2209, 2197,10823, 2219, 2217, 2215, 2234, 2236,
- 2225, 2242, 2227, 2230, 2244, 2245, 2254, 2229, 2262, 2255,
- 2261, 2268, 2256, 2252, 2274, 2275, 2282, 2272, 2286, 2293,
- 2299, 2287, 2302, 2301, 2297, 2298, 2304, 2311, 2308, 2313,
- 2317, 2339, 2333, 2321, 2332, 2325, 2355, 2334, 2338, 2357,
- 2358, 2348, 2361, 2366, 2352, 2379, 2374, 2383, 2384, 2388,
-
- 2393, 2404, 2391, 2394, 2398, 2410, 2397, 2411, 2406, 2408,
- 2424, 2429, 2422, 2425, 2433, 2430, 2435, 2440, 2443, 2446,
- 2456, 2474, 2451, 2453, 2461, 2449, 2467, 2465, 2468, 2478,
- 2483, 2480, 2493, 2485, 2499, 2496, 2500, 2516, 2508, 2527,
- 2525, 2520, 2512, 2526, 2524, 2535, 2541, 2514, 2546, 2543,
- 2558, 2562, 2547, 2561, 2567, 2560, 2568, 2570, 2577, 2573,
- 2580, 2505, 2576, 2598, 2606, 2597, 2603, 2599, 2613, 2607,
- 2596, 2615, 2626, 2636, 2624, 2623,10823, 2628, 2618, 2630,
- 2638, 2642, 2640, 2639, 2643, 2665, 2660, 2670, 2653, 2656,
- 2655, 2707,10823, 2657,10823,10823, 1473, 2669,10823,10823,
-
- 2684, 2688,10823, 2679, 2697, 2696, 2698, 2706, 2717, 2721,
- 2720, 2724, 2736, 2732, 2740, 2779, 2735, 2733, 2745, 2743,
- 2772, 2744, 2774, 2782, 2765, 2785, 2789, 2795, 2799, 2828,
- 2808, 2818, 2817, 2825, 2833, 2831, 2835, 2843, 2690, 2837,
- 2829, 2850, 2845, 2847, 2852, 2846, 2877, 2865, 2868, 2883,
- 2870, 2873, 2864, 2762, 2894, 2887, 2906,10823, 2897, 2769,
- 2890, 2900, 2896, 2856, 2898, 2895, 2915, 2914, 2923, 2928,
- 2932, 2921, 2926, 2922, 2933, 2947, 2929, 2944, 2941, 2945,
- 2952, 2960, 2946, 2970, 2949, 2959, 2956,10823, 2971, 2973,
- 2961, 2978, 2987, 2981, 2991, 2996, 2989, 2986, 2997, 3002,
-
- 3027, 3012, 3009, 3016, 3013, 3025, 3017, 3028, 3045,10823,
- 3033, 3047, 3030, 3044, 3042, 3059, 3050, 3060, 3057, 3061,
- 3058, 3066, 3078, 3074, 3076, 3071, 3087, 3088, 3083, 3085,
- 3097, 3107, 3094, 3103, 3115, 3118, 3106, 3108, 3123, 3116,
- 3129, 3119, 3126, 3122, 3131, 3134, 3162, 3165, 3153, 3170,
- 3155, 3152, 3175, 3176, 3173, 3164, 3178, 3179, 3166, 3185,
- 3181, 3193, 3192, 3189, 3188, 3214, 3203, 3218, 3206, 3216,
- 3226, 3231, 3212, 3228, 3234, 3225, 3237, 3245, 3241, 3248,
- 10823, 3239, 3251, 3256,10823, 3264, 3259, 3255, 3304, 3284,
- 3294, 3281, 3287, 3296, 3274, 3314, 3290, 3310, 3322, 3316,
-
- 3333, 3326, 3334, 3340, 3323, 3353, 3343, 3354, 3349, 3339,
- 3351, 3350, 3360, 3374, 3367, 3383, 3254, 3389, 3392, 477,
- 3394, 3371, 3378, 3384, 3429, 3395, 3399, 3398, 3401, 3417,
- 3409, 3415, 3419, 3411, 3438, 3432, 3434, 3431, 3468, 3461,
- 3457, 3454, 3467, 3459, 3471, 3473, 3481, 3470,10823, 3476,
- 3484, 3482, 3486, 3479, 3507, 3500, 3496,10823, 3511, 3512,
- 3506, 3529, 3516, 3517, 3526, 3510, 3527, 3535, 3533, 3537,
- 3542, 3534, 3548, 3564,10823, 3550,10823, 3556, 3554, 3559,
- 3571, 3585, 3560, 3575, 3572, 3573, 3591, 3599,10823,10823,
- 3600, 3602, 3586, 3593, 3613, 3614, 3601, 3609, 3606,10823,
-
- 3622, 3630,10823, 3641, 3620, 3636, 3629, 3628, 3634, 3637,
- 3640, 3646, 3661, 3657, 3633, 3679, 3663, 3677, 3667,10823,
- 3686, 3680, 3668, 3688, 3691, 3684, 3690, 3692, 3707, 3709,
- 10823, 3695, 3713, 3719, 3710, 3703, 3732, 3724, 3717, 3738,
- 3742, 3727, 3728, 3730, 3746, 3740, 3766, 3768, 3769, 3770,
- 3773, 3771, 3774, 3776,10823, 3777, 3763, 3764, 3788, 3780,
- 3786, 3783, 3790, 3789, 3796, 3801, 3815, 3819, 3813, 3825,
- 3809, 3817, 3812, 3837, 3838, 3828, 3845, 3834, 3840, 3821,
- 3841, 3842, 552, 3848, 3854, 3852, 3849,10823, 3864, 3873,
- 3870, 3877, 3879, 3865, 115, 3875, 3880, 3876, 3891, 3890,
-
- 3893, 3894, 3904, 3918, 3919, 3910, 3911, 3923, 3930, 3929,
- 3922, 3926, 3937, 3933, 3920, 3938, 3951, 3947, 3952,10823,
- 3943, 3959, 3968, 3963, 3961, 3974, 3957, 3978,10823, 3987,
- 3995, 3988, 3982, 3999, 3998, 4008, 4009, 4013, 4007,10823,
- 4022, 4010, 4005, 4018, 4025, 4032, 4036, 4023,10823, 4041,
- 4043, 4055, 4044, 4056, 4049, 4057, 4050, 4052, 4059, 4069,
- 4070, 4082, 4083, 4071, 4079, 4084, 4097, 4086, 4093, 4112,
- 4094, 4098, 4106, 4108, 4107, 4120, 4117, 4113, 4122, 4124,
- 4128,10823, 4151, 4139, 4129, 4144, 4140, 4141, 4153, 4149,
- 4174, 4163, 4159, 4164, 4171, 4209, 4176, 4184, 4167, 4196,
-
- 4202, 4199, 4188, 4216, 4220, 4211, 4192, 4226, 4253, 4230,
- 4215, 4235, 4236, 4243, 4242, 4241, 4259, 4252, 4247, 4272,
- 4269, 4276, 4277, 4280, 4268, 4303, 4293, 4273, 4288, 4307,
- 4286,10823, 4306, 4311, 4302, 4300, 4327, 4340, 4332, 4333,
- 4325, 4338, 4337, 4346, 4339, 4352, 4348, 4361, 4356, 4360,
- 4368, 4363, 4375, 4367, 4382, 4379, 4374, 4385, 4388, 4301,
- 4390, 4396, 4395, 4409,10823, 4394, 4420, 4407, 4419, 4414,
- 4413, 4416, 4429, 4434, 4421, 4423, 4424, 4431, 4443, 4432,
- 4451, 4447, 4469, 4457, 4456, 4466, 4455,10823, 4472, 4464,
- 4474, 4480, 4483, 4481, 4490, 4499, 4500, 4506, 4508, 4510,
-
- 4501, 4512, 4513, 4516,10823, 4521, 4526, 4517, 4527, 4528,
- 4525, 4531, 4530, 4551, 4540,10823, 4557, 4545, 4554, 4555,
- 4546, 4542, 4576, 4579, 4569, 4572,10823, 4581, 4574, 4578,
- 4584, 4580, 4592, 4595, 4568, 4611, 4596, 4593, 4599, 4619,
- 4610, 4614, 4606, 4625,10823, 4613, 4620, 4653, 4631, 4633,
- 4627, 4636, 4651, 4652, 4660, 4655, 4669, 4658,10823, 4678,
- 4677, 4663, 4688, 4683, 4680, 4682, 4684, 4698, 4707, 4695,
- 4694, 4715, 4697,10823, 4704, 4701, 4705, 4725, 4731, 4730,
- 4724, 4741, 4737, 4738, 4736, 4742, 4744, 4745, 4747, 4762,
- 4770, 4768, 4761, 4764, 4763, 4771, 4791, 4781, 4776, 4782,
-
- 4798, 4806, 4815, 4800, 4812, 4816, 4811, 4804, 4801, 4819,
- 4826, 4835, 4837, 4833, 4847,10823, 4836, 4841, 4843, 4832,
- 4844, 4851, 4839, 4866, 4857, 4860, 4868, 4877, 4872, 4870,
- 4906, 4910, 4871, 4887, 4892, 4893, 4881, 4897, 4903, 4901,
- 4905, 4930, 4926, 4909, 4914, 4920, 4916, 4945, 4925, 4940,
- 4950, 4932, 4947, 4936, 4941, 4957, 4961, 4952, 4943, 4970,
- 4974, 4962, 4967, 4971, 4969, 4995, 4999, 5000, 5002, 4991,
- 4994, 5001, 4998, 5028,10823, 4996, 5012, 5019, 5025, 5023,
- 5029, 5035, 5039, 5021, 5038, 5036, 5059, 5055, 5054, 5064,
- 5057, 5051, 5066, 5063, 5078, 5079,10823, 5070,10823, 5094,
-
- 5071, 5095, 5098, 5106, 5087,10823, 5103,10823, 5105, 5109,
- 5096, 5097, 5101,10823, 5115, 5110, 5121, 5102, 5123, 5119,
- 5134, 5130, 5133, 5148, 5140, 5160, 5155, 5150, 5144, 5157,
- 5138, 5146, 5168, 5171, 5170, 5186, 5177, 5174, 5190, 5180,
- 5201, 5181, 5187, 5198, 5207, 5197, 5205,10823, 5220, 5219,
- 5213, 5218, 5215, 5217, 5225, 5236, 5227, 5232, 5242, 5247,
- 5259, 5240, 5245, 5252, 5261, 5267, 5268, 5250, 5278, 5284,
- 5286, 5279, 5290, 5288,10823, 5282, 5301, 5283, 5285, 5308,
- 10823, 5313, 5295, 5320, 5323, 5311, 5309, 5315, 5329, 5333,
- 5326, 5331, 5335, 5360, 5338, 5359, 5365,10823, 5340, 5367,
-
- 5348, 5371, 5369, 5353, 5386, 5388, 5380, 5396, 5401, 5393,
- 5398, 5395, 5391, 5387, 5390, 5413, 5394, 5424, 5431, 5422,
- 5436, 5411, 5437, 5432, 5439, 5423, 5425, 5433, 5428, 5426,
- 5443, 5451, 5453, 5458, 5452, 5478, 5454, 5468, 5479,10823,
- 5481, 5484, 5475, 5494, 5470, 5483, 5471, 5498, 5513, 5500,
- 5510,10823, 5522, 5504, 5525, 5517, 5531, 5518, 5521, 5514,
- 5536, 5541, 5540, 5546, 5557, 5548,10823, 5556,10823, 5545,
- 5575, 5547, 5579, 5573, 5568, 5584, 5588, 5577, 5580, 5589,
- 5596, 5605, 5597, 5604, 5600, 5606, 5611, 5610, 5630, 5616,
- 5625, 5635, 5641, 5637, 5628, 5638, 5632, 5646, 5647, 5658,
-
- 5649, 5667,10823,10823, 5645, 5662, 5681, 5683, 5668, 5687,
- 5697, 5690, 5692, 5688, 5699, 5685, 5695, 5715, 5739,10823,
- 5721, 5722, 5714, 5740, 5724, 5726, 5728, 5744, 5752, 5749,
- 5742, 5755, 5751,10823, 5741, 5750, 5760, 5763, 5762, 5777,
- 5764,10823, 5784,10823, 5766, 5776, 5779, 5788, 5789, 5790,
- 5787, 5801, 5805, 5806, 5815, 5809, 5813, 5836, 5821, 5822,
- 5834, 5819, 5823, 5825, 5838, 5840, 5848, 5832, 5842, 5837,
- 10823, 5860, 5850, 5868, 5869, 5856, 5873, 5879, 5877, 5865,
- 10823, 5880, 5881, 5895, 5882, 5887, 5889, 5893, 5907, 5904,
- 5910, 5921, 5913, 5917, 5916, 5918, 5915,10823, 5914, 5929,
-
- 5937, 5940, 5920, 5953, 5936, 5955, 5941, 5966,10823, 5964,
- 5975, 5962, 5977, 5973, 5972, 5976, 5980, 5954, 5965, 5979,
- 5990, 5989, 6004, 5986, 6000, 6003, 6010, 6011, 5999, 6029,
- 6023, 6017, 6025, 6045, 6022,10823, 6035, 6038, 6039, 6037,
- 6047, 6046, 6055, 6062, 6054, 6076, 6059, 6077, 6082, 6066,
- 6070, 6074, 6088, 6096, 6097, 6099,10823, 6104, 6089, 6110,
- 6085, 6106, 6092, 6118, 6113, 6105, 6115, 6128, 6124, 6109,
- 6136, 6138, 6145, 6144, 6155, 6148, 6154, 6151, 6157, 6158,
- 6159, 6163, 6173, 6186,10823, 6197, 6181, 6178, 6196, 6188,
- 6187, 6208, 6200, 6192, 6190, 6216, 6204, 6220, 6213, 6210,
-
- 6227, 6234, 6222,10823,10823, 6241, 6219, 6236,10823, 6243,
- 6229, 6256, 6239, 6237, 6248, 6265, 6246, 6259, 6269, 6272,
- 6261, 6277, 6282, 6264, 6268,10823, 6298, 6292, 6303, 6280,
- 6295, 6311, 6308,10823, 6293, 6318, 6315, 6316, 6314, 6313,
- 6306, 6317, 6329, 6319, 6344, 6333, 6335, 6348, 6339, 6340,
- 6359, 6337, 6350, 6369,10823, 6360, 6363, 6367, 6368, 6374,
- 6364, 6355,10823, 6384, 6377, 6392, 6396, 6397, 6405, 6400,
- 6410, 6415, 6413, 6401, 6407, 6416, 6412, 6418, 6427, 6430,
- 6451, 6434, 6440, 6454, 6443, 6460, 6462, 6464,10823, 6457,
- 6469, 6472, 6470, 6471,10823, 6473, 6506, 6477,10823, 6481,
-
- 6483, 6489, 6476, 6510,10823, 6499, 6513, 6502, 6519, 6497,
- 6518, 6501, 6530, 6527, 6512, 6515, 6529, 6536,10823, 6539,
- 6533, 6538,10823, 6532, 6550, 6554, 6564, 6567, 6556, 6549,
- 6573, 6566, 6579, 6568, 6576,10823, 6581, 6587,10823, 6589,
- 6593, 6578, 6601,10823, 6595, 6598, 6599, 6588, 6600, 6613,
- 6616, 6620, 6630, 6612, 6624, 6617, 6619, 6637, 6644, 6647,
- 6634, 6645, 6640, 6639,10823, 6672, 6651, 6661, 6666, 6636,
- 6676, 6678, 6674, 6668, 6685, 6679,10823,10823, 6655,10823,
- 6688, 6682, 6694, 6704,10823, 6707, 6709, 6699, 6711, 6726,
- 6706, 6715, 6712, 6724, 6732,10823, 6741, 6742,10823, 6721,
-
- 6739, 6737, 6738, 6751, 6753, 6754, 6759, 6781, 6756, 6734,
- 6764, 6769, 6780, 6736, 6779, 6778, 6799, 6787, 6819,10823,
- 6796, 6801, 6800, 6813, 6814, 6809, 6815, 6826, 6827,10823,
- 6828, 6842, 6839, 6845, 6854,10823, 6853,10823, 6846, 6858,
- 6851, 6866, 6856, 6859, 6803, 6872,10823, 6874, 6873, 6870,
- 6878, 6891, 6880,10823, 6893, 6903, 6894, 6895, 6890, 6916,
- 6919, 6902, 6914, 6932, 6920,10823, 6917, 6931, 6921, 6934,
- 6937, 6939, 6941, 6942, 6954, 6947, 6955, 6949, 6959, 6972,
- 6970, 6963, 6977, 6984, 6964, 6966, 6969,10823, 6991, 6994,
- 6990, 6989, 7013, 6997, 7011, 7014,10823, 7012, 7015, 6996,
-
- 7024,10823, 7018, 7035, 7023, 7034, 7030, 7042, 7045, 7049,
- 7019, 7050, 7051, 7062,10823, 7056, 7061, 7054, 7075, 7079,
- 7076, 7078,10823,10823, 7091,10823, 7092, 7081, 7094, 7095,
- 7089, 7090, 7115, 7111, 7127, 7112, 7116, 7124, 7129, 7119,
- 10823, 7125, 7138, 7123, 7153, 7154, 7163, 7157,10823, 7156,
- 7146,10823,10823, 7149, 7168, 7173, 7169, 7170, 7176, 7180,
- 7171,10823, 7184, 7187, 7181, 7205, 7182, 7207, 7190,10823,
- 7214, 7200, 7217, 7203,10823, 7197, 7226, 7213, 7210, 7230,
- 7224, 7227, 7239, 7233, 7234, 7228, 7260, 7252, 7241, 7253,
- 7248, 7254, 7265, 7257, 7273, 7269, 7270, 7285,10823, 7281,
-
- 7283, 7287, 7292, 7290, 7294, 7301, 7303, 7295, 7304, 7300,
- 7328,10823, 7317,10823, 7322, 7312, 7330, 7339, 7323, 7337,
- 7349, 7345, 7329, 7334, 7346, 7352, 7366, 7371, 7372, 7377,
- 7363, 7368, 7369, 7385,10823, 7380, 7387, 7376, 7396, 7399,
- 7400, 7402, 7401,10823, 7412, 7405, 7410, 7407, 7420, 7421,
- 7422, 7431, 7418, 7440, 7427, 7438, 7450, 7451, 7439, 7446,
- 7458, 7444, 7456, 7448, 7445,10823, 7469, 7460, 7457, 7479,
- 7463, 7487, 7488, 7490, 7496, 7495, 7480, 7483, 7500,10823,
- 7489, 7486, 7509, 7516,10823, 7508, 7503, 7510, 7519, 7536,
- 7538, 7522, 7537, 7543, 7529, 7551,10823, 7548, 7530, 7546,
-
- 7545, 7558, 7563, 7567, 7557, 7561, 7578, 7589, 7593,10823,
- 7597, 7588, 7590, 7594, 7601, 7577, 7585, 7609, 7610, 7626,
- 7608,10823, 7627, 7636, 7637, 7624, 7648, 7649, 7629, 7640,
- 7652, 7657, 7660, 7645, 7658, 7675, 7653, 7672, 7674, 7677,
- 7679, 7676, 7696, 7698, 7691,10823, 7687,10823, 7689, 7685,
- 7710, 7701, 7718, 7715, 7725, 7728, 7721,10823, 7704, 7713,
- 7730, 7717, 7740, 7734,10823, 7723, 7742, 7748, 7752,10823,
- 7762, 7766, 7753, 7760, 7774, 7777, 7780,10823, 7778, 7779,
- 7783, 7789, 7791, 7785, 7795, 7797, 7801, 7805, 7799, 7800,
- 7822, 7808, 7806, 7809,10823, 7821, 7827, 7831, 7829, 7832,
-
- 7833, 7836, 7835, 7839, 7851, 7840,10823, 7860, 7848, 7854,
- 7856, 7857, 7869, 7859, 7872, 7890, 7882, 7892, 7896, 7884,
- 7886, 7889, 7907, 7900, 7891,10823, 7898, 7906, 7909, 7899,
- 7933, 7923, 7928,10823, 7929,10823, 7926, 7932, 7941, 7944,
- 7950,10823, 7949, 7939, 7958, 7917, 7962,10823,10823, 7960,
- 7967, 7968, 7945, 7966,10823,10823, 7982,10823, 7965,10823,
- 7970, 7985,10823,10823, 7981, 7972, 7978, 7979,10823, 7999,
- 8009, 8003,10823, 8015,10823, 8021, 7997, 8018, 8006, 8007,
- 8027,10823, 8016, 8034, 8026, 8028, 8020,10823, 8023, 8042,
- 8046, 8062, 8045, 8043,10823, 8060, 8065, 8069, 8055, 8056,
-
- 8059,10823, 8079, 8081, 8083, 8066, 8082, 8086, 8089, 8095,
- 8098, 8100, 8093, 8118, 8108, 8109, 8125, 8117, 8104, 8133,
- 8134, 8137, 8126, 8140, 8131, 8143, 8146, 8150, 8153, 8156,
- 8139, 8160, 8162, 8158, 8174, 8171, 8165, 8188, 8191, 8183,
- 8193, 8185, 8189, 8192, 8180, 8198, 8202, 8206, 8205, 8219,
- 8208, 8187, 8214, 8223, 8215, 8224, 8221, 8235, 8232, 8246,
- 8245, 8241, 8242,10823, 8240, 8253, 8252, 8255, 8273, 8263,
- 8281, 8282, 8288, 8289, 8290,10823,10823, 8292,10823, 8294,
- 8279, 8285, 8280, 8283,10823, 8307, 8310, 8308, 8309, 8322,
- 8312, 8336, 8313, 8323, 8324, 8343,10823, 8348, 8345, 8339,
-
- 8340, 8337, 8347,10823, 8367, 8361, 8359, 8360, 8363, 8375,
- 8368, 8366, 8373, 8369, 8379, 8388, 8390, 8399, 8401, 8387,
- 8395, 8410,10823, 8420, 8421, 8265, 8405, 8409, 8414, 8411,
- 8417, 8428, 8435, 8419, 8422, 8425, 8440, 8448, 8441, 8458,
- 8462, 8453, 8468, 8465,10823, 8452,10823, 8467, 8454, 8472,
- 8481, 8477, 8485, 8488, 8486, 8483,10823,10823, 8487, 8498,
- 8514, 8496, 8503, 8504, 8519, 8510, 8509, 8523,10823, 8511,
- 8520, 8533, 8536, 8542, 8543,10823, 8537, 8555, 8538, 8549,
- 8551, 8553, 8557,10823, 8560, 8562, 8570, 8576, 8561, 8575,
- 8581, 8585, 8582, 8580, 8593, 8586, 8592,10823, 8589,10823,
-
- 10823,10823, 8613, 8602, 8600, 8615, 8612, 8617, 8618, 8619,
- 8626, 8627, 8624, 8623, 8632,10823, 8634,10823,10823, 8651,
- 10823, 8655, 8650, 8661, 8640, 8646, 8659, 8663,10823, 8654,
- 10823, 8667, 8674, 8670, 8676, 8680, 8684, 8681, 8702, 8697,
- 8705, 8691, 8695, 8316, 8712,10823, 8714, 8706, 8718, 8719,
- 8720,10823,10823, 8722, 8725, 8727, 8743, 8729, 8746, 8739,
- 8731, 8755, 8758, 8756, 8745, 8761, 8747, 8772, 8776, 8770,
- 8752, 8728,10823, 8774, 8779, 8786,10823, 8782,10823, 8788,
- 8795, 8799, 8780, 8792, 8801, 8803, 8813, 8808, 8819, 8824,
- 10823,10823, 8815, 8839, 8830,10823,10823, 8826, 8827, 8828,
-
- 8840, 8838, 8842, 8843,10823, 8852, 8855, 8857, 8853, 8869,
- 8856, 8873, 8874,10823, 8872,10823, 8870, 8877, 8892, 8882,
- 8899, 8908, 8883, 8888, 8916, 8912, 8905, 8896, 8917,10823,
- 8909, 8911,10823, 8930, 8925, 8923, 8919, 8933, 8931, 8926,
- 10823, 8955, 8943,10823, 8942, 8936, 8962, 8965,10823, 8966,
- 8963, 8968, 8969,10823, 8971,10823, 8952, 8970, 8964, 8985,
- 8989,10823, 8957, 8986, 8987, 9008,10823, 8981, 9010, 9011,
- 9012, 9004, 9005,10823, 9019, 9002,10823, 9003, 9021, 9024,
- 9022, 9026, 9027, 9030, 9037, 9042, 9031, 9040, 9057,10823,
- 10823, 9064, 9058, 73, 9065, 9039, 9051, 9052, 9067, 9079,
-
- 9050, 9076, 9081,10823,10823, 9082,10823, 9078, 9090,10823,
- 9070, 9098, 9103, 9094, 9091, 9092, 9106, 9102, 9115, 9113,
- 9121, 9120, 9117, 9133,10823, 9150, 9157, 9137, 9135, 9145,
- 9148, 9154, 9164, 9166, 9142, 9169, 9151, 9153, 9161, 9172,
- 9182, 9176, 9184, 9181, 9180, 9185, 9198,10823, 9202, 9204,
- 9207, 9206, 9215, 9213, 9223, 9208,10823, 9220, 9217, 9230,
- 9231,10823, 9238, 9232, 9234, 9239, 9240, 9245,10823, 9242,
- 9252, 9256, 9258, 9255, 9259, 9263, 9265, 9257, 9293,10823,
- 9281, 9286, 9269,10823, 9282,10823,10823,10823, 9298, 9271,
- 9285,10823, 9275, 9292, 9289, 9300,10823, 9310, 9311, 9308,
-
- 9320, 9316,10823,10823,10823, 9304, 9327, 9325,10823, 9319,
- 9341,10823, 9330,10823, 9337,10823, 9335, 9343, 9322, 9344,
- 10823, 9346, 9347, 9349, 9378,10823, 9365, 9372, 9377, 9374,
- 9361, 9367, 9384,10823, 9396, 9388, 9390, 9397, 9380, 9391,
- 9400, 9407, 9401, 9405, 9404, 9414,10823, 9422, 9428, 9430,
- 9436, 9423, 9425, 9432,10823, 9418,10823, 9443,10823, 9431,
- 9441, 9448, 9462, 9463, 9457, 9458, 9468, 9474, 9460, 9471,
- 9481, 9469, 9465, 9485, 9486, 9494, 9495,10823,10823, 9502,
- 9501,10823, 9510, 9517, 9519,10823, 9499,10823, 9523,10823,
- 9508, 9509,10823, 9522, 9518, 9526,10823,10823, 9530, 9512,
-
- 9539, 9538, 9533, 9540, 9536,10823, 9561, 9550, 9549, 9551,
- 9570,10823, 9576,10823, 9552, 9578, 9575,10823,10823, 9559,
- 9558, 9574, 9587, 9577, 9573, 9590, 9583, 9589, 9586, 9617,
- 9596, 9610, 9604, 9618, 9611, 9625, 9627, 9631,10823,10823,
- 10823, 9623, 9614, 9644, 9629, 9637, 9648, 9642,10823, 9641,
- 9647, 9658, 9651, 9653, 9659, 9665,10823, 9654, 9661, 9657,
- 9678, 9672, 9675, 9673, 9674,10823, 9695, 9696, 9698, 9702,
- 9697, 9703, 9712, 9713, 9714, 9706, 9717, 9718, 9693, 9732,
- 9721,10823,10823, 9728, 9720,10823, 9737, 9743,10823,10823,
- 9730,10823, 9729, 9738, 9735, 9739, 9766,10823, 9750, 9742,
-
- 9752, 9758,10823, 9753, 9765, 9775, 9782, 9779,10823, 9778,
- 9757, 9770, 9784, 9781, 9799,10823,10823, 9791, 9789,10823,
- 9807, 9809, 9801, 9824, 9808, 9813, 9822, 9827,10823, 9825,
- 9828, 9817, 9818, 9841, 9831, 9844,10823, 9845, 9842, 9847,
- 9855,10823, 9839, 9860, 9868, 9862, 9873,10823, 9874, 9870,
- 9896, 9887,10823, 9884, 9895, 9880,10823,10823,10823, 9881,
- 9899, 9905,10823,10823,10823, 9900,10823, 9916, 9913, 9902,
- 9924,10823, 9919,10823,10823, 9928, 9939, 9951, 9930, 9954,
- 9929,10823, 9936, 9935, 9947, 9940, 9945,10823,10823, 9964,
- 9968, 9950, 9953, 9960, 9975, 9961, 9956,10823,10823, 9957,
-
- 9983, 9985, 9984, 9986,10823, 9980, 9994,10004, 9996,10007,
- 10014,10015,10003,10017,10024,10029,10032,10012,10023,10019,
- 10042,10043,10034,10052,10059,10049,10057,10058,10051,10063,
- 10823,10823,10062,10067,10823,10071,10064,10823,10065,10823,
- 10072,10077,10087,10088,10823,10096,10097,10101,10102,10079,
- 10823,10094,10107,10823,10109,10104,10099,10092,10823,10110,
- 10116,10108,10117,10118,10128,10130,10119,10122,10823,10135,
- 10148,10823,10823,10138,10155,10137,10152,10143,10823,10164,
- 10171,10145,10146,10157,10169,10165,10823,10168,10180,10823,
- 10823,10193,10184,10823,10201,10823,10178,10186,10823,10823,
-
- 10823,10823,10823,10823,10823,10823,10195,10207,10823,10823,
- 10196,10212,10215,10217,10823,10218,10823,10198,10223,10226,
- 10220,10823,10224,10823,10229,10208,10236,10247,10228,10253,
- 10245,10242,10244,10248,10257,10251,10268,10271,10281,10269,
- 10275,10289,10273,10297,10279,10296,10823,10823,10823,10823,
- 10291,10295,10303,10298,10311,10319,10312,10327,10310,10313,
- 10328,10330,10336,10318,10334,10353,10337,10332,10345,10352,
- 10346,10365,10367,10369,10823,10374,10360,10362,10382,10823,
- 10368,10823,10370,10823,10823,10384,10385,10390,10372,10358,
- 10395,10389,10387,10401,10399,10405,10823,10406,10823,10823,
-
- 10823,10823,10402,10414,10823,10410,10415,10823,10416,10430,
- 10421,10425,10426,10437,10444,10450,10445,10823,10823,10448,
- 10442,10451,10454,10453,10464,10472,10469,10479,10481,10471,
- 10493,10823,10489,10487,10494,10823,10498,10485,10496,10488,
- 10491,10514,10505,10509,10823,10525,10823,10527,10530,10523,
- 10516,10519,10520,10543,10540,10546,10823,10537,10547,10549,
- 10555,10557,10572,10554,10560,10578,10575,10587,10591,10585,
- 10586,10581,10596,10584,10823,10594,10590,10823,10605,10617,
- 10606,10607,10614,10823,10597,10612,10616,10628,10638,10633,
- 10823,10645,10646,10641,10823,10642,10823,10823,10649,10632,
-
- 10644,10650,10657,10823,10823,10823,10703,10710,10717,10724,
- 10731,10738,10745, 100,10752,10759,10766,10773,10780,10787,
- 10794,10801,10808,10815
+ 1210, 1172, 1157, 1180, 1255, 1174, 1176, 1193, 1215, 1211,
+ 320, 1206, 1188, 1204, 1208, 1225, 1244, 1250, 1254, 1226,
+ 1238, 1265, 1267, 1253, 1264, 1270, 1257, 1285, 1287, 1283,
+ 1183, 1308,10847, 1295, 1312, 1313, 1314, 1318, 1321, 1316,
+ 1333, 1346, 1328, 1331, 1357, 1361, 1358, 1394, 1442, 1351,
+ 1366, 1359, 1364, 1386,10847, 1401, 1391, 1491, 1384, 1408,
+
+ 1375, 1427, 1389, 1422, 1435, 1437, 1429, 1382, 1439, 1355,
+ 1432, 1460, 1485, 1490, 1451, 1482, 1481, 1492, 1509, 1484,
+ 1424, 1454, 1508, 1488, 1511, 1544, 1517, 1527, 1540, 1548,
+ 1529, 1530, 1535, 1537, 1546, 1556, 1554, 1586, 1564, 1578,
+ 1565, 1571, 1569, 1583, 1576, 1587, 1610, 1655, 1607, 1595,
+ 1615, 1596, 1616, 1612, 1608, 1634, 1644, 1635, 1631, 1650,
+ 1652, 1651, 1654, 1661, 1671, 1682, 1617, 1680, 1686, 1659,
+ 1681, 1687, 1689, 1714, 1693, 1698, 1704, 1712, 1703, 1707,
+ 1721, 1730, 1732, 1725, 1739, 1733, 1747, 1742, 1734,10847,
+ 1749, 1745,10847, 1750, 1767, 1757, 1770, 1759, 1776, 1762,
+
+ 1773,10847, 1772, 1769, 1784, 1793, 1796, 1798, 1806, 1818,
+ 1811, 1807, 1819, 1823, 1808, 1809, 1820, 1833, 1812, 1837,
+ 1857, 1841, 1839, 1836, 1849, 1861, 1774, 1864, 1847, 1867,
+ 1863, 1854, 1874, 1914,10847, 1866, 1856, 1883, 1876, 1889,
+ 1900, 1896, 1917, 1941, 1909, 1938, 1910, 1945, 1957, 1944,
+ 1942, 1961, 1951, 1891, 1965, 1955, 1975, 1968, 1967, 1972,
+ 1995, 1978, 1982, 1993, 1991, 1989, 2002, 2005,10847, 2003,
+ 2009, 2015, 2020, 2014, 2006, 2018, 2029, 2033, 2034, 2032,
+ 2047, 2039, 2053, 2030, 2057, 1727, 2063, 2056, 2067, 2072,
+ 2059, 2066, 2061, 2058, 2082, 2086, 2088, 2085, 2108, 2078,
+
+ 2106, 2110, 158, 2116, 2117, 2119, 2125, 2126, 2105, 2109,
+ 2115, 2135, 2124, 2120, 2114, 2137, 2143, 2132, 2141, 2154,
+ 2150, 2149, 2157, 2145, 2166, 2159, 2177, 2164, 2153, 2184,
+ 2175, 2176, 2187, 2188, 2190, 2183, 2215, 2202, 2208, 2210,
+ 2214, 2233, 2234, 2217, 2198,10847, 2237, 2240, 2243, 2248,
+ 2232, 2257, 2253, 2258, 2255, 2250, 2265, 2273, 2264, 2261,
+ 2287, 2284, 2275, 2292, 2282, 2290, 2289, 2298, 2300, 2311,
+ 2309, 2319, 2330, 2310, 2320, 2313, 2317, 2327, 2329, 2328,
+ 2332, 2353, 2347, 2363, 2358, 2339, 2360, 2355, 2372, 2356,
+ 2362, 2381, 2368, 2357, 2385, 2392, 2384, 2405, 2402, 2403,
+
+ 2420, 2378, 2395, 2430, 2444, 2413, 2390, 2424, 2427, 2441,
+ 2428, 2434, 2440, 2442, 2429, 2439, 2468, 2470, 2455, 2462,
+ 2463, 2465, 2461, 2481, 2479, 2486, 2476, 2485, 2488, 2490,
+ 2495, 2505, 2498, 2501, 2514, 2513, 2515, 2518, 2520, 2543,
+ 2535, 2551, 2540, 2536, 2546, 2542, 2541, 2554, 2556, 2566,
+ 2561, 2577, 2582, 2583, 2567, 2592, 2593, 2578, 2588, 2580,
+ 2586, 2594, 2614, 2607, 2601, 2605, 2625, 2617, 2627, 2622,
+ 2635, 2628, 2618, 2640, 2650, 2648, 2641, 2652,10847, 2653,
+ 2655, 2657, 2654, 2656, 2658, 2664, 2675, 2695, 2684, 2687,
+ 2678, 2673, 2686, 2732,10847, 2697,10847,10847, 1581, 2691,
+
+ 10847,10847, 2700, 2720,10847, 2716, 2722, 2721, 2688, 2736,
+ 2745, 2749, 2718, 2742, 2748, 2763, 2715, 2810, 2766, 2753,
+ 2761, 2773, 2770, 2768, 2803, 2789, 2779, 2800, 2793, 2799,
+ 2830, 2845, 2835, 2846, 2821, 2838, 2851, 2848, 2856, 2849,
+ 2861, 2862, 2855, 2858, 2880, 2870, 2868, 2885, 2891, 2881,
+ 2878, 2886, 2901, 2888, 2897, 2894, 2775, 2905, 2899, 2935,
+ 10847, 2917, 2876, 2913, 2915, 2918, 2944, 2936, 2951, 2945,
+ 2946, 2939, 2950, 2953, 2937, 2949, 2942, 2954, 2963, 2976,
+ 2970, 2969, 2972, 2989, 2984, 2987, 2992, 2975, 2980, 2981,
+ 10847, 2996, 2997, 2977, 2994, 3008, 3017, 3027, 3024, 3020,
+
+ 3012, 3022, 3025, 3046, 3028, 3044, 3033, 3040, 3041, 3039,
+ 3052, 3071,10847, 3060, 3076, 3057, 3075, 3064, 3083, 3072,
+ 3073, 3084, 3094, 3086, 3081, 3112, 3099, 3105, 3101, 3109,
+ 3111, 3113, 3108, 3120, 3119, 3122, 3128, 3132, 3148, 3139,
+ 3133, 3154, 3145, 3159, 3150, 3146, 3152, 3156, 3162, 3179,
+ 3183, 3173, 3189, 3174, 3184, 3196, 3198, 3195, 3186, 3200,
+ 3197, 3207, 3216, 3213, 3223, 3218, 3215, 3222, 3224, 3210,
+ 3236, 3234, 3241, 3251, 3258, 3244, 3260, 3255, 3243, 3257,
+ 3261, 3270, 3247,10847, 3271, 3285, 3286,10847, 3288, 3287,
+ 3284, 3332, 3304, 3289, 3302, 3303, 3319, 3298, 3334, 3325,
+
+ 3328, 3344, 3333, 3356, 3345, 3359, 3374, 3362, 3379, 3370,
+ 3380, 3381, 3387, 3371, 3388, 3401, 3386, 3393, 3398, 3294,
+ 3421, 3396, 477, 3429, 3405, 3412, 3415, 3460, 3423, 3438,
+ 3422, 3428, 3444, 3446, 3449, 3450, 3465, 3455, 3456, 3470,
+ 3478, 3458, 3485, 3487, 3482, 3488, 3492, 3493, 3498, 3514,
+ 3502,10847, 3508, 3520, 3505, 3525, 3515, 3538, 3529, 3517,
+ 10847, 3531, 3537, 3527, 3544, 3539, 3541, 3554, 3542, 3558,
+ 3552, 3556, 3565, 3569, 3573, 3568, 3567, 3593,10847, 3575,
+ 10847, 3583, 3586, 3587, 3602, 3595, 3589, 3601, 3599, 3604,
+ 3616, 3618,10847,10847, 3620, 3622, 3628, 3629, 3641, 3643,
+
+ 3631, 3636, 3646,10847, 3644, 3666,10847, 3661, 3654, 3650,
+ 3658, 3655, 3663, 3667, 3673, 3670, 3680, 3681, 3678, 3689,
+ 3688, 3699, 3697,10847, 3708, 3710, 3693, 3707, 3716, 3701,
+ 3718, 3724, 3728, 3720,10847, 3736, 3730, 3743, 3731, 3755,
+ 3753, 3756, 3744, 3758, 3763, 3748, 3759, 3747, 3769, 3768,
+ 3773, 3782, 3789, 3792, 3793, 3806, 3799, 3807,10847, 3805,
+ 3785, 3791, 3812, 3808, 3787, 3814, 3818, 3816, 3824, 3809,
+ 3819, 3826, 3833, 3847, 3839, 3846, 3840, 3820, 3866, 3848,
+ 3860, 3862, 3845, 3854, 3870, 3876, 552, 3878, 3871, 3881,
+ 3874,10847, 3883, 3877, 3898, 3907, 3908, 3891, 115, 3901,
+
+ 3904, 3905, 3909, 3921, 3922, 3916, 3925, 3893, 3927, 3932,
+ 3934, 3946, 3953, 3957, 3942, 3944, 3960, 3948, 3949, 3964,
+ 3959, 3973, 3977,10847, 3970, 3984, 3975, 3981, 3986, 3997,
+ 3985, 4002,10847, 4006, 4008, 4012, 4014, 4013, 4024, 4019,
+ 4023, 4034, 4044,10847, 4049, 4036, 4045, 4032, 4051, 4046,
+ 4047, 4043,10847, 4064, 4061, 4063, 4072, 4070, 4073, 4085,
+ 4071, 4081, 4082, 4102, 4088, 4099, 4095, 4091, 4090, 4098,
+ 4118, 4112, 4109, 4136, 4115, 4126, 4131, 4129, 4130, 4138,
+ 4133, 4134, 4151, 4153, 4148,10847, 4160, 4154, 4156, 4164,
+ 4162, 4158, 4179, 4176, 4205, 4171, 4180, 4189, 4191, 4232,
+
+ 4195, 4203, 4209, 4219, 4221, 4223, 4216, 4215, 4229, 4239,
+ 4230, 4242, 4248, 4274, 4253, 4247, 4243, 4267, 4278, 4275,
+ 4266, 4280, 4269, 4270, 4292, 4289, 4294, 4293, 4287, 4290,
+ 4322, 4318, 4310, 4325, 4329, 4321,10847, 4330, 4320, 4319,
+ 4337, 4345, 4373, 4351, 4361, 4349, 4369, 4363, 4366, 4364,
+ 4365, 4372, 4314, 4378, 4368, 4381, 4395, 4398, 4400, 4385,
+ 4408, 4399, 4393, 4419, 4423, 4413, 4429, 4426, 4430,10847,
+ 4434, 4433, 4420, 4440, 4443, 4442, 4448, 4451, 4458, 4447,
+ 4450, 4459, 4454, 4464, 4455, 4470, 4467, 4488, 4491, 4483,
+ 4499, 4475,10847, 4500, 4489, 4495, 4507, 4510, 4516, 4498,
+
+ 4527, 4514, 4531, 4528, 4533, 4522, 4539, 4535, 4534,10847,
+ 4551, 4555, 4548, 4552, 4569, 4559, 4554, 4560, 4570, 4556,
+ 10847, 4572, 4567, 4578, 4574, 4582, 4583, 4595, 4596, 4586,
+ 4597,10847, 4598, 4600, 4591, 4612, 4601, 4605, 4616, 4613,
+ 4625, 4622, 4609, 4619, 4640, 4632, 4651, 4633, 4649,10847,
+ 4636, 4648, 4670, 4653, 4657, 4660, 4659, 4664, 4681, 4680,
+ 4665, 4692, 4676,10847, 4707, 4700, 4698, 4710, 4695, 4702,
+ 4693, 4708, 4719, 4725, 4715, 4712, 4738, 4727,10847, 4731,
+ 4726, 4746, 4748, 4752, 4750, 4742, 4721, 4751, 4765, 4766,
+ 4753, 4769, 4771, 4770, 4777, 4780, 4794, 4783, 4788, 4779,
+
+ 4796, 4816, 4803, 4810, 4804, 4821, 4723, 4808, 4806, 4833,
+ 4825, 4830, 4823, 4832, 4835, 4843, 4846, 4847, 4854, 4857,
+ 10847, 4856, 4860, 4859, 4851, 4863, 4862, 4873, 4865, 4870,
+ 4874, 4885, 4900, 4895, 4889, 4918, 4919, 4903, 4890, 4922,
+ 4906, 4912, 4902, 4921, 4924, 4920, 4936, 4929, 4937, 4939,
+ 4935, 4944, 4934, 4946, 4949, 4966, 4970, 4956, 4965, 4958,
+ 4961, 4971, 4981, 4964, 4982, 4979, 4988, 4993, 4991, 4992,
+ 5001, 5012, 5014, 5017, 5020, 5016, 5018, 5023, 5021, 5051,
+ 10847, 5028, 5039, 5031, 5037, 5045, 5055, 5035, 5049, 5072,
+ 5059, 5062, 5073, 5078, 5081, 5084, 5067, 5077, 5082, 5076,
+
+ 5098, 5090,10847, 5089,10847, 5111, 5092, 5115, 5123, 5126,
+ 5108,10847, 5127,10847, 5129, 5130, 5117, 5121, 5125,10847,
+ 5136, 5122, 5138, 5152, 5142, 5144, 5159, 5146, 5156, 5171,
+ 5163, 5151, 5179, 5172, 5164, 5169, 5168, 5185, 5186, 5183,
+ 5198, 5195, 5202, 5192, 5211, 5201, 5222, 5204, 5214, 5207,
+ 5231, 5220, 5225,10847, 5236, 5234, 5227, 5241, 5243, 5238,
+ 5255, 5252, 5260, 5250, 5267, 5277, 5279, 5261, 5265, 5270,
+ 5280, 5282, 5288, 5290, 5298, 5308, 5295, 5294, 5324, 5318,
+ 10847, 5312, 5328, 5311, 5315, 5325,10847, 5327, 5309, 5342,
+ 5345, 5335, 5329, 5348, 5341, 5364, 5359, 5354, 5358, 5376,
+
+ 5353, 5383, 5381,10847, 5380, 5390, 5371, 5398, 5387, 5375,
+ 5402, 5417, 5408, 5418, 5423, 5425, 5426, 5420, 5412, 5415,
+ 5416, 5429, 5442, 5443, 5446, 5444, 5453, 5439, 5450, 5454,
+ 5459, 5447, 5448, 5452, 5466, 5463, 5470, 5473, 5474, 5478,
+ 5477, 5494, 5497, 5489, 5500,10847, 5491, 5501, 5493, 5514,
+ 5511, 5516, 5517, 5522, 5539, 5518, 5538,10847, 5548, 5530,
+ 5546, 5540, 5553, 5541, 5557, 5558, 5543, 5563, 5574, 5569,
+ 5583, 5570,10847, 5585,10847, 5575, 5579, 5588, 5594, 5607,
+ 5596, 5599, 5611, 5624, 5612, 5609, 5632, 5635, 5626, 5621,
+ 5638, 5627, 5631, 5636, 5630, 5659, 5651, 5652, 5655, 5633,
+
+ 5670, 5660, 5672, 5663, 5669, 5673, 5706, 5686, 5682,10847,
+ 10847, 5678, 5666, 5713, 5712, 5701, 5710, 5721, 5723, 5720,
+ 5730, 5733, 5709, 5704, 5737, 5763,10847, 5752, 5753, 5745,
+ 5764, 5756, 5748, 5758, 5771, 5750, 5773, 5760, 5786, 5782,
+ 10847, 5772, 5784, 5775, 5791, 5793, 5805, 5812,10847, 5802,
+ 10847, 5798, 5803, 5807, 5813, 5818, 5815, 5825, 5819, 5830,
+ 5833, 5840, 5856, 5832, 5841, 5855, 5848, 5862, 5844, 5845,
+ 5857, 5866, 5860, 5874, 5870, 5878, 5868,10847, 5879, 5882,
+ 5895, 5891, 5887, 5893, 5903, 5901, 5888,10847, 5905, 5915,
+ 5909, 5919, 5918, 5917, 5921, 5929, 5928, 5927, 5944, 5936,
+
+ 5945, 5953, 5954, 5937,10847, 5942, 5955, 5958, 5971, 5960,
+ 5964, 5959, 5986, 5974, 5973,10847, 5985, 6000, 5987, 6004,
+ 6003, 5995, 6006, 6012, 5991, 5997, 6002, 6010, 6021, 6027,
+ 6016, 6024, 6029, 6035, 6048, 6038, 6056, 6045, 6049, 6060,
+ 6014, 6052,10847, 6053, 6047, 6059, 6065, 6062, 6088, 6085,
+ 6093, 6098, 6102, 6083, 6104, 6105, 6086, 6095, 6097, 6111,
+ 6110, 6124, 6120,10847, 6132, 6117, 6141, 6119, 6134, 6127,
+ 6137, 6148, 6129, 6150, 6153, 6143, 6136, 6160, 6166, 6172,
+ 6169, 6177, 6176, 6182, 6179, 6185, 6183, 6187, 6191, 6201,
+ 6214,10847, 6186, 6206, 6210, 6221, 6215, 6212, 6235, 6222,
+
+ 6216, 6224, 6194, 6229, 6239, 6237, 6238, 6243, 6259, 6261,
+ 6248,10847,10847, 6269, 6249, 6264,10847, 6270, 6256, 6283,
+ 6262, 6276, 6266, 6285, 6278, 6275, 6287, 6289, 6296, 6308,
+ 6311, 6301, 6297,10847, 6320, 6324, 6323, 6310, 6325, 6336,
+ 6331,10847, 6315, 6344, 6341, 6338, 6337, 6340, 6342, 6326,
+ 6363, 6364, 6371, 6357, 6351, 6378, 6353, 6369, 6388, 6365,
+ 6372, 6390,10847, 6380, 6389, 6392, 6386, 6396, 6399, 6407,
+ 10847, 6406, 6405, 6427, 6423, 6421, 6431, 6426, 6436, 6448,
+ 6439, 6444, 6446, 6424, 6456, 6449, 6452, 6454, 6451, 6450,
+ 6467, 6475, 6471, 6485, 6488, 6486,10847, 6491, 6492, 6477,
+
+ 6501, 6493,10847, 6505, 6526, 6515,10847, 6519, 6496, 6520,
+ 6517, 6536,10847, 6527, 6530, 6528, 6537, 6516, 6542, 6523,
+ 6553, 6551, 6543, 6554, 6555, 6546,10847, 6559, 6556, 6572,
+ 10847, 6576, 6581, 6578, 6588, 6590, 6580, 6573, 6564, 6586,
+ 6589, 6591, 6587,10847, 6604, 6610,10847, 6622, 6608, 6614,
+ 6627,10847, 6617, 6618, 6633, 6632, 6631, 6637, 6641, 6644,
+ 6634, 6623, 6639, 6645, 6657, 6658, 6672, 6656, 6660, 6670,
+ 6664, 6666,10847, 6699, 6668, 6683, 6685, 6661, 6695, 6689,
+ 6690, 6693, 6710, 6705,10847,10847, 6701,10847, 6721, 6717,
+ 6719, 6720,10847, 6716, 6725, 6745, 6732, 6729, 6748, 6740,
+
+ 6737, 6734, 6757,10847, 6753, 6767,10847, 6746, 6764, 6776,
+ 6760, 6771, 6761, 6759, 6784, 6798, 6781, 6777, 6788, 6794,
+ 6801, 6791, 6805, 6804, 6835, 6797, 6836,10847, 6823, 6810,
+ 6837, 6845, 6830, 6831, 6850, 6847, 6834,10847, 6862, 6857,
+ 6865, 6863, 6864,10847,10847, 6876,10847, 6869, 6879, 6881,
+ 6895, 6880, 6882, 6795, 6884,10847, 6898, 6891, 6901, 6890,
+ 6908, 6917,10847, 6918, 6925, 6915, 6920, 6914, 6926, 6931,
+ 6924, 6927, 6967, 6941,10847, 6929, 6945, 6943, 6969, 6970,
+ 6962, 6963, 6954, 6982, 6975, 6977, 6965, 6989, 6987, 6985,
+ 6981, 6990, 6998, 7002, 7008, 6997,10847, 7017, 7019, 7025,
+
+ 7012, 7037, 7022, 7014, 7024,10847, 7030, 7035, 7040, 7048,
+ 10847, 7046, 7057, 7060, 7056, 7058, 7061, 7063, 7055, 7041,
+ 7064, 7074, 7090,10847, 7082, 7085, 7080, 7105, 7106, 7093,
+ 7096,10847,10847, 7107,10847, 7109, 7108, 7103, 7101, 7122,
+ 7116, 7139, 7135, 7148, 7132, 7136, 7152, 7146, 7141,10847,
+ 7138, 6992, 7142, 7172, 7165, 7166, 7167,10847, 7168, 7160,
+ 10847,10847, 7171, 7185, 7187, 7181, 7196, 7199, 7192, 7183,
+ 10847, 7191, 7194, 7206, 7219, 7205, 7217, 7229,10847, 7221,
+ 7210, 7231, 7214,10847, 7218, 7237, 7227, 7224, 7248, 7241,
+ 7244, 7245, 7258, 7251, 7255, 7270, 7252, 7271, 7266, 7262,
+
+ 7277, 7269, 7264, 7294, 7289, 7287, 7306,10847, 7301, 7293,
+ 7298, 7300, 7307, 7311, 7304, 7297, 7325, 7320, 7345, 7347,
+ 10847, 7328,10847, 7336, 7334, 7350, 7351, 7338, 7354, 7355,
+ 7363, 7346, 7364, 7357, 7376, 7368, 7367, 7377, 7392, 7382,
+ 7384, 7387, 7401,10847, 7407, 7409, 7393, 7411, 7413, 7417,
+ 7418, 7416,10847, 7426, 7403, 7427, 7429, 7433, 7442, 7432,
+ 7446, 7437, 7457, 7448, 7456, 7462, 7465, 7452, 7458, 7469,
+ 7454, 7472, 7473, 7476,10847, 7475, 7477, 7482, 7486, 7488,
+ 7500, 7485, 7507, 7515, 7508, 7492, 7502, 7518,10847, 7509,
+ 7521, 7523, 7526,10847, 7519, 7534, 7529, 7542, 7537, 7554,
+
+ 7536, 7560, 7558, 7544, 7573,10847, 7570, 7563, 7568, 7564,
+ 7576, 7580, 7581, 7546, 7592, 7595, 7607, 7608,10847, 7585,
+ 7602, 7612, 7613, 7619, 7605, 7620, 7616, 7639, 7622, 7632,
+ 10847, 7645, 7647, 7651, 7646, 7667, 7668, 7644, 7654, 7672,
+ 7671, 7675, 7657, 7673, 7684, 7670, 7692, 7695, 7696, 7697,
+ 7694, 7698, 7715, 7685,10847, 7700,10847, 7709, 7717, 7733,
+ 7723, 7736, 7721, 7738, 7735, 7732,10847, 7742, 7755, 7741,
+ 7728, 7764, 7769,10847, 7763, 7760, 7762, 7766,10847, 7780,
+ 7779, 7768, 7782, 7786, 7792, 7796,10847, 7799, 7805, 7807,
+ 7819, 7821, 7809, 7817, 7806, 7824, 7810, 7813, 7811, 7828,
+
+ 7833, 7836, 7826,10847, 7837, 7839, 7843, 7854, 7856, 7853,
+ 7858, 7845, 7869, 7871, 7863,10847, 7870, 7864, 7879, 7881,
+ 7868, 7883, 7885, 7888, 7909, 7907, 7915, 7917, 7903, 7900,
+ 7904, 7920, 7908, 7922,10847, 7912, 7937, 7928, 7942, 7943,
+ 7946, 7939,10847, 7948,10847, 7944, 7945, 7960, 7962, 7966,
+ 10847, 7971, 7963, 7973, 7956, 7990,10847,10847, 7975, 7968,
+ 7984, 7977, 7988,10847,10847, 7999,10847, 7989,10847, 7994,
+ 7998,10847,10847, 8005, 7986, 8001, 8006,10847, 8015, 8017,
+ 8029,10847, 8030,10847, 8036, 8018, 8039, 8032, 8028, 8046,
+ 10847, 8033, 8055, 8041, 8049, 8043,10847, 8056, 8060, 8065,
+
+ 8067, 8063, 8059,10847, 8064, 8086, 8082, 8076, 8085, 8075,
+ 10847, 8096, 8100, 8101, 8092, 8098, 8102, 8109, 8116, 8103,
+ 8112, 8123, 8133, 8120, 8128, 8141, 8149, 8136, 8152, 8154,
+ 8156, 8145, 8159, 8153, 8164, 8165, 8173, 8176, 8158, 8162,
+ 8175, 8179, 8184, 8191, 8190, 8189, 8194, 8195, 8201, 8210,
+ 8203, 8206, 8211, 8200, 8214, 8204, 8209, 8225, 8234, 8244,
+ 8222, 8233, 8232, 8230, 8241, 8236, 8260, 8252, 8265, 8267,
+ 8259, 8263,10847, 8270, 8273, 8269, 8275, 8280, 8285, 8279,
+ 8303, 8277, 8309, 8312,10847,10847, 8315,10847, 8317, 8296,
+ 8310, 8300, 8305,10847, 8304, 8311, 8306, 8330, 8325, 8333,
+
+ 8347, 8338, 8336, 8341, 8361,10847, 8360, 8366, 8355, 8345,
+ 8370, 8371,10847, 8374, 8373, 8357, 8372, 8377, 8385, 8388,
+ 8387, 8389, 8393, 8394, 8404, 8411, 8423, 8424, 8406, 8410,
+ 8419,10847, 8427, 8429, 8416, 8421, 8431, 8432, 8438, 8446,
+ 8436, 8442, 8444, 8450, 8452, 8451, 8456, 8455, 8476, 8459,
+ 8480, 8483, 8490,10847, 8473,10847, 8484, 8477, 8486, 8489,
+ 8500, 8494, 8501, 8495, 8499,10847,10847, 8504, 8511, 8527,
+ 8534, 8520, 8519, 8539, 8532, 8525, 8544,10847, 8538, 8545,
+ 8549, 8546, 8558, 8556,10847, 8559, 8563, 8561, 8565, 8570,
+ 8571, 8568,10847, 8567, 8580, 8595, 8592, 8600, 8583, 8603,
+
+ 8604, 8605, 8596, 8601, 8597, 8615,10847, 8616,10847,10847,
+ 10847, 8620, 8624, 8623, 8625, 8622, 8640, 8641, 8629, 8646,
+ 8648, 8634, 8639, 8643,10847, 8663,10847,10847, 8664,10847,
+ 8666, 8660, 8672, 8668, 8670, 8679, 8675,10847, 8685,10847,
+ 8687, 8702, 8690, 8694, 8708, 8704, 8699, 8711, 8706, 8715,
+ 8710, 8712, 8651, 8717,10847, 8723, 8726, 8738, 8725, 8746,
+ 10847,10847, 8735, 8754, 8753, 8763, 8755, 8759, 8747, 8771,
+ 8765, 8762, 8768, 8757, 8770, 8758, 8776, 8781, 8788, 8789,
+ 8800,10847, 8795, 8804, 8807,10847, 8799,10847, 8808, 8812,
+ 8814, 8803, 8805, 8815, 8816, 8822, 8838, 8829, 8848,10847,
+
+ 10847, 8836, 8860, 8851,10847,10847, 8839, 8841, 8842, 8840,
+ 8864, 8863, 8852,10847, 8867, 8868, 8872, 8878, 8874, 8881,
+ 8882, 8887,10847, 8892,10847, 8891, 8898, 8912, 8888, 8897,
+ 8921, 8903, 8899, 8926, 8927, 8920, 8910, 8931,10847, 8923,
+ 8929,10847, 8946, 8940, 8941, 8933, 8938, 8957, 8949,10847,
+ 8960, 8948,10847, 8971, 8954, 8974, 8980,10847, 8982, 8979,
+ 8981, 8976,10847, 8989,10847, 8970, 8987, 8984, 8999, 8988,
+ 10847, 8975, 8998, 9001, 9004,10847, 9020, 9024, 9029, 9027,
+ 9022, 9023,10847, 9033, 9016,10847, 9017, 9038, 9039, 9041,
+ 9031, 9042, 9057, 9053, 9045, 9058, 9052, 9051,10847,10847,
+
+ 9079, 9072, 73, 9081, 9060, 9068, 9069, 9084, 9080, 9066,
+ 9096, 9092,10847,10847, 9097,10847, 9086, 9098,10847, 9078,
+ 9106, 9111, 9114, 9115, 9108, 9117, 9129, 9122, 9134, 9149,
+ 9136, 9127, 9147,10847, 9145, 9162, 9159, 9165, 9166, 9168,
+ 9170, 9179, 9182, 9172, 9176, 9164, 9174, 9193, 9190, 9207,
+ 9194, 9209, 9210, 9196, 9198, 9206,10847, 9222, 9224, 9225,
+ 9215, 9232, 9229, 9233, 9236,10847, 9244, 9240, 9248, 9245,
+ 10847, 9258, 9252, 9255, 9266, 9259, 9260,10847, 9262, 9270,
+ 9273, 9272, 9274, 9265, 9267, 9275, 9286, 9309,10847, 9285,
+ 9299, 9310,10847, 9300,10847,10847,10847, 9311, 9318, 9305,
+
+ 10847, 9320, 9307, 9297, 9312,10847, 9323, 9328, 9331, 9139,
+ 9317,10847,10847,10847, 9326, 9347, 9345,10847, 9339, 9336,
+ 10847, 9348,10847, 9341,10847, 9356, 9364, 9370, 9367,10847,
+ 9368, 9372, 9363, 9401,10847, 9365, 9380, 9382, 9384, 9386,
+ 9389, 9409,10847, 9415, 9412, 9413, 9419, 9403, 9410, 9404,
+ 9429, 9420, 9428, 9399, 9427,10847, 9439, 9445, 9448, 9456,
+ 9440, 9447, 9449,10847, 9451,10847, 9458,10847, 9455, 9460,
+ 9466, 9465, 9454, 9472, 9475, 9489, 9496, 9483, 9484, 9506,
+ 9499, 9487, 9486, 9509, 9517, 9500,10847,10847, 9525, 9515,
+ 10847, 9516, 9518, 9537,10847, 9520,10847, 9538,10847, 9524,
+
+ 9532,10847, 9545, 9539, 9549,10847,10847, 9553, 9542, 9551,
+ 9563, 9534, 9570, 9552,10847, 9572, 9569, 9566, 9568, 9574,
+ 10847, 9593,10847, 9582, 9596, 9587,10847,10847, 9581, 9578,
+ 9594, 9606, 9600, 9591, 9607, 9605, 9608, 9619, 9627, 9609,
+ 9613, 9621, 9624, 9622, 9642, 9644, 9649,10847,10847,10847,
+ 9646, 9636, 9662, 9659, 9657, 9666, 9652,10847, 9673, 9665,
+ 9675, 9648, 9686, 9681, 9682,10847, 9676, 9677, 9685, 9693,
+ 9690, 9692, 9700, 9687,10847, 9691, 9701, 9721, 9719, 9715,
+ 9725, 9731, 9732, 9734, 9726, 9736, 9727, 9718, 9746, 9742,
+ 10847,10847, 9739, 9733,10847, 9750, 9755,10847,10847, 9745,
+
+ 10847, 9743, 9753, 9759, 9757, 9767,10847, 9781, 9761, 9766,
+ 9769,10847, 9770, 9780, 9798, 9799, 9796,10847, 9786, 9806,
+ 9791, 9801, 9810, 9814,10847,10847, 9782, 9821,10847, 9822,
+ 9824, 9818, 9839, 9823, 9828, 9840, 9838,10847, 9848, 9849,
+ 9833, 9837, 9856, 9846, 9862,10847, 9863, 9850, 9866, 9867,
+ 10847, 9864, 9876, 9883, 9851, 9897,10847, 9899, 9885, 9879,
+ 9903,10847, 9891, 9912, 9894,10847,10847,10847, 9916, 9917,
+ 9918,10847,10847,10847, 9910,10847, 9920, 9928, 9921, 9923,
+ 10847, 9926,10847,10847, 9936, 7880, 9958, 9946, 9960, 9947,
+ 10847, 9949, 9952, 9962, 9948, 9950,10847,10847, 9965, 9968,
+
+ 9963, 9974, 9975, 9970, 9981, 9978,10847,10847, 9957, 9979,
+ 9996, 9995, 9988,10847, 9993,10007,10014,10008,10015,10018,
+ 10019,10009,10023,10020,10053,10038,10027,10022,10036,10035,
+ 10055,10039,10061,10073,10063,10070,10071,10059,10067,10847,
+ 10847,10075,10062,10847,10077,10082,10847,10065,10847,10078,
+ 10081,10093,10095,10847,10106,10107,10111,10112,10087,10847,
+ 10108,10115,10847,10116,10110,10109,10103,10847,10114,10124,
+ 10126,10125,10132,10136,10142,10130,10128,10847,10146,10160,
+ 10847,10847,10144,10163,10138,10167,10152,10847,10172,10182,
+ 10169,10173,10165,10180,10185,10847,10197,10177,10847,10847,
+
+ 10202,10193,10847,10213,10847,10189,10199,10847,10847,10847,
+ 10847,10847,10847,10847,10847,10212,10218,10847,10847,10209,
+ 10223,10227,10231,10847,10232,10847,10211,10228,10239,10233,
+ 10847,10238,10847,10224,10245,10257,10261,10254,10266,10255,
+ 10258,10260,10259,10246,10276,10283,10285,10294,10279,10289,
+ 10302,10290,10308,10293,10306,10847,10847,10847,10847,10316,
+ 10295,10314,10322,10323,10324,10332,10337,10320,10326,10341,
+ 10340,10343,10329,10347,10360,10349,10353,10356,10369,10357,
+ 10378,10379,10382,10847,10385,10371,10372,10393,10847,10380,
+ 10847,10376,10847,10847,10397,10399,10402,10389,10406,10407,
+
+ 10401,10398,10404,10409,10417,10847,10419,10847,10847,10847,
+ 10847,10418,10420,10847,10416,10428,10847,10429,10443,10433,
+ 10438,10441,10434,10457,10458,10464,10847,10847,10466,10455,
+ 10450,10471,10467,10479,10482,10487,10490,10496,10478,10493,
+ 10847,10502,10498,10504,10847,10507,10489,10505,10499,10514,
+ 10520,10517,10524,10847,10526,10847,10521,10531,10541,10523,
+ 10530,10539,10554,10551,10548,10847,10545,10558,10565,10573,
+ 10576,10575,10582,10568,10590,10586,10592,10593,10598,10599,
+ 10596,10603,10609,10847,10597,10610,10847,10607,10617,10619,
+ 10621,10626,10847,10631,10624,10633,10644,10641,10650,10847,
+
+ 10647,10659,10654,10847,10658,10847,10847,10664,10656,10668,
+ 10662,10666,10847,10847,10847,10727,10734,10741,10748,10755,
+ 10762,10769, 100,10776,10783,10790,10797,10804,10811,10818,
+ 10825,10832,10839
} ;
-static const flex_int16_t yy_def[3825] =
+static const flex_int16_t yy_def[3834] =
{ 0,
- 3806, 1, 3807, 3807, 3808, 3808, 3809, 3809, 3810, 3810,
- 3811, 3811, 3812, 3812, 3813, 3813, 3806, 3814, 3806, 3806,
- 3806, 3806, 3815, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3816, 3806, 3806, 3806,
- 3816, 3817, 3806, 3806, 3806, 3817, 3818, 3806, 3806, 3806,
- 3806, 3818, 3819, 3806, 3806, 3806, 3819, 3820, 3806, 3821,
- 3806, 3820, 3820, 3822, 3806, 3806, 3806, 3806, 3822, 3823,
- 3806, 3806, 3806, 3823, 3814, 3814, 3806, 3824, 3815, 3824,
- 3815, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3816, 3816, 3817, 3817, 3818, 3818, 3806, 3819, 3819, 3820,
- 3820, 3821, 3821, 3820, 3822, 3822, 3806, 3823, 3823, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3820, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3820, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3820, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3820, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3806, 3814, 3806, 3806, 3814, 3814, 3806, 3806,
-
- 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3820, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3806, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
-
- 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3820, 3820, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3820,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3820, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3806, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3806, 3814, 3814, 3814, 3820, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3806, 3806, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3806, 3814,
-
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3820, 3814, 3806, 3814,
- 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3806, 3814, 3806,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3806, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
-
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3806, 3806, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3806, 3814, 3814, 3820, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3806, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3820, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3806, 3806, 3814,
- 3814, 3814, 3814, 3814, 3806, 3806, 3814, 3806, 3814, 3806,
- 3814, 3814, 3806, 3806, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3806, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3820, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3806, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3806,
-
- 3806, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3806, 3814,
- 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3820, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3806, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3806, 3814, 3814, 3814, 3806, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3806, 3806, 3814, 3814, 3814, 3806, 3806, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3806, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3806, 3814, 3814, 3820, 3814, 3814, 3814, 3814, 3814, 3814,
-
- 3814, 3814, 3814, 3806, 3806, 3814, 3806, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806,
- 3814, 3814, 3814, 3806, 3814, 3806, 3806, 3806, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
-
- 3814, 3814, 3806, 3806, 3806, 3814, 3814, 3814, 3806, 3814,
- 3814, 3806, 3814, 3806, 3814, 3806, 3814, 3814, 3814, 3814,
- 3806, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3806, 3814,
- 3814, 3806, 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3806,
- 3814, 3814, 3806, 3814, 3814, 3814, 3806, 3806, 3814, 3814,
-
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3806, 3814, 3814, 3814, 3806, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3806,
- 3806, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3806, 3814, 3814, 3806, 3814, 3814, 3806, 3806,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
-
- 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3806, 3806, 3814, 3814, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3806, 3814, 3814, 3814, 3806, 3806, 3806, 3814,
- 3814, 3814, 3806, 3806, 3806, 3814, 3806, 3814, 3814, 3814,
- 3814, 3806, 3814, 3806, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3806, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3806, 3814,
-
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3806, 3806, 3814, 3814, 3806, 3814, 3814, 3806, 3814, 3806,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814,
- 3806, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3806, 3806, 3814, 3814, 3814, 3814, 3814, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3806,
- 3806, 3814, 3814, 3806, 3814, 3806, 3814, 3814, 3806, 3806,
-
- 3806, 3806, 3806, 3806, 3806, 3806, 3814, 3814, 3806, 3806,
- 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3814, 3814,
- 3814, 3806, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3806, 3806, 3806,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3806,
- 3814, 3806, 3814, 3806, 3806, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3806,
-
- 3806, 3806, 3814, 3814, 3806, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3806, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3806, 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
- 3814, 3814, 3814, 3814, 3806, 3814, 3814, 3806, 3814, 3814,
- 3814, 3814, 3814, 3806, 3814, 3814, 3814, 3814, 3814, 3814,
- 3806, 3814, 3814, 3814, 3806, 3814, 3806, 3806, 3814, 3814,
-
- 3814, 3814, 3814, 3806, 3806, 0, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806
+ 3815, 1, 3816, 3816, 3817, 3817, 3818, 3818, 3819, 3819,
+ 3820, 3820, 3821, 3821, 3822, 3822, 3815, 3823, 3815, 3815,
+ 3815, 3815, 3824, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3825, 3815, 3815, 3815,
+ 3825, 3826, 3815, 3815, 3815, 3826, 3827, 3815, 3815, 3815,
+ 3815, 3827, 3828, 3815, 3815, 3815, 3828, 3829, 3815, 3830,
+ 3815, 3829, 3829, 3831, 3815, 3815, 3815, 3815, 3831, 3832,
+ 3815, 3815, 3815, 3832, 3823, 3823, 3815, 3833, 3824, 3833,
+ 3824, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3825, 3825, 3826, 3826, 3827, 3827, 3815, 3828, 3828, 3829,
+ 3829, 3830, 3830, 3829, 3831, 3831, 3815, 3832, 3832, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3829, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3829, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3823, 3829, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3829, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3815, 3815, 3823, 3823,
+
+ 3815, 3815, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3829, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3829, 3829, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3829, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3815,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3829, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3829, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3815, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+
+ 3823, 3823, 3815, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3829, 3823, 3815, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3815, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
+ 3823, 3823, 3829, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3815, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3829, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3815, 3823, 3815, 3823, 3815, 3823,
+ 3823, 3815, 3815, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3829, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3815, 3815,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3815, 3815, 3823, 3815,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3815,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3829, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3815, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
+
+ 3815, 3823, 3823, 3823, 3815, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3815,
+
+ 3823, 3823, 3829, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3815, 3823, 3815, 3823, 3823, 3815, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3823, 3823, 3815, 3823, 3815, 3815, 3815, 3823, 3823, 3823,
+
+ 3815, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3815, 3815, 3815, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3815, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3815,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3815, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3815, 3823, 3815, 3823, 3815, 3823,
+
+ 3823, 3815, 3823, 3823, 3823, 3815, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3815, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3815,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3815, 3823, 3823, 3815, 3823, 3823, 3815, 3815, 3823,
+
+ 3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823, 3815, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3815, 3823, 3823, 3823, 3815, 3815, 3815, 3823, 3823,
+ 3823, 3815, 3815, 3815, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3815, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
+ 3815, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3815, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3815,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3815, 3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3815, 3815,
+
+ 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3823, 3823, 3815, 3815, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3815, 3815, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3815, 3823,
+ 3815, 3823, 3815, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
+
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3815, 3815, 3815,
+ 3815, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3815, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
+
+ 3823, 3823, 3823, 3815, 3823, 3815, 3815, 3823, 3823, 3823,
+ 3823, 3823, 3815, 3815, 0, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815
} ;
-static const flex_int16_t yy_nxt[10890] =
+static const flex_int16_t yy_nxt[10914] =
{ 0,
18, 19, 20, 21, 22, 23, 22, 18, 18, 18,
18, 18, 22, 24, 25, 26, 27, 28, 29, 18,
@@ -1698,7 +1701,7 @@ static const flex_int16_t yy_nxt[10890] =
86, 67, 19, 20, 21, 69, 70, 71, 19, 20,
21, 69, 70, 71, 81, 82, 83, 122, 109, 178,
178, 79, 72, 160, 171, 86, 98, 79, 72, 86,
- 138, 90, 84, 90, 90, 86, 90, 179, 110, 797,
+ 138, 90, 84, 90, 90, 86, 90, 179, 110, 799,
73, 86, 90, 86, 122, 109, 73, 426, 87, 72,
160, 84, 88, 161, 161, 72, 113, 138, 111, 177,
163, 176, 131, 163, 114, 110, 99, 86, 86, 91,
@@ -1717,7 +1720,7 @@ static const flex_int16_t yy_nxt[10890] =
158, 150, 86, 123, 159, 186, 129, 166, 130, 86,
151, 124, 164, 181, 86, 127, 152, 125, 185, 128,
162, 126, 86, 157, 153, 86, 149, 158, 150, 86,
- 490, 159, 186, 129, 154, 130, 132, 151, 155, 156,
+ 491, 159, 186, 129, 154, 130, 132, 151, 155, 156,
133, 184, 163, 152, 134, 163, 86, 86, 179, 86,
135, 153, 90, 136, 90, 90, 190, 90, 246, 86,
137, 154, 86, 132, 198, 155, 156, 133, 184, 86,
@@ -1733,7 +1736,7 @@ static const flex_int16_t yy_nxt[10890] =
192, 86, 86, 209, 86, 86, 86, 86, 193, 203,
144, 205, 86, 145, 194, 214, 195, 211, 204, 201,
146, 213, 196, 197, 147, 148, 206, 207, 210, 230,
- 209, 86, 212, 219, 208, 1250, 203, 86, 169, 86,
+ 209, 86, 212, 219, 208, 1254, 203, 86, 169, 86,
86, 167, 86, 86, 211, 204, 215, 222, 213, 216,
221, 229, 86, 206, 207, 210, 230, 220, 86, 212,
@@ -1742,1145 +1745,1149 @@ static const flex_int16_t yy_nxt[10890] =
228, 238, 235, 86, 220, 164, 233, 236, 226, 217,
218, 86, 86, 86, 223, 224, 237, 240, 234, 225,
86, 86, 227, 86, 86, 162, 232, 228, 238, 235,
- 239, 1410, 241, 233, 236, 226, 86, 251, 242, 86,
+ 239, 1415, 241, 233, 236, 226, 86, 251, 242, 86,
86, 86, 243, 237, 240, 245, 247, 248, 244, 86,
252, 86, 86, 86, 257, 253, 249, 239, 258, 241,
86, 86, 250, 86, 251, 242, 259, 269, 86, 243,
86, 260, 245, 247, 248, 244, 254, 252, 86, 261,
- 267, 257, 253, 249, 264, 3806, 86, 255, 86, 250,
+ 267, 257, 253, 249, 264, 3815, 86, 255, 86, 250,
86, 256, 270, 259, 269, 265, 262, 273, 260, 263,
86, 271, 268, 254, 86, 86, 261, 267, 86, 274,
- 275, 264, 86, 272, 255, 3806, 277, 86, 256, 270,
- 278, 276, 265, 262, 273, 86, 263, 3806, 271, 268,
- 86, 86, 3806, 86, 3806, 279, 274, 275, 86, 165,
+ 275, 264, 86, 272, 255, 3815, 277, 86, 256, 270,
+ 278, 276, 265, 262, 273, 86, 263, 3815, 271, 268,
+ 86, 86, 3815, 86, 3815, 279, 274, 275, 86, 165,
272, 165, 165, 277, 165, 178, 178, 278, 276, 170,
280, 170, 170, 90, 170, 90, 90, 281, 90, 171,
- 283, 175, 279, 175, 175, 3806, 175, 284, 288, 86,
+ 283, 175, 279, 175, 175, 3815, 175, 284, 288, 86,
285, 282, 86, 286, 86, 290, 291, 280, 293, 86,
- 287, 3806, 289, 86, 86, 86, 292, 283, 86, 86,
+ 287, 3815, 289, 86, 86, 86, 292, 283, 86, 86,
294, 173, 86, 295, 284, 288, 299, 285, 282, 300,
286, 86, 290, 291, 296, 293, 86, 287, 86, 289,
297, 86, 298, 292, 86, 310, 311, 294, 86, 323,
295, 314, 312, 299, 302, 86, 300, 313, 303, 86,
86, 86, 317, 318, 315, 316, 86, 297, 319, 298,
- 86, 86, 310, 311, 321, 304, 323, 86, 314, 3806,
- 324, 3806, 86, 322, 86, 303, 86, 86, 3806, 317,
- 318, 315, 316, 86, 325, 328, 320, 86, 3806, 349,
+ 86, 86, 310, 311, 321, 304, 323, 86, 314, 3815,
+ 324, 3815, 86, 322, 86, 303, 86, 86, 3815, 317,
+ 318, 315, 316, 86, 325, 328, 320, 86, 3815, 349,
86, 321, 304, 305, 86, 86, 86, 324, 306, 326,
- 322, 329, 327, 307, 3806, 330, 3806, 338, 337, 308,
+ 322, 329, 327, 307, 3815, 330, 3815, 338, 337, 308,
309, 325, 328, 320, 86, 86, 86, 336, 86, 340,
305, 86, 341, 86, 344, 306, 326, 86, 329, 327,
307, 86, 330, 342, 338, 337, 308, 309, 331, 86,
- 350, 332, 346, 333, 336, 86, 340, 3806, 352, 353,
- 3806, 344, 348, 354, 86, 334, 347, 335, 86, 357,
- 342, 355, 86, 358, 86, 331, 356, 350, 332, 3806,
- 333, 359, 86, 3806, 86, 361, 353, 86, 364, 348,
+ 350, 332, 346, 333, 336, 86, 340, 3815, 352, 353,
+ 3815, 344, 348, 354, 86, 334, 347, 335, 86, 357,
+ 342, 355, 86, 358, 86, 331, 356, 350, 332, 3815,
+ 333, 359, 86, 3815, 86, 361, 353, 86, 364, 348,
86, 86, 334, 347, 335, 86, 86, 360, 355, 365,
358, 86, 86, 356, 86, 362, 86, 366, 359, 367,
368, 369, 361, 371, 363, 364, 370, 372, 86, 86,
86, 86, 373, 86, 360, 374, 365, 86, 86, 378,
375, 86, 362, 376, 366, 382, 367, 368, 369, 86,
- 371, 363, 381, 370, 383, 377, 384, 86, 3806, 86,
+ 371, 363, 381, 370, 383, 377, 384, 86, 3815, 86,
86, 86, 374, 379, 380, 386, 86, 375, 86, 385,
376, 86, 86, 86, 388, 387, 389, 86, 86, 381,
- 390, 383, 377, 384, 391, 392, 393, 395, 86, 3806,
+ 390, 383, 377, 384, 391, 392, 393, 395, 86, 3815,
379, 380, 386, 394, 86, 86, 385, 398, 396, 86,
- 86, 399, 387, 3806, 3806, 401, 86, 390, 86, 86,
+ 86, 399, 387, 3815, 3815, 401, 86, 390, 86, 86,
403, 402, 392, 393, 86, 404, 86, 405, 400, 86,
- 394, 397, 3806, 86, 406, 171, 86, 407, 399, 86,
+ 394, 397, 3815, 86, 406, 171, 86, 407, 399, 86,
86, 86, 401, 86, 409, 408, 86, 403, 402, 86,
410, 411, 404, 412, 405, 400, 414, 413, 397, 86,
416, 406, 415, 418, 407, 419, 86, 417, 421, 422,
86, 409, 408, 86, 86, 86, 86, 420, 86, 86,
412, 86, 86, 86, 413, 423, 424, 416, 86, 415,
- 418, 425, 419, 427, 417, 421, 86, 428, 3806, 429,
- 437, 86, 86, 430, 420, 431, 434, 3806, 86, 86,
- 433, 86, 423, 424, 86, 438, 3806, 86, 425, 432,
+ 418, 425, 419, 427, 417, 421, 86, 428, 3815, 429,
+ 437, 86, 86, 430, 420, 431, 434, 3815, 86, 86,
+ 433, 86, 423, 424, 86, 438, 3815, 86, 425, 432,
427, 435, 436, 86, 428, 86, 429, 437, 439, 86,
430, 86, 431, 434, 86, 440, 441, 433, 442, 86,
86, 86, 443, 447, 448, 445, 432, 86, 435, 436,
- 450, 446, 452, 451, 3806, 439, 454, 86, 86, 444,
+ 450, 446, 452, 451, 3815, 439, 454, 86, 86, 444,
453, 86, 86, 441, 455, 86, 457, 86, 449, 443,
86, 86, 445, 86, 86, 86, 86, 450, 446, 452,
451, 456, 86, 454, 458, 459, 444, 453, 86, 86,
86, 455, 86, 457, 86, 449, 460, 461, 465, 464,
- 467, 462, 3806, 3806, 3806, 466, 86, 475, 456, 483,
- 492, 458, 459, 474, 86, 86, 86, 476, 463, 3806,
-
- 3806, 484, 86, 460, 461, 86, 464, 467, 462, 86,
- 86, 86, 466, 86, 475, 86, 483, 86, 485, 86,
- 474, 486, 487, 491, 476, 463, 468, 488, 484, 469,
- 495, 496, 489, 86, 470, 471, 472, 473, 3806, 512,
- 3806, 3806, 86, 86, 86, 485, 86, 86, 486, 487,
- 491, 3806, 519, 468, 3806, 3806, 469, 495, 496, 86,
- 499, 470, 471, 472, 473, 477, 493, 478, 500, 494,
- 501, 86, 497, 498, 3806, 503, 86, 504, 86, 479,
- 480, 481, 86, 482, 86, 3806, 86, 499, 526, 86,
- 502, 510, 477, 493, 478, 500, 494, 86, 86, 497,
-
- 498, 86, 503, 86, 504, 507, 479, 480, 481, 505,
- 482, 86, 86, 506, 508, 509, 511, 502, 510, 513,
- 86, 514, 518, 86, 517, 86, 533, 86, 86, 86,
- 515, 86, 507, 520, 3806, 532, 505, 516, 531, 534,
- 506, 508, 509, 511, 86, 86, 513, 521, 514, 518,
- 525, 517, 523, 522, 524, 86, 86, 515, 86, 576,
- 520, 86, 532, 86, 516, 531, 86, 3806, 535, 86,
- 527, 548, 591, 551, 521, 549, 86, 525, 86, 523,
- 522, 524, 579, 528, 552, 86, 529, 3806, 530, 86,
- 86, 86, 553, 550, 86, 535, 86, 527, 548, 86,
-
- 551, 3806, 549, 3806, 86, 86, 3806, 554, 556, 579,
- 528, 552, 566, 529, 565, 530, 536, 567, 537, 553,
- 550, 86, 568, 555, 538, 569, 86, 645, 539, 572,
- 86, 86, 570, 540, 554, 556, 541, 86, 571, 566,
- 575, 565, 86, 536, 171, 537, 86, 3806, 86, 86,
- 555, 538, 569, 574, 86, 539, 572, 3806, 573, 570,
- 540, 578, 86, 541, 542, 571, 543, 575, 577, 3806,
- 86, 86, 581, 671, 580, 588, 583, 86, 86, 544,
- 574, 582, 545, 1010, 546, 573, 547, 86, 578, 585,
- 86, 542, 586, 543, 584, 577, 86, 86, 86, 86,
-
- 671, 580, 588, 583, 86, 587, 544, 589, 582, 545,
- 590, 546, 86, 547, 557, 558, 585, 86, 592, 586,
- 594, 584, 86, 593, 559, 560, 561, 562, 563, 86,
- 86, 564, 587, 595, 589, 86, 596, 590, 597, 86,
- 86, 557, 558, 3806, 86, 592, 86, 594, 598, 599,
- 593, 559, 560, 561, 562, 563, 600, 601, 564, 86,
- 595, 604, 602, 603, 608, 597, 605, 606, 86, 86,
- 86, 86, 86, 607, 612, 598, 599, 86, 609, 610,
- 86, 3806, 615, 3806, 613, 86, 86, 616, 604, 602,
- 603, 608, 617, 605, 606, 86, 611, 86, 86, 614,
-
- 607, 612, 618, 86, 86, 609, 610, 86, 86, 615,
- 633, 613, 619, 86, 616, 620, 631, 632, 634, 617,
- 644, 86, 635, 611, 621, 622, 614, 636, 86, 618,
- 639, 640, 86, 638, 86, 86, 623, 633, 624, 619,
- 86, 86, 620, 86, 632, 634, 641, 644, 86, 635,
- 637, 621, 622, 86, 86, 86, 86, 639, 640, 86,
- 638, 3806, 642, 623, 643, 624, 625, 647, 86, 86,
- 646, 649, 648, 641, 626, 627, 3806, 637, 628, 629,
- 3806, 86, 630, 651, 650, 3806, 3806, 3806, 86, 642,
- 86, 643, 86, 625, 647, 86, 653, 646, 86, 648,
-
- 654, 626, 627, 86, 655, 628, 629, 86, 652, 630,
- 651, 650, 656, 657, 86, 663, 659, 658, 86, 660,
- 662, 661, 86, 653, 86, 86, 86, 654, 86, 664,
- 86, 655, 665, 3806, 86, 652, 667, 86, 666, 656,
- 657, 670, 663, 659, 658, 86, 660, 662, 661, 668,
- 672, 86, 669, 86, 673, 86, 664, 3806, 86, 665,
- 674, 3806, 86, 667, 675, 666, 86, 86, 670, 676,
- 677, 86, 678, 679, 681, 86, 668, 680, 86, 669,
- 86, 673, 86, 86, 86, 686, 688, 674, 86, 86,
- 690, 675, 689, 684, 687, 86, 676, 677, 692, 678,
-
- 679, 681, 86, 682, 680, 683, 685, 86, 699, 691,
- 86, 86, 86, 86, 695, 3806, 696, 86, 86, 689,
- 684, 687, 86, 693, 701, 692, 694, 697, 698, 86,
- 682, 86, 683, 685, 702, 3806, 691, 700, 86, 86,
- 86, 695, 86, 696, 86, 704, 86, 705, 86, 710,
- 693, 701, 708, 694, 697, 698, 706, 703, 86, 707,
- 709, 86, 713, 712, 700, 86, 86, 715, 711, 86,
- 86, 86, 704, 86, 705, 86, 710, 3806, 727, 708,
- 86, 86, 764, 706, 703, 86, 707, 709, 714, 713,
- 712, 724, 726, 725, 715, 711, 86, 3806, 86, 86,
-
- 728, 86, 3806, 729, 86, 727, 730, 3806, 86, 731,
- 3806, 748, 734, 86, 86, 714, 716, 86, 724, 726,
- 725, 717, 732, 718, 86, 86, 733, 728, 3806, 719,
- 729, 720, 86, 730, 721, 722, 731, 735, 748, 734,
- 743, 723, 86, 716, 86, 744, 3806, 739, 717, 732,
- 718, 86, 737, 733, 742, 738, 719, 736, 720, 86,
- 740, 721, 722, 86, 735, 86, 86, 743, 723, 86,
- 741, 745, 744, 746, 739, 86, 747, 3806, 749, 737,
- 86, 742, 738, 750, 736, 753, 751, 752, 754, 755,
- 757, 3806, 86, 769, 86, 86, 86, 741, 745, 86,
-
- 746, 86, 86, 747, 86, 749, 756, 759, 86, 760,
- 750, 86, 753, 751, 752, 754, 755, 757, 758, 86,
- 761, 762, 765, 763, 767, 86, 86, 766, 86, 768,
- 86, 770, 86, 756, 759, 774, 760, 86, 86, 86,
- 772, 773, 86, 86, 86, 758, 171, 761, 762, 765,
- 763, 767, 771, 776, 766, 86, 768, 777, 770, 778,
- 86, 86, 774, 86, 780, 783, 775, 772, 773, 86,
- 779, 781, 86, 782, 784, 791, 792, 786, 785, 771,
- 776, 793, 787, 798, 86, 86, 86, 86, 86, 86,
- 86, 86, 783, 775, 795, 796, 86, 779, 801, 86,
-
- 782, 784, 791, 86, 786, 785, 86, 788, 86, 787,
- 794, 799, 800, 802, 789, 86, 806, 790, 803, 804,
- 805, 86, 86, 810, 86, 86, 86, 807, 86, 811,
- 86, 86, 809, 808, 788, 812, 816, 794, 86, 86,
- 86, 789, 86, 806, 790, 86, 804, 805, 813, 815,
- 810, 86, 86, 86, 807, 86, 811, 86, 814, 809,
- 808, 818, 812, 817, 819, 820, 86, 821, 86, 822,
- 86, 823, 86, 86, 826, 813, 815, 3806, 825, 829,
- 86, 830, 86, 86, 86, 814, 827, 86, 818, 3806,
- 817, 819, 820, 824, 821, 86, 822, 86, 823, 86,
-
- 86, 826, 828, 86, 831, 825, 837, 3806, 830, 86,
- 832, 86, 836, 827, 838, 833, 839, 86, 834, 835,
- 824, 86, 840, 86, 843, 841, 844, 86, 3806, 828,
- 846, 831, 86, 837, 86, 842, 86, 832, 845, 836,
- 850, 838, 833, 839, 86, 834, 835, 86, 86, 840,
- 847, 843, 841, 849, 86, 852, 86, 846, 86, 851,
- 853, 857, 842, 854, 86, 845, 86, 850, 86, 86,
- 855, 856, 848, 86, 858, 86, 859, 847, 863, 867,
- 849, 86, 852, 86, 86, 861, 851, 853, 857, 862,
- 854, 86, 860, 86, 86, 86, 865, 855, 856, 848,
-
- 86, 86, 864, 859, 868, 863, 866, 86, 869, 870,
- 871, 86, 861, 86, 86, 872, 862, 873, 874, 860,
- 880, 86, 3806, 865, 876, 86, 86, 875, 878, 864,
- 877, 868, 86, 866, 881, 869, 86, 86, 86, 879,
- 86, 86, 872, 86, 873, 874, 882, 86, 883, 885,
- 86, 876, 86, 886, 875, 878, 86, 877, 884, 889,
- 86, 881, 887, 890, 86, 895, 879, 888, 3806, 3806,
- 3806, 86, 86, 86, 891, 883, 885, 86, 86, 896,
- 886, 892, 897, 898, 899, 884, 889, 86, 893, 894,
- 890, 86, 900, 901, 86, 905, 86, 86, 909, 903,
-
- 86, 891, 902, 910, 3806, 86, 896, 911, 892, 897,
- 898, 899, 3806, 86, 904, 893, 894, 906, 86, 900,
- 901, 907, 86, 86, 913, 915, 903, 86, 914, 902,
- 86, 908, 86, 86, 911, 912, 86, 86, 917, 916,
- 922, 904, 3806, 86, 906, 86, 923, 86, 907, 86,
- 86, 913, 915, 920, 918, 914, 924, 921, 908, 919,
- 932, 86, 912, 86, 86, 917, 916, 925, 86, 86,
- 926, 3806, 86, 923, 86, 934, 927, 3806, 931, 86,
- 920, 918, 86, 924, 921, 86, 919, 928, 86, 929,
- 86, 935, 86, 933, 925, 86, 936, 926, 930, 939,
-
- 86, 937, 934, 927, 86, 931, 86, 86, 3806, 938,
- 940, 3806, 971, 86, 928, 942, 929, 86, 935, 86,
- 933, 941, 86, 936, 86, 930, 939, 945, 937, 943,
- 944, 946, 86, 947, 948, 86, 938, 940, 86, 86,
- 949, 950, 942, 952, 86, 957, 951, 86, 941, 953,
- 954, 86, 955, 86, 945, 86, 943, 944, 946, 86,
- 947, 948, 959, 86, 86, 86, 86, 949, 950, 956,
- 952, 958, 957, 951, 86, 960, 953, 954, 963, 955,
- 86, 961, 86, 962, 964, 86, 86, 966, 3806, 959,
- 965, 967, 3806, 972, 969, 3806, 956, 86, 958, 86,
-
- 86, 86, 960, 968, 970, 963, 86, 86, 961, 86,
- 962, 964, 86, 973, 966, 171, 86, 965, 967, 86,
- 972, 969, 974, 975, 976, 989, 977, 981, 978, 980,
- 968, 970, 3806, 979, 3806, 86, 86, 86, 86, 982,
- 973, 986, 86, 984, 987, 86, 86, 983, 985, 974,
- 975, 976, 86, 977, 86, 978, 980, 86, 992, 988,
- 979, 990, 86, 86, 993, 86, 982, 86, 986, 86,
- 991, 987, 996, 995, 983, 86, 994, 86, 86, 86,
- 997, 86, 86, 999, 1009, 992, 988, 1001, 990, 998,
- 3806, 993, 86, 1000, 86, 86, 86, 991, 1011, 86,
-
- 995, 3806, 1058, 994, 86, 1012, 1013, 997, 86, 86,
- 999, 1009, 3806, 1014, 1001, 1015, 998, 1016, 86, 3806,
- 1000, 1002, 1018, 86, 1003, 1011, 1017, 86, 1004, 86,
- 1019, 1005, 1012, 1013, 1020, 86, 86, 86, 1006, 1007,
- 1014, 1008, 1015, 1021, 1016, 86, 86, 1025, 1002, 1018,
- 1035, 1003, 3806, 1017, 1022, 1004, 86, 1019, 1005, 86,
- 86, 1020, 1023, 86, 1024, 1006, 1007, 1034, 1008, 1073,
- 1021, 86, 86, 1037, 86, 86, 1079, 1035, 1036, 86,
- 1039, 1022, 86, 86, 86, 3806, 3806, 3806, 1038, 1023,
- 1040, 1024, 1026, 1027, 1034, 1028, 1043, 3806, 1029, 1042,
-
- 1037, 86, 1044, 1030, 86, 1036, 1041, 1039, 86, 1031,
- 1032, 86, 1033, 86, 1047, 1038, 1045, 1040, 86, 1026,
- 1027, 86, 1028, 1043, 86, 1029, 1042, 1050, 86, 1044,
- 1030, 1051, 1046, 1041, 86, 1048, 1031, 1032, 86, 1033,
- 1049, 1047, 1053, 1045, 1052, 3806, 1054, 86, 1055, 3806,
- 1056, 1059, 3806, 1060, 1050, 3806, 86, 86, 1051, 1046,
- 1057, 1062, 3806, 1083, 86, 3806, 1065, 86, 86, 1053,
- 86, 1052, 86, 1054, 86, 1055, 86, 1056, 1059, 1063,
- 1060, 1061, 86, 1064, 86, 86, 86, 1057, 1062, 86,
- 1066, 86, 1067, 1065, 1068, 86, 1069, 1071, 1072, 1075,
-
- 1070, 3806, 1085, 86, 86, 3806, 1063, 86, 1061, 86,
- 1064, 1074, 86, 1076, 1078, 1084, 86, 1066, 1077, 1067,
- 1080, 1068, 86, 1069, 1071, 1072, 86, 1070, 1082, 86,
- 1086, 1081, 1087, 86, 86, 86, 86, 86, 1074, 86,
- 1089, 1078, 1084, 1088, 1090, 86, 1092, 1080, 1096, 3806,
- 1094, 1091, 1093, 86, 86, 1082, 1104, 1086, 1081, 1087,
- 86, 86, 86, 1095, 1100, 86, 1102, 86, 86, 1098,
- 1088, 86, 86, 1092, 1097, 1096, 1099, 1094, 1091, 1093,
- 86, 1101, 1103, 86, 86, 86, 86, 1106, 86, 1105,
- 1095, 86, 1107, 1102, 1108, 86, 1098, 1109, 86, 86,
-
- 86, 1097, 1112, 1099, 1111, 1110, 1113, 3806, 1101, 86,
- 86, 3806, 86, 1114, 1106, 1115, 1105, 86, 1117, 1107,
- 86, 1108, 1122, 1116, 1109, 86, 86, 1118, 86, 1112,
- 86, 1111, 1110, 1113, 1119, 86, 86, 3806, 1121, 1120,
- 1114, 86, 1115, 1123, 1124, 1117, 1125, 1130, 86, 1122,
- 1116, 86, 86, 1126, 1118, 86, 86, 3806, 1127, 1131,
- 1128, 1133, 3806, 1132, 86, 1121, 86, 86, 1129, 86,
- 1123, 1124, 86, 1125, 1130, 1134, 1135, 3806, 1145, 1140,
- 1126, 86, 1136, 86, 86, 1127, 86, 1128, 1133, 86,
- 1132, 1138, 1137, 1139, 1142, 1129, 86, 86, 86, 86,
-
- 86, 1141, 1134, 1135, 1143, 86, 1140, 1144, 1146, 1136,
- 86, 1148, 1147, 86, 1152, 86, 1149, 86, 1138, 1137,
- 1139, 1142, 86, 1150, 86, 1151, 86, 86, 1141, 1153,
- 1155, 1143, 1154, 86, 1144, 1146, 86, 1156, 1148, 1147,
- 1157, 1152, 86, 1149, 1158, 86, 86, 86, 1159, 1160,
- 1150, 1161, 1151, 1163, 86, 86, 1153, 86, 86, 1154,
- 1162, 86, 86, 1164, 1156, 86, 1165, 1157, 86, 1166,
- 86, 1158, 1167, 86, 3806, 1159, 1160, 1169, 1161, 1168,
- 1163, 1170, 1172, 1173, 1171, 3806, 3806, 1162, 1181, 1174,
- 1164, 86, 86, 1165, 86, 1175, 1178, 3806, 1180, 1179,
-
- 1182, 86, 1176, 86, 86, 86, 1168, 1183, 1170, 86,
- 1177, 1171, 86, 1185, 86, 86, 1174, 86, 86, 1184,
- 86, 1186, 1175, 1178, 86, 1180, 1179, 86, 86, 1176,
- 1188, 86, 86, 1190, 1183, 1187, 1189, 1177, 1194, 1196,
- 1185, 1191, 86, 1195, 1197, 86, 1184, 1198, 3806, 3806,
- 3806, 86, 3806, 86, 1192, 86, 1193, 86, 1202, 1199,
- 1190, 1247, 1187, 1189, 86, 86, 1196, 86, 1191, 1200,
- 171, 1197, 1201, 86, 1198, 1204, 86, 1205, 86, 1203,
- 86, 1192, 1206, 1193, 86, 1202, 1199, 86, 1209, 1207,
- 86, 1208, 3806, 86, 86, 86, 1200, 1218, 86, 1201,
-
- 3806, 1216, 1204, 86, 1205, 3806, 1203, 1217, 1220, 1206,
- 3806, 1221, 3806, 86, 1219, 1209, 1207, 1224, 1208, 1210,
- 86, 1211, 3806, 86, 1218, 1212, 86, 1213, 1216, 86,
- 1222, 1223, 1214, 86, 1217, 86, 1225, 1215, 1221, 1226,
- 1228, 1219, 1227, 86, 1224, 1229, 1210, 1230, 1211, 86,
- 1234, 1240, 1212, 86, 1213, 86, 1232, 1222, 1223, 1214,
- 1231, 86, 86, 1225, 1215, 86, 1226, 1237, 1233, 1227,
- 1235, 1238, 86, 86, 1230, 1239, 1242, 1234, 86, 86,
- 1236, 1243, 86, 1232, 1241, 1245, 3806, 1231, 86, 86,
- 86, 1244, 86, 86, 1237, 1233, 1248, 1235, 1238, 86,
-
- 1246, 1251, 1239, 1242, 1249, 1252, 86, 1236, 1243, 1253,
- 86, 1241, 1245, 86, 1254, 3806, 1263, 86, 1244, 1262,
- 3806, 3806, 86, 86, 1264, 1265, 1267, 1246, 86, 3806,
- 1266, 86, 1252, 86, 86, 1268, 1253, 86, 86, 1270,
- 86, 1254, 1255, 1263, 3806, 1269, 1262, 1256, 86, 1257,
- 86, 1264, 1265, 1267, 86, 1258, 86, 1266, 86, 1274,
- 1259, 1260, 1268, 1272, 1271, 1273, 1270, 1261, 86, 1255,
- 86, 86, 1269, 86, 1256, 1275, 1257, 86, 1276, 3806,
- 3806, 1277, 1258, 1285, 1278, 1282, 1274, 1259, 1260, 1280,
- 1272, 1271, 1273, 86, 1261, 1279, 86, 1283, 86, 1286,
-
- 86, 1281, 1284, 1288, 1289, 1276, 86, 86, 1277, 86,
- 86, 1278, 86, 1287, 1290, 86, 1280, 1291, 86, 3806,
- 86, 86, 1279, 86, 1283, 86, 1286, 1292, 1281, 1284,
- 1288, 1289, 1293, 1294, 1295, 86, 1296, 1297, 3806, 86,
- 1287, 3806, 1300, 1299, 1291, 86, 86, 3806, 1298, 86,
- 86, 86, 1306, 1301, 1292, 86, 86, 1303, 1304, 1293,
- 1294, 1295, 3806, 1305, 1297, 86, 86, 1302, 86, 1300,
- 1299, 1308, 86, 86, 86, 1298, 86, 1307, 1309, 1306,
- 1301, 86, 1310, 3806, 1303, 1304, 1311, 86, 1313, 86,
- 1305, 1315, 1314, 86, 1302, 86, 1312, 3806, 86, 86,
-
- 1318, 1316, 1317, 86, 1307, 1309, 1324, 1323, 1319, 1310,
- 86, 86, 86, 1311, 86, 1313, 1320, 1321, 1315, 1322,
- 1325, 1326, 1327, 1312, 86, 86, 3806, 1318, 1316, 1317,
- 86, 1329, 86, 1324, 1323, 1319, 1328, 1331, 86, 86,
- 86, 86, 1332, 1320, 1321, 86, 1322, 1335, 86, 1327,
- 1330, 1336, 86, 86, 1333, 1337, 1340, 1334, 1329, 86,
- 1338, 86, 1339, 1328, 1344, 1345, 3806, 86, 86, 86,
- 1341, 1342, 86, 86, 1335, 86, 86, 1330, 1336, 86,
- 86, 1333, 1337, 1340, 1334, 86, 1346, 1338, 1343, 1339,
- 1347, 3806, 1345, 1349, 1348, 1351, 86, 1341, 1342, 1350,
-
- 86, 1352, 86, 3806, 3806, 1353, 86, 86, 1354, 1357,
- 1364, 1356, 1355, 1360, 3806, 1343, 86, 1347, 86, 86,
- 1349, 1348, 1351, 86, 1358, 86, 1350, 86, 1352, 86,
- 86, 86, 1353, 1359, 86, 1354, 1357, 1362, 1356, 1355,
- 1360, 1361, 86, 1363, 1365, 1366, 86, 1367, 86, 86,
- 3806, 1358, 86, 1368, 3806, 1369, 86, 1370, 86, 1371,
- 1359, 1373, 1372, 86, 1362, 1374, 86, 86, 1361, 86,
- 1363, 86, 1366, 1375, 1367, 1376, 1377, 86, 1380, 86,
- 1368, 86, 1369, 1382, 1370, 86, 1371, 1378, 1373, 1372,
- 1379, 1381, 1374, 1384, 1383, 1386, 1385, 1387, 1388, 3806,
-
- 3806, 3806, 86, 86, 1389, 86, 1391, 86, 86, 86,
- 86, 1390, 86, 86, 1378, 86, 86, 1379, 1381, 86,
- 1384, 1383, 86, 1385, 1387, 86, 1392, 86, 86, 86,
- 1394, 1389, 1393, 1391, 1395, 86, 1396, 3806, 1390, 1398,
- 86, 1399, 1397, 1400, 1401, 1402, 1405, 1407, 86, 3806,
- 3806, 86, 86, 1392, 86, 1403, 86, 1394, 86, 1393,
- 86, 1395, 1404, 1396, 86, 1408, 1398, 86, 1399, 1397,
- 1400, 1406, 1409, 86, 1407, 1412, 86, 86, 1411, 86,
- 86, 86, 1403, 1413, 86, 1416, 1414, 86, 86, 1404,
- 1417, 86, 1408, 86, 1418, 1415, 1419, 1420, 1406, 1409,
-
- 1423, 1421, 1412, 86, 171, 1411, 1427, 1422, 1424, 86,
- 1413, 1425, 86, 1414, 86, 86, 86, 1417, 86, 86,
- 1426, 1418, 1415, 1419, 1420, 1429, 1430, 1423, 1421, 86,
- 86, 3806, 86, 86, 1422, 1424, 1428, 1431, 1425, 1432,
- 1433, 3806, 3806, 86, 1434, 3806, 1435, 1426, 1436, 86,
- 86, 1440, 1437, 1441, 1438, 1445, 3806, 86, 86, 86,
- 1439, 86, 86, 1428, 1431, 86, 1432, 1433, 86, 86,
- 1442, 1434, 86, 1435, 1443, 1436, 86, 86, 1440, 1437,
- 1441, 1438, 86, 1444, 1447, 1446, 86, 1439, 1449, 1451,
- 86, 86, 1450, 1448, 1459, 1452, 86, 1442, 86, 3806,
-
- 86, 1443, 86, 1456, 1453, 1458, 1454, 86, 1457, 1455,
- 1444, 1447, 1446, 86, 3806, 1449, 1451, 86, 1460, 1450,
- 1448, 86, 1452, 1462, 1461, 1469, 86, 86, 1465, 1468,
- 1456, 1453, 1458, 1454, 86, 1457, 1455, 86, 86, 1466,
- 1463, 1467, 1470, 1464, 86, 1460, 86, 86, 86, 86,
- 1462, 1461, 86, 1474, 1473, 1465, 1468, 86, 1471, 1472,
- 1475, 86, 86, 3806, 86, 1479, 1466, 1463, 1467, 1470,
- 1464, 86, 1476, 1478, 3806, 86, 1477, 1481, 1480, 1482,
- 86, 1473, 86, 86, 1484, 1471, 1472, 1475, 86, 86,
- 1483, 86, 1479, 1485, 86, 86, 86, 1486, 86, 1476,
-
- 1478, 1487, 1489, 1477, 1481, 1480, 1482, 1488, 86, 86,
- 86, 1484, 1490, 1493, 1491, 1492, 1494, 1483, 86, 1495,
- 1485, 86, 86, 86, 1486, 86, 1496, 1498, 1487, 1489,
- 1497, 1505, 86, 86, 1488, 1499, 86, 86, 1500, 1490,
- 1493, 1491, 1492, 1494, 1501, 86, 86, 86, 1502, 1504,
- 1503, 86, 86, 1496, 1498, 1509, 86, 1497, 1507, 86,
- 1506, 86, 1499, 86, 1510, 1500, 1508, 86, 86, 1512,
- 1513, 1501, 1511, 1514, 1530, 1502, 1504, 1503, 86, 86,
- 86, 1515, 1509, 86, 1520, 1518, 1516, 1506, 86, 1519,
- 86, 1510, 86, 1508, 1517, 1534, 1512, 1513, 86, 1511,
-
- 1514, 1528, 86, 86, 3806, 1529, 86, 3806, 3806, 1531,
- 86, 1520, 1518, 86, 3806, 86, 1519, 3806, 3806, 1532,
- 1533, 1517, 1521, 86, 1537, 1538, 1522, 86, 1528, 1523,
- 1524, 86, 1529, 1535, 1525, 86, 1531, 1536, 86, 1539,
- 1526, 86, 1544, 1545, 1527, 1543, 1532, 1533, 86, 1521,
- 86, 1537, 1538, 1522, 86, 86, 1523, 1524, 1546, 86,
- 1535, 1525, 1542, 1547, 1536, 86, 1539, 1526, 1540, 86,
- 1541, 1527, 1543, 1548, 86, 86, 1549, 1551, 1550, 1552,
- 86, 86, 86, 1554, 3806, 1546, 86, 1553, 3806, 1542,
- 1547, 86, 86, 1557, 1555, 1540, 1556, 1541, 86, 1564,
-
- 1548, 1565, 3806, 1549, 1551, 1550, 3806, 86, 86, 1568,
- 1563, 86, 86, 1597, 1553, 86, 86, 1566, 1567, 86,
- 1557, 1555, 1569, 1556, 1558, 86, 1564, 86, 1565, 1559,
- 1572, 1560, 86, 1561, 1571, 1562, 1568, 1563, 1570, 86,
- 86, 86, 86, 3806, 3806, 86, 86, 1574, 1573, 1569,
- 86, 1558, 1575, 1576, 1577, 1579, 1559, 1572, 1560, 1578,
- 1561, 1571, 1562, 1580, 86, 1570, 86, 1581, 1585, 1586,
- 1582, 86, 86, 3806, 1584, 1573, 86, 86, 86, 86,
- 1576, 1577, 1579, 1583, 1587, 86, 1578, 86, 1588, 1589,
- 1580, 86, 1590, 1591, 1581, 86, 1586, 1582, 1593, 86,
-
- 86, 1584, 86, 1592, 1594, 1596, 86, 86, 1599, 1602,
- 1583, 1587, 1600, 86, 86, 1588, 1589, 1598, 86, 1590,
- 1591, 86, 1595, 1601, 86, 1593, 1606, 86, 1608, 86,
- 1592, 1594, 1596, 86, 86, 86, 1602, 1603, 1604, 1600,
- 1605, 3806, 1609, 1614, 1598, 1607, 86, 3806, 86, 1595,
- 1601, 1610, 86, 86, 1611, 86, 1612, 1613, 86, 86,
- 86, 1616, 86, 86, 1603, 1604, 1617, 1605, 86, 1609,
- 86, 86, 1607, 86, 1620, 1615, 1619, 1621, 1610, 1618,
- 1622, 1611, 86, 1612, 1613, 1623, 86, 1624, 1616, 3806,
- 86, 1625, 3806, 1617, 86, 86, 86, 1627, 1629, 1626,
-
- 3806, 1620, 1615, 86, 1621, 86, 1618, 1622, 86, 1628,
- 1630, 86, 1623, 86, 1624, 1632, 1631, 3806, 1625, 86,
- 86, 1634, 86, 1633, 1627, 1629, 1626, 1635, 1640, 86,
- 1637, 1636, 1638, 1641, 1642, 1644, 1628, 1630, 86, 86,
- 86, 1639, 1632, 1631, 1643, 86, 1645, 86, 1634, 86,
- 1633, 86, 86, 1647, 1635, 86, 86, 1637, 1636, 1638,
- 86, 1642, 1646, 1648, 86, 86, 86, 86, 1639, 86,
- 86, 1643, 1649, 1645, 1650, 1651, 1652, 1655, 1654, 86,
- 1647, 86, 1653, 1656, 86, 86, 1657, 1658, 1660, 1646,
- 86, 1664, 3806, 86, 171, 1659, 86, 3806, 1668, 1649,
-
- 1661, 1650, 1651, 1652, 1655, 1654, 1662, 86, 86, 1653,
- 1663, 86, 1665, 86, 1658, 86, 1666, 86, 86, 86,
- 86, 1667, 1659, 86, 1669, 1668, 1675, 1661, 1670, 1672,
- 1671, 86, 86, 1662, 86, 86, 1673, 1663, 86, 1665,
- 1674, 1676, 1677, 1666, 1678, 86, 1679, 1684, 1667, 86,
- 86, 1669, 86, 86, 1683, 1670, 1672, 1671, 86, 86,
- 1680, 1682, 1685, 1673, 86, 1681, 86, 1674, 1676, 1677,
- 86, 1678, 86, 1679, 1684, 86, 1691, 1689, 1686, 1687,
- 1690, 1683, 1688, 1692, 1693, 1694, 1696, 3806, 1682, 1685,
- 86, 86, 86, 1695, 86, 1697, 3806, 86, 3806, 86,
-
- 1698, 1702, 86, 1691, 1689, 1686, 1687, 1690, 86, 1688,
- 1692, 1693, 1701, 1696, 1699, 1703, 86, 86, 1700, 86,
- 1695, 86, 86, 86, 1704, 1705, 1706, 86, 1702, 1708,
- 1709, 1710, 1707, 86, 86, 1711, 86, 86, 1712, 1701,
- 86, 1699, 1703, 86, 86, 1700, 86, 1713, 1716, 3806,
- 3806, 1704, 1705, 1706, 86, 1715, 1708, 1709, 1710, 1707,
- 1714, 1717, 1711, 86, 86, 1712, 1718, 1719, 1720, 86,
- 86, 1721, 1722, 3806, 1713, 86, 86, 86, 1723, 1724,
- 86, 86, 1715, 86, 86, 1726, 86, 1714, 1717, 1725,
- 1728, 1727, 1730, 1718, 1719, 1720, 1729, 1733, 1721, 1722,
-
- 86, 86, 86, 86, 1731, 1723, 1724, 86, 1732, 86,
- 86, 1735, 1726, 1736, 1734, 86, 1725, 1728, 1727, 1730,
- 86, 86, 1737, 1729, 1733, 1739, 1738, 3806, 1740, 1741,
- 86, 1731, 1742, 1745, 1743, 1732, 1744, 86, 1735, 86,
- 86, 1734, 1746, 86, 1747, 86, 1748, 3806, 1752, 3806,
- 86, 86, 1739, 1738, 86, 86, 1741, 1753, 86, 1742,
- 1749, 1743, 1755, 1744, 1754, 86, 1758, 3806, 1756, 3806,
- 1760, 86, 86, 1748, 86, 86, 86, 1757, 86, 1750,
- 86, 1751, 86, 86, 1753, 1759, 86, 1749, 1762, 1755,
- 86, 1754, 1761, 1758, 1763, 1756, 86, 1760, 1764, 86,
-
- 1771, 1765, 1774, 1770, 1757, 86, 1750, 86, 1751, 86,
- 86, 86, 1759, 1766, 1775, 1762, 86, 1768, 1767, 1761,
- 86, 1763, 1769, 1772, 1773, 1764, 86, 1771, 1765, 1774,
- 1770, 86, 86, 1777, 1776, 1778, 86, 1779, 3806, 1781,
- 86, 1775, 86, 1780, 86, 86, 1782, 1783, 86, 86,
- 1772, 1773, 1785, 86, 1784, 86, 1786, 1788, 1787, 86,
- 1777, 1776, 1778, 1789, 86, 86, 1781, 1791, 1790, 86,
- 1780, 86, 1792, 1782, 1783, 86, 1796, 1799, 1795, 86,
- 86, 1784, 86, 1786, 86, 1787, 86, 1798, 1793, 86,
- 1789, 86, 1794, 1802, 1791, 1790, 86, 1797, 1800, 1792,
-
- 86, 86, 1801, 1796, 1799, 1795, 86, 1803, 86, 86,
- 86, 1804, 3806, 86, 1798, 1793, 1807, 1805, 1806, 1794,
- 1802, 1808, 1809, 1810, 1797, 1800, 1814, 1815, 1822, 1801,
- 86, 3806, 3806, 86, 86, 86, 1816, 86, 86, 86,
- 86, 86, 1811, 1807, 1805, 1806, 1812, 1820, 1808, 1809,
- 1810, 86, 1817, 1814, 1815, 1818, 1821, 1819, 86, 1813,
- 86, 1824, 86, 1816, 86, 1823, 1825, 86, 86, 1811,
- 1827, 3806, 1826, 1812, 86, 86, 3806, 86, 86, 1817,
- 1828, 1830, 1818, 1821, 1819, 1833, 1813, 1831, 1824, 1829,
- 86, 1834, 1823, 86, 86, 1832, 86, 1827, 86, 1826,
-
- 1835, 1836, 86, 86, 1837, 86, 3806, 1828, 1830, 86,
- 86, 1839, 1838, 1840, 1831, 1842, 1829, 86, 86, 1841,
- 1843, 1844, 1832, 1851, 1845, 1846, 86, 1835, 3806, 1847,
- 1848, 1837, 1853, 86, 86, 86, 86, 86, 1839, 1838,
- 86, 86, 86, 1849, 86, 86, 1841, 1843, 86, 86,
- 1851, 1845, 1846, 1850, 86, 1852, 1847, 1848, 86, 1853,
- 86, 1854, 86, 1855, 1856, 1857, 1858, 1859, 1860, 86,
- 1849, 1861, 86, 86, 1862, 1864, 3806, 86, 1865, 86,
- 1850, 1866, 1852, 86, 1863, 86, 1871, 86, 1854, 86,
- 1855, 1856, 1857, 1858, 86, 1860, 86, 1867, 1861, 86,
-
- 1868, 1862, 1864, 1869, 1870, 1865, 1872, 86, 1866, 86,
- 86, 1863, 1873, 86, 1874, 1875, 86, 3806, 1876, 86,
- 86, 1877, 1880, 1878, 1867, 86, 86, 1868, 1879, 86,
- 1869, 1870, 1881, 1872, 1882, 1884, 86, 86, 1883, 1873,
- 86, 1874, 1875, 1885, 86, 1876, 86, 1886, 1877, 1880,
- 1878, 1887, 86, 1890, 171, 1879, 86, 86, 86, 86,
- 1893, 1882, 1884, 1892, 86, 1883, 86, 1888, 1889, 1891,
- 1885, 86, 1895, 1898, 1886, 86, 1894, 1896, 1887, 86,
- 1890, 86, 1901, 1897, 86, 1900, 86, 1893, 1899, 86,
- 1892, 86, 1902, 1904, 1888, 1889, 1891, 1906, 86, 1895,
-
- 86, 1903, 3806, 1894, 1896, 1907, 86, 86, 1908, 1901,
- 1897, 1905, 1900, 1909, 1910, 1899, 1911, 86, 86, 1902,
- 3806, 86, 86, 86, 86, 86, 1912, 86, 1903, 86,
- 1913, 1914, 1907, 1915, 86, 1908, 1916, 1917, 1905, 1918,
- 86, 1910, 1919, 1911, 1920, 1928, 1921, 86, 86, 3806,
- 86, 3806, 86, 1912, 86, 1923, 1922, 1913, 1914, 86,
- 1915, 1932, 86, 1916, 1917, 86, 1918, 1924, 86, 1919,
- 86, 1920, 86, 1921, 86, 1925, 1929, 86, 1926, 86,
- 1930, 1936, 1923, 1922, 1933, 1934, 1935, 86, 1932, 1937,
- 1927, 3806, 86, 1938, 1924, 1939, 1931, 1940, 86, 86,
-
- 1943, 1950, 1925, 1929, 86, 1926, 86, 1930, 86, 1941,
- 86, 1933, 1934, 1935, 1942, 1944, 1937, 1927, 1947, 86,
- 1945, 1946, 1948, 1931, 1940, 86, 86, 86, 1949, 86,
- 86, 1951, 86, 86, 86, 86, 1941, 86, 1952, 1953,
- 86, 1942, 1944, 1954, 1957, 1947, 1955, 1945, 1946, 1948,
- 86, 3806, 86, 1959, 1956, 1949, 1958, 1960, 1963, 1962,
- 1961, 86, 86, 86, 86, 86, 1953, 86, 1970, 1964,
- 86, 86, 86, 1955, 3806, 86, 86, 1965, 86, 1966,
- 1959, 1956, 86, 1958, 1960, 1963, 1962, 1961, 1967, 1968,
- 86, 86, 86, 86, 1969, 1970, 1964, 86, 1972, 1971,
-
- 1975, 1976, 1977, 1979, 1965, 1973, 1966, 86, 1974, 86,
- 86, 1978, 3806, 1983, 86, 1967, 1968, 86, 86, 3806,
- 86, 1969, 86, 86, 1980, 1972, 1971, 1975, 1981, 1977,
- 1979, 1984, 1973, 86, 1985, 1974, 1986, 86, 1978, 86,
- 1983, 1988, 1987, 86, 1989, 1990, 1982, 1991, 3806, 86,
- 1992, 1980, 86, 86, 3806, 1981, 86, 86, 1984, 2004,
- 86, 86, 1994, 1986, 86, 1996, 1993, 1995, 1988, 1987,
- 86, 1989, 1990, 1982, 1991, 86, 1999, 1992, 1997, 86,
- 86, 1998, 2002, 2000, 86, 86, 86, 86, 2001, 1994,
- 2003, 2005, 1996, 1993, 1995, 86, 86, 2006, 2007, 2008,
-
- 2009, 3806, 2010, 1999, 3806, 1997, 2012, 86, 1998, 2002,
- 2000, 2011, 86, 2013, 86, 2001, 86, 2003, 86, 86,
- 2014, 2016, 3806, 86, 2006, 2007, 2008, 86, 86, 2010,
- 2015, 2017, 2019, 2012, 2018, 86, 86, 3806, 2011, 86,
- 2013, 2020, 2025, 86, 86, 86, 2024, 2014, 2016, 86,
- 86, 2021, 2023, 2026, 2022, 86, 2027, 2015, 2017, 2019,
- 2028, 2018, 2030, 2029, 86, 2033, 2035, 86, 2020, 86,
- 2034, 86, 2031, 2024, 86, 2032, 86, 86, 2021, 2023,
- 86, 2022, 2037, 2027, 86, 86, 86, 2028, 86, 2030,
- 2029, 2036, 2038, 2035, 2039, 3806, 2041, 86, 2040, 2031,
-
- 3806, 86, 2032, 2045, 3806, 2049, 86, 86, 2042, 2037,
- 2043, 3806, 2050, 2047, 2044, 2051, 2048, 2046, 2036, 2038,
- 86, 2039, 86, 2041, 86, 2040, 86, 86, 2052, 86,
- 2045, 86, 2049, 2061, 86, 2042, 86, 2043, 86, 2050,
- 2047, 2044, 2051, 2048, 2046, 2053, 2054, 2056, 2058, 2057,
- 2060, 2055, 3806, 86, 86, 2052, 2063, 2059, 2062, 2064,
- 86, 86, 2067, 86, 3806, 86, 2065, 86, 2066, 2068,
- 2072, 2076, 2053, 2069, 2056, 2058, 2057, 2060, 86, 86,
- 86, 86, 2070, 86, 2059, 2062, 2071, 2073, 86, 86,
- 86, 86, 2074, 2065, 86, 2066, 2068, 2078, 2075, 86,
-
- 2069, 86, 86, 86, 2077, 86, 2082, 2079, 2081, 2070,
- 2080, 2083, 2084, 2071, 2073, 86, 86, 3806, 86, 2074,
- 2091, 2089, 2085, 86, 2078, 2075, 86, 86, 86, 86,
- 2086, 2077, 2087, 2082, 2079, 2081, 2093, 2080, 2083, 2084,
- 86, 2088, 2090, 2092, 86, 86, 2095, 2094, 86, 2085,
- 2099, 2096, 86, 2097, 86, 2101, 2098, 2086, 86, 2087,
- 86, 86, 86, 2093, 86, 2100, 2102, 2104, 2088, 2090,
- 2103, 86, 2105, 86, 2094, 86, 86, 86, 2096, 86,
- 2097, 86, 2106, 2098, 2107, 3806, 2108, 86, 2109, 86,
- 2110, 3806, 2100, 2102, 2104, 86, 2111, 2103, 2112, 86,
-
- 2113, 2119, 2115, 2114, 86, 3806, 2117, 86, 86, 2106,
- 2116, 2107, 86, 2108, 2118, 2109, 86, 2110, 86, 86,
- 86, 171, 2123, 2111, 2120, 2112, 86, 2113, 86, 2115,
- 2114, 2121, 86, 2117, 86, 2122, 2126, 2116, 2124, 2125,
- 2127, 2118, 2128, 86, 2132, 2130, 86, 2129, 2136, 86,
- 2134, 2120, 86, 86, 86, 86, 86, 86, 2121, 86,
- 86, 2131, 2122, 2126, 2133, 2124, 2125, 2127, 86, 2128,
- 2137, 2135, 2130, 2138, 2129, 86, 86, 2134, 2139, 86,
- 86, 2140, 2141, 2142, 2143, 2144, 2148, 3806, 2131, 3806,
- 2146, 2133, 86, 86, 86, 2147, 2145, 2137, 2135, 2149,
-
- 2138, 86, 3806, 86, 86, 86, 2152, 2154, 2140, 2150,
- 2142, 86, 86, 2148, 86, 86, 86, 2146, 86, 86,
- 2151, 2153, 2147, 2145, 2155, 86, 2149, 2157, 86, 86,
- 2156, 2160, 2158, 2152, 2154, 3806, 2150, 2165, 86, 86,
- 2163, 3806, 86, 86, 2164, 2159, 2161, 2151, 2153, 86,
- 86, 2155, 2166, 2162, 2157, 2167, 86, 2156, 2160, 2158,
- 2173, 86, 86, 2168, 86, 2171, 2177, 2163, 86, 2169,
- 2170, 2164, 2159, 2161, 86, 2176, 86, 86, 86, 2172,
- 2162, 2174, 2167, 2175, 86, 86, 86, 2173, 2178, 2180,
- 2168, 2179, 2171, 86, 86, 2181, 2169, 2170, 86, 2182,
-
- 2185, 86, 2176, 2183, 2187, 86, 2172, 2184, 2174, 86,
- 2175, 2189, 2186, 86, 2188, 86, 86, 2191, 2179, 2190,
- 2192, 86, 2181, 2193, 86, 2196, 2182, 86, 86, 2194,
- 2183, 86, 2198, 2195, 2184, 86, 86, 2197, 86, 2186,
- 2199, 2188, 2201, 86, 86, 86, 2190, 2192, 86, 86,
- 2193, 2200, 86, 2202, 86, 2203, 2194, 86, 2204, 2198,
- 2195, 2205, 2206, 86, 2197, 2214, 3806, 86, 3806, 2201,
- 3806, 3806, 2207, 2208, 2209, 86, 3806, 86, 2200, 2210,
- 2202, 2212, 2203, 86, 86, 2204, 2211, 86, 2205, 2213,
- 86, 2215, 2217, 86, 86, 2216, 86, 86, 86, 2207,
-
- 2208, 2209, 86, 2218, 2219, 2222, 2210, 2221, 2212, 2220,
- 2223, 2224, 86, 2211, 2225, 2226, 2213, 86, 2215, 2217,
- 86, 2227, 2216, 2229, 2228, 86, 86, 86, 2230, 86,
- 2218, 86, 2222, 2232, 2221, 86, 86, 2223, 2224, 86,
- 2235, 2225, 2231, 86, 2234, 2233, 2236, 86, 2227, 86,
- 2229, 2228, 86, 2238, 2237, 86, 2239, 2240, 86, 86,
- 2232, 86, 2242, 2243, 2241, 2245, 86, 2235, 86, 2231,
- 2244, 2234, 2233, 86, 2246, 86, 86, 2247, 86, 2248,
- 86, 2237, 86, 2239, 2240, 86, 2249, 86, 2250, 2242,
- 2253, 2241, 2245, 2251, 2254, 86, 2256, 2244, 86, 2252,
-
- 86, 2246, 2255, 86, 86, 2257, 2248, 86, 86, 2258,
- 2259, 86, 2260, 2249, 2261, 2250, 86, 2253, 2262, 86,
- 2251, 86, 2263, 2256, 2264, 2265, 2252, 2266, 3806, 2255,
- 3806, 86, 86, 2267, 86, 2268, 2258, 86, 2270, 2260,
- 2269, 2261, 86, 2273, 2272, 86, 2278, 86, 2271, 2263,
- 86, 2264, 86, 86, 86, 86, 86, 86, 86, 2274,
- 2267, 2277, 2268, 2275, 2279, 2270, 2280, 2269, 86, 2281,
- 2273, 2272, 86, 2276, 86, 2271, 86, 2282, 86, 86,
- 2288, 3806, 2291, 86, 2287, 2283, 2274, 86, 2277, 86,
- 2275, 2279, 2285, 2293, 86, 2290, 2281, 2286, 86, 86,
-
- 2276, 2284, 86, 86, 2282, 2294, 86, 86, 86, 2291,
- 2289, 2287, 2283, 86, 2295, 2292, 86, 2297, 2296, 2285,
- 2293, 2298, 2290, 86, 2286, 2302, 2299, 3806, 2284, 2306,
- 3806, 86, 2294, 2304, 2303, 86, 86, 2289, 2300, 86,
- 86, 2295, 2292, 2301, 86, 2296, 86, 2305, 2298, 86,
- 2307, 86, 86, 2299, 86, 86, 2306, 86, 2310, 2308,
- 2304, 2303, 2309, 3806, 2311, 2300, 86, 2312, 2314, 86,
- 2301, 2313, 2315, 86, 2305, 2316, 3806, 2307, 2318, 86,
- 2317, 3806, 86, 2323, 2327, 2324, 2308, 2322, 2328, 2309,
- 86, 2311, 2319, 86, 2312, 2314, 86, 2320, 2313, 86,
-
- 2331, 86, 2316, 86, 2321, 2318, 2330, 2317, 86, 86,
- 86, 86, 86, 2325, 2322, 86, 86, 2332, 2326, 2319,
- 86, 2329, 86, 2333, 2320, 2338, 2335, 2331, 86, 2334,
- 3806, 2321, 2336, 2330, 2337, 2339, 86, 2340, 86, 2341,
- 86, 86, 3806, 2342, 2349, 86, 2344, 2343, 2329, 86,
- 2333, 86, 86, 2335, 86, 2348, 2334, 86, 86, 2336,
- 2345, 2337, 2339, 2346, 2347, 2350, 86, 2351, 171, 86,
- 2342, 86, 86, 2344, 2343, 86, 2352, 86, 86, 2353,
- 2356, 2355, 2348, 2354, 2357, 3806, 2359, 2345, 86, 86,
- 2346, 2347, 2350, 86, 2351, 86, 2358, 2360, 2361, 2362,
-
- 2370, 3806, 2365, 86, 2363, 86, 86, 86, 2355, 2364,
- 2354, 2357, 86, 2359, 2366, 86, 2369, 86, 86, 2367,
- 86, 2371, 2368, 2358, 2360, 2361, 86, 86, 86, 2365,
- 2372, 2363, 86, 2373, 86, 2374, 2364, 86, 86, 86,
- 86, 2366, 2375, 2369, 2376, 2377, 2367, 2378, 2371, 2368,
- 2379, 86, 86, 2380, 2382, 86, 86, 2372, 86, 86,
- 2373, 2381, 2374, 86, 2383, 2386, 2384, 2399, 2392, 86,
- 2385, 2376, 2377, 86, 2378, 86, 86, 2379, 86, 86,
- 2380, 2389, 2390, 86, 86, 2387, 86, 2391, 2381, 2393,
- 86, 2383, 2386, 2384, 86, 2392, 2388, 2385, 2395, 2394,
-
- 86, 2396, 2397, 2400, 2398, 86, 2406, 86, 2389, 2390,
- 2401, 86, 2387, 86, 2391, 86, 2393, 86, 86, 3806,
- 2409, 86, 2402, 2388, 86, 2395, 2394, 86, 2396, 2397,
- 2400, 2398, 2403, 86, 2404, 2405, 2412, 2401, 86, 2408,
- 2407, 2410, 2411, 86, 2418, 86, 86, 2409, 86, 2402,
- 86, 86, 2413, 2414, 86, 2415, 2416, 2417, 2427, 2403,
- 86, 2404, 2405, 86, 2419, 86, 2408, 2407, 2410, 2411,
- 2420, 86, 2423, 86, 2431, 86, 86, 86, 86, 2413,
- 86, 86, 2415, 2416, 2417, 2427, 2422, 2421, 2428, 2426,
- 86, 2419, 86, 86, 2424, 86, 2429, 2420, 86, 2423,
-
- 2432, 2431, 2425, 86, 2430, 2433, 2434, 3806, 86, 3806,
- 2462, 2435, 3806, 2422, 2421, 2428, 2426, 86, 86, 86,
- 86, 2424, 2436, 2429, 2443, 2444, 86, 2432, 2441, 2425,
- 2447, 2430, 2433, 2437, 2438, 86, 2442, 2439, 86, 86,
- 86, 2446, 86, 2448, 2445, 2450, 3806, 3806, 86, 2436,
- 2440, 2443, 86, 86, 86, 2441, 2451, 2447, 86, 2449,
- 2437, 2438, 2453, 2442, 2439, 86, 86, 86, 2446, 2452,
- 2448, 2445, 2450, 2454, 2455, 2458, 2456, 2440, 86, 2457,
- 2459, 86, 2466, 2451, 86, 86, 2449, 2460, 2464, 2453,
- 86, 2461, 86, 86, 2469, 86, 2452, 86, 86, 2465,
-
- 2454, 2455, 2458, 2456, 2463, 86, 2457, 2459, 2468, 86,
- 2470, 86, 86, 86, 2460, 2464, 2467, 86, 2461, 86,
- 2471, 2469, 2474, 2475, 2472, 2473, 2465, 2477, 3806, 86,
- 86, 2463, 86, 86, 86, 2468, 2476, 2470, 2478, 2479,
- 2481, 86, 86, 2467, 2480, 2484, 2485, 2471, 2482, 2474,
- 2486, 2472, 2473, 86, 2477, 86, 86, 2483, 86, 86,
- 86, 2490, 2487, 2476, 2491, 2478, 2494, 2481, 2488, 2492,
- 86, 86, 2484, 86, 2489, 2482, 86, 2486, 86, 2493,
- 86, 86, 2497, 2502, 2483, 2501, 86, 2498, 86, 2487,
- 2499, 2491, 2495, 86, 86, 2488, 2492, 2500, 86, 2503,
-
- 2496, 2489, 86, 86, 2507, 86, 2493, 2504, 86, 86,
- 2502, 86, 2501, 2516, 2498, 2505, 86, 2499, 2506, 2495,
- 2509, 2511, 2508, 86, 2500, 2510, 2503, 2496, 86, 86,
- 86, 2507, 2512, 86, 2504, 86, 86, 2514, 2513, 2515,
- 2516, 2517, 2505, 2518, 2521, 2506, 2522, 3806, 2511, 2508,
- 86, 86, 86, 86, 86, 2519, 2527, 86, 86, 2512,
- 2523, 3806, 86, 86, 2514, 2513, 2515, 2520, 2517, 86,
- 2518, 2521, 2524, 86, 86, 2525, 2528, 2526, 2529, 2530,
- 2531, 86, 2519, 2527, 86, 2532, 2533, 2523, 86, 86,
- 86, 3806, 2534, 86, 2520, 86, 2535, 2536, 3806, 2524,
-
- 86, 86, 2525, 2528, 2526, 2529, 2530, 2531, 2537, 2538,
- 2540, 2545, 2532, 2533, 86, 86, 2541, 86, 86, 2534,
- 86, 2542, 2539, 2535, 2536, 2543, 2544, 2546, 86, 86,
- 86, 86, 2547, 86, 86, 2537, 2538, 2540, 2545, 2548,
- 2551, 3806, 2549, 2541, 2553, 2555, 2552, 2550, 2542, 2539,
- 86, 86, 2543, 2544, 86, 86, 2554, 2556, 86, 2547,
- 2557, 2559, 171, 86, 86, 2558, 86, 2551, 86, 2549,
- 2560, 2553, 2561, 2552, 2550, 3806, 2562, 86, 2563, 2564,
- 2565, 3806, 2570, 2554, 2556, 86, 2566, 3806, 86, 2571,
- 2569, 2574, 86, 86, 2578, 86, 86, 2580, 2576, 2561,
-
- 2567, 2573, 86, 2562, 2572, 2563, 2564, 86, 86, 86,
- 86, 2568, 86, 2566, 2575, 86, 2571, 2569, 2577, 86,
- 86, 86, 3806, 86, 2579, 2576, 86, 2567, 2573, 86,
- 2581, 2572, 2582, 2583, 2585, 2584, 86, 2588, 2568, 86,
- 2595, 2575, 86, 2586, 86, 2577, 86, 2589, 2587, 86,
- 2593, 2579, 86, 86, 2590, 2591, 86, 2581, 2598, 2582,
- 2583, 2585, 2584, 86, 2588, 86, 86, 86, 2594, 86,
- 2586, 2592, 86, 86, 2589, 2587, 2596, 2593, 86, 2597,
- 86, 2590, 2591, 2599, 2601, 2598, 2600, 86, 2603, 2602,
- 2604, 86, 86, 86, 2605, 2594, 86, 2607, 2592, 86,
-
- 2606, 2608, 3806, 2596, 86, 3806, 2597, 2618, 86, 86,
- 2599, 2601, 86, 2600, 2609, 2603, 2602, 2604, 2610, 2616,
- 86, 2605, 86, 2611, 86, 2612, 86, 2606, 2608, 86,
- 2613, 86, 2614, 86, 86, 2619, 2615, 2617, 2622, 86,
- 86, 2609, 86, 86, 2620, 2610, 2616, 2621, 2623, 2626,
- 2611, 86, 2612, 2624, 2629, 2625, 86, 2613, 3806, 2614,
- 2628, 86, 86, 2615, 2617, 2622, 2627, 86, 86, 86,
- 2630, 2620, 2631, 86, 2621, 2623, 86, 2632, 86, 2633,
- 2624, 2629, 2625, 2634, 86, 86, 2635, 2628, 86, 2636,
- 2637, 86, 2642, 2627, 2639, 2638, 3806, 2630, 2640, 2631,
-
- 2643, 2641, 86, 2644, 2632, 86, 2633, 86, 86, 2645,
- 86, 86, 2648, 2635, 2649, 86, 86, 2637, 2650, 86,
- 2646, 2639, 2638, 2647, 86, 2640, 86, 2643, 2641, 2651,
- 2644, 2654, 2655, 2656, 3806, 86, 2645, 2652, 86, 86,
- 86, 86, 2653, 2658, 86, 2650, 86, 2646, 2659, 86,
- 2647, 86, 2660, 2657, 2661, 2662, 2651, 86, 2654, 86,
- 86, 86, 2663, 2664, 2652, 2665, 86, 2666, 2669, 2653,
- 86, 2667, 2673, 2668, 2670, 2659, 2671, 86, 86, 86,
- 2657, 2661, 2662, 86, 86, 86, 2672, 86, 2674, 86,
- 86, 2675, 2665, 2676, 2666, 86, 86, 86, 2667, 86,
-
- 2668, 2670, 86, 2671, 2677, 2679, 2678, 2682, 86, 2680,
- 2684, 2683, 3806, 2672, 2685, 2674, 2686, 2687, 86, 86,
- 2676, 2688, 86, 2689, 2681, 86, 86, 86, 86, 86,
- 2691, 2677, 2679, 2678, 86, 86, 2680, 2684, 2683, 86,
- 2690, 2685, 86, 2686, 2687, 2692, 2693, 86, 86, 86,
- 2695, 2681, 2694, 2696, 2697, 86, 2699, 2691, 86, 2698,
- 2702, 86, 2703, 3806, 2700, 2704, 3806, 2690, 86, 86,
- 3806, 2705, 2692, 2693, 2710, 86, 86, 86, 2701, 2694,
- 2696, 2697, 86, 2699, 86, 86, 2698, 86, 2706, 2703,
- 86, 2700, 2704, 2707, 2708, 2709, 86, 86, 2705, 2711,
-
- 86, 2710, 86, 2712, 2716, 2701, 86, 2718, 2713, 3806,
- 2722, 2719, 2717, 3806, 2721, 2706, 86, 86, 2720, 3806,
- 2707, 2708, 2709, 2714, 86, 2715, 2711, 86, 86, 86,
- 2712, 2724, 86, 86, 2718, 2713, 86, 2722, 2719, 2717,
- 86, 2721, 2723, 2725, 2727, 2720, 2726, 86, 86, 86,
- 2714, 2730, 2715, 2728, 2729, 2731, 2732, 3806, 2724, 2735,
- 3806, 3806, 2733, 86, 3806, 86, 86, 2734, 86, 2723,
- 2725, 2727, 3806, 2726, 2736, 86, 86, 2737, 2730, 86,
- 2728, 2729, 2738, 2739, 86, 2741, 3806, 86, 86, 2733,
- 2740, 86, 86, 2742, 2734, 2743, 86, 86, 2744, 86,
-
- 2745, 2736, 2746, 2747, 2737, 2748, 2752, 2749, 2754, 2738,
- 2739, 86, 2741, 86, 86, 86, 86, 2740, 86, 2750,
- 2742, 2751, 2743, 2753, 86, 2744, 86, 2745, 86, 2746,
- 86, 2755, 2762, 2752, 2749, 86, 2757, 86, 2758, 2756,
- 86, 2763, 2764, 86, 2765, 2759, 2750, 2768, 2751, 86,
- 2753, 2767, 86, 2760, 86, 2761, 86, 86, 2755, 2762,
- 86, 2766, 86, 2757, 86, 2758, 2756, 171, 2763, 86,
- 2769, 2765, 2759, 86, 2768, 2770, 2771, 2772, 2767, 86,
- 2760, 86, 2761, 2773, 2775, 2774, 2776, 86, 2766, 2777,
- 2779, 86, 86, 2778, 2780, 3806, 2782, 2769, 2783, 86,
-
- 2781, 86, 2770, 2771, 2772, 86, 2784, 2785, 3806, 3806,
- 2773, 2775, 2774, 86, 2787, 2792, 86, 86, 86, 86,
- 2778, 2780, 86, 2786, 86, 2789, 2794, 2781, 86, 2788,
- 86, 2790, 2793, 2784, 86, 2791, 86, 2795, 86, 86,
- 86, 2787, 2796, 2797, 86, 86, 2798, 86, 86, 2799,
- 2786, 3806, 2789, 2794, 2800, 2803, 2788, 2801, 2790, 2793,
- 86, 86, 2791, 2804, 2795, 2805, 86, 2802, 86, 2796,
- 86, 86, 86, 2798, 86, 86, 2799, 2806, 86, 86,
- 2807, 2800, 2803, 2810, 2801, 2811, 2808, 86, 2809, 2813,
- 86, 2812, 2805, 86, 2802, 86, 86, 2814, 86, 86,
-
- 2815, 3806, 3806, 2823, 2806, 2816, 2827, 2807, 86, 2817,
- 2810, 86, 2811, 2808, 2818, 2809, 2813, 2819, 2812, 3806,
- 2820, 86, 2824, 86, 2821, 86, 2826, 2815, 86, 86,
- 86, 86, 2816, 2822, 2825, 86, 2817, 86, 86, 86,
- 2828, 2818, 2830, 2829, 2819, 86, 86, 2820, 86, 2824,
- 2831, 2821, 2832, 2826, 2834, 2840, 86, 2845, 2833, 2835,
- 2822, 2825, 86, 2836, 2837, 86, 2838, 86, 86, 2830,
- 2829, 86, 86, 2839, 2843, 2841, 2842, 2831, 86, 2832,
- 86, 2834, 2840, 86, 86, 2833, 2835, 2846, 86, 86,
- 2836, 2837, 2844, 2838, 2847, 2848, 2849, 86, 2851, 86,
-
- 2839, 86, 2841, 2842, 86, 86, 86, 86, 2853, 86,
- 2852, 86, 2854, 2850, 2846, 2857, 2855, 86, 86, 2844,
- 86, 86, 2848, 2849, 86, 2851, 2856, 2858, 2859, 2860,
- 3806, 2861, 2869, 3806, 2862, 2853, 86, 2852, 86, 2854,
- 2850, 2863, 86, 2855, 2864, 86, 86, 2865, 86, 2866,
- 2867, 2870, 2868, 2856, 86, 86, 2860, 86, 2861, 86,
- 86, 2862, 86, 2871, 2872, 86, 86, 86, 2863, 2873,
- 2875, 2864, 2876, 86, 2865, 2874, 2866, 2867, 2870, 2868,
- 2877, 86, 86, 2878, 86, 86, 2879, 2880, 2881, 2882,
- 2871, 2872, 2883, 2884, 86, 86, 2886, 2875, 86, 86,
-
- 2885, 86, 2874, 2887, 86, 86, 2889, 2877, 86, 2890,
- 2878, 2888, 3806, 2879, 2880, 2881, 2882, 2893, 86, 2883,
- 86, 86, 86, 2886, 2891, 86, 2892, 2885, 86, 2898,
- 2887, 2899, 86, 2889, 86, 2894, 2890, 86, 2888, 86,
- 2895, 2896, 2897, 86, 2893, 2900, 2901, 86, 86, 2902,
- 2903, 2891, 3806, 2892, 2904, 3806, 86, 86, 2899, 2907,
- 2906, 2905, 2894, 2908, 86, 86, 2909, 2895, 2896, 2897,
- 86, 2911, 86, 86, 3806, 3806, 86, 2903, 86, 86,
- 2910, 2904, 86, 2916, 2912, 86, 2907, 2906, 2905, 86,
- 2908, 2914, 86, 2909, 2913, 86, 2917, 86, 2911, 86,
-
- 2918, 86, 2915, 2919, 86, 2921, 2920, 2910, 2923, 2922,
- 86, 2912, 2925, 86, 3806, 2926, 2924, 2929, 2914, 86,
- 2931, 2913, 86, 2917, 86, 2932, 86, 86, 86, 2915,
- 86, 86, 86, 2920, 2927, 2923, 2922, 86, 2928, 2925,
- 2930, 86, 2926, 2924, 86, 86, 2933, 86, 2934, 2938,
- 2936, 2935, 2932, 86, 86, 2937, 2939, 3806, 86, 2940,
- 86, 2927, 86, 86, 2946, 2928, 2941, 2930, 2942, 2943,
- 2944, 171, 2998, 2933, 86, 2934, 2938, 2936, 2935, 86,
- 86, 86, 2937, 2939, 86, 86, 2940, 2945, 2948, 2949,
- 2947, 86, 86, 2941, 86, 2942, 2943, 2944, 2950, 2951,
-
- 2952, 2953, 86, 2954, 86, 2955, 3806, 2956, 2958, 2957,
- 2960, 2959, 86, 3806, 2945, 2948, 2949, 2947, 86, 86,
- 86, 86, 86, 3099, 86, 2950, 2951, 86, 86, 86,
- 2954, 86, 2955, 86, 2956, 2958, 2957, 2960, 2959, 2961,
- 2962, 2964, 2963, 2965, 2966, 2968, 86, 86, 86, 86,
- 2967, 86, 86, 2969, 2970, 86, 2971, 2973, 2976, 2977,
- 3806, 86, 86, 86, 2972, 2974, 2961, 2962, 2964, 2963,
- 2965, 2966, 2968, 2979, 2975, 86, 86, 2967, 86, 86,
- 2969, 2970, 86, 2971, 86, 2976, 86, 86, 2978, 2980,
- 2981, 2972, 2974, 2982, 2983, 2984, 2985, 2987, 86, 86,
-
- 86, 2975, 86, 2986, 2989, 86, 86, 86, 86, 2990,
- 2988, 2991, 86, 2992, 86, 2978, 2980, 2981, 86, 2993,
- 2982, 2983, 2984, 2985, 2987, 2994, 86, 86, 2995, 86,
- 2986, 2989, 2996, 2997, 86, 2999, 2990, 2988, 86, 3000,
- 86, 3001, 3002, 3003, 86, 3004, 2993, 3005, 86, 86,
- 86, 3006, 2994, 86, 3007, 2995, 86, 3008, 86, 86,
- 86, 86, 2999, 3009, 86, 3014, 3000, 86, 3001, 3002,
- 3003, 3010, 3004, 3011, 86, 3012, 3013, 3016, 3006, 86,
- 86, 3007, 3015, 3017, 3008, 3019, 3806, 86, 3018, 3806,
- 3009, 86, 86, 86, 3022, 3806, 3020, 86, 3010, 3806,
-
- 3011, 86, 3012, 3013, 86, 3024, 86, 86, 3030, 3015,
- 3017, 86, 3019, 3021, 3026, 3018, 86, 3023, 3025, 3027,
- 86, 3022, 86, 3020, 86, 86, 86, 86, 3028, 3029,
- 3031, 3033, 3024, 3034, 3032, 86, 3035, 86, 3037, 3036,
- 3021, 3026, 86, 86, 3023, 3025, 3027, 3038, 86, 86,
- 86, 3039, 3040, 86, 3041, 3028, 3029, 3031, 86, 86,
- 3034, 3032, 86, 3035, 3043, 3037, 3036, 3044, 3042, 3049,
- 3045, 3047, 86, 3054, 3038, 86, 86, 86, 3039, 3040,
- 3046, 86, 86, 3051, 3050, 3048, 3052, 3806, 86, 3053,
- 86, 3043, 86, 3056, 86, 3042, 86, 3045, 3047, 86,
-
- 86, 86, 3057, 3058, 3062, 3806, 3055, 3046, 3059, 86,
- 3051, 3050, 3048, 3052, 86, 86, 3053, 3060, 3061, 86,
- 86, 86, 3063, 3065, 86, 86, 3064, 3067, 86, 3057,
- 3058, 86, 86, 3055, 3066, 3059, 3074, 3068, 3806, 86,
- 3071, 86, 3069, 3070, 3060, 3061, 3077, 3072, 3073, 3063,
- 3065, 86, 86, 3064, 86, 3075, 86, 86, 86, 3076,
- 3082, 3066, 86, 86, 3068, 86, 86, 3071, 3078, 3069,
- 3070, 86, 3079, 86, 3072, 3073, 3080, 3083, 3081, 86,
- 3084, 3086, 3075, 3085, 3087, 86, 3076, 3082, 3090, 86,
- 86, 3088, 3091, 86, 86, 3078, 3806, 3089, 86, 3079,
-
- 86, 3092, 86, 3080, 3083, 3081, 86, 3084, 3086, 86,
- 3085, 3087, 3093, 86, 3094, 86, 3095, 3806, 3088, 86,
- 86, 3097, 3096, 86, 3089, 3098, 3806, 3101, 3092, 3100,
- 86, 3104, 3105, 3102, 86, 3103, 86, 3107, 3114, 3093,
- 3125, 171, 3108, 3095, 86, 86, 3111, 3106, 3097, 3096,
- 3109, 86, 3098, 86, 3101, 3110, 3100, 86, 86, 86,
- 3102, 86, 3103, 3112, 86, 3113, 86, 86, 86, 3108,
- 86, 3115, 3118, 3111, 3106, 3116, 3124, 3117, 86, 3121,
- 3120, 3119, 86, 3122, 86, 86, 86, 3123, 3806, 3806,
- 3112, 86, 3113, 3126, 86, 86, 3127, 86, 3115, 3118,
-
- 86, 3128, 3116, 3124, 3117, 3130, 3129, 3120, 3119, 86,
- 3133, 86, 3131, 86, 3123, 86, 3132, 3134, 86, 86,
- 3126, 86, 3135, 3127, 3136, 86, 3137, 86, 3128, 3138,
- 3806, 86, 3130, 3129, 86, 3139, 3806, 3133, 86, 3131,
- 86, 3140, 86, 3132, 3134, 3141, 3142, 86, 3143, 3135,
- 3148, 3136, 86, 3137, 86, 3806, 3138, 3144, 86, 3145,
- 3146, 3149, 3139, 86, 3806, 86, 86, 86, 3140, 86,
- 3153, 3147, 3141, 3151, 3150, 3143, 3152, 86, 86, 86,
- 3154, 86, 86, 3156, 3144, 3157, 3145, 3146, 3149, 3806,
- 3155, 86, 86, 3161, 86, 86, 86, 3153, 3147, 3159,
-
- 3151, 3150, 3160, 3152, 3162, 3158, 3164, 3154, 86, 86,
- 3156, 86, 86, 86, 3166, 3165, 86, 3155, 3167, 3163,
- 3161, 86, 86, 3168, 3169, 3170, 3159, 86, 3806, 3160,
- 3173, 86, 3158, 3171, 3172, 86, 3174, 3175, 86, 3177,
- 3176, 3166, 3806, 3180, 86, 3167, 3163, 86, 86, 3178,
- 86, 86, 3170, 3181, 3184, 86, 86, 3173, 86, 3179,
- 3171, 3172, 86, 3174, 86, 86, 3177, 3176, 3182, 86,
- 86, 3185, 86, 3183, 3186, 86, 3178, 3187, 3188, 3189,
- 3181, 86, 86, 3192, 3193, 3190, 3179, 3194, 3195, 3199,
- 3191, 86, 3196, 3203, 86, 3182, 86, 3197, 3185, 3806,
-
- 3183, 86, 86, 86, 86, 86, 3189, 86, 86, 86,
- 86, 3193, 3190, 3198, 3194, 3195, 3199, 3191, 3200, 3201,
- 86, 3202, 3204, 3205, 86, 86, 86, 3206, 86, 3207,
- 3208, 3209, 3210, 3212, 3214, 3211, 3806, 3213, 3220, 3216,
- 3198, 86, 86, 86, 86, 3200, 3201, 86, 3202, 86,
- 86, 86, 3221, 3215, 3206, 3217, 3207, 3208, 86, 3210,
- 86, 86, 3211, 86, 3213, 86, 86, 3218, 3219, 86,
- 86, 3223, 3225, 3222, 3227, 3224, 86, 3226, 86, 86,
- 3215, 86, 3217, 3228, 3229, 3230, 3231, 3232, 3806, 86,
- 86, 86, 3233, 3234, 3218, 3219, 86, 86, 3236, 3235,
-
- 3222, 3227, 3224, 86, 86, 3237, 86, 3238, 3243, 86,
- 3228, 3229, 3230, 3239, 3232, 86, 3240, 86, 86, 3233,
- 86, 86, 3244, 3241, 3242, 3236, 3235, 3247, 3246, 86,
- 86, 86, 3237, 86, 3238, 3243, 3249, 86, 3245, 3248,
- 3239, 86, 86, 3240, 3250, 86, 3251, 3259, 3252, 3244,
- 3241, 3242, 86, 3253, 86, 3246, 86, 3254, 3260, 86,
- 86, 3261, 3255, 3249, 3256, 3245, 3248, 3262, 3258, 3257,
- 3265, 3250, 86, 3251, 86, 3252, 86, 3263, 3806, 3264,
- 3253, 86, 3269, 3267, 86, 3260, 3266, 86, 3261, 86,
- 86, 3268, 86, 86, 3262, 3258, 86, 3265, 3270, 3271,
-
- 86, 3273, 3274, 86, 3263, 86, 3264, 3272, 86, 3269,
- 3267, 86, 3275, 3266, 3278, 86, 3279, 3276, 3268, 86,
- 86, 86, 3280, 86, 86, 3270, 3271, 3282, 3273, 3274,
- 3277, 3283, 3286, 3281, 3272, 3806, 3287, 86, 3285, 3275,
- 3284, 86, 3288, 86, 3276, 86, 86, 86, 3289, 3280,
- 3290, 3293, 86, 3291, 86, 3292, 86, 3277, 3283, 86,
- 3281, 3294, 86, 3287, 3297, 3285, 3295, 3284, 3298, 86,
- 86, 86, 3296, 86, 3299, 3289, 3300, 86, 86, 86,
- 3291, 86, 3292, 3312, 86, 3309, 3302, 3314, 3294, 3304,
- 3301, 86, 3303, 3295, 86, 86, 86, 86, 86, 3296,
-
- 3305, 3299, 86, 3300, 86, 3306, 3307, 3308, 86, 3310,
- 86, 3313, 3309, 3302, 86, 3311, 3304, 3301, 3315, 3303,
- 86, 86, 3318, 3319, 86, 86, 3316, 3321, 86, 3320,
- 3317, 86, 86, 3307, 3308, 3332, 3310, 86, 3313, 86,
- 3322, 3323, 3311, 86, 3324, 3315, 3325, 86, 3327, 86,
- 86, 3326, 3330, 3316, 3328, 86, 3320, 3317, 86, 86,
- 3331, 86, 3332, 3334, 86, 3333, 86, 3322, 3323, 86,
- 3329, 3324, 3335, 3325, 86, 3336, 86, 3339, 3326, 3330,
- 86, 3328, 86, 86, 3340, 86, 86, 3331, 86, 3341,
- 3334, 3337, 3333, 3343, 3338, 3342, 3806, 3329, 3344, 3335,
-
- 86, 3345, 3336, 3346, 86, 3347, 86, 3348, 3806, 3349,
- 3350, 86, 3355, 86, 3806, 3351, 86, 86, 3337, 86,
- 3343, 3338, 3342, 86, 3353, 3344, 3357, 86, 3345, 86,
- 86, 3354, 3347, 3352, 3348, 86, 86, 3350, 3358, 86,
- 86, 3356, 3351, 86, 86, 3359, 86, 3360, 3806, 3361,
- 3365, 3353, 3363, 86, 3362, 3366, 3367, 86, 3354, 3364,
- 3352, 86, 86, 3806, 86, 3358, 3368, 86, 3356, 86,
- 86, 86, 3359, 3369, 3360, 86, 3361, 3365, 3370, 3363,
- 86, 3362, 86, 3367, 3371, 3372, 3364, 86, 3374, 3373,
- 3379, 3375, 3376, 3368, 3378, 3380, 86, 86, 3382, 86,
-
- 3369, 86, 86, 3377, 86, 3370, 3383, 86, 86, 3385,
- 86, 3371, 3372, 86, 3386, 3374, 3373, 3379, 3375, 3376,
- 86, 3378, 3380, 3381, 86, 86, 3384, 3387, 3388, 3389,
- 3377, 3390, 3391, 86, 86, 3392, 3393, 3394, 86, 3395,
- 86, 86, 3398, 3397, 3399, 3401, 3396, 86, 86, 86,
- 3381, 86, 3403, 3384, 3387, 3388, 86, 86, 86, 3391,
- 3400, 86, 86, 3393, 3394, 86, 3395, 3404, 3402, 86,
- 3397, 3399, 86, 3396, 3405, 86, 3406, 86, 86, 86,
- 3407, 3408, 3409, 3410, 3411, 3412, 3416, 3400, 86, 86,
- 86, 86, 3413, 3414, 3404, 3402, 3415, 86, 86, 3417,
-
- 86, 3405, 3420, 3406, 3418, 3419, 3422, 3407, 3408, 86,
- 3423, 3411, 86, 86, 86, 86, 86, 86, 3424, 3413,
- 3414, 3421, 86, 3415, 3425, 86, 86, 3426, 86, 86,
- 3429, 3418, 3419, 3422, 3427, 86, 3428, 3423, 3430, 3806,
- 3431, 3437, 3432, 86, 3433, 3424, 3435, 3434, 3421, 86,
- 86, 3436, 3438, 86, 3426, 3439, 86, 86, 3441, 3442,
- 3445, 3427, 86, 3428, 86, 3430, 86, 3431, 86, 3432,
- 86, 3433, 3440, 3435, 3434, 3443, 86, 3448, 3449, 3438,
- 86, 86, 3444, 86, 3453, 3441, 86, 86, 3446, 3447,
- 86, 3450, 86, 86, 3451, 3456, 86, 86, 86, 3440,
-
- 86, 3455, 3443, 3452, 86, 3449, 3454, 3457, 3458, 3444,
- 3459, 86, 86, 86, 86, 3446, 3447, 86, 3450, 3460,
- 3462, 3451, 3456, 3461, 3463, 3464, 3465, 3466, 3455, 3467,
- 3452, 3469, 86, 3454, 86, 86, 86, 86, 3471, 3470,
- 3472, 86, 86, 3468, 3806, 86, 3460, 3462, 3473, 3474,
- 3461, 86, 86, 86, 3466, 3475, 86, 86, 3469, 86,
- 86, 3476, 3482, 3477, 3492, 3471, 3479, 86, 86, 86,
- 3468, 86, 3478, 3480, 86, 3473, 86, 86, 86, 3481,
- 3483, 86, 86, 3484, 3485, 3486, 3487, 3488, 3476, 86,
- 3477, 86, 86, 3479, 3489, 3490, 86, 86, 3495, 3478,
-
- 3480, 3498, 3493, 3806, 86, 86, 3481, 3483, 3491, 86,
- 3484, 3485, 3486, 3487, 86, 3494, 3496, 86, 86, 3499,
- 86, 86, 3490, 86, 3497, 3495, 3500, 3501, 86, 3493,
- 86, 3502, 3503, 3504, 3505, 3491, 3806, 3806, 86, 3806,
- 86, 3507, 3494, 3496, 3506, 3508, 86, 86, 86, 3509,
- 3510, 3497, 86, 3500, 3501, 3512, 86, 86, 3511, 3503,
- 3504, 86, 3513, 86, 86, 3514, 86, 86, 3507, 3518,
- 86, 3506, 3508, 3515, 3806, 3806, 3509, 3510, 86, 3516,
- 86, 86, 3512, 86, 86, 3511, 86, 3517, 3519, 3513,
- 3523, 3524, 3514, 3531, 86, 3522, 3518, 3520, 3521, 86,
-
- 3515, 86, 3525, 3526, 3527, 3530, 3516, 86, 3806, 86,
- 3529, 3532, 86, 86, 3517, 3519, 3528, 3523, 3524, 86,
- 86, 3533, 3522, 86, 3520, 3521, 86, 3534, 3535, 3525,
- 3536, 3527, 3530, 3537, 86, 86, 3538, 3529, 86, 86,
- 3540, 86, 3545, 3528, 86, 3548, 3539, 3806, 3533, 3541,
- 3542, 3806, 86, 3549, 3534, 86, 3550, 3536, 86, 3551,
- 3537, 3543, 3544, 86, 3546, 3547, 3806, 86, 86, 86,
- 3552, 3553, 3548, 3539, 86, 86, 3554, 3558, 86, 86,
- 3549, 3555, 3556, 3550, 86, 3557, 86, 3559, 3561, 86,
- 86, 3560, 86, 86, 3562, 86, 86, 3552, 3553, 86,
-
- 86, 3564, 3563, 86, 3558, 3565, 3806, 86, 3555, 3556,
- 3567, 3568, 3557, 3566, 86, 3561, 3569, 3570, 3560, 86,
- 3571, 3562, 86, 86, 86, 86, 3572, 3573, 3564, 3563,
- 3574, 3806, 3565, 86, 3575, 86, 3578, 3567, 3568, 3580,
- 3566, 3579, 86, 86, 3570, 3576, 86, 3571, 3577, 3581,
- 3582, 86, 3583, 86, 86, 3806, 86, 3574, 86, 3584,
- 3585, 3575, 86, 86, 3587, 3586, 3588, 3589, 86, 3590,
- 3591, 86, 3576, 86, 3594, 3577, 3581, 3582, 3592, 3583,
- 3593, 86, 86, 3596, 3599, 3597, 3584, 3585, 86, 3600,
- 86, 86, 3586, 3595, 3589, 3598, 86, 86, 86, 3601,
-
- 3602, 86, 86, 86, 86, 3592, 86, 3593, 3603, 3604,
- 86, 86, 3597, 3605, 3606, 3608, 86, 3607, 86, 3609,
- 3595, 3610, 3598, 3612, 3613, 3611, 86, 86, 3615, 3617,
- 3806, 86, 3621, 86, 3622, 86, 86, 3614, 86, 3616,
- 86, 86, 3608, 86, 3607, 3618, 86, 86, 86, 86,
- 3612, 3613, 3611, 3619, 3620, 86, 86, 86, 86, 3621,
- 3624, 86, 3623, 3633, 3614, 3628, 3616, 86, 3625, 86,
- 3626, 3632, 3618, 3629, 86, 3627, 86, 86, 3631, 3630,
- 3619, 3620, 86, 3806, 86, 86, 3637, 86, 3634, 3623,
- 3633, 86, 3628, 3636, 86, 3625, 86, 3626, 3632, 3635,
-
- 3629, 3638, 3627, 86, 86, 3806, 3630, 86, 86, 3639,
- 86, 3640, 3644, 3637, 3641, 3634, 3642, 86, 3643, 86,
- 3636, 3646, 3645, 86, 3647, 86, 3635, 3648, 3638, 3649,
- 3650, 3657, 86, 3651, 86, 86, 3639, 86, 3640, 3644,
- 86, 3641, 3653, 3642, 3652, 3643, 86, 86, 3646, 3645,
- 3655, 86, 3654, 3658, 86, 3660, 86, 86, 3657, 86,
- 3651, 3659, 86, 86, 3656, 86, 3661, 86, 86, 3653,
- 3662, 3652, 3806, 3663, 3664, 86, 3665, 3655, 3667, 3654,
- 3658, 86, 3660, 86, 86, 3806, 86, 86, 3659, 3668,
- 86, 3656, 86, 3661, 3666, 3669, 86, 3662, 3670, 3672,
-
- 3663, 3664, 3671, 3665, 3674, 3667, 3673, 86, 86, 3675,
- 86, 3676, 86, 3677, 86, 3680, 3668, 3678, 86, 3681,
- 86, 3666, 3669, 3682, 3684, 3670, 3672, 3679, 86, 3671,
- 86, 3674, 3683, 3673, 86, 86, 86, 86, 3676, 3685,
- 3677, 3686, 86, 3688, 3678, 3687, 3681, 3689, 3806, 86,
- 86, 86, 86, 3690, 3679, 3691, 3695, 86, 86, 3683,
- 3693, 3692, 3696, 3694, 3697, 3712, 86, 86, 3686, 86,
- 3688, 86, 3687, 86, 3689, 86, 86, 3699, 3698, 3700,
- 3690, 3701, 3691, 3695, 86, 86, 3702, 3703, 3692, 3696,
- 3694, 86, 86, 3704, 3705, 3706, 3708, 86, 3709, 86,
-
- 3707, 86, 3713, 3711, 86, 3698, 86, 86, 86, 86,
- 3710, 86, 3715, 86, 3703, 3714, 3717, 3718, 3719, 3806,
- 3704, 86, 3706, 86, 86, 3709, 86, 3707, 86, 86,
- 3711, 3723, 3716, 3806, 86, 3720, 3722, 3710, 86, 3715,
- 86, 86, 3714, 3717, 86, 86, 3721, 3725, 3724, 86,
- 3727, 3728, 3726, 86, 86, 86, 3806, 3732, 3723, 3716,
- 86, 3730, 3720, 3722, 86, 86, 3736, 3731, 3729, 86,
- 3737, 3738, 3734, 3721, 3725, 3724, 86, 3727, 3728, 3726,
- 3733, 86, 3735, 86, 86, 3739, 3740, 86, 3730, 86,
- 86, 3806, 86, 86, 3731, 3729, 3741, 3737, 3742, 3734,
-
- 3744, 3745, 3743, 86, 3746, 3806, 3747, 3733, 86, 3735,
- 86, 86, 3739, 3740, 3748, 3750, 3749, 3806, 86, 3751,
- 86, 3753, 3752, 3741, 86, 3742, 86, 86, 86, 3743,
- 86, 3746, 86, 86, 3755, 86, 3754, 86, 3756, 3757,
- 3760, 3748, 3750, 3749, 86, 3763, 3751, 3761, 86, 3752,
- 3762, 3758, 3806, 86, 3759, 86, 3764, 3765, 86, 86,
- 3768, 3755, 86, 3754, 86, 3756, 86, 3760, 3770, 86,
- 3771, 3766, 3763, 3773, 3761, 3767, 86, 3762, 3758, 86,
- 3769, 3759, 86, 3764, 3765, 86, 86, 3768, 86, 3772,
- 3775, 3774, 3776, 86, 86, 3770, 86, 3771, 3766, 86,
-
- 3773, 3777, 3767, 3778, 3779, 3780, 3784, 3769, 3806, 3791,
- 3806, 86, 3781, 3782, 86, 3783, 3772, 86, 3774, 3776,
- 86, 3785, 3786, 86, 86, 86, 86, 3790, 3777, 86,
- 86, 3779, 3780, 86, 3787, 86, 86, 3788, 3789, 3781,
- 3782, 3794, 3783, 3792, 86, 86, 86, 3793, 3785, 3786,
- 3795, 86, 3796, 86, 3790, 86, 86, 3797, 3798, 3800,
- 3799, 3787, 3804, 3802, 3788, 3789, 3801, 86, 3794, 3805,
- 3792, 86, 86, 3806, 3793, 3803, 3806, 86, 3806, 3796,
- 86, 86, 3806, 86, 86, 86, 3800, 3799, 86, 86,
- 3802, 3806, 3806, 3801, 3806, 3806, 86, 3806, 3806, 3806,
-
- 3806, 3806, 3803, 47, 47, 47, 47, 47, 47, 47,
- 52, 52, 52, 52, 52, 52, 52, 57, 57, 57,
- 57, 57, 57, 57, 63, 63, 63, 63, 63, 63,
- 63, 68, 68, 68, 68, 68, 68, 68, 74, 74,
- 74, 74, 74, 74, 74, 80, 80, 80, 80, 80,
- 80, 80, 89, 89, 3806, 89, 89, 89, 89, 161,
- 161, 3806, 3806, 3806, 161, 161, 163, 163, 3806, 3806,
- 163, 3806, 163, 165, 3806, 3806, 3806, 3806, 3806, 165,
- 168, 168, 3806, 3806, 3806, 168, 168, 170, 3806, 3806,
- 3806, 3806, 3806, 170, 172, 172, 3806, 172, 172, 172,
-
- 172, 175, 3806, 3806, 3806, 3806, 3806, 175, 178, 178,
- 3806, 3806, 3806, 178, 178, 90, 90, 3806, 90, 90,
- 90, 90, 17, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806
+ 467, 462, 3815, 3815, 3815, 466, 86, 476, 456, 484,
+ 513, 458, 459, 475, 86, 86, 86, 477, 463, 3815,
+
+ 493, 485, 86, 460, 461, 86, 464, 467, 462, 86,
+ 86, 86, 466, 86, 476, 86, 484, 486, 489, 86,
+ 475, 492, 86, 490, 477, 463, 468, 86, 485, 487,
+ 488, 469, 86, 494, 470, 496, 495, 3815, 502, 471,
+ 472, 473, 474, 86, 486, 86, 3815, 86, 492, 86,
+ 86, 3815, 497, 468, 86, 503, 487, 488, 469, 3815,
+ 494, 470, 496, 495, 86, 86, 471, 472, 473, 474,
+ 478, 500, 479, 498, 499, 501, 3815, 86, 504, 497,
+ 505, 509, 503, 86, 480, 481, 482, 508, 483, 86,
+ 506, 507, 86, 86, 86, 3815, 86, 478, 500, 479,
+
+ 498, 499, 501, 86, 86, 504, 86, 505, 509, 86,
+ 512, 480, 481, 482, 508, 483, 510, 506, 507, 511,
+ 520, 514, 86, 515, 86, 3815, 86, 518, 3815, 519,
+ 3815, 521, 516, 3815, 86, 522, 524, 512, 525, 517,
+ 527, 523, 526, 510, 533, 3815, 511, 86, 514, 532,
+ 515, 86, 86, 86, 518, 86, 519, 86, 521, 516,
+ 86, 528, 522, 524, 534, 525, 517, 86, 523, 526,
+ 86, 533, 86, 535, 529, 536, 532, 530, 3815, 531,
+ 3815, 550, 568, 549, 3815, 86, 552, 569, 528, 577,
+ 86, 553, 3815, 579, 86, 3815, 86, 86, 86, 551,
+
+ 86, 529, 536, 86, 530, 86, 531, 537, 550, 538,
+ 549, 566, 554, 552, 86, 539, 555, 557, 553, 540,
+ 579, 86, 572, 86, 541, 86, 551, 542, 171, 567,
+ 86, 592, 556, 86, 537, 3815, 538, 3815, 566, 554,
+ 86, 3815, 539, 555, 557, 570, 540, 86, 3815, 572,
+ 3815, 541, 571, 573, 542, 543, 567, 544, 575, 556,
+ 576, 86, 574, 86, 580, 3815, 86, 593, 86, 578,
+ 545, 86, 570, 546, 86, 547, 86, 548, 86, 571,
+ 573, 86, 543, 586, 544, 575, 581, 576, 3815, 574,
+ 86, 580, 582, 86, 593, 3815, 578, 545, 3815, 86,
+
+ 546, 583, 547, 3815, 548, 558, 559, 584, 588, 589,
+ 586, 591, 595, 581, 587, 560, 561, 562, 563, 564,
+ 86, 86, 565, 86, 86, 585, 590, 86, 583, 86,
+ 86, 86, 558, 559, 584, 588, 589, 596, 591, 595,
+ 594, 587, 560, 561, 562, 563, 564, 86, 86, 565,
+ 86, 597, 585, 590, 598, 599, 86, 600, 601, 602,
+ 3815, 603, 604, 605, 596, 606, 86, 594, 86, 86,
+ 608, 609, 607, 3815, 86, 3815, 86, 3815, 616, 86,
+ 613, 598, 599, 86, 600, 86, 3815, 86, 603, 604,
+ 605, 1013, 606, 86, 614, 86, 618, 608, 609, 607,
+
+ 610, 611, 617, 86, 86, 616, 620, 613, 86, 615,
+ 86, 619, 635, 621, 632, 86, 633, 86, 612, 637,
+ 86, 614, 86, 618, 650, 86, 86, 610, 611, 617,
+ 622, 623, 634, 620, 86, 86, 615, 636, 619, 635,
+ 621, 638, 624, 633, 625, 612, 86, 86, 642, 86,
+ 641, 86, 639, 3815, 86, 86, 86, 622, 623, 634,
+ 640, 3815, 3815, 3815, 636, 644, 646, 3815, 638, 624,
+ 86, 625, 626, 86, 86, 642, 645, 641, 647, 639,
+ 627, 628, 643, 86, 629, 630, 653, 640, 631, 86,
+ 86, 86, 644, 86, 86, 649, 648, 651, 86, 626,
+
+ 86, 3815, 652, 645, 655, 647, 656, 627, 628, 643,
+ 86, 629, 630, 653, 654, 631, 3815, 659, 663, 86,
+ 86, 86, 649, 648, 651, 86, 86, 657, 86, 652,
+ 660, 655, 86, 656, 661, 658, 662, 86, 665, 779,
+ 664, 654, 86, 86, 659, 663, 86, 666, 667, 668,
+ 670, 86, 669, 86, 657, 672, 674, 660, 675, 3815,
+ 86, 661, 658, 662, 86, 665, 86, 664, 673, 86,
+ 3815, 86, 86, 86, 666, 667, 668, 670, 86, 669,
+ 671, 86, 672, 676, 86, 675, 86, 677, 86, 86,
+ 678, 679, 680, 681, 682, 673, 86, 683, 86, 686,
+
+ 688, 86, 684, 711, 685, 690, 86, 671, 86, 86,
+ 676, 86, 86, 86, 677, 86, 687, 678, 679, 680,
+ 681, 682, 689, 86, 683, 692, 686, 691, 693, 684,
+ 711, 685, 86, 694, 698, 86, 699, 86, 697, 695,
+ 701, 700, 696, 687, 702, 86, 86, 86, 86, 689,
+ 86, 86, 703, 3815, 691, 693, 707, 86, 86, 86,
+ 694, 698, 86, 699, 704, 697, 695, 706, 700, 696,
+ 708, 702, 86, 3815, 713, 86, 86, 710, 86, 703,
+ 86, 712, 709, 707, 714, 716, 86, 705, 86, 727,
+ 3815, 715, 729, 86, 706, 86, 86, 708, 726, 717,
+
+ 86, 713, 86, 86, 710, 86, 86, 3815, 712, 709,
+ 728, 714, 716, 86, 705, 86, 727, 731, 715, 729,
+ 730, 3815, 86, 748, 732, 726, 717, 718, 86, 3815,
+ 86, 3815, 719, 733, 720, 86, 736, 728, 739, 86,
+ 721, 740, 722, 3815, 731, 723, 724, 730, 86, 86,
+ 748, 732, 725, 86, 718, 737, 86, 3815, 734, 719,
+ 733, 720, 735, 736, 742, 739, 741, 721, 740, 722,
+ 745, 744, 723, 724, 743, 738, 746, 86, 749, 725,
+ 86, 86, 737, 86, 86, 734, 747, 3815, 751, 735,
+ 86, 753, 750, 741, 86, 752, 86, 745, 744, 754,
+
+ 86, 743, 738, 746, 86, 749, 86, 86, 755, 756,
+ 758, 86, 759, 747, 86, 751, 757, 86, 753, 750,
+ 760, 86, 752, 762, 763, 764, 754, 766, 86, 761,
+ 86, 765, 86, 768, 86, 755, 756, 758, 767, 759,
+ 771, 86, 86, 757, 86, 86, 3815, 760, 86, 769,
+ 762, 763, 764, 86, 171, 770, 761, 86, 765, 86,
+ 768, 772, 773, 774, 775, 767, 777, 776, 86, 86,
+ 780, 86, 86, 86, 782, 3815, 769, 778, 86, 783,
+ 781, 785, 770, 784, 3815, 787, 86, 786, 772, 773,
+ 774, 775, 86, 777, 776, 86, 86, 86, 86, 788,
+
+ 86, 789, 86, 796, 778, 86, 86, 781, 785, 790,
+ 784, 86, 787, 793, 786, 794, 791, 86, 797, 792,
+ 795, 86, 798, 800, 86, 86, 788, 86, 789, 801,
+ 796, 802, 803, 804, 812, 806, 790, 3815, 805, 808,
+ 793, 810, 807, 791, 86, 86, 792, 86, 86, 86,
+ 809, 811, 813, 86, 86, 86, 86, 818, 86, 86,
+ 814, 812, 806, 86, 86, 86, 808, 815, 810, 807,
+ 817, 86, 816, 820, 86, 821, 86, 809, 811, 813,
+ 86, 819, 86, 822, 86, 823, 826, 814, 86, 86,
+ 824, 825, 86, 86, 815, 831, 86, 817, 86, 816,
+
+ 820, 827, 821, 86, 829, 86, 828, 832, 819, 833,
+ 822, 3815, 823, 826, 86, 86, 86, 824, 825, 830,
+ 3815, 839, 86, 86, 3815, 845, 86, 86, 827, 86,
+ 834, 829, 838, 828, 832, 835, 833, 86, 836, 837,
+ 840, 86, 841, 844, 846, 3815, 830, 86, 839, 86,
+ 842, 843, 845, 86, 86, 3815, 86, 834, 848, 838,
+ 3815, 847, 835, 851, 849, 836, 837, 840, 853, 841,
+ 844, 86, 86, 86, 852, 854, 86, 842, 843, 86,
+ 856, 859, 86, 855, 857, 848, 850, 86, 847, 86,
+ 851, 849, 86, 860, 86, 853, 86, 86, 858, 861,
+
+ 86, 852, 854, 86, 86, 862, 863, 856, 859, 864,
+ 855, 857, 86, 850, 86, 865, 866, 867, 870, 868,
+ 860, 86, 3815, 86, 869, 858, 86, 871, 86, 86,
+ 877, 86, 862, 863, 872, 876, 864, 86, 875, 86,
+ 873, 874, 865, 866, 867, 881, 868, 878, 86, 86,
+ 86, 869, 86, 879, 871, 880, 86, 877, 86, 86,
+ 883, 872, 876, 882, 884, 875, 86, 86, 86, 86,
+ 885, 86, 881, 886, 878, 898, 887, 888, 86, 890,
+ 879, 892, 880, 889, 891, 908, 86, 893, 899, 3815,
+ 882, 884, 86, 3815, 86, 86, 86, 86, 894, 86,
+
+ 886, 86, 86, 887, 888, 895, 900, 86, 892, 901,
+ 889, 86, 896, 897, 893, 899, 902, 86, 903, 909,
+ 86, 904, 905, 86, 86, 894, 914, 915, 3815, 86,
+ 3815, 86, 895, 900, 86, 906, 901, 3815, 916, 896,
+ 897, 86, 86, 902, 86, 903, 909, 910, 904, 905,
+ 907, 912, 86, 914, 915, 918, 913, 911, 917, 86,
+ 923, 919, 906, 86, 920, 916, 86, 86, 86, 86,
+ 921, 924, 922, 86, 910, 925, 927, 907, 86, 86,
+ 86, 86, 918, 86, 911, 917, 926, 923, 919, 928,
+ 929, 920, 931, 935, 86, 930, 932, 921, 924, 922,
+
+ 86, 86, 86, 927, 86, 933, 934, 86, 936, 86,
+ 3815, 937, 938, 926, 942, 86, 928, 929, 86, 931,
+ 86, 939, 930, 932, 86, 86, 3815, 86, 940, 86,
+ 3815, 943, 933, 934, 86, 936, 941, 86, 937, 938,
+ 86, 942, 944, 945, 86, 946, 947, 3815, 939, 948,
+ 3815, 949, 86, 86, 86, 940, 953, 86, 943, 86,
+ 950, 951, 954, 941, 952, 956, 3815, 957, 3815, 944,
+ 945, 958, 946, 947, 86, 86, 948, 955, 949, 86,
+ 86, 86, 86, 953, 959, 86, 961, 950, 951, 954,
+ 86, 952, 956, 86, 957, 86, 962, 960, 958, 963,
+
+ 86, 970, 964, 965, 955, 86, 86, 969, 968, 966,
+ 967, 959, 971, 961, 974, 972, 86, 86, 975, 86,
+ 976, 86, 86, 962, 960, 86, 963, 86, 970, 964,
+ 965, 86, 86, 86, 969, 968, 966, 967, 973, 971,
+ 171, 977, 972, 978, 86, 975, 86, 976, 979, 980,
+ 981, 983, 984, 86, 982, 987, 86, 86, 989, 3815,
+ 988, 86, 992, 985, 86, 973, 86, 86, 977, 3815,
+ 978, 986, 995, 990, 86, 979, 980, 981, 983, 86,
+ 86, 982, 996, 3815, 991, 989, 994, 86, 993, 86,
+ 985, 86, 86, 86, 86, 86, 86, 86, 986, 995,
+
+ 990, 997, 999, 86, 1000, 998, 1001, 3815, 1002, 996,
+ 1003, 991, 86, 994, 86, 993, 1020, 86, 1004, 3815,
+ 1014, 1015, 1028, 86, 1012, 86, 86, 86, 997, 3815,
+ 86, 1000, 998, 1001, 86, 1002, 86, 1003, 1016, 86,
+ 1018, 1024, 1019, 1020, 3815, 1004, 1005, 1014, 1015, 1006,
+ 1017, 1012, 1021, 1007, 86, 86, 1008, 86, 1022, 86,
+ 86, 86, 1023, 1009, 1010, 1016, 1011, 1018, 1024, 1019,
+ 1038, 86, 1025, 1005, 1026, 86, 1006, 1017, 3815, 1021,
+ 1007, 86, 1077, 1008, 86, 1022, 1041, 86, 86, 1023,
+ 1009, 1010, 86, 1011, 1039, 1027, 3815, 1038, 1037, 1025,
+
+ 86, 1026, 86, 1040, 1042, 86, 1045, 86, 3815, 86,
+ 1046, 3815, 86, 1041, 86, 3815, 3815, 1047, 86, 1043,
+ 1048, 1039, 1027, 1029, 1030, 1037, 1031, 3815, 86, 1032,
+ 1040, 1042, 86, 1045, 1033, 1044, 1049, 1046, 86, 86,
+ 1034, 1035, 86, 1036, 1047, 1050, 1043, 1048, 1055, 86,
+ 1029, 1030, 1051, 1031, 1053, 1056, 1032, 1052, 3815, 1054,
+ 86, 1033, 1044, 1049, 1057, 1058, 1060, 1034, 1035, 86,
+ 1036, 1059, 1050, 1061, 86, 1055, 1062, 86, 3815, 1063,
+ 3815, 1053, 1056, 1083, 86, 86, 1054, 86, 86, 1064,
+ 86, 1057, 1058, 1060, 86, 86, 1065, 86, 1059, 1067,
+
+ 86, 86, 1066, 1062, 1069, 1068, 1063, 86, 1070, 86,
+ 1071, 1079, 1072, 3815, 1073, 86, 1064, 86, 1074, 86,
+ 86, 1075, 1078, 1065, 86, 86, 1067, 86, 1076, 1066,
+ 86, 1069, 1068, 86, 1082, 1070, 86, 1071, 86, 1072,
+ 86, 1073, 1080, 1084, 86, 1074, 1085, 1081, 1075, 1078,
+ 1086, 1087, 86, 1088, 86, 1076, 86, 86, 1089, 1092,
+ 1090, 1082, 1093, 3815, 1091, 1094, 3815, 1095, 3815, 1096,
+ 1084, 1098, 1097, 1085, 86, 86, 86, 1086, 86, 1099,
+ 1088, 86, 1108, 86, 86, 86, 1092, 1090, 86, 86,
+ 86, 1091, 86, 86, 1095, 1100, 1096, 1102, 1098, 1097,
+
+ 1101, 1104, 86, 1103, 1107, 1105, 1099, 1106, 86, 86,
+ 1109, 86, 1110, 1113, 86, 86, 86, 1111, 1112, 86,
+ 86, 1114, 1100, 86, 1102, 1115, 86, 1101, 86, 3815,
+ 1103, 86, 1105, 86, 1106, 86, 86, 1109, 1116, 1110,
+ 1113, 1118, 1117, 1121, 1111, 1112, 1119, 86, 1114, 1120,
+ 1122, 86, 1115, 1123, 1125, 3815, 86, 1126, 1124, 86,
+ 1127, 86, 1129, 86, 86, 1116, 86, 86, 1118, 1117,
+ 1121, 1128, 86, 1119, 1134, 1130, 1120, 1122, 86, 86,
+ 86, 1125, 1131, 86, 1126, 86, 1132, 1127, 1135, 1129,
+ 1136, 86, 1137, 3815, 1133, 3815, 86, 1138, 1128, 86,
+
+ 1139, 1134, 1130, 86, 1140, 1141, 3815, 1144, 1149, 1131,
+ 86, 86, 86, 1132, 86, 86, 1145, 1136, 1142, 1137,
+ 86, 1133, 86, 86, 1138, 86, 1143, 1139, 1146, 1147,
+ 1150, 1140, 1141, 86, 1144, 1151, 1148, 1155, 86, 1153,
+ 86, 1152, 1156, 1145, 86, 1142, 1154, 86, 86, 1158,
+ 86, 86, 86, 1143, 1157, 1146, 1147, 1150, 86, 86,
+ 1159, 86, 1151, 1148, 1155, 1161, 1153, 86, 1152, 1156,
+ 1160, 86, 86, 1154, 3815, 1162, 1158, 1163, 86, 1164,
+ 1166, 1157, 1165, 1167, 86, 86, 1170, 86, 1168, 86,
+ 1171, 86, 1161, 86, 1169, 86, 1173, 1160, 86, 1172,
+
+ 1174, 86, 1162, 1176, 1163, 1177, 1164, 1166, 3815, 1165,
+ 1167, 1178, 86, 86, 1182, 1168, 1175, 1179, 86, 3815,
+ 1185, 1169, 86, 86, 1180, 86, 1172, 1174, 86, 1184,
+ 1186, 1190, 1181, 1187, 86, 86, 86, 86, 1178, 86,
+ 1183, 1182, 1191, 1175, 1179, 1188, 86, 1189, 1192, 86,
+ 3815, 1180, 86, 3815, 86, 86, 1184, 86, 1194, 1181,
+ 1187, 86, 86, 86, 1193, 1198, 1195, 1183, 1202, 1191,
+ 1199, 1200, 1188, 86, 1189, 86, 1201, 1203, 1207, 1196,
+ 86, 1197, 86, 86, 3815, 1194, 86, 1206, 1205, 1204,
+ 86, 1193, 3815, 1195, 86, 1202, 86, 171, 1200, 86,
+
+ 86, 1251, 1221, 1201, 1203, 1207, 1196, 1208, 1197, 86,
+ 86, 1209, 1210, 1211, 1206, 1205, 1204, 1213, 1222, 1212,
+ 3815, 1220, 3815, 86, 86, 86, 86, 86, 86, 1221,
+ 1223, 1224, 3815, 86, 1208, 1225, 3815, 86, 1209, 1210,
+ 1211, 86, 86, 86, 1213, 1222, 1212, 1214, 1220, 1215,
+ 1226, 1227, 1228, 1216, 1229, 1217, 3815, 1223, 86, 1231,
+ 1218, 1230, 1225, 1232, 86, 1219, 1234, 86, 1233, 3815,
+ 3815, 86, 86, 86, 1214, 3815, 1215, 1226, 1227, 1228,
+ 1216, 1229, 1217, 86, 86, 1235, 1231, 1218, 1230, 1238,
+ 1236, 3815, 1219, 1234, 1241, 86, 1239, 1242, 86, 1244,
+
+ 3815, 86, 1237, 1248, 1245, 3815, 1240, 1243, 1253, 86,
+ 86, 1249, 1235, 86, 1246, 1250, 1238, 1236, 86, 86,
+ 86, 1241, 1247, 1239, 1242, 86, 86, 86, 1252, 1237,
+ 1248, 1245, 86, 1240, 1243, 86, 1255, 86, 1249, 1256,
+ 86, 1246, 1250, 1257, 86, 1258, 3815, 1266, 1268, 1247,
+ 3815, 86, 1269, 3815, 86, 1267, 3815, 1270, 3815, 3815,
+ 86, 86, 86, 1271, 3815, 1279, 1256, 86, 86, 1272,
+ 1257, 3815, 1258, 1259, 1266, 1268, 1273, 86, 1260, 1269,
+ 1261, 1275, 1267, 86, 1270, 86, 1262, 1276, 86, 86,
+ 1271, 1263, 1264, 1274, 86, 86, 1272, 86, 1265, 86,
+
+ 1259, 1277, 1280, 1273, 86, 1260, 1278, 1261, 1275, 86,
+ 1286, 1281, 1282, 1262, 1276, 1289, 1283, 86, 1263, 1264,
+ 1274, 86, 1284, 1285, 86, 1265, 86, 86, 1277, 1280,
+ 1287, 86, 86, 1278, 1288, 1290, 1291, 86, 1281, 1282,
+ 1293, 86, 1292, 1283, 86, 1294, 1295, 86, 1296, 1284,
+ 1285, 1300, 1297, 86, 86, 1299, 86, 1287, 1298, 86,
+ 1301, 1288, 1290, 1291, 86, 1306, 86, 1293, 86, 1292,
+ 86, 1303, 1302, 1295, 1304, 1296, 86, 86, 86, 1297,
+ 86, 86, 1299, 86, 1305, 1298, 1311, 1301, 1307, 1308,
+ 1309, 86, 1306, 86, 1310, 86, 1312, 86, 1303, 1302,
+
+ 1313, 1304, 1319, 1314, 86, 3815, 86, 86, 86, 1315,
+ 3815, 1305, 86, 1311, 86, 1307, 1308, 1309, 1316, 1318,
+ 1320, 1310, 86, 1312, 1317, 86, 86, 1321, 86, 1322,
+ 1314, 1323, 86, 1324, 86, 1325, 1315, 1326, 86, 1327,
+ 86, 86, 1329, 86, 3815, 1316, 1318, 1320, 1330, 1328,
+ 1331, 1317, 1332, 3815, 1321, 86, 1322, 86, 1323, 86,
+ 1324, 86, 1325, 1333, 1326, 1341, 1327, 86, 86, 1329,
+ 86, 1334, 1335, 1336, 1338, 86, 1328, 1339, 1337, 1332,
+ 86, 1340, 86, 86, 1342, 86, 1345, 1343, 1349, 86,
+ 1333, 1344, 1341, 86, 86, 1347, 1351, 86, 1334, 1335,
+
+ 86, 1338, 86, 1346, 1339, 86, 86, 1348, 1340, 86,
+ 1350, 1342, 86, 1345, 1343, 1352, 1353, 86, 1344, 86,
+ 86, 1355, 1347, 1354, 1358, 1356, 1357, 86, 86, 1360,
+ 1346, 3815, 86, 1359, 1348, 3815, 86, 1350, 86, 1361,
+ 86, 1362, 1352, 1353, 1364, 1363, 86, 86, 1355, 86,
+ 1354, 1358, 1356, 1357, 1365, 86, 1360, 86, 1366, 86,
+ 1359, 1367, 1369, 86, 1368, 1370, 1361, 86, 1362, 86,
+ 86, 1364, 1363, 1373, 1372, 86, 1374, 1371, 1375, 1377,
+ 1380, 1365, 86, 86, 1378, 1366, 86, 86, 1367, 1381,
+ 1376, 1368, 86, 1379, 86, 86, 1382, 86, 86, 1393,
+
+ 1373, 1372, 86, 1374, 1371, 1375, 1377, 86, 86, 1383,
+ 1384, 1378, 86, 1385, 1387, 1389, 1386, 1376, 3815, 1391,
+ 1379, 86, 1388, 1390, 86, 1392, 86, 1406, 86, 3815,
+ 86, 86, 86, 1396, 1399, 1394, 1383, 1384, 86, 1395,
+ 1398, 1400, 1389, 1386, 86, 86, 86, 86, 86, 1388,
+ 1390, 86, 1392, 86, 1397, 86, 1401, 86, 86, 86,
+ 1396, 1399, 1394, 86, 1402, 86, 1395, 1398, 1400, 1403,
+ 1404, 1405, 86, 1407, 1410, 1408, 1411, 1409, 86, 86,
+ 1412, 1397, 3815, 1401, 86, 86, 86, 86, 3815, 1421,
+ 3815, 1402, 1417, 86, 1413, 3815, 1403, 1404, 1405, 86,
+
+ 1434, 86, 1408, 1411, 1409, 86, 1414, 1412, 1416, 86,
+ 86, 1419, 1418, 86, 1420, 86, 86, 86, 1422, 1417,
+ 86, 1413, 86, 1425, 1423, 1424, 1429, 1426, 1432, 1428,
+ 171, 1427, 86, 1414, 1435, 1416, 3815, 86, 1419, 1418,
+ 86, 1420, 1430, 86, 86, 1422, 86, 86, 86, 1431,
+ 1425, 1423, 1424, 1429, 1426, 86, 1428, 1433, 1427, 1436,
+ 86, 86, 1437, 1438, 86, 3815, 86, 1439, 1441, 1430,
+ 1442, 86, 3815, 86, 1440, 1444, 1431, 1443, 1447, 1446,
+ 1445, 86, 1450, 86, 1433, 86, 1436, 86, 86, 1437,
+ 1438, 1452, 86, 3815, 1439, 1441, 86, 1442, 86, 86,
+
+ 1448, 1440, 1444, 86, 1443, 1447, 1446, 1445, 1449, 86,
+ 1451, 1453, 86, 1454, 86, 1455, 86, 1456, 1452, 1457,
+ 86, 1462, 1461, 86, 86, 86, 1464, 1448, 1458, 1463,
+ 1459, 3815, 1465, 1460, 1467, 1449, 86, 1451, 1453, 1474,
+ 1454, 86, 1455, 3815, 1456, 86, 1457, 86, 1462, 1461,
+ 1466, 86, 86, 86, 1468, 1458, 1463, 1459, 86, 1465,
+ 1460, 1467, 86, 86, 1469, 1470, 1471, 1472, 1475, 1473,
+ 1477, 86, 1476, 86, 1478, 86, 1479, 1466, 1480, 3815,
+ 1481, 1468, 86, 86, 86, 86, 86, 1483, 86, 1484,
+ 86, 1469, 1470, 1471, 1472, 1475, 1473, 1477, 1486, 1476,
+
+ 86, 1478, 86, 86, 1482, 1480, 1485, 1481, 1487, 86,
+ 86, 86, 86, 1488, 1483, 1491, 1484, 1489, 1492, 1493,
+ 86, 86, 1494, 1495, 86, 1486, 1490, 86, 1496, 86,
+ 86, 1482, 1499, 1485, 86, 1487, 1497, 86, 86, 1498,
+ 1488, 86, 1491, 1500, 1489, 1492, 1493, 1501, 86, 1494,
+ 1495, 86, 1503, 1490, 86, 1496, 1504, 86, 1502, 1499,
+ 1510, 1505, 1506, 1497, 1507, 86, 1498, 1512, 86, 86,
+ 86, 1508, 86, 86, 1501, 86, 3815, 86, 1509, 1503,
+ 1511, 1513, 1514, 1504, 1515, 1502, 1517, 86, 1505, 1506,
+ 86, 1507, 86, 86, 1516, 86, 1518, 86, 1508, 86,
+
+ 1519, 86, 1522, 86, 1525, 1509, 1523, 1511, 1513, 1514,
+ 86, 1515, 1520, 1517, 1524, 86, 1535, 1521, 86, 86,
+ 1533, 1516, 1540, 1518, 1534, 3815, 3815, 1519, 86, 1522,
+ 86, 1525, 1536, 1523, 86, 3815, 3815, 1539, 1537, 1538,
+ 3815, 1524, 86, 1543, 86, 1526, 1541, 1533, 86, 1527,
+ 1550, 1534, 1528, 1529, 86, 86, 1542, 1530, 86, 1536,
+ 86, 1545, 86, 1531, 1539, 1537, 1538, 1532, 86, 86,
+ 1543, 86, 1526, 1541, 1551, 1544, 1527, 1549, 86, 1528,
+ 1529, 86, 86, 1542, 1530, 1548, 86, 86, 1545, 1546,
+ 1531, 1547, 86, 1552, 1532, 1556, 1553, 1555, 1554, 1558,
+
+ 1557, 1560, 1544, 1562, 1549, 86, 86, 1559, 86, 86,
+ 1561, 3815, 1548, 86, 86, 1563, 1546, 86, 1547, 86,
+ 1552, 1591, 1556, 1553, 1555, 1554, 86, 1557, 86, 86,
+ 1562, 86, 86, 86, 1559, 1569, 1570, 1561, 1571, 1572,
+ 1573, 3815, 1563, 1564, 1574, 3815, 1575, 1576, 1565, 86,
+ 1566, 1577, 1567, 86, 1568, 3815, 3815, 86, 86, 86,
+ 86, 86, 1569, 1570, 86, 1571, 1579, 1578, 86, 86,
+ 1564, 1574, 1582, 1575, 1576, 1565, 86, 1566, 1577, 1567,
+ 1580, 1568, 1583, 1584, 86, 1581, 1585, 1587, 86, 1586,
+ 86, 1592, 1593, 1579, 1578, 1588, 1589, 3815, 1590, 1582,
+
+ 86, 1594, 86, 86, 86, 86, 1598, 86, 86, 1583,
+ 1584, 86, 86, 1585, 1587, 1596, 1586, 86, 1592, 1593,
+ 86, 1595, 1588, 1589, 86, 1590, 1597, 1599, 1594, 1600,
+ 1601, 3815, 86, 1598, 86, 1603, 1602, 86, 86, 86,
+ 1604, 1605, 1596, 1606, 1607, 3815, 3815, 86, 1595, 1608,
+ 1609, 1610, 86, 1597, 1599, 1612, 1600, 1601, 86, 86,
+ 1614, 1611, 86, 1602, 1615, 86, 1620, 1604, 86, 86,
+ 1606, 1607, 86, 86, 1613, 1616, 1608, 1609, 1610, 86,
+ 1617, 86, 86, 1618, 1622, 1623, 86, 86, 1611, 86,
+ 86, 1615, 1619, 86, 86, 1625, 1621, 86, 86, 1624,
+
+ 3815, 1613, 1616, 86, 1627, 1629, 86, 1617, 1626, 86,
+ 1618, 1622, 1623, 1628, 86, 1630, 1631, 3815, 1636, 1619,
+ 1632, 3815, 86, 1621, 1633, 3815, 1624, 86, 86, 1638,
+ 86, 1627, 1629, 1635, 86, 1626, 1634, 86, 86, 86,
+ 1628, 1640, 1630, 1631, 1637, 1636, 86, 1632, 1639, 86,
+ 1641, 1633, 1642, 86, 1644, 86, 1638, 1643, 1646, 1645,
+ 1635, 86, 1647, 1634, 3815, 1648, 86, 86, 1640, 1649,
+ 86, 1637, 86, 86, 86, 1639, 1650, 1641, 86, 1642,
+ 1651, 1644, 1654, 1653, 1643, 1652, 1645, 86, 1655, 1656,
+ 86, 86, 1648, 86, 86, 86, 1649, 1657, 86, 86,
+
+ 1658, 1659, 1662, 1663, 1664, 1666, 86, 1651, 86, 86,
+ 1653, 86, 1652, 171, 1660, 1655, 1656, 86, 1661, 1670,
+ 1665, 86, 86, 1669, 1657, 86, 1667, 1658, 1659, 1672,
+ 86, 1664, 1668, 1671, 86, 86, 86, 86, 1675, 86,
+ 86, 1660, 1673, 1674, 86, 1661, 1677, 1665, 86, 1678,
+ 1669, 86, 86, 1667, 1676, 86, 1672, 1679, 86, 1668,
+ 1671, 86, 1680, 1681, 86, 1675, 1683, 1684, 1682, 1673,
+ 1674, 86, 86, 1677, 1685, 86, 1678, 1686, 1689, 86,
+ 1690, 1676, 1687, 1688, 1679, 1691, 1697, 86, 86, 1680,
+ 86, 1692, 86, 1683, 1684, 1682, 86, 1695, 86, 86,
+
+ 1696, 1685, 1699, 86, 86, 1689, 1698, 1690, 1693, 86,
+ 1688, 1694, 1691, 1697, 1700, 86, 1701, 1703, 1692, 86,
+ 86, 1702, 1704, 1707, 1695, 1708, 1705, 1696, 1722, 1699,
+ 1742, 86, 86, 1698, 86, 1693, 1709, 86, 1694, 86,
+ 1706, 86, 1710, 1701, 1712, 1711, 86, 86, 1702, 86,
+ 1707, 86, 1708, 1705, 86, 1713, 1716, 1715, 86, 1714,
+ 86, 1718, 86, 1709, 86, 86, 86, 1706, 1719, 1710,
+ 86, 1712, 1711, 1721, 3815, 1723, 1717, 86, 3815, 1726,
+ 1720, 86, 1713, 1716, 1715, 86, 1714, 86, 1718, 86,
+ 86, 86, 86, 1724, 1730, 1719, 1727, 1725, 1728, 1731,
+
+ 1721, 1729, 1723, 1717, 86, 86, 1726, 1720, 86, 86,
+ 86, 1732, 1735, 1733, 1734, 1743, 86, 1736, 86, 86,
+ 1724, 1730, 86, 1727, 1725, 1728, 1731, 86, 1729, 1737,
+ 1738, 1739, 1744, 86, 1741, 86, 1740, 1746, 1732, 1735,
+ 1733, 1734, 86, 86, 1736, 86, 1745, 86, 1747, 86,
+ 1751, 1748, 1750, 1752, 1753, 86, 1737, 1738, 1739, 1744,
+ 86, 1741, 86, 1740, 86, 1749, 3815, 1754, 1758, 86,
+ 1755, 86, 86, 1745, 86, 1747, 1759, 3815, 1748, 1750,
+ 1760, 1761, 86, 1766, 1765, 86, 86, 1762, 1763, 1756,
+ 86, 1757, 1749, 86, 1754, 86, 86, 1755, 86, 86,
+
+ 1764, 86, 86, 1759, 86, 1768, 1767, 1760, 1761, 86,
+ 1766, 1765, 86, 86, 1762, 1763, 1756, 1769, 1757, 1776,
+ 1771, 1770, 1777, 1781, 86, 1772, 1774, 1764, 86, 86,
+ 1773, 1775, 1768, 1767, 86, 1778, 1786, 1779, 1782, 86,
+ 3815, 86, 86, 1780, 1769, 86, 1776, 1771, 1770, 1777,
+ 1781, 86, 1784, 1792, 1787, 1783, 3815, 86, 86, 86,
+ 86, 86, 1778, 86, 1779, 1782, 1785, 1789, 86, 1788,
+ 1780, 1790, 1791, 86, 86, 86, 86, 1795, 86, 1784,
+ 1793, 1787, 1783, 86, 1794, 86, 1797, 1796, 86, 1798,
+ 1802, 3815, 1799, 1785, 1789, 86, 1788, 86, 1790, 1791,
+
+ 86, 1805, 1800, 86, 86, 86, 1804, 1793, 1806, 86,
+ 86, 1794, 1801, 1797, 1796, 1803, 1798, 1802, 86, 1799,
+ 86, 86, 1807, 1808, 1810, 1809, 1811, 86, 1805, 1800,
+ 86, 86, 86, 1804, 1812, 1806, 1813, 3815, 3815, 1801,
+ 86, 1814, 1803, 3815, 1816, 1815, 1817, 1827, 1823, 1807,
+ 1808, 86, 1809, 86, 1822, 86, 86, 86, 1821, 86,
+ 86, 1812, 86, 1813, 1824, 1818, 1828, 86, 1814, 1819,
+ 86, 1816, 1815, 1817, 86, 1823, 86, 1825, 86, 1829,
+ 1832, 1822, 1820, 1826, 86, 1821, 1830, 1831, 86, 3815,
+ 86, 1824, 1818, 1828, 86, 1833, 1819, 1834, 86, 1836,
+
+ 1835, 86, 1841, 1838, 1825, 1840, 86, 1837, 1839, 1820,
+ 1826, 86, 86, 1830, 1831, 86, 86, 86, 1843, 1842,
+ 86, 86, 1833, 86, 1834, 1844, 1836, 1835, 86, 86,
+ 1838, 86, 1845, 1847, 1837, 1839, 1846, 86, 3815, 1849,
+ 1848, 3815, 1851, 3815, 1850, 1852, 1842, 86, 3815, 1853,
+ 86, 1855, 1844, 1854, 86, 1856, 86, 1860, 1866, 1845,
+ 86, 86, 86, 1846, 86, 86, 86, 1848, 86, 86,
+ 1857, 1850, 1852, 1858, 1859, 86, 1853, 86, 1855, 1862,
+ 1854, 86, 1856, 86, 1860, 86, 1861, 1863, 1864, 1865,
+ 86, 86, 1867, 1868, 1869, 86, 1870, 1857, 86, 1873,
+
+ 1858, 1859, 86, 86, 1878, 1871, 1862, 86, 86, 1874,
+ 86, 86, 1876, 1861, 1863, 1864, 1865, 1872, 86, 1867,
+ 1868, 1869, 86, 1870, 86, 86, 1873, 1879, 1875, 1877,
+ 1884, 86, 1871, 1880, 86, 1881, 1874, 86, 1882, 1876,
+ 86, 86, 1887, 86, 1872, 1883, 86, 1885, 1888, 1889,
+ 86, 1886, 1890, 86, 1879, 1875, 1877, 1884, 1891, 86,
+ 1880, 86, 1881, 3815, 86, 1882, 86, 3815, 1893, 1887,
+ 86, 1892, 1883, 86, 1885, 86, 1889, 86, 1886, 1890,
+ 86, 1894, 171, 1895, 1896, 1891, 1897, 1898, 1899, 86,
+ 1900, 86, 1905, 1902, 86, 1893, 1901, 1903, 1892, 86,
+
+ 86, 1904, 1911, 1906, 86, 1907, 86, 3815, 1894, 86,
+ 1895, 1896, 1909, 1897, 1898, 1899, 86, 1900, 86, 86,
+ 1902, 86, 1908, 1901, 1903, 1910, 1912, 86, 1904, 86,
+ 1906, 1913, 1907, 86, 86, 1914, 3815, 86, 1915, 1909,
+ 1916, 3815, 1917, 1919, 1920, 1921, 1918, 86, 86, 1908,
+ 86, 86, 1910, 1912, 86, 1922, 1927, 86, 1923, 1925,
+ 1935, 1924, 1914, 86, 86, 1915, 86, 86, 86, 1917,
+ 1919, 1920, 1921, 1918, 86, 1926, 3815, 1928, 1930, 3815,
+ 86, 86, 1922, 1927, 86, 1923, 1925, 86, 1924, 1929,
+ 1931, 1932, 86, 86, 1933, 3815, 1937, 86, 86, 1943,
+
+ 1936, 1939, 1926, 86, 1928, 1930, 1934, 1940, 1941, 1945,
+ 86, 1944, 1938, 1942, 86, 86, 1929, 1931, 1932, 86,
+ 86, 1933, 86, 1937, 1946, 1947, 86, 1936, 1939, 86,
+ 3815, 1948, 1950, 1934, 1940, 1941, 1949, 86, 1944, 1938,
+ 1942, 86, 1953, 1951, 1956, 1952, 1954, 86, 1955, 1957,
+ 1958, 86, 1947, 1959, 86, 86, 86, 86, 1948, 86,
+ 1961, 1960, 86, 1949, 86, 86, 1964, 1963, 86, 1953,
+ 1951, 1956, 1952, 1954, 1962, 1955, 1965, 1966, 86, 1968,
+ 1967, 86, 86, 86, 3815, 86, 86, 86, 1960, 86,
+ 3815, 86, 86, 86, 1963, 1970, 1971, 1969, 86, 1972,
+
+ 1973, 1962, 86, 1965, 1966, 86, 1968, 1967, 1974, 86,
+ 1976, 1977, 86, 86, 1975, 1980, 86, 86, 1982, 1979,
+ 1978, 1983, 1970, 1971, 1969, 1981, 1972, 1973, 86, 3815,
+ 86, 1990, 86, 86, 3815, 1974, 86, 1976, 1977, 86,
+ 86, 1975, 1980, 1984, 1985, 1982, 1979, 1978, 1987, 1986,
+ 86, 3815, 1981, 86, 1988, 86, 86, 86, 1990, 1991,
+ 1992, 86, 1993, 1994, 1995, 3815, 1996, 3815, 1997, 86,
+ 1984, 1985, 1989, 2000, 3815, 1987, 1986, 86, 86, 86,
+ 86, 1988, 86, 1998, 2001, 86, 1991, 86, 2003, 1993,
+ 1994, 1995, 86, 1996, 1999, 1997, 86, 86, 2006, 1989,
+
+ 2000, 2002, 86, 2011, 2004, 2009, 2012, 2005, 86, 86,
+ 1998, 2001, 2007, 86, 86, 2003, 2010, 2008, 86, 2013,
+ 2014, 1999, 86, 3815, 86, 2006, 2016, 86, 2002, 2015,
+ 2011, 2004, 2009, 86, 2005, 86, 2017, 2018, 86, 2007,
+ 2019, 2022, 3815, 2010, 2008, 2034, 86, 2014, 86, 2020,
+ 86, 86, 2021, 2016, 2023, 2024, 2015, 2027, 2025, 2026,
+ 86, 2028, 2033, 86, 2018, 86, 86, 2019, 2022, 86,
+ 86, 86, 86, 2032, 86, 86, 2020, 86, 3815, 2021,
+ 2029, 2023, 2024, 2030, 2027, 2025, 2026, 2031, 2028, 2035,
+ 86, 86, 2036, 2038, 86, 2039, 2046, 2037, 86, 86,
+
+ 2032, 2040, 86, 2043, 3815, 86, 2044, 2029, 86, 86,
+ 2030, 86, 86, 2041, 2031, 2045, 2035, 86, 2042, 2036,
+ 2038, 86, 2039, 2046, 2037, 86, 2047, 2048, 2040, 2049,
+ 2043, 2050, 3815, 2044, 2051, 3815, 2053, 2060, 2052, 2059,
+ 86, 2055, 2045, 86, 2056, 86, 2058, 2057, 86, 86,
+ 2054, 86, 86, 2047, 2048, 2069, 2049, 2072, 2050, 86,
+ 86, 2051, 86, 2053, 2060, 2052, 2059, 2061, 2055, 86,
+ 2062, 2056, 86, 2058, 2057, 2063, 86, 2054, 2064, 2066,
+ 2065, 2067, 2068, 2071, 86, 3815, 2074, 86, 2070, 86,
+ 2073, 86, 86, 2075, 2061, 86, 3815, 86, 2080, 86,
+
+ 2076, 2079, 86, 86, 2077, 2064, 2066, 2065, 2067, 2068,
+ 86, 86, 86, 2074, 86, 2070, 2078, 2073, 2081, 2084,
+ 2082, 86, 2085, 86, 3815, 86, 2083, 2076, 2079, 2086,
+ 86, 2077, 86, 2089, 2087, 2090, 2091, 86, 2088, 2099,
+ 2093, 86, 86, 2078, 86, 2081, 86, 2082, 2100, 2085,
+ 2092, 86, 86, 2083, 86, 2094, 2086, 86, 86, 2095,
+ 2089, 2087, 2090, 2091, 86, 2088, 2096, 2093, 2097, 86,
+ 2101, 86, 86, 2102, 2103, 2105, 2104, 2092, 2107, 86,
+ 86, 2109, 2094, 86, 86, 2108, 2095, 86, 2106, 2098,
+ 3815, 2113, 3815, 2096, 86, 86, 86, 2101, 2112, 86,
+
+ 2102, 86, 2105, 2104, 2110, 86, 2111, 86, 2116, 86,
+ 2118, 2115, 2108, 86, 2114, 2106, 2098, 86, 86, 2117,
+ 2119, 86, 2120, 2121, 2124, 2112, 86, 86, 2122, 2127,
+ 86, 2110, 86, 2111, 86, 2116, 2123, 2118, 2115, 2131,
+ 86, 2114, 86, 2125, 86, 2126, 2117, 2119, 86, 2120,
+ 2121, 2124, 2128, 2129, 86, 2122, 86, 86, 171, 2130,
+ 86, 2132, 2133, 2123, 2134, 2140, 86, 86, 86, 2137,
+ 2125, 2144, 2126, 2138, 3815, 86, 86, 2135, 2136, 2128,
+ 2129, 86, 2143, 86, 86, 2147, 2130, 2139, 2132, 2133,
+ 2142, 2134, 86, 86, 86, 2141, 2137, 86, 86, 86,
+
+ 2138, 2145, 2148, 86, 2135, 2136, 2146, 2149, 2150, 2143,
+ 86, 2151, 86, 86, 2139, 2152, 3815, 2142, 3815, 2153,
+ 2154, 2174, 2141, 2156, 86, 86, 86, 2155, 2145, 2148,
+ 86, 2157, 2158, 2146, 86, 2150, 86, 2162, 2160, 86,
+ 2159, 86, 86, 86, 2161, 86, 2153, 2154, 2163, 86,
+ 2156, 86, 2165, 86, 2155, 86, 2164, 3815, 2157, 2158,
+ 86, 3815, 2171, 86, 2162, 2160, 86, 2159, 86, 2166,
+ 2168, 2161, 2173, 2169, 86, 2163, 2172, 86, 2177, 2165,
+ 2170, 2176, 2167, 2164, 86, 2175, 86, 86, 86, 2171,
+ 2178, 86, 86, 2179, 2180, 86, 2166, 2168, 86, 86,
+
+ 2169, 86, 2181, 2172, 86, 2177, 2184, 2170, 2176, 2167,
+ 2185, 2182, 2175, 2183, 2186, 2187, 2188, 2178, 2189, 2190,
+ 2179, 2180, 86, 2193, 86, 86, 2194, 86, 2191, 2181,
+ 2192, 2195, 86, 2184, 86, 2196, 86, 86, 2182, 2197,
+ 2183, 86, 2187, 86, 86, 2189, 2190, 2198, 2199, 86,
+ 86, 2201, 2203, 2194, 2200, 2191, 86, 2192, 86, 86,
+ 2204, 2205, 2196, 86, 2202, 2207, 86, 2206, 86, 2209,
+ 2208, 86, 3815, 86, 2198, 86, 86, 2210, 2201, 2203,
+ 86, 2200, 86, 2211, 2214, 2212, 2213, 86, 2205, 86,
+ 2222, 2202, 86, 2227, 2206, 3815, 2209, 2208, 2228, 86,
+
+ 2215, 2216, 2217, 3815, 2210, 86, 2238, 2218, 86, 2220,
+ 2211, 86, 2212, 2213, 2219, 86, 86, 2221, 86, 2223,
+ 2225, 86, 86, 2224, 86, 86, 86, 2215, 2216, 2217,
+ 86, 2226, 2229, 86, 2218, 2231, 2220, 2230, 2232, 2233,
+ 86, 2219, 2234, 2235, 2221, 86, 2223, 2225, 2236, 86,
+ 2224, 86, 2240, 86, 86, 86, 2243, 2237, 2226, 2229,
+ 86, 86, 2231, 86, 2230, 2232, 2233, 2239, 86, 2241,
+ 2235, 2244, 2242, 2245, 86, 2236, 86, 86, 86, 2240,
+ 2246, 2247, 86, 2243, 2237, 2249, 2248, 86, 86, 2251,
+ 2252, 2250, 2255, 2253, 2239, 86, 2241, 2256, 86, 2242,
+
+ 86, 86, 2258, 86, 2254, 86, 2259, 2246, 86, 86,
+ 2260, 2257, 2249, 2248, 86, 86, 2251, 86, 2250, 2255,
+ 2253, 2262, 86, 2263, 86, 2265, 86, 2266, 86, 2258,
+ 2268, 2254, 3815, 2259, 2261, 86, 86, 2260, 2257, 2264,
+ 86, 2267, 2269, 2271, 2270, 2272, 2273, 86, 2262, 86,
+ 86, 2274, 2265, 2275, 86, 2276, 3815, 2280, 2277, 86,
+ 2287, 2261, 86, 86, 86, 86, 2264, 2278, 2267, 2269,
+ 86, 2270, 2272, 2273, 2279, 86, 86, 86, 2281, 86,
+ 86, 86, 2276, 86, 2280, 2277, 2283, 2284, 2282, 2285,
+ 86, 2286, 86, 2288, 2278, 2289, 86, 2290, 2297, 2291,
+
+ 3815, 2279, 86, 86, 86, 2281, 2292, 3815, 86, 2296,
+ 86, 86, 2294, 2283, 2284, 2282, 2285, 86, 2286, 86,
+ 2288, 2302, 2293, 2295, 2290, 86, 2291, 86, 86, 86,
+ 2299, 86, 2298, 2292, 2300, 86, 2296, 2301, 86, 2294,
+ 2303, 2304, 2305, 2306, 86, 86, 86, 2307, 2302, 2293,
+ 2295, 2311, 2308, 3815, 3815, 2314, 3815, 2299, 2319, 2298,
+ 86, 2300, 86, 86, 2301, 86, 86, 2303, 2304, 2305,
+ 86, 2309, 2313, 2315, 2307, 86, 2310, 2312, 86, 2308,
+ 2320, 2316, 2314, 86, 2317, 86, 2318, 86, 86, 86,
+ 86, 86, 2322, 86, 2321, 86, 2323, 2324, 2309, 2313,
+
+ 2315, 2325, 2326, 2310, 2312, 2332, 86, 2320, 2316, 2330,
+ 86, 2317, 2327, 2318, 86, 2328, 86, 2333, 2331, 2322,
+ 2329, 2321, 2336, 2323, 86, 86, 2337, 86, 2325, 2326,
+ 86, 86, 86, 2334, 2338, 86, 2330, 2339, 2335, 2327,
+ 86, 2340, 2328, 2341, 86, 2331, 2343, 2329, 3815, 2347,
+ 2345, 2342, 2344, 2346, 86, 86, 86, 2348, 86, 86,
+ 2349, 2338, 86, 2350, 2339, 86, 86, 86, 2340, 86,
+ 2354, 2365, 2353, 2343, 2351, 86, 86, 2345, 2342, 2344,
+ 2346, 86, 86, 2355, 2348, 86, 2352, 2356, 2358, 2357,
+ 86, 2360, 86, 86, 171, 86, 2359, 2354, 86, 2353,
+
+ 2361, 2351, 2362, 86, 2366, 2364, 2367, 2363, 2369, 2368,
+ 2355, 86, 86, 2352, 2356, 86, 2357, 86, 2360, 86,
+ 86, 2370, 2371, 2359, 2373, 86, 86, 86, 86, 86,
+ 86, 2366, 2364, 2367, 2363, 2369, 2368, 2372, 2374, 3815,
+ 2375, 2376, 2377, 86, 2379, 3815, 2384, 86, 2370, 86,
+ 2378, 2373, 2380, 86, 2381, 2385, 86, 86, 2382, 2383,
+ 2386, 86, 86, 2391, 2372, 2374, 86, 2375, 2376, 2377,
+ 86, 86, 86, 86, 2389, 2387, 86, 2378, 86, 2380,
+ 86, 2381, 2385, 86, 86, 2382, 2383, 2386, 2388, 2390,
+ 2392, 2393, 2395, 2401, 2394, 86, 86, 86, 2398, 86,
+
+ 86, 2389, 2387, 86, 2399, 86, 2400, 86, 2402, 86,
+ 2403, 86, 2396, 2408, 2404, 2388, 2390, 2392, 2393, 2395,
+ 2401, 2394, 86, 2397, 86, 2398, 2405, 2406, 86, 86,
+ 2407, 2399, 86, 2400, 86, 2402, 2409, 2403, 86, 2396,
+ 86, 2404, 2417, 2413, 86, 2410, 2421, 2411, 2412, 86,
+ 2397, 2414, 2415, 2405, 2406, 86, 86, 2407, 86, 86,
+ 86, 2416, 2418, 2409, 86, 2423, 2419, 2420, 86, 2417,
+ 2413, 86, 2410, 86, 2411, 2412, 86, 2422, 2414, 86,
+ 2424, 2425, 2426, 2427, 86, 86, 2428, 86, 2416, 2418,
+ 2429, 2431, 86, 2419, 2420, 2430, 86, 2432, 86, 86,
+
+ 86, 2436, 2471, 86, 2422, 3815, 86, 2424, 2425, 2426,
+ 86, 2433, 2437, 2428, 2435, 86, 86, 2429, 2431, 2434,
+ 86, 2438, 2430, 86, 2432, 2439, 2441, 86, 2436, 2440,
+ 86, 2442, 2445, 86, 86, 3815, 86, 86, 2433, 2437,
+ 86, 2435, 2443, 86, 86, 2451, 2434, 2444, 2438, 86,
+ 2446, 2447, 2439, 2441, 2448, 2450, 2440, 2453, 2442, 2445,
+ 2454, 2452, 86, 2455, 2457, 2456, 2458, 2449, 3815, 86,
+ 86, 2460, 2451, 86, 86, 86, 86, 2446, 2447, 2459,
+ 2462, 2448, 2450, 2463, 86, 3815, 86, 2454, 2452, 86,
+ 2455, 2457, 2456, 2458, 2449, 2461, 86, 2464, 2460, 2465,
+
+ 2466, 86, 86, 86, 86, 2467, 2459, 2462, 86, 2468,
+ 2463, 2469, 2473, 2475, 2470, 86, 2472, 2474, 86, 86,
+ 86, 86, 2461, 86, 2464, 2477, 2465, 2466, 2476, 86,
+ 86, 2478, 2467, 2484, 86, 2479, 2468, 86, 2469, 2473,
+ 86, 2470, 2480, 2472, 2474, 2481, 2483, 86, 2485, 2486,
+ 2482, 2487, 2477, 86, 86, 2476, 86, 86, 2478, 86,
+ 2491, 2490, 2479, 86, 86, 86, 86, 2493, 86, 2480,
+ 86, 2492, 2481, 2483, 2488, 2485, 2486, 2482, 2487, 2489,
+ 86, 2494, 86, 2495, 86, 2496, 2498, 2491, 2490, 2499,
+ 2497, 2501, 2500, 86, 2493, 2502, 2503, 2506, 2492, 2564,
+
+ 3815, 86, 86, 2508, 86, 2507, 86, 2504, 86, 86,
+ 2495, 2509, 2496, 2498, 86, 2505, 86, 2497, 2501, 2500,
+ 86, 86, 2502, 2510, 86, 2511, 86, 2512, 86, 86,
+ 2508, 86, 2507, 2513, 2504, 2521, 86, 86, 2509, 2516,
+ 2514, 86, 2505, 2515, 2518, 2517, 2520, 86, 2522, 2519,
+ 2510, 86, 2511, 86, 2512, 2523, 86, 2525, 86, 2524,
+ 2513, 86, 2521, 86, 86, 2526, 2516, 2514, 2531, 86,
+ 2515, 2527, 2517, 2520, 86, 2522, 86, 2528, 2536, 86,
+ 86, 2530, 2523, 2535, 2525, 86, 2524, 86, 2532, 2529,
+ 2537, 2533, 2526, 2534, 86, 86, 86, 86, 2527, 86,
+
+ 86, 2538, 86, 86, 2528, 2536, 2540, 2539, 2530, 2541,
+ 2535, 3815, 2542, 86, 2545, 2532, 2529, 2537, 2533, 86,
+ 2534, 86, 2543, 2544, 86, 2547, 2546, 2549, 2538, 86,
+ 2551, 2552, 86, 2540, 2539, 86, 2541, 2554, 2548, 2542,
+ 86, 2545, 86, 2550, 86, 86, 86, 86, 86, 2543,
+ 2544, 2555, 2547, 2546, 2549, 86, 2556, 2551, 2552, 2553,
+ 2557, 86, 2558, 2561, 2554, 2548, 2562, 2559, 2560, 2563,
+ 2550, 86, 2568, 2569, 86, 86, 2565, 86, 86, 2566,
+ 86, 171, 2570, 2556, 2567, 86, 2553, 86, 2571, 2558,
+ 2561, 86, 2572, 2562, 2559, 2560, 2563, 2574, 2583, 86,
+
+ 2575, 2573, 2578, 2565, 86, 86, 86, 86, 2579, 2570,
+ 86, 86, 2580, 2582, 2576, 2571, 2581, 2587, 3815, 2572,
+ 86, 2584, 86, 2585, 86, 2577, 86, 2575, 2573, 2578,
+ 86, 86, 2586, 86, 2588, 86, 2589, 2590, 86, 2580,
+ 2582, 2576, 2591, 2581, 86, 86, 2593, 2592, 2584, 86,
+ 2585, 2597, 2577, 86, 2595, 2594, 86, 86, 86, 2586,
+ 86, 2588, 2596, 86, 2590, 2598, 86, 2604, 86, 2591,
+ 86, 2599, 2600, 2593, 2592, 2602, 86, 2601, 2597, 2606,
+ 86, 2595, 2594, 86, 86, 2603, 2605, 86, 2607, 2596,
+ 86, 86, 2598, 2611, 86, 2612, 2608, 86, 2599, 2600,
+
+ 2609, 86, 2602, 86, 2601, 86, 2606, 2610, 86, 86,
+ 86, 2613, 2603, 2605, 2614, 2607, 86, 2615, 2616, 3815,
+ 2611, 2617, 2612, 2608, 2618, 3815, 86, 2609, 86, 2619,
+ 2624, 2620, 86, 86, 2610, 2623, 86, 86, 2613, 86,
+ 86, 2614, 2621, 86, 2615, 86, 86, 2622, 2617, 2625,
+ 86, 2618, 2627, 2626, 2628, 2629, 2619, 2624, 2620, 86,
+ 2631, 2630, 2623, 3815, 86, 2633, 2635, 86, 2632, 2621,
+ 2634, 2638, 2636, 86, 2622, 86, 2625, 86, 2637, 2643,
+ 2626, 2642, 2629, 2640, 86, 86, 86, 2631, 2630, 86,
+ 86, 2644, 2633, 86, 86, 2632, 86, 2634, 2638, 2636,
+
+ 2639, 2641, 86, 86, 2645, 2637, 86, 86, 2642, 2646,
+ 2640, 2647, 2648, 3815, 2649, 86, 86, 2650, 2644, 2651,
+ 2653, 86, 2652, 86, 2654, 3815, 86, 2639, 2641, 2657,
+ 2658, 86, 86, 2659, 2655, 2661, 2646, 2656, 2647, 2648,
+ 86, 2649, 86, 2660, 2650, 2664, 86, 2653, 86, 2652,
+ 86, 2654, 86, 2663, 2665, 86, 86, 86, 2667, 2662,
+ 2659, 2655, 2661, 2666, 2656, 86, 86, 2668, 86, 2669,
+ 2660, 86, 86, 2671, 2672, 2670, 86, 2673, 2674, 2675,
+ 2663, 86, 2676, 2677, 2678, 86, 2662, 86, 3815, 2682,
+ 2666, 86, 2681, 86, 2668, 86, 86, 86, 2684, 2679,
+
+ 2671, 86, 2670, 2687, 86, 2674, 2675, 2680, 86, 2676,
+ 2677, 86, 86, 2683, 86, 86, 86, 2686, 2685, 2681,
+ 2691, 86, 2688, 2692, 86, 86, 2679, 86, 2689, 2693,
+ 2687, 86, 2694, 2698, 2680, 2697, 2695, 3815, 3815, 86,
+ 2683, 86, 3815, 2690, 2686, 2685, 86, 86, 86, 2688,
+ 2692, 2699, 2696, 2703, 86, 2689, 2693, 86, 86, 2694,
+ 86, 2700, 86, 2695, 2701, 86, 2704, 2705, 86, 2702,
+ 2690, 2708, 3815, 86, 2707, 86, 86, 2706, 2699, 2696,
+ 2703, 86, 2711, 86, 2718, 86, 2709, 2713, 2700, 3815,
+ 2714, 2701, 2725, 86, 2705, 2712, 2702, 86, 2708, 86,
+
+ 2710, 2707, 86, 86, 2706, 2719, 2715, 86, 2717, 86,
+ 2716, 2718, 86, 2709, 2713, 86, 2720, 2714, 3815, 86,
+ 86, 2721, 2712, 2722, 86, 3815, 2726, 2710, 3815, 2727,
+ 2728, 86, 2719, 2715, 86, 2717, 2729, 2716, 2723, 2734,
+ 2724, 86, 2730, 2720, 86, 2731, 86, 86, 2721, 2732,
+ 2722, 86, 86, 2726, 3815, 86, 2727, 2728, 86, 86,
+ 2733, 86, 2736, 2729, 2737, 2723, 2734, 2724, 2738, 2730,
+ 2735, 86, 2731, 2739, 2740, 2741, 2732, 2742, 86, 2744,
+ 3815, 2743, 3815, 86, 86, 86, 86, 2733, 2745, 2736,
+ 86, 2737, 2746, 86, 2747, 2738, 86, 2735, 2748, 2749,
+
+ 2739, 2758, 2750, 3815, 2742, 2756, 86, 86, 2743, 86,
+ 86, 86, 86, 2751, 86, 2745, 2752, 2753, 2754, 2746,
+ 2755, 2747, 2757, 86, 86, 2748, 2749, 3815, 2758, 2750,
+ 2763, 86, 2759, 86, 86, 86, 86, 86, 2761, 86,
+ 2751, 2760, 2766, 2752, 2753, 2754, 2762, 2755, 86, 2764,
+ 3815, 2767, 2768, 2773, 86, 2774, 86, 2765, 3815, 2759,
+ 86, 3815, 86, 3815, 2769, 2761, 2770, 86, 2760, 2766,
+ 2771, 86, 86, 2762, 171, 86, 2764, 86, 2767, 2768,
+ 86, 86, 2774, 2772, 2765, 2775, 2776, 2777, 2778, 2779,
+ 2780, 2769, 3815, 2770, 86, 2781, 2782, 2771, 2785, 86,
+
+ 2783, 86, 86, 86, 2786, 86, 2784, 86, 86, 2787,
+ 2772, 2788, 2775, 2776, 2777, 2778, 2779, 2780, 86, 86,
+ 2789, 86, 2781, 2782, 2790, 86, 2791, 2783, 2792, 2794,
+ 2793, 86, 2795, 2784, 2797, 86, 2787, 2796, 86, 2798,
+ 2801, 2800, 2799, 2803, 86, 86, 86, 2789, 86, 86,
+ 86, 2790, 86, 2804, 2805, 2806, 86, 2793, 86, 2795,
+ 86, 2797, 2802, 86, 2796, 86, 2798, 86, 2800, 2799,
+ 2803, 2807, 86, 2808, 2809, 86, 86, 2811, 86, 2810,
+ 2804, 2805, 86, 2813, 86, 2812, 3815, 2815, 2814, 2802,
+ 3550, 3551, 86, 86, 2819, 86, 2816, 86, 2807, 2820,
+
+ 2808, 2809, 86, 86, 2811, 2822, 2810, 86, 86, 86,
+ 86, 2817, 2812, 2818, 2815, 2814, 2823, 2821, 86, 86,
+ 86, 2819, 86, 2816, 86, 2824, 2820, 86, 2825, 3815,
+ 2826, 2828, 2822, 2827, 2832, 2829, 2833, 2830, 2817, 86,
+ 2818, 2831, 86, 86, 2821, 2835, 86, 86, 86, 2836,
+ 2837, 86, 2824, 2839, 86, 2825, 86, 2826, 2828, 86,
+ 2827, 86, 2829, 2833, 2830, 2834, 2838, 86, 2831, 2840,
+ 2841, 2842, 2835, 2843, 3815, 2852, 86, 2844, 86, 2845,
+ 2839, 86, 86, 86, 86, 86, 2846, 86, 2848, 2854,
+ 2847, 2851, 2834, 2838, 2849, 86, 2840, 2841, 2842, 86,
+
+ 2843, 86, 86, 2850, 2844, 86, 2845, 86, 2853, 2855,
+ 86, 2856, 86, 2846, 86, 2848, 86, 2847, 2851, 2857,
+ 2858, 2849, 2860, 86, 2861, 86, 2859, 86, 86, 86,
+ 2850, 2862, 2864, 86, 2865, 2853, 2855, 86, 86, 2863,
+ 86, 2866, 2867, 2868, 86, 86, 2857, 2858, 3815, 2860,
+ 2869, 2861, 2870, 2859, 86, 2878, 86, 86, 2862, 2864,
+ 2871, 2865, 2872, 2873, 2874, 2876, 2863, 86, 86, 86,
+ 2875, 86, 86, 2877, 2882, 86, 2885, 2869, 86, 2870,
+ 86, 2880, 86, 2881, 2879, 86, 2884, 2871, 86, 2872,
+ 2873, 2874, 2876, 2883, 86, 86, 2887, 2875, 86, 86,
+
+ 2877, 2886, 86, 86, 86, 2891, 86, 2888, 2880, 2892,
+ 2881, 2879, 2893, 2884, 86, 86, 2889, 2890, 2894, 2896,
+ 2883, 86, 2895, 2887, 86, 86, 2898, 2897, 2886, 2900,
+ 2899, 86, 2891, 3815, 2888, 86, 2892, 86, 2901, 86,
+ 86, 86, 86, 2889, 2890, 2894, 2896, 2902, 86, 2895,
+ 2903, 86, 2904, 2898, 2897, 86, 2900, 2899, 2906, 86,
+ 2905, 2907, 86, 2908, 2909, 2901, 2910, 86, 2911, 2912,
+ 3815, 3815, 86, 2913, 2902, 86, 3815, 2903, 2916, 2904,
+ 86, 2915, 2919, 2914, 86, 2906, 2917, 2905, 86, 2918,
+ 2908, 86, 86, 86, 2920, 86, 2912, 86, 86, 2921,
+
+ 2913, 86, 2925, 86, 86, 2916, 2927, 2928, 2915, 2919,
+ 2914, 2922, 86, 2917, 86, 86, 2918, 2923, 86, 2924,
+ 2926, 2920, 2930, 86, 2929, 2932, 2921, 2931, 86, 86,
+ 86, 2935, 2934, 86, 86, 2933, 2936, 2938, 2922, 86,
+ 86, 2937, 86, 86, 2923, 86, 2924, 2926, 86, 86,
+ 86, 2929, 2932, 86, 2931, 2939, 2940, 2943, 2935, 2934,
+ 2941, 86, 2933, 2936, 86, 2942, 2944, 2945, 2937, 86,
+ 2946, 86, 86, 86, 2947, 86, 2948, 3815, 2949, 3815,
+ 86, 2955, 2939, 86, 2943, 3815, 2951, 2941, 2950, 2961,
+ 2952, 171, 2942, 2944, 2945, 2957, 2959, 2946, 86, 86,
+
+ 2953, 2947, 86, 2948, 86, 2949, 86, 2954, 86, 86,
+ 2956, 2958, 86, 2951, 86, 2950, 86, 2952, 86, 86,
+ 2960, 2962, 2957, 2959, 86, 2963, 2966, 2953, 2964, 3815,
+ 2965, 2968, 2969, 2967, 2954, 86, 2970, 2956, 2958, 86,
+ 2972, 2971, 86, 86, 86, 86, 2974, 2960, 86, 86,
+ 86, 86, 2963, 2966, 86, 2964, 86, 2965, 2968, 2969,
+ 2967, 2976, 2973, 2970, 86, 2975, 2978, 2972, 2971, 86,
+ 2977, 2979, 86, 2974, 2980, 86, 2981, 86, 2982, 2984,
+ 86, 2983, 3815, 2986, 86, 2988, 86, 2989, 2976, 2973,
+ 3815, 2985, 2975, 2978, 86, 2987, 86, 2977, 2979, 86,
+
+ 86, 2980, 2990, 2981, 2992, 86, 2984, 2991, 2983, 86,
+ 86, 86, 86, 86, 2989, 2993, 86, 2994, 2985, 2995,
+ 2998, 2996, 2987, 3007, 86, 2997, 86, 86, 86, 2990,
+ 2999, 2992, 86, 86, 2991, 3000, 3001, 3004, 3002, 3005,
+ 3003, 3006, 2993, 86, 2994, 86, 2995, 2998, 2996, 86,
+ 86, 3008, 2997, 3013, 3014, 86, 3815, 2999, 86, 3010,
+ 86, 3009, 86, 86, 3004, 3002, 86, 3003, 86, 3011,
+ 86, 86, 3012, 3022, 3018, 86, 3015, 86, 3008, 3019,
+ 3013, 86, 3016, 86, 3017, 86, 3010, 3020, 3009, 86,
+ 86, 86, 3023, 3021, 86, 86, 3011, 3024, 86, 3012,
+
+ 3022, 3018, 3025, 3015, 3026, 3027, 3019, 3815, 3028, 3016,
+ 3029, 3017, 86, 3815, 3020, 86, 86, 3031, 3033, 86,
+ 3021, 3030, 86, 86, 3024, 86, 3032, 3034, 86, 86,
+ 3035, 3026, 3027, 86, 86, 3028, 3036, 3029, 86, 86,
+ 86, 3037, 3038, 86, 3031, 3033, 3039, 3040, 3030, 3041,
+ 86, 3042, 3044, 3032, 3034, 3043, 3815, 3035, 86, 86,
+ 3045, 3815, 3049, 3036, 86, 3046, 86, 3048, 3037, 3038,
+ 3050, 86, 3047, 86, 3040, 3053, 3041, 86, 86, 3044,
+ 3058, 3051, 3043, 86, 86, 86, 3052, 3045, 86, 3049,
+ 3056, 3059, 3046, 3054, 3048, 86, 3055, 86, 86, 3047,
+
+ 86, 3060, 86, 3057, 86, 3062, 86, 86, 3051, 86,
+ 86, 3061, 3063, 3052, 3064, 3065, 3815, 3056, 3059, 86,
+ 3054, 3066, 86, 3055, 3068, 3069, 3067, 3071, 3060, 3070,
+ 3057, 86, 3062, 3073, 86, 86, 86, 3076, 3061, 86,
+ 86, 3064, 86, 86, 86, 3074, 3083, 3077, 3066, 3072,
+ 3080, 3068, 3069, 3067, 86, 86, 3070, 3075, 3108, 86,
+ 3073, 86, 86, 86, 86, 3078, 3079, 3081, 86, 3082,
+ 3085, 3084, 3074, 86, 3077, 3086, 3072, 3080, 86, 86,
+ 86, 3087, 86, 3088, 3075, 86, 3089, 86, 3091, 3090,
+ 86, 3815, 3078, 3079, 3081, 3094, 3082, 3085, 3084, 86,
+
+ 3093, 3092, 86, 86, 3096, 86, 3099, 86, 3087, 86,
+ 3088, 86, 3095, 3089, 86, 3091, 3090, 3098, 86, 3097,
+ 3100, 3101, 3094, 3103, 86, 3104, 86, 3093, 3092, 86,
+ 3102, 3096, 3105, 86, 3109, 3815, 3110, 3113, 86, 3095,
+ 3106, 86, 3107, 86, 3098, 86, 3097, 86, 3101, 86,
+ 171, 86, 3104, 3111, 86, 3112, 86, 3102, 3114, 3105,
+ 3115, 3109, 86, 3110, 86, 86, 3116, 3106, 3117, 3107,
+ 3118, 3815, 3120, 3122, 86, 3119, 3121, 86, 3123, 3125,
+ 3111, 3124, 3112, 3130, 3127, 86, 86, 3115, 3131, 3126,
+ 3128, 3129, 86, 86, 86, 3117, 86, 86, 86, 3120,
+
+ 3122, 86, 86, 3121, 86, 3132, 3125, 86, 3124, 86,
+ 86, 3127, 3134, 3133, 3135, 86, 3126, 3128, 3129, 3815,
+ 86, 3136, 3137, 3138, 3815, 3139, 3815, 86, 86, 3140,
+ 3143, 3141, 3132, 3142, 86, 3146, 3144, 3145, 86, 86,
+ 3133, 3135, 86, 86, 86, 3148, 86, 86, 3136, 3137,
+ 3138, 86, 3139, 86, 86, 86, 3140, 3143, 3141, 3147,
+ 3142, 86, 3146, 3144, 3145, 3149, 3150, 3151, 86, 3152,
+ 3153, 3156, 3148, 3154, 3155, 86, 3157, 86, 86, 86,
+ 86, 86, 3158, 3159, 3815, 3162, 3147, 86, 3160, 3161,
+ 86, 86, 3149, 3150, 3166, 3164, 3152, 3153, 3156, 86,
+
+ 3154, 3155, 86, 86, 3173, 3163, 86, 86, 3165, 3158,
+ 3159, 86, 3162, 86, 3170, 3160, 3161, 86, 3167, 3168,
+ 86, 86, 3164, 3169, 3171, 3172, 86, 86, 3174, 3176,
+ 86, 86, 3163, 3177, 3175, 3165, 86, 86, 86, 3178,
+ 3179, 3170, 86, 3815, 3182, 3167, 3168, 3180, 3181, 86,
+ 3169, 86, 3172, 3184, 3183, 3185, 3176, 3186, 3815, 86,
+ 86, 3175, 86, 3187, 3188, 86, 86, 3179, 86, 3189,
+ 86, 3182, 86, 3191, 3180, 3181, 3190, 86, 3192, 86,
+ 86, 3183, 3185, 3193, 3186, 86, 3195, 86, 86, 3194,
+ 3187, 3188, 3196, 86, 3197, 3198, 86, 3200, 3199, 86,
+
+ 3191, 3201, 3202, 3190, 3203, 3192, 3205, 3208, 3204, 86,
+ 86, 3206, 3207, 86, 86, 86, 3194, 3211, 86, 86,
+ 86, 86, 3198, 86, 3200, 3199, 86, 86, 86, 3202,
+ 3209, 3203, 3212, 3210, 3208, 3204, 3213, 86, 86, 3207,
+ 86, 3214, 3215, 86, 3211, 3218, 3219, 3216, 3217, 3220,
+ 3221, 3815, 3222, 3223, 3225, 86, 86, 3209, 3224, 86,
+ 3210, 86, 86, 86, 3230, 3229, 86, 3231, 86, 3215,
+ 86, 3228, 86, 3219, 3216, 3217, 3220, 86, 86, 3222,
+ 86, 86, 3226, 3227, 86, 3224, 3232, 3240, 3234, 3233,
+ 86, 86, 86, 3235, 3231, 3236, 86, 86, 3228, 86,
+
+ 3237, 3238, 3239, 3241, 3243, 86, 3245, 86, 86, 3226,
+ 3227, 86, 3242, 3246, 3244, 3247, 3233, 86, 86, 86,
+ 86, 3248, 3236, 86, 3249, 86, 3815, 3237, 3238, 3239,
+ 3241, 86, 3252, 3245, 3256, 86, 86, 86, 3253, 3242,
+ 3246, 3244, 3247, 3250, 3251, 86, 3330, 86, 3248, 3254,
+ 86, 3249, 3263, 86, 86, 3255, 86, 3264, 3261, 3252,
+ 3257, 86, 3260, 3815, 3258, 3253, 86, 3262, 86, 3265,
+ 3250, 3251, 3259, 86, 3266, 86, 3254, 3268, 86, 3269,
+ 3815, 3270, 3255, 3271, 86, 3261, 86, 3257, 86, 3260,
+ 3267, 3258, 3272, 3275, 3262, 3273, 3276, 3815, 86, 3259,
+
+ 3274, 86, 3815, 86, 86, 86, 3269, 86, 3270, 86,
+ 3271, 86, 3277, 86, 3278, 86, 3279, 3267, 86, 3272,
+ 3275, 86, 3273, 3276, 3280, 3281, 3282, 3274, 3284, 86,
+ 3285, 3283, 86, 86, 3287, 86, 3288, 86, 3286, 3277,
+ 3289, 3278, 3290, 3279, 3291, 86, 86, 3292, 86, 86,
+ 3293, 3280, 3281, 3282, 86, 3284, 3295, 3285, 3283, 3296,
+ 3297, 86, 3298, 86, 86, 3286, 3294, 3289, 86, 3290,
+ 3299, 86, 86, 3300, 3292, 86, 3301, 3293, 3302, 86,
+ 3303, 3304, 3306, 86, 86, 3307, 3296, 86, 3308, 3298,
+ 3311, 86, 3305, 3294, 86, 3309, 3310, 86, 86, 86,
+
+ 3300, 86, 3312, 3301, 86, 86, 86, 3303, 3304, 86,
+ 3316, 86, 86, 86, 86, 3308, 3314, 3311, 3313, 3305,
+ 3317, 3315, 3309, 3310, 86, 86, 3318, 3319, 3320, 3312,
+ 3321, 3322, 3323, 3324, 3325, 3327, 86, 3316, 86, 86,
+ 3328, 3331, 3326, 3336, 86, 3313, 86, 3317, 86, 86,
+ 86, 86, 3329, 3318, 3319, 3320, 86, 86, 3322, 86,
+ 3324, 3325, 86, 3332, 3333, 86, 3334, 86, 3331, 3326,
+ 86, 3335, 3337, 3339, 3338, 86, 3815, 3348, 86, 3329,
+ 86, 3340, 3815, 3341, 86, 3343, 86, 86, 3342, 3345,
+ 3332, 3333, 3349, 3334, 3350, 86, 3815, 3344, 3335, 3337,
+
+ 3339, 3338, 86, 86, 86, 3351, 86, 86, 3340, 86,
+ 3341, 86, 3343, 3815, 3346, 3342, 3345, 3347, 3352, 86,
+ 3353, 86, 3355, 86, 3344, 86, 3354, 3815, 86, 3356,
+ 3357, 3358, 3351, 3359, 3360, 3364, 3365, 3361, 86, 3366,
+ 86, 3346, 86, 86, 3347, 3352, 3362, 3353, 86, 86,
+ 3363, 86, 86, 3354, 86, 3367, 3356, 3357, 86, 86,
+ 3359, 3360, 3368, 3365, 3361, 3369, 86, 86, 86, 3370,
+ 3375, 3371, 3815, 3362, 3372, 3380, 3373, 3363, 86, 86,
+ 3376, 3379, 3367, 3374, 86, 3377, 86, 86, 86, 3368,
+ 86, 3378, 3369, 86, 86, 86, 3370, 86, 3371, 86,
+
+ 3381, 3372, 3380, 3373, 86, 86, 3382, 3376, 3379, 3383,
+ 3374, 86, 3377, 3384, 86, 3385, 3386, 3389, 3378, 3387,
+ 3388, 3391, 86, 86, 3390, 86, 86, 3381, 86, 3392,
+ 3398, 3393, 3394, 3382, 3397, 86, 3383, 3395, 86, 86,
+ 3384, 3396, 3385, 3386, 3389, 86, 3387, 3388, 86, 3399,
+ 3401, 3390, 3402, 3400, 86, 86, 86, 86, 3393, 86,
+ 3403, 3397, 3404, 86, 86, 3407, 3406, 3405, 3396, 3411,
+ 3410, 86, 3409, 86, 3408, 3815, 86, 86, 86, 3402,
+ 3400, 86, 3412, 3413, 86, 3414, 3418, 3403, 86, 3404,
+ 86, 86, 86, 3406, 3405, 3415, 3411, 3416, 3417, 3409,
+
+ 3419, 3408, 86, 3421, 3422, 86, 3425, 86, 86, 86,
+ 3413, 86, 3414, 86, 3420, 3423, 3424, 86, 3426, 3429,
+ 86, 86, 3415, 3428, 3416, 3417, 86, 3427, 3431, 3432,
+ 86, 3422, 86, 86, 3434, 86, 3438, 3436, 3430, 86,
+ 3435, 3420, 3423, 3424, 86, 86, 86, 86, 86, 3439,
+ 3428, 3433, 86, 3437, 3427, 3431, 3432, 3440, 86, 3441,
+ 86, 86, 3442, 86, 3436, 3430, 86, 3435, 3444, 3445,
+ 3443, 3446, 3447, 3448, 3815, 86, 3439, 3451, 3433, 3453,
+ 3437, 86, 3449, 86, 3440, 86, 3441, 86, 86, 3442,
+ 3450, 86, 3452, 3454, 3457, 3444, 86, 3443, 86, 3447,
+
+ 3458, 86, 3462, 3466, 86, 86, 3453, 3459, 3465, 3449,
+ 3455, 3456, 86, 3467, 86, 86, 86, 3450, 3461, 3452,
+ 86, 86, 3460, 3463, 86, 86, 86, 3458, 3464, 86,
+ 86, 86, 86, 3468, 3459, 3465, 3469, 3455, 3456, 86,
+ 86, 3470, 3471, 3472, 3473, 3461, 3474, 3475, 3476, 3460,
+ 3463, 3481, 3477, 3479, 86, 3464, 3478, 86, 86, 3480,
+ 86, 3482, 3483, 3469, 86, 86, 86, 3484, 3470, 3471,
+ 86, 86, 86, 86, 3475, 86, 3485, 3486, 86, 3477,
+ 3490, 86, 86, 3478, 86, 86, 3480, 3487, 3482, 86,
+ 3488, 3489, 86, 3491, 86, 3494, 86, 3493, 86, 3492,
+
+ 86, 3496, 3495, 3485, 3486, 86, 86, 3490, 86, 86,
+ 3497, 3498, 3499, 3501, 3487, 3506, 3500, 3488, 3489, 86,
+ 86, 86, 3494, 3502, 3493, 86, 3492, 3504, 3496, 3495,
+ 86, 3505, 3503, 3507, 3508, 86, 3815, 86, 86, 3499,
+ 86, 3509, 3506, 3500, 3510, 86, 3511, 3512, 3513, 86,
+ 3502, 3815, 3514, 86, 3504, 3515, 3815, 86, 3505, 3503,
+ 86, 86, 86, 86, 3516, 3518, 3517, 86, 3509, 3519,
+ 3521, 3510, 86, 3520, 3512, 3513, 86, 86, 86, 86,
+ 3522, 3524, 3515, 3523, 3531, 86, 3535, 86, 86, 86,
+ 86, 3516, 3518, 3517, 3527, 86, 3519, 3521, 3525, 3526,
+
+ 3520, 86, 86, 86, 3528, 86, 86, 3522, 3524, 3815,
+ 3523, 3531, 3529, 3530, 3532, 86, 3533, 3534, 86, 3539,
+ 3536, 3527, 86, 3537, 86, 3525, 3526, 3538, 3540, 3541,
+ 86, 3528, 3544, 86, 3542, 3547, 86, 3543, 86, 3529,
+ 3530, 3532, 86, 3533, 3534, 3545, 3539, 3536, 3549, 86,
+ 3537, 86, 3546, 3548, 3538, 86, 86, 86, 3554, 86,
+ 86, 3542, 86, 3557, 3543, 86, 3558, 86, 3552, 3553,
+ 3555, 3556, 3545, 3559, 3560, 86, 3562, 3563, 3561, 3546,
+ 3548, 3564, 3568, 3815, 3815, 86, 86, 86, 86, 86,
+ 3557, 86, 3567, 3558, 3571, 3565, 86, 86, 3572, 86,
+
+ 3559, 86, 86, 3562, 86, 3561, 3566, 86, 3564, 86,
+ 3570, 3569, 3573, 86, 86, 3575, 3574, 86, 86, 3567,
+ 86, 3571, 3565, 3576, 3577, 3572, 3578, 86, 3580, 3579,
+ 3581, 3582, 86, 3566, 86, 86, 3583, 3570, 3569, 3573,
+ 3584, 3585, 3575, 3574, 3586, 3589, 86, 86, 86, 3591,
+ 3576, 3577, 3593, 86, 86, 3580, 3579, 86, 86, 86,
+ 3587, 86, 86, 3583, 3590, 3588, 86, 3584, 3585, 3592,
+ 3595, 3586, 3594, 3596, 86, 86, 3591, 86, 86, 3593,
+ 3597, 3598, 3599, 3600, 3602, 3815, 3601, 3603, 3604, 3605,
+ 3608, 3590, 86, 3609, 86, 3607, 3592, 3595, 86, 3594,
+
+ 86, 86, 86, 3606, 86, 3610, 86, 3611, 3598, 86,
+ 86, 3602, 86, 3601, 86, 3604, 86, 86, 3612, 3613,
+ 86, 86, 3607, 3614, 3615, 3616, 86, 3618, 3619, 3617,
+ 3606, 3620, 86, 3621, 86, 3622, 3624, 3626, 3815, 3815,
+ 3631, 3623, 86, 3630, 3815, 86, 86, 86, 86, 86,
+ 86, 86, 3616, 86, 86, 86, 3617, 3625, 3620, 3627,
+ 3621, 3628, 3622, 86, 86, 86, 3629, 86, 3623, 86,
+ 3630, 86, 3633, 3632, 3634, 86, 3636, 86, 3635, 3815,
+ 3637, 86, 3638, 86, 3625, 86, 3627, 3639, 3628, 3640,
+ 3642, 86, 3815, 3629, 3815, 3641, 3643, 3815, 3647, 86,
+
+ 3632, 3634, 86, 3636, 86, 3635, 86, 3637, 86, 3638,
+ 3644, 86, 86, 3645, 3639, 3646, 86, 3642, 3648, 86,
+ 3649, 86, 3641, 3643, 86, 3647, 3650, 3651, 86, 3653,
+ 3815, 3652, 86, 3654, 3655, 3656, 86, 3644, 86, 3657,
+ 3645, 86, 3646, 3658, 3659, 3648, 3660, 3649, 86, 3661,
+ 86, 86, 86, 3650, 3651, 3662, 3653, 86, 3652, 3665,
+ 3654, 3655, 86, 86, 3664, 3663, 86, 86, 3666, 3815,
+ 86, 86, 86, 3660, 3667, 3668, 3661, 86, 86, 3670,
+ 3671, 3669, 3662, 3675, 86, 86, 3665, 3674, 3815, 3672,
+ 3673, 3664, 3663, 86, 86, 3666, 86, 86, 86, 86,
+
+ 86, 3667, 3668, 3676, 3677, 86, 3670, 3671, 3669, 3678,
+ 3675, 3679, 3680, 3681, 3674, 86, 3672, 3673, 86, 3682,
+ 3684, 3683, 86, 3686, 86, 3685, 3689, 3688, 86, 86,
+ 3676, 3677, 86, 86, 86, 3691, 3678, 3692, 3679, 3680,
+ 3681, 86, 3687, 3690, 3693, 86, 3682, 86, 3683, 3694,
+ 3686, 3695, 3685, 86, 3688, 86, 3697, 3698, 3696, 86,
+ 3699, 86, 86, 86, 3692, 86, 3700, 3702, 86, 3687,
+ 3690, 86, 3815, 3705, 3701, 3703, 86, 3704, 3695, 86,
+ 86, 3706, 86, 3697, 3698, 3696, 86, 3699, 86, 3707,
+ 3708, 3709, 86, 3700, 3710, 86, 86, 3711, 3712, 86,
+
+ 3705, 3701, 3703, 3713, 3704, 3714, 3716, 3715, 86, 3717,
+ 86, 86, 3718, 3721, 3722, 86, 3707, 86, 86, 86,
+ 3720, 86, 3719, 3724, 86, 3712, 3726, 3723, 86, 3727,
+ 3713, 3728, 86, 3716, 3715, 3725, 86, 86, 86, 3718,
+ 86, 86, 3731, 86, 3732, 86, 86, 3720, 86, 3719,
+ 3724, 3729, 3730, 3726, 3723, 86, 86, 86, 86, 86,
+ 3734, 3733, 3725, 3736, 3735, 3738, 3737, 86, 86, 3731,
+ 3815, 3732, 86, 86, 3739, 3740, 3741, 86, 3729, 3730,
+ 86, 3744, 86, 3745, 3746, 3743, 3747, 3734, 3733, 86,
+ 3736, 3735, 3738, 3737, 86, 3748, 86, 86, 3742, 3815,
+
+ 3753, 3739, 3740, 86, 3749, 86, 86, 3750, 3744, 3752,
+ 86, 3746, 3743, 3751, 3754, 3755, 3756, 86, 86, 3815,
+ 3758, 86, 3748, 3757, 3759, 3742, 86, 3762, 86, 86,
+ 3760, 3749, 86, 3766, 3750, 86, 3752, 86, 86, 3765,
+ 3751, 86, 3755, 86, 86, 3761, 86, 3758, 3763, 3764,
+ 3757, 3759, 3767, 86, 3770, 3768, 86, 3760, 3769, 86,
+ 86, 3771, 86, 86, 3772, 86, 3765, 3773, 3774, 86,
+ 86, 3777, 3761, 3775, 3815, 3763, 3764, 3815, 86, 3767,
+ 86, 3770, 3768, 3776, 86, 3769, 3779, 86, 3771, 3780,
+ 86, 3772, 3781, 86, 3773, 3774, 3778, 86, 3777, 3783,
+
+ 3775, 3782, 3784, 3785, 86, 3787, 3786, 86, 3815, 3793,
+ 3776, 3815, 86, 3779, 86, 86, 3780, 3788, 3789, 3781,
+ 3791, 86, 3815, 3778, 3795, 86, 3783, 3790, 3782, 86,
+ 3785, 86, 86, 3786, 3796, 86, 86, 86, 86, 3799,
+ 3792, 3794, 86, 3800, 3788, 3789, 86, 3791, 86, 86,
+ 3797, 3795, 3798, 3804, 3790, 3801, 86, 3803, 86, 3806,
+ 86, 3796, 3815, 86, 3802, 86, 3799, 3792, 3794, 3805,
+ 86, 3807, 86, 3808, 3813, 3809, 3815, 3797, 3814, 3798,
+ 86, 3810, 3801, 86, 3803, 3815, 86, 3811, 3815, 86,
+ 3815, 3802, 3815, 86, 3815, 86, 3805, 86, 86, 3812,
+
+ 3808, 86, 3809, 86, 3815, 86, 3815, 86, 3810, 3815,
+ 3815, 3815, 3815, 3815, 3811, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3812, 47, 47, 47,
+ 47, 47, 47, 47, 52, 52, 52, 52, 52, 52,
+ 52, 57, 57, 57, 57, 57, 57, 57, 63, 63,
+ 63, 63, 63, 63, 63, 68, 68, 68, 68, 68,
+ 68, 68, 74, 74, 74, 74, 74, 74, 74, 80,
+ 80, 80, 80, 80, 80, 80, 89, 89, 3815, 89,
+ 89, 89, 89, 161, 161, 3815, 3815, 3815, 161, 161,
+ 163, 163, 3815, 3815, 163, 3815, 163, 165, 3815, 3815,
+
+ 3815, 3815, 3815, 165, 168, 168, 3815, 3815, 3815, 168,
+ 168, 170, 3815, 3815, 3815, 3815, 3815, 170, 172, 172,
+ 3815, 172, 172, 172, 172, 175, 3815, 3815, 3815, 3815,
+ 3815, 175, 178, 178, 3815, 3815, 3815, 178, 178, 90,
+ 90, 3815, 90, 90, 90, 90, 17, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815
} ;
-static const flex_int16_t yy_chk[10890] =
+static const flex_int16_t yy_chk[10914] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -2893,16 +2900,16 @@ static const flex_int16_t yy_chk[10890] =
7, 7, 7, 33, 7, 8, 8, 8, 8, 32,
8, 9, 9, 9, 10, 10, 10, 19, 51, 51,
- 3814, 19, 233, 3, 32, 33, 4, 67, 67, 5,
- 33, 6, 3094, 13, 13, 13, 13, 7, 13, 14,
+ 3823, 19, 233, 3, 32, 33, 4, 67, 67, 5,
+ 33, 6, 3103, 13, 13, 13, 13, 7, 13, 14,
14, 14, 14, 8, 14, 15, 15, 15, 9, 25,
233, 10, 11, 11, 11, 11, 11, 11, 12, 12,
12, 12, 12, 12, 16, 16, 16, 34, 28, 84,
- 84, 13, 11, 45, 1195, 25, 25, 14, 12, 34,
- 39, 23, 15, 23, 23, 45, 23, 178, 28, 602,
+ 84, 13, 11, 45, 1199, 25, 25, 14, 12, 34,
+ 39, 23, 15, 23, 23, 45, 23, 178, 28, 603,
11, 28, 23, 39, 34, 28, 12, 302, 87, 11,
45, 16, 87, 162, 162, 12, 30, 39, 29, 177,
- 56, 175, 37, 56, 30, 28, 26, 602, 37, 23,
+ 56, 175, 37, 56, 30, 28, 26, 603, 37, 23,
24, 24, 29, 26, 24, 30, 302, 26, 100, 24,
26, 24, 30, 30, 29, 29, 92, 100, 24, 37,
@@ -2934,19 +2941,19 @@ static const flex_int16_t yy_chk[10890] =
102, 117, 103, 112, 104, 41, 107, 228, 103, 109,
41, 110, 112, 41, 103, 117, 103, 114, 109, 107,
41, 116, 104, 104, 41, 41, 111, 111, 113, 125,
- 112, 109, 115, 119, 111, 1020, 109, 113, 63, 115,
+ 112, 109, 115, 119, 111, 1023, 109, 113, 63, 115,
114, 58, 111, 116, 114, 109, 118, 121, 116, 118,
120, 124, 125, 111, 111, 113, 125, 119, 120, 115,
- 57, 111, 118, 118, 124, 119, 1020, 121, 122, 121,
+ 57, 111, 118, 118, 124, 119, 1023, 121, 122, 121,
118, 128, 122, 118, 121, 123, 118, 120, 124, 127,
123, 132, 129, 123, 119, 52, 127, 130, 122, 118,
118, 128, 122, 127, 121, 122, 131, 134, 128, 122,
129, 130, 123, 131, 132, 47, 127, 123, 132, 129,
- 133, 1183, 135, 127, 130, 122, 18, 141, 136, 133,
+ 133, 1187, 135, 127, 130, 122, 18, 141, 136, 133,
134, 135, 136, 131, 134, 137, 139, 140, 136, 141,
142, 142, 137, 139, 145, 143, 140, 133, 146, 135,
- 136, 1183, 140, 143, 141, 136, 146, 153, 145, 136,
+ 136, 1187, 140, 143, 141, 136, 146, 153, 145, 136,
140, 147, 137, 139, 140, 136, 144, 142, 153, 148,
151, 145, 143, 140, 149, 17, 147, 144, 151, 140,
@@ -3012,1073 +3019,1077 @@ static const flex_int16_t yy_chk[10890] =
325, 330, 328, 328, 332, 333, 319, 327, 329, 331,
330, 329, 332, 331, 333, 323, 334, 335, 338, 337,
340, 336, 0, 0, 0, 339, 335, 343, 330, 346,
- 353, 332, 333, 342, 337, 340, 343, 344, 336, 0,
-
- 0, 347, 334, 334, 335, 336, 337, 340, 336, 339,
- 338, 342, 339, 346, 343, 347, 346, 353, 348, 344,
- 342, 349, 349, 352, 344, 336, 341, 350, 347, 341,
- 355, 356, 350, 348, 341, 341, 341, 341, 0, 371,
- 0, 0, 355, 356, 341, 348, 349, 352, 349, 349,
- 352, 0, 376, 341, 0, 0, 341, 355, 356, 350,
- 358, 341, 341, 341, 341, 345, 354, 345, 359, 354,
- 360, 371, 357, 357, 0, 362, 354, 363, 358, 345,
- 345, 345, 357, 345, 376, 0, 359, 358, 381, 345,
- 361, 369, 345, 354, 345, 359, 354, 360, 369, 357,
-
- 357, 362, 362, 363, 363, 366, 345, 345, 345, 364,
- 345, 364, 361, 365, 367, 368, 370, 361, 369, 372,
- 381, 372, 375, 368, 374, 365, 385, 366, 370, 367,
- 372, 374, 366, 377, 0, 384, 364, 372, 383, 386,
- 365, 367, 368, 370, 375, 372, 372, 378, 372, 375,
- 380, 374, 379, 378, 379, 377, 383, 372, 385, 408,
- 377, 384, 384, 380, 372, 383, 386, 0, 387, 378,
- 382, 390, 421, 392, 378, 391, 379, 380, 390, 379,
- 378, 379, 411, 382, 393, 392, 382, 0, 382, 411,
- 387, 408, 394, 391, 382, 387, 393, 382, 390, 391,
-
- 392, 0, 391, 0, 421, 394, 0, 396, 397, 411,
- 382, 393, 400, 382, 399, 382, 388, 401, 388, 394,
- 391, 397, 401, 396, 388, 402, 399, 463, 388, 404,
- 400, 396, 402, 388, 396, 397, 388, 404, 403, 400,
- 407, 399, 388, 388, 403, 388, 402, 0, 407, 401,
- 396, 388, 402, 406, 463, 388, 404, 0, 405, 402,
- 388, 410, 410, 388, 389, 403, 389, 407, 409, 0,
- 405, 406, 413, 488, 412, 418, 414, 409, 488, 389,
- 406, 413, 389, 797, 389, 405, 389, 412, 410, 415,
- 389, 389, 416, 389, 414, 409, 415, 418, 414, 416,
-
- 488, 412, 418, 414, 413, 417, 389, 419, 413, 389,
- 420, 389, 797, 389, 398, 398, 415, 417, 422, 416,
- 424, 414, 420, 423, 398, 398, 398, 398, 398, 419,
- 423, 398, 417, 425, 419, 424, 426, 420, 427, 398,
- 427, 398, 398, 0, 422, 422, 425, 424, 428, 429,
- 423, 398, 398, 398, 398, 398, 430, 430, 398, 428,
- 425, 433, 431, 432, 437, 427, 434, 435, 426, 431,
- 432, 429, 433, 436, 439, 428, 429, 434, 438, 438,
- 435, 0, 441, 0, 440, 430, 437, 442, 433, 431,
- 432, 437, 443, 434, 435, 442, 438, 439, 436, 440,
-
- 436, 439, 444, 438, 443, 438, 438, 440, 441, 441,
- 451, 440, 445, 444, 442, 446, 449, 450, 452, 443,
- 462, 445, 453, 438, 447, 447, 440, 454, 446, 444,
- 457, 458, 451, 456, 462, 450, 447, 451, 447, 445,
- 453, 452, 446, 447, 450, 452, 459, 462, 449, 453,
- 455, 447, 447, 457, 456, 458, 455, 457, 458, 454,
- 456, 0, 460, 447, 461, 447, 448, 465, 459, 460,
- 464, 467, 466, 459, 448, 448, 0, 455, 448, 448,
- 0, 465, 448, 469, 468, 0, 0, 0, 448, 460,
- 461, 461, 464, 448, 465, 469, 471, 464, 466, 466,
-
- 472, 448, 448, 467, 473, 448, 448, 468, 470, 448,
- 469, 468, 473, 474, 470, 480, 476, 475, 471, 477,
- 479, 478, 472, 471, 475, 476, 479, 472, 474, 481,
- 473, 473, 482, 0, 477, 470, 484, 480, 483, 473,
- 474, 487, 480, 476, 475, 478, 477, 479, 478, 485,
- 490, 481, 486, 483, 491, 482, 481, 0, 486, 482,
- 493, 0, 484, 484, 494, 483, 493, 487, 487, 495,
- 496, 485, 497, 498, 500, 495, 485, 499, 497, 486,
- 491, 491, 490, 494, 499, 505, 507, 493, 496, 500,
- 509, 494, 508, 503, 506, 498, 495, 496, 511, 497,
-
- 498, 500, 503, 502, 499, 502, 504, 506, 517, 510,
- 508, 511, 502, 504, 513, 0, 514, 505, 507, 508,
- 503, 506, 509, 512, 519, 511, 512, 515, 516, 514,
- 502, 510, 502, 504, 520, 0, 510, 518, 513, 515,
- 517, 513, 512, 514, 518, 521, 516, 522, 519, 527,
- 512, 519, 525, 512, 515, 516, 523, 520, 521, 524,
- 526, 523, 530, 529, 518, 524, 520, 532, 528, 522,
- 526, 527, 521, 530, 522, 525, 527, 0, 538, 525,
- 528, 532, 572, 523, 520, 529, 524, 526, 531, 530,
- 529, 535, 537, 536, 532, 528, 531, 0, 535, 536,
-
- 539, 538, 0, 540, 537, 538, 541, 0, 539, 542,
- 0, 555, 544, 555, 572, 531, 533, 541, 535, 537,
- 536, 533, 543, 533, 544, 540, 543, 539, 0, 533,
- 540, 533, 542, 541, 533, 533, 542, 545, 555, 544,
- 550, 533, 533, 533, 543, 551, 0, 547, 533, 543,
- 533, 550, 546, 543, 549, 546, 533, 545, 533, 545,
- 548, 533, 533, 546, 545, 547, 549, 550, 533, 551,
- 548, 552, 551, 553, 547, 552, 554, 0, 556, 546,
- 553, 549, 546, 557, 545, 560, 558, 559, 561, 562,
- 564, 0, 548, 577, 562, 557, 561, 548, 552, 559,
-
- 553, 558, 554, 554, 556, 556, 563, 566, 564, 567,
- 557, 560, 560, 558, 559, 561, 562, 564, 565, 566,
- 569, 570, 573, 571, 575, 577, 565, 574, 563, 576,
- 567, 578, 575, 563, 566, 582, 567, 573, 569, 574,
- 580, 581, 576, 578, 570, 565, 571, 569, 570, 573,
- 571, 575, 579, 584, 574, 581, 576, 585, 578, 586,
- 582, 579, 582, 580, 588, 591, 583, 580, 581, 583,
- 587, 589, 584, 590, 592, 597, 598, 594, 593, 579,
- 584, 598, 595, 603, 585, 587, 597, 592, 590, 591,
- 593, 586, 591, 583, 600, 601, 588, 587, 606, 594,
-
- 590, 592, 597, 589, 594, 593, 595, 596, 598, 595,
- 599, 604, 605, 607, 596, 603, 610, 596, 607, 608,
- 609, 600, 601, 614, 599, 596, 609, 611, 608, 615,
- 606, 610, 613, 612, 596, 616, 620, 599, 604, 605,
- 613, 596, 614, 610, 596, 607, 608, 609, 617, 619,
- 614, 611, 617, 615, 611, 612, 615, 616, 618, 613,
- 612, 622, 616, 621, 623, 624, 618, 625, 620, 626,
- 621, 627, 619, 623, 630, 617, 619, 0, 629, 633,
- 625, 634, 630, 627, 622, 618, 631, 624, 622, 0,
- 621, 623, 624, 628, 625, 626, 626, 631, 627, 628,
-
- 629, 630, 632, 634, 635, 629, 638, 0, 634, 632,
- 636, 633, 637, 631, 639, 636, 640, 635, 636, 636,
- 628, 637, 641, 639, 644, 642, 646, 640, 0, 632,
- 648, 635, 638, 638, 636, 643, 644, 636, 647, 637,
- 651, 639, 636, 640, 641, 636, 636, 642, 643, 641,
- 649, 644, 642, 650, 648, 653, 647, 648, 646, 652,
- 654, 658, 643, 655, 651, 647, 653, 651, 658, 654,
- 656, 657, 649, 649, 659, 650, 660, 649, 664, 668,
- 650, 652, 653, 655, 656, 662, 652, 654, 658, 663,
- 655, 664, 661, 657, 660, 663, 666, 656, 657, 649,
-
- 661, 659, 665, 660, 669, 664, 667, 662, 670, 671,
- 671, 668, 662, 665, 666, 672, 663, 673, 674, 661,
- 680, 667, 0, 666, 676, 669, 672, 675, 678, 665,
- 677, 669, 670, 667, 681, 670, 675, 676, 671, 679,
- 674, 673, 672, 677, 673, 674, 682, 679, 683, 685,
- 678, 676, 680, 686, 675, 678, 681, 677, 684, 688,
- 684, 681, 687, 689, 686, 691, 679, 687, 0, 0,
- 0, 685, 683, 688, 690, 683, 685, 689, 682, 692,
- 686, 690, 693, 694, 695, 684, 688, 692, 690, 690,
- 689, 695, 696, 697, 687, 700, 690, 691, 703, 699,
-
- 693, 690, 698, 703, 0, 694, 692, 704, 690, 693,
- 694, 695, 0, 697, 699, 690, 690, 701, 696, 696,
- 697, 702, 698, 699, 706, 708, 699, 700, 707, 698,
- 703, 702, 701, 704, 704, 705, 707, 705, 710, 709,
- 715, 699, 0, 702, 701, 709, 716, 710, 702, 706,
- 708, 706, 708, 713, 711, 707, 717, 714, 702, 712,
- 724, 713, 705, 711, 714, 710, 709, 718, 712, 716,
- 719, 0, 715, 716, 717, 726, 720, 0, 723, 718,
- 713, 711, 719, 717, 714, 720, 712, 721, 726, 722,
- 723, 727, 724, 725, 718, 721, 728, 719, 722, 731,
-
- 725, 729, 726, 720, 728, 723, 727, 729, 0, 730,
- 732, 0, 762, 722, 721, 734, 722, 730, 727, 732,
- 725, 733, 731, 728, 734, 722, 731, 736, 729, 735,
- 735, 737, 733, 738, 739, 736, 730, 732, 735, 737,
- 740, 741, 734, 743, 762, 748, 742, 739, 733, 744,
- 745, 743, 746, 748, 736, 738, 735, 735, 737, 742,
- 738, 739, 750, 745, 741, 744, 740, 740, 741, 747,
- 743, 749, 748, 742, 746, 751, 744, 745, 754, 746,
- 747, 752, 750, 753, 755, 749, 753, 757, 0, 750,
- 756, 758, 0, 763, 760, 0, 747, 751, 749, 756,
-
- 754, 752, 751, 759, 761, 754, 755, 757, 752, 758,
- 753, 755, 760, 764, 757, 763, 759, 756, 758, 761,
- 763, 760, 765, 766, 767, 779, 768, 772, 769, 771,
- 759, 761, 0, 770, 0, 771, 766, 764, 768, 773,
- 764, 775, 767, 774, 776, 765, 770, 773, 774, 765,
- 766, 767, 769, 768, 772, 769, 771, 779, 782, 778,
- 770, 780, 776, 775, 783, 773, 773, 778, 775, 780,
- 781, 776, 786, 785, 773, 774, 784, 781, 784, 783,
- 787, 782, 785, 789, 794, 782, 778, 791, 780, 788,
- 0, 783, 789, 790, 791, 790, 794, 781, 798, 787,
-
- 785, 0, 839, 784, 786, 801, 802, 787, 798, 788,
- 789, 794, 0, 804, 791, 805, 788, 806, 804, 0,
- 790, 792, 808, 801, 792, 798, 807, 802, 792, 839,
- 809, 792, 801, 802, 810, 806, 805, 807, 792, 792,
- 804, 792, 805, 811, 806, 808, 792, 815, 792, 808,
- 818, 792, 0, 807, 812, 792, 809, 809, 792, 811,
- 810, 810, 813, 812, 814, 792, 792, 817, 792, 854,
- 811, 814, 818, 820, 817, 813, 860, 818, 819, 815,
- 822, 812, 820, 822, 819, 0, 0, 0, 821, 813,
- 823, 814, 816, 816, 817, 816, 825, 0, 816, 824,
-
- 820, 854, 826, 816, 825, 819, 823, 822, 860, 816,
- 816, 821, 816, 823, 829, 821, 827, 823, 816, 816,
- 816, 824, 816, 825, 826, 816, 824, 831, 827, 826,
- 816, 832, 828, 823, 828, 830, 816, 816, 829, 816,
- 830, 829, 834, 827, 833, 0, 835, 831, 836, 0,
- 837, 840, 0, 841, 831, 0, 833, 832, 832, 828,
- 838, 843, 0, 864, 834, 0, 846, 830, 841, 834,
- 836, 833, 835, 835, 837, 836, 840, 837, 840, 844,
- 841, 842, 838, 845, 843, 846, 844, 838, 843, 842,
- 847, 845, 848, 846, 849, 864, 850, 852, 853, 856,
-
- 851, 0, 866, 853, 848, 0, 844, 849, 842, 851,
- 845, 855, 852, 857, 859, 865, 847, 847, 857, 848,
- 861, 849, 850, 850, 852, 853, 856, 851, 863, 861,
- 867, 862, 868, 855, 866, 863, 859, 865, 855, 862,
- 870, 859, 865, 869, 871, 857, 873, 861, 877, 0,
- 875, 872, 874, 868, 867, 863, 885, 867, 862, 868,
- 872, 874, 869, 876, 881, 873, 883, 870, 877, 879,
- 869, 871, 875, 873, 878, 877, 880, 875, 872, 874,
- 879, 882, 884, 878, 880, 883, 876, 887, 885, 886,
- 876, 881, 889, 883, 890, 887, 879, 891, 886, 882,
-
- 891, 878, 894, 880, 893, 892, 895, 0, 882, 884,
- 889, 0, 890, 896, 887, 897, 886, 892, 899, 889,
- 894, 890, 903, 898, 891, 898, 893, 900, 897, 894,
- 895, 893, 892, 895, 901, 896, 899, 0, 902, 901,
- 896, 900, 897, 904, 905, 899, 906, 911, 903, 903,
- 898, 902, 905, 907, 900, 904, 907, 0, 908, 912,
- 909, 914, 0, 913, 906, 902, 901, 908, 909, 913,
- 904, 905, 911, 906, 911, 915, 916, 0, 926, 921,
- 907, 915, 917, 914, 909, 908, 912, 909, 914, 917,
- 913, 919, 918, 920, 923, 909, 919, 921, 916, 918,
-
- 920, 922, 915, 916, 924, 922, 921, 925, 927, 917,
- 926, 929, 928, 924, 933, 925, 930, 923, 919, 918,
- 920, 923, 929, 931, 930, 932, 927, 928, 922, 934,
- 936, 924, 935, 933, 925, 927, 931, 937, 929, 928,
- 938, 933, 934, 930, 939, 937, 932, 938, 940, 941,
- 931, 942, 932, 944, 935, 940, 934, 936, 942, 935,
- 943, 944, 939, 945, 937, 943, 946, 938, 941, 947,
- 945, 939, 948, 946, 0, 940, 941, 950, 942, 949,
- 944, 951, 953, 954, 952, 0, 0, 943, 961, 955,
- 945, 952, 949, 946, 951, 956, 958, 0, 960, 959,
-
- 962, 947, 957, 956, 948, 959, 949, 963, 951, 950,
- 957, 952, 955, 965, 953, 954, 955, 957, 958, 964,
- 961, 966, 956, 958, 960, 960, 959, 965, 964, 957,
- 968, 963, 962, 970, 963, 967, 969, 957, 972, 973,
- 965, 971, 967, 972, 974, 969, 964, 975, 0, 0,
- 0, 973, 0, 966, 971, 970, 971, 968, 979, 976,
- 970, 1017, 967, 969, 976, 971, 973, 974, 971, 977,
- 972, 974, 978, 975, 975, 982, 977, 983, 982, 980,
- 979, 971, 984, 971, 978, 979, 976, 980, 988, 986,
- 983, 987, 0, 1017, 988, 984, 977, 992, 987, 978,
-
- 0, 990, 982, 986, 983, 0, 980, 991, 994, 984,
- 0, 995, 0, 995, 993, 988, 986, 997, 987, 989,
- 992, 989, 0, 990, 992, 989, 993, 989, 990, 997,
- 996, 996, 989, 991, 991, 994, 998, 989, 995, 999,
- 1001, 993, 1000, 989, 997, 1001, 989, 1002, 989, 998,
- 1005, 1010, 989, 996, 989, 1000, 1004, 996, 996, 989,
- 1003, 999, 1005, 998, 989, 1002, 999, 1007, 1004, 1000,
- 1006, 1008, 1001, 1003, 1002, 1009, 1012, 1005, 1010, 1004,
- 1006, 1013, 1007, 1004, 1011, 1015, 0, 1003, 1009, 1012,
- 1011, 1014, 1006, 1008, 1007, 1004, 1018, 1006, 1008, 1013,
-
- 1016, 1021, 1009, 1012, 1019, 1022, 1015, 1006, 1013, 1023,
- 1022, 1011, 1015, 1014, 1024, 0, 1027, 1023, 1014, 1026,
- 0, 0, 1016, 1024, 1028, 1029, 1031, 1016, 1018, 0,
- 1030, 1019, 1022, 1021, 1026, 1032, 1023, 1028, 1027, 1034,
- 1029, 1024, 1025, 1027, 0, 1033, 1026, 1025, 1031, 1025,
- 1034, 1028, 1029, 1031, 1032, 1025, 1030, 1030, 1033, 1038,
- 1025, 1025, 1032, 1036, 1035, 1037, 1034, 1025, 1025, 1025,
- 1038, 1036, 1033, 1037, 1025, 1039, 1025, 1035, 1040, 0,
- 0, 1041, 1025, 1050, 1042, 1046, 1038, 1025, 1025, 1044,
- 1036, 1035, 1037, 1042, 1025, 1043, 1041, 1047, 1044, 1051,
-
- 1040, 1045, 1048, 1053, 1054, 1040, 1043, 1039, 1041, 1048,
- 1045, 1042, 1046, 1052, 1055, 1050, 1044, 1056, 1054, 0,
- 1047, 1052, 1043, 1051, 1047, 1053, 1051, 1057, 1045, 1048,
- 1053, 1054, 1059, 1060, 1061, 1057, 1062, 1063, 0, 1056,
- 1052, 0, 1066, 1065, 1056, 1061, 1055, 0, 1064, 1066,
- 1059, 1060, 1072, 1067, 1057, 1063, 1064, 1069, 1070, 1059,
- 1060, 1061, 0, 1071, 1063, 1065, 1067, 1068, 1062, 1066,
- 1065, 1074, 1069, 1072, 1068, 1064, 1070, 1073, 1076, 1072,
- 1067, 1071, 1078, 0, 1069, 1070, 1079, 1073, 1081, 1076,
- 1071, 1083, 1082, 1079, 1068, 1078, 1080, 0, 1080, 1083,
-
- 1086, 1084, 1085, 1074, 1073, 1076, 1094, 1093, 1087, 1078,
- 1081, 1085, 1086, 1079, 1084, 1081, 1088, 1091, 1083, 1092,
- 1095, 1096, 1097, 1080, 1082, 1093, 0, 1086, 1084, 1085,
- 1087, 1099, 1094, 1094, 1093, 1087, 1098, 1102, 1088, 1091,
- 1097, 1092, 1102, 1088, 1091, 1099, 1092, 1105, 1098, 1097,
- 1101, 1106, 1095, 1096, 1104, 1107, 1110, 1104, 1099, 1105,
- 1108, 1101, 1109, 1098, 1114, 1115, 0, 1108, 1107, 1102,
- 1111, 1112, 1115, 1109, 1105, 1106, 1110, 1101, 1106, 1111,
- 1104, 1104, 1107, 1110, 1104, 1112, 1116, 1108, 1113, 1109,
- 1117, 0, 1115, 1119, 1118, 1122, 1114, 1111, 1112, 1121,
-
- 1113, 1123, 1117, 0, 0, 1124, 1119, 1123, 1125, 1128,
- 1136, 1127, 1126, 1132, 0, 1113, 1118, 1117, 1116, 1122,
- 1119, 1118, 1122, 1126, 1129, 1121, 1121, 1124, 1123, 1127,
- 1125, 1128, 1124, 1130, 1132, 1125, 1128, 1134, 1127, 1126,
- 1132, 1133, 1136, 1135, 1137, 1138, 1129, 1139, 1130, 1135,
- 0, 1129, 1133, 1140, 0, 1141, 1139, 1142, 1134, 1143,
- 1130, 1145, 1144, 1138, 1134, 1146, 1142, 1143, 1133, 1144,
- 1135, 1137, 1138, 1147, 1139, 1148, 1149, 1140, 1152, 1146,
- 1140, 1141, 1141, 1154, 1142, 1145, 1143, 1150, 1145, 1144,
- 1151, 1153, 1146, 1157, 1156, 1159, 1158, 1160, 1161, 0,
-
- 0, 0, 1157, 1158, 1162, 1147, 1164, 1148, 1149, 1150,
- 1152, 1163, 1151, 1153, 1150, 1154, 1156, 1151, 1153, 1160,
- 1157, 1156, 1162, 1158, 1160, 1161, 1165, 1159, 1164, 1163,
- 1167, 1162, 1166, 1164, 1168, 1165, 1169, 0, 1163, 1171,
- 1166, 1172, 1170, 1173, 1174, 1175, 1178, 1180, 1171, 0,
- 0, 1173, 1169, 1165, 1167, 1176, 1172, 1167, 1168, 1166,
- 1180, 1168, 1177, 1169, 1170, 1181, 1171, 1176, 1172, 1170,
- 1173, 1179, 1182, 1178, 1180, 1185, 1174, 1175, 1184, 1179,
- 1181, 1182, 1176, 1186, 1177, 1190, 1187, 1184, 1187, 1177,
- 1191, 1186, 1181, 1185, 1192, 1189, 1193, 1194, 1179, 1182,
-
- 1198, 1196, 1185, 1189, 1194, 1184, 1202, 1197, 1199, 1191,
- 1186, 1200, 1190, 1187, 1196, 1198, 1192, 1191, 1193, 1197,
- 1201, 1192, 1189, 1193, 1194, 1204, 1205, 1198, 1196, 1200,
- 1199, 0, 1201, 1202, 1197, 1199, 1203, 1206, 1200, 1207,
- 1208, 0, 0, 1203, 1209, 0, 1210, 1201, 1211, 1206,
- 1207, 1215, 1212, 1216, 1213, 1221, 0, 1204, 1205, 1215,
- 1214, 1211, 1208, 1203, 1206, 1212, 1207, 1208, 1210, 1209,
- 1217, 1209, 1214, 1210, 1218, 1211, 1213, 1216, 1215, 1212,
- 1216, 1213, 1221, 1219, 1223, 1222, 1218, 1214, 1225, 1227,
- 1217, 1219, 1226, 1224, 1233, 1228, 1227, 1217, 1222, 0,
-
- 1225, 1218, 1224, 1230, 1228, 1232, 1228, 1223, 1231, 1228,
- 1219, 1223, 1222, 1226, 0, 1225, 1227, 1228, 1234, 1226,
- 1224, 1233, 1228, 1236, 1235, 1244, 1230, 1232, 1239, 1243,
- 1230, 1228, 1232, 1228, 1231, 1231, 1228, 1235, 1234, 1241,
- 1237, 1242, 1245, 1238, 1243, 1234, 1239, 1236, 1237, 1242,
- 1236, 1235, 1238, 1250, 1248, 1239, 1243, 1244, 1246, 1247,
- 1251, 1241, 1248, 0, 1245, 1255, 1241, 1237, 1242, 1245,
- 1238, 1246, 1252, 1254, 0, 1247, 1253, 1257, 1256, 1258,
- 1250, 1248, 1251, 1253, 1260, 1246, 1247, 1251, 1255, 1257,
- 1259, 1258, 1255, 1260, 1252, 1254, 1256, 1261, 1259, 1252,
-
- 1254, 1262, 1264, 1253, 1257, 1256, 1258, 1263, 1260, 1261,
- 1264, 1260, 1265, 1268, 1266, 1267, 1269, 1259, 1265, 1270,
- 1260, 1262, 1263, 1266, 1261, 1268, 1271, 1273, 1262, 1264,
- 1272, 1280, 1269, 1271, 1263, 1274, 1267, 1272, 1275, 1265,
- 1268, 1266, 1267, 1269, 1276, 1273, 1275, 1274, 1277, 1279,
- 1278, 1270, 1278, 1271, 1273, 1285, 1277, 1272, 1283, 1276,
- 1281, 1279, 1274, 1280, 1286, 1275, 1284, 1281, 1285, 1288,
- 1289, 1276, 1287, 1290, 1299, 1277, 1279, 1278, 1284, 1287,
- 1288, 1291, 1285, 1286, 1295, 1293, 1291, 1281, 1290, 1294,
- 1283, 1286, 1289, 1284, 1292, 1303, 1288, 1289, 1293, 1287,
-
- 1290, 1297, 1292, 1294, 0, 1298, 1299, 0, 0, 1300,
- 1295, 1295, 1293, 1291, 0, 1297, 1294, 0, 0, 1301,
- 1302, 1292, 1296, 1298, 1306, 1307, 1296, 1303, 1297, 1296,
- 1296, 1307, 1298, 1304, 1296, 1300, 1300, 1305, 1302, 1308,
- 1296, 1301, 1312, 1313, 1296, 1311, 1301, 1302, 1296, 1296,
- 1306, 1306, 1307, 1296, 1311, 1304, 1296, 1296, 1314, 1305,
- 1304, 1296, 1310, 1315, 1305, 1308, 1308, 1296, 1309, 1310,
- 1309, 1296, 1311, 1316, 1312, 1313, 1317, 1319, 1318, 1320,
- 1316, 1315, 1314, 1322, 0, 1314, 1319, 1321, 0, 1310,
- 1315, 1318, 1309, 1325, 1323, 1309, 1324, 1309, 1317, 1328,
-
- 1316, 1329, 0, 1317, 1319, 1318, 0, 1325, 1321, 1331,
- 1327, 1320, 1328, 1360, 1321, 1322, 1323, 1330, 1330, 1324,
- 1325, 1323, 1333, 1324, 1326, 1331, 1328, 1329, 1329, 1326,
- 1336, 1326, 1327, 1326, 1335, 1326, 1331, 1327, 1334, 1336,
- 1360, 1335, 1326, 0, 0, 1333, 1330, 1338, 1337, 1333,
- 1334, 1326, 1338, 1339, 1340, 1342, 1326, 1336, 1326, 1341,
- 1326, 1335, 1326, 1343, 1341, 1334, 1337, 1344, 1348, 1349,
- 1345, 1339, 1340, 0, 1347, 1337, 1343, 1342, 1345, 1338,
- 1339, 1340, 1342, 1346, 1350, 1344, 1341, 1347, 1351, 1352,
- 1343, 1346, 1353, 1354, 1344, 1349, 1349, 1345, 1356, 1350,
-
- 1348, 1347, 1352, 1355, 1357, 1359, 1354, 1351, 1362, 1366,
- 1346, 1350, 1363, 1357, 1353, 1351, 1352, 1361, 1356, 1353,
- 1354, 1355, 1358, 1364, 1358, 1356, 1370, 1359, 1372, 1361,
- 1355, 1357, 1359, 1366, 1363, 1362, 1366, 1367, 1368, 1363,
- 1369, 0, 1373, 1378, 1361, 1371, 1368, 0, 1364, 1358,
- 1364, 1374, 1371, 1370, 1375, 1372, 1376, 1377, 1369, 1367,
- 1375, 1380, 1376, 1377, 1367, 1368, 1381, 1369, 1373, 1373,
- 1378, 1380, 1371, 1374, 1384, 1379, 1383, 1385, 1374, 1382,
- 1386, 1375, 1379, 1376, 1377, 1387, 1382, 1389, 1380, 0,
- 1381, 1390, 0, 1381, 1387, 1385, 1384, 1392, 1394, 1391,
-
- 0, 1384, 1379, 1390, 1385, 1386, 1382, 1386, 1383, 1393,
- 1395, 1389, 1387, 1391, 1389, 1397, 1396, 0, 1390, 1392,
- 1394, 1399, 1393, 1398, 1392, 1394, 1391, 1400, 1406, 1395,
- 1402, 1401, 1403, 1407, 1408, 1410, 1393, 1395, 1396, 1397,
- 1401, 1404, 1397, 1396, 1409, 1398, 1411, 1399, 1399, 1400,
- 1398, 1402, 1403, 1413, 1400, 1404, 1408, 1402, 1401, 1403,
- 1406, 1408, 1412, 1414, 1411, 1407, 1409, 1410, 1404, 1413,
- 1412, 1409, 1415, 1411, 1417, 1418, 1419, 1422, 1421, 1415,
- 1413, 1422, 1420, 1423, 1418, 1421, 1424, 1425, 1428, 1412,
- 1414, 1431, 0, 1419, 1420, 1426, 1417, 0, 1435, 1415,
-
- 1429, 1417, 1418, 1419, 1422, 1421, 1429, 1435, 1425, 1420,
- 1430, 1426, 1432, 1429, 1425, 1423, 1433, 1430, 1424, 1432,
- 1428, 1434, 1426, 1431, 1436, 1435, 1442, 1429, 1437, 1439,
- 1438, 1433, 1438, 1429, 1434, 1437, 1440, 1430, 1439, 1432,
- 1441, 1443, 1444, 1433, 1446, 1443, 1447, 1451, 1434, 1441,
- 1436, 1436, 1446, 1442, 1450, 1437, 1439, 1438, 1440, 1447,
- 1448, 1449, 1452, 1440, 1444, 1448, 1451, 1441, 1443, 1444,
- 1449, 1446, 1450, 1447, 1451, 1452, 1456, 1455, 1453, 1454,
- 1455, 1450, 1454, 1457, 1458, 1460, 1462, 0, 1449, 1452,
- 1453, 1454, 1448, 1461, 1456, 1463, 0, 1458, 0, 1455,
-
- 1463, 1467, 1462, 1456, 1455, 1453, 1454, 1455, 1457, 1454,
- 1457, 1458, 1466, 1462, 1464, 1468, 1461, 1460, 1465, 1465,
- 1461, 1466, 1464, 1467, 1469, 1470, 1471, 1463, 1467, 1473,
- 1475, 1476, 1472, 1471, 1470, 1477, 1473, 1468, 1478, 1466,
- 1476, 1464, 1468, 1475, 1477, 1465, 1469, 1479, 1482, 0,
- 0, 1469, 1470, 1471, 1472, 1481, 1473, 1475, 1476, 1472,
- 1480, 1483, 1477, 1481, 1478, 1478, 1484, 1485, 1486, 1480,
- 1479, 1487, 1488, 0, 1479, 1485, 1483, 1484, 1489, 1490,
- 1482, 1486, 1481, 1487, 1488, 1492, 1489, 1480, 1483, 1491,
- 1494, 1493, 1496, 1484, 1485, 1486, 1495, 1499, 1487, 1488,
-
- 1493, 1490, 1495, 1494, 1497, 1489, 1490, 1492, 1498, 1491,
- 1496, 1501, 1492, 1502, 1500, 1499, 1491, 1494, 1493, 1496,
- 1498, 1500, 1503, 1495, 1499, 1505, 1504, 0, 1506, 1507,
- 1497, 1497, 1508, 1511, 1509, 1498, 1510, 1501, 1501, 1504,
- 1509, 1500, 1512, 1508, 1513, 1502, 1514, 0, 1517, 0,
- 1507, 1505, 1505, 1504, 1503, 1506, 1507, 1518, 1510, 1508,
- 1515, 1509, 1520, 1510, 1519, 1511, 1523, 0, 1521, 0,
- 1525, 1520, 1514, 1514, 1512, 1517, 1513, 1522, 1523, 1515,
- 1518, 1515, 1519, 1521, 1518, 1524, 1515, 1515, 1527, 1520,
- 1522, 1519, 1526, 1523, 1528, 1521, 1525, 1525, 1529, 1526,
-
- 1534, 1530, 1537, 1533, 1522, 1524, 1515, 1527, 1515, 1530,
- 1533, 1529, 1524, 1531, 1538, 1527, 1528, 1532, 1531, 1526,
- 1537, 1528, 1532, 1535, 1536, 1529, 1534, 1534, 1530, 1537,
- 1533, 1535, 1536, 1540, 1539, 1541, 1538, 1542, 0, 1544,
- 1540, 1538, 1539, 1543, 1541, 1531, 1545, 1546, 1544, 1532,
- 1535, 1536, 1548, 1545, 1547, 1547, 1549, 1551, 1550, 1546,
- 1540, 1539, 1541, 1552, 1549, 1543, 1544, 1554, 1553, 1542,
- 1543, 1552, 1555, 1545, 1546, 1554, 1559, 1562, 1558, 1550,
- 1555, 1547, 1559, 1549, 1548, 1550, 1553, 1561, 1556, 1551,
- 1552, 1558, 1557, 1565, 1554, 1553, 1556, 1560, 1563, 1555,
-
- 1557, 1562, 1564, 1559, 1562, 1558, 1563, 1566, 1565, 1560,
- 1564, 1567, 0, 1561, 1561, 1556, 1570, 1568, 1569, 1557,
- 1565, 1571, 1572, 1573, 1560, 1563, 1576, 1577, 1584, 1564,
- 1570, 0, 0, 1571, 1566, 1576, 1578, 1573, 1567, 1568,
- 1572, 1569, 1574, 1570, 1568, 1569, 1574, 1582, 1571, 1572,
- 1573, 1577, 1579, 1576, 1577, 1580, 1583, 1581, 1578, 1574,
- 1584, 1586, 1580, 1578, 1579, 1585, 1587, 1574, 1581, 1574,
- 1589, 0, 1588, 1574, 1582, 1586, 0, 1585, 1583, 1579,
- 1590, 1592, 1580, 1583, 1581, 1595, 1574, 1593, 1586, 1591,
- 1592, 1596, 1585, 1589, 1588, 1594, 1591, 1589, 1587, 1588,
-
- 1598, 1600, 1594, 1590, 1601, 1593, 0, 1590, 1592, 1598,
- 1601, 1603, 1602, 1604, 1593, 1607, 1591, 1595, 1596, 1605,
- 1609, 1610, 1594, 1618, 1611, 1612, 1605, 1598, 0, 1613,
- 1615, 1601, 1620, 1600, 1602, 1611, 1612, 1603, 1603, 1602,
- 1613, 1618, 1607, 1616, 1609, 1604, 1605, 1609, 1610, 1616,
- 1618, 1611, 1612, 1617, 1615, 1619, 1613, 1615, 1620, 1620,
- 1617, 1621, 1619, 1622, 1623, 1624, 1625, 1626, 1627, 1622,
- 1616, 1628, 1623, 1621, 1629, 1631, 0, 1631, 1632, 1625,
- 1617, 1633, 1619, 1629, 1630, 1632, 1638, 1624, 1621, 1628,
- 1622, 1623, 1624, 1625, 1627, 1627, 1630, 1634, 1628, 1626,
-
- 1635, 1629, 1631, 1636, 1637, 1632, 1639, 1633, 1633, 1635,
- 1634, 1630, 1640, 1638, 1641, 1642, 1637, 0, 1643, 1640,
- 1642, 1644, 1647, 1645, 1634, 1636, 1643, 1635, 1646, 1639,
- 1636, 1637, 1649, 1639, 1650, 1652, 1646, 1644, 1651, 1640,
- 1641, 1641, 1642, 1653, 1647, 1643, 1645, 1654, 1644, 1647,
- 1645, 1655, 1651, 1657, 1653, 1646, 1654, 1652, 1650, 1649,
- 1660, 1650, 1652, 1659, 1655, 1651, 1657, 1656, 1656, 1658,
- 1653, 1658, 1662, 1665, 1654, 1656, 1661, 1663, 1655, 1662,
- 1657, 1659, 1668, 1664, 1663, 1667, 1660, 1660, 1666, 1668,
- 1659, 1664, 1669, 1671, 1656, 1656, 1658, 1673, 1661, 1662,
-
- 1665, 1670, 0, 1661, 1663, 1674, 1666, 1667, 1676, 1668,
- 1664, 1672, 1667, 1677, 1678, 1666, 1679, 1669, 1672, 1669,
- 0, 1676, 1678, 1670, 1679, 1671, 1680, 1674, 1670, 1673,
- 1682, 1683, 1674, 1684, 1683, 1676, 1685, 1686, 1672, 1687,
- 1677, 1678, 1688, 1679, 1689, 1695, 1690, 1680, 1687, 0,
- 1686, 0, 1682, 1680, 1688, 1692, 1691, 1682, 1683, 1684,
- 1684, 1699, 1685, 1685, 1686, 1691, 1687, 1693, 1689, 1688,
- 1692, 1689, 1690, 1690, 1693, 1694, 1696, 1695, 1694, 1699,
- 1697, 1703, 1692, 1691, 1700, 1701, 1702, 1701, 1699, 1704,
- 1694, 0, 1704, 1705, 1693, 1706, 1697, 1707, 1696, 1694,
-
- 1710, 1717, 1694, 1696, 1697, 1694, 1700, 1697, 1703, 1708,
- 1702, 1700, 1701, 1702, 1709, 1711, 1704, 1694, 1714, 1707,
- 1712, 1713, 1715, 1697, 1707, 1705, 1714, 1706, 1716, 1715,
- 1713, 1718, 1710, 1717, 1712, 1708, 1708, 1711, 1719, 1720,
- 1709, 1709, 1711, 1721, 1724, 1714, 1722, 1712, 1713, 1715,
- 1722, 0, 1716, 1726, 1723, 1716, 1725, 1727, 1730, 1729,
- 1728, 1720, 1726, 1718, 1727, 1730, 1720, 1729, 1737, 1731,
- 1719, 1724, 1728, 1722, 0, 1721, 1723, 1732, 1725, 1733,
- 1726, 1723, 1731, 1725, 1727, 1730, 1729, 1728, 1734, 1735,
- 1732, 1735, 1733, 1737, 1736, 1737, 1731, 1734, 1739, 1738,
-
- 1743, 1744, 1745, 1747, 1732, 1741, 1733, 1738, 1742, 1745,
- 1747, 1746, 0, 1750, 1743, 1734, 1735, 1736, 1739, 0,
- 1741, 1736, 1746, 1742, 1748, 1739, 1738, 1743, 1749, 1745,
- 1747, 1751, 1741, 1744, 1753, 1742, 1754, 1748, 1746, 1750,
- 1750, 1756, 1755, 1754, 1757, 1758, 1749, 1759, 0, 1751,
- 1760, 1748, 1749, 1760, 0, 1749, 1756, 1758, 1751, 1772,
- 1759, 1753, 1762, 1754, 1755, 1764, 1761, 1763, 1756, 1755,
- 1757, 1757, 1758, 1749, 1759, 1761, 1766, 1760, 1765, 1763,
- 1762, 1765, 1770, 1768, 1770, 1764, 1772, 1766, 1768, 1762,
- 1771, 1773, 1764, 1761, 1763, 1768, 1765, 1774, 1775, 1776,
-
- 1777, 0, 1778, 1766, 0, 1765, 1780, 1775, 1765, 1770,
- 1768, 1779, 1774, 1781, 1771, 1768, 1778, 1771, 1773, 1779,
- 1782, 1784, 0, 1776, 1774, 1775, 1776, 1777, 1780, 1778,
- 1783, 1785, 1787, 1780, 1786, 1781, 1783, 0, 1779, 1785,
- 1781, 1788, 1792, 1784, 1782, 1786, 1791, 1782, 1784, 1788,
- 1787, 1789, 1790, 1793, 1789, 1790, 1794, 1783, 1785, 1787,
- 1795, 1786, 1797, 1796, 1791, 1800, 1801, 1795, 1788, 1789,
- 1800, 1797, 1798, 1791, 1792, 1799, 1794, 1796, 1789, 1790,
- 1793, 1789, 1805, 1794, 1805, 1798, 1799, 1795, 1801, 1797,
- 1796, 1802, 1806, 1801, 1807, 0, 1809, 1800, 1808, 1798,
-
- 0, 1806, 1799, 1812, 0, 1814, 1802, 1809, 1810, 1805,
- 1811, 0, 1815, 1813, 1811, 1816, 1813, 1812, 1802, 1806,
- 1807, 1807, 1808, 1809, 1816, 1808, 1810, 1814, 1817, 1812,
- 1812, 1813, 1814, 1826, 1817, 1810, 1811, 1811, 1815, 1815,
- 1813, 1811, 1816, 1813, 1812, 1818, 1819, 1821, 1823, 1822,
- 1825, 1819, 0, 1823, 1818, 1817, 1828, 1824, 1827, 1829,
- 1821, 1822, 1832, 1825, 0, 1826, 1830, 1827, 1831, 1833,
- 1838, 1841, 1818, 1835, 1821, 1823, 1822, 1825, 1819, 1824,
- 1835, 1831, 1836, 1828, 1824, 1827, 1837, 1839, 1830, 1836,
- 1833, 1829, 1840, 1830, 1832, 1831, 1833, 1845, 1840, 1837,
-
- 1835, 1839, 1838, 1841, 1843, 1845, 1849, 1846, 1848, 1836,
- 1847, 1850, 1851, 1837, 1839, 1846, 1840, 0, 1847, 1840,
- 1857, 1856, 1852, 1843, 1845, 1840, 1851, 1848, 1849, 1850,
- 1853, 1843, 1854, 1849, 1846, 1848, 1859, 1847, 1850, 1851,
- 1852, 1855, 1856, 1858, 1853, 1854, 1861, 1860, 1856, 1852,
- 1865, 1862, 1857, 1863, 1855, 1867, 1864, 1853, 1862, 1854,
- 1859, 1860, 1863, 1859, 1864, 1866, 1868, 1870, 1855, 1856,
- 1869, 1868, 1872, 1861, 1860, 1858, 1870, 1865, 1862, 1866,
- 1863, 1869, 1873, 1864, 1874, 0, 1875, 1867, 1876, 1873,
- 1877, 0, 1866, 1868, 1870, 1876, 1878, 1869, 1879, 1872,
-
- 1880, 1887, 1883, 1882, 1880, 0, 1885, 1874, 1875, 1873,
- 1884, 1874, 1877, 1875, 1886, 1876, 1879, 1877, 1878, 1882,
- 1883, 1885, 1891, 1878, 1888, 1879, 1886, 1880, 1887, 1883,
- 1882, 1889, 1888, 1885, 1884, 1890, 1894, 1884, 1892, 1893,
- 1895, 1886, 1896, 1890, 1901, 1899, 1889, 1897, 1905, 1891,
- 1903, 1888, 1893, 1899, 1897, 1895, 1894, 1896, 1889, 1903,
- 1892, 1900, 1890, 1894, 1902, 1892, 1893, 1895, 1900, 1896,
- 1906, 1904, 1899, 1907, 1897, 1905, 1901, 1903, 1908, 1902,
- 1907, 1910, 1911, 1912, 1913, 1914, 1918, 0, 1900, 0,
- 1916, 1902, 1904, 1918, 1906, 1917, 1915, 1906, 1904, 1919,
-
- 1907, 1912, 0, 1910, 1919, 1908, 1922, 1924, 1910, 1920,
- 1912, 1915, 1914, 1918, 1911, 1916, 1913, 1916, 1920, 1917,
- 1921, 1923, 1917, 1915, 1925, 1924, 1919, 1927, 1922, 1921,
- 1926, 1929, 1928, 1922, 1924, 0, 1920, 1933, 1929, 1925,
- 1931, 0, 1926, 1923, 1932, 1928, 1930, 1921, 1923, 1927,
- 1928, 1925, 1934, 1930, 1927, 1935, 1932, 1926, 1929, 1928,
- 1942, 1935, 1931, 1937, 1933, 1940, 1945, 1931, 1930, 1938,
- 1939, 1932, 1928, 1930, 1937, 1944, 1940, 1938, 1939, 1941,
- 1930, 1943, 1935, 1943, 1934, 1942, 1941, 1942, 1946, 1948,
- 1937, 1947, 1940, 1945, 1943, 1949, 1938, 1939, 1947, 1950,
-
- 1953, 1944, 1944, 1951, 1955, 1950, 1941, 1952, 1943, 1951,
- 1943, 1958, 1954, 1952, 1956, 1946, 1948, 1960, 1947, 1959,
- 1961, 1949, 1949, 1962, 1961, 1965, 1950, 1953, 1959, 1963,
- 1951, 1963, 1967, 1964, 1952, 1954, 1955, 1966, 1956, 1954,
- 1968, 1956, 1970, 1958, 1966, 1962, 1959, 1961, 1970, 1960,
- 1962, 1969, 1965, 1971, 1967, 1972, 1963, 1964, 1973, 1967,
- 1964, 1974, 1975, 1969, 1966, 1980, 0, 1968, 0, 1970,
- 0, 0, 1976, 1976, 1976, 1971, 0, 1972, 1969, 1976,
- 1971, 1978, 1972, 1974, 1973, 1973, 1977, 1976, 1974, 1979,
- 1978, 1981, 1983, 1977, 1975, 1982, 1979, 1980, 1981, 1976,
-
- 1976, 1976, 1982, 1984, 1986, 1988, 1976, 1987, 1978, 1986,
- 1989, 1990, 1983, 1977, 1991, 1992, 1979, 1988, 1981, 1983,
- 1987, 1993, 1982, 1995, 1994, 1984, 1991, 1990, 1996, 1995,
- 1984, 1994, 1988, 1998, 1987, 1989, 1986, 1989, 1990, 1993,
- 2001, 1991, 1997, 1997, 2000, 1999, 2002, 1992, 1993, 2000,
- 1995, 1994, 1999, 2006, 2003, 1996, 2007, 2008, 2007, 1998,
- 1998, 2003, 2011, 2012, 2010, 2014, 2001, 2001, 2011, 1997,
- 2013, 2000, 1999, 2002, 2015, 2008, 2014, 2016, 2013, 2017,
- 2006, 2003, 2010, 2007, 2008, 2017, 2018, 2015, 2019, 2011,
- 2022, 2010, 2014, 2020, 2023, 2012, 2025, 2013, 2018, 2021,
-
- 2021, 2015, 2024, 2024, 2016, 2027, 2017, 2025, 2019, 2028,
- 2029, 2020, 2030, 2018, 2031, 2019, 2022, 2022, 2032, 2030,
- 2020, 2023, 2033, 2025, 2035, 2036, 2021, 2037, 0, 2024,
- 0, 2028, 2035, 2038, 2031, 2039, 2028, 2027, 2041, 2030,
- 2040, 2031, 2029, 2044, 2043, 2041, 2049, 2033, 2042, 2033,
- 2032, 2035, 2040, 2039, 2037, 2038, 2042, 2036, 2044, 2045,
- 2038, 2048, 2039, 2046, 2050, 2041, 2051, 2040, 2043, 2052,
- 2044, 2043, 2046, 2047, 2047, 2042, 2052, 2053, 2049, 2050,
- 2059, 0, 2062, 2045, 2058, 2054, 2045, 2048, 2048, 2053,
- 2046, 2050, 2056, 2065, 2062, 2061, 2052, 2057, 2051, 2056,
-
- 2047, 2054, 2057, 2061, 2053, 2066, 2058, 2059, 2054, 2062,
- 2060, 2058, 2054, 2060, 2067, 2064, 2065, 2069, 2068, 2056,
- 2065, 2070, 2061, 2064, 2057, 2073, 2071, 0, 2054, 2077,
- 0, 2066, 2066, 2075, 2074, 2067, 2068, 2060, 2072, 2070,
- 2074, 2067, 2064, 2072, 2069, 2068, 2075, 2076, 2070, 2071,
- 2078, 2077, 2073, 2071, 2072, 2076, 2077, 2078, 2081, 2079,
- 2075, 2074, 2080, 0, 2082, 2072, 2079, 2083, 2085, 2080,
- 2072, 2084, 2086, 2082, 2076, 2087, 0, 2078, 2090, 2083,
- 2088, 0, 2085, 2094, 2098, 2096, 2079, 2093, 2100, 2080,
- 2081, 2082, 2091, 2084, 2083, 2085, 2090, 2091, 2084, 2086,
-
- 2103, 2087, 2087, 2088, 2092, 2090, 2102, 2088, 2091, 2093,
- 2094, 2092, 2096, 2097, 2093, 2103, 2098, 2104, 2097, 2091,
- 2100, 2101, 2101, 2106, 2091, 2111, 2108, 2103, 2102, 2107,
- 0, 2092, 2109, 2102, 2110, 2112, 2110, 2113, 2106, 2114,
- 2112, 2108, 0, 2115, 2124, 2097, 2117, 2116, 2101, 2104,
- 2106, 2115, 2107, 2108, 2116, 2122, 2107, 2111, 2109, 2109,
- 2118, 2110, 2112, 2120, 2121, 2125, 2114, 2126, 2117, 2113,
- 2115, 2124, 2121, 2117, 2116, 2118, 2127, 2122, 2120, 2128,
- 2131, 2130, 2122, 2129, 2132, 0, 2134, 2118, 2130, 2125,
- 2120, 2121, 2125, 2126, 2126, 2129, 2133, 2135, 2137, 2138,
-
- 2148, 0, 2142, 2127, 2140, 2132, 2128, 2134, 2130, 2141,
- 2129, 2132, 2131, 2134, 2143, 2135, 2147, 2142, 2133, 2145,
- 2137, 2149, 2146, 2133, 2135, 2137, 2138, 2148, 2140, 2142,
- 2150, 2140, 2141, 2151, 2145, 2152, 2141, 2146, 2147, 2149,
- 2143, 2143, 2153, 2147, 2154, 2155, 2145, 2156, 2149, 2146,
- 2157, 2154, 2150, 2158, 2160, 2151, 2156, 2150, 2157, 2152,
- 2151, 2159, 2152, 2155, 2161, 2164, 2162, 2179, 2170, 2153,
- 2163, 2154, 2155, 2161, 2156, 2170, 2158, 2157, 2164, 2163,
- 2158, 2167, 2168, 2159, 2162, 2166, 2160, 2169, 2159, 2171,
- 2167, 2161, 2164, 2162, 2179, 2170, 2166, 2163, 2173, 2172,
-
- 2168, 2174, 2175, 2181, 2176, 2169, 2188, 2174, 2167, 2168,
- 2182, 2166, 2166, 2173, 2169, 2171, 2171, 2172, 2176, 0,
- 2191, 2182, 2183, 2166, 2175, 2173, 2172, 2181, 2174, 2175,
- 2181, 2176, 2184, 2183, 2186, 2187, 2194, 2182, 2188, 2190,
- 2189, 2192, 2193, 2184, 2202, 2191, 2186, 2191, 2187, 2183,
- 2189, 2193, 2195, 2197, 2192, 2198, 2200, 2201, 2210, 2184,
- 2200, 2186, 2187, 2194, 2203, 2190, 2190, 2189, 2192, 2193,
- 2204, 2195, 2207, 2210, 2214, 2214, 2202, 2203, 2201, 2195,
- 2197, 2198, 2198, 2200, 2201, 2210, 2206, 2205, 2211, 2209,
- 2204, 2203, 2205, 2206, 2208, 2209, 2212, 2204, 2207, 2207,
-
- 2215, 2214, 2208, 2211, 2213, 2216, 2217, 0, 2212, 0,
- 2245, 2217, 0, 2206, 2205, 2211, 2209, 2216, 2215, 2213,
- 2208, 2208, 2218, 2212, 2223, 2224, 2218, 2215, 2221, 2208,
- 2227, 2213, 2216, 2219, 2219, 2221, 2222, 2219, 2217, 2223,
- 2222, 2226, 2245, 2228, 2225, 2231, 0, 0, 2226, 2218,
- 2219, 2223, 2224, 2225, 2227, 2221, 2232, 2227, 2219, 2229,
- 2219, 2219, 2234, 2222, 2219, 2228, 2229, 2231, 2226, 2233,
- 2228, 2225, 2231, 2235, 2237, 2241, 2239, 2219, 2233, 2240,
- 2242, 2232, 2250, 2232, 2234, 2239, 2229, 2243, 2248, 2234,
- 2241, 2244, 2237, 2235, 2253, 2243, 2233, 2240, 2244, 2249,
-
- 2235, 2237, 2241, 2239, 2246, 2242, 2240, 2242, 2252, 2250,
- 2255, 2246, 2249, 2248, 2243, 2248, 2251, 2251, 2244, 2253,
- 2256, 2253, 2259, 2260, 2257, 2258, 2249, 2262, 0, 2259,
- 2252, 2246, 2255, 2257, 2258, 2252, 2261, 2255, 2263, 2264,
- 2265, 2262, 2256, 2251, 2264, 2269, 2270, 2256, 2267, 2259,
- 2271, 2257, 2258, 2263, 2262, 2260, 2267, 2268, 2261, 2265,
- 2269, 2275, 2272, 2261, 2276, 2263, 2279, 2265, 2273, 2277,
- 2268, 2264, 2269, 2270, 2274, 2267, 2271, 2271, 2272, 2278,
- 2273, 2274, 2281, 2286, 2268, 2285, 2276, 2282, 2278, 2272,
- 2283, 2276, 2280, 2275, 2277, 2273, 2277, 2284, 2279, 2287,
-
- 2280, 2274, 2282, 2285, 2291, 2286, 2278, 2289, 2287, 2281,
- 2286, 2280, 2285, 2300, 2282, 2290, 2283, 2283, 2290, 2280,
- 2293, 2294, 2292, 2284, 2284, 2293, 2287, 2280, 2292, 2291,
- 2289, 2291, 2295, 2290, 2289, 2300, 2294, 2298, 2296, 2299,
- 2300, 2301, 2290, 2303, 2305, 2290, 2306, 0, 2294, 2292,
- 2295, 2298, 2293, 2296, 2299, 2304, 2311, 2303, 2311, 2295,
- 2307, 0, 2305, 2301, 2298, 2296, 2299, 2304, 2301, 2307,
- 2303, 2305, 2308, 2306, 2304, 2309, 2312, 2310, 2313, 2314,
- 2316, 2308, 2304, 2311, 2309, 2317, 2318, 2307, 2310, 2312,
- 2313, 0, 2319, 2318, 2304, 2316, 2320, 2321, 0, 2308,
-
- 2317, 2314, 2309, 2312, 2310, 2313, 2314, 2316, 2322, 2325,
- 2327, 2332, 2317, 2318, 2319, 2321, 2328, 2322, 2320, 2319,
- 2328, 2329, 2325, 2320, 2321, 2330, 2331, 2333, 2331, 2332,
- 2325, 2327, 2334, 2329, 2330, 2322, 2325, 2327, 2332, 2335,
- 2338, 0, 2336, 2328, 2340, 2343, 2339, 2337, 2329, 2325,
- 2334, 2336, 2330, 2331, 2333, 2337, 2342, 2344, 2340, 2334,
- 2345, 2346, 2344, 2338, 2342, 2345, 2335, 2338, 2339, 2336,
- 2347, 2340, 2348, 2339, 2337, 0, 2350, 2343, 2351, 2354,
- 2355, 0, 2358, 2342, 2344, 2351, 2356, 0, 2354, 2359,
- 2357, 2363, 2345, 2346, 2367, 2350, 2348, 2369, 2365, 2348,
-
- 2356, 2361, 2347, 2350, 2360, 2351, 2354, 2355, 2357, 2358,
- 2361, 2356, 2356, 2356, 2364, 2359, 2359, 2357, 2366, 2360,
- 2365, 2367, 0, 2363, 2368, 2365, 2364, 2356, 2361, 2369,
- 2371, 2360, 2372, 2373, 2376, 2374, 2376, 2379, 2356, 2372,
- 2386, 2364, 2374, 2377, 2366, 2366, 2368, 2380, 2378, 2379,
- 2384, 2368, 2378, 2371, 2381, 2382, 2373, 2371, 2389, 2372,
- 2373, 2376, 2374, 2381, 2379, 2377, 2382, 2386, 2385, 2380,
- 2377, 2383, 2384, 2385, 2380, 2378, 2387, 2384, 2383, 2388,
- 2389, 2381, 2382, 2390, 2392, 2389, 2391, 2391, 2394, 2393,
- 2395, 2388, 2390, 2392, 2396, 2385, 2394, 2398, 2383, 2387,
-
- 2397, 2400, 0, 2387, 2393, 0, 2388, 2410, 2396, 2397,
- 2390, 2392, 2395, 2391, 2401, 2394, 2393, 2395, 2402, 2408,
- 2400, 2396, 2401, 2403, 2398, 2404, 2402, 2397, 2400, 2404,
- 2405, 2403, 2406, 2405, 2408, 2411, 2407, 2409, 2416, 2410,
- 2406, 2401, 2407, 2409, 2413, 2402, 2408, 2415, 2417, 2420,
- 2403, 2416, 2404, 2418, 2423, 2419, 2413, 2405, 0, 2406,
- 2422, 2415, 2419, 2407, 2409, 2416, 2421, 2411, 2423, 2417,
- 2424, 2413, 2425, 2424, 2415, 2417, 2420, 2426, 2418, 2427,
- 2418, 2423, 2419, 2428, 2422, 2425, 2429, 2422, 2421, 2430,
- 2431, 2426, 2436, 2421, 2433, 2432, 0, 2424, 2434, 2425,
-
- 2437, 2434, 2431, 2438, 2426, 2427, 2427, 2432, 2433, 2439,
- 2428, 2429, 2441, 2429, 2442, 2438, 2430, 2431, 2443, 2436,
- 2440, 2433, 2432, 2440, 2434, 2434, 2437, 2437, 2434, 2445,
- 2438, 2448, 2449, 2450, 0, 2439, 2439, 2446, 2440, 2441,
- 2443, 2442, 2447, 2452, 2446, 2443, 2448, 2440, 2453, 2447,
- 2440, 2445, 2454, 2451, 2455, 2456, 2445, 2453, 2448, 2449,
- 2450, 2451, 2457, 2458, 2446, 2459, 2455, 2460, 2463, 2447,
- 2452, 2461, 2468, 2462, 2464, 2453, 2465, 2456, 2459, 2454,
- 2451, 2455, 2456, 2462, 2465, 2460, 2467, 2464, 2469, 2457,
- 2458, 2470, 2459, 2471, 2460, 2463, 2469, 2461, 2461, 2468,
-
- 2462, 2464, 2471, 2465, 2472, 2474, 2473, 2476, 2467, 2475,
- 2478, 2477, 0, 2467, 2479, 2469, 2481, 2482, 2470, 2477,
- 2471, 2483, 2478, 2484, 2475, 2482, 2472, 2473, 2481, 2474,
- 2487, 2472, 2474, 2473, 2476, 2475, 2475, 2478, 2477, 2479,
- 2486, 2479, 2487, 2481, 2482, 2488, 2489, 2486, 2483, 2488,
- 2491, 2475, 2490, 2492, 2493, 2484, 2495, 2487, 2489, 2494,
- 2498, 2492, 2499, 0, 2496, 2500, 0, 2486, 2495, 2499,
- 0, 2501, 2488, 2489, 2506, 2490, 2493, 2491, 2496, 2490,
- 2492, 2493, 2494, 2495, 2501, 2500, 2494, 2498, 2502, 2499,
- 2496, 2496, 2500, 2503, 2504, 2505, 2505, 2502, 2501, 2507,
-
- 2506, 2506, 2503, 2508, 2511, 2496, 2504, 2513, 2509, 0,
- 2517, 2514, 2512, 0, 2516, 2502, 2516, 2507, 2515, 0,
- 2503, 2504, 2505, 2509, 2517, 2509, 2507, 2512, 2508, 2513,
- 2508, 2519, 2509, 2514, 2513, 2509, 2511, 2517, 2514, 2512,
- 2515, 2516, 2518, 2520, 2523, 2515, 2521, 2521, 2518, 2519,
- 2509, 2526, 2509, 2524, 2525, 2527, 2528, 0, 2519, 2531,
- 0, 0, 2529, 2526, 0, 2520, 2523, 2530, 2529, 2518,
- 2520, 2523, 0, 2521, 2532, 2524, 2525, 2533, 2526, 2530,
- 2524, 2525, 2534, 2535, 2534, 2537, 0, 2527, 2528, 2529,
- 2536, 2531, 2537, 2538, 2530, 2539, 2532, 2535, 2540, 2533,
-
- 2541, 2532, 2542, 2543, 2533, 2544, 2550, 2545, 2552, 2534,
- 2535, 2538, 2537, 2539, 2536, 2542, 2540, 2536, 2541, 2547,
- 2538, 2549, 2539, 2551, 2550, 2540, 2547, 2541, 2549, 2542,
- 2545, 2553, 2559, 2550, 2545, 2543, 2554, 2544, 2555, 2553,
- 2552, 2560, 2561, 2559, 2562, 2556, 2547, 2566, 2549, 2551,
- 2551, 2564, 2560, 2557, 2554, 2557, 2562, 2553, 2553, 2559,
- 2557, 2563, 2566, 2554, 2555, 2555, 2553, 2556, 2560, 2561,
- 2567, 2562, 2556, 2564, 2566, 2568, 2569, 2571, 2564, 2563,
- 2557, 2567, 2557, 2572, 2574, 2573, 2575, 2568, 2563, 2576,
- 2579, 2569, 2573, 2577, 2580, 0, 2582, 2567, 2583, 2574,
-
- 2581, 2571, 2568, 2569, 2571, 2572, 2584, 2585, 0, 0,
- 2572, 2574, 2573, 2575, 2587, 2592, 2576, 2579, 2580, 2577,
- 2577, 2580, 2581, 2586, 2584, 2589, 2594, 2581, 2582, 2588,
- 2583, 2590, 2593, 2584, 2585, 2591, 2586, 2596, 2589, 2590,
- 2587, 2587, 2597, 2598, 2588, 2593, 2599, 2592, 2594, 2600,
- 2586, 0, 2589, 2594, 2601, 2604, 2588, 2602, 2590, 2593,
- 2596, 2591, 2591, 2605, 2596, 2606, 2597, 2603, 2599, 2597,
- 2598, 2600, 2601, 2599, 2603, 2602, 2600, 2608, 2604, 2606,
- 2609, 2601, 2604, 2612, 2602, 2613, 2610, 2609, 2611, 2615,
- 2605, 2614, 2606, 2610, 2603, 2611, 2612, 2616, 2614, 2608,
-
- 2617, 0, 0, 2625, 2608, 2618, 2630, 2609, 2613, 2619,
- 2612, 2615, 2613, 2610, 2620, 2611, 2615, 2621, 2614, 0,
- 2622, 2617, 2627, 2620, 2623, 2621, 2629, 2617, 2622, 2616,
- 2625, 2618, 2618, 2624, 2628, 2619, 2619, 2627, 2630, 2624,
- 2631, 2620, 2633, 2632, 2621, 2628, 2623, 2622, 2629, 2627,
- 2635, 2623, 2637, 2629, 2639, 2646, 2646, 2653, 2638, 2640,
- 2624, 2628, 2632, 2641, 2643, 2637, 2644, 2633, 2635, 2633,
- 2632, 2638, 2631, 2645, 2651, 2647, 2650, 2635, 2644, 2637,
- 2639, 2639, 2646, 2640, 2653, 2638, 2640, 2654, 2643, 2641,
- 2641, 2643, 2652, 2644, 2657, 2659, 2661, 2645, 2665, 2650,
-
- 2645, 2647, 2647, 2650, 2659, 2654, 2651, 2652, 2667, 2661,
- 2666, 2666, 2668, 2662, 2654, 2672, 2670, 2667, 2668, 2652,
- 2665, 2657, 2659, 2661, 2662, 2665, 2671, 2674, 2676, 2677,
- 0, 2678, 2687, 0, 2679, 2667, 2677, 2666, 2670, 2668,
- 2662, 2680, 2672, 2670, 2681, 2679, 2680, 2683, 2671, 2684,
- 2685, 2689, 2686, 2671, 2674, 2683, 2677, 2678, 2678, 2687,
- 2676, 2679, 2689, 2690, 2691, 2685, 2681, 2686, 2680, 2692,
- 2694, 2681, 2696, 2684, 2683, 2693, 2684, 2685, 2689, 2686,
- 2697, 2690, 2694, 2698, 2693, 2691, 2699, 2700, 2700, 2701,
- 2690, 2691, 2703, 2704, 2699, 2700, 2706, 2694, 2701, 2696,
-
- 2705, 2692, 2693, 2707, 2697, 2706, 2709, 2697, 2698, 2710,
- 2698, 2708, 0, 2699, 2700, 2700, 2701, 2713, 2703, 2703,
- 2704, 2707, 2705, 2706, 2711, 2708, 2712, 2705, 2709, 2718,
- 2707, 2719, 2713, 2709, 2710, 2714, 2710, 2711, 2708, 2712,
- 2715, 2716, 2717, 2719, 2713, 2720, 2721, 2715, 2716, 2722,
- 2723, 2711, 0, 2712, 2724, 0, 2718, 2714, 2719, 2727,
- 2726, 2725, 2714, 2728, 2717, 2723, 2729, 2715, 2716, 2717,
- 2725, 2731, 2720, 2721, 0, 0, 2722, 2723, 2731, 2724,
- 2730, 2724, 2726, 2736, 2732, 2727, 2727, 2726, 2725, 2728,
- 2728, 2734, 2729, 2729, 2733, 2730, 2737, 2734, 2731, 2732,
-
- 2738, 2733, 2735, 2739, 2737, 2741, 2740, 2730, 2743, 2742,
- 2736, 2732, 2745, 2735, 0, 2746, 2744, 2749, 2734, 2745,
- 2751, 2733, 2740, 2737, 2742, 2752, 2752, 2738, 2743, 2735,
- 2739, 2744, 2741, 2740, 2747, 2743, 2742, 2746, 2748, 2745,
- 2750, 2747, 2746, 2744, 2749, 2748, 2753, 2751, 2754, 2758,
- 2756, 2755, 2752, 2753, 2755, 2757, 2759, 0, 2750, 2760,
- 2757, 2747, 2754, 2756, 2767, 2748, 2761, 2750, 2762, 2763,
- 2765, 2759, 2826, 2753, 2758, 2754, 2758, 2756, 2755, 2765,
- 2762, 2763, 2757, 2759, 2761, 2760, 2760, 2766, 2769, 2770,
- 2768, 2767, 2766, 2761, 2768, 2762, 2763, 2765, 2771, 2772,
-
- 2773, 2774, 2770, 2775, 2826, 2778, 0, 2780, 2782, 2781,
- 2784, 2783, 2769, 0, 2766, 2769, 2770, 2768, 2781, 2783,
- 2771, 2772, 2784, 2944, 2782, 2771, 2772, 2773, 2774, 2775,
- 2775, 2778, 2778, 2780, 2780, 2782, 2781, 2784, 2783, 2786,
- 2787, 2789, 2788, 2790, 2791, 2793, 2786, 2788, 2789, 2787,
- 2792, 2791, 2793, 2794, 2795, 2944, 2796, 2799, 2802, 2803,
- 0, 2790, 2794, 2795, 2798, 2800, 2786, 2787, 2789, 2788,
- 2790, 2791, 2793, 2806, 2801, 2792, 2802, 2792, 2800, 2801,
- 2794, 2795, 2796, 2796, 2799, 2802, 2803, 2798, 2805, 2807,
- 2808, 2798, 2800, 2809, 2810, 2811, 2812, 2814, 2807, 2808,
-
- 2806, 2801, 2809, 2813, 2816, 2812, 2805, 2811, 2814, 2817,
- 2815, 2818, 2813, 2819, 2810, 2805, 2807, 2808, 2815, 2820,
- 2809, 2810, 2811, 2812, 2814, 2821, 2820, 2816, 2822, 2817,
- 2813, 2816, 2824, 2825, 2821, 2827, 2817, 2815, 2818, 2828,
- 2819, 2829, 2830, 2831, 2827, 2832, 2820, 2833, 2828, 2822,
- 2830, 2834, 2821, 2829, 2835, 2822, 2831, 2836, 2834, 2824,
- 2825, 2835, 2827, 2837, 2836, 2842, 2828, 2832, 2829, 2830,
- 2831, 2838, 2832, 2839, 2833, 2840, 2841, 2844, 2834, 2837,
- 2839, 2835, 2843, 2846, 2836, 2849, 0, 2838, 2848, 0,
- 2837, 2846, 2842, 2849, 2852, 0, 2850, 2840, 2838, 0,
-
- 2839, 2841, 2840, 2841, 2844, 2854, 2848, 2843, 2862, 2843,
- 2846, 2850, 2849, 2851, 2856, 2848, 2852, 2853, 2855, 2859,
- 2851, 2852, 2856, 2850, 2853, 2855, 2859, 2854, 2860, 2861,
- 2863, 2865, 2854, 2866, 2864, 2862, 2867, 2860, 2870, 2868,
- 2851, 2856, 2863, 2864, 2853, 2855, 2859, 2871, 2867, 2866,
- 2870, 2872, 2873, 2861, 2874, 2860, 2861, 2863, 2865, 2871,
- 2866, 2864, 2868, 2867, 2877, 2870, 2868, 2878, 2875, 2883,
- 2879, 2881, 2872, 2889, 2871, 2873, 2877, 2879, 2872, 2873,
- 2880, 2874, 2875, 2886, 2885, 2882, 2887, 0, 2880, 2888,
- 2881, 2877, 2882, 2891, 2878, 2875, 2883, 2879, 2881, 2885,
-
- 2889, 2886, 2892, 2893, 2897, 0, 2890, 2880, 2894, 2887,
- 2886, 2885, 2882, 2887, 2890, 2888, 2888, 2895, 2896, 2894,
- 2891, 2893, 2899, 2904, 2892, 2896, 2903, 2906, 2899, 2892,
- 2893, 2897, 2895, 2890, 2905, 2894, 2913, 2907, 0, 2905,
- 2910, 2904, 2908, 2909, 2895, 2896, 2917, 2911, 2912, 2899,
- 2904, 2907, 2903, 2903, 2906, 2914, 2908, 2909, 2910, 2915,
- 2925, 2905, 2914, 2913, 2907, 2911, 2912, 2910, 2920, 2908,
- 2909, 2915, 2922, 2917, 2911, 2912, 2923, 2926, 2924, 2925,
- 2927, 2930, 2914, 2928, 2932, 2926, 2915, 2925, 2935, 2923,
- 2920, 2933, 2936, 2930, 2922, 2920, 0, 2934, 2927, 2922,
-
- 2924, 2937, 2928, 2923, 2926, 2924, 2932, 2927, 2930, 2934,
- 2928, 2932, 2938, 2933, 2939, 2935, 2940, 0, 2933, 2936,
- 2938, 2942, 2941, 2937, 2934, 2943, 0, 2947, 2937, 2945,
- 2942, 2950, 2951, 2948, 2943, 2949, 2940, 2955, 2961, 2938,
- 2972, 2939, 2956, 2940, 2941, 2948, 2958, 2954, 2942, 2941,
- 2957, 2945, 2943, 2947, 2947, 2957, 2945, 2949, 2950, 2951,
- 2948, 2954, 2949, 2959, 2955, 2960, 2956, 2972, 2958, 2956,
- 2961, 2962, 2965, 2958, 2954, 2963, 2971, 2964, 2960, 2968,
- 2967, 2966, 2957, 2969, 2965, 2959, 2967, 2970, 0, 0,
- 2959, 2971, 2960, 2974, 2962, 2964, 2975, 2963, 2962, 2965,
-
- 2966, 2976, 2963, 2971, 2964, 2980, 2978, 2967, 2966, 2970,
- 2983, 2968, 2981, 2974, 2970, 2969, 2982, 2984, 2975, 2983,
- 2974, 2978, 2985, 2975, 2986, 2976, 2987, 2980, 2976, 2988,
- 0, 2984, 2980, 2978, 2981, 2989, 0, 2983, 2982, 2981,
- 2985, 2990, 2986, 2982, 2984, 2993, 2994, 2988, 2995, 2985,
- 3002, 2986, 2987, 2987, 2993, 0, 2988, 2998, 2989, 2999,
- 3000, 3003, 2989, 2990, 0, 2998, 2999, 3000, 2990, 2995,
- 3008, 3001, 2993, 3006, 3004, 2995, 3007, 3002, 2994, 3001,
- 3009, 3003, 3004, 3011, 2998, 3012, 2999, 3000, 3003, 0,
- 3010, 3006, 3009, 3018, 3007, 3011, 3008, 3008, 3001, 3015,
-
- 3006, 3004, 3017, 3007, 3019, 3013, 3021, 3009, 3010, 3017,
- 3011, 3015, 3012, 3013, 3023, 3022, 3018, 3010, 3024, 3020,
- 3018, 3020, 3023, 3025, 3026, 3027, 3015, 3024, 0, 3017,
- 3031, 3019, 3013, 3028, 3029, 3028, 3032, 3034, 3021, 3036,
- 3035, 3023, 0, 3039, 3027, 3024, 3020, 3022, 3031, 3037,
- 3032, 3026, 3027, 3040, 3045, 3025, 3029, 3031, 3037, 3038,
- 3028, 3029, 3036, 3032, 3035, 3040, 3036, 3035, 3042, 3034,
- 3039, 3046, 3038, 3043, 3047, 3046, 3037, 3048, 3050, 3051,
- 3040, 3045, 3043, 3055, 3057, 3052, 3038, 3058, 3059, 3063,
- 3053, 3057, 3060, 3068, 3042, 3042, 3063, 3060, 3046, 0,
-
- 3043, 3047, 3051, 3059, 3048, 3050, 3051, 3052, 3053, 3058,
- 3055, 3057, 3052, 3061, 3058, 3059, 3063, 3053, 3064, 3065,
- 3068, 3066, 3069, 3070, 3060, 3064, 3065, 3071, 3061, 3072,
- 3073, 3075, 3076, 3079, 3081, 3078, 0, 3080, 3087, 3083,
- 3061, 3076, 3078, 3072, 3073, 3064, 3065, 3066, 3066, 3069,
- 3070, 3071, 3088, 3082, 3071, 3084, 3072, 3073, 3075, 3076,
- 3079, 3081, 3078, 3080, 3080, 3082, 3083, 3085, 3086, 3084,
- 3087, 3092, 3095, 3089, 3096, 3093, 3085, 3095, 3096, 3088,
- 3082, 3086, 3084, 3097, 3098, 3099, 3100, 3101, 0, 3101,
- 3097, 3098, 3102, 3103, 3085, 3086, 3089, 3093, 3108, 3106,
-
- 3089, 3096, 3093, 3092, 3095, 3109, 3099, 3111, 3115, 3111,
- 3097, 3098, 3099, 3112, 3101, 3102, 3113, 3108, 3100, 3102,
- 3103, 3106, 3116, 3114, 3114, 3108, 3106, 3119, 3118, 3109,
- 3115, 3116, 3109, 3114, 3111, 3115, 3121, 3112, 3117, 3120,
- 3112, 3118, 3113, 3113, 3121, 3117, 3122, 3129, 3123, 3116,
- 3114, 3114, 3120, 3124, 3119, 3118, 3123, 3126, 3130, 3122,
- 3121, 3131, 3126, 3121, 3127, 3117, 3120, 3132, 3128, 3127,
- 3135, 3121, 3124, 3122, 3129, 3123, 3128, 3133, 0, 3134,
- 3124, 3135, 3139, 3137, 3130, 3130, 3136, 3131, 3131, 3126,
- 3137, 3138, 3138, 3132, 3132, 3128, 3127, 3135, 3140, 3141,
-
- 3139, 3143, 3144, 3133, 3133, 3134, 3134, 3142, 3136, 3139,
- 3137, 3140, 3145, 3136, 3149, 3142, 3150, 3146, 3138, 3145,
- 3144, 3141, 3151, 3143, 3146, 3140, 3141, 3153, 3143, 3144,
- 3147, 3154, 3158, 3152, 3142, 0, 3159, 3147, 3156, 3145,
- 3155, 3149, 3160, 3150, 3146, 3152, 3151, 3156, 3161, 3151,
- 3163, 3166, 3154, 3164, 3153, 3165, 3159, 3147, 3154, 3158,
- 3152, 3167, 3155, 3159, 3171, 3156, 3168, 3155, 3172, 3160,
- 3161, 3164, 3170, 3165, 3173, 3161, 3174, 3163, 3166, 3167,
- 3164, 3170, 3165, 3190, 3168, 3183, 3176, 3193, 3167, 3178,
- 3175, 3171, 3177, 3168, 3174, 3172, 3178, 3173, 3175, 3170,
-
- 3179, 3173, 3176, 3174, 3177, 3179, 3181, 3182, 3183, 3185,
- 3190, 3191, 3183, 3176, 3193, 3189, 3178, 3175, 3194, 3177,
- 3181, 3185, 3198, 3199, 3191, 3182, 3195, 3201, 3195, 3200,
- 3196, 3194, 3179, 3181, 3182, 3219, 3185, 3189, 3191, 3196,
- 3202, 3206, 3189, 3206, 3207, 3194, 3208, 3200, 3211, 3198,
- 3199, 3210, 3217, 3195, 3213, 3202, 3200, 3196, 3210, 3201,
- 3218, 3219, 3219, 3222, 3208, 3220, 3207, 3202, 3206, 3213,
- 3215, 3207, 3223, 3208, 3217, 3224, 3215, 3227, 3210, 3217,
- 3211, 3213, 3218, 3220, 3228, 3222, 3223, 3218, 3224, 3229,
- 3222, 3225, 3220, 3231, 3225, 3230, 0, 3215, 3232, 3223,
-
- 3231, 3233, 3224, 3235, 3227, 3236, 3232, 3237, 0, 3238,
- 3239, 3228, 3244, 3230, 0, 3240, 3229, 3225, 3225, 3239,
- 3231, 3225, 3230, 3233, 3242, 3232, 3246, 3236, 3233, 3237,
- 3240, 3243, 3236, 3241, 3237, 3235, 3238, 3239, 3248, 3241,
- 3243, 3245, 3240, 3245, 3244, 3249, 3242, 3250, 0, 3251,
- 3256, 3242, 3253, 3246, 3252, 3258, 3260, 3256, 3243, 3254,
- 3241, 3248, 3252, 0, 3253, 3248, 3261, 3249, 3245, 3250,
- 3260, 3254, 3249, 3262, 3250, 3251, 3251, 3256, 3263, 3253,
- 3261, 3252, 3258, 3260, 3264, 3265, 3254, 3262, 3267, 3266,
- 3272, 3268, 3269, 3261, 3271, 3273, 3265, 3266, 3275, 3269,
-
- 3262, 3263, 3264, 3270, 3273, 3263, 3276, 3267, 3272, 3280,
- 3270, 3264, 3265, 3268, 3280, 3267, 3266, 3272, 3268, 3269,
- 3271, 3271, 3273, 3274, 3274, 3275, 3277, 3281, 3283, 3284,
- 3270, 3285, 3287, 3276, 3277, 3289, 3291, 3292, 3287, 3294,
- 3281, 3280, 3299, 3296, 3300, 3302, 3295, 3291, 3292, 3283,
- 3274, 3300, 3304, 3277, 3281, 3283, 3284, 3295, 3285, 3287,
- 3301, 3294, 3289, 3291, 3292, 3296, 3294, 3305, 3303, 3299,
- 3296, 3300, 3303, 3295, 3307, 3305, 3308, 3302, 3301, 3304,
- 3309, 3310, 3311, 3313, 3315, 3316, 3322, 3301, 3309, 3308,
- 3310, 3315, 3317, 3320, 3305, 3303, 3321, 3321, 3320, 3323,
-
- 3307, 3307, 3326, 3308, 3324, 3325, 3327, 3309, 3310, 3311,
- 3328, 3315, 3325, 3322, 3317, 3313, 3324, 3316, 3329, 3317,
- 3320, 3326, 3327, 3321, 3330, 3329, 3323, 3331, 3328, 3326,
- 3334, 3324, 3325, 3327, 3332, 3331, 3333, 3328, 3335, 0,
- 3336, 3345, 3337, 3333, 3338, 3329, 3343, 3342, 3326, 3332,
- 3335, 3344, 3346, 3343, 3331, 3347, 3330, 3334, 3350, 3351,
- 3354, 3332, 3342, 3333, 3336, 3335, 3337, 3336, 3345, 3337,
- 3338, 3338, 3348, 3343, 3342, 3352, 3346, 3356, 3358, 3346,
- 3350, 3348, 3353, 3344, 3362, 3350, 3351, 3347, 3355, 3355,
- 3353, 3359, 3354, 3358, 3360, 3365, 3360, 3352, 3355, 3348,
-
- 3359, 3364, 3352, 3361, 3356, 3358, 3363, 3367, 3368, 3353,
- 3369, 3362, 3364, 3365, 3363, 3355, 3355, 3361, 3359, 3370,
- 3372, 3360, 3365, 3371, 3373, 3374, 3375, 3376, 3364, 3377,
- 3361, 3379, 3379, 3363, 3367, 3368, 3371, 3369, 3381, 3380,
- 3384, 3370, 3372, 3378, 0, 3376, 3370, 3372, 3385, 3387,
- 3371, 3373, 3374, 3375, 3376, 3388, 3377, 3378, 3379, 3385,
- 3381, 3391, 3399, 3393, 3411, 3381, 3395, 3384, 3393, 3391,
- 3378, 3380, 3394, 3396, 3395, 3385, 3387, 3394, 3396, 3397,
- 3400, 3400, 3388, 3401, 3402, 3404, 3405, 3406, 3391, 3399,
- 3393, 3401, 3404, 3395, 3407, 3408, 3411, 3402, 3414, 3394,
-
- 3396, 3419, 3412, 0, 3405, 3397, 3397, 3400, 3410, 3412,
- 3401, 3402, 3404, 3405, 3406, 3413, 3415, 3410, 3408, 3421,
- 3414, 3407, 3408, 3413, 3418, 3414, 3422, 3423, 3419, 3412,
- 3418, 3424, 3425, 3426, 3427, 3410, 0, 0, 3415, 0,
- 3423, 3430, 3413, 3415, 3428, 3431, 3421, 3425, 3422, 3432,
- 3433, 3418, 3426, 3422, 3423, 3435, 3432, 3433, 3434, 3425,
- 3426, 3427, 3436, 3424, 3430, 3438, 3428, 3431, 3430, 3443,
- 3435, 3428, 3431, 3439, 0, 0, 3432, 3433, 3443, 3440,
- 3434, 3439, 3435, 3436, 3438, 3434, 3440, 3441, 3444, 3436,
- 3447, 3449, 3438, 3460, 3441, 3446, 3443, 3445, 3445, 3444,
-
- 3439, 3446, 3450, 3451, 3452, 3456, 3440, 3445, 0, 3450,
- 3455, 3461, 3447, 3449, 3441, 3444, 3454, 3447, 3449, 3456,
- 3460, 3462, 3446, 3454, 3445, 3445, 3452, 3466, 3468, 3450,
- 3469, 3452, 3456, 3470, 3455, 3451, 3471, 3455, 3461, 3466,
- 3476, 3470, 3479, 3454, 3462, 3481, 3473, 0, 3462, 3477,
- 3477, 0, 3469, 3483, 3466, 3468, 3484, 3469, 3473, 3485,
- 3470, 3478, 3478, 3471, 3480, 3480, 0, 3476, 3481, 3479,
- 3486, 3487, 3481, 3473, 3484, 3483, 3490, 3494, 3477, 3486,
- 3483, 3491, 3492, 3484, 3487, 3493, 3485, 3495, 3497, 3492,
- 3478, 3496, 3493, 3480, 3500, 3497, 3500, 3486, 3487, 3494,
-
- 3496, 3502, 3501, 3490, 3494, 3503, 0, 3491, 3491, 3492,
- 3506, 3507, 3493, 3504, 3495, 3497, 3508, 3509, 3496, 3506,
- 3510, 3500, 3501, 3503, 3502, 3504, 3511, 3512, 3502, 3501,
- 3513, 0, 3503, 3507, 3514, 3509, 3516, 3506, 3507, 3517,
- 3504, 3516, 3513, 3508, 3509, 3515, 3510, 3510, 3515, 3518,
- 3519, 3518, 3520, 3511, 3512, 0, 3514, 3513, 3520, 3521,
- 3522, 3514, 3519, 3515, 3524, 3523, 3525, 3526, 3516, 3527,
- 3528, 3517, 3515, 3523, 3533, 3515, 3518, 3519, 3529, 3520,
- 3530, 3521, 3522, 3536, 3541, 3537, 3521, 3522, 3526, 3542,
- 3529, 3524, 3523, 3534, 3526, 3539, 3527, 3528, 3525, 3543,
-
- 3544, 3533, 3530, 3537, 3539, 3529, 3534, 3530, 3546, 3547,
- 3536, 3541, 3537, 3548, 3549, 3552, 3542, 3550, 3550, 3553,
- 3534, 3555, 3539, 3557, 3558, 3556, 3543, 3544, 3561, 3563,
- 0, 3558, 3567, 3552, 3568, 3546, 3547, 3560, 3557, 3562,
- 3548, 3549, 3552, 3556, 3550, 3564, 3553, 3562, 3555, 3560,
- 3557, 3558, 3556, 3565, 3566, 3561, 3563, 3564, 3567, 3567,
- 3571, 3568, 3570, 3583, 3560, 3577, 3562, 3565, 3574, 3566,
- 3575, 3582, 3564, 3578, 3570, 3576, 3576, 3574, 3581, 3580,
- 3565, 3566, 3578, 0, 3582, 3583, 3588, 3571, 3584, 3570,
- 3583, 3577, 3577, 3586, 3575, 3574, 3584, 3575, 3582, 3585,
-
- 3578, 3589, 3576, 3580, 3586, 0, 3580, 3588, 3585, 3592,
- 3581, 3593, 3607, 3588, 3595, 3584, 3597, 3597, 3598, 3589,
- 3586, 3611, 3608, 3593, 3612, 3598, 3585, 3613, 3589, 3614,
- 3616, 3626, 3592, 3618, 3607, 3611, 3592, 3618, 3593, 3607,
- 3595, 3595, 3620, 3597, 3619, 3598, 3608, 3626, 3611, 3608,
- 3623, 3612, 3621, 3627, 3613, 3629, 3614, 3616, 3626, 3621,
- 3618, 3628, 3619, 3623, 3625, 3620, 3630, 3629, 3625, 3620,
- 3631, 3619, 0, 3632, 3633, 3627, 3634, 3623, 3636, 3621,
- 3627, 3632, 3629, 3633, 3631, 0, 3628, 3634, 3628, 3637,
- 3636, 3625, 3630, 3630, 3635, 3638, 3635, 3631, 3639, 3641,
-
- 3632, 3633, 3640, 3634, 3643, 3636, 3642, 3637, 3640, 3644,
- 3638, 3645, 3643, 3646, 3641, 3653, 3637, 3651, 3645, 3654,
- 3639, 3635, 3638, 3655, 3657, 3639, 3641, 3652, 3642, 3640,
- 3651, 3643, 3656, 3642, 3652, 3646, 3644, 3654, 3645, 3658,
- 3646, 3659, 3653, 3661, 3651, 3660, 3654, 3662, 0, 3659,
- 3655, 3657, 3660, 3663, 3652, 3664, 3668, 3664, 3656, 3656,
- 3666, 3665, 3669, 3667, 3670, 3690, 3658, 3661, 3659, 3662,
- 3661, 3668, 3660, 3665, 3662, 3663, 3667, 3672, 3671, 3673,
- 3663, 3674, 3664, 3668, 3669, 3671, 3676, 3677, 3665, 3669,
- 3667, 3670, 3666, 3678, 3679, 3681, 3686, 3690, 3687, 3677,
-
- 3683, 3678, 3691, 3689, 3672, 3671, 3673, 3681, 3674, 3683,
- 3688, 3689, 3693, 3676, 3677, 3692, 3695, 3696, 3698, 0,
- 3678, 3679, 3681, 3686, 3687, 3687, 3693, 3683, 3692, 3688,
- 3689, 3707, 3694, 0, 3691, 3703, 3706, 3688, 3695, 3693,
- 3694, 3703, 3692, 3695, 3696, 3698, 3704, 3710, 3709, 3706,
- 3712, 3713, 3711, 3704, 3707, 3709, 0, 3717, 3707, 3694,
- 3711, 3715, 3703, 3706, 3712, 3713, 3723, 3716, 3714, 3710,
- 3724, 3725, 3721, 3704, 3710, 3709, 3714, 3712, 3713, 3711,
- 3720, 3721, 3722, 3715, 3717, 3726, 3727, 3720, 3715, 3716,
- 3722, 0, 3724, 3723, 3716, 3714, 3728, 3724, 3729, 3721,
-
- 3731, 3733, 3730, 3725, 3734, 0, 3735, 3720, 3727, 3722,
- 3730, 3726, 3726, 3727, 3737, 3739, 3738, 0, 3728, 3740,
- 3729, 3742, 3741, 3728, 3738, 3729, 3734, 3740, 3733, 3730,
- 3741, 3734, 3731, 3735, 3744, 3739, 3743, 3737, 3746, 3748,
- 3750, 3737, 3739, 3738, 3743, 3753, 3740, 3751, 3744, 3741,
- 3752, 3749, 0, 3742, 3749, 3751, 3754, 3755, 3752, 3753,
- 3759, 3744, 3750, 3743, 3746, 3746, 3748, 3750, 3761, 3749,
- 3762, 3756, 3753, 3764, 3751, 3758, 3758, 3752, 3749, 3755,
- 3760, 3749, 3754, 3754, 3755, 3756, 3759, 3759, 3760, 3763,
- 3766, 3765, 3767, 3764, 3761, 3761, 3762, 3762, 3756, 3765,
-
- 3764, 3768, 3758, 3769, 3770, 3771, 3776, 3760, 0, 3785,
- 0, 3763, 3772, 3773, 3767, 3774, 3763, 3766, 3765, 3767,
- 3772, 3777, 3779, 3774, 3770, 3771, 3768, 3783, 3768, 3777,
- 3769, 3770, 3771, 3776, 3780, 3773, 3785, 3781, 3782, 3772,
- 3773, 3788, 3774, 3786, 3779, 3781, 3782, 3787, 3777, 3779,
- 3789, 3786, 3790, 3783, 3783, 3787, 3780, 3792, 3793, 3796,
- 3794, 3780, 3802, 3800, 3781, 3782, 3799, 3788, 3788, 3803,
- 3786, 3800, 3790, 0, 3787, 3801, 0, 3789, 0, 3790,
- 3794, 3796, 0, 3801, 3792, 3793, 3796, 3794, 3799, 3802,
- 3800, 0, 0, 3799, 0, 0, 3803, 0, 0, 0,
-
- 0, 0, 3801, 3807, 3807, 3807, 3807, 3807, 3807, 3807,
- 3808, 3808, 3808, 3808, 3808, 3808, 3808, 3809, 3809, 3809,
- 3809, 3809, 3809, 3809, 3810, 3810, 3810, 3810, 3810, 3810,
- 3810, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3812, 3812,
- 3812, 3812, 3812, 3812, 3812, 3813, 3813, 3813, 3813, 3813,
- 3813, 3813, 3815, 3815, 0, 3815, 3815, 3815, 3815, 3816,
- 3816, 0, 0, 0, 3816, 3816, 3817, 3817, 0, 0,
- 3817, 0, 3817, 3818, 0, 0, 0, 0, 0, 3818,
- 3819, 3819, 0, 0, 0, 3819, 3819, 3820, 0, 0,
- 0, 0, 0, 3820, 3821, 3821, 0, 3821, 3821, 3821,
-
- 3821, 3822, 0, 0, 0, 0, 0, 3822, 3823, 3823,
- 0, 0, 0, 3823, 3823, 3824, 3824, 0, 3824, 3824,
- 3824, 3824, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
- 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806
+ 371, 332, 333, 342, 337, 340, 343, 344, 336, 0,
+
+ 353, 347, 334, 334, 335, 336, 337, 340, 336, 339,
+ 338, 342, 339, 346, 343, 347, 346, 348, 350, 344,
+ 342, 352, 371, 350, 344, 336, 341, 353, 347, 349,
+ 349, 341, 348, 354, 341, 355, 354, 0, 360, 341,
+ 341, 341, 341, 354, 348, 352, 0, 355, 352, 341,
+ 350, 0, 356, 341, 349, 361, 349, 349, 341, 0,
+ 354, 341, 355, 354, 356, 360, 341, 341, 341, 341,
+ 345, 358, 345, 357, 357, 359, 0, 361, 362, 356,
+ 363, 367, 361, 357, 345, 345, 345, 366, 345, 358,
+ 364, 365, 364, 359, 345, 0, 367, 345, 358, 345,
+
+ 357, 357, 359, 365, 362, 362, 363, 363, 367, 366,
+ 370, 345, 345, 345, 366, 345, 368, 364, 365, 369,
+ 376, 372, 370, 372, 368, 0, 369, 374, 0, 375,
+ 0, 377, 372, 0, 374, 378, 379, 370, 379, 372,
+ 381, 378, 380, 368, 384, 0, 369, 372, 372, 383,
+ 372, 375, 376, 377, 374, 380, 375, 378, 377, 372,
+ 379, 382, 378, 379, 385, 379, 372, 383, 378, 380,
+ 384, 384, 381, 386, 382, 387, 383, 382, 0, 382,
+ 0, 391, 401, 390, 0, 382, 392, 401, 382, 408,
+ 390, 393, 0, 410, 410, 0, 385, 387, 392, 391,
+
+ 386, 382, 387, 393, 382, 391, 382, 388, 391, 388,
+ 390, 399, 394, 392, 401, 388, 396, 397, 393, 388,
+ 410, 408, 403, 399, 388, 394, 391, 388, 403, 400,
+ 397, 421, 396, 388, 388, 0, 388, 0, 399, 394,
+ 396, 0, 388, 396, 397, 402, 388, 400, 0, 403,
+ 0, 388, 402, 404, 388, 389, 400, 389, 406, 396,
+ 407, 404, 405, 421, 411, 0, 402, 422, 407, 409,
+ 389, 411, 402, 389, 405, 389, 406, 389, 409, 402,
+ 404, 389, 389, 415, 389, 406, 412, 407, 0, 405,
+ 415, 411, 413, 422, 422, 0, 409, 389, 0, 412,
+
+ 389, 413, 389, 0, 389, 398, 398, 414, 417, 418,
+ 415, 420, 424, 412, 416, 398, 398, 398, 398, 398,
+ 417, 416, 398, 420, 413, 414, 419, 424, 413, 414,
+ 398, 418, 398, 398, 414, 417, 418, 425, 420, 424,
+ 423, 416, 398, 398, 398, 398, 398, 423, 419, 398,
+ 425, 426, 414, 419, 427, 428, 427, 429, 430, 430,
+ 0, 431, 432, 433, 425, 434, 428, 423, 431, 432,
+ 436, 437, 435, 0, 433, 0, 434, 0, 441, 429,
+ 439, 427, 428, 426, 429, 435, 0, 430, 431, 432,
+ 433, 799, 434, 437, 440, 436, 443, 436, 437, 435,
+
+ 438, 438, 442, 439, 441, 441, 445, 439, 443, 440,
+ 442, 444, 452, 446, 449, 445, 450, 440, 438, 454,
+ 799, 440, 444, 443, 467, 438, 446, 438, 438, 442,
+ 447, 447, 451, 445, 450, 452, 440, 453, 444, 452,
+ 446, 455, 447, 450, 447, 438, 449, 455, 459, 447,
+ 458, 454, 456, 0, 451, 453, 467, 447, 447, 451,
+ 457, 0, 0, 0, 453, 461, 463, 0, 455, 447,
+ 459, 447, 448, 456, 458, 459, 462, 458, 464, 456,
+ 448, 448, 460, 457, 448, 448, 470, 457, 448, 460,
+ 462, 461, 461, 463, 448, 466, 465, 468, 470, 448,
+
+ 464, 0, 469, 462, 472, 464, 473, 448, 448, 460,
+ 465, 448, 448, 470, 471, 448, 0, 475, 479, 468,
+ 471, 466, 466, 465, 468, 469, 472, 474, 473, 469,
+ 476, 472, 475, 473, 477, 474, 478, 476, 481, 586,
+ 480, 471, 479, 477, 475, 479, 480, 482, 483, 484,
+ 486, 478, 485, 474, 474, 488, 491, 476, 492, 0,
+ 481, 477, 474, 478, 484, 481, 586, 480, 489, 482,
+ 0, 483, 486, 489, 482, 483, 484, 486, 485, 485,
+ 487, 488, 488, 494, 492, 492, 487, 495, 491, 494,
+ 496, 497, 498, 499, 500, 489, 496, 501, 498, 504,
+
+ 506, 500, 503, 527, 503, 508, 495, 487, 504, 497,
+ 494, 503, 501, 527, 495, 499, 505, 496, 497, 498,
+ 499, 500, 507, 505, 501, 510, 504, 509, 511, 503,
+ 527, 503, 506, 512, 515, 507, 516, 508, 514, 513,
+ 518, 517, 513, 505, 519, 509, 512, 515, 516, 507,
+ 511, 519, 520, 0, 509, 511, 523, 510, 513, 517,
+ 512, 515, 514, 516, 521, 514, 513, 522, 517, 513,
+ 524, 519, 518, 0, 529, 524, 520, 526, 523, 520,
+ 522, 528, 525, 523, 530, 532, 529, 521, 525, 537,
+ 0, 531, 539, 532, 522, 537, 521, 524, 536, 533,
+
+ 526, 529, 531, 528, 526, 536, 530, 0, 528, 525,
+ 538, 530, 532, 533, 521, 539, 537, 541, 531, 539,
+ 540, 0, 538, 554, 542, 536, 533, 534, 540, 0,
+ 554, 0, 534, 543, 534, 542, 545, 538, 547, 541,
+ 534, 547, 534, 0, 541, 534, 534, 540, 545, 547,
+ 554, 542, 534, 534, 534, 546, 543, 0, 544, 534,
+ 543, 534, 544, 545, 549, 547, 548, 534, 547, 534,
+ 551, 550, 534, 534, 549, 546, 552, 546, 555, 534,
+ 544, 551, 546, 550, 548, 544, 553, 0, 557, 544,
+ 553, 559, 556, 548, 556, 558, 549, 551, 550, 560,
+
+ 552, 549, 546, 552, 555, 555, 559, 558, 561, 562,
+ 564, 560, 565, 553, 557, 557, 563, 562, 559, 556,
+ 566, 563, 558, 568, 570, 571, 560, 573, 566, 567,
+ 565, 572, 564, 575, 561, 561, 562, 564, 574, 565,
+ 578, 567, 570, 563, 568, 575, 0, 566, 571, 576,
+ 568, 570, 571, 574, 572, 577, 567, 576, 572, 573,
+ 575, 579, 580, 581, 582, 574, 584, 583, 577, 584,
+ 587, 580, 578, 579, 589, 0, 576, 585, 582, 590,
+ 588, 592, 577, 591, 0, 594, 581, 593, 579, 580,
+ 581, 582, 583, 584, 583, 588, 585, 594, 591, 595,
+
+ 593, 596, 587, 600, 585, 592, 589, 588, 592, 597,
+ 591, 590, 594, 598, 593, 599, 597, 600, 601, 597,
+ 599, 595, 602, 604, 598, 596, 595, 597, 596, 605,
+ 600, 606, 607, 608, 615, 609, 597, 0, 608, 611,
+ 598, 613, 610, 597, 609, 601, 597, 599, 610, 602,
+ 612, 614, 616, 615, 611, 604, 605, 621, 606, 614,
+ 617, 615, 609, 613, 607, 608, 611, 618, 613, 610,
+ 620, 618, 619, 623, 612, 624, 616, 612, 614, 616,
+ 619, 622, 617, 625, 624, 626, 629, 617, 622, 621,
+ 627, 628, 629, 620, 618, 634, 623, 620, 626, 619,
+
+ 623, 630, 624, 628, 632, 625, 631, 635, 622, 636,
+ 625, 0, 626, 629, 631, 632, 627, 627, 628, 633,
+ 0, 639, 636, 630, 0, 645, 633, 634, 630, 635,
+ 637, 632, 638, 631, 635, 637, 636, 645, 637, 637,
+ 640, 638, 641, 644, 647, 0, 633, 639, 639, 640,
+ 642, 643, 645, 641, 637, 0, 644, 637, 649, 638,
+ 0, 648, 637, 651, 650, 637, 637, 640, 653, 641,
+ 644, 651, 642, 643, 652, 654, 647, 642, 643, 648,
+ 656, 659, 649, 655, 657, 649, 650, 650, 648, 656,
+ 651, 650, 653, 660, 655, 653, 652, 654, 658, 661,
+
+ 660, 652, 654, 659, 657, 662, 663, 656, 659, 664,
+ 655, 657, 658, 650, 663, 665, 666, 667, 670, 668,
+ 660, 665, 0, 662, 669, 658, 661, 671, 667, 666,
+ 676, 664, 662, 663, 672, 675, 664, 668, 674, 669,
+ 673, 673, 665, 666, 667, 680, 668, 677, 671, 674,
+ 670, 669, 676, 678, 671, 679, 677, 676, 672, 675,
+ 682, 672, 675, 681, 683, 674, 678, 680, 679, 673,
+ 684, 681, 680, 685, 677, 693, 686, 687, 686, 689,
+ 678, 690, 679, 688, 689, 702, 683, 691, 694, 0,
+ 681, 683, 682, 0, 688, 690, 694, 685, 692, 687,
+
+ 685, 691, 684, 686, 687, 692, 695, 693, 690, 696,
+ 688, 689, 692, 692, 691, 694, 697, 702, 698, 703,
+ 692, 699, 700, 697, 695, 692, 706, 707, 0, 707,
+ 0, 696, 692, 695, 703, 701, 696, 0, 708, 692,
+ 692, 699, 700, 697, 698, 698, 703, 704, 699, 700,
+ 701, 705, 706, 706, 707, 710, 705, 704, 709, 701,
+ 715, 711, 701, 708, 712, 708, 709, 711, 715, 704,
+ 713, 716, 714, 712, 704, 717, 719, 701, 716, 713,
+ 710, 714, 710, 705, 704, 709, 718, 715, 711, 720,
+ 721, 712, 723, 726, 719, 722, 724, 713, 716, 714,
+
+ 723, 720, 721, 719, 722, 724, 725, 717, 727, 718,
+ 0, 728, 729, 718, 733, 727, 720, 721, 725, 723,
+ 724, 730, 722, 724, 728, 726, 0, 729, 731, 730,
+ 0, 734, 724, 725, 731, 727, 732, 733, 728, 729,
+ 734, 733, 735, 736, 732, 737, 737, 0, 730, 738,
+ 0, 739, 736, 735, 737, 731, 743, 738, 734, 739,
+ 740, 741, 744, 732, 742, 746, 0, 747, 0, 735,
+ 736, 748, 737, 737, 741, 744, 738, 745, 739, 743,
+ 747, 746, 740, 743, 749, 745, 751, 740, 741, 744,
+ 742, 742, 746, 748, 747, 749, 752, 750, 748, 753,
+
+ 751, 760, 754, 755, 745, 750, 755, 759, 758, 756,
+ 757, 749, 761, 751, 764, 762, 752, 758, 765, 760,
+ 766, 753, 754, 752, 750, 761, 753, 759, 760, 754,
+ 755, 756, 757, 762, 759, 758, 756, 757, 763, 761,
+ 765, 767, 762, 768, 766, 765, 764, 766, 769, 770,
+ 771, 773, 774, 763, 772, 776, 768, 773, 777, 0,
+ 776, 770, 781, 775, 767, 763, 769, 772, 767, 0,
+ 768, 775, 784, 778, 771, 769, 770, 771, 773, 774,
+ 777, 772, 785, 0, 780, 777, 783, 776, 782, 775,
+ 775, 778, 780, 783, 781, 784, 782, 785, 775, 784,
+
+ 778, 786, 788, 786, 789, 787, 790, 0, 791, 785,
+ 792, 780, 792, 783, 787, 782, 809, 791, 793, 0,
+ 800, 803, 817, 789, 796, 793, 790, 809, 786, 0,
+ 800, 789, 787, 790, 788, 791, 796, 792, 804, 803,
+ 807, 813, 808, 809, 0, 793, 794, 800, 803, 794,
+ 806, 796, 810, 794, 817, 806, 794, 813, 811, 804,
+ 808, 807, 812, 794, 794, 804, 794, 807, 813, 808,
+ 820, 794, 814, 794, 815, 810, 794, 806, 0, 810,
+ 794, 814, 857, 794, 811, 811, 823, 815, 812, 812,
+ 794, 794, 820, 794, 821, 816, 0, 820, 819, 814,
+
+ 821, 815, 816, 822, 824, 819, 826, 824, 0, 823,
+ 827, 0, 822, 823, 857, 0, 0, 828, 827, 825,
+ 829, 821, 816, 818, 818, 819, 818, 0, 826, 818,
+ 822, 824, 829, 826, 818, 825, 830, 827, 830, 828,
+ 818, 818, 825, 818, 828, 831, 825, 829, 835, 818,
+ 818, 818, 832, 818, 833, 836, 818, 832, 0, 834,
+ 835, 818, 825, 830, 837, 838, 840, 818, 818, 831,
+ 818, 839, 831, 841, 833, 835, 842, 836, 0, 843,
+ 0, 833, 836, 863, 832, 834, 834, 838, 840, 844,
+ 837, 837, 838, 840, 843, 839, 845, 844, 839, 847,
+
+ 841, 842, 846, 842, 849, 848, 843, 847, 850, 846,
+ 851, 859, 852, 0, 853, 863, 844, 851, 854, 845,
+ 850, 855, 858, 845, 848, 852, 847, 854, 856, 846,
+ 849, 849, 848, 856, 862, 850, 855, 851, 859, 852,
+ 853, 853, 860, 864, 858, 854, 865, 860, 855, 858,
+ 866, 867, 864, 868, 865, 856, 862, 866, 869, 872,
+ 870, 862, 873, 0, 871, 874, 0, 875, 0, 876,
+ 864, 878, 877, 865, 860, 868, 875, 866, 872, 879,
+ 868, 877, 888, 867, 870, 871, 872, 870, 876, 873,
+ 869, 871, 874, 878, 875, 880, 876, 882, 878, 877,
+
+ 881, 884, 879, 883, 887, 885, 879, 886, 882, 881,
+ 889, 883, 890, 894, 888, 880, 894, 892, 893, 889,
+ 890, 895, 880, 885, 882, 896, 886, 881, 884, 0,
+ 883, 887, 885, 895, 886, 892, 893, 889, 897, 890,
+ 894, 899, 898, 902, 892, 893, 900, 896, 895, 901,
+ 903, 901, 896, 904, 905, 0, 897, 906, 904, 900,
+ 907, 902, 909, 899, 903, 897, 898, 905, 899, 898,
+ 902, 908, 907, 900, 914, 910, 901, 903, 910, 908,
+ 909, 905, 911, 906, 906, 904, 912, 907, 915, 909,
+ 916, 911, 917, 0, 912, 0, 916, 918, 908, 914,
+
+ 919, 914, 910, 918, 920, 921, 0, 924, 929, 911,
+ 912, 920, 921, 912, 917, 915, 925, 916, 922, 917,
+ 925, 912, 919, 922, 918, 924, 923, 919, 926, 927,
+ 930, 920, 921, 923, 924, 931, 928, 935, 927, 933,
+ 929, 932, 936, 925, 928, 922, 934, 933, 930, 938,
+ 931, 926, 932, 923, 937, 926, 927, 930, 935, 934,
+ 939, 936, 931, 928, 935, 941, 933, 937, 932, 936,
+ 940, 938, 941, 934, 0, 942, 938, 943, 940, 944,
+ 946, 937, 945, 947, 943, 946, 950, 939, 948, 945,
+ 951, 947, 941, 942, 949, 948, 953, 940, 944, 952,
+
+ 954, 949, 942, 956, 943, 957, 944, 946, 0, 945,
+ 947, 958, 952, 954, 961, 948, 955, 959, 950, 0,
+ 964, 949, 951, 955, 960, 959, 952, 954, 953, 963,
+ 965, 969, 960, 966, 958, 956, 961, 957, 958, 960,
+ 962, 961, 970, 955, 959, 967, 962, 968, 971, 970,
+ 0, 960, 964, 0, 967, 963, 963, 966, 973, 960,
+ 966, 968, 965, 969, 972, 975, 974, 962, 978, 970,
+ 975, 976, 967, 972, 968, 971, 977, 979, 983, 974,
+ 973, 974, 979, 976, 0, 973, 983, 982, 981, 980,
+ 974, 972, 0, 974, 978, 978, 980, 975, 976, 977,
+
+ 981, 1020, 994, 977, 979, 983, 974, 985, 974, 982,
+ 985, 986, 987, 989, 982, 981, 980, 991, 995, 990,
+ 0, 993, 0, 991, 986, 987, 990, 989, 994, 994,
+ 996, 997, 0, 1020, 985, 998, 0, 998, 986, 987,
+ 989, 995, 996, 993, 991, 995, 990, 992, 993, 992,
+ 999, 999, 1000, 992, 1001, 992, 0, 996, 997, 1003,
+ 992, 1002, 998, 1004, 1000, 992, 1005, 1001, 1004, 0,
+ 0, 992, 1003, 999, 992, 0, 992, 999, 999, 1000,
+ 992, 1001, 992, 1002, 1005, 1006, 1003, 992, 1002, 1008,
+ 1007, 0, 992, 1005, 1010, 1004, 1009, 1011, 1006, 1013,
+
+ 0, 1008, 1007, 1017, 1014, 0, 1009, 1012, 1022, 1010,
+ 1014, 1018, 1006, 1007, 1015, 1019, 1008, 1007, 1009, 1011,
+ 1012, 1010, 1016, 1009, 1011, 1017, 1013, 1015, 1021, 1007,
+ 1017, 1014, 1018, 1009, 1012, 1022, 1024, 1019, 1018, 1025,
+ 1016, 1015, 1019, 1026, 1025, 1027, 0, 1029, 1031, 1016,
+ 0, 1026, 1032, 0, 1027, 1030, 0, 1033, 0, 0,
+ 1021, 1031, 1029, 1034, 0, 1042, 1025, 1032, 1024, 1035,
+ 1026, 0, 1027, 1028, 1029, 1031, 1036, 1030, 1028, 1032,
+ 1028, 1038, 1030, 1033, 1033, 1034, 1028, 1039, 1035, 1036,
+ 1034, 1028, 1028, 1037, 1038, 1039, 1035, 1042, 1028, 1028,
+
+ 1028, 1040, 1043, 1036, 1037, 1028, 1041, 1028, 1038, 1040,
+ 1049, 1044, 1045, 1028, 1039, 1053, 1046, 1041, 1028, 1028,
+ 1037, 1045, 1047, 1048, 1043, 1028, 1044, 1046, 1040, 1043,
+ 1050, 1047, 1048, 1041, 1051, 1054, 1055, 1049, 1044, 1045,
+ 1057, 1051, 1056, 1046, 1055, 1058, 1059, 1053, 1060, 1047,
+ 1048, 1065, 1062, 1050, 1057, 1064, 1060, 1050, 1063, 1054,
+ 1066, 1051, 1054, 1055, 1056, 1071, 1064, 1057, 1059, 1056,
+ 1062, 1068, 1067, 1059, 1069, 1060, 1063, 1058, 1066, 1062,
+ 1067, 1069, 1064, 1065, 1070, 1063, 1076, 1066, 1072, 1073,
+ 1074, 1071, 1071, 1068, 1075, 1072, 1077, 1070, 1068, 1067,
+
+ 1078, 1069, 1086, 1080, 1073, 0, 1077, 1076, 1074, 1082,
+ 0, 1070, 1075, 1076, 1080, 1072, 1073, 1074, 1083, 1085,
+ 1087, 1075, 1082, 1077, 1084, 1083, 1084, 1088, 1087, 1089,
+ 1080, 1090, 1078, 1091, 1086, 1092, 1082, 1095, 1089, 1096,
+ 1088, 1085, 1098, 1090, 0, 1083, 1085, 1087, 1099, 1097,
+ 1100, 1084, 1101, 0, 1088, 1091, 1089, 1092, 1090, 1095,
+ 1091, 1096, 1092, 1102, 1095, 1110, 1096, 1097, 1098, 1098,
+ 1101, 1103, 1105, 1106, 1108, 1102, 1097, 1108, 1106, 1101,
+ 1099, 1109, 1100, 1105, 1111, 1103, 1114, 1112, 1118, 1110,
+ 1102, 1113, 1110, 1109, 1112, 1116, 1120, 1111, 1103, 1105,
+
+ 1108, 1108, 1113, 1115, 1108, 1106, 1114, 1117, 1109, 1116,
+ 1119, 1111, 1115, 1114, 1112, 1121, 1122, 1119, 1113, 1117,
+ 1118, 1125, 1116, 1123, 1128, 1126, 1127, 1121, 1120, 1130,
+ 1115, 0, 1127, 1129, 1117, 0, 1123, 1119, 1122, 1131,
+ 1130, 1132, 1121, 1122, 1134, 1133, 1128, 1125, 1125, 1126,
+ 1123, 1128, 1126, 1127, 1136, 1129, 1130, 1131, 1137, 1134,
+ 1129, 1138, 1140, 1132, 1139, 1141, 1131, 1133, 1132, 1137,
+ 1139, 1134, 1133, 1144, 1143, 1136, 1145, 1142, 1146, 1148,
+ 1151, 1136, 1138, 1143, 1149, 1137, 1148, 1146, 1138, 1152,
+ 1147, 1139, 1141, 1150, 1140, 1142, 1153, 1144, 1147, 1165,
+
+ 1144, 1143, 1145, 1145, 1142, 1146, 1148, 1150, 1149, 1154,
+ 1155, 1149, 1151, 1156, 1158, 1161, 1157, 1147, 0, 1163,
+ 1150, 1152, 1160, 1162, 1161, 1164, 1165, 1178, 1153, 0,
+ 1162, 1154, 1155, 1168, 1171, 1166, 1154, 1155, 1157, 1167,
+ 1170, 1172, 1161, 1157, 1160, 1156, 1158, 1164, 1170, 1160,
+ 1162, 1163, 1164, 1166, 1169, 1168, 1173, 1167, 1171, 1178,
+ 1168, 1171, 1166, 1169, 1174, 1172, 1167, 1170, 1172, 1175,
+ 1176, 1177, 1173, 1179, 1182, 1180, 1183, 1181, 1175, 1177,
+ 1184, 1169, 0, 1173, 1183, 1176, 1174, 1180, 0, 1194,
+ 0, 1174, 1189, 1184, 1185, 0, 1175, 1176, 1177, 1181,
+
+ 1208, 1182, 1180, 1183, 1181, 1179, 1186, 1184, 1188, 1185,
+ 1189, 1191, 1190, 1191, 1193, 1186, 1194, 1188, 1195, 1189,
+ 1190, 1185, 1193, 1198, 1196, 1197, 1203, 1200, 1206, 1202,
+ 1198, 1201, 1208, 1186, 1209, 1188, 0, 1195, 1191, 1190,
+ 1200, 1193, 1204, 1201, 1202, 1195, 1196, 1197, 1203, 1205,
+ 1198, 1196, 1197, 1203, 1200, 1206, 1202, 1207, 1201, 1210,
+ 1204, 1205, 1211, 1212, 1207, 0, 1209, 1213, 1215, 1204,
+ 1216, 1210, 0, 1211, 1214, 1218, 1205, 1217, 1221, 1220,
+ 1219, 1215, 1225, 1216, 1207, 1212, 1210, 1218, 1219, 1211,
+ 1212, 1227, 1213, 0, 1213, 1215, 1214, 1216, 1221, 1217,
+
+ 1222, 1214, 1218, 1220, 1217, 1221, 1220, 1219, 1223, 1225,
+ 1226, 1228, 1222, 1229, 1227, 1230, 1223, 1231, 1227, 1232,
+ 1228, 1235, 1234, 1226, 1231, 1229, 1237, 1222, 1232, 1236,
+ 1232, 0, 1238, 1232, 1240, 1223, 1230, 1226, 1228, 1248,
+ 1229, 1232, 1230, 0, 1231, 1234, 1232, 1235, 1235, 1234,
+ 1239, 1236, 1238, 1237, 1241, 1232, 1236, 1232, 1240, 1238,
+ 1232, 1240, 1241, 1239, 1242, 1243, 1245, 1246, 1249, 1247,
+ 1251, 1248, 1250, 1242, 1252, 1246, 1254, 1239, 1255, 0,
+ 1256, 1241, 1252, 1243, 1247, 1250, 1251, 1258, 1245, 1259,
+ 1249, 1242, 1243, 1245, 1246, 1249, 1247, 1251, 1261, 1250,
+
+ 1255, 1252, 1256, 1254, 1257, 1255, 1260, 1256, 1262, 1258,
+ 1261, 1257, 1259, 1263, 1258, 1265, 1259, 1264, 1266, 1267,
+ 1262, 1263, 1268, 1269, 1260, 1261, 1264, 1265, 1270, 1269,
+ 1268, 1257, 1273, 1260, 1267, 1262, 1271, 1270, 1266, 1272,
+ 1263, 1264, 1265, 1274, 1264, 1266, 1267, 1275, 1273, 1268,
+ 1269, 1272, 1277, 1264, 1275, 1270, 1278, 1271, 1276, 1273,
+ 1284, 1279, 1280, 1271, 1281, 1276, 1272, 1287, 1278, 1279,
+ 1277, 1282, 1281, 1282, 1275, 1274, 0, 1280, 1283, 1277,
+ 1285, 1288, 1289, 1278, 1290, 1276, 1292, 1285, 1279, 1280,
+ 1283, 1281, 1284, 1288, 1291, 1289, 1293, 1292, 1282, 1287,
+
+ 1294, 1291, 1296, 1290, 1299, 1283, 1297, 1285, 1288, 1289,
+ 1296, 1290, 1295, 1292, 1298, 1294, 1303, 1295, 1293, 1297,
+ 1301, 1291, 1308, 1293, 1302, 0, 0, 1294, 1298, 1296,
+ 1299, 1299, 1304, 1297, 1301, 0, 0, 1307, 1305, 1306,
+ 0, 1298, 1302, 1311, 1295, 1300, 1309, 1301, 1303, 1300,
+ 1317, 1302, 1300, 1300, 1308, 1307, 1310, 1300, 1304, 1304,
+ 1305, 1313, 1306, 1300, 1307, 1305, 1306, 1300, 1309, 1311,
+ 1311, 1300, 1300, 1309, 1318, 1312, 1300, 1316, 1310, 1300,
+ 1300, 1312, 1317, 1310, 1300, 1315, 1316, 1313, 1313, 1314,
+ 1300, 1314, 1315, 1319, 1300, 1323, 1320, 1322, 1321, 1325,
+
+ 1324, 1327, 1312, 1329, 1316, 1321, 1318, 1326, 1323, 1324,
+ 1328, 0, 1315, 1314, 1320, 1330, 1314, 1319, 1314, 1322,
+ 1319, 1353, 1323, 1320, 1322, 1321, 1329, 1324, 1326, 1330,
+ 1329, 1325, 1328, 1327, 1326, 1332, 1333, 1328, 1334, 1335,
+ 1335, 0, 1330, 1331, 1336, 0, 1338, 1339, 1331, 1333,
+ 1331, 1340, 1331, 1353, 1331, 0, 0, 1332, 1340, 1339,
+ 1336, 1331, 1332, 1333, 1334, 1334, 1342, 1341, 1335, 1338,
+ 1331, 1336, 1344, 1338, 1339, 1331, 1341, 1331, 1340, 1331,
+ 1343, 1331, 1345, 1346, 1342, 1343, 1347, 1349, 1346, 1348,
+ 1344, 1354, 1355, 1342, 1341, 1350, 1351, 0, 1352, 1344,
+
+ 1345, 1356, 1348, 1350, 1351, 1349, 1360, 1355, 1347, 1345,
+ 1346, 1352, 1343, 1347, 1349, 1358, 1348, 1354, 1354, 1355,
+ 1356, 1357, 1350, 1351, 1360, 1352, 1359, 1361, 1356, 1362,
+ 1363, 0, 1363, 1360, 1357, 1365, 1364, 1358, 1362, 1359,
+ 1366, 1367, 1358, 1368, 1369, 0, 0, 1361, 1357, 1371,
+ 1372, 1373, 1366, 1359, 1361, 1375, 1362, 1363, 1364, 1373,
+ 1377, 1374, 1365, 1364, 1378, 1368, 1383, 1366, 1367, 1369,
+ 1368, 1369, 1372, 1371, 1376, 1379, 1371, 1372, 1373, 1374,
+ 1380, 1376, 1375, 1381, 1385, 1386, 1380, 1377, 1374, 1381,
+ 1378, 1378, 1382, 1383, 1385, 1388, 1384, 1379, 1382, 1387,
+
+ 0, 1376, 1379, 1384, 1390, 1392, 1387, 1380, 1389, 1386,
+ 1381, 1385, 1386, 1391, 1392, 1394, 1395, 0, 1400, 1382,
+ 1396, 0, 1390, 1384, 1397, 0, 1387, 1388, 1395, 1402,
+ 1389, 1390, 1392, 1399, 1396, 1389, 1398, 1400, 1391, 1394,
+ 1391, 1404, 1394, 1395, 1401, 1400, 1397, 1396, 1403, 1398,
+ 1405, 1397, 1406, 1402, 1408, 1399, 1402, 1407, 1411, 1409,
+ 1399, 1406, 1412, 1398, 0, 1413, 1401, 1404, 1404, 1414,
+ 1403, 1401, 1405, 1409, 1408, 1403, 1415, 1405, 1407, 1406,
+ 1416, 1408, 1419, 1418, 1407, 1417, 1409, 1413, 1420, 1422,
+ 1411, 1414, 1413, 1417, 1412, 1420, 1414, 1423, 1416, 1418,
+
+ 1424, 1425, 1428, 1429, 1430, 1433, 1423, 1416, 1415, 1419,
+ 1418, 1422, 1417, 1425, 1426, 1420, 1422, 1424, 1427, 1436,
+ 1431, 1426, 1427, 1435, 1423, 1430, 1434, 1424, 1425, 1438,
+ 1435, 1430, 1434, 1437, 1428, 1429, 1431, 1433, 1441, 1434,
+ 1437, 1426, 1439, 1440, 1438, 1427, 1443, 1431, 1443, 1444,
+ 1435, 1436, 1440, 1434, 1442, 1439, 1438, 1445, 1444, 1434,
+ 1437, 1442, 1446, 1447, 1441, 1441, 1449, 1451, 1448, 1439,
+ 1440, 1446, 1448, 1443, 1452, 1451, 1444, 1453, 1455, 1445,
+ 1456, 1442, 1453, 1454, 1445, 1457, 1461, 1452, 1449, 1446,
+ 1447, 1458, 1454, 1449, 1451, 1448, 1455, 1460, 1457, 1456,
+
+ 1460, 1452, 1463, 1458, 1461, 1455, 1462, 1456, 1459, 1453,
+ 1454, 1459, 1457, 1461, 1465, 1463, 1466, 1468, 1458, 1460,
+ 1459, 1467, 1468, 1471, 1460, 1472, 1469, 1460, 1487, 1463,
+ 1507, 1462, 1471, 1462, 1469, 1459, 1473, 1467, 1459, 1466,
+ 1470, 1470, 1474, 1466, 1476, 1475, 1465, 1472, 1467, 1468,
+ 1471, 1476, 1472, 1469, 1475, 1477, 1481, 1480, 1473, 1478,
+ 1487, 1483, 1507, 1473, 1474, 1481, 1478, 1470, 1484, 1474,
+ 1480, 1476, 1475, 1486, 0, 1488, 1482, 1477, 0, 1491,
+ 1485, 1486, 1477, 1481, 1480, 1482, 1478, 1483, 1483, 1485,
+ 1488, 1484, 1491, 1489, 1495, 1484, 1492, 1490, 1493, 1496,
+
+ 1486, 1494, 1488, 1482, 1489, 1490, 1491, 1485, 1492, 1494,
+ 1493, 1497, 1500, 1498, 1499, 1508, 1495, 1501, 1500, 1496,
+ 1489, 1495, 1498, 1492, 1490, 1493, 1496, 1499, 1494, 1502,
+ 1503, 1504, 1509, 1497, 1506, 1501, 1505, 1511, 1497, 1500,
+ 1498, 1499, 1503, 1505, 1501, 1509, 1510, 1508, 1512, 1504,
+ 1516, 1513, 1515, 1517, 1518, 1502, 1502, 1503, 1504, 1509,
+ 1506, 1506, 1513, 1505, 1511, 1514, 0, 1519, 1522, 1512,
+ 1520, 1514, 1510, 1510, 1515, 1512, 1523, 0, 1513, 1515,
+ 1524, 1525, 1516, 1530, 1529, 1517, 1518, 1526, 1527, 1520,
+ 1525, 1520, 1514, 1519, 1519, 1522, 1520, 1520, 1524, 1523,
+
+ 1528, 1527, 1526, 1523, 1529, 1532, 1531, 1524, 1525, 1530,
+ 1530, 1529, 1528, 1531, 1526, 1527, 1520, 1533, 1520, 1538,
+ 1535, 1534, 1539, 1543, 1532, 1536, 1537, 1528, 1535, 1539,
+ 1536, 1537, 1532, 1531, 1534, 1540, 1548, 1541, 1544, 1533,
+ 0, 1543, 1538, 1542, 1533, 1541, 1538, 1535, 1534, 1539,
+ 1543, 1542, 1546, 1554, 1549, 1545, 0, 1536, 1537, 1546,
+ 1544, 1540, 1540, 1545, 1541, 1544, 1547, 1551, 1548, 1550,
+ 1542, 1552, 1553, 1553, 1551, 1547, 1549, 1557, 1550, 1546,
+ 1555, 1549, 1545, 1552, 1556, 1554, 1559, 1558, 1555, 1560,
+ 1564, 0, 1561, 1547, 1551, 1558, 1550, 1560, 1552, 1553,
+
+ 1561, 1567, 1562, 1564, 1559, 1556, 1566, 1555, 1568, 1557,
+ 1562, 1556, 1563, 1559, 1558, 1565, 1560, 1564, 1566, 1561,
+ 1563, 1565, 1569, 1570, 1572, 1571, 1573, 1567, 1567, 1562,
+ 1569, 1570, 1568, 1566, 1574, 1568, 1575, 0, 0, 1563,
+ 1571, 1576, 1565, 0, 1578, 1577, 1579, 1588, 1584, 1569,
+ 1570, 1572, 1571, 1573, 1583, 1576, 1574, 1577, 1582, 1575,
+ 1579, 1574, 1578, 1575, 1585, 1580, 1589, 1582, 1576, 1580,
+ 1584, 1578, 1577, 1579, 1588, 1584, 1585, 1586, 1583, 1590,
+ 1593, 1583, 1580, 1587, 1586, 1582, 1591, 1592, 1589, 0,
+ 1580, 1585, 1580, 1589, 1587, 1594, 1580, 1595, 1591, 1597,
+
+ 1596, 1592, 1602, 1599, 1586, 1601, 1597, 1598, 1600, 1580,
+ 1587, 1590, 1593, 1591, 1592, 1600, 1598, 1594, 1606, 1604,
+ 1595, 1599, 1594, 1596, 1595, 1607, 1597, 1596, 1604, 1602,
+ 1599, 1607, 1608, 1610, 1598, 1600, 1609, 1601, 0, 1613,
+ 1611, 0, 1616, 0, 1615, 1617, 1604, 1611, 0, 1618,
+ 1606, 1621, 1607, 1619, 1608, 1622, 1617, 1626, 1632, 1608,
+ 1618, 1622, 1609, 1609, 1619, 1610, 1613, 1611, 1615, 1616,
+ 1623, 1615, 1617, 1624, 1625, 1621, 1618, 1623, 1621, 1628,
+ 1619, 1625, 1622, 1626, 1626, 1628, 1627, 1629, 1630, 1631,
+ 1632, 1624, 1633, 1634, 1635, 1629, 1636, 1623, 1627, 1639,
+
+ 1624, 1625, 1631, 1635, 1644, 1637, 1628, 1637, 1636, 1640,
+ 1630, 1634, 1642, 1627, 1629, 1630, 1631, 1638, 1633, 1633,
+ 1634, 1635, 1640, 1636, 1638, 1639, 1639, 1645, 1641, 1643,
+ 1650, 1644, 1637, 1646, 1642, 1647, 1640, 1641, 1648, 1642,
+ 1646, 1643, 1653, 1648, 1638, 1649, 1650, 1651, 1655, 1656,
+ 1645, 1652, 1657, 1649, 1645, 1641, 1643, 1650, 1658, 1652,
+ 1646, 1647, 1647, 0, 1653, 1648, 1657, 0, 1660, 1653,
+ 1651, 1659, 1649, 1656, 1651, 1655, 1656, 1660, 1652, 1657,
+ 1658, 1661, 1659, 1662, 1662, 1658, 1663, 1664, 1665, 1664,
+ 1666, 1662, 1671, 1668, 1661, 1660, 1667, 1669, 1659, 1663,
+
+ 1668, 1670, 1677, 1672, 1669, 1673, 1665, 0, 1661, 1670,
+ 1662, 1662, 1675, 1663, 1664, 1665, 1666, 1666, 1667, 1671,
+ 1668, 1672, 1674, 1667, 1669, 1676, 1678, 1673, 1670, 1674,
+ 1672, 1679, 1673, 1678, 1677, 1680, 0, 1675, 1682, 1675,
+ 1683, 0, 1684, 1686, 1688, 1689, 1685, 1676, 1689, 1674,
+ 1684, 1682, 1676, 1678, 1685, 1690, 1695, 1680, 1691, 1693,
+ 1701, 1692, 1680, 1679, 1686, 1682, 1688, 1683, 1693, 1684,
+ 1686, 1688, 1689, 1685, 1692, 1694, 0, 1696, 1698, 0,
+ 1695, 1690, 1690, 1695, 1691, 1691, 1693, 1694, 1692, 1697,
+ 1699, 1700, 1701, 1698, 1700, 0, 1703, 1699, 1697, 1709,
+
+ 1702, 1705, 1694, 1696, 1696, 1698, 1700, 1706, 1707, 1711,
+ 1707, 1710, 1703, 1708, 1710, 1700, 1697, 1699, 1700, 1705,
+ 1703, 1700, 1702, 1703, 1712, 1713, 1709, 1702, 1705, 1706,
+ 0, 1714, 1716, 1700, 1706, 1707, 1715, 1708, 1710, 1703,
+ 1708, 1711, 1719, 1717, 1722, 1718, 1720, 1713, 1721, 1723,
+ 1724, 1719, 1713, 1725, 1720, 1721, 1712, 1714, 1714, 1718,
+ 1727, 1726, 1715, 1715, 1716, 1717, 1730, 1729, 1722, 1719,
+ 1717, 1722, 1718, 1720, 1728, 1721, 1731, 1732, 1728, 1734,
+ 1733, 1723, 1724, 1726, 0, 1725, 1732, 1733, 1726, 1729,
+ 0, 1734, 1727, 1730, 1729, 1736, 1737, 1735, 1731, 1738,
+
+ 1739, 1728, 1736, 1731, 1732, 1735, 1734, 1733, 1740, 1737,
+ 1742, 1743, 1738, 1739, 1741, 1747, 1741, 1740, 1749, 1745,
+ 1744, 1750, 1736, 1737, 1735, 1748, 1738, 1739, 1744, 0,
+ 1747, 1756, 1749, 1742, 0, 1740, 1743, 1742, 1743, 1745,
+ 1748, 1741, 1747, 1751, 1752, 1749, 1745, 1744, 1754, 1753,
+ 1751, 0, 1748, 1750, 1755, 1752, 1753, 1756, 1756, 1757,
+ 1759, 1754, 1760, 1761, 1762, 0, 1763, 0, 1764, 1760,
+ 1751, 1752, 1755, 1767, 0, 1754, 1753, 1757, 1755, 1762,
+ 1764, 1755, 1767, 1765, 1768, 1761, 1757, 1759, 1770, 1760,
+ 1761, 1762, 1763, 1763, 1766, 1764, 1765, 1766, 1772, 1755,
+
+ 1767, 1769, 1768, 1778, 1771, 1776, 1779, 1771, 1770, 1772,
+ 1765, 1768, 1774, 1769, 1776, 1770, 1777, 1774, 1777, 1780,
+ 1781, 1766, 1771, 0, 1774, 1772, 1783, 1778, 1769, 1782,
+ 1778, 1771, 1776, 1779, 1771, 1781, 1784, 1785, 1782, 1774,
+ 1786, 1789, 0, 1777, 1774, 1800, 1780, 1781, 1786, 1787,
+ 1783, 1785, 1788, 1783, 1790, 1791, 1782, 1794, 1792, 1793,
+ 1790, 1795, 1799, 1784, 1785, 1789, 1792, 1786, 1789, 1795,
+ 1793, 1787, 1800, 1798, 1788, 1794, 1787, 1791, 0, 1788,
+ 1796, 1790, 1791, 1796, 1794, 1792, 1793, 1797, 1795, 1801,
+ 1797, 1798, 1802, 1804, 1799, 1805, 1813, 1803, 1796, 1802,
+
+ 1798, 1806, 1804, 1808, 0, 1813, 1809, 1796, 1805, 1801,
+ 1796, 1803, 1806, 1807, 1797, 1812, 1801, 1812, 1807, 1802,
+ 1804, 1809, 1805, 1813, 1803, 1808, 1814, 1815, 1806, 1816,
+ 1808, 1817, 0, 1809, 1818, 0, 1819, 1824, 1818, 1823,
+ 1816, 1820, 1812, 1824, 1820, 1807, 1822, 1821, 1823, 1817,
+ 1819, 1815, 1814, 1814, 1815, 1833, 1816, 1836, 1817, 1820,
+ 1818, 1818, 1819, 1819, 1824, 1818, 1823, 1825, 1820, 1821,
+ 1826, 1820, 1822, 1822, 1821, 1826, 1825, 1819, 1828, 1830,
+ 1829, 1831, 1832, 1835, 1830, 0, 1838, 1833, 1834, 1836,
+ 1837, 1828, 1829, 1839, 1825, 1832, 0, 1834, 1845, 1838,
+
+ 1840, 1844, 1826, 1831, 1842, 1828, 1830, 1829, 1831, 1832,
+ 1835, 1842, 1837, 1838, 1844, 1834, 1843, 1837, 1846, 1848,
+ 1847, 1840, 1850, 1843, 0, 1839, 1847, 1840, 1844, 1852,
+ 1845, 1842, 1846, 1855, 1853, 1856, 1857, 1852, 1854, 1864,
+ 1859, 1850, 1853, 1843, 1847, 1846, 1854, 1847, 1865, 1850,
+ 1858, 1848, 1855, 1847, 1857, 1860, 1852, 1856, 1859, 1861,
+ 1855, 1853, 1856, 1857, 1858, 1854, 1862, 1859, 1863, 1860,
+ 1866, 1864, 1861, 1867, 1868, 1870, 1869, 1858, 1872, 1862,
+ 1865, 1874, 1860, 1869, 1870, 1873, 1861, 1867, 1871, 1863,
+ 0, 1879, 0, 1862, 1866, 1863, 1871, 1866, 1877, 1873,
+
+ 1867, 1868, 1870, 1869, 1875, 1872, 1876, 1877, 1882, 1875,
+ 1884, 1881, 1873, 1874, 1880, 1871, 1863, 1876, 1879, 1883,
+ 1885, 1880, 1886, 1887, 1891, 1877, 1883, 1887, 1889, 1894,
+ 1882, 1875, 1884, 1876, 1881, 1882, 1890, 1884, 1881, 1898,
+ 1886, 1880, 1885, 1892, 1889, 1893, 1883, 1885, 1891, 1886,
+ 1887, 1891, 1895, 1896, 1890, 1889, 1894, 1893, 1892, 1897,
+ 1895, 1899, 1900, 1890, 1901, 1908, 1898, 1897, 1896, 1904,
+ 1892, 1912, 1893, 1906, 0, 1900, 1904, 1902, 1903, 1895,
+ 1896, 1906, 1911, 1899, 1901, 1915, 1897, 1907, 1899, 1900,
+ 1910, 1901, 1902, 1903, 1907, 1909, 1904, 1908, 1912, 1910,
+
+ 1906, 1913, 1917, 1911, 1902, 1903, 1914, 1918, 1919, 1911,
+ 1909, 1920, 1915, 1914, 1907, 1921, 0, 1910, 0, 1922,
+ 1923, 1941, 1909, 1925, 1917, 1913, 1919, 1924, 1913, 1917,
+ 1925, 1926, 1927, 1914, 1922, 1919, 1926, 1931, 1929, 1918,
+ 1928, 1927, 1921, 1920, 1930, 1923, 1922, 1923, 1932, 1928,
+ 1925, 1924, 1934, 1941, 1924, 1931, 1933, 0, 1926, 1927,
+ 1929, 0, 1938, 1932, 1931, 1929, 1930, 1928, 1933, 1935,
+ 1936, 1930, 1940, 1937, 1934, 1932, 1939, 1936, 1945, 1934,
+ 1937, 1944, 1935, 1933, 1938, 1942, 1945, 1935, 1939, 1938,
+ 1946, 1942, 1944, 1947, 1948, 1937, 1935, 1936, 1946, 1940,
+
+ 1937, 1948, 1949, 1939, 1947, 1945, 1951, 1937, 1944, 1935,
+ 1952, 1950, 1942, 1950, 1953, 1954, 1955, 1946, 1956, 1957,
+ 1947, 1948, 1954, 1960, 1950, 1957, 1961, 1949, 1958, 1949,
+ 1959, 1962, 1951, 1951, 1958, 1963, 1959, 1952, 1950, 1965,
+ 1950, 1953, 1954, 1955, 1956, 1956, 1957, 1966, 1967, 1961,
+ 1960, 1969, 1971, 1961, 1968, 1958, 1966, 1959, 1968, 1963,
+ 1972, 1973, 1963, 1962, 1970, 1975, 1970, 1974, 1973, 1977,
+ 1976, 1965, 0, 1969, 1966, 1977, 1971, 1978, 1969, 1971,
+ 1967, 1968, 1976, 1979, 1982, 1980, 1981, 1972, 1973, 1974,
+ 1987, 1970, 1975, 1993, 1974, 0, 1977, 1976, 1993, 1978,
+
+ 1983, 1983, 1983, 0, 1978, 1979, 2003, 1983, 1981, 1985,
+ 1979, 1980, 1980, 1981, 1984, 1983, 1982, 1986, 1985, 1988,
+ 1990, 1984, 1987, 1989, 1986, 1993, 1988, 1983, 1983, 1983,
+ 1989, 1991, 1994, 2003, 1983, 1996, 1985, 1995, 1997, 1998,
+ 1990, 1984, 1999, 2000, 1986, 1994, 1988, 1990, 2001, 1995,
+ 1989, 1998, 2005, 1991, 1997, 2001, 2008, 2002, 1991, 1994,
+ 1996, 2000, 1996, 2002, 1995, 1997, 1998, 2004, 2004, 2006,
+ 2000, 2009, 2007, 2010, 1999, 2001, 2006, 2007, 2005, 2005,
+ 2011, 2014, 2008, 2008, 2002, 2016, 2015, 2011, 2015, 2019,
+ 2020, 2018, 2023, 2021, 2004, 2019, 2006, 2024, 2009, 2007,
+
+ 2010, 2021, 2026, 2016, 2022, 2023, 2027, 2011, 2014, 2018,
+ 2028, 2025, 2016, 2015, 2026, 2022, 2019, 2025, 2018, 2023,
+ 2021, 2030, 2020, 2031, 2024, 2033, 2027, 2035, 2028, 2026,
+ 2037, 2022, 0, 2027, 2029, 2029, 2033, 2028, 2025, 2032,
+ 2032, 2036, 2038, 2040, 2039, 2041, 2043, 2030, 2030, 2038,
+ 2031, 2044, 2033, 2045, 2043, 2046, 0, 2050, 2047, 2035,
+ 2057, 2029, 2037, 2036, 2039, 2050, 2032, 2048, 2036, 2038,
+ 2041, 2039, 2041, 2043, 2049, 2040, 2047, 2046, 2051, 2048,
+ 2045, 2049, 2046, 2044, 2050, 2047, 2053, 2054, 2052, 2055,
+ 2055, 2056, 2057, 2058, 2048, 2059, 2054, 2060, 2067, 2061,
+
+ 0, 2049, 2051, 2052, 2060, 2051, 2062, 0, 2058, 2066,
+ 2053, 2061, 2064, 2053, 2054, 2052, 2055, 2056, 2056, 2064,
+ 2058, 2073, 2062, 2065, 2060, 2067, 2061, 2059, 2065, 2062,
+ 2069, 2066, 2068, 2062, 2070, 2068, 2066, 2072, 2069, 2064,
+ 2074, 2075, 2076, 2077, 2073, 2072, 2070, 2078, 2073, 2062,
+ 2065, 2081, 2079, 0, 0, 2084, 0, 2069, 2089, 2068,
+ 2076, 2070, 2075, 2084, 2072, 2078, 2074, 2074, 2075, 2076,
+ 2077, 2080, 2083, 2085, 2078, 2079, 2080, 2082, 2081, 2079,
+ 2090, 2086, 2084, 2082, 2087, 2083, 2088, 2080, 2086, 2090,
+ 2089, 2087, 2092, 2088, 2091, 2085, 2093, 2094, 2080, 2083,
+
+ 2085, 2095, 2096, 2080, 2082, 2102, 2091, 2090, 2086, 2100,
+ 2093, 2087, 2098, 2088, 2092, 2099, 2100, 2104, 2101, 2092,
+ 2099, 2091, 2106, 2093, 2094, 2096, 2108, 2095, 2095, 2096,
+ 2098, 2099, 2102, 2105, 2109, 2109, 2100, 2110, 2105, 2098,
+ 2101, 2111, 2099, 2112, 2104, 2101, 2115, 2099, 0, 2119,
+ 2117, 2114, 2116, 2118, 2106, 2118, 2111, 2120, 2108, 2110,
+ 2121, 2109, 2120, 2122, 2110, 2105, 2114, 2116, 2111, 2115,
+ 2126, 2139, 2125, 2115, 2123, 2112, 2117, 2117, 2114, 2116,
+ 2118, 2119, 2123, 2128, 2120, 2126, 2124, 2129, 2132, 2130,
+ 2122, 2134, 2121, 2124, 2125, 2129, 2133, 2126, 2128, 2125,
+
+ 2135, 2123, 2136, 2139, 2140, 2138, 2141, 2137, 2143, 2142,
+ 2128, 2130, 2138, 2124, 2129, 2132, 2130, 2134, 2134, 2137,
+ 2133, 2145, 2146, 2133, 2149, 2140, 2143, 2135, 2141, 2136,
+ 2142, 2140, 2138, 2141, 2137, 2143, 2142, 2148, 2150, 0,
+ 2151, 2153, 2154, 2145, 2156, 0, 2161, 2149, 2145, 2146,
+ 2155, 2149, 2157, 2150, 2158, 2162, 2153, 2154, 2159, 2160,
+ 2163, 2148, 2162, 2168, 2148, 2150, 2151, 2151, 2153, 2154,
+ 2157, 2156, 2155, 2161, 2166, 2164, 2158, 2155, 2163, 2157,
+ 2159, 2158, 2162, 2160, 2164, 2159, 2160, 2163, 2165, 2167,
+ 2169, 2170, 2172, 2178, 2171, 2168, 2165, 2166, 2175, 2169,
+
+ 2178, 2166, 2164, 2171, 2176, 2172, 2177, 2175, 2179, 2170,
+ 2180, 2167, 2174, 2187, 2181, 2165, 2167, 2169, 2170, 2172,
+ 2178, 2171, 2176, 2174, 2177, 2175, 2182, 2183, 2180, 2181,
+ 2184, 2176, 2182, 2177, 2179, 2179, 2189, 2180, 2174, 2174,
+ 2187, 2181, 2198, 2194, 2184, 2190, 2202, 2191, 2192, 2183,
+ 2174, 2195, 2196, 2182, 2183, 2194, 2190, 2184, 2191, 2192,
+ 2189, 2197, 2199, 2189, 2195, 2205, 2200, 2201, 2198, 2198,
+ 2194, 2197, 2190, 2202, 2191, 2192, 2201, 2203, 2195, 2200,
+ 2206, 2208, 2209, 2210, 2196, 2208, 2211, 2199, 2197, 2199,
+ 2212, 2214, 2205, 2200, 2201, 2213, 2203, 2215, 2214, 2211,
+
+ 2213, 2218, 2254, 2209, 2203, 0, 2206, 2206, 2208, 2209,
+ 2212, 2216, 2219, 2211, 2217, 2210, 2218, 2212, 2214, 2216,
+ 2217, 2220, 2213, 2215, 2215, 2221, 2223, 2219, 2218, 2222,
+ 2222, 2224, 2226, 2220, 2254, 0, 2226, 2216, 2216, 2219,
+ 2221, 2217, 2225, 2224, 2223, 2230, 2216, 2225, 2220, 2230,
+ 2227, 2227, 2221, 2223, 2227, 2229, 2222, 2232, 2224, 2226,
+ 2233, 2231, 2229, 2234, 2236, 2235, 2237, 2227, 0, 2233,
+ 2234, 2240, 2230, 2237, 2225, 2227, 2231, 2227, 2227, 2239,
+ 2242, 2227, 2229, 2243, 2232, 0, 2236, 2233, 2231, 2235,
+ 2234, 2236, 2235, 2237, 2227, 2241, 2240, 2246, 2240, 2248,
+
+ 2249, 2239, 2242, 2243, 2241, 2250, 2239, 2242, 2248, 2251,
+ 2243, 2252, 2257, 2259, 2253, 2246, 2255, 2258, 2249, 2252,
+ 2250, 2253, 2241, 2255, 2246, 2261, 2248, 2249, 2260, 2260,
+ 2258, 2262, 2250, 2269, 2251, 2264, 2251, 2257, 2252, 2257,
+ 2259, 2253, 2265, 2255, 2258, 2266, 2268, 2261, 2270, 2271,
+ 2267, 2272, 2261, 2268, 2266, 2260, 2262, 2264, 2262, 2267,
+ 2276, 2274, 2264, 2271, 2265, 2269, 2272, 2278, 2276, 2265,
+ 2270, 2277, 2266, 2268, 2273, 2270, 2271, 2267, 2272, 2273,
+ 2274, 2279, 2278, 2280, 2277, 2281, 2283, 2276, 2274, 2284,
+ 2282, 2286, 2285, 2283, 2278, 2287, 2288, 2290, 2277, 2352,
+
+ 0, 2281, 2282, 2292, 2287, 2291, 2273, 2289, 2279, 2280,
+ 2280, 2293, 2281, 2283, 2285, 2289, 2286, 2282, 2286, 2285,
+ 2291, 2284, 2287, 2294, 2290, 2295, 2289, 2296, 2288, 2292,
+ 2292, 2352, 2291, 2298, 2289, 2304, 2296, 2293, 2293, 2300,
+ 2299, 2294, 2289, 2299, 2302, 2301, 2303, 2295, 2305, 2302,
+ 2294, 2301, 2295, 2304, 2296, 2307, 2298, 2309, 2299, 2308,
+ 2298, 2303, 2304, 2305, 2300, 2310, 2300, 2299, 2315, 2307,
+ 2299, 2312, 2301, 2303, 2308, 2305, 2302, 2313, 2320, 2309,
+ 2320, 2314, 2307, 2319, 2309, 2312, 2308, 2310, 2316, 2313,
+ 2321, 2317, 2310, 2318, 2319, 2315, 2313, 2316, 2312, 2314,
+
+ 2317, 2322, 2318, 2321, 2313, 2320, 2325, 2323, 2314, 2326,
+ 2319, 0, 2327, 2322, 2330, 2316, 2313, 2321, 2317, 2327,
+ 2318, 2325, 2328, 2329, 2326, 2334, 2331, 2336, 2322, 2323,
+ 2338, 2339, 2330, 2325, 2323, 2331, 2326, 2341, 2334, 2327,
+ 2339, 2330, 2338, 2337, 2328, 2329, 2334, 2337, 2336, 2328,
+ 2329, 2342, 2334, 2331, 2336, 2341, 2343, 2338, 2339, 2340,
+ 2344, 2340, 2345, 2348, 2341, 2334, 2349, 2346, 2347, 2351,
+ 2337, 2345, 2355, 2356, 2343, 2346, 2353, 2351, 2342, 2354,
+ 2349, 2353, 2357, 2343, 2354, 2348, 2340, 2344, 2359, 2345,
+ 2348, 2347, 2360, 2349, 2346, 2347, 2351, 2364, 2372, 2360,
+
+ 2365, 2363, 2366, 2353, 2355, 2356, 2357, 2359, 2367, 2357,
+ 2363, 2354, 2368, 2370, 2365, 2359, 2369, 2376, 0, 2360,
+ 2366, 2373, 2370, 2374, 2364, 2365, 2365, 2365, 2363, 2366,
+ 2372, 2369, 2375, 2373, 2377, 2367, 2378, 2380, 2368, 2368,
+ 2370, 2365, 2381, 2369, 2376, 2374, 2383, 2382, 2373, 2381,
+ 2374, 2388, 2365, 2383, 2386, 2385, 2377, 2385, 2375, 2375,
+ 2380, 2377, 2387, 2388, 2380, 2389, 2387, 2395, 2378, 2381,
+ 2382, 2390, 2391, 2383, 2382, 2393, 2386, 2392, 2388, 2397,
+ 2390, 2386, 2385, 2391, 2392, 2394, 2396, 2389, 2398, 2387,
+ 2394, 2397, 2389, 2402, 2395, 2403, 2399, 2393, 2390, 2391,
+
+ 2400, 2400, 2393, 2403, 2392, 2399, 2397, 2401, 2402, 2396,
+ 2398, 2404, 2394, 2396, 2405, 2398, 2401, 2406, 2407, 0,
+ 2402, 2409, 2403, 2399, 2410, 0, 2406, 2400, 2405, 2411,
+ 2416, 2412, 2410, 2404, 2401, 2415, 2416, 2411, 2404, 2412,
+ 2409, 2405, 2413, 2415, 2406, 2407, 2413, 2414, 2409, 2417,
+ 2414, 2410, 2419, 2418, 2420, 2422, 2411, 2416, 2412, 2418,
+ 2425, 2424, 2415, 0, 2417, 2427, 2429, 2422, 2426, 2413,
+ 2428, 2432, 2430, 2425, 2414, 2424, 2417, 2428, 2431, 2437,
+ 2418, 2436, 2422, 2434, 2419, 2432, 2420, 2425, 2424, 2426,
+ 2427, 2438, 2427, 2429, 2430, 2426, 2434, 2428, 2432, 2430,
+
+ 2433, 2435, 2431, 2433, 2439, 2431, 2437, 2436, 2436, 2440,
+ 2434, 2441, 2442, 0, 2443, 2435, 2438, 2443, 2438, 2445,
+ 2447, 2440, 2446, 2441, 2448, 0, 2442, 2433, 2435, 2450,
+ 2451, 2439, 2447, 2452, 2449, 2455, 2440, 2449, 2441, 2442,
+ 2443, 2443, 2455, 2454, 2443, 2458, 2445, 2447, 2446, 2446,
+ 2448, 2448, 2449, 2457, 2459, 2452, 2450, 2451, 2461, 2456,
+ 2452, 2449, 2455, 2460, 2449, 2454, 2456, 2462, 2457, 2463,
+ 2454, 2460, 2458, 2465, 2466, 2464, 2462, 2467, 2468, 2469,
+ 2457, 2459, 2470, 2471, 2472, 2461, 2456, 2464, 0, 2477,
+ 2460, 2468, 2476, 2471, 2462, 2465, 2463, 2469, 2479, 2473,
+
+ 2465, 2466, 2464, 2482, 2467, 2468, 2469, 2474, 2470, 2470,
+ 2471, 2472, 2473, 2478, 2476, 2474, 2477, 2481, 2480, 2476,
+ 2485, 2478, 2483, 2486, 2482, 2479, 2473, 2480, 2484, 2487,
+ 2482, 2486, 2488, 2493, 2474, 2492, 2490, 0, 0, 2481,
+ 2478, 2487, 0, 2484, 2481, 2480, 2483, 2485, 2490, 2483,
+ 2486, 2495, 2491, 2499, 2484, 2484, 2487, 2488, 2495, 2488,
+ 2491, 2496, 2492, 2490, 2497, 2493, 2500, 2501, 2497, 2498,
+ 2484, 2504, 0, 2496, 2503, 2501, 2499, 2502, 2495, 2491,
+ 2499, 2498, 2507, 2504, 2514, 2514, 2505, 2509, 2496, 0,
+ 2510, 2497, 2520, 2500, 2501, 2508, 2498, 2503, 2504, 2502,
+
+ 2505, 2503, 2508, 2510, 2502, 2515, 2511, 2509, 2513, 2507,
+ 2512, 2514, 2505, 2505, 2509, 2511, 2516, 2510, 0, 2512,
+ 2513, 2517, 2508, 2518, 2520, 0, 2521, 2505, 0, 2522,
+ 2523, 2515, 2515, 2511, 2516, 2513, 2524, 2512, 2518, 2529,
+ 2518, 2521, 2525, 2516, 2525, 2526, 2517, 2518, 2517, 2527,
+ 2518, 2522, 2523, 2521, 0, 2527, 2522, 2523, 2524, 2526,
+ 2528, 2529, 2532, 2524, 2533, 2518, 2529, 2518, 2534, 2525,
+ 2530, 2530, 2526, 2535, 2536, 2537, 2527, 2538, 2528, 2540,
+ 0, 2539, 0, 2538, 2532, 2535, 2533, 2528, 2541, 2532,
+ 2534, 2533, 2542, 2539, 2543, 2534, 2543, 2530, 2544, 2545,
+
+ 2535, 2554, 2546, 0, 2538, 2552, 2536, 2537, 2539, 2546,
+ 2541, 2540, 2544, 2547, 2542, 2541, 2548, 2549, 2550, 2542,
+ 2551, 2543, 2553, 2545, 2554, 2544, 2545, 0, 2554, 2546,
+ 2561, 2547, 2556, 2551, 2548, 2549, 2550, 2552, 2559, 2556,
+ 2547, 2558, 2563, 2548, 2549, 2550, 2560, 2551, 2558, 2562,
+ 0, 2564, 2565, 2570, 2553, 2571, 2559, 2562, 0, 2556,
+ 2563, 0, 2561, 0, 2566, 2559, 2566, 2571, 2558, 2563,
+ 2568, 2566, 2560, 2560, 2565, 2562, 2562, 2564, 2564, 2565,
+ 2570, 2568, 2571, 2569, 2562, 2572, 2573, 2575, 2576, 2577,
+ 2578, 2566, 0, 2566, 2569, 2580, 2581, 2568, 2584, 2576,
+
+ 2582, 2577, 2575, 2572, 2585, 2578, 2583, 2582, 2573, 2586,
+ 2569, 2588, 2572, 2573, 2575, 2576, 2577, 2578, 2581, 2580,
+ 2589, 2583, 2580, 2581, 2590, 2584, 2591, 2582, 2592, 2594,
+ 2593, 2585, 2595, 2583, 2597, 2586, 2586, 2596, 2588, 2598,
+ 2601, 2600, 2599, 2603, 2589, 2595, 2590, 2589, 2593, 2597,
+ 2599, 2590, 2598, 2605, 2606, 2607, 2594, 2593, 2591, 2595,
+ 2592, 2597, 2602, 2596, 2596, 2603, 2598, 2600, 2600, 2599,
+ 2603, 2608, 2601, 2609, 2610, 2602, 2605, 2612, 2606, 2611,
+ 2605, 2606, 2607, 2614, 2612, 2613, 0, 2617, 2615, 2602,
+ 3486, 3486, 2610, 2608, 2621, 2609, 2618, 2611, 2608, 2622,
+
+ 2609, 2610, 2615, 2618, 2612, 2624, 2611, 2621, 2613, 2617,
+ 2614, 2619, 2613, 2620, 2617, 2615, 2625, 2623, 2619, 3486,
+ 2620, 2621, 2622, 2618, 2623, 2626, 2622, 2624, 2627, 0,
+ 2628, 2630, 2624, 2629, 2634, 2631, 2636, 2632, 2619, 2630,
+ 2620, 2633, 2629, 2631, 2623, 2638, 2626, 2633, 2625, 2639,
+ 2640, 2636, 2626, 2642, 2627, 2627, 2628, 2628, 2630, 2632,
+ 2629, 2634, 2631, 2636, 2632, 2637, 2641, 2638, 2633, 2644,
+ 2646, 2647, 2638, 2648, 0, 2660, 2637, 2649, 2642, 2650,
+ 2642, 2639, 2640, 2646, 2647, 2641, 2652, 2644, 2654, 2662,
+ 2653, 2659, 2637, 2641, 2655, 2655, 2644, 2646, 2647, 2648,
+
+ 2648, 2649, 2653, 2656, 2649, 2650, 2650, 2660, 2661, 2663,
+ 2652, 2666, 2654, 2652, 2659, 2654, 2662, 2653, 2659, 2668,
+ 2670, 2655, 2674, 2661, 2675, 2675, 2671, 2663, 2668, 2656,
+ 2656, 2676, 2679, 2670, 2680, 2661, 2663, 2671, 2666, 2677,
+ 2676, 2681, 2683, 2685, 2674, 2677, 2668, 2670, 0, 2674,
+ 2686, 2675, 2687, 2671, 2679, 2696, 2680, 2686, 2676, 2679,
+ 2688, 2680, 2689, 2690, 2692, 2694, 2677, 2689, 2681, 2683,
+ 2693, 2688, 2692, 2695, 2701, 2685, 2705, 2686, 2687, 2687,
+ 2694, 2699, 2696, 2700, 2698, 2690, 2703, 2688, 2695, 2689,
+ 2690, 2692, 2694, 2702, 2693, 2698, 2707, 2693, 2703, 2699,
+
+ 2695, 2706, 2702, 2705, 2700, 2710, 2701, 2708, 2699, 2712,
+ 2700, 2698, 2713, 2703, 2710, 2708, 2709, 2709, 2714, 2716,
+ 2702, 2707, 2715, 2707, 2709, 2706, 2718, 2717, 2706, 2720,
+ 2719, 2715, 2710, 0, 2708, 2712, 2712, 2716, 2721, 2713,
+ 2714, 2717, 2720, 2709, 2709, 2714, 2716, 2722, 2718, 2715,
+ 2723, 2721, 2724, 2718, 2717, 2719, 2720, 2719, 2726, 2724,
+ 2725, 2727, 2722, 2728, 2729, 2721, 2730, 2725, 2731, 2732,
+ 0, 0, 2723, 2733, 2722, 2728, 0, 2723, 2736, 2724,
+ 2726, 2735, 2739, 2734, 2732, 2726, 2737, 2725, 2727, 2738,
+ 2728, 2729, 2734, 2730, 2740, 2731, 2732, 2739, 2733, 2741,
+
+ 2733, 2740, 2745, 2735, 2736, 2736, 2747, 2748, 2735, 2739,
+ 2734, 2742, 2737, 2737, 2741, 2738, 2738, 2743, 2742, 2744,
+ 2746, 2740, 2750, 2743, 2749, 2752, 2741, 2751, 2746, 2745,
+ 2744, 2755, 2754, 2747, 2748, 2753, 2756, 2758, 2742, 2754,
+ 2749, 2757, 2751, 2756, 2743, 2752, 2744, 2746, 2757, 2750,
+ 2753, 2749, 2752, 2755, 2751, 2759, 2760, 2763, 2755, 2754,
+ 2761, 2761, 2753, 2756, 2758, 2762, 2764, 2765, 2757, 2764,
+ 2766, 2763, 2762, 2759, 2767, 2766, 2768, 0, 2769, 0,
+ 2765, 2776, 2759, 2760, 2763, 0, 2771, 2761, 2770, 2782,
+ 2772, 2768, 2762, 2764, 2765, 2778, 2780, 2766, 2771, 2767,
+
+ 2774, 2767, 2772, 2768, 2769, 2769, 2770, 2775, 2776, 2774,
+ 2777, 2779, 2775, 2771, 2777, 2770, 2782, 2772, 2780, 2778,
+ 2781, 2783, 2778, 2780, 2779, 2784, 2790, 2774, 2787, 0,
+ 2789, 2792, 2793, 2791, 2775, 2790, 2795, 2777, 2779, 2792,
+ 2797, 2796, 2781, 2795, 2793, 2797, 2799, 2781, 2783, 2791,
+ 2796, 2784, 2784, 2790, 2787, 2787, 2789, 2789, 2792, 2793,
+ 2791, 2801, 2798, 2795, 2799, 2800, 2803, 2797, 2796, 2798,
+ 2802, 2804, 2800, 2799, 2805, 2803, 2807, 2802, 2808, 2810,
+ 2804, 2809, 0, 2812, 2810, 2815, 2801, 2816, 2801, 2798,
+ 0, 2811, 2800, 2803, 2809, 2814, 2816, 2802, 2804, 2807,
+
+ 2805, 2805, 2817, 2807, 2819, 2808, 2810, 2818, 2809, 2811,
+ 2812, 2817, 2815, 2814, 2816, 2820, 2818, 2821, 2811, 2822,
+ 2825, 2823, 2814, 2835, 2819, 2824, 2821, 2820, 2822, 2817,
+ 2826, 2819, 2823, 2824, 2818, 2827, 2828, 2831, 2829, 2833,
+ 2830, 2834, 2820, 2825, 2821, 2829, 2822, 2825, 2823, 2830,
+ 2826, 2836, 2824, 2841, 2842, 2835, 0, 2826, 2831, 2838,
+ 2836, 2837, 2827, 2828, 2831, 2829, 2833, 2830, 2834, 2839,
+ 2837, 2838, 2840, 2850, 2846, 2841, 2843, 2839, 2836, 2847,
+ 2841, 2842, 2844, 2843, 2845, 2840, 2838, 2848, 2837, 2844,
+ 2846, 2845, 2851, 2849, 2848, 2847, 2839, 2852, 2850, 2840,
+
+ 2850, 2846, 2853, 2843, 2855, 2857, 2847, 0, 2858, 2844,
+ 2859, 2845, 2855, 0, 2848, 2849, 2858, 2861, 2863, 2851,
+ 2849, 2860, 2852, 2857, 2852, 2859, 2862, 2864, 2860, 2853,
+ 2865, 2855, 2857, 2862, 2864, 2858, 2868, 2859, 2865, 2861,
+ 2863, 2869, 2870, 2868, 2861, 2863, 2871, 2872, 2860, 2873,
+ 2869, 2874, 2876, 2862, 2864, 2875, 0, 2865, 2873, 2872,
+ 2877, 0, 2882, 2868, 2876, 2879, 2870, 2881, 2869, 2870,
+ 2883, 2875, 2880, 2871, 2872, 2887, 2873, 2879, 2874, 2876,
+ 2892, 2884, 2875, 2877, 2880, 2882, 2886, 2877, 2881, 2882,
+ 2890, 2894, 2879, 2888, 2881, 2884, 2889, 2883, 2886, 2880,
+
+ 2888, 2895, 2887, 2891, 2889, 2897, 2894, 2892, 2884, 2890,
+ 2891, 2896, 2898, 2886, 2899, 2900, 0, 2890, 2894, 2895,
+ 2888, 2901, 2899, 2889, 2903, 2904, 2902, 2906, 2895, 2905,
+ 2891, 2897, 2897, 2912, 2896, 2903, 2905, 2915, 2896, 2898,
+ 2904, 2899, 2900, 2901, 2902, 2913, 2922, 2916, 2901, 2908,
+ 2919, 2903, 2904, 2902, 2906, 2908, 2905, 2914, 2953, 2912,
+ 2912, 2916, 2914, 2913, 2915, 2917, 2918, 2920, 2919, 2921,
+ 2924, 2923, 2913, 2922, 2916, 2926, 2908, 2919, 2923, 2917,
+ 2918, 2929, 2924, 2931, 2914, 2920, 2932, 2921, 2934, 2933,
+ 2953, 0, 2917, 2918, 2920, 2937, 2921, 2924, 2923, 2932,
+
+ 2936, 2935, 2926, 2929, 2941, 2931, 2944, 2934, 2929, 2935,
+ 2931, 2933, 2939, 2932, 2937, 2934, 2933, 2943, 2936, 2942,
+ 2945, 2946, 2937, 2948, 2939, 2949, 2941, 2936, 2935, 2943,
+ 2947, 2941, 2950, 2944, 2954, 0, 2956, 2959, 2947, 2939,
+ 2951, 2942, 2952, 2946, 2943, 2949, 2942, 2945, 2946, 2951,
+ 2948, 2952, 2949, 2957, 2950, 2958, 2954, 2947, 2960, 2950,
+ 2963, 2954, 2956, 2956, 2959, 2957, 2964, 2951, 2965, 2952,
+ 2966, 0, 2967, 2969, 2963, 2966, 2968, 2958, 2970, 2972,
+ 2957, 2971, 2958, 2977, 2974, 2960, 2969, 2963, 2978, 2973,
+ 2975, 2976, 2965, 2964, 2967, 2965, 2974, 2976, 2968, 2967,
+
+ 2969, 2972, 2966, 2968, 2971, 2979, 2972, 2973, 2971, 2975,
+ 2970, 2974, 2981, 2980, 2983, 2977, 2973, 2975, 2976, 0,
+ 2978, 2984, 2985, 2987, 0, 2989, 0, 2979, 2980, 2990,
+ 2993, 2991, 2979, 2992, 2983, 2996, 2994, 2995, 2987, 2981,
+ 2980, 2983, 2992, 2984, 2993, 2998, 2985, 2989, 2984, 2985,
+ 2987, 2990, 2989, 2991, 2994, 2995, 2990, 2993, 2991, 2997,
+ 2992, 2996, 2996, 2994, 2995, 2999, 3002, 3003, 2998, 3004,
+ 3007, 3010, 2998, 3008, 3009, 3002, 3011, 2997, 3007, 3010,
+ 3008, 3009, 3012, 3013, 0, 3017, 2997, 2999, 3015, 3016,
+ 3004, 3013, 2999, 3002, 3021, 3019, 3004, 3007, 3010, 3003,
+
+ 3008, 3009, 3012, 3011, 3030, 3018, 3015, 3016, 3020, 3012,
+ 3013, 3017, 3017, 3019, 3027, 3015, 3016, 3018, 3022, 3024,
+ 3020, 3021, 3019, 3026, 3028, 3029, 3022, 3029, 3031, 3033,
+ 3026, 3024, 3018, 3034, 3032, 3020, 3030, 3027, 3033, 3035,
+ 3036, 3027, 3032, 0, 3040, 3022, 3024, 3037, 3038, 3037,
+ 3026, 3028, 3029, 3043, 3041, 3044, 3033, 3045, 0, 3036,
+ 3031, 3032, 3040, 3046, 3047, 3034, 3035, 3036, 3041, 3048,
+ 3038, 3040, 3046, 3051, 3037, 3038, 3049, 3047, 3052, 3044,
+ 3045, 3041, 3044, 3054, 3045, 3043, 3056, 3052, 3049, 3055,
+ 3046, 3047, 3057, 3055, 3059, 3060, 3048, 3062, 3061, 3051,
+
+ 3051, 3064, 3066, 3049, 3067, 3052, 3069, 3072, 3068, 3066,
+ 3054, 3069, 3070, 3056, 3072, 3062, 3055, 3075, 3060, 3057,
+ 3061, 3059, 3060, 3068, 3062, 3061, 3067, 3070, 3064, 3066,
+ 3073, 3067, 3077, 3074, 3072, 3068, 3078, 3073, 3069, 3070,
+ 3074, 3079, 3080, 3075, 3075, 3084, 3085, 3081, 3082, 3087,
+ 3088, 0, 3089, 3090, 3092, 3085, 3087, 3073, 3091, 3077,
+ 3074, 3081, 3082, 3078, 3097, 3096, 3080, 3098, 3079, 3080,
+ 3091, 3095, 3084, 3085, 3081, 3082, 3087, 3088, 3089, 3089,
+ 3090, 3092, 3093, 3094, 3095, 3091, 3101, 3109, 3104, 3102,
+ 3098, 3097, 3094, 3104, 3098, 3105, 3093, 3096, 3095, 3105,
+
+ 3106, 3107, 3108, 3110, 3112, 3110, 3117, 3106, 3107, 3093,
+ 3094, 3102, 3111, 3118, 3115, 3120, 3102, 3120, 3101, 3109,
+ 3104, 3121, 3105, 3108, 3122, 3117, 0, 3106, 3107, 3108,
+ 3110, 3112, 3124, 3117, 3128, 3111, 3115, 3118, 3125, 3111,
+ 3118, 3115, 3120, 3123, 3123, 3121, 3210, 3125, 3121, 3126,
+ 3122, 3122, 3135, 3123, 3124, 3127, 3126, 3135, 3132, 3124,
+ 3129, 3128, 3131, 0, 3130, 3125, 3132, 3133, 3127, 3136,
+ 3123, 3123, 3130, 3129, 3136, 3131, 3126, 3138, 3210, 3139,
+ 0, 3140, 3127, 3141, 3135, 3132, 3133, 3129, 3130, 3131,
+ 3137, 3130, 3142, 3145, 3133, 3143, 3146, 0, 3137, 3130,
+
+ 3144, 3136, 0, 3146, 3138, 3139, 3139, 3140, 3140, 3141,
+ 3141, 3144, 3147, 3147, 3148, 3145, 3149, 3137, 3142, 3142,
+ 3145, 3143, 3143, 3146, 3150, 3151, 3152, 3144, 3154, 3149,
+ 3155, 3153, 3148, 3151, 3158, 3154, 3159, 3155, 3156, 3147,
+ 3160, 3148, 3161, 3149, 3162, 3156, 3150, 3163, 3152, 3153,
+ 3164, 3150, 3151, 3152, 3161, 3154, 3167, 3155, 3153, 3168,
+ 3169, 3158, 3170, 3159, 3160, 3156, 3165, 3160, 3163, 3161,
+ 3172, 3162, 3164, 3173, 3163, 3165, 3174, 3164, 3175, 3168,
+ 3176, 3177, 3180, 3167, 3170, 3181, 3168, 3169, 3182, 3170,
+ 3185, 3173, 3179, 3165, 3174, 3183, 3184, 3172, 3176, 3177,
+
+ 3173, 3179, 3186, 3174, 3184, 3175, 3185, 3176, 3177, 3180,
+ 3190, 3182, 3181, 3183, 3186, 3182, 3188, 3185, 3187, 3179,
+ 3191, 3188, 3183, 3184, 3190, 3187, 3192, 3194, 3198, 3186,
+ 3199, 3200, 3202, 3203, 3204, 3207, 3204, 3190, 3191, 3194,
+ 3208, 3211, 3205, 3220, 3200, 3187, 3203, 3191, 3188, 3192,
+ 3198, 3205, 3209, 3192, 3194, 3198, 3211, 3199, 3200, 3202,
+ 3203, 3204, 3207, 3215, 3216, 3215, 3217, 3208, 3211, 3205,
+ 3209, 3219, 3222, 3226, 3224, 3220, 0, 3236, 3219, 3209,
+ 3224, 3227, 0, 3228, 3217, 3231, 3216, 3222, 3229, 3233,
+ 3215, 3216, 3237, 3217, 3238, 3226, 0, 3232, 3219, 3222,
+
+ 3226, 3224, 3233, 3227, 3236, 3239, 3229, 3231, 3227, 3228,
+ 3228, 3232, 3231, 0, 3234, 3229, 3233, 3234, 3240, 3237,
+ 3241, 3238, 3244, 3239, 3232, 3240, 3242, 0, 3241, 3245,
+ 3246, 3247, 3239, 3248, 3249, 3253, 3254, 3250, 3254, 3255,
+ 3234, 3234, 3248, 3250, 3234, 3240, 3251, 3241, 3242, 3249,
+ 3252, 3245, 3246, 3242, 3244, 3257, 3245, 3246, 3247, 3252,
+ 3248, 3249, 3258, 3254, 3250, 3259, 3255, 3253, 3251, 3260,
+ 3267, 3261, 0, 3251, 3262, 3273, 3263, 3252, 3257, 3261,
+ 3269, 3272, 3257, 3265, 3258, 3270, 3262, 3259, 3263, 3258,
+ 3265, 3271, 3259, 3273, 3269, 3260, 3260, 3267, 3261, 3270,
+
+ 3274, 3262, 3273, 3263, 3272, 3271, 3275, 3269, 3272, 3276,
+ 3265, 3274, 3270, 3277, 3275, 3278, 3279, 3282, 3271, 3280,
+ 3281, 3284, 3278, 3279, 3283, 3283, 3282, 3274, 3276, 3285,
+ 3293, 3286, 3289, 3275, 3292, 3277, 3276, 3289, 3281, 3286,
+ 3277, 3290, 3278, 3279, 3282, 3280, 3280, 3281, 3284, 3294,
+ 3298, 3283, 3300, 3296, 3290, 3292, 3285, 3293, 3286, 3296,
+ 3301, 3292, 3303, 3300, 3289, 3308, 3305, 3304, 3290, 3312,
+ 3311, 3301, 3310, 3312, 3309, 0, 3294, 3298, 3304, 3300,
+ 3296, 3309, 3313, 3314, 3303, 3316, 3320, 3301, 3305, 3303,
+ 3310, 3314, 3308, 3305, 3304, 3317, 3312, 3318, 3319, 3310,
+
+ 3322, 3309, 3311, 3325, 3326, 3318, 3331, 3319, 3317, 3313,
+ 3314, 3316, 3316, 3320, 3324, 3329, 3330, 3330, 3332, 3335,
+ 3329, 3324, 3317, 3334, 3318, 3319, 3326, 3333, 3336, 3337,
+ 3334, 3326, 3322, 3331, 3339, 3325, 3343, 3341, 3335, 3333,
+ 3340, 3324, 3329, 3330, 3336, 3332, 3335, 3337, 3340, 3344,
+ 3334, 3338, 3341, 3342, 3333, 3336, 3337, 3345, 3338, 3346,
+ 3342, 3344, 3347, 3343, 3341, 3335, 3339, 3340, 3352, 3353,
+ 3351, 3354, 3355, 3356, 0, 3352, 3344, 3360, 3338, 3362,
+ 3342, 3345, 3357, 3346, 3345, 3351, 3346, 3362, 3347, 3347,
+ 3359, 3357, 3361, 3363, 3365, 3352, 3355, 3351, 3354, 3355,
+
+ 3367, 3353, 3371, 3376, 3360, 3356, 3362, 3368, 3374, 3357,
+ 3364, 3364, 3359, 3377, 3361, 3367, 3368, 3359, 3370, 3361,
+ 3364, 3365, 3369, 3372, 3369, 3363, 3374, 3367, 3373, 3371,
+ 3376, 3372, 3370, 3378, 3368, 3374, 3379, 3364, 3364, 3373,
+ 3377, 3380, 3381, 3382, 3383, 3370, 3384, 3385, 3386, 3369,
+ 3372, 3393, 3387, 3389, 3380, 3373, 3388, 3388, 3379, 3390,
+ 3378, 3394, 3396, 3379, 3381, 3385, 3387, 3397, 3380, 3381,
+ 3382, 3383, 3394, 3384, 3385, 3386, 3400, 3402, 3393, 3387,
+ 3406, 3390, 3402, 3388, 3400, 3389, 3390, 3403, 3394, 3396,
+ 3404, 3405, 3403, 3408, 3397, 3411, 3405, 3410, 3404, 3409,
+
+ 3409, 3414, 3413, 3400, 3402, 3410, 3406, 3406, 3411, 3413,
+ 3415, 3416, 3417, 3420, 3403, 3427, 3419, 3404, 3405, 3414,
+ 3408, 3427, 3411, 3421, 3410, 3419, 3409, 3423, 3414, 3413,
+ 3421, 3424, 3422, 3428, 3430, 3417, 0, 3415, 3416, 3417,
+ 3422, 3431, 3427, 3419, 3432, 3420, 3433, 3434, 3435, 3423,
+ 3421, 0, 3436, 3424, 3423, 3437, 0, 3432, 3424, 3422,
+ 3428, 3430, 3434, 3431, 3439, 3441, 3440, 3435, 3431, 3442,
+ 3444, 3432, 3441, 3443, 3434, 3435, 3442, 3437, 3433, 3436,
+ 3445, 3448, 3437, 3447, 3455, 3444, 3460, 3439, 3440, 3448,
+ 3455, 3439, 3441, 3440, 3452, 3443, 3442, 3444, 3449, 3450,
+
+ 3443, 3445, 3447, 3452, 3453, 3449, 3450, 3445, 3448, 0,
+ 3447, 3455, 3454, 3454, 3456, 3453, 3458, 3459, 3460, 3465,
+ 3461, 3452, 3454, 3463, 3459, 3449, 3450, 3464, 3469, 3470,
+ 3463, 3453, 3477, 3465, 3471, 3480, 3456, 3475, 3458, 3454,
+ 3454, 3456, 3461, 3458, 3459, 3478, 3465, 3461, 3485, 3475,
+ 3463, 3464, 3479, 3482, 3464, 3469, 3470, 3471, 3488, 3477,
+ 3479, 3471, 3480, 3490, 3475, 3482, 3492, 3478, 3487, 3487,
+ 3489, 3489, 3478, 3493, 3494, 3485, 3496, 3499, 3495, 3479,
+ 3482, 3500, 3504, 0, 0, 3488, 3490, 3495, 3492, 3496,
+ 3490, 3493, 3503, 3492, 3509, 3501, 3509, 3487, 3510, 3489,
+
+ 3493, 3494, 3501, 3496, 3499, 3495, 3502, 3500, 3500, 3504,
+ 3506, 3505, 3511, 3502, 3503, 3513, 3512, 3506, 3510, 3503,
+ 3505, 3509, 3501, 3515, 3516, 3510, 3517, 3513, 3519, 3518,
+ 3520, 3521, 3515, 3502, 3512, 3511, 3522, 3506, 3505, 3511,
+ 3523, 3524, 3513, 3512, 3524, 3526, 3516, 3518, 3522, 3528,
+ 3515, 3516, 3530, 3517, 3519, 3519, 3518, 3520, 3521, 3524,
+ 3525, 3528, 3523, 3522, 3527, 3525, 3527, 3523, 3524, 3529,
+ 3532, 3524, 3531, 3533, 3530, 3529, 3528, 3526, 3532, 3530,
+ 3534, 3535, 3536, 3537, 3539, 0, 3538, 3542, 3543, 3545,
+ 3550, 3527, 3525, 3551, 3531, 3548, 3529, 3532, 3538, 3531,
+
+ 3533, 3543, 3535, 3546, 3548, 3552, 3539, 3553, 3535, 3536,
+ 3537, 3539, 3534, 3538, 3542, 3543, 3545, 3550, 3555, 3556,
+ 3551, 3546, 3548, 3557, 3558, 3559, 3559, 3562, 3564, 3561,
+ 3546, 3565, 3552, 3566, 3553, 3567, 3570, 3572, 0, 0,
+ 3577, 3569, 3567, 3576, 0, 3555, 3556, 3561, 3566, 3565,
+ 3557, 3558, 3559, 3569, 3562, 3564, 3561, 3571, 3565, 3573,
+ 3566, 3574, 3567, 3570, 3572, 3571, 3575, 3577, 3569, 3576,
+ 3576, 3573, 3580, 3579, 3583, 3574, 3585, 3585, 3584, 0,
+ 3586, 3575, 3587, 3583, 3571, 3579, 3573, 3589, 3574, 3590,
+ 3592, 3587, 0, 3575, 0, 3591, 3593, 0, 3598, 3580,
+
+ 3579, 3583, 3584, 3585, 3593, 3584, 3586, 3586, 3591, 3587,
+ 3594, 3589, 3592, 3595, 3589, 3597, 3598, 3592, 3601, 3594,
+ 3602, 3590, 3591, 3593, 3595, 3598, 3604, 3606, 3606, 3616,
+ 0, 3607, 3602, 3617, 3620, 3621, 3597, 3594, 3607, 3622,
+ 3595, 3601, 3597, 3623, 3625, 3601, 3627, 3602, 3620, 3628,
+ 3627, 3616, 3604, 3604, 3606, 3629, 3616, 3617, 3607, 3634,
+ 3617, 3620, 3621, 3634, 3632, 3630, 3622, 3628, 3635, 0,
+ 3623, 3625, 3630, 3627, 3636, 3637, 3628, 3632, 3629, 3639,
+ 3640, 3638, 3629, 3644, 3635, 3644, 3634, 3643, 0, 3641,
+ 3642, 3632, 3630, 3638, 3640, 3635, 3636, 3641, 3643, 3642,
+
+ 3637, 3636, 3637, 3645, 3646, 3639, 3639, 3640, 3638, 3647,
+ 3644, 3648, 3649, 3650, 3643, 3645, 3641, 3642, 3649, 3651,
+ 3653, 3652, 3646, 3655, 3647, 3654, 3662, 3661, 3650, 3652,
+ 3645, 3646, 3654, 3648, 3661, 3664, 3647, 3665, 3648, 3649,
+ 3650, 3651, 3660, 3663, 3666, 3655, 3651, 3653, 3652, 3667,
+ 3655, 3668, 3654, 3662, 3661, 3660, 3670, 3671, 3669, 3668,
+ 3672, 3663, 3664, 3665, 3665, 3669, 3673, 3675, 3673, 3660,
+ 3663, 3666, 0, 3678, 3674, 3676, 3667, 3677, 3668, 3671,
+ 3670, 3679, 3672, 3670, 3671, 3669, 3674, 3672, 3676, 3680,
+ 3681, 3682, 3677, 3673, 3683, 3678, 3680, 3685, 3686, 3675,
+
+ 3678, 3674, 3676, 3687, 3677, 3688, 3692, 3690, 3679, 3695,
+ 3686, 3687, 3696, 3699, 3700, 3692, 3680, 3681, 3682, 3690,
+ 3698, 3683, 3697, 3702, 3685, 3686, 3704, 3701, 3698, 3705,
+ 3687, 3707, 3688, 3692, 3690, 3703, 3695, 3702, 3696, 3696,
+ 3701, 3697, 3715, 3703, 3716, 3699, 3700, 3698, 3704, 3697,
+ 3702, 3712, 3713, 3704, 3701, 3715, 3705, 3712, 3707, 3713,
+ 3719, 3718, 3703, 3721, 3720, 3723, 3722, 3716, 3718, 3715,
+ 0, 3716, 3720, 3723, 3724, 3725, 3726, 3721, 3712, 3713,
+ 3722, 3731, 3719, 3732, 3733, 3730, 3734, 3719, 3718, 3731,
+ 3721, 3720, 3723, 3722, 3730, 3735, 3724, 3725, 3729, 0,
+
+ 3740, 3724, 3725, 3726, 3736, 3729, 3733, 3737, 3731, 3739,
+ 3732, 3733, 3730, 3738, 3742, 3743, 3744, 3739, 3734, 0,
+ 3747, 3735, 3735, 3746, 3748, 3729, 3736, 3751, 3747, 3737,
+ 3749, 3736, 3740, 3757, 3737, 3738, 3739, 3743, 3749, 3755,
+ 3738, 3742, 3743, 3744, 3748, 3750, 3746, 3747, 3752, 3753,
+ 3746, 3748, 3758, 3750, 3760, 3758, 3752, 3749, 3759, 3751,
+ 3757, 3761, 3760, 3753, 3762, 3755, 3755, 3763, 3764, 3761,
+ 3758, 3768, 3750, 3765, 0, 3752, 3753, 0, 3762, 3758,
+ 3759, 3760, 3758, 3767, 3767, 3759, 3770, 3765, 3761, 3771,
+ 3764, 3762, 3772, 3763, 3763, 3764, 3769, 3768, 3768, 3774,
+
+ 3765, 3773, 3775, 3776, 3769, 3778, 3777, 3774, 0, 3785,
+ 3767, 0, 3770, 3770, 3772, 3771, 3771, 3779, 3780, 3772,
+ 3782, 3773, 0, 3769, 3788, 3776, 3774, 3781, 3773, 3775,
+ 3776, 3777, 3778, 3777, 3789, 3781, 3785, 3779, 3780, 3792,
+ 3783, 3786, 3782, 3794, 3779, 3780, 3788, 3782, 3783, 3786,
+ 3790, 3788, 3791, 3798, 3781, 3795, 3789, 3797, 3790, 3801,
+ 3791, 3789, 0, 3795, 3796, 3792, 3792, 3783, 3786, 3799,
+ 3794, 3802, 3796, 3803, 3811, 3805, 0, 3790, 3812, 3791,
+ 3798, 3808, 3795, 3797, 3797, 0, 3801, 3809, 0, 3799,
+ 0, 3796, 0, 3803, 0, 3809, 3799, 3805, 3802, 3810,
+
+ 3803, 3811, 3805, 3808, 0, 3812, 0, 3810, 3808, 0,
+ 0, 0, 0, 0, 3809, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3810, 3816, 3816, 3816,
+ 3816, 3816, 3816, 3816, 3817, 3817, 3817, 3817, 3817, 3817,
+ 3817, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3819, 3819,
+ 3819, 3819, 3819, 3819, 3819, 3820, 3820, 3820, 3820, 3820,
+ 3820, 3820, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3822,
+ 3822, 3822, 3822, 3822, 3822, 3822, 3824, 3824, 0, 3824,
+ 3824, 3824, 3824, 3825, 3825, 0, 0, 0, 3825, 3825,
+ 3826, 3826, 0, 0, 3826, 0, 3826, 3827, 0, 0,
+
+ 0, 0, 0, 3827, 3828, 3828, 0, 0, 0, 3828,
+ 3828, 3829, 0, 0, 0, 0, 0, 3829, 3830, 3830,
+ 0, 3830, 3830, 3830, 3830, 3831, 0, 0, 0, 0,
+ 0, 3831, 3832, 3832, 0, 0, 0, 3832, 3832, 3833,
+ 3833, 0, 3833, 3833, 3833, 3833, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+
+ 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
+ 3815, 3815, 3815
} ;
static yy_state_type yy_last_accepting_state;
@@ -4284,7 +4295,7 @@ static void config_end_include(void)
}
#endif
-#line 4285 "<stdout>"
+#line 4296 "<stdout>"
#define YY_NO_INPUT 1
#line 191 "util/configlexer.lex"
#ifndef YY_NO_UNPUT
@@ -4293,9 +4304,9 @@ static void config_end_include(void)
#ifndef YY_NO_INPUT
#define YY_NO_INPUT 1
#endif
-#line 4294 "<stdout>"
+#line 4305 "<stdout>"
-#line 4296 "<stdout>"
+#line 4307 "<stdout>"
#define INITIAL 0
#define quotedstring 1
@@ -4519,7 +4530,7 @@ YY_DECL
{
#line 211 "util/configlexer.lex"
-#line 4520 "<stdout>"
+#line 4531 "<stdout>"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -4552,13 +4563,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 >= 3807 )
+ if ( yy_current_state >= 3816 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 10823 );
+ while ( yy_base[yy_current_state] != 10847 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -5694,430 +5705,430 @@ YY_RULE_SETUP
case 222:
YY_RULE_SETUP
#line 437 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE) }
+{ YDVAR(1, VAR_LOG_DESTADDR) }
YY_BREAK
case 223:
YY_RULE_SETUP
#line 438 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA) }
+{ YDVAR(2, VAR_LOCAL_ZONE) }
YY_BREAK
case 224:
YY_RULE_SETUP
#line 439 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
+{ YDVAR(1, VAR_LOCAL_DATA) }
YY_BREAK
case 225:
YY_RULE_SETUP
#line 440 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
YY_BREAK
case 226:
YY_RULE_SETUP
#line 441 "util/configlexer.lex"
-{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
+{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
YY_BREAK
case 227:
YY_RULE_SETUP
#line 442 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
+{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
YY_BREAK
case 228:
YY_RULE_SETUP
#line 443 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
+{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
YY_BREAK
case 229:
YY_RULE_SETUP
#line 444 "util/configlexer.lex"
-{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
+{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
YY_BREAK
case 230:
YY_RULE_SETUP
#line 445 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INHIBIT_ZERO) }
+{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
YY_BREAK
case 231:
YY_RULE_SETUP
#line 446 "util/configlexer.lex"
-{ YDVAR(1, VAR_SHM_ENABLE) }
+{ YDVAR(1, VAR_STATISTICS_INHIBIT_ZERO) }
YY_BREAK
case 232:
YY_RULE_SETUP
#line 447 "util/configlexer.lex"
-{ YDVAR(1, VAR_SHM_KEY) }
+{ YDVAR(1, VAR_SHM_ENABLE) }
YY_BREAK
case 233:
YY_RULE_SETUP
#line 448 "util/configlexer.lex"
-{ YDVAR(0, VAR_REMOTE_CONTROL) }
+{ YDVAR(1, VAR_SHM_KEY) }
YY_BREAK
case 234:
YY_RULE_SETUP
#line 449 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_ENABLE) }
+{ YDVAR(0, VAR_REMOTE_CONTROL) }
YY_BREAK
case 235:
YY_RULE_SETUP
#line 450 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_INTERFACE) }
+{ YDVAR(1, VAR_CONTROL_ENABLE) }
YY_BREAK
case 236:
YY_RULE_SETUP
#line 451 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_PORT) }
+{ YDVAR(1, VAR_CONTROL_INTERFACE) }
YY_BREAK
case 237:
YY_RULE_SETUP
#line 452 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_USE_CERT) }
+{ YDVAR(1, VAR_CONTROL_PORT) }
YY_BREAK
case 238:
YY_RULE_SETUP
#line 453 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_KEY_FILE) }
+{ YDVAR(1, VAR_CONTROL_USE_CERT) }
YY_BREAK
case 239:
YY_RULE_SETUP
#line 454 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_CERT_FILE) }
+{ YDVAR(1, VAR_SERVER_KEY_FILE) }
YY_BREAK
case 240:
YY_RULE_SETUP
#line 455 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
+{ YDVAR(1, VAR_SERVER_CERT_FILE) }
YY_BREAK
case 241:
YY_RULE_SETUP
#line 456 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
+{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
YY_BREAK
case 242:
YY_RULE_SETUP
#line 457 "util/configlexer.lex"
-{ YDVAR(1, VAR_PYTHON_SCRIPT) }
+{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
YY_BREAK
case 243:
YY_RULE_SETUP
#line 458 "util/configlexer.lex"
-{ YDVAR(0, VAR_PYTHON) }
+{ YDVAR(1, VAR_PYTHON_SCRIPT) }
YY_BREAK
case 244:
YY_RULE_SETUP
#line 459 "util/configlexer.lex"
-{ YDVAR(1, VAR_DYNLIB_FILE) }
+{ YDVAR(0, VAR_PYTHON) }
YY_BREAK
case 245:
YY_RULE_SETUP
#line 460 "util/configlexer.lex"
-{ YDVAR(0, VAR_DYNLIB) }
+{ YDVAR(1, VAR_DYNLIB_FILE) }
YY_BREAK
case 246:
YY_RULE_SETUP
#line 461 "util/configlexer.lex"
-{ YDVAR(1, VAR_DOMAIN_INSECURE) }
+{ YDVAR(0, VAR_DYNLIB) }
YY_BREAK
case 247:
YY_RULE_SETUP
#line 462 "util/configlexer.lex"
-{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
+{ YDVAR(1, VAR_DOMAIN_INSECURE) }
YY_BREAK
case 248:
YY_RULE_SETUP
#line 463 "util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
+{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
YY_BREAK
case 249:
YY_RULE_SETUP
#line 464 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) }
+{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
YY_BREAK
case 250:
YY_RULE_SETUP
#line 465 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_UDP_SIZE) }
+{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) }
YY_BREAK
case 251:
YY_RULE_SETUP
#line 466 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_PREFIX) }
+{ YDVAR(1, VAR_MAX_UDP_SIZE) }
YY_BREAK
case 252:
YY_RULE_SETUP
#line 467 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_SYNTHALL) }
+{ YDVAR(1, VAR_DNS64_PREFIX) }
YY_BREAK
case 253:
YY_RULE_SETUP
#line 468 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) }
+{ YDVAR(1, VAR_DNS64_SYNTHALL) }
YY_BREAK
case 254:
YY_RULE_SETUP
#line 469 "util/configlexer.lex"
-{ YDVAR(1, VAR_NAT64_PREFIX) }
+{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) }
YY_BREAK
case 255:
YY_RULE_SETUP
#line 470 "util/configlexer.lex"
-{ YDVAR(1, VAR_DEFINE_TAG) }
+{ YDVAR(1, VAR_NAT64_PREFIX) }
YY_BREAK
case 256:
YY_RULE_SETUP
#line 471 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
+{ YDVAR(1, VAR_DEFINE_TAG) }
YY_BREAK
case 257:
YY_RULE_SETUP
#line 472 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
+{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
YY_BREAK
case 258:
YY_RULE_SETUP
#line 473 "util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
YY_BREAK
case 259:
YY_RULE_SETUP
#line 474 "util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
YY_BREAK
case 260:
YY_RULE_SETUP
#line 475 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
YY_BREAK
case 261:
YY_RULE_SETUP
#line 476 "util/configlexer.lex"
-{ YDVAR(2, VAR_INTERFACE_TAG) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
YY_BREAK
case 262:
YY_RULE_SETUP
#line 477 "util/configlexer.lex"
-{ YDVAR(3, VAR_INTERFACE_TAG_ACTION) }
+{ YDVAR(2, VAR_INTERFACE_TAG) }
YY_BREAK
case 263:
YY_RULE_SETUP
#line 478 "util/configlexer.lex"
-{ YDVAR(3, VAR_INTERFACE_TAG_DATA) }
+{ YDVAR(3, VAR_INTERFACE_TAG_ACTION) }
YY_BREAK
case 264:
YY_RULE_SETUP
#line 479 "util/configlexer.lex"
-{ YDVAR(2, VAR_INTERFACE_VIEW) }
+{ YDVAR(3, VAR_INTERFACE_TAG_DATA) }
YY_BREAK
case 265:
YY_RULE_SETUP
#line 480 "util/configlexer.lex"
-{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
+{ YDVAR(2, VAR_INTERFACE_VIEW) }
YY_BREAK
case 266:
YY_RULE_SETUP
#line 481 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSTAP) }
+{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
YY_BREAK
case 267:
YY_RULE_SETUP
#line 482 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_ENABLE) }
+{ YDVAR(0, VAR_DNSTAP) }
YY_BREAK
case 268:
YY_RULE_SETUP
#line 483 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) }
+{ YDVAR(1, VAR_DNSTAP_ENABLE) }
YY_BREAK
case 269:
YY_RULE_SETUP
#line 484 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
+{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) }
YY_BREAK
case 270:
YY_RULE_SETUP
#line 485 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_IP) }
+{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
YY_BREAK
case 271:
YY_RULE_SETUP
#line 486 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_TLS) }
+{ YDVAR(1, VAR_DNSTAP_IP) }
YY_BREAK
case 272:
YY_RULE_SETUP
#line 487 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) }
+{ YDVAR(1, VAR_DNSTAP_TLS) }
YY_BREAK
case 273:
YY_RULE_SETUP
#line 488 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) }
+{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) }
YY_BREAK
case 274:
YY_RULE_SETUP
#line 489 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) }
+{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) }
YY_BREAK
case 275:
YY_RULE_SETUP
-#line 491 "util/configlexer.lex"
+#line 490 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) }
+ YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) }
YY_BREAK
case 276:
YY_RULE_SETUP
-#line 493 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
+#line 492 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) }
YY_BREAK
case 277:
YY_RULE_SETUP
#line 494 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
YY_BREAK
case 278:
YY_RULE_SETUP
#line 495 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
YY_BREAK
case 279:
YY_RULE_SETUP
#line 496 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
YY_BREAK
case 280:
YY_RULE_SETUP
#line 497 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
+{ YDVAR(1, VAR_DNSTAP_VERSION) }
YY_BREAK
case 281:
YY_RULE_SETUP
-#line 499 "util/configlexer.lex"
+#line 498 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
YY_BREAK
case 282:
YY_RULE_SETUP
-#line 501 "util/configlexer.lex"
+#line 500 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
YY_BREAK
case 283:
YY_RULE_SETUP
-#line 503 "util/configlexer.lex"
+#line 502 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
YY_BREAK
case 284:
YY_RULE_SETUP
-#line 505 "util/configlexer.lex"
+#line 504 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
YY_BREAK
case 285:
YY_RULE_SETUP
-#line 507 "util/configlexer.lex"
+#line 506 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
YY_BREAK
case 286:
YY_RULE_SETUP
-#line 509 "util/configlexer.lex"
-{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
+#line 508 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
YY_BREAK
case 287:
YY_RULE_SETUP
#line 510 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT) }
+{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
YY_BREAK
case 288:
YY_RULE_SETUP
#line 511 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_COOKIE) }
+{ YDVAR(1, VAR_IP_RATELIMIT) }
YY_BREAK
case 289:
YY_RULE_SETUP
#line 512 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT) }
+{ YDVAR(1, VAR_IP_RATELIMIT_COOKIE) }
YY_BREAK
case 290:
YY_RULE_SETUP
#line 513 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_RATELIMIT) }
YY_BREAK
case 291:
YY_RULE_SETUP
#line 514 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
YY_BREAK
case 292:
YY_RULE_SETUP
#line 515 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_RATELIMIT_SLABS) }
YY_BREAK
case 293:
YY_RULE_SETUP
#line 516 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
YY_BREAK
case 294:
YY_RULE_SETUP
#line 517 "util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
+{ YDVAR(1, VAR_RATELIMIT_SIZE) }
YY_BREAK
case 295:
YY_RULE_SETUP
#line 518 "util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
+{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
YY_BREAK
case 296:
YY_RULE_SETUP
#line 519 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
YY_BREAK
case 297:
YY_RULE_SETUP
#line 520 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
YY_BREAK
case 298:
YY_RULE_SETUP
#line 521 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_BACKOFF) }
+{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
YY_BREAK
case 299:
YY_RULE_SETUP
#line 522 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_BACKOFF) }
+{ YDVAR(1, VAR_IP_RATELIMIT_BACKOFF) }
YY_BREAK
case 300:
YY_RULE_SETUP
#line 523 "util/configlexer.lex"
-{ YDVAR(1, VAR_OUTBOUND_MSG_RETRY) }
+{ YDVAR(1, VAR_RATELIMIT_BACKOFF) }
YY_BREAK
case 301:
YY_RULE_SETUP
#line 524 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_SENT_COUNT) }
+{ YDVAR(1, VAR_OUTBOUND_MSG_RETRY) }
YY_BREAK
case 302:
YY_RULE_SETUP
#line 525 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_QUERY_RESTARTS) }
+{ YDVAR(1, VAR_MAX_SENT_COUNT) }
YY_BREAK
case 303:
YY_RULE_SETUP
#line 526 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOW_RTT) }
+{ YDVAR(1, VAR_MAX_QUERY_RESTARTS) }
YY_BREAK
case 304:
YY_RULE_SETUP
#line 527 "util/configlexer.lex"
-{ YDVAR(1, VAR_FAST_SERVER_NUM) }
+{ YDVAR(1, VAR_LOW_RTT) }
YY_BREAK
case 305:
YY_RULE_SETUP
#line 528 "util/configlexer.lex"
-{ YDVAR(1, VAR_FAST_SERVER_PERMIL) }
+{ YDVAR(1, VAR_FAST_SERVER_NUM) }
YY_BREAK
case 306:
YY_RULE_SETUP
@@ -6132,119 +6143,119 @@ YY_RULE_SETUP
case 308:
YY_RULE_SETUP
#line 531 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
+{ YDVAR(1, VAR_FAST_SERVER_PERMIL) }
YY_BREAK
case 309:
YY_RULE_SETUP
#line 532 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP) }
+{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
YY_BREAK
case 310:
YY_RULE_SETUP
#line 533 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
+{ YDVAR(2, VAR_RESPONSE_IP) }
YY_BREAK
case 311:
YY_RULE_SETUP
#line 534 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSCRYPT) }
+{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
YY_BREAK
case 312:
YY_RULE_SETUP
#line 535 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
+{ YDVAR(0, VAR_DNSCRYPT) }
YY_BREAK
case 313:
YY_RULE_SETUP
#line 536 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PORT) }
+{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
YY_BREAK
case 314:
YY_RULE_SETUP
#line 537 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
+{ YDVAR(1, VAR_DNSCRYPT_PORT) }
YY_BREAK
case 315:
YY_RULE_SETUP
#line 538 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
YY_BREAK
case 316:
YY_RULE_SETUP
#line 539 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
+{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
YY_BREAK
case 317:
YY_RULE_SETUP
#line 540 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
YY_BREAK
case 318:
YY_RULE_SETUP
#line 541 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
YY_BREAK
case 319:
YY_RULE_SETUP
-#line 543 "util/configlexer.lex"
+#line 542 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
+ YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
YY_BREAK
case 320:
YY_RULE_SETUP
-#line 545 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
+#line 544 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
YY_BREAK
case 321:
YY_RULE_SETUP
#line 546 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
+{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
YY_BREAK
case 322:
YY_RULE_SETUP
#line 547 "util/configlexer.lex"
-{ YDVAR(1, VAR_PAD_RESPONSES) }
+{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
YY_BREAK
case 323:
YY_RULE_SETUP
#line 548 "util/configlexer.lex"
-{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) }
+{ YDVAR(1, VAR_PAD_RESPONSES) }
YY_BREAK
case 324:
YY_RULE_SETUP
#line 549 "util/configlexer.lex"
-{ YDVAR(1, VAR_PAD_QUERIES) }
+{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) }
YY_BREAK
case 325:
YY_RULE_SETUP
#line 550 "util/configlexer.lex"
-{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) }
+{ YDVAR(1, VAR_PAD_QUERIES) }
YY_BREAK
case 326:
YY_RULE_SETUP
#line 551 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_ENABLED) }
+{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) }
YY_BREAK
case 327:
YY_RULE_SETUP
#line 552 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
+{ YDVAR(1, VAR_IPSECMOD_ENABLED) }
YY_BREAK
case 328:
YY_RULE_SETUP
#line 553 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_HOOK) }
+{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
YY_BREAK
case 329:
YY_RULE_SETUP
#line 554 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
+{ YDVAR(1, VAR_IPSECMOD_HOOK) }
YY_BREAK
case 330:
YY_RULE_SETUP
#line 555 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_WHITELIST) }
+{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
YY_BREAK
case 331:
YY_RULE_SETUP
@@ -6254,158 +6265,163 @@ YY_RULE_SETUP
case 332:
YY_RULE_SETUP
#line 557 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_STRICT) }
+{ YDVAR(1, VAR_IPSECMOD_WHITELIST) }
YY_BREAK
case 333:
YY_RULE_SETUP
#line 558 "util/configlexer.lex"
-{ YDVAR(0, VAR_CACHEDB) }
+{ YDVAR(1, VAR_IPSECMOD_STRICT) }
YY_BREAK
case 334:
YY_RULE_SETUP
#line 559 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_BACKEND) }
+{ YDVAR(0, VAR_CACHEDB) }
YY_BREAK
case 335:
YY_RULE_SETUP
#line 560 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_SECRETSEED) }
+{ YDVAR(1, VAR_CACHEDB_BACKEND) }
YY_BREAK
case 336:
YY_RULE_SETUP
#line 561 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_NO_STORE) }
+{ YDVAR(1, VAR_CACHEDB_SECRETSEED) }
YY_BREAK
case 337:
YY_RULE_SETUP
#line 562 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISHOST) }
+{ YDVAR(1, VAR_CACHEDB_NO_STORE) }
YY_BREAK
case 338:
YY_RULE_SETUP
#line 563 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISPORT) }
+{ YDVAR(1, VAR_CACHEDB_REDISHOST) }
YY_BREAK
case 339:
YY_RULE_SETUP
#line 564 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISPATH) }
+{ YDVAR(1, VAR_CACHEDB_REDISPORT) }
YY_BREAK
case 340:
YY_RULE_SETUP
#line 565 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISPASSWORD) }
+{ YDVAR(1, VAR_CACHEDB_REDISPATH) }
YY_BREAK
case 341:
YY_RULE_SETUP
#line 566 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
+{ YDVAR(1, VAR_CACHEDB_REDISPASSWORD) }
YY_BREAK
case 342:
YY_RULE_SETUP
#line 567 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) }
+{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
YY_BREAK
case 343:
YY_RULE_SETUP
#line 568 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISLOGICALDB) }
+{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) }
YY_BREAK
case 344:
YY_RULE_SETUP
#line 569 "util/configlexer.lex"
-{ YDVAR(0, VAR_IPSET) }
+{ YDVAR(1, VAR_CACHEDB_REDISLOGICALDB) }
YY_BREAK
case 345:
YY_RULE_SETUP
#line 570 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSET_NAME_V4) }
+{ YDVAR(0, VAR_IPSET) }
YY_BREAK
case 346:
YY_RULE_SETUP
#line 571 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSET_NAME_V6) }
+{ YDVAR(1, VAR_IPSET_NAME_V4) }
YY_BREAK
case 347:
YY_RULE_SETUP
#line 572 "util/configlexer.lex"
-{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
+{ YDVAR(1, VAR_IPSET_NAME_V6) }
YY_BREAK
case 348:
YY_RULE_SETUP
#line 573 "util/configlexer.lex"
-{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) }
+{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
YY_BREAK
case 349:
YY_RULE_SETUP
#line 574 "util/configlexer.lex"
-{ YDVAR(1, VAR_ANSWER_COOKIE ) }
+{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) }
YY_BREAK
case 350:
YY_RULE_SETUP
#line 575 "util/configlexer.lex"
-{ YDVAR(1, VAR_COOKIE_SECRET) }
+{ YDVAR(1, VAR_ANSWER_COOKIE ) }
YY_BREAK
case 351:
YY_RULE_SETUP
#line 576 "util/configlexer.lex"
-{ YDVAR(2, VAR_EDNS_CLIENT_STRING) }
+{ YDVAR(1, VAR_COOKIE_SECRET) }
YY_BREAK
case 352:
YY_RULE_SETUP
#line 577 "util/configlexer.lex"
-{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) }
+{ YDVAR(2, VAR_EDNS_CLIENT_STRING) }
YY_BREAK
case 353:
YY_RULE_SETUP
#line 578 "util/configlexer.lex"
-{ YDVAR(1, VAR_NSID ) }
+{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) }
YY_BREAK
case 354:
YY_RULE_SETUP
#line 579 "util/configlexer.lex"
-{ YDVAR(1, VAR_EDE ) }
+{ YDVAR(1, VAR_NSID ) }
YY_BREAK
case 355:
YY_RULE_SETUP
#line 580 "util/configlexer.lex"
-{ YDVAR(1, VAR_PROXY_PROTOCOL_PORT) }
+{ YDVAR(1, VAR_EDE ) }
YY_BREAK
case 356:
-/* rule 356 can match eol */
YY_RULE_SETUP
#line 581 "util/configlexer.lex"
+{ YDVAR(1, VAR_PROXY_PROTOCOL_PORT) }
+ YY_BREAK
+case 357:
+/* rule 357 can match eol */
+YY_RULE_SETUP
+#line 582 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++; }
YY_BREAK
/* Quoted strings. Strip leading and ending quotes */
-case 357:
+case 358:
YY_RULE_SETUP
-#line 584 "util/configlexer.lex"
+#line 585 "util/configlexer.lex"
{ BEGIN(quotedstring); LEXOUT(("QS ")); }
YY_BREAK
case YY_STATE_EOF(quotedstring):
-#line 585 "util/configlexer.lex"
+#line 586 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 358:
+case 359:
YY_RULE_SETUP
-#line 590 "util/configlexer.lex"
+#line 591 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 359:
-/* rule 359 can match eol */
+case 360:
+/* rule 360 can match eol */
YY_RULE_SETUP
-#line 591 "util/configlexer.lex"
+#line 592 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end \"");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 360:
+case 361:
YY_RULE_SETUP
-#line 593 "util/configlexer.lex"
+#line 594 "util/configlexer.lex"
{
LEXOUT(("QE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -6418,34 +6434,34 @@ YY_RULE_SETUP
}
YY_BREAK
/* Single Quoted strings. Strip leading and ending quotes */
-case 361:
+case 362:
YY_RULE_SETUP
-#line 605 "util/configlexer.lex"
+#line 606 "util/configlexer.lex"
{ BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
YY_BREAK
case YY_STATE_EOF(singlequotedstr):
-#line 606 "util/configlexer.lex"
+#line 607 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 362:
+case 363:
YY_RULE_SETUP
-#line 611 "util/configlexer.lex"
+#line 612 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 363:
-/* rule 363 can match eol */
+case 364:
+/* rule 364 can match eol */
YY_RULE_SETUP
-#line 612 "util/configlexer.lex"
+#line 613 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end '");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 364:
+case 365:
YY_RULE_SETUP
-#line 614 "util/configlexer.lex"
+#line 615 "util/configlexer.lex"
{
LEXOUT(("SQE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -6458,38 +6474,38 @@ YY_RULE_SETUP
}
YY_BREAK
/* include: directive */
-case 365:
+case 366:
YY_RULE_SETUP
-#line 626 "util/configlexer.lex"
+#line 627 "util/configlexer.lex"
{
LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
YY_BREAK
case YY_STATE_EOF(include):
-#line 628 "util/configlexer.lex"
+#line 629 "util/configlexer.lex"
{
yyerror("EOF inside include directive");
BEGIN(inc_prev);
}
YY_BREAK
-case 366:
-YY_RULE_SETUP
-#line 632 "util/configlexer.lex"
-{ LEXOUT(("ISP ")); /* ignore */ }
- YY_BREAK
case 367:
-/* rule 367 can match eol */
YY_RULE_SETUP
#line 633 "util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++;}
+{ LEXOUT(("ISP ")); /* ignore */ }
YY_BREAK
case 368:
+/* rule 368 can match eol */
YY_RULE_SETUP
#line 634 "util/configlexer.lex"
-{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+{ LEXOUT(("NL\n")); cfg_parser->line++;}
YY_BREAK
case 369:
YY_RULE_SETUP
#line 635 "util/configlexer.lex"
+{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+ YY_BREAK
+case 370:
+YY_RULE_SETUP
+#line 636 "util/configlexer.lex"
{
LEXOUT(("Iunquotedstr(%s) ", yytext));
config_start_include_glob(yytext, 0);
@@ -6497,27 +6513,27 @@ YY_RULE_SETUP
}
YY_BREAK
case YY_STATE_EOF(include_quoted):
-#line 640 "util/configlexer.lex"
+#line 641 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
BEGIN(inc_prev);
}
YY_BREAK
-case 370:
+case 371:
YY_RULE_SETUP
-#line 644 "util/configlexer.lex"
+#line 645 "util/configlexer.lex"
{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 371:
-/* rule 371 can match eol */
+case 372:
+/* rule 372 can match eol */
YY_RULE_SETUP
-#line 645 "util/configlexer.lex"
+#line 646 "util/configlexer.lex"
{ yyerror("newline before \" in include name");
cfg_parser->line++; BEGIN(inc_prev); }
YY_BREAK
-case 372:
+case 373:
YY_RULE_SETUP
-#line 647 "util/configlexer.lex"
+#line 648 "util/configlexer.lex"
{
LEXOUT(("IQE "));
yytext[yyleng - 1] = '\0';
@@ -6527,7 +6543,7 @@ YY_RULE_SETUP
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(val):
-#line 653 "util/configlexer.lex"
+#line 654 "util/configlexer.lex"
{
LEXOUT(("LEXEOF "));
yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
@@ -6542,39 +6558,39 @@ case YY_STATE_EOF(val):
}
YY_BREAK
/* include-toplevel: directive */
-case 373:
+case 374:
YY_RULE_SETUP
-#line 667 "util/configlexer.lex"
+#line 668 "util/configlexer.lex"
{
LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel);
}
YY_BREAK
case YY_STATE_EOF(include_toplevel):
-#line 670 "util/configlexer.lex"
+#line 671 "util/configlexer.lex"
{
yyerror("EOF inside include_toplevel directive");
BEGIN(inc_prev);
}
YY_BREAK
-case 374:
-YY_RULE_SETUP
-#line 674 "util/configlexer.lex"
-{ LEXOUT(("ITSP ")); /* ignore */ }
- YY_BREAK
case 375:
-/* rule 375 can match eol */
YY_RULE_SETUP
#line 675 "util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++; }
+{ LEXOUT(("ITSP ")); /* ignore */ }
YY_BREAK
case 376:
+/* rule 376 can match eol */
YY_RULE_SETUP
#line 676 "util/configlexer.lex"
-{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); }
+{ LEXOUT(("NL\n")); cfg_parser->line++; }
YY_BREAK
case 377:
YY_RULE_SETUP
#line 677 "util/configlexer.lex"
+{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); }
+ YY_BREAK
+case 378:
+YY_RULE_SETUP
+#line 678 "util/configlexer.lex"
{
LEXOUT(("ITunquotedstr(%s) ", yytext));
config_start_include_glob(yytext, 1);
@@ -6583,29 +6599,29 @@ YY_RULE_SETUP
}
YY_BREAK
case YY_STATE_EOF(include_toplevel_quoted):
-#line 683 "util/configlexer.lex"
+#line 684 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
BEGIN(inc_prev);
}
YY_BREAK
-case 378:
+case 379:
YY_RULE_SETUP
-#line 687 "util/configlexer.lex"
+#line 688 "util/configlexer.lex"
{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 379:
-/* rule 379 can match eol */
+case 380:
+/* rule 380 can match eol */
YY_RULE_SETUP
-#line 688 "util/configlexer.lex"
+#line 689 "util/configlexer.lex"
{
yyerror("newline before \" in include name");
cfg_parser->line++; BEGIN(inc_prev);
}
YY_BREAK
-case 380:
+case 381:
YY_RULE_SETUP
-#line 692 "util/configlexer.lex"
+#line 693 "util/configlexer.lex"
{
LEXOUT(("ITQE "));
yytext[yyleng - 1] = '\0';
@@ -6614,33 +6630,33 @@ YY_RULE_SETUP
return (VAR_FORCE_TOPLEVEL);
}
YY_BREAK
-case 381:
+case 382:
YY_RULE_SETUP
-#line 700 "util/configlexer.lex"
+#line 701 "util/configlexer.lex"
{ LEXOUT(("unquotedstr(%s) ", yytext));
if(--num_args == 0) { BEGIN(INITIAL); }
yylval.str = strdup(yytext); return STRING_ARG; }
YY_BREAK
-case 382:
+case 383:
YY_RULE_SETUP
-#line 704 "util/configlexer.lex"
+#line 705 "util/configlexer.lex"
{
ub_c_error_msg("unknown keyword '%s'", yytext);
}
YY_BREAK
-case 383:
+case 384:
YY_RULE_SETUP
-#line 708 "util/configlexer.lex"
+#line 709 "util/configlexer.lex"
{
ub_c_error_msg("stray '%s'", yytext);
}
YY_BREAK
-case 384:
+case 385:
YY_RULE_SETUP
-#line 712 "util/configlexer.lex"
+#line 713 "util/configlexer.lex"
ECHO;
YY_BREAK
-#line 6641 "<stdout>"
+#line 6657 "<stdout>"
case YY_END_OF_BUFFER:
{
@@ -6935,7 +6951,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 >= 3807 )
+ if ( yy_current_state >= 3816 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -6963,11 +6979,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 >= 3807 )
+ if ( yy_current_state >= 3816 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 3806);
+ yy_is_jam = (yy_current_state == 3815);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -7606,6 +7622,6 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 712 "util/configlexer.lex"
+#line 713 "util/configlexer.lex"
diff --git a/util/configlexer.lex b/util/configlexer.lex
index fdc267434c7b..e1ab76e25560 100644
--- a/util/configlexer.lex
+++ b/util/configlexer.lex
@@ -434,6 +434,7 @@ log-replies{COLON} { YDVAR(1, VAR_LOG_REPLIES) }
log-tag-queryreply{COLON} { YDVAR(1, VAR_LOG_TAG_QUERYREPLY) }
log-local-actions{COLON} { YDVAR(1, VAR_LOG_LOCAL_ACTIONS) }
log-servfail{COLON} { YDVAR(1, VAR_LOG_SERVFAIL) }
+log-destaddr{COLON} { YDVAR(1, VAR_LOG_DESTADDR) }
local-zone{COLON} { YDVAR(2, VAR_LOCAL_ZONE) }
local-data{COLON} { YDVAR(1, VAR_LOCAL_DATA) }
local-data-ptr{COLON} { YDVAR(1, VAR_LOCAL_DATA_PTR) }
diff --git a/util/configparser.c b/util/configparser.c
index 7b7d819b2aac..71f3ae46678a 100644
--- a/util/configparser.c
+++ b/util/configparser.c
@@ -475,380 +475,382 @@ enum yysymbol_kind_t
YYSYMBOL_VAR_HARDEN_UNKNOWN_ADDITIONAL = 346, /* VAR_HARDEN_UNKNOWN_ADDITIONAL */
YYSYMBOL_VAR_DISABLE_EDNS_DO = 347, /* VAR_DISABLE_EDNS_DO */
YYSYMBOL_VAR_CACHEDB_NO_STORE = 348, /* VAR_CACHEDB_NO_STORE */
- YYSYMBOL_YYACCEPT = 349, /* $accept */
- YYSYMBOL_toplevelvars = 350, /* toplevelvars */
- YYSYMBOL_toplevelvar = 351, /* toplevelvar */
- YYSYMBOL_force_toplevel = 352, /* force_toplevel */
- YYSYMBOL_serverstart = 353, /* serverstart */
- YYSYMBOL_contents_server = 354, /* contents_server */
- YYSYMBOL_content_server = 355, /* content_server */
- YYSYMBOL_stubstart = 356, /* stubstart */
- YYSYMBOL_contents_stub = 357, /* contents_stub */
- YYSYMBOL_content_stub = 358, /* content_stub */
- YYSYMBOL_forwardstart = 359, /* forwardstart */
- YYSYMBOL_contents_forward = 360, /* contents_forward */
- YYSYMBOL_content_forward = 361, /* content_forward */
- YYSYMBOL_viewstart = 362, /* viewstart */
- YYSYMBOL_contents_view = 363, /* contents_view */
- YYSYMBOL_content_view = 364, /* content_view */
- YYSYMBOL_authstart = 365, /* authstart */
- YYSYMBOL_contents_auth = 366, /* contents_auth */
- YYSYMBOL_content_auth = 367, /* content_auth */
- YYSYMBOL_rpz_tag = 368, /* rpz_tag */
- YYSYMBOL_rpz_action_override = 369, /* rpz_action_override */
- YYSYMBOL_rpz_cname_override = 370, /* rpz_cname_override */
- YYSYMBOL_rpz_log = 371, /* rpz_log */
- YYSYMBOL_rpz_log_name = 372, /* rpz_log_name */
- YYSYMBOL_rpz_signal_nxdomain_ra = 373, /* rpz_signal_nxdomain_ra */
- YYSYMBOL_rpzstart = 374, /* rpzstart */
- YYSYMBOL_contents_rpz = 375, /* contents_rpz */
- YYSYMBOL_content_rpz = 376, /* content_rpz */
- YYSYMBOL_server_num_threads = 377, /* server_num_threads */
- YYSYMBOL_server_verbosity = 378, /* server_verbosity */
- YYSYMBOL_server_statistics_interval = 379, /* server_statistics_interval */
- YYSYMBOL_server_statistics_cumulative = 380, /* server_statistics_cumulative */
- YYSYMBOL_server_extended_statistics = 381, /* server_extended_statistics */
- YYSYMBOL_server_statistics_inhibit_zero = 382, /* server_statistics_inhibit_zero */
- YYSYMBOL_server_shm_enable = 383, /* server_shm_enable */
- YYSYMBOL_server_shm_key = 384, /* server_shm_key */
- YYSYMBOL_server_port = 385, /* server_port */
- YYSYMBOL_server_send_client_subnet = 386, /* server_send_client_subnet */
- YYSYMBOL_server_client_subnet_zone = 387, /* server_client_subnet_zone */
- YYSYMBOL_server_client_subnet_always_forward = 388, /* server_client_subnet_always_forward */
- YYSYMBOL_server_client_subnet_opcode = 389, /* server_client_subnet_opcode */
- YYSYMBOL_server_max_client_subnet_ipv4 = 390, /* server_max_client_subnet_ipv4 */
- YYSYMBOL_server_max_client_subnet_ipv6 = 391, /* server_max_client_subnet_ipv6 */
- YYSYMBOL_server_min_client_subnet_ipv4 = 392, /* server_min_client_subnet_ipv4 */
- YYSYMBOL_server_min_client_subnet_ipv6 = 393, /* server_min_client_subnet_ipv6 */
- YYSYMBOL_server_max_ecs_tree_size_ipv4 = 394, /* server_max_ecs_tree_size_ipv4 */
- YYSYMBOL_server_max_ecs_tree_size_ipv6 = 395, /* server_max_ecs_tree_size_ipv6 */
- YYSYMBOL_server_interface = 396, /* server_interface */
- YYSYMBOL_server_outgoing_interface = 397, /* server_outgoing_interface */
- YYSYMBOL_server_outgoing_range = 398, /* server_outgoing_range */
- YYSYMBOL_server_outgoing_port_permit = 399, /* server_outgoing_port_permit */
- YYSYMBOL_server_outgoing_port_avoid = 400, /* server_outgoing_port_avoid */
- YYSYMBOL_server_outgoing_num_tcp = 401, /* server_outgoing_num_tcp */
- YYSYMBOL_server_incoming_num_tcp = 402, /* server_incoming_num_tcp */
- YYSYMBOL_server_interface_automatic = 403, /* server_interface_automatic */
- YYSYMBOL_server_interface_automatic_ports = 404, /* server_interface_automatic_ports */
- YYSYMBOL_server_do_ip4 = 405, /* server_do_ip4 */
- YYSYMBOL_server_do_ip6 = 406, /* server_do_ip6 */
- YYSYMBOL_server_do_nat64 = 407, /* server_do_nat64 */
- YYSYMBOL_server_do_udp = 408, /* server_do_udp */
- YYSYMBOL_server_do_tcp = 409, /* server_do_tcp */
- YYSYMBOL_server_prefer_ip4 = 410, /* server_prefer_ip4 */
- YYSYMBOL_server_prefer_ip6 = 411, /* server_prefer_ip6 */
- YYSYMBOL_server_tcp_mss = 412, /* server_tcp_mss */
- YYSYMBOL_server_outgoing_tcp_mss = 413, /* server_outgoing_tcp_mss */
- YYSYMBOL_server_tcp_idle_timeout = 414, /* server_tcp_idle_timeout */
- YYSYMBOL_server_max_reuse_tcp_queries = 415, /* server_max_reuse_tcp_queries */
- YYSYMBOL_server_tcp_reuse_timeout = 416, /* server_tcp_reuse_timeout */
- YYSYMBOL_server_tcp_auth_query_timeout = 417, /* server_tcp_auth_query_timeout */
- YYSYMBOL_server_tcp_keepalive = 418, /* server_tcp_keepalive */
- YYSYMBOL_server_tcp_keepalive_timeout = 419, /* server_tcp_keepalive_timeout */
- YYSYMBOL_server_sock_queue_timeout = 420, /* server_sock_queue_timeout */
- YYSYMBOL_server_tcp_upstream = 421, /* server_tcp_upstream */
- YYSYMBOL_server_udp_upstream_without_downstream = 422, /* server_udp_upstream_without_downstream */
- YYSYMBOL_server_ssl_upstream = 423, /* server_ssl_upstream */
- YYSYMBOL_server_ssl_service_key = 424, /* server_ssl_service_key */
- YYSYMBOL_server_ssl_service_pem = 425, /* server_ssl_service_pem */
- YYSYMBOL_server_ssl_port = 426, /* server_ssl_port */
- YYSYMBOL_server_tls_cert_bundle = 427, /* server_tls_cert_bundle */
- YYSYMBOL_server_tls_win_cert = 428, /* server_tls_win_cert */
- YYSYMBOL_server_tls_additional_port = 429, /* server_tls_additional_port */
- YYSYMBOL_server_tls_ciphers = 430, /* server_tls_ciphers */
- YYSYMBOL_server_tls_ciphersuites = 431, /* server_tls_ciphersuites */
- YYSYMBOL_server_tls_session_ticket_keys = 432, /* server_tls_session_ticket_keys */
- YYSYMBOL_server_tls_use_sni = 433, /* server_tls_use_sni */
- YYSYMBOL_server_https_port = 434, /* server_https_port */
- YYSYMBOL_server_http_endpoint = 435, /* server_http_endpoint */
- YYSYMBOL_server_http_max_streams = 436, /* server_http_max_streams */
- YYSYMBOL_server_http_query_buffer_size = 437, /* server_http_query_buffer_size */
- YYSYMBOL_server_http_response_buffer_size = 438, /* server_http_response_buffer_size */
- YYSYMBOL_server_http_nodelay = 439, /* server_http_nodelay */
- YYSYMBOL_server_http_notls_downstream = 440, /* server_http_notls_downstream */
- YYSYMBOL_server_use_systemd = 441, /* server_use_systemd */
- YYSYMBOL_server_do_daemonize = 442, /* server_do_daemonize */
- YYSYMBOL_server_use_syslog = 443, /* server_use_syslog */
- YYSYMBOL_server_log_time_ascii = 444, /* server_log_time_ascii */
- YYSYMBOL_server_log_queries = 445, /* server_log_queries */
- YYSYMBOL_server_log_replies = 446, /* server_log_replies */
- YYSYMBOL_server_log_tag_queryreply = 447, /* server_log_tag_queryreply */
- YYSYMBOL_server_log_servfail = 448, /* server_log_servfail */
- YYSYMBOL_server_log_local_actions = 449, /* server_log_local_actions */
- YYSYMBOL_server_chroot = 450, /* server_chroot */
- YYSYMBOL_server_username = 451, /* server_username */
- YYSYMBOL_server_directory = 452, /* server_directory */
- YYSYMBOL_server_logfile = 453, /* server_logfile */
- YYSYMBOL_server_pidfile = 454, /* server_pidfile */
- YYSYMBOL_server_root_hints = 455, /* server_root_hints */
- YYSYMBOL_server_dlv_anchor_file = 456, /* server_dlv_anchor_file */
- YYSYMBOL_server_dlv_anchor = 457, /* server_dlv_anchor */
- YYSYMBOL_server_auto_trust_anchor_file = 458, /* server_auto_trust_anchor_file */
- YYSYMBOL_server_trust_anchor_file = 459, /* server_trust_anchor_file */
- YYSYMBOL_server_trusted_keys_file = 460, /* server_trusted_keys_file */
- YYSYMBOL_server_trust_anchor = 461, /* server_trust_anchor */
- YYSYMBOL_server_trust_anchor_signaling = 462, /* server_trust_anchor_signaling */
- YYSYMBOL_server_root_key_sentinel = 463, /* server_root_key_sentinel */
- YYSYMBOL_server_domain_insecure = 464, /* server_domain_insecure */
- YYSYMBOL_server_hide_identity = 465, /* server_hide_identity */
- YYSYMBOL_server_hide_version = 466, /* server_hide_version */
- YYSYMBOL_server_hide_trustanchor = 467, /* server_hide_trustanchor */
- YYSYMBOL_server_hide_http_user_agent = 468, /* server_hide_http_user_agent */
- YYSYMBOL_server_identity = 469, /* server_identity */
- YYSYMBOL_server_version = 470, /* server_version */
- YYSYMBOL_server_http_user_agent = 471, /* server_http_user_agent */
- YYSYMBOL_server_nsid = 472, /* server_nsid */
- YYSYMBOL_server_so_rcvbuf = 473, /* server_so_rcvbuf */
- YYSYMBOL_server_so_sndbuf = 474, /* server_so_sndbuf */
- YYSYMBOL_server_so_reuseport = 475, /* server_so_reuseport */
- YYSYMBOL_server_ip_transparent = 476, /* server_ip_transparent */
- YYSYMBOL_server_ip_freebind = 477, /* server_ip_freebind */
- YYSYMBOL_server_ip_dscp = 478, /* server_ip_dscp */
- YYSYMBOL_server_stream_wait_size = 479, /* server_stream_wait_size */
- YYSYMBOL_server_edns_buffer_size = 480, /* server_edns_buffer_size */
- YYSYMBOL_server_msg_buffer_size = 481, /* server_msg_buffer_size */
- YYSYMBOL_server_msg_cache_size = 482, /* server_msg_cache_size */
- YYSYMBOL_server_msg_cache_slabs = 483, /* server_msg_cache_slabs */
- YYSYMBOL_server_num_queries_per_thread = 484, /* server_num_queries_per_thread */
- YYSYMBOL_server_jostle_timeout = 485, /* server_jostle_timeout */
- YYSYMBOL_server_delay_close = 486, /* server_delay_close */
- YYSYMBOL_server_udp_connect = 487, /* server_udp_connect */
- YYSYMBOL_server_unblock_lan_zones = 488, /* server_unblock_lan_zones */
- YYSYMBOL_server_insecure_lan_zones = 489, /* server_insecure_lan_zones */
- YYSYMBOL_server_rrset_cache_size = 490, /* server_rrset_cache_size */
- YYSYMBOL_server_rrset_cache_slabs = 491, /* server_rrset_cache_slabs */
- YYSYMBOL_server_infra_host_ttl = 492, /* server_infra_host_ttl */
- YYSYMBOL_server_infra_lame_ttl = 493, /* server_infra_lame_ttl */
- YYSYMBOL_server_infra_cache_numhosts = 494, /* server_infra_cache_numhosts */
- YYSYMBOL_server_infra_cache_lame_size = 495, /* server_infra_cache_lame_size */
- YYSYMBOL_server_infra_cache_slabs = 496, /* server_infra_cache_slabs */
- YYSYMBOL_server_infra_cache_min_rtt = 497, /* server_infra_cache_min_rtt */
- YYSYMBOL_server_infra_cache_max_rtt = 498, /* server_infra_cache_max_rtt */
- YYSYMBOL_server_infra_keep_probing = 499, /* server_infra_keep_probing */
- YYSYMBOL_server_target_fetch_policy = 500, /* server_target_fetch_policy */
- YYSYMBOL_server_harden_short_bufsize = 501, /* server_harden_short_bufsize */
- YYSYMBOL_server_harden_large_queries = 502, /* server_harden_large_queries */
- YYSYMBOL_server_harden_glue = 503, /* server_harden_glue */
- YYSYMBOL_server_harden_dnssec_stripped = 504, /* server_harden_dnssec_stripped */
- YYSYMBOL_server_harden_below_nxdomain = 505, /* server_harden_below_nxdomain */
- YYSYMBOL_server_harden_referral_path = 506, /* server_harden_referral_path */
- YYSYMBOL_server_harden_algo_downgrade = 507, /* server_harden_algo_downgrade */
- YYSYMBOL_server_harden_unknown_additional = 508, /* server_harden_unknown_additional */
- YYSYMBOL_server_use_caps_for_id = 509, /* server_use_caps_for_id */
- YYSYMBOL_server_caps_whitelist = 510, /* server_caps_whitelist */
- YYSYMBOL_server_private_address = 511, /* server_private_address */
- YYSYMBOL_server_private_domain = 512, /* server_private_domain */
- YYSYMBOL_server_prefetch = 513, /* server_prefetch */
- YYSYMBOL_server_prefetch_key = 514, /* server_prefetch_key */
- YYSYMBOL_server_deny_any = 515, /* server_deny_any */
- YYSYMBOL_server_unwanted_reply_threshold = 516, /* server_unwanted_reply_threshold */
- YYSYMBOL_server_do_not_query_address = 517, /* server_do_not_query_address */
- YYSYMBOL_server_do_not_query_localhost = 518, /* server_do_not_query_localhost */
- YYSYMBOL_server_access_control = 519, /* server_access_control */
- YYSYMBOL_server_interface_action = 520, /* server_interface_action */
- YYSYMBOL_server_module_conf = 521, /* server_module_conf */
- YYSYMBOL_server_val_override_date = 522, /* server_val_override_date */
- YYSYMBOL_server_val_sig_skew_min = 523, /* server_val_sig_skew_min */
- YYSYMBOL_server_val_sig_skew_max = 524, /* server_val_sig_skew_max */
- YYSYMBOL_server_val_max_restart = 525, /* server_val_max_restart */
- YYSYMBOL_server_cache_max_ttl = 526, /* server_cache_max_ttl */
- YYSYMBOL_server_cache_max_negative_ttl = 527, /* server_cache_max_negative_ttl */
- YYSYMBOL_server_cache_min_ttl = 528, /* server_cache_min_ttl */
- YYSYMBOL_server_bogus_ttl = 529, /* server_bogus_ttl */
- YYSYMBOL_server_val_clean_additional = 530, /* server_val_clean_additional */
- YYSYMBOL_server_val_permissive_mode = 531, /* server_val_permissive_mode */
- YYSYMBOL_server_aggressive_nsec = 532, /* server_aggressive_nsec */
- YYSYMBOL_server_ignore_cd_flag = 533, /* server_ignore_cd_flag */
- YYSYMBOL_server_disable_edns_do = 534, /* server_disable_edns_do */
- YYSYMBOL_server_serve_expired = 535, /* server_serve_expired */
- YYSYMBOL_server_serve_expired_ttl = 536, /* server_serve_expired_ttl */
- YYSYMBOL_server_serve_expired_ttl_reset = 537, /* server_serve_expired_ttl_reset */
- YYSYMBOL_server_serve_expired_reply_ttl = 538, /* server_serve_expired_reply_ttl */
- YYSYMBOL_server_serve_expired_client_timeout = 539, /* server_serve_expired_client_timeout */
- YYSYMBOL_server_ede_serve_expired = 540, /* server_ede_serve_expired */
- YYSYMBOL_server_serve_original_ttl = 541, /* server_serve_original_ttl */
- YYSYMBOL_server_fake_dsa = 542, /* server_fake_dsa */
- YYSYMBOL_server_fake_sha1 = 543, /* server_fake_sha1 */
- YYSYMBOL_server_val_log_level = 544, /* server_val_log_level */
- YYSYMBOL_server_val_nsec3_keysize_iterations = 545, /* server_val_nsec3_keysize_iterations */
- YYSYMBOL_server_zonemd_permissive_mode = 546, /* server_zonemd_permissive_mode */
- YYSYMBOL_server_add_holddown = 547, /* server_add_holddown */
- YYSYMBOL_server_del_holddown = 548, /* server_del_holddown */
- YYSYMBOL_server_keep_missing = 549, /* server_keep_missing */
- YYSYMBOL_server_permit_small_holddown = 550, /* server_permit_small_holddown */
- YYSYMBOL_server_key_cache_size = 551, /* server_key_cache_size */
- YYSYMBOL_server_key_cache_slabs = 552, /* server_key_cache_slabs */
- YYSYMBOL_server_neg_cache_size = 553, /* server_neg_cache_size */
- YYSYMBOL_server_local_zone = 554, /* server_local_zone */
- YYSYMBOL_server_local_data = 555, /* server_local_data */
- YYSYMBOL_server_local_data_ptr = 556, /* server_local_data_ptr */
- YYSYMBOL_server_minimal_responses = 557, /* server_minimal_responses */
- YYSYMBOL_server_rrset_roundrobin = 558, /* server_rrset_roundrobin */
- YYSYMBOL_server_unknown_server_time_limit = 559, /* server_unknown_server_time_limit */
- YYSYMBOL_server_max_udp_size = 560, /* server_max_udp_size */
- YYSYMBOL_server_dns64_prefix = 561, /* server_dns64_prefix */
- YYSYMBOL_server_dns64_synthall = 562, /* server_dns64_synthall */
- YYSYMBOL_server_dns64_ignore_aaaa = 563, /* server_dns64_ignore_aaaa */
- YYSYMBOL_server_nat64_prefix = 564, /* server_nat64_prefix */
- YYSYMBOL_server_define_tag = 565, /* server_define_tag */
- YYSYMBOL_server_local_zone_tag = 566, /* server_local_zone_tag */
- YYSYMBOL_server_access_control_tag = 567, /* server_access_control_tag */
- YYSYMBOL_server_access_control_tag_action = 568, /* server_access_control_tag_action */
- YYSYMBOL_server_access_control_tag_data = 569, /* server_access_control_tag_data */
- YYSYMBOL_server_local_zone_override = 570, /* server_local_zone_override */
- YYSYMBOL_server_access_control_view = 571, /* server_access_control_view */
- YYSYMBOL_server_interface_tag = 572, /* server_interface_tag */
- YYSYMBOL_server_interface_tag_action = 573, /* server_interface_tag_action */
- YYSYMBOL_server_interface_tag_data = 574, /* server_interface_tag_data */
- YYSYMBOL_server_interface_view = 575, /* server_interface_view */
- YYSYMBOL_server_response_ip_tag = 576, /* server_response_ip_tag */
- YYSYMBOL_server_ip_ratelimit = 577, /* server_ip_ratelimit */
- YYSYMBOL_server_ip_ratelimit_cookie = 578, /* server_ip_ratelimit_cookie */
- YYSYMBOL_server_ratelimit = 579, /* server_ratelimit */
- YYSYMBOL_server_ip_ratelimit_size = 580, /* server_ip_ratelimit_size */
- YYSYMBOL_server_ratelimit_size = 581, /* server_ratelimit_size */
- YYSYMBOL_server_ip_ratelimit_slabs = 582, /* server_ip_ratelimit_slabs */
- YYSYMBOL_server_ratelimit_slabs = 583, /* server_ratelimit_slabs */
- YYSYMBOL_server_ratelimit_for_domain = 584, /* server_ratelimit_for_domain */
- YYSYMBOL_server_ratelimit_below_domain = 585, /* server_ratelimit_below_domain */
- YYSYMBOL_server_ip_ratelimit_factor = 586, /* server_ip_ratelimit_factor */
- YYSYMBOL_server_ratelimit_factor = 587, /* server_ratelimit_factor */
- YYSYMBOL_server_ip_ratelimit_backoff = 588, /* server_ip_ratelimit_backoff */
- YYSYMBOL_server_ratelimit_backoff = 589, /* server_ratelimit_backoff */
- YYSYMBOL_server_outbound_msg_retry = 590, /* server_outbound_msg_retry */
- YYSYMBOL_server_max_sent_count = 591, /* server_max_sent_count */
- YYSYMBOL_server_max_query_restarts = 592, /* server_max_query_restarts */
- YYSYMBOL_server_low_rtt = 593, /* server_low_rtt */
- YYSYMBOL_server_fast_server_num = 594, /* server_fast_server_num */
- YYSYMBOL_server_fast_server_permil = 595, /* server_fast_server_permil */
- YYSYMBOL_server_qname_minimisation = 596, /* server_qname_minimisation */
- YYSYMBOL_server_qname_minimisation_strict = 597, /* server_qname_minimisation_strict */
- YYSYMBOL_server_pad_responses = 598, /* server_pad_responses */
- YYSYMBOL_server_pad_responses_block_size = 599, /* server_pad_responses_block_size */
- YYSYMBOL_server_pad_queries = 600, /* server_pad_queries */
- YYSYMBOL_server_pad_queries_block_size = 601, /* server_pad_queries_block_size */
- YYSYMBOL_server_ipsecmod_enabled = 602, /* server_ipsecmod_enabled */
- YYSYMBOL_server_ipsecmod_ignore_bogus = 603, /* server_ipsecmod_ignore_bogus */
- YYSYMBOL_server_ipsecmod_hook = 604, /* server_ipsecmod_hook */
- YYSYMBOL_server_ipsecmod_max_ttl = 605, /* server_ipsecmod_max_ttl */
- YYSYMBOL_server_ipsecmod_whitelist = 606, /* server_ipsecmod_whitelist */
- YYSYMBOL_server_ipsecmod_strict = 607, /* server_ipsecmod_strict */
- YYSYMBOL_server_edns_client_string = 608, /* server_edns_client_string */
- YYSYMBOL_server_edns_client_string_opcode = 609, /* server_edns_client_string_opcode */
- YYSYMBOL_server_ede = 610, /* server_ede */
- YYSYMBOL_server_proxy_protocol_port = 611, /* server_proxy_protocol_port */
- YYSYMBOL_stub_name = 612, /* stub_name */
- YYSYMBOL_stub_host = 613, /* stub_host */
- YYSYMBOL_stub_addr = 614, /* stub_addr */
- YYSYMBOL_stub_first = 615, /* stub_first */
- YYSYMBOL_stub_no_cache = 616, /* stub_no_cache */
- YYSYMBOL_stub_ssl_upstream = 617, /* stub_ssl_upstream */
- YYSYMBOL_stub_tcp_upstream = 618, /* stub_tcp_upstream */
- YYSYMBOL_stub_prime = 619, /* stub_prime */
- YYSYMBOL_forward_name = 620, /* forward_name */
- YYSYMBOL_forward_host = 621, /* forward_host */
- YYSYMBOL_forward_addr = 622, /* forward_addr */
- YYSYMBOL_forward_first = 623, /* forward_first */
- YYSYMBOL_forward_no_cache = 624, /* forward_no_cache */
- YYSYMBOL_forward_ssl_upstream = 625, /* forward_ssl_upstream */
- YYSYMBOL_forward_tcp_upstream = 626, /* forward_tcp_upstream */
- YYSYMBOL_auth_name = 627, /* auth_name */
- YYSYMBOL_auth_zonefile = 628, /* auth_zonefile */
- YYSYMBOL_auth_master = 629, /* auth_master */
- YYSYMBOL_auth_url = 630, /* auth_url */
- YYSYMBOL_auth_allow_notify = 631, /* auth_allow_notify */
- YYSYMBOL_auth_zonemd_check = 632, /* auth_zonemd_check */
- YYSYMBOL_auth_zonemd_reject_absence = 633, /* auth_zonemd_reject_absence */
- YYSYMBOL_auth_for_downstream = 634, /* auth_for_downstream */
- YYSYMBOL_auth_for_upstream = 635, /* auth_for_upstream */
- YYSYMBOL_auth_fallback_enabled = 636, /* auth_fallback_enabled */
- YYSYMBOL_view_name = 637, /* view_name */
- YYSYMBOL_view_local_zone = 638, /* view_local_zone */
- YYSYMBOL_view_response_ip = 639, /* view_response_ip */
- YYSYMBOL_view_response_ip_data = 640, /* view_response_ip_data */
- YYSYMBOL_view_local_data = 641, /* view_local_data */
- YYSYMBOL_view_local_data_ptr = 642, /* view_local_data_ptr */
- YYSYMBOL_view_first = 643, /* view_first */
- YYSYMBOL_rcstart = 644, /* rcstart */
- YYSYMBOL_contents_rc = 645, /* contents_rc */
- YYSYMBOL_content_rc = 646, /* content_rc */
- YYSYMBOL_rc_control_enable = 647, /* rc_control_enable */
- YYSYMBOL_rc_control_port = 648, /* rc_control_port */
- YYSYMBOL_rc_control_interface = 649, /* rc_control_interface */
- YYSYMBOL_rc_control_use_cert = 650, /* rc_control_use_cert */
- YYSYMBOL_rc_server_key_file = 651, /* rc_server_key_file */
- YYSYMBOL_rc_server_cert_file = 652, /* rc_server_cert_file */
- YYSYMBOL_rc_control_key_file = 653, /* rc_control_key_file */
- YYSYMBOL_rc_control_cert_file = 654, /* rc_control_cert_file */
- YYSYMBOL_dtstart = 655, /* dtstart */
- YYSYMBOL_contents_dt = 656, /* contents_dt */
- YYSYMBOL_content_dt = 657, /* content_dt */
- YYSYMBOL_dt_dnstap_enable = 658, /* dt_dnstap_enable */
- YYSYMBOL_dt_dnstap_bidirectional = 659, /* dt_dnstap_bidirectional */
- YYSYMBOL_dt_dnstap_socket_path = 660, /* dt_dnstap_socket_path */
- YYSYMBOL_dt_dnstap_ip = 661, /* dt_dnstap_ip */
- YYSYMBOL_dt_dnstap_tls = 662, /* dt_dnstap_tls */
- YYSYMBOL_dt_dnstap_tls_server_name = 663, /* dt_dnstap_tls_server_name */
- YYSYMBOL_dt_dnstap_tls_cert_bundle = 664, /* dt_dnstap_tls_cert_bundle */
- YYSYMBOL_dt_dnstap_tls_client_key_file = 665, /* dt_dnstap_tls_client_key_file */
- YYSYMBOL_dt_dnstap_tls_client_cert_file = 666, /* dt_dnstap_tls_client_cert_file */
- YYSYMBOL_dt_dnstap_send_identity = 667, /* dt_dnstap_send_identity */
- YYSYMBOL_dt_dnstap_send_version = 668, /* dt_dnstap_send_version */
- YYSYMBOL_dt_dnstap_identity = 669, /* dt_dnstap_identity */
- YYSYMBOL_dt_dnstap_version = 670, /* dt_dnstap_version */
- YYSYMBOL_dt_dnstap_log_resolver_query_messages = 671, /* dt_dnstap_log_resolver_query_messages */
- YYSYMBOL_dt_dnstap_log_resolver_response_messages = 672, /* dt_dnstap_log_resolver_response_messages */
- YYSYMBOL_dt_dnstap_log_client_query_messages = 673, /* dt_dnstap_log_client_query_messages */
- YYSYMBOL_dt_dnstap_log_client_response_messages = 674, /* dt_dnstap_log_client_response_messages */
- YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 675, /* dt_dnstap_log_forwarder_query_messages */
- YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 676, /* dt_dnstap_log_forwarder_response_messages */
- YYSYMBOL_pythonstart = 677, /* pythonstart */
- YYSYMBOL_contents_py = 678, /* contents_py */
- YYSYMBOL_content_py = 679, /* content_py */
- YYSYMBOL_py_script = 680, /* py_script */
- YYSYMBOL_dynlibstart = 681, /* dynlibstart */
- YYSYMBOL_contents_dl = 682, /* contents_dl */
- YYSYMBOL_content_dl = 683, /* content_dl */
- YYSYMBOL_dl_file = 684, /* dl_file */
- YYSYMBOL_server_disable_dnssec_lame_check = 685, /* server_disable_dnssec_lame_check */
- YYSYMBOL_server_log_identity = 686, /* server_log_identity */
- YYSYMBOL_server_response_ip = 687, /* server_response_ip */
- YYSYMBOL_server_response_ip_data = 688, /* server_response_ip_data */
- YYSYMBOL_dnscstart = 689, /* dnscstart */
- YYSYMBOL_contents_dnsc = 690, /* contents_dnsc */
- YYSYMBOL_content_dnsc = 691, /* content_dnsc */
- YYSYMBOL_dnsc_dnscrypt_enable = 692, /* dnsc_dnscrypt_enable */
- YYSYMBOL_dnsc_dnscrypt_port = 693, /* dnsc_dnscrypt_port */
- YYSYMBOL_dnsc_dnscrypt_provider = 694, /* dnsc_dnscrypt_provider */
- YYSYMBOL_dnsc_dnscrypt_provider_cert = 695, /* dnsc_dnscrypt_provider_cert */
- YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 696, /* dnsc_dnscrypt_provider_cert_rotated */
- YYSYMBOL_dnsc_dnscrypt_secret_key = 697, /* dnsc_dnscrypt_secret_key */
- YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 698, /* dnsc_dnscrypt_shared_secret_cache_size */
- YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 699, /* dnsc_dnscrypt_shared_secret_cache_slabs */
- YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 700, /* dnsc_dnscrypt_nonce_cache_size */
- YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 701, /* dnsc_dnscrypt_nonce_cache_slabs */
- YYSYMBOL_cachedbstart = 702, /* cachedbstart */
- YYSYMBOL_contents_cachedb = 703, /* contents_cachedb */
- YYSYMBOL_content_cachedb = 704, /* content_cachedb */
- YYSYMBOL_cachedb_backend_name = 705, /* cachedb_backend_name */
- YYSYMBOL_cachedb_secret_seed = 706, /* cachedb_secret_seed */
- YYSYMBOL_cachedb_no_store = 707, /* cachedb_no_store */
- YYSYMBOL_redis_server_host = 708, /* redis_server_host */
- YYSYMBOL_redis_server_port = 709, /* redis_server_port */
- YYSYMBOL_redis_server_path = 710, /* redis_server_path */
- YYSYMBOL_redis_server_password = 711, /* redis_server_password */
- YYSYMBOL_redis_timeout = 712, /* redis_timeout */
- YYSYMBOL_redis_expire_records = 713, /* redis_expire_records */
- YYSYMBOL_redis_logical_db = 714, /* redis_logical_db */
- YYSYMBOL_server_tcp_connection_limit = 715, /* server_tcp_connection_limit */
- YYSYMBOL_server_answer_cookie = 716, /* server_answer_cookie */
- YYSYMBOL_server_cookie_secret = 717, /* server_cookie_secret */
- YYSYMBOL_ipsetstart = 718, /* ipsetstart */
- YYSYMBOL_contents_ipset = 719, /* contents_ipset */
- YYSYMBOL_content_ipset = 720, /* content_ipset */
- YYSYMBOL_ipset_name_v4 = 721, /* ipset_name_v4 */
- YYSYMBOL_ipset_name_v6 = 722 /* ipset_name_v6 */
+ YYSYMBOL_VAR_LOG_DESTADDR = 349, /* VAR_LOG_DESTADDR */
+ YYSYMBOL_YYACCEPT = 350, /* $accept */
+ YYSYMBOL_toplevelvars = 351, /* toplevelvars */
+ YYSYMBOL_toplevelvar = 352, /* toplevelvar */
+ YYSYMBOL_force_toplevel = 353, /* force_toplevel */
+ YYSYMBOL_serverstart = 354, /* serverstart */
+ YYSYMBOL_contents_server = 355, /* contents_server */
+ YYSYMBOL_content_server = 356, /* content_server */
+ YYSYMBOL_stubstart = 357, /* stubstart */
+ YYSYMBOL_contents_stub = 358, /* contents_stub */
+ YYSYMBOL_content_stub = 359, /* content_stub */
+ YYSYMBOL_forwardstart = 360, /* forwardstart */
+ YYSYMBOL_contents_forward = 361, /* contents_forward */
+ YYSYMBOL_content_forward = 362, /* content_forward */
+ YYSYMBOL_viewstart = 363, /* viewstart */
+ YYSYMBOL_contents_view = 364, /* contents_view */
+ YYSYMBOL_content_view = 365, /* content_view */
+ YYSYMBOL_authstart = 366, /* authstart */
+ YYSYMBOL_contents_auth = 367, /* contents_auth */
+ YYSYMBOL_content_auth = 368, /* content_auth */
+ YYSYMBOL_rpz_tag = 369, /* rpz_tag */
+ YYSYMBOL_rpz_action_override = 370, /* rpz_action_override */
+ YYSYMBOL_rpz_cname_override = 371, /* rpz_cname_override */
+ YYSYMBOL_rpz_log = 372, /* rpz_log */
+ YYSYMBOL_rpz_log_name = 373, /* rpz_log_name */
+ YYSYMBOL_rpz_signal_nxdomain_ra = 374, /* rpz_signal_nxdomain_ra */
+ YYSYMBOL_rpzstart = 375, /* rpzstart */
+ YYSYMBOL_contents_rpz = 376, /* contents_rpz */
+ YYSYMBOL_content_rpz = 377, /* content_rpz */
+ YYSYMBOL_server_num_threads = 378, /* server_num_threads */
+ YYSYMBOL_server_verbosity = 379, /* server_verbosity */
+ YYSYMBOL_server_statistics_interval = 380, /* server_statistics_interval */
+ YYSYMBOL_server_statistics_cumulative = 381, /* server_statistics_cumulative */
+ YYSYMBOL_server_extended_statistics = 382, /* server_extended_statistics */
+ YYSYMBOL_server_statistics_inhibit_zero = 383, /* server_statistics_inhibit_zero */
+ YYSYMBOL_server_shm_enable = 384, /* server_shm_enable */
+ YYSYMBOL_server_shm_key = 385, /* server_shm_key */
+ YYSYMBOL_server_port = 386, /* server_port */
+ YYSYMBOL_server_send_client_subnet = 387, /* server_send_client_subnet */
+ YYSYMBOL_server_client_subnet_zone = 388, /* server_client_subnet_zone */
+ YYSYMBOL_server_client_subnet_always_forward = 389, /* server_client_subnet_always_forward */
+ YYSYMBOL_server_client_subnet_opcode = 390, /* server_client_subnet_opcode */
+ YYSYMBOL_server_max_client_subnet_ipv4 = 391, /* server_max_client_subnet_ipv4 */
+ YYSYMBOL_server_max_client_subnet_ipv6 = 392, /* server_max_client_subnet_ipv6 */
+ YYSYMBOL_server_min_client_subnet_ipv4 = 393, /* server_min_client_subnet_ipv4 */
+ YYSYMBOL_server_min_client_subnet_ipv6 = 394, /* server_min_client_subnet_ipv6 */
+ YYSYMBOL_server_max_ecs_tree_size_ipv4 = 395, /* server_max_ecs_tree_size_ipv4 */
+ YYSYMBOL_server_max_ecs_tree_size_ipv6 = 396, /* server_max_ecs_tree_size_ipv6 */
+ YYSYMBOL_server_interface = 397, /* server_interface */
+ YYSYMBOL_server_outgoing_interface = 398, /* server_outgoing_interface */
+ YYSYMBOL_server_outgoing_range = 399, /* server_outgoing_range */
+ YYSYMBOL_server_outgoing_port_permit = 400, /* server_outgoing_port_permit */
+ YYSYMBOL_server_outgoing_port_avoid = 401, /* server_outgoing_port_avoid */
+ YYSYMBOL_server_outgoing_num_tcp = 402, /* server_outgoing_num_tcp */
+ YYSYMBOL_server_incoming_num_tcp = 403, /* server_incoming_num_tcp */
+ YYSYMBOL_server_interface_automatic = 404, /* server_interface_automatic */
+ YYSYMBOL_server_interface_automatic_ports = 405, /* server_interface_automatic_ports */
+ YYSYMBOL_server_do_ip4 = 406, /* server_do_ip4 */
+ YYSYMBOL_server_do_ip6 = 407, /* server_do_ip6 */
+ YYSYMBOL_server_do_nat64 = 408, /* server_do_nat64 */
+ YYSYMBOL_server_do_udp = 409, /* server_do_udp */
+ YYSYMBOL_server_do_tcp = 410, /* server_do_tcp */
+ YYSYMBOL_server_prefer_ip4 = 411, /* server_prefer_ip4 */
+ YYSYMBOL_server_prefer_ip6 = 412, /* server_prefer_ip6 */
+ YYSYMBOL_server_tcp_mss = 413, /* server_tcp_mss */
+ YYSYMBOL_server_outgoing_tcp_mss = 414, /* server_outgoing_tcp_mss */
+ YYSYMBOL_server_tcp_idle_timeout = 415, /* server_tcp_idle_timeout */
+ YYSYMBOL_server_max_reuse_tcp_queries = 416, /* server_max_reuse_tcp_queries */
+ YYSYMBOL_server_tcp_reuse_timeout = 417, /* server_tcp_reuse_timeout */
+ YYSYMBOL_server_tcp_auth_query_timeout = 418, /* server_tcp_auth_query_timeout */
+ YYSYMBOL_server_tcp_keepalive = 419, /* server_tcp_keepalive */
+ YYSYMBOL_server_tcp_keepalive_timeout = 420, /* server_tcp_keepalive_timeout */
+ YYSYMBOL_server_sock_queue_timeout = 421, /* server_sock_queue_timeout */
+ YYSYMBOL_server_tcp_upstream = 422, /* server_tcp_upstream */
+ YYSYMBOL_server_udp_upstream_without_downstream = 423, /* server_udp_upstream_without_downstream */
+ YYSYMBOL_server_ssl_upstream = 424, /* server_ssl_upstream */
+ YYSYMBOL_server_ssl_service_key = 425, /* server_ssl_service_key */
+ YYSYMBOL_server_ssl_service_pem = 426, /* server_ssl_service_pem */
+ YYSYMBOL_server_ssl_port = 427, /* server_ssl_port */
+ YYSYMBOL_server_tls_cert_bundle = 428, /* server_tls_cert_bundle */
+ YYSYMBOL_server_tls_win_cert = 429, /* server_tls_win_cert */
+ YYSYMBOL_server_tls_additional_port = 430, /* server_tls_additional_port */
+ YYSYMBOL_server_tls_ciphers = 431, /* server_tls_ciphers */
+ YYSYMBOL_server_tls_ciphersuites = 432, /* server_tls_ciphersuites */
+ YYSYMBOL_server_tls_session_ticket_keys = 433, /* server_tls_session_ticket_keys */
+ YYSYMBOL_server_tls_use_sni = 434, /* server_tls_use_sni */
+ YYSYMBOL_server_https_port = 435, /* server_https_port */
+ YYSYMBOL_server_http_endpoint = 436, /* server_http_endpoint */
+ YYSYMBOL_server_http_max_streams = 437, /* server_http_max_streams */
+ YYSYMBOL_server_http_query_buffer_size = 438, /* server_http_query_buffer_size */
+ YYSYMBOL_server_http_response_buffer_size = 439, /* server_http_response_buffer_size */
+ YYSYMBOL_server_http_nodelay = 440, /* server_http_nodelay */
+ YYSYMBOL_server_http_notls_downstream = 441, /* server_http_notls_downstream */
+ YYSYMBOL_server_use_systemd = 442, /* server_use_systemd */
+ YYSYMBOL_server_do_daemonize = 443, /* server_do_daemonize */
+ YYSYMBOL_server_use_syslog = 444, /* server_use_syslog */
+ YYSYMBOL_server_log_time_ascii = 445, /* server_log_time_ascii */
+ YYSYMBOL_server_log_queries = 446, /* server_log_queries */
+ YYSYMBOL_server_log_replies = 447, /* server_log_replies */
+ YYSYMBOL_server_log_tag_queryreply = 448, /* server_log_tag_queryreply */
+ YYSYMBOL_server_log_servfail = 449, /* server_log_servfail */
+ YYSYMBOL_server_log_destaddr = 450, /* server_log_destaddr */
+ YYSYMBOL_server_log_local_actions = 451, /* server_log_local_actions */
+ YYSYMBOL_server_chroot = 452, /* server_chroot */
+ YYSYMBOL_server_username = 453, /* server_username */
+ YYSYMBOL_server_directory = 454, /* server_directory */
+ YYSYMBOL_server_logfile = 455, /* server_logfile */
+ YYSYMBOL_server_pidfile = 456, /* server_pidfile */
+ YYSYMBOL_server_root_hints = 457, /* server_root_hints */
+ YYSYMBOL_server_dlv_anchor_file = 458, /* server_dlv_anchor_file */
+ YYSYMBOL_server_dlv_anchor = 459, /* server_dlv_anchor */
+ YYSYMBOL_server_auto_trust_anchor_file = 460, /* server_auto_trust_anchor_file */
+ YYSYMBOL_server_trust_anchor_file = 461, /* server_trust_anchor_file */
+ YYSYMBOL_server_trusted_keys_file = 462, /* server_trusted_keys_file */
+ YYSYMBOL_server_trust_anchor = 463, /* server_trust_anchor */
+ YYSYMBOL_server_trust_anchor_signaling = 464, /* server_trust_anchor_signaling */
+ YYSYMBOL_server_root_key_sentinel = 465, /* server_root_key_sentinel */
+ YYSYMBOL_server_domain_insecure = 466, /* server_domain_insecure */
+ YYSYMBOL_server_hide_identity = 467, /* server_hide_identity */
+ YYSYMBOL_server_hide_version = 468, /* server_hide_version */
+ YYSYMBOL_server_hide_trustanchor = 469, /* server_hide_trustanchor */
+ YYSYMBOL_server_hide_http_user_agent = 470, /* server_hide_http_user_agent */
+ YYSYMBOL_server_identity = 471, /* server_identity */
+ YYSYMBOL_server_version = 472, /* server_version */
+ YYSYMBOL_server_http_user_agent = 473, /* server_http_user_agent */
+ YYSYMBOL_server_nsid = 474, /* server_nsid */
+ YYSYMBOL_server_so_rcvbuf = 475, /* server_so_rcvbuf */
+ YYSYMBOL_server_so_sndbuf = 476, /* server_so_sndbuf */
+ YYSYMBOL_server_so_reuseport = 477, /* server_so_reuseport */
+ YYSYMBOL_server_ip_transparent = 478, /* server_ip_transparent */
+ YYSYMBOL_server_ip_freebind = 479, /* server_ip_freebind */
+ YYSYMBOL_server_ip_dscp = 480, /* server_ip_dscp */
+ YYSYMBOL_server_stream_wait_size = 481, /* server_stream_wait_size */
+ YYSYMBOL_server_edns_buffer_size = 482, /* server_edns_buffer_size */
+ YYSYMBOL_server_msg_buffer_size = 483, /* server_msg_buffer_size */
+ YYSYMBOL_server_msg_cache_size = 484, /* server_msg_cache_size */
+ YYSYMBOL_server_msg_cache_slabs = 485, /* server_msg_cache_slabs */
+ YYSYMBOL_server_num_queries_per_thread = 486, /* server_num_queries_per_thread */
+ YYSYMBOL_server_jostle_timeout = 487, /* server_jostle_timeout */
+ YYSYMBOL_server_delay_close = 488, /* server_delay_close */
+ YYSYMBOL_server_udp_connect = 489, /* server_udp_connect */
+ YYSYMBOL_server_unblock_lan_zones = 490, /* server_unblock_lan_zones */
+ YYSYMBOL_server_insecure_lan_zones = 491, /* server_insecure_lan_zones */
+ YYSYMBOL_server_rrset_cache_size = 492, /* server_rrset_cache_size */
+ YYSYMBOL_server_rrset_cache_slabs = 493, /* server_rrset_cache_slabs */
+ YYSYMBOL_server_infra_host_ttl = 494, /* server_infra_host_ttl */
+ YYSYMBOL_server_infra_lame_ttl = 495, /* server_infra_lame_ttl */
+ YYSYMBOL_server_infra_cache_numhosts = 496, /* server_infra_cache_numhosts */
+ YYSYMBOL_server_infra_cache_lame_size = 497, /* server_infra_cache_lame_size */
+ YYSYMBOL_server_infra_cache_slabs = 498, /* server_infra_cache_slabs */
+ YYSYMBOL_server_infra_cache_min_rtt = 499, /* server_infra_cache_min_rtt */
+ YYSYMBOL_server_infra_cache_max_rtt = 500, /* server_infra_cache_max_rtt */
+ YYSYMBOL_server_infra_keep_probing = 501, /* server_infra_keep_probing */
+ YYSYMBOL_server_target_fetch_policy = 502, /* server_target_fetch_policy */
+ YYSYMBOL_server_harden_short_bufsize = 503, /* server_harden_short_bufsize */
+ YYSYMBOL_server_harden_large_queries = 504, /* server_harden_large_queries */
+ YYSYMBOL_server_harden_glue = 505, /* server_harden_glue */
+ YYSYMBOL_server_harden_dnssec_stripped = 506, /* server_harden_dnssec_stripped */
+ YYSYMBOL_server_harden_below_nxdomain = 507, /* server_harden_below_nxdomain */
+ YYSYMBOL_server_harden_referral_path = 508, /* server_harden_referral_path */
+ YYSYMBOL_server_harden_algo_downgrade = 509, /* server_harden_algo_downgrade */
+ YYSYMBOL_server_harden_unknown_additional = 510, /* server_harden_unknown_additional */
+ YYSYMBOL_server_use_caps_for_id = 511, /* server_use_caps_for_id */
+ YYSYMBOL_server_caps_whitelist = 512, /* server_caps_whitelist */
+ YYSYMBOL_server_private_address = 513, /* server_private_address */
+ YYSYMBOL_server_private_domain = 514, /* server_private_domain */
+ YYSYMBOL_server_prefetch = 515, /* server_prefetch */
+ YYSYMBOL_server_prefetch_key = 516, /* server_prefetch_key */
+ YYSYMBOL_server_deny_any = 517, /* server_deny_any */
+ YYSYMBOL_server_unwanted_reply_threshold = 518, /* server_unwanted_reply_threshold */
+ YYSYMBOL_server_do_not_query_address = 519, /* server_do_not_query_address */
+ YYSYMBOL_server_do_not_query_localhost = 520, /* server_do_not_query_localhost */
+ YYSYMBOL_server_access_control = 521, /* server_access_control */
+ YYSYMBOL_server_interface_action = 522, /* server_interface_action */
+ YYSYMBOL_server_module_conf = 523, /* server_module_conf */
+ YYSYMBOL_server_val_override_date = 524, /* server_val_override_date */
+ YYSYMBOL_server_val_sig_skew_min = 525, /* server_val_sig_skew_min */
+ YYSYMBOL_server_val_sig_skew_max = 526, /* server_val_sig_skew_max */
+ YYSYMBOL_server_val_max_restart = 527, /* server_val_max_restart */
+ YYSYMBOL_server_cache_max_ttl = 528, /* server_cache_max_ttl */
+ YYSYMBOL_server_cache_max_negative_ttl = 529, /* server_cache_max_negative_ttl */
+ YYSYMBOL_server_cache_min_ttl = 530, /* server_cache_min_ttl */
+ YYSYMBOL_server_bogus_ttl = 531, /* server_bogus_ttl */
+ YYSYMBOL_server_val_clean_additional = 532, /* server_val_clean_additional */
+ YYSYMBOL_server_val_permissive_mode = 533, /* server_val_permissive_mode */
+ YYSYMBOL_server_aggressive_nsec = 534, /* server_aggressive_nsec */
+ YYSYMBOL_server_ignore_cd_flag = 535, /* server_ignore_cd_flag */
+ YYSYMBOL_server_disable_edns_do = 536, /* server_disable_edns_do */
+ YYSYMBOL_server_serve_expired = 537, /* server_serve_expired */
+ YYSYMBOL_server_serve_expired_ttl = 538, /* server_serve_expired_ttl */
+ YYSYMBOL_server_serve_expired_ttl_reset = 539, /* server_serve_expired_ttl_reset */
+ YYSYMBOL_server_serve_expired_reply_ttl = 540, /* server_serve_expired_reply_ttl */
+ YYSYMBOL_server_serve_expired_client_timeout = 541, /* server_serve_expired_client_timeout */
+ YYSYMBOL_server_ede_serve_expired = 542, /* server_ede_serve_expired */
+ YYSYMBOL_server_serve_original_ttl = 543, /* server_serve_original_ttl */
+ YYSYMBOL_server_fake_dsa = 544, /* server_fake_dsa */
+ YYSYMBOL_server_fake_sha1 = 545, /* server_fake_sha1 */
+ YYSYMBOL_server_val_log_level = 546, /* server_val_log_level */
+ YYSYMBOL_server_val_nsec3_keysize_iterations = 547, /* server_val_nsec3_keysize_iterations */
+ YYSYMBOL_server_zonemd_permissive_mode = 548, /* server_zonemd_permissive_mode */
+ YYSYMBOL_server_add_holddown = 549, /* server_add_holddown */
+ YYSYMBOL_server_del_holddown = 550, /* server_del_holddown */
+ YYSYMBOL_server_keep_missing = 551, /* server_keep_missing */
+ YYSYMBOL_server_permit_small_holddown = 552, /* server_permit_small_holddown */
+ YYSYMBOL_server_key_cache_size = 553, /* server_key_cache_size */
+ YYSYMBOL_server_key_cache_slabs = 554, /* server_key_cache_slabs */
+ YYSYMBOL_server_neg_cache_size = 555, /* server_neg_cache_size */
+ YYSYMBOL_server_local_zone = 556, /* server_local_zone */
+ YYSYMBOL_server_local_data = 557, /* server_local_data */
+ YYSYMBOL_server_local_data_ptr = 558, /* server_local_data_ptr */
+ YYSYMBOL_server_minimal_responses = 559, /* server_minimal_responses */
+ YYSYMBOL_server_rrset_roundrobin = 560, /* server_rrset_roundrobin */
+ YYSYMBOL_server_unknown_server_time_limit = 561, /* server_unknown_server_time_limit */
+ YYSYMBOL_server_max_udp_size = 562, /* server_max_udp_size */
+ YYSYMBOL_server_dns64_prefix = 563, /* server_dns64_prefix */
+ YYSYMBOL_server_dns64_synthall = 564, /* server_dns64_synthall */
+ YYSYMBOL_server_dns64_ignore_aaaa = 565, /* server_dns64_ignore_aaaa */
+ YYSYMBOL_server_nat64_prefix = 566, /* server_nat64_prefix */
+ YYSYMBOL_server_define_tag = 567, /* server_define_tag */
+ YYSYMBOL_server_local_zone_tag = 568, /* server_local_zone_tag */
+ YYSYMBOL_server_access_control_tag = 569, /* server_access_control_tag */
+ YYSYMBOL_server_access_control_tag_action = 570, /* server_access_control_tag_action */
+ YYSYMBOL_server_access_control_tag_data = 571, /* server_access_control_tag_data */
+ YYSYMBOL_server_local_zone_override = 572, /* server_local_zone_override */
+ YYSYMBOL_server_access_control_view = 573, /* server_access_control_view */
+ YYSYMBOL_server_interface_tag = 574, /* server_interface_tag */
+ YYSYMBOL_server_interface_tag_action = 575, /* server_interface_tag_action */
+ YYSYMBOL_server_interface_tag_data = 576, /* server_interface_tag_data */
+ YYSYMBOL_server_interface_view = 577, /* server_interface_view */
+ YYSYMBOL_server_response_ip_tag = 578, /* server_response_ip_tag */
+ YYSYMBOL_server_ip_ratelimit = 579, /* server_ip_ratelimit */
+ YYSYMBOL_server_ip_ratelimit_cookie = 580, /* server_ip_ratelimit_cookie */
+ YYSYMBOL_server_ratelimit = 581, /* server_ratelimit */
+ YYSYMBOL_server_ip_ratelimit_size = 582, /* server_ip_ratelimit_size */
+ YYSYMBOL_server_ratelimit_size = 583, /* server_ratelimit_size */
+ YYSYMBOL_server_ip_ratelimit_slabs = 584, /* server_ip_ratelimit_slabs */
+ YYSYMBOL_server_ratelimit_slabs = 585, /* server_ratelimit_slabs */
+ YYSYMBOL_server_ratelimit_for_domain = 586, /* server_ratelimit_for_domain */
+ YYSYMBOL_server_ratelimit_below_domain = 587, /* server_ratelimit_below_domain */
+ YYSYMBOL_server_ip_ratelimit_factor = 588, /* server_ip_ratelimit_factor */
+ YYSYMBOL_server_ratelimit_factor = 589, /* server_ratelimit_factor */
+ YYSYMBOL_server_ip_ratelimit_backoff = 590, /* server_ip_ratelimit_backoff */
+ YYSYMBOL_server_ratelimit_backoff = 591, /* server_ratelimit_backoff */
+ YYSYMBOL_server_outbound_msg_retry = 592, /* server_outbound_msg_retry */
+ YYSYMBOL_server_max_sent_count = 593, /* server_max_sent_count */
+ YYSYMBOL_server_max_query_restarts = 594, /* server_max_query_restarts */
+ YYSYMBOL_server_low_rtt = 595, /* server_low_rtt */
+ YYSYMBOL_server_fast_server_num = 596, /* server_fast_server_num */
+ YYSYMBOL_server_fast_server_permil = 597, /* server_fast_server_permil */
+ YYSYMBOL_server_qname_minimisation = 598, /* server_qname_minimisation */
+ YYSYMBOL_server_qname_minimisation_strict = 599, /* server_qname_minimisation_strict */
+ YYSYMBOL_server_pad_responses = 600, /* server_pad_responses */
+ YYSYMBOL_server_pad_responses_block_size = 601, /* server_pad_responses_block_size */
+ YYSYMBOL_server_pad_queries = 602, /* server_pad_queries */
+ YYSYMBOL_server_pad_queries_block_size = 603, /* server_pad_queries_block_size */
+ YYSYMBOL_server_ipsecmod_enabled = 604, /* server_ipsecmod_enabled */
+ YYSYMBOL_server_ipsecmod_ignore_bogus = 605, /* server_ipsecmod_ignore_bogus */
+ YYSYMBOL_server_ipsecmod_hook = 606, /* server_ipsecmod_hook */
+ YYSYMBOL_server_ipsecmod_max_ttl = 607, /* server_ipsecmod_max_ttl */
+ YYSYMBOL_server_ipsecmod_whitelist = 608, /* server_ipsecmod_whitelist */
+ YYSYMBOL_server_ipsecmod_strict = 609, /* server_ipsecmod_strict */
+ YYSYMBOL_server_edns_client_string = 610, /* server_edns_client_string */
+ YYSYMBOL_server_edns_client_string_opcode = 611, /* server_edns_client_string_opcode */
+ YYSYMBOL_server_ede = 612, /* server_ede */
+ YYSYMBOL_server_proxy_protocol_port = 613, /* server_proxy_protocol_port */
+ YYSYMBOL_stub_name = 614, /* stub_name */
+ YYSYMBOL_stub_host = 615, /* stub_host */
+ YYSYMBOL_stub_addr = 616, /* stub_addr */
+ YYSYMBOL_stub_first = 617, /* stub_first */
+ YYSYMBOL_stub_no_cache = 618, /* stub_no_cache */
+ YYSYMBOL_stub_ssl_upstream = 619, /* stub_ssl_upstream */
+ YYSYMBOL_stub_tcp_upstream = 620, /* stub_tcp_upstream */
+ YYSYMBOL_stub_prime = 621, /* stub_prime */
+ YYSYMBOL_forward_name = 622, /* forward_name */
+ YYSYMBOL_forward_host = 623, /* forward_host */
+ YYSYMBOL_forward_addr = 624, /* forward_addr */
+ YYSYMBOL_forward_first = 625, /* forward_first */
+ YYSYMBOL_forward_no_cache = 626, /* forward_no_cache */
+ YYSYMBOL_forward_ssl_upstream = 627, /* forward_ssl_upstream */
+ YYSYMBOL_forward_tcp_upstream = 628, /* forward_tcp_upstream */
+ YYSYMBOL_auth_name = 629, /* auth_name */
+ YYSYMBOL_auth_zonefile = 630, /* auth_zonefile */
+ YYSYMBOL_auth_master = 631, /* auth_master */
+ YYSYMBOL_auth_url = 632, /* auth_url */
+ YYSYMBOL_auth_allow_notify = 633, /* auth_allow_notify */
+ YYSYMBOL_auth_zonemd_check = 634, /* auth_zonemd_check */
+ YYSYMBOL_auth_zonemd_reject_absence = 635, /* auth_zonemd_reject_absence */
+ YYSYMBOL_auth_for_downstream = 636, /* auth_for_downstream */
+ YYSYMBOL_auth_for_upstream = 637, /* auth_for_upstream */
+ YYSYMBOL_auth_fallback_enabled = 638, /* auth_fallback_enabled */
+ YYSYMBOL_view_name = 639, /* view_name */
+ YYSYMBOL_view_local_zone = 640, /* view_local_zone */
+ YYSYMBOL_view_response_ip = 641, /* view_response_ip */
+ YYSYMBOL_view_response_ip_data = 642, /* view_response_ip_data */
+ YYSYMBOL_view_local_data = 643, /* view_local_data */
+ YYSYMBOL_view_local_data_ptr = 644, /* view_local_data_ptr */
+ YYSYMBOL_view_first = 645, /* view_first */
+ YYSYMBOL_rcstart = 646, /* rcstart */
+ YYSYMBOL_contents_rc = 647, /* contents_rc */
+ YYSYMBOL_content_rc = 648, /* content_rc */
+ YYSYMBOL_rc_control_enable = 649, /* rc_control_enable */
+ YYSYMBOL_rc_control_port = 650, /* rc_control_port */
+ YYSYMBOL_rc_control_interface = 651, /* rc_control_interface */
+ YYSYMBOL_rc_control_use_cert = 652, /* rc_control_use_cert */
+ YYSYMBOL_rc_server_key_file = 653, /* rc_server_key_file */
+ YYSYMBOL_rc_server_cert_file = 654, /* rc_server_cert_file */
+ YYSYMBOL_rc_control_key_file = 655, /* rc_control_key_file */
+ YYSYMBOL_rc_control_cert_file = 656, /* rc_control_cert_file */
+ YYSYMBOL_dtstart = 657, /* dtstart */
+ YYSYMBOL_contents_dt = 658, /* contents_dt */
+ YYSYMBOL_content_dt = 659, /* content_dt */
+ YYSYMBOL_dt_dnstap_enable = 660, /* dt_dnstap_enable */
+ YYSYMBOL_dt_dnstap_bidirectional = 661, /* dt_dnstap_bidirectional */
+ YYSYMBOL_dt_dnstap_socket_path = 662, /* dt_dnstap_socket_path */
+ YYSYMBOL_dt_dnstap_ip = 663, /* dt_dnstap_ip */
+ YYSYMBOL_dt_dnstap_tls = 664, /* dt_dnstap_tls */
+ YYSYMBOL_dt_dnstap_tls_server_name = 665, /* dt_dnstap_tls_server_name */
+ YYSYMBOL_dt_dnstap_tls_cert_bundle = 666, /* dt_dnstap_tls_cert_bundle */
+ YYSYMBOL_dt_dnstap_tls_client_key_file = 667, /* dt_dnstap_tls_client_key_file */
+ YYSYMBOL_dt_dnstap_tls_client_cert_file = 668, /* dt_dnstap_tls_client_cert_file */
+ YYSYMBOL_dt_dnstap_send_identity = 669, /* dt_dnstap_send_identity */
+ YYSYMBOL_dt_dnstap_send_version = 670, /* dt_dnstap_send_version */
+ YYSYMBOL_dt_dnstap_identity = 671, /* dt_dnstap_identity */
+ YYSYMBOL_dt_dnstap_version = 672, /* dt_dnstap_version */
+ YYSYMBOL_dt_dnstap_log_resolver_query_messages = 673, /* dt_dnstap_log_resolver_query_messages */
+ YYSYMBOL_dt_dnstap_log_resolver_response_messages = 674, /* dt_dnstap_log_resolver_response_messages */
+ YYSYMBOL_dt_dnstap_log_client_query_messages = 675, /* dt_dnstap_log_client_query_messages */
+ YYSYMBOL_dt_dnstap_log_client_response_messages = 676, /* dt_dnstap_log_client_response_messages */
+ YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 677, /* dt_dnstap_log_forwarder_query_messages */
+ YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 678, /* dt_dnstap_log_forwarder_response_messages */
+ YYSYMBOL_pythonstart = 679, /* pythonstart */
+ YYSYMBOL_contents_py = 680, /* contents_py */
+ YYSYMBOL_content_py = 681, /* content_py */
+ YYSYMBOL_py_script = 682, /* py_script */
+ YYSYMBOL_dynlibstart = 683, /* dynlibstart */
+ YYSYMBOL_contents_dl = 684, /* contents_dl */
+ YYSYMBOL_content_dl = 685, /* content_dl */
+ YYSYMBOL_dl_file = 686, /* dl_file */
+ YYSYMBOL_server_disable_dnssec_lame_check = 687, /* server_disable_dnssec_lame_check */
+ YYSYMBOL_server_log_identity = 688, /* server_log_identity */
+ YYSYMBOL_server_response_ip = 689, /* server_response_ip */
+ YYSYMBOL_server_response_ip_data = 690, /* server_response_ip_data */
+ YYSYMBOL_dnscstart = 691, /* dnscstart */
+ YYSYMBOL_contents_dnsc = 692, /* contents_dnsc */
+ YYSYMBOL_content_dnsc = 693, /* content_dnsc */
+ YYSYMBOL_dnsc_dnscrypt_enable = 694, /* dnsc_dnscrypt_enable */
+ YYSYMBOL_dnsc_dnscrypt_port = 695, /* dnsc_dnscrypt_port */
+ YYSYMBOL_dnsc_dnscrypt_provider = 696, /* dnsc_dnscrypt_provider */
+ YYSYMBOL_dnsc_dnscrypt_provider_cert = 697, /* dnsc_dnscrypt_provider_cert */
+ YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 698, /* dnsc_dnscrypt_provider_cert_rotated */
+ YYSYMBOL_dnsc_dnscrypt_secret_key = 699, /* dnsc_dnscrypt_secret_key */
+ YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 700, /* dnsc_dnscrypt_shared_secret_cache_size */
+ YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 701, /* dnsc_dnscrypt_shared_secret_cache_slabs */
+ YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 702, /* dnsc_dnscrypt_nonce_cache_size */
+ YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 703, /* dnsc_dnscrypt_nonce_cache_slabs */
+ YYSYMBOL_cachedbstart = 704, /* cachedbstart */
+ YYSYMBOL_contents_cachedb = 705, /* contents_cachedb */
+ YYSYMBOL_content_cachedb = 706, /* content_cachedb */
+ YYSYMBOL_cachedb_backend_name = 707, /* cachedb_backend_name */
+ YYSYMBOL_cachedb_secret_seed = 708, /* cachedb_secret_seed */
+ YYSYMBOL_cachedb_no_store = 709, /* cachedb_no_store */
+ YYSYMBOL_redis_server_host = 710, /* redis_server_host */
+ YYSYMBOL_redis_server_port = 711, /* redis_server_port */
+ YYSYMBOL_redis_server_path = 712, /* redis_server_path */
+ YYSYMBOL_redis_server_password = 713, /* redis_server_password */
+ YYSYMBOL_redis_timeout = 714, /* redis_timeout */
+ YYSYMBOL_redis_expire_records = 715, /* redis_expire_records */
+ YYSYMBOL_redis_logical_db = 716, /* redis_logical_db */
+ YYSYMBOL_server_tcp_connection_limit = 717, /* server_tcp_connection_limit */
+ YYSYMBOL_server_answer_cookie = 718, /* server_answer_cookie */
+ YYSYMBOL_server_cookie_secret = 719, /* server_cookie_secret */
+ YYSYMBOL_ipsetstart = 720, /* ipsetstart */
+ YYSYMBOL_contents_ipset = 721, /* contents_ipset */
+ YYSYMBOL_content_ipset = 722, /* content_ipset */
+ YYSYMBOL_ipset_name_v4 = 723, /* ipset_name_v4 */
+ YYSYMBOL_ipset_name_v6 = 724 /* ipset_name_v6 */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -1170,19 +1172,19 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 744
+#define YYLAST 745
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 349
+#define YYNTOKENS 350
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 374
+#define YYNNTS 375
/* YYNRULES -- Number of rules. */
-#define YYNRULES 725
+#define YYNRULES 727
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 1085
+#define YYNSTATES 1088
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 603
+#define YYMAXUTOK 604
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -1256,86 +1258,86 @@ static const yytype_int16 yytranslate[] =
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348
+ 345, 346, 347, 348, 349
};
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 205, 205, 205, 206, 206, 207, 207, 208, 208,
- 208, 209, 209, 210, 210, 211, 211, 212, 214, 221,
- 227, 228, 229, 229, 229, 230, 230, 231, 231, 231,
- 232, 232, 232, 233, 233, 233, 234, 234, 235, 236,
- 236, 236, 237, 237, 237, 238, 238, 239, 239, 240,
- 240, 241, 241, 242, 242, 243, 243, 244, 244, 245,
- 245, 246, 246, 246, 247, 247, 248, 248, 248, 249,
- 249, 249, 250, 250, 251, 251, 252, 252, 253, 253,
- 254, 254, 254, 255, 255, 256, 256, 257, 257, 257,
- 258, 258, 259, 259, 260, 260, 261, 261, 261, 262,
- 262, 263, 263, 264, 264, 265, 265, 266, 266, 267,
- 267, 268, 268, 269, 269, 270, 270, 270, 271, 271,
- 271, 272, 272, 272, 273, 273, 273, 273, 274, 275,
- 275, 275, 276, 276, 276, 277, 277, 278, 278, 279,
- 279, 279, 280, 280, 280, 281, 281, 282, 282, 282,
- 283, 284, 284, 284, 285, 285, 285, 286, 286, 287,
- 287, 288, 288, 289, 290, 290, 291, 291, 292, 292,
- 293, 293, 294, 294, 295, 295, 296, 296, 297, 297,
- 298, 298, 299, 299, 300, 300, 301, 301, 301, 302,
- 302, 303, 303, 304, 304, 305, 305, 305, 306, 306,
- 307, 308, 308, 309, 309, 310, 311, 311, 312, 312,
- 313, 313, 313, 314, 314, 315, 315, 315, 316, 316,
- 316, 317, 317, 318, 319, 319, 320, 320, 321, 321,
- 322, 322, 323, 323, 323, 324, 324, 324, 325, 325,
- 325, 326, 326, 327, 327, 328, 328, 329, 329, 329,
- 330, 330, 331, 331, 332, 332, 333, 333, 334, 334,
- 335, 335, 336, 336, 338, 352, 353, 354, 354, 354,
- 354, 354, 355, 355, 355, 357, 371, 372, 373, 373,
- 373, 373, 374, 374, 374, 376, 392, 393, 394, 394,
- 394, 394, 395, 395, 395, 397, 418, 419, 420, 420,
- 420, 420, 421, 421, 421, 422, 422, 422, 425, 444,
- 461, 469, 479, 486, 496, 515, 516, 517, 517, 517,
- 517, 517, 518, 518, 518, 519, 519, 519, 519, 521,
- 530, 539, 550, 559, 568, 577, 586, 597, 606, 618,
- 632, 647, 658, 675, 692, 709, 726, 741, 756, 769,
- 784, 793, 802, 811, 820, 829, 838, 845, 854, 863,
- 872, 881, 890, 899, 908, 917, 926, 939, 950, 961,
- 972, 981, 994, 1007, 1016, 1025, 1034, 1041, 1048, 1057,
- 1064, 1073, 1081, 1088, 1095, 1103, 1112, 1120, 1136, 1144,
- 1152, 1160, 1168, 1176, 1185, 1194, 1208, 1217, 1226, 1235,
- 1244, 1253, 1262, 1269, 1276, 1302, 1310, 1317, 1324, 1331,
- 1338, 1346, 1354, 1362, 1369, 1380, 1391, 1398, 1407, 1416,
- 1425, 1434, 1441, 1448, 1455, 1471, 1479, 1487, 1497, 1507,
- 1517, 1531, 1539, 1552, 1563, 1571, 1584, 1593, 1602, 1611,
- 1620, 1630, 1640, 1648, 1661, 1670, 1678, 1687, 1695, 1708,
- 1717, 1726, 1736, 1743, 1753, 1763, 1773, 1783, 1793, 1803,
- 1813, 1823, 1833, 1840, 1847, 1854, 1863, 1872, 1881, 1890,
- 1897, 1907, 1915, 1924, 1931, 1949, 1962, 1975, 1988, 1997,
- 2006, 2015, 2024, 2034, 2044, 2055, 2064, 2073, 2082, 2091,
- 2100, 2109, 2118, 2127, 2136, 2149, 2162, 2171, 2178, 2187,
- 2196, 2205, 2214, 2224, 2232, 2245, 2253, 2309, 2316, 2331,
- 2341, 2351, 2358, 2365, 2372, 2381, 2389, 2396, 2410, 2431,
- 2452, 2464, 2476, 2488, 2497, 2518, 2530, 2542, 2551, 2572,
- 2581, 2590, 2599, 2607, 2615, 2628, 2641, 2656, 2671, 2680,
- 2689, 2699, 2709, 2718, 2727, 2736, 2742, 2751, 2760, 2770,
- 2780, 2790, 2799, 2809, 2818, 2831, 2844, 2856, 2870, 2882,
- 2896, 2905, 2916, 2925, 2932, 2942, 2949, 2956, 2965, 2974,
- 2984, 2994, 3004, 3014, 3021, 3028, 3037, 3046, 3056, 3066,
- 3076, 3083, 3090, 3097, 3105, 3115, 3125, 3135, 3145, 3155,
- 3165, 3221, 3231, 3239, 3247, 3262, 3271, 3277, 3278, 3279,
- 3279, 3279, 3280, 3280, 3280, 3281, 3281, 3283, 3293, 3302,
- 3309, 3316, 3323, 3330, 3337, 3344, 3350, 3351, 3352, 3352,
- 3352, 3353, 3353, 3353, 3354, 3355, 3355, 3356, 3356, 3357,
- 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3365, 3374, 3384,
- 3391, 3398, 3407, 3414, 3421, 3428, 3435, 3444, 3453, 3460,
- 3467, 3477, 3487, 3497, 3507, 3517, 3527, 3533, 3534, 3535,
- 3537, 3544, 3550, 3551, 3552, 3554, 3561, 3571, 3578, 3587,
- 3595, 3601, 3602, 3604, 3604, 3604, 3605, 3605, 3606, 3607,
- 3608, 3609, 3610, 3612, 3621, 3630, 3637, 3646, 3653, 3662,
- 3670, 3683, 3691, 3704, 3710, 3711, 3712, 3712, 3713, 3713,
- 3713, 3714, 3714, 3714, 3715, 3715, 3717, 3729, 3741, 3754,
- 3766, 3781, 3793, 3805, 3818, 3831, 3846, 3857, 3866, 3882,
- 3888, 3889, 3890, 3890, 3892, 3907
+ 0, 206, 206, 206, 207, 207, 208, 208, 209, 209,
+ 209, 210, 210, 211, 211, 212, 212, 213, 215, 222,
+ 228, 229, 230, 230, 230, 231, 231, 232, 232, 232,
+ 233, 233, 233, 234, 234, 234, 235, 235, 236, 237,
+ 237, 237, 238, 238, 238, 239, 239, 240, 240, 241,
+ 241, 242, 242, 243, 243, 244, 244, 245, 245, 246,
+ 246, 247, 247, 247, 248, 248, 249, 249, 249, 250,
+ 250, 250, 251, 251, 252, 252, 253, 253, 254, 254,
+ 255, 255, 255, 256, 256, 257, 257, 258, 258, 258,
+ 259, 259, 260, 260, 261, 261, 262, 262, 262, 263,
+ 263, 264, 264, 265, 265, 266, 266, 267, 267, 268,
+ 268, 269, 269, 270, 270, 271, 271, 271, 272, 272,
+ 272, 273, 273, 273, 274, 274, 274, 274, 275, 276,
+ 276, 276, 277, 277, 277, 278, 278, 279, 279, 280,
+ 280, 280, 281, 281, 281, 282, 282, 283, 283, 283,
+ 284, 285, 285, 285, 286, 286, 286, 287, 287, 288,
+ 288, 289, 289, 290, 291, 291, 292, 292, 293, 293,
+ 294, 294, 295, 295, 296, 296, 297, 297, 298, 298,
+ 299, 299, 300, 300, 301, 301, 302, 302, 302, 303,
+ 303, 304, 304, 305, 305, 306, 306, 306, 307, 307,
+ 308, 309, 309, 310, 310, 311, 312, 312, 313, 313,
+ 314, 314, 314, 315, 315, 316, 316, 316, 317, 317,
+ 317, 318, 318, 319, 320, 320, 321, 321, 322, 322,
+ 323, 323, 324, 324, 324, 325, 325, 325, 326, 326,
+ 326, 327, 327, 328, 328, 329, 329, 330, 330, 330,
+ 331, 331, 332, 332, 333, 333, 334, 334, 335, 335,
+ 336, 336, 337, 337, 338, 340, 354, 355, 356, 356,
+ 356, 356, 356, 357, 357, 357, 359, 373, 374, 375,
+ 375, 375, 375, 376, 376, 376, 378, 394, 395, 396,
+ 396, 396, 396, 397, 397, 397, 399, 420, 421, 422,
+ 422, 422, 422, 423, 423, 423, 424, 424, 424, 427,
+ 446, 463, 471, 481, 488, 498, 517, 518, 519, 519,
+ 519, 519, 519, 520, 520, 520, 521, 521, 521, 521,
+ 523, 532, 541, 552, 561, 570, 579, 588, 599, 608,
+ 620, 634, 649, 660, 677, 694, 711, 728, 743, 758,
+ 771, 786, 795, 804, 813, 822, 831, 840, 847, 856,
+ 865, 874, 883, 892, 901, 910, 919, 928, 941, 952,
+ 963, 974, 983, 996, 1009, 1018, 1027, 1036, 1043, 1050,
+ 1059, 1066, 1075, 1083, 1090, 1097, 1105, 1114, 1122, 1138,
+ 1146, 1154, 1162, 1170, 1178, 1187, 1196, 1210, 1219, 1228,
+ 1237, 1246, 1255, 1264, 1273, 1280, 1287, 1313, 1321, 1328,
+ 1335, 1342, 1349, 1357, 1365, 1373, 1380, 1391, 1402, 1409,
+ 1418, 1427, 1436, 1445, 1452, 1459, 1466, 1482, 1490, 1498,
+ 1508, 1518, 1528, 1542, 1550, 1563, 1574, 1582, 1595, 1604,
+ 1613, 1622, 1631, 1641, 1651, 1659, 1672, 1681, 1689, 1698,
+ 1706, 1719, 1728, 1737, 1747, 1754, 1764, 1774, 1784, 1794,
+ 1804, 1814, 1824, 1834, 1844, 1851, 1858, 1865, 1874, 1883,
+ 1892, 1901, 1908, 1918, 1926, 1935, 1942, 1960, 1973, 1986,
+ 1999, 2008, 2017, 2026, 2035, 2045, 2055, 2066, 2075, 2084,
+ 2093, 2102, 2111, 2120, 2129, 2138, 2147, 2160, 2173, 2182,
+ 2189, 2198, 2207, 2216, 2225, 2235, 2243, 2256, 2264, 2320,
+ 2327, 2342, 2352, 2362, 2369, 2376, 2383, 2392, 2400, 2407,
+ 2421, 2442, 2463, 2475, 2487, 2499, 2508, 2529, 2541, 2553,
+ 2562, 2583, 2592, 2601, 2610, 2618, 2626, 2639, 2652, 2667,
+ 2682, 2691, 2700, 2710, 2720, 2729, 2738, 2747, 2753, 2762,
+ 2771, 2781, 2791, 2801, 2810, 2820, 2829, 2842, 2855, 2867,
+ 2881, 2893, 2907, 2916, 2927, 2936, 2943, 2953, 2960, 2967,
+ 2976, 2985, 2995, 3005, 3015, 3025, 3032, 3039, 3048, 3057,
+ 3067, 3077, 3087, 3094, 3101, 3108, 3116, 3126, 3136, 3146,
+ 3156, 3166, 3176, 3232, 3242, 3250, 3258, 3273, 3282, 3288,
+ 3289, 3290, 3290, 3290, 3291, 3291, 3291, 3292, 3292, 3294,
+ 3304, 3313, 3320, 3327, 3334, 3341, 3348, 3355, 3361, 3362,
+ 3363, 3363, 3363, 3364, 3364, 3364, 3365, 3366, 3366, 3367,
+ 3367, 3368, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3376,
+ 3385, 3395, 3402, 3409, 3418, 3425, 3432, 3439, 3446, 3455,
+ 3464, 3471, 3478, 3488, 3498, 3508, 3518, 3528, 3538, 3544,
+ 3545, 3546, 3548, 3555, 3561, 3562, 3563, 3565, 3572, 3582,
+ 3589, 3598, 3606, 3612, 3613, 3615, 3615, 3615, 3616, 3616,
+ 3617, 3618, 3619, 3620, 3621, 3623, 3632, 3641, 3648, 3657,
+ 3664, 3673, 3681, 3694, 3702, 3715, 3721, 3722, 3723, 3723,
+ 3724, 3724, 3724, 3725, 3725, 3725, 3726, 3726, 3728, 3740,
+ 3752, 3765, 3777, 3792, 3804, 3816, 3829, 3842, 3857, 3868,
+ 3877, 3893, 3899, 3900, 3901, 3901, 3903, 3918
};
#endif
@@ -1484,18 +1486,18 @@ static const char *const yytname[] =
"VAR_INTERFACE_VIEW", "VAR_INTERFACE_TAG", "VAR_INTERFACE_TAG_ACTION",
"VAR_INTERFACE_TAG_DATA", "VAR_PROXY_PROTOCOL_PORT",
"VAR_STATISTICS_INHIBIT_ZERO", "VAR_HARDEN_UNKNOWN_ADDITIONAL",
- "VAR_DISABLE_EDNS_DO", "VAR_CACHEDB_NO_STORE", "$accept", "toplevelvars",
- "toplevelvar", "force_toplevel", "serverstart", "contents_server",
- "content_server", "stubstart", "contents_stub", "content_stub",
- "forwardstart", "contents_forward", "content_forward", "viewstart",
- "contents_view", "content_view", "authstart", "contents_auth",
- "content_auth", "rpz_tag", "rpz_action_override", "rpz_cname_override",
- "rpz_log", "rpz_log_name", "rpz_signal_nxdomain_ra", "rpzstart",
- "contents_rpz", "content_rpz", "server_num_threads", "server_verbosity",
- "server_statistics_interval", "server_statistics_cumulative",
- "server_extended_statistics", "server_statistics_inhibit_zero",
- "server_shm_enable", "server_shm_key", "server_port",
- "server_send_client_subnet", "server_client_subnet_zone",
+ "VAR_DISABLE_EDNS_DO", "VAR_CACHEDB_NO_STORE", "VAR_LOG_DESTADDR",
+ "$accept", "toplevelvars", "toplevelvar", "force_toplevel",
+ "serverstart", "contents_server", "content_server", "stubstart",
+ "contents_stub", "content_stub", "forwardstart", "contents_forward",
+ "content_forward", "viewstart", "contents_view", "content_view",
+ "authstart", "contents_auth", "content_auth", "rpz_tag",
+ "rpz_action_override", "rpz_cname_override", "rpz_log", "rpz_log_name",
+ "rpz_signal_nxdomain_ra", "rpzstart", "contents_rpz", "content_rpz",
+ "server_num_threads", "server_verbosity", "server_statistics_interval",
+ "server_statistics_cumulative", "server_extended_statistics",
+ "server_statistics_inhibit_zero", "server_shm_enable", "server_shm_key",
+ "server_port", "server_send_client_subnet", "server_client_subnet_zone",
"server_client_subnet_always_forward", "server_client_subnet_opcode",
"server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6",
"server_min_client_subnet_ipv4", "server_min_client_subnet_ipv6",
@@ -1522,37 +1524,38 @@ static const char *const yytname[] =
"server_use_systemd", "server_do_daemonize", "server_use_syslog",
"server_log_time_ascii", "server_log_queries", "server_log_replies",
"server_log_tag_queryreply", "server_log_servfail",
- "server_log_local_actions", "server_chroot", "server_username",
- "server_directory", "server_logfile", "server_pidfile",
- "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor",
- "server_auto_trust_anchor_file", "server_trust_anchor_file",
- "server_trusted_keys_file", "server_trust_anchor",
- "server_trust_anchor_signaling", "server_root_key_sentinel",
- "server_domain_insecure", "server_hide_identity", "server_hide_version",
- "server_hide_trustanchor", "server_hide_http_user_agent",
- "server_identity", "server_version", "server_http_user_agent",
- "server_nsid", "server_so_rcvbuf", "server_so_sndbuf",
- "server_so_reuseport", "server_ip_transparent", "server_ip_freebind",
- "server_ip_dscp", "server_stream_wait_size", "server_edns_buffer_size",
- "server_msg_buffer_size", "server_msg_cache_size",
- "server_msg_cache_slabs", "server_num_queries_per_thread",
- "server_jostle_timeout", "server_delay_close", "server_udp_connect",
- "server_unblock_lan_zones", "server_insecure_lan_zones",
- "server_rrset_cache_size", "server_rrset_cache_slabs",
- "server_infra_host_ttl", "server_infra_lame_ttl",
- "server_infra_cache_numhosts", "server_infra_cache_lame_size",
- "server_infra_cache_slabs", "server_infra_cache_min_rtt",
- "server_infra_cache_max_rtt", "server_infra_keep_probing",
- "server_target_fetch_policy", "server_harden_short_bufsize",
- "server_harden_large_queries", "server_harden_glue",
- "server_harden_dnssec_stripped", "server_harden_below_nxdomain",
- "server_harden_referral_path", "server_harden_algo_downgrade",
- "server_harden_unknown_additional", "server_use_caps_for_id",
- "server_caps_whitelist", "server_private_address",
- "server_private_domain", "server_prefetch", "server_prefetch_key",
- "server_deny_any", "server_unwanted_reply_threshold",
- "server_do_not_query_address", "server_do_not_query_localhost",
- "server_access_control", "server_interface_action", "server_module_conf",
+ "server_log_destaddr", "server_log_local_actions", "server_chroot",
+ "server_username", "server_directory", "server_logfile",
+ "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
+ "server_dlv_anchor", "server_auto_trust_anchor_file",
+ "server_trust_anchor_file", "server_trusted_keys_file",
+ "server_trust_anchor", "server_trust_anchor_signaling",
+ "server_root_key_sentinel", "server_domain_insecure",
+ "server_hide_identity", "server_hide_version", "server_hide_trustanchor",
+ "server_hide_http_user_agent", "server_identity", "server_version",
+ "server_http_user_agent", "server_nsid", "server_so_rcvbuf",
+ "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent",
+ "server_ip_freebind", "server_ip_dscp", "server_stream_wait_size",
+ "server_edns_buffer_size", "server_msg_buffer_size",
+ "server_msg_cache_size", "server_msg_cache_slabs",
+ "server_num_queries_per_thread", "server_jostle_timeout",
+ "server_delay_close", "server_udp_connect", "server_unblock_lan_zones",
+ "server_insecure_lan_zones", "server_rrset_cache_size",
+ "server_rrset_cache_slabs", "server_infra_host_ttl",
+ "server_infra_lame_ttl", "server_infra_cache_numhosts",
+ "server_infra_cache_lame_size", "server_infra_cache_slabs",
+ "server_infra_cache_min_rtt", "server_infra_cache_max_rtt",
+ "server_infra_keep_probing", "server_target_fetch_policy",
+ "server_harden_short_bufsize", "server_harden_large_queries",
+ "server_harden_glue", "server_harden_dnssec_stripped",
+ "server_harden_below_nxdomain", "server_harden_referral_path",
+ "server_harden_algo_downgrade", "server_harden_unknown_additional",
+ "server_use_caps_for_id", "server_caps_whitelist",
+ "server_private_address", "server_private_domain", "server_prefetch",
+ "server_prefetch_key", "server_deny_any",
+ "server_unwanted_reply_threshold", "server_do_not_query_address",
+ "server_do_not_query_localhost", "server_access_control",
+ "server_interface_action", "server_module_conf",
"server_val_override_date", "server_val_sig_skew_min",
"server_val_sig_skew_max", "server_val_max_restart",
"server_cache_max_ttl", "server_cache_max_negative_ttl",
@@ -1683,7 +1686,7 @@ static const yytype_int16 yytoknum[] =
565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
- 595, 596, 597, 598, 599, 600, 601, 602, 603
+ 595, 596, 597, 598, 599, 600, 601, 602, 603, 604
};
#endif
@@ -1704,33 +1707,32 @@ static const yytype_int16 yypact[] =
-293, 267, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- -293, -293, -13, 199, 122, 230, 56, 43, 272, 228,
- -81, -292, -100, 112, -285, 31, 32, 33, 75, 76,
- 77, 78, 79, 81, 82, 83, 89, 94, 121, 123,
+ -293, -293, -13, 262, 122, 276, 56, 45, 293, 268,
+ -81, -292, -100, -35, -285, 31, 32, 33, 75, 76,
+ 77, 78, 79, 80, 81, 83, 89, 94, 121, 123,
125, 126, 134, 160, 161, 162, 163, 164, 165, 166,
- 213, 215, 235, 237, 240, 241, 242, 243, 244, 245,
- 259, 260, 262, 263, 264, 265, 270, 271, 273, 276,
- 279, 285, 286, 295, 296, 297, 299, 300, 302, 306,
- 312, 313, 329, 331, 332, 333, 343, 344, 345, 347,
- 349, 350, 351, 352, 353, 354, 370, 371, 372, 374,
- 375, 376, 377, 378, 379, 410, 411, 412, 415, 416,
- 417, 418, 419, 421, 422, 423, 424, 425, 426, 427,
- 428, 430, 431, 432, 433, 434, 435, 436, 437, 438,
- 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
- 449, 451, 452, 453, 454, 455, 456, 457, 459, 460,
- 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
- 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
- 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
- 491, 492, 494, 495, 496, 497, 499, 500, 501, 502,
- 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
- 513, 514, 516, 517, 518, 519, 520, 521, 522, 523,
- 524, 525, 526, 527, 528, 529, 530, 531, 532, 533,
- 534, 535, 537, 538, 539, 540, 541, 542, 543, 544,
- 545, 546, 547, 549, 550, 551, 552, 553, 554, 555,
- 556, 557, 558, 559, 560, 561, 562, 563, 564, 565,
- 566, 567, 568, 569, 570, 571, 572, 573, 574, 576,
- 577, 578, 580, 581, 582, 583, 584, -293, -293, -293,
- -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+ 213, 215, 244, 245, 259, 260, 263, 264, 265, 270,
+ 271, 272, 273, 279, 285, 286, 295, 296, 297, 300,
+ 304, 306, 312, 325, 331, 332, 333, 334, 335, 343,
+ 344, 345, 346, 347, 351, 352, 353, 354, 356, 357,
+ 363, 365, 366, 367, 368, 369, 370, 372, 374, 375,
+ 377, 378, 379, 390, 391, 392, 393, 394, 395, 396,
+ 398, 399, 401, 402, 403, 404, 405, 406, 407, 408,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 421, 422, 423, 424, 425, 426, 427, 428, 430, 450,
+ 451, 452, 453, 454, 455, 456, 457, 458, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
+ 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
+ 526, 527, 528, 529, 530, 531, 532, 533, 534, 535,
+ 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 549, 550, 551, 552, 553, 554, 555, 556, 557,
+ 558, 559, 560, 562, 563, 564, 565, 566, 567, 568,
+ 569, 570, 571, 572, 573, 574, 576, 577, 578, 580,
+ 581, 582, 583, 584, 586, 587, 588, 589, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
@@ -1754,62 +1756,63 @@ static const yytype_int16 yypact[] =
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- 586, 587, 588, 589, 590, 591, 592, 593, -293, -293,
- -293, -293, -293, -293, -293, -293, -293, 594, 595, 596,
- 597, 598, 599, 600, -293, -293, -293, -293, -293, -293,
- -293, -293, 601, 602, 603, 604, 605, 606, 607, -293,
- -293, -293, -293, -293, -293, -293, -293, 608, 609, 610,
- 611, 612, 613, 614, 615, 616, 617, -293, -293, -293,
- -293, -293, -293, -293, -293, -293, -293, -293, 618, 619,
- 620, 621, 622, 623, -293, -293, -293, -293, -293, -293,
- -293, -293, -293, -293, -293, -293, -293, 624, 625, 626,
- 627, 628, 629, 630, 631, -293, -293, -293, -293, -293,
- -293, -293, -293, -293, 632, 633, 634, 635, 636, 637,
- 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
- 648, 649, 650, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- -293, -293, -293, 651, -293, -293, 652, -293, -293, 653,
- 654, 655, 656, 657, 658, 659, 660, 661, 662, -293,
+ -293, -293, 590, 591, 592, 593, 594, 595, 596, 597,
+ -293, -293, -293, -293, -293, -293, -293, -293, -293, 598,
+ 599, 600, 601, 602, 603, 604, -293, -293, -293, -293,
+ -293, -293, -293, -293, 605, 606, 607, 608, 609, 610,
+ 611, -293, -293, -293, -293, -293, -293, -293, -293, 612,
+ 613, 614, 615, 616, 617, 618, 619, 620, 621, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- 663, 664, 665, 666, 667, 668, 669, 670, 671, 672,
+ 622, 623, 624, 625, 626, 627, -293, -293, -293, -293,
+ -293, -293, -293, -293, -293, -293, -293, -293, -293, 628,
+ 629, 630, 631, 632, 633, 634, 635, -293, -293, -293,
+ -293, -293, -293, -293, -293, -293, 636, 637, 638, 639,
+ 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
+ 650, 651, 652, 653, 654, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- -293, 673, 674, -293, -293, -293, -293, -293, -293, -293,
+ -293, -293, -293, -293, -293, 655, -293, -293, 656, -293,
+ -293, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+ -293, -293, 667, 668, 669, 670, 671, 672, 673, 674,
+ 675, 676, -293, -293, -293, -293, -293, -293, -293, -293,
+ -293, -293, -293, 677, 678, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- -293, -293, -293, -293, -293, -293, -293, -293, 675, 676,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+ 679, 680, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- 677, 678, 679, -293, -293, -293, -293, -293, -293, -293,
- -293, -293, -293, -293, -293, -293, 680, 681, -293, -293,
+ -293, -293, 681, 682, 683, -293, -293, -293, -293, -293,
+ -293, -293, -293, -293, -293, -293, -293, -293, 684, 685,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- -293, -293, -293, -293, -293, -293, -293, -293, -293, 682,
- 683, 684, 685, 686, 687, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+ -293, 686, 687, 688, 689, 690, 691, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- 688, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- -293, -293, -293, 689, -293, -293, -293, -293, -293, 690,
- 691, 692, 693, 694, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- -293, -293, -293, -293, 695, -293, -293, 696, 697, -293,
+ -293, -293, 692, -293, -293, -293, -293, -293, -293, -293,
+ -293, -293, -293, -293, -293, 693, -293, -293, -293, -293,
+ -293, 694, 695, 696, 697, 698, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+ -293, -293, -293, -293, -293, -293, -293, 699, -293, -293,
+ 700, 701, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- -293, -293, -293, -293, -293, -293, 698, 699, 700, -293,
- -293, -293, -293, -293, -293, 701, 702, -293, -293, -293,
- -293, -293, -293, -293, -293
+ -293, -293, -293, -293, -293, -293, -293, -293, -293, 702,
+ 703, 704, -293, -293, -293, -293, -293, -293, 705, 706,
+ -293, -293, -293, -293, -293, -293, -293, -293
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1817,10 +1820,10 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_int16 yydefact[] =
{
- 2, 0, 1, 18, 19, 264, 275, 596, 656, 615,
- 285, 670, 693, 295, 719, 314, 661, 3, 17, 21,
- 266, 277, 287, 297, 316, 598, 617, 658, 663, 672,
- 695, 721, 4, 5, 6, 10, 14, 15, 8, 9,
+ 2, 0, 1, 18, 19, 265, 276, 598, 658, 617,
+ 286, 672, 695, 296, 721, 315, 663, 3, 17, 21,
+ 267, 278, 288, 298, 317, 600, 619, 660, 665, 674,
+ 697, 723, 4, 5, 6, 10, 14, 15, 8, 9,
7, 16, 11, 12, 13, 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,
@@ -1845,87 +1848,87 @@ static const yytype_int16 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, 20, 22, 23,
- 90, 93, 102, 261, 218, 219, 24, 172, 173, 174,
- 175, 176, 177, 178, 179, 180, 181, 39, 81, 25,
- 94, 95, 50, 74, 89, 258, 26, 27, 28, 31,
- 32, 29, 30, 33, 34, 35, 255, 256, 257, 36,
- 37, 38, 126, 230, 127, 129, 130, 131, 232, 237,
- 233, 244, 245, 246, 250, 132, 133, 134, 135, 136,
- 137, 138, 214, 91, 80, 106, 124, 125, 242, 239,
- 128, 40, 41, 42, 43, 44, 82, 96, 97, 113,
- 68, 78, 69, 222, 223, 107, 60, 61, 221, 64,
- 62, 63, 65, 253, 117, 121, 142, 154, 186, 157,
- 243, 118, 75, 45, 46, 47, 104, 143, 144, 145,
- 146, 48, 49, 51, 52, 54, 55, 53, 151, 152,
- 158, 56, 57, 58, 66, 85, 122, 99, 153, 262,
- 92, 182, 100, 101, 119, 120, 240, 105, 59, 83,
- 86, 195, 67, 70, 108, 109, 110, 84, 183, 111,
- 71, 72, 73, 231, 123, 263, 205, 206, 207, 208,
- 209, 210, 211, 212, 220, 112, 79, 254, 114, 115,
- 116, 184, 76, 77, 98, 87, 88, 103, 139, 140,
- 241, 141, 147, 148, 149, 150, 187, 188, 190, 192,
- 193, 191, 194, 197, 198, 199, 196, 215, 155, 249,
- 156, 161, 162, 159, 160, 163, 164, 166, 165, 168,
- 167, 169, 170, 171, 234, 236, 235, 185, 200, 201,
- 202, 203, 204, 224, 226, 225, 227, 228, 229, 251,
- 252, 259, 260, 189, 213, 216, 217, 238, 247, 248,
- 0, 0, 0, 0, 0, 0, 0, 0, 265, 267,
- 268, 269, 271, 272, 273, 274, 270, 0, 0, 0,
- 0, 0, 0, 0, 276, 278, 279, 280, 281, 282,
- 283, 284, 0, 0, 0, 0, 0, 0, 0, 286,
- 288, 289, 292, 293, 290, 294, 291, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 296, 298, 299,
- 300, 301, 305, 306, 307, 302, 303, 304, 0, 0,
- 0, 0, 0, 0, 319, 323, 324, 325, 326, 327,
- 315, 317, 318, 320, 321, 322, 328, 0, 0, 0,
- 0, 0, 0, 0, 0, 597, 599, 601, 600, 606,
- 602, 603, 604, 605, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 20, 22,
+ 23, 90, 93, 102, 261, 218, 219, 24, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 39, 81,
+ 25, 94, 95, 50, 74, 89, 258, 26, 27, 28,
+ 31, 32, 29, 30, 33, 34, 35, 255, 256, 257,
+ 36, 37, 38, 126, 230, 127, 129, 130, 131, 232,
+ 237, 233, 244, 245, 246, 250, 132, 133, 134, 135,
+ 136, 137, 138, 214, 91, 80, 106, 124, 125, 242,
+ 239, 264, 128, 40, 41, 42, 43, 44, 82, 96,
+ 97, 113, 68, 78, 69, 222, 223, 107, 60, 61,
+ 221, 64, 62, 63, 65, 253, 117, 121, 142, 154,
+ 186, 157, 243, 118, 75, 45, 46, 47, 104, 143,
+ 144, 145, 146, 48, 49, 51, 52, 54, 55, 53,
+ 151, 152, 158, 56, 57, 58, 66, 85, 122, 99,
+ 153, 262, 92, 182, 100, 101, 119, 120, 240, 105,
+ 59, 83, 86, 195, 67, 70, 108, 109, 110, 84,
+ 183, 111, 71, 72, 73, 231, 123, 263, 205, 206,
+ 207, 208, 209, 210, 211, 212, 220, 112, 79, 254,
+ 114, 115, 116, 184, 76, 77, 98, 87, 88, 103,
+ 139, 140, 241, 141, 147, 148, 149, 150, 187, 188,
+ 190, 192, 193, 191, 194, 197, 198, 199, 196, 215,
+ 155, 249, 156, 161, 162, 159, 160, 163, 164, 166,
+ 165, 168, 167, 169, 170, 171, 234, 236, 235, 185,
+ 200, 201, 202, 203, 204, 224, 226, 225, 227, 228,
+ 229, 251, 252, 259, 260, 189, 213, 216, 217, 238,
+ 247, 248, 0, 0, 0, 0, 0, 0, 0, 0,
+ 266, 268, 269, 270, 272, 273, 274, 275, 271, 0,
+ 0, 0, 0, 0, 0, 0, 277, 279, 280, 281,
+ 282, 283, 284, 285, 0, 0, 0, 0, 0, 0,
+ 0, 287, 289, 290, 293, 294, 291, 295, 292, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
+ 299, 300, 301, 302, 306, 307, 308, 303, 304, 305,
+ 0, 0, 0, 0, 0, 0, 320, 324, 325, 326,
+ 327, 328, 316, 318, 319, 321, 322, 323, 329, 0,
+ 0, 0, 0, 0, 0, 0, 0, 599, 601, 603,
+ 602, 608, 604, 605, 606, 607, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 616, 618, 620, 619, 621, 622, 623,
+ 0, 0, 0, 0, 0, 618, 620, 622, 621, 623,
624, 625, 626, 627, 628, 629, 630, 631, 632, 633,
- 634, 635, 636, 0, 657, 659, 0, 662, 664, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 671,
- 673, 674, 675, 677, 678, 676, 679, 680, 681, 682,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 694, 696, 697, 704, 698, 699, 702, 703, 700, 701,
- 705, 0, 0, 720, 722, 723, 330, 329, 337, 350,
- 348, 362, 357, 358, 359, 363, 360, 361, 364, 365,
- 366, 370, 371, 372, 402, 403, 404, 405, 406, 434,
- 435, 436, 442, 443, 353, 444, 445, 448, 446, 447,
- 452, 453, 454, 469, 417, 418, 421, 422, 455, 473,
- 411, 413, 474, 481, 482, 483, 354, 433, 503, 504,
- 412, 497, 395, 349, 407, 470, 478, 456, 0, 0,
- 507, 355, 331, 394, 461, 332, 351, 352, 408, 409,
- 505, 458, 463, 464, 368, 367, 333, 508, 437, 468,
- 396, 416, 475, 476, 477, 480, 496, 410, 501, 499,
- 500, 425, 432, 465, 466, 426, 427, 457, 485, 397,
- 398, 401, 373, 375, 369, 376, 377, 378, 379, 386,
- 387, 388, 389, 390, 391, 392, 509, 510, 512, 438,
- 439, 440, 441, 449, 450, 451, 513, 514, 515, 516,
- 0, 0, 0, 459, 428, 430, 666, 529, 534, 532,
- 531, 535, 533, 542, 543, 544, 0, 0, 538, 539,
- 540, 541, 338, 339, 340, 341, 342, 343, 344, 345,
- 346, 347, 462, 479, 502, 548, 549, 429, 517, 0,
- 0, 0, 0, 0, 0, 487, 488, 489, 490, 491,
- 492, 493, 494, 495, 667, 419, 420, 423, 414, 484,
- 393, 335, 336, 415, 550, 551, 552, 553, 554, 556,
- 555, 557, 558, 559, 374, 381, 545, 547, 546, 380,
- 0, 717, 718, 530, 400, 467, 511, 399, 431, 382,
- 383, 385, 384, 0, 561, 424, 498, 356, 562, 0,
- 0, 0, 0, 0, 563, 334, 460, 486, 564, 565,
- 566, 571, 569, 570, 567, 568, 572, 573, 574, 575,
- 577, 578, 576, 589, 0, 593, 594, 0, 0, 595,
- 579, 587, 580, 581, 582, 586, 588, 583, 584, 585,
- 308, 309, 310, 311, 312, 313, 607, 609, 608, 611,
- 612, 613, 614, 610, 637, 639, 640, 641, 642, 643,
- 644, 645, 646, 647, 638, 648, 649, 650, 651, 652,
- 653, 654, 655, 660, 665, 683, 684, 685, 688, 686,
- 687, 689, 690, 691, 692, 706, 707, 709, 710, 713,
- 714, 711, 712, 715, 708, 724, 725, 471, 506, 528,
- 668, 669, 536, 537, 518, 519, 0, 0, 0, 523,
- 716, 560, 472, 527, 524, 0, 0, 590, 591, 592,
- 522, 520, 521, 525, 526
+ 634, 635, 636, 637, 638, 0, 659, 661, 0, 664,
+ 666, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 673, 675, 676, 677, 679, 680, 678, 681, 682,
+ 683, 684, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 696, 698, 699, 706, 700, 701, 704, 705,
+ 702, 703, 707, 0, 0, 722, 724, 725, 331, 330,
+ 338, 351, 349, 363, 358, 359, 360, 364, 361, 362,
+ 365, 366, 367, 371, 372, 373, 404, 405, 406, 407,
+ 408, 436, 437, 438, 444, 445, 354, 446, 447, 450,
+ 448, 449, 454, 455, 456, 471, 419, 420, 423, 424,
+ 457, 475, 413, 415, 476, 483, 484, 485, 355, 435,
+ 505, 506, 414, 499, 396, 350, 409, 472, 480, 458,
+ 0, 0, 509, 356, 332, 395, 463, 333, 352, 353,
+ 410, 411, 507, 460, 465, 466, 369, 368, 334, 510,
+ 439, 470, 397, 418, 477, 478, 479, 482, 498, 412,
+ 503, 501, 502, 427, 434, 467, 468, 428, 429, 459,
+ 487, 398, 399, 403, 374, 376, 370, 377, 378, 379,
+ 380, 387, 388, 389, 390, 391, 392, 393, 511, 512,
+ 514, 440, 441, 442, 443, 451, 452, 453, 515, 516,
+ 517, 518, 0, 0, 0, 461, 430, 432, 668, 531,
+ 536, 534, 533, 537, 535, 544, 545, 546, 0, 0,
+ 540, 541, 542, 543, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 464, 481, 504, 550, 551, 431,
+ 519, 0, 0, 0, 0, 0, 0, 489, 490, 491,
+ 492, 493, 494, 495, 496, 497, 669, 421, 422, 425,
+ 416, 486, 394, 336, 337, 417, 552, 553, 554, 555,
+ 556, 558, 557, 559, 560, 561, 375, 382, 547, 549,
+ 548, 381, 0, 719, 720, 532, 401, 469, 513, 400,
+ 433, 383, 384, 386, 385, 0, 563, 426, 500, 357,
+ 564, 0, 0, 0, 0, 0, 565, 335, 462, 488,
+ 402, 566, 567, 568, 573, 571, 572, 569, 570, 574,
+ 575, 576, 577, 579, 580, 578, 591, 0, 595, 596,
+ 0, 0, 597, 581, 589, 582, 583, 584, 588, 590,
+ 585, 586, 587, 309, 310, 311, 312, 313, 314, 609,
+ 611, 610, 613, 614, 615, 616, 612, 639, 641, 642,
+ 643, 644, 645, 646, 647, 648, 649, 640, 650, 651,
+ 652, 653, 654, 655, 656, 657, 662, 667, 685, 686,
+ 687, 690, 688, 689, 691, 692, 693, 694, 708, 709,
+ 711, 712, 715, 716, 713, 714, 717, 710, 726, 727,
+ 473, 508, 530, 670, 671, 538, 539, 520, 521, 0,
+ 0, 0, 525, 718, 562, 474, 529, 526, 0, 0,
+ 592, 593, 594, 524, 522, 523, 527, 528
};
/* YYPGOTO[NTERM-NUM]. */
@@ -1958,8 +1961,8 @@ static const yytype_int16 yypgoto[] =
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- -293, -293, -293, -293, -293, -293, -293, -293, 95, 703,
- 704, 705, 706, -293, -293, 707, -293, -293, -293, -293,
+ -293, -293, -293, -293, -293, -293, -293, -293, -293, 95,
+ 235, 240, 249, 707, -293, -293, 708, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
@@ -1968,50 +1971,50 @@ static const yytype_int16 yypgoto[] =
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
- -293, -293, -293, -293
+ -293, -293, -293, -293, -293
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 1, 17, 18, 19, 32, 287, 20, 33, 538,
- 21, 34, 554, 22, 35, 569, 23, 36, 587, 604,
- 605, 606, 607, 608, 609, 24, 37, 610, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
- 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
- 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
- 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
- 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
- 380, 381, 382, 383, 384, 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, 416, 417, 418, 419,
- 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, 467, 468, 469,
- 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
- 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
- 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,
- 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
- 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
- 520, 521, 522, 539, 540, 541, 542, 543, 544, 545,
- 546, 555, 556, 557, 558, 559, 560, 561, 588, 589,
- 590, 591, 592, 593, 594, 595, 596, 597, 570, 571,
- 572, 573, 574, 575, 576, 25, 38, 625, 626, 627,
- 628, 629, 630, 631, 632, 633, 26, 39, 653, 654,
- 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
- 665, 666, 667, 668, 669, 670, 671, 672, 27, 40,
- 674, 675, 28, 41, 677, 678, 523, 524, 525, 526,
- 29, 42, 689, 690, 691, 692, 693, 694, 695, 696,
- 697, 698, 699, 30, 43, 710, 711, 712, 713, 714,
- 715, 716, 717, 718, 719, 720, 527, 528, 529, 31,
- 44, 723, 724, 725
+ 0, 1, 17, 18, 19, 32, 288, 20, 33, 540,
+ 21, 34, 556, 22, 35, 571, 23, 36, 589, 606,
+ 607, 608, 609, 610, 611, 24, 37, 612, 289, 290,
+ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
+ 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
+ 381, 382, 383, 384, 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, 416, 417, 418, 419, 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, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 524, 541, 542, 543, 544, 545, 546,
+ 547, 548, 557, 558, 559, 560, 561, 562, 563, 590,
+ 591, 592, 593, 594, 595, 596, 597, 598, 599, 572,
+ 573, 574, 575, 576, 577, 578, 25, 38, 627, 628,
+ 629, 630, 631, 632, 633, 634, 635, 26, 39, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 673, 674, 27,
+ 40, 676, 677, 28, 41, 679, 680, 525, 526, 527,
+ 528, 29, 42, 691, 692, 693, 694, 695, 696, 697,
+ 698, 699, 700, 701, 30, 43, 712, 713, 714, 715,
+ 716, 717, 718, 719, 720, 721, 722, 529, 530, 531,
+ 31, 44, 725, 726, 727
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -2022,78 +2025,78 @@ static const yytype_int16 yytable[] =
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 721, 722, 673, 676, 79, 80,
- 81, 726, 727, 728, 82, 83, 84, 85, 86, 87,
+ 75, 76, 77, 78, 723, 724, 675, 678, 79, 80,
+ 81, 728, 729, 730, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 729, 730, 731, 732, 733,
- 577, 734, 735, 736, 123, 124, 125, 126, 127, 737,
- 128, 129, 130, 577, 738, 131, 132, 133, 134, 135,
+ 118, 119, 120, 121, 122, 731, 732, 733, 734, 735,
+ 736, 737, 579, 738, 123, 124, 125, 126, 127, 739,
+ 128, 129, 130, 579, 740, 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, 739, 611, 740, 157, 741, 742, 158, 159, 160,
- 161, 162, 163, 164, 743, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 175, 176, 177, 178, 679,
- 680, 681, 682, 683, 684, 685, 686, 687, 688, 547,
- 744, 745, 746, 747, 748, 749, 750, 548, 549, 179,
+ 156, 741, 613, 742, 157, 743, 744, 158, 159, 160,
+ 161, 162, 163, 164, 745, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 681,
+ 682, 683, 684, 685, 686, 687, 688, 689, 690, 549,
+ 746, 747, 748, 749, 750, 751, 752, 550, 551, 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, 751, 223, 752, 224, 225, 226, 227,
+ 220, 221, 222, 753, 223, 754, 224, 225, 226, 227,
228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
- 238, 239, 240, 241, 242, 753, 530, 754, 531, 532,
- 755, 756, 757, 758, 759, 760, 243, 244, 245, 246,
- 247, 248, 249, 250, 251, 252, 550, 2, 551, 761,
- 762, 552, 763, 764, 765, 766, 253, 562, 3, 4,
- 767, 768, 0, 769, 254, 255, 770, 256, 257, 771,
- 258, 259, 260, 261, 262, 772, 773, 263, 264, 265,
- 266, 267, 268, 269, 270, 774, 775, 776, 271, 777,
- 778, 533, 779, 563, 564, 5, 780, 272, 273, 274,
- 275, 6, 781, 782, 276, 277, 278, 279, 280, 281,
- 282, 283, 284, 285, 286, 579, 580, 581, 582, 783,
- 565, 784, 785, 786, 534, 584, 578, 535, 579, 580,
- 581, 582, 583, 787, 788, 789, 536, 790, 584, 791,
- 792, 793, 794, 795, 796, 7, 598, 599, 600, 601,
- 602, 617, 618, 619, 620, 621, 622, 623, 624, 603,
- 797, 798, 799, 8, 800, 801, 802, 803, 804, 805,
- 585, 586, 700, 701, 702, 703, 704, 705, 706, 707,
- 708, 634, 635, 636, 637, 638, 639, 640, 641, 642,
- 643, 644, 645, 646, 647, 648, 649, 650, 651, 652,
- 806, 807, 808, 566, 567, 809, 810, 811, 812, 813,
- 553, 814, 815, 816, 817, 818, 819, 820, 821, 9,
- 822, 823, 824, 825, 826, 827, 828, 829, 830, 831,
- 832, 833, 834, 835, 836, 837, 838, 839, 840, 841,
- 709, 842, 843, 844, 845, 846, 847, 848, 568, 849,
- 850, 851, 852, 853, 854, 855, 856, 857, 858, 859,
+ 238, 239, 240, 241, 242, 702, 703, 704, 705, 706,
+ 707, 708, 709, 710, 755, 756, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 552, 2, 553, 757,
+ 758, 554, 614, 759, 760, 761, 253, 615, 3, 4,
+ 762, 763, 764, 765, 254, 255, 616, 256, 257, 766,
+ 258, 259, 260, 261, 262, 767, 768, 263, 264, 265,
+ 266, 267, 268, 269, 270, 769, 770, 771, 271, 532,
+ 772, 533, 534, 711, 773, 5, 774, 272, 273, 274,
+ 275, 6, 775, 564, 276, 277, 278, 279, 280, 281,
+ 282, 283, 284, 285, 286, 776, 287, 581, 582, 583,
+ 584, 777, 778, 779, 780, 781, 580, 586, 581, 582,
+ 583, 584, 585, 782, 783, 784, 785, 786, 586, 565,
+ 566, 787, 788, 789, 790, 7, 791, 792, 600, 601,
+ 602, 603, 604, 793, 535, 794, 795, 796, 797, 798,
+ 799, 605, 800, 8, 801, 802, 567, 803, 804, 805,
+ 587, 588, 619, 620, 621, 622, 623, 624, 625, 626,
+ 806, 807, 808, 809, 810, 811, 812, 536, 813, 814,
+ 537, 815, 816, 817, 818, 819, 820, 821, 822, 538,
+ 823, 824, 825, 826, 827, 828, 829, 830, 831, 832,
+ 555, 833, 834, 835, 836, 837, 838, 839, 840, 9,
+ 841, 636, 637, 638, 639, 640, 641, 642, 643, 644,
+ 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
+ 842, 843, 844, 845, 846, 847, 848, 849, 850, 568,
+ 569, 851, 852, 853, 854, 855, 856, 857, 858, 859,
860, 861, 862, 863, 864, 865, 866, 867, 868, 869,
870, 871, 872, 873, 874, 875, 876, 877, 878, 879,
- 880, 881, 882, 10, 883, 884, 885, 886, 537, 887,
- 888, 889, 890, 891, 892, 893, 894, 895, 896, 897,
+ 880, 881, 882, 10, 883, 884, 885, 886, 887, 888,
+ 889, 890, 891, 892, 570, 893, 894, 895, 896, 897,
898, 899, 900, 901, 902, 11, 903, 904, 905, 906,
907, 908, 909, 910, 911, 912, 913, 914, 915, 916,
917, 918, 919, 920, 921, 922, 12, 923, 924, 925,
926, 927, 928, 929, 930, 931, 932, 933, 13, 934,
935, 936, 937, 938, 939, 940, 941, 942, 943, 944,
- 945, 946, 947, 948, 949, 950, 951, 952, 953, 954,
- 955, 956, 957, 958, 959, 14, 960, 961, 962, 15,
- 963, 964, 965, 966, 967, 16, 968, 969, 970, 971,
- 972, 973, 974, 975, 976, 977, 978, 979, 980, 981,
- 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
- 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
- 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
- 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
- 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031,
- 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
- 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051,
- 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
- 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
- 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
- 1082, 1083, 1084, 0, 0, 0, 0, 0, 0, 0,
+ 945, 539, 946, 947, 948, 949, 950, 951, 952, 953,
+ 954, 955, 956, 957, 958, 14, 959, 960, 961, 15,
+ 962, 963, 964, 965, 966, 16, 967, 968, 969, 970,
+ 971, 972, 973, 974, 975, 976, 977, 978, 979, 980,
+ 981, 982, 983, 984, 985, 986, 987, 988, 989, 990,
+ 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
+ 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
+ 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
+ 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
+ 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040,
+ 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
+ 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060,
+ 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070,
+ 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080,
+ 1081, 1082, 1083, 1084, 1085, 1086, 1087, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 612, 613, 614, 615, 616
+ 0, 0, 0, 0, 617, 618
};
static const yytype_int16 yycheck[] =
@@ -2107,7 +2110,7 @@ static const yytype_int16 yycheck[] =
73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 10, 10, 10, 10, 10,
- 47, 10, 10, 10, 107, 108, 109, 110, 111, 10,
+ 10, 10, 47, 10, 107, 108, 109, 110, 111, 10,
113, 114, 115, 47, 10, 118, 119, 120, 121, 122,
123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
@@ -2122,40 +2125,40 @@ static const yytype_int16 yycheck[] =
223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
233, 234, 235, 10, 237, 10, 239, 240, 241, 242,
243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, 10, 47, 10, 49, 50,
- 10, 10, 10, 10, 10, 10, 269, 270, 271, 272,
+ 253, 254, 255, 256, 257, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 10, 10, 269, 270, 271, 272,
273, 274, 275, 276, 277, 278, 144, 0, 146, 10,
- 10, 149, 10, 10, 10, 10, 289, 47, 11, 12,
- 10, 10, -1, 10, 297, 298, 10, 300, 301, 10,
+ 10, 149, 37, 10, 10, 10, 289, 37, 11, 12,
+ 10, 10, 10, 10, 297, 298, 37, 300, 301, 10,
303, 304, 305, 306, 307, 10, 10, 310, 311, 312,
- 313, 314, 315, 316, 317, 10, 10, 10, 321, 10,
- 10, 112, 10, 83, 84, 48, 10, 330, 331, 332,
- 333, 54, 10, 10, 337, 338, 339, 340, 341, 342,
- 343, 344, 345, 346, 347, 292, 293, 294, 295, 10,
- 110, 10, 10, 10, 145, 302, 290, 148, 292, 293,
- 294, 295, 296, 10, 10, 10, 157, 10, 302, 10,
- 10, 10, 10, 10, 10, 98, 323, 324, 325, 326,
- 327, 99, 100, 101, 102, 103, 104, 105, 106, 336,
- 10, 10, 10, 116, 10, 10, 10, 10, 10, 10,
- 334, 335, 280, 281, 282, 283, 284, 285, 286, 287,
- 288, 173, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 10, 10, 10, 193, 194, 10, 10, 10, 10, 10,
- 308, 10, 10, 10, 10, 10, 10, 10, 10, 172,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 348, 10, 10, 10, 10, 10, 10, 10, 238, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 313, 314, 315, 316, 317, 10, 10, 10, 321, 47,
+ 10, 49, 50, 348, 10, 48, 10, 330, 331, 332,
+ 333, 54, 10, 47, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 10, 349, 292, 293, 294,
+ 295, 10, 10, 10, 10, 10, 290, 302, 292, 293,
+ 294, 295, 296, 10, 10, 10, 10, 10, 302, 83,
+ 84, 10, 10, 10, 10, 98, 10, 10, 323, 324,
+ 325, 326, 327, 10, 112, 10, 10, 10, 10, 10,
+ 10, 336, 10, 116, 10, 10, 110, 10, 10, 10,
+ 334, 335, 99, 100, 101, 102, 103, 104, 105, 106,
+ 10, 10, 10, 10, 10, 10, 10, 145, 10, 10,
+ 148, 10, 10, 10, 10, 10, 10, 10, 10, 157,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 308, 10, 10, 10, 10, 10, 10, 10, 10, 172,
+ 10, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 193,
+ 194, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 236, 10, 10, 10, 10, 309, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 236, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 238, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 258, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 279, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 291, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 309, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 318, 10, 10, 10, 322,
10, 10, 10, 10, 10, 328, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
@@ -2169,21 +2172,21 @@ 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, -1, -1, -1, -1, -1, -1, -1,
+ 10, 10, 10, 10, 10, 10, 10, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 37, 37, 37, 37, 37
+ -1, -1, -1, -1, 37, 37
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_int16 yystos[] =
{
- 0, 350, 0, 11, 12, 48, 54, 98, 116, 172,
- 236, 258, 279, 291, 318, 322, 328, 351, 352, 353,
- 356, 359, 362, 365, 374, 644, 655, 677, 681, 689,
- 702, 718, 354, 357, 360, 363, 366, 375, 645, 656,
- 678, 682, 690, 703, 719, 13, 14, 15, 16, 17,
+ 0, 351, 0, 11, 12, 48, 54, 98, 116, 172,
+ 236, 258, 279, 291, 318, 322, 328, 352, 353, 354,
+ 357, 360, 363, 366, 375, 646, 657, 679, 683, 691,
+ 704, 720, 355, 358, 361, 364, 367, 376, 647, 658,
+ 680, 684, 692, 705, 721, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 51,
@@ -2207,7 +2210,7 @@ static const yytype_int16 yystos[] =
276, 277, 278, 289, 297, 298, 300, 301, 303, 304,
305, 306, 307, 310, 311, 312, 313, 314, 315, 316,
317, 321, 330, 331, 332, 333, 337, 338, 339, 340,
- 341, 342, 343, 344, 345, 346, 347, 355, 377, 378,
+ 341, 342, 343, 344, 345, 346, 347, 349, 356, 378,
379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
@@ -2231,27 +2234,27 @@ static const yytype_int16 yystos[] =
579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
589, 590, 591, 592, 593, 594, 595, 596, 597, 598,
599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
- 609, 610, 611, 685, 686, 687, 688, 715, 716, 717,
- 47, 49, 50, 112, 145, 148, 157, 309, 358, 612,
- 613, 614, 615, 616, 617, 618, 619, 47, 55, 56,
- 144, 146, 149, 308, 361, 620, 621, 622, 623, 624,
- 625, 626, 47, 83, 84, 110, 193, 194, 238, 364,
- 637, 638, 639, 640, 641, 642, 643, 47, 290, 292,
- 293, 294, 295, 296, 302, 334, 335, 367, 627, 628,
- 629, 630, 631, 632, 633, 634, 635, 636, 323, 324,
- 325, 326, 327, 336, 368, 369, 370, 371, 372, 373,
- 376, 627, 628, 629, 630, 631, 634, 99, 100, 101,
- 102, 103, 104, 105, 106, 646, 647, 648, 649, 650,
- 651, 652, 653, 654, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 657, 658, 659, 660, 661, 662, 663,
+ 609, 610, 611, 612, 613, 687, 688, 689, 690, 717,
+ 718, 719, 47, 49, 50, 112, 145, 148, 157, 309,
+ 359, 614, 615, 616, 617, 618, 619, 620, 621, 47,
+ 55, 56, 144, 146, 149, 308, 362, 622, 623, 624,
+ 625, 626, 627, 628, 47, 83, 84, 110, 193, 194,
+ 238, 365, 639, 640, 641, 642, 643, 644, 645, 47,
+ 290, 292, 293, 294, 295, 296, 302, 334, 335, 368,
+ 629, 630, 631, 632, 633, 634, 635, 636, 637, 638,
+ 323, 324, 325, 326, 327, 336, 369, 370, 371, 372,
+ 373, 374, 377, 629, 630, 631, 632, 633, 636, 99,
+ 100, 101, 102, 103, 104, 105, 106, 648, 649, 650,
+ 651, 652, 653, 654, 655, 656, 173, 174, 175, 176,
+ 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
+ 187, 188, 189, 190, 191, 659, 660, 661, 662, 663,
664, 665, 666, 667, 668, 669, 670, 671, 672, 673,
- 674, 675, 676, 117, 679, 680, 329, 683, 684, 259,
- 260, 261, 262, 263, 264, 265, 266, 267, 268, 691,
- 692, 693, 694, 695, 696, 697, 698, 699, 700, 701,
- 280, 281, 282, 283, 284, 285, 286, 287, 288, 348,
- 704, 705, 706, 707, 708, 709, 710, 711, 712, 713,
- 714, 319, 320, 720, 721, 722, 10, 10, 10, 10,
+ 674, 675, 676, 677, 678, 117, 681, 682, 329, 685,
+ 686, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 693, 694, 695, 696, 697, 698, 699, 700, 701,
+ 702, 703, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 348, 706, 707, 708, 709, 710, 711, 712, 713,
+ 714, 715, 716, 319, 320, 722, 723, 724, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
@@ -2287,45 +2290,45 @@ static const yytype_int16 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
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_int16 yyr1[] =
{
- 0, 349, 350, 350, 351, 351, 351, 351, 351, 351,
- 351, 351, 351, 351, 351, 351, 351, 351, 352, 353,
- 354, 354, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 356, 357, 357, 358, 358, 358,
- 358, 358, 358, 358, 358, 359, 360, 360, 361, 361,
- 361, 361, 361, 361, 361, 362, 363, 363, 364, 364,
- 364, 364, 364, 364, 364, 365, 366, 366, 367, 367,
- 367, 367, 367, 367, 367, 367, 367, 367, 368, 369,
- 370, 371, 372, 373, 374, 375, 375, 376, 376, 376,
- 376, 376, 376, 376, 376, 376, 376, 376, 376, 377,
+ 0, 350, 351, 351, 352, 352, 352, 352, 352, 352,
+ 352, 352, 352, 352, 352, 352, 352, 352, 353, 354,
+ 355, 355, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 357, 358, 358, 359, 359,
+ 359, 359, 359, 359, 359, 359, 360, 361, 361, 362,
+ 362, 362, 362, 362, 362, 362, 363, 364, 364, 365,
+ 365, 365, 365, 365, 365, 365, 366, 367, 367, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 369,
+ 370, 371, 372, 373, 374, 375, 376, 376, 377, 377,
+ 377, 377, 377, 377, 377, 377, 377, 377, 377, 377,
378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
@@ -2352,20 +2355,20 @@ static const yytype_int16 yyr1[] =
608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
618, 619, 620, 621, 622, 623, 624, 625, 626, 627,
628, 629, 630, 631, 632, 633, 634, 635, 636, 637,
- 638, 639, 640, 641, 642, 643, 644, 645, 645, 646,
- 646, 646, 646, 646, 646, 646, 646, 647, 648, 649,
- 650, 651, 652, 653, 654, 655, 656, 656, 657, 657,
- 657, 657, 657, 657, 657, 657, 657, 657, 657, 657,
- 657, 657, 657, 657, 657, 657, 657, 658, 659, 660,
+ 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
+ 647, 648, 648, 648, 648, 648, 648, 648, 648, 649,
+ 650, 651, 652, 653, 654, 655, 656, 657, 658, 658,
+ 659, 659, 659, 659, 659, 659, 659, 659, 659, 659,
+ 659, 659, 659, 659, 659, 659, 659, 659, 659, 660,
661, 662, 663, 664, 665, 666, 667, 668, 669, 670,
- 671, 672, 673, 674, 675, 676, 677, 678, 678, 679,
- 680, 681, 682, 682, 683, 684, 685, 686, 687, 688,
- 689, 690, 690, 691, 691, 691, 691, 691, 691, 691,
- 691, 691, 691, 692, 693, 694, 695, 696, 697, 698,
- 699, 700, 701, 702, 703, 703, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 705, 706, 707, 708,
+ 671, 672, 673, 674, 675, 676, 677, 678, 679, 680,
+ 680, 681, 682, 683, 684, 684, 685, 686, 687, 688,
+ 689, 690, 691, 692, 692, 693, 693, 693, 693, 693,
+ 693, 693, 693, 693, 693, 694, 695, 696, 697, 698,
+ 699, 700, 701, 702, 703, 704, 705, 705, 706, 706,
+ 706, 706, 706, 706, 706, 706, 706, 706, 707, 708,
709, 710, 711, 712, 713, 714, 715, 716, 717, 718,
- 719, 719, 720, 720, 721, 722
+ 719, 720, 721, 721, 722, 722, 723, 724
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -2397,13 +2400,13 @@ static const yytype_int8 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, 2, 0, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 0, 1, 1,
1, 1, 1, 1, 1, 1, 2, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
- 2, 2, 2, 2, 1, 2, 0, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 2, 2, 2, 2, 2, 1, 2, 0, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -2418,32 +2421,32 @@ static const yytype_int8 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, 3, 3, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 3, 3, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 3, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 3, 3,
- 4, 4, 4, 3, 3, 4, 4, 3, 3, 2,
- 2, 2, 2, 2, 2, 2, 3, 3, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 3, 3, 4, 4, 4, 3, 3, 4, 4, 3,
+ 3, 2, 2, 2, 2, 2, 2, 2, 3, 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, 2,
+ 2, 2, 3, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 3, 3, 3, 2, 2, 2, 1, 2, 0, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
- 2, 2, 2, 2, 2, 1, 2, 0, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 3, 3, 3, 2, 2, 2, 1, 2,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 0, 1,
- 2, 1, 2, 0, 1, 2, 2, 2, 3, 3,
- 1, 2, 0, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 1, 2, 0, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 3, 2, 2, 1,
- 2, 0, 1, 1, 2, 2
+ 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+ 0, 1, 2, 1, 2, 0, 1, 2, 2, 2,
+ 3, 3, 1, 2, 0, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 2, 0, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
+ 2, 1, 2, 0, 1, 1, 2, 2
};
@@ -2911,25 +2914,25 @@ yyreduce:
switch (yyn)
{
case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */
-#line 215 "util/configparser.y"
+#line 216 "util/configparser.y"
{
OUTYY(("\nP(force-toplevel)\n"));
cfg_parser->started_toplevel = 0;
}
-#line 2920 "util/configparser.c"
+#line 2923 "util/configparser.c"
break;
case 19: /* serverstart: VAR_SERVER */
-#line 222 "util/configparser.y"
+#line 223 "util/configparser.y"
{
OUTYY(("\nP(server:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 2929 "util/configparser.c"
+#line 2932 "util/configparser.c"
break;
- case 264: /* stubstart: VAR_STUB_ZONE */
-#line 339 "util/configparser.y"
+ case 265: /* stubstart: VAR_STUB_ZONE */
+#line 341 "util/configparser.y"
{
struct config_stub* s;
OUTYY(("\nP(stub_zone:)\n"));
@@ -2942,11 +2945,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 2946 "util/configparser.c"
+#line 2949 "util/configparser.c"
break;
- case 275: /* forwardstart: VAR_FORWARD_ZONE */
-#line 358 "util/configparser.y"
+ case 276: /* forwardstart: VAR_FORWARD_ZONE */
+#line 360 "util/configparser.y"
{
struct config_stub* s;
OUTYY(("\nP(forward_zone:)\n"));
@@ -2959,11 +2962,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 2963 "util/configparser.c"
+#line 2966 "util/configparser.c"
break;
- case 285: /* viewstart: VAR_VIEW */
-#line 377 "util/configparser.y"
+ case 286: /* viewstart: VAR_VIEW */
+#line 379 "util/configparser.y"
{
struct config_view* s;
OUTYY(("\nP(view:)\n"));
@@ -2978,11 +2981,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 2982 "util/configparser.c"
+#line 2985 "util/configparser.c"
break;
- case 295: /* authstart: VAR_AUTH_ZONE */
-#line 398 "util/configparser.y"
+ case 296: /* authstart: VAR_AUTH_ZONE */
+#line 400 "util/configparser.y"
{
struct config_auth* s;
OUTYY(("\nP(auth_zone:)\n"));
@@ -3002,11 +3005,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 3006 "util/configparser.c"
+#line 3009 "util/configparser.c"
break;
- case 308: /* rpz_tag: VAR_TAGS STRING_ARG */
-#line 426 "util/configparser.y"
+ case 309: /* rpz_tag: VAR_TAGS STRING_ARG */
+#line 428 "util/configparser.y"
{
uint8_t* bitlist;
size_t len = 0;
@@ -3023,11 +3026,11 @@ yyreduce:
}
}
-#line 3027 "util/configparser.c"
+#line 3030 "util/configparser.c"
break;
- case 309: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */
-#line 445 "util/configparser.y"
+ case 310: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */
+#line 447 "util/configparser.y"
{
OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 &&
@@ -3042,21 +3045,21 @@ yyreduce:
cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str);
}
}
-#line 3046 "util/configparser.c"
+#line 3049 "util/configparser.c"
break;
- case 310: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */
-#line 462 "util/configparser.y"
+ case 311: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */
+#line 464 "util/configparser.y"
{
OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->auths->rpz_cname);
cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str);
}
-#line 3056 "util/configparser.c"
+#line 3059 "util/configparser.c"
break;
- case 311: /* rpz_log: VAR_RPZ_LOG STRING_ARG */
-#line 470 "util/configparser.y"
+ case 312: /* rpz_log: VAR_RPZ_LOG STRING_ARG */
+#line 472 "util/configparser.y"
{
OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3064,21 +3067,21 @@ yyreduce:
else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3068 "util/configparser.c"
+#line 3071 "util/configparser.c"
break;
- case 312: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */
-#line 480 "util/configparser.y"
+ case 313: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */
+#line 482 "util/configparser.y"
{
OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->auths->rpz_log_name);
cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str);
}
-#line 3078 "util/configparser.c"
+#line 3081 "util/configparser.c"
break;
- case 313: /* rpz_signal_nxdomain_ra: VAR_RPZ_SIGNAL_NXDOMAIN_RA STRING_ARG */
-#line 487 "util/configparser.y"
+ case 314: /* rpz_signal_nxdomain_ra: VAR_RPZ_SIGNAL_NXDOMAIN_RA STRING_ARG */
+#line 489 "util/configparser.y"
{
OUTYY(("P(rpz_signal_nxdomain_ra:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3086,11 +3089,11 @@ yyreduce:
else cfg_parser->cfg->auths->rpz_signal_nxdomain_ra = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3090 "util/configparser.c"
+#line 3093 "util/configparser.c"
break;
- case 314: /* rpzstart: VAR_RPZ */
-#line 497 "util/configparser.y"
+ case 315: /* rpzstart: VAR_RPZ */
+#line 499 "util/configparser.y"
{
struct config_auth* s;
OUTYY(("\nP(rpz:)\n"));
@@ -3108,11 +3111,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 3112 "util/configparser.c"
+#line 3115 "util/configparser.c"
break;
- case 329: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */
-#line 522 "util/configparser.y"
+ case 330: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */
+#line 524 "util/configparser.y"
{
OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3120,11 +3123,11 @@ yyreduce:
else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3124 "util/configparser.c"
+#line 3127 "util/configparser.c"
break;
- case 330: /* server_verbosity: VAR_VERBOSITY STRING_ARG */
-#line 531 "util/configparser.y"
+ case 331: /* server_verbosity: VAR_VERBOSITY STRING_ARG */
+#line 533 "util/configparser.y"
{
OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3132,11 +3135,11 @@ yyreduce:
else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3136 "util/configparser.c"
+#line 3139 "util/configparser.c"
break;
- case 331: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */
-#line 540 "util/configparser.y"
+ case 332: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */
+#line 542 "util/configparser.y"
{
OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
@@ -3146,11 +3149,11 @@ yyreduce:
else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3150 "util/configparser.c"
+#line 3153 "util/configparser.c"
break;
- case 332: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */
-#line 551 "util/configparser.y"
+ case 333: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */
+#line 553 "util/configparser.y"
{
OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3158,11 +3161,11 @@ yyreduce:
else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3162 "util/configparser.c"
+#line 3165 "util/configparser.c"
break;
- case 333: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */
-#line 560 "util/configparser.y"
+ case 334: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */
+#line 562 "util/configparser.y"
{
OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3170,11 +3173,11 @@ yyreduce:
else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3174 "util/configparser.c"
+#line 3177 "util/configparser.c"
break;
- case 334: /* server_statistics_inhibit_zero: VAR_STATISTICS_INHIBIT_ZERO STRING_ARG */
-#line 569 "util/configparser.y"
+ case 335: /* server_statistics_inhibit_zero: VAR_STATISTICS_INHIBIT_ZERO STRING_ARG */
+#line 571 "util/configparser.y"
{
OUTYY(("P(server_statistics_inhibit_zero:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3182,11 +3185,11 @@ yyreduce:
else cfg_parser->cfg->stat_inhibit_zero = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3186 "util/configparser.c"
+#line 3189 "util/configparser.c"
break;
- case 335: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */
-#line 578 "util/configparser.y"
+ case 336: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */
+#line 580 "util/configparser.y"
{
OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3194,11 +3197,11 @@ yyreduce:
else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3198 "util/configparser.c"
+#line 3201 "util/configparser.c"
break;
- case 336: /* server_shm_key: VAR_SHM_KEY STRING_ARG */
-#line 587 "util/configparser.y"
+ case 337: /* server_shm_key: VAR_SHM_KEY STRING_ARG */
+#line 589 "util/configparser.y"
{
OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
@@ -3208,11 +3211,11 @@ yyreduce:
else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3212 "util/configparser.c"
+#line 3215 "util/configparser.c"
break;
- case 337: /* server_port: VAR_PORT STRING_ARG */
-#line 598 "util/configparser.y"
+ case 338: /* server_port: VAR_PORT STRING_ARG */
+#line 600 "util/configparser.y"
{
OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3220,11 +3223,11 @@ yyreduce:
else cfg_parser->cfg->port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3224 "util/configparser.c"
+#line 3227 "util/configparser.c"
break;
- case 338: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */
-#line 607 "util/configparser.y"
+ case 339: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */
+#line 609 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str)));
@@ -3235,11 +3238,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 3239 "util/configparser.c"
+#line 3242 "util/configparser.c"
break;
- case 339: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */
-#line 619 "util/configparser.y"
+ case 340: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */
+#line 621 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str)));
@@ -3251,11 +3254,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 3255 "util/configparser.c"
+#line 3258 "util/configparser.c"
break;
- case 340: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */
-#line 633 "util/configparser.y"
+ case 341: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */
+#line 635 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str)));
@@ -3269,11 +3272,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3273 "util/configparser.c"
+#line 3276 "util/configparser.c"
break;
- case 341: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */
-#line 648 "util/configparser.y"
+ case 342: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */
+#line 650 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str)));
@@ -3283,11 +3286,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3287 "util/configparser.c"
+#line 3290 "util/configparser.c"
break;
- case 342: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */
-#line 659 "util/configparser.y"
+ case 343: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */
+#line 661 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
@@ -3303,11 +3306,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3307 "util/configparser.c"
+#line 3310 "util/configparser.c"
break;
- case 343: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */
-#line 676 "util/configparser.y"
+ case 344: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */
+#line 678 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
@@ -3323,11 +3326,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3327 "util/configparser.c"
+#line 3330 "util/configparser.c"
break;
- case 344: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */
-#line 693 "util/configparser.y"
+ case 345: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */
+#line 695 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
@@ -3343,11 +3346,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3347 "util/configparser.c"
+#line 3350 "util/configparser.c"
break;
- case 345: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */
-#line 710 "util/configparser.y"
+ case 346: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */
+#line 712 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
@@ -3363,11 +3366,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3367 "util/configparser.c"
+#line 3370 "util/configparser.c"
break;
- case 346: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */
-#line 727 "util/configparser.y"
+ case 347: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */
+#line 729 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str)));
@@ -3381,11 +3384,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3385 "util/configparser.c"
+#line 3388 "util/configparser.c"
break;
- case 347: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */
-#line 742 "util/configparser.y"
+ case 348: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */
+#line 744 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str)));
@@ -3399,11 +3402,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3403 "util/configparser.c"
+#line 3406 "util/configparser.c"
break;
- case 348: /* server_interface: VAR_INTERFACE STRING_ARG */
-#line 757 "util/configparser.y"
+ case 349: /* server_interface: VAR_INTERFACE STRING_ARG */
+#line 759 "util/configparser.y"
{
OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->num_ifs == 0)
@@ -3415,11 +3418,11 @@ yyreduce:
else
cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
}
-#line 3419 "util/configparser.c"
+#line 3422 "util/configparser.c"
break;
- case 349: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */
-#line 770 "util/configparser.y"
+ case 350: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */
+#line 772 "util/configparser.y"
{
OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->num_out_ifs == 0)
@@ -3433,11 +3436,11 @@ yyreduce:
cfg_parser->cfg->out_ifs[
cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
}
-#line 3437 "util/configparser.c"
+#line 3440 "util/configparser.c"
break;
- case 350: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */
-#line 785 "util/configparser.y"
+ case 351: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */
+#line 787 "util/configparser.y"
{
OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3445,11 +3448,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3449 "util/configparser.c"
+#line 3452 "util/configparser.c"
break;
- case 351: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */
-#line 794 "util/configparser.y"
+ case 352: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */
+#line 796 "util/configparser.y"
{
OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
if(!cfg_mark_ports((yyvsp[0].str), 1,
@@ -3457,11 +3460,11 @@ yyreduce:
yyerror("port number or range (\"low-high\") expected");
free((yyvsp[0].str));
}
-#line 3461 "util/configparser.c"
+#line 3464 "util/configparser.c"
break;
- case 352: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */
-#line 803 "util/configparser.y"
+ case 353: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */
+#line 805 "util/configparser.y"
{
OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
if(!cfg_mark_ports((yyvsp[0].str), 0,
@@ -3469,11 +3472,11 @@ yyreduce:
yyerror("port number or range (\"low-high\") expected");
free((yyvsp[0].str));
}
-#line 3473 "util/configparser.c"
+#line 3476 "util/configparser.c"
break;
- case 353: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */
-#line 812 "util/configparser.y"
+ case 354: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */
+#line 814 "util/configparser.y"
{
OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3481,11 +3484,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3485 "util/configparser.c"
+#line 3488 "util/configparser.c"
break;
- case 354: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */
-#line 821 "util/configparser.y"
+ case 355: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */
+#line 823 "util/configparser.y"
{
OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3493,11 +3496,11 @@ yyreduce:
else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3497 "util/configparser.c"
+#line 3500 "util/configparser.c"
break;
- case 355: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */
-#line 830 "util/configparser.y"
+ case 356: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */
+#line 832 "util/configparser.y"
{
OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3505,21 +3508,21 @@ yyreduce:
else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3509 "util/configparser.c"
+#line 3512 "util/configparser.c"
break;
- case 356: /* server_interface_automatic_ports: VAR_INTERFACE_AUTOMATIC_PORTS STRING_ARG */
-#line 839 "util/configparser.y"
+ case 357: /* server_interface_automatic_ports: VAR_INTERFACE_AUTOMATIC_PORTS STRING_ARG */
+#line 841 "util/configparser.y"
{
OUTYY(("P(server_interface_automatic_ports:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->if_automatic_ports);
cfg_parser->cfg->if_automatic_ports = (yyvsp[0].str);
}
-#line 3519 "util/configparser.c"
+#line 3522 "util/configparser.c"
break;
- case 357: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */
-#line 846 "util/configparser.y"
+ case 358: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */
+#line 848 "util/configparser.y"
{
OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3527,11 +3530,11 @@ yyreduce:
else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3531 "util/configparser.c"
+#line 3534 "util/configparser.c"
break;
- case 358: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */
-#line 855 "util/configparser.y"
+ case 359: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */
+#line 857 "util/configparser.y"
{
OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3539,11 +3542,11 @@ yyreduce:
else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3543 "util/configparser.c"
+#line 3546 "util/configparser.c"
break;
- case 359: /* server_do_nat64: VAR_DO_NAT64 STRING_ARG */
-#line 864 "util/configparser.y"
+ case 360: /* server_do_nat64: VAR_DO_NAT64 STRING_ARG */
+#line 866 "util/configparser.y"
{
OUTYY(("P(server_do_nat64:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3551,11 +3554,11 @@ yyreduce:
else cfg_parser->cfg->do_nat64 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3555 "util/configparser.c"
+#line 3558 "util/configparser.c"
break;
- case 360: /* server_do_udp: VAR_DO_UDP STRING_ARG */
-#line 873 "util/configparser.y"
+ case 361: /* server_do_udp: VAR_DO_UDP STRING_ARG */
+#line 875 "util/configparser.y"
{
OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3563,11 +3566,11 @@ yyreduce:
else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3567 "util/configparser.c"
+#line 3570 "util/configparser.c"
break;
- case 361: /* server_do_tcp: VAR_DO_TCP STRING_ARG */
-#line 882 "util/configparser.y"
+ case 362: /* server_do_tcp: VAR_DO_TCP STRING_ARG */
+#line 884 "util/configparser.y"
{
OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3575,11 +3578,11 @@ yyreduce:
else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3579 "util/configparser.c"
+#line 3582 "util/configparser.c"
break;
- case 362: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */
-#line 891 "util/configparser.y"
+ case 363: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */
+#line 893 "util/configparser.y"
{
OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3587,11 +3590,11 @@ yyreduce:
else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3591 "util/configparser.c"
+#line 3594 "util/configparser.c"
break;
- case 363: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */
-#line 900 "util/configparser.y"
+ case 364: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */
+#line 902 "util/configparser.y"
{
OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3599,11 +3602,11 @@ yyreduce:
else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3603 "util/configparser.c"
+#line 3606 "util/configparser.c"
break;
- case 364: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */
-#line 909 "util/configparser.y"
+ case 365: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */
+#line 911 "util/configparser.y"
{
OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3611,11 +3614,11 @@ yyreduce:
else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3615 "util/configparser.c"
+#line 3618 "util/configparser.c"
break;
- case 365: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */
-#line 918 "util/configparser.y"
+ case 366: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */
+#line 920 "util/configparser.y"
{
OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3623,11 +3626,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3627 "util/configparser.c"
+#line 3630 "util/configparser.c"
break;
- case 366: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */
-#line 927 "util/configparser.y"
+ case 367: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */
+#line 929 "util/configparser.y"
{
OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3639,11 +3642,11 @@ yyreduce:
else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3643 "util/configparser.c"
+#line 3646 "util/configparser.c"
break;
- case 367: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */
-#line 940 "util/configparser.y"
+ case 368: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */
+#line 942 "util/configparser.y"
{
OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3653,11 +3656,11 @@ yyreduce:
else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3657 "util/configparser.c"
+#line 3660 "util/configparser.c"
break;
- case 368: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */
-#line 951 "util/configparser.y"
+ case 369: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */
+#line 953 "util/configparser.y"
{
OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3667,11 +3670,11 @@ yyreduce:
else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3671 "util/configparser.c"
+#line 3674 "util/configparser.c"
break;
- case 369: /* server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG */
-#line 962 "util/configparser.y"
+ case 370: /* server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG */
+#line 964 "util/configparser.y"
{
OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3681,11 +3684,11 @@ yyreduce:
else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3685 "util/configparser.c"
+#line 3688 "util/configparser.c"
break;
- case 370: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */
-#line 973 "util/configparser.y"
+ case 371: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */
+#line 975 "util/configparser.y"
{
OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3693,11 +3696,11 @@ yyreduce:
else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3697 "util/configparser.c"
+#line 3700 "util/configparser.c"
break;
- case 371: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */
-#line 982 "util/configparser.y"
+ case 372: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */
+#line 984 "util/configparser.y"
{
OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3709,11 +3712,11 @@ yyreduce:
else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3713 "util/configparser.c"
+#line 3716 "util/configparser.c"
break;
- case 372: /* server_sock_queue_timeout: VAR_SOCK_QUEUE_TIMEOUT STRING_ARG */
-#line 995 "util/configparser.y"
+ case 373: /* server_sock_queue_timeout: VAR_SOCK_QUEUE_TIMEOUT STRING_ARG */
+#line 997 "util/configparser.y"
{
OUTYY(("P(server_sock_queue_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3725,11 +3728,11 @@ yyreduce:
else cfg_parser->cfg->sock_queue_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3729 "util/configparser.c"
+#line 3732 "util/configparser.c"
break;
- case 373: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */
-#line 1008 "util/configparser.y"
+ case 374: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */
+#line 1010 "util/configparser.y"
{
OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3737,11 +3740,11 @@ yyreduce:
else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3741 "util/configparser.c"
+#line 3744 "util/configparser.c"
break;
- case 374: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */
-#line 1017 "util/configparser.y"
+ case 375: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */
+#line 1019 "util/configparser.y"
{
OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3749,11 +3752,11 @@ yyreduce:
else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3753 "util/configparser.c"
+#line 3756 "util/configparser.c"
break;
- case 375: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */
-#line 1026 "util/configparser.y"
+ case 376: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */
+#line 1028 "util/configparser.y"
{
OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3761,31 +3764,31 @@ yyreduce:
else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3765 "util/configparser.c"
+#line 3768 "util/configparser.c"
break;
- case 376: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */
-#line 1035 "util/configparser.y"
+ case 377: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */
+#line 1037 "util/configparser.y"
{
OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->ssl_service_key);
cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
}
-#line 3775 "util/configparser.c"
+#line 3778 "util/configparser.c"
break;
- case 377: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */
-#line 1042 "util/configparser.y"
+ case 378: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */
+#line 1044 "util/configparser.y"
{
OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->ssl_service_pem);
cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
}
-#line 3785 "util/configparser.c"
+#line 3788 "util/configparser.c"
break;
- case 378: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */
-#line 1049 "util/configparser.y"
+ case 379: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */
+#line 1051 "util/configparser.y"
{
OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3793,21 +3796,21 @@ yyreduce:
else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3797 "util/configparser.c"
+#line 3800 "util/configparser.c"
break;
- case 379: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */
-#line 1058 "util/configparser.y"
+ case 380: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */
+#line 1060 "util/configparser.y"
{
OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->tls_cert_bundle);
cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
}
-#line 3807 "util/configparser.c"
+#line 3810 "util/configparser.c"
break;
- case 380: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */
-#line 1065 "util/configparser.y"
+ case 381: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */
+#line 1067 "util/configparser.y"
{
OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3815,53 +3818,53 @@ yyreduce:
else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3819 "util/configparser.c"
+#line 3822 "util/configparser.c"
break;
- case 381: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */
-#line 1074 "util/configparser.y"
+ case 382: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */
+#line 1076 "util/configparser.y"
{
OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
(yyvsp[0].str)))
yyerror("out of memory");
}
-#line 3830 "util/configparser.c"
+#line 3833 "util/configparser.c"
break;
- case 382: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */
-#line 1082 "util/configparser.y"
+ case 383: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */
+#line 1084 "util/configparser.y"
{
OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->tls_ciphers);
cfg_parser->cfg->tls_ciphers = (yyvsp[0].str);
}
-#line 3840 "util/configparser.c"
+#line 3843 "util/configparser.c"
break;
- case 383: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */
-#line 1089 "util/configparser.y"
+ case 384: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */
+#line 1091 "util/configparser.y"
{
OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->tls_ciphersuites);
cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str);
}
-#line 3850 "util/configparser.c"
+#line 3853 "util/configparser.c"
break;
- case 384: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */
-#line 1096 "util/configparser.y"
+ case 385: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */
+#line 1098 "util/configparser.y"
{
OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
(yyvsp[0].str)))
yyerror("out of memory");
}
-#line 3861 "util/configparser.c"
+#line 3864 "util/configparser.c"
break;
- case 385: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */
-#line 1104 "util/configparser.y"
+ case 386: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */
+#line 1106 "util/configparser.y"
{
OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3869,11 +3872,11 @@ yyreduce:
else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3873 "util/configparser.c"
+#line 3876 "util/configparser.c"
break;
- case 386: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */
-#line 1113 "util/configparser.y"
+ case 387: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */
+#line 1115 "util/configparser.y"
{
OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3881,11 +3884,11 @@ yyreduce:
else cfg_parser->cfg->https_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3885 "util/configparser.c"
+#line 3888 "util/configparser.c"
break;
- case 387: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */
-#line 1121 "util/configparser.y"
+ case 388: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */
+#line 1123 "util/configparser.y"
{
OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->http_endpoint);
@@ -3901,11 +3904,11 @@ yyreduce:
cfg_parser->cfg->http_endpoint = (yyvsp[0].str);
}
}
-#line 3905 "util/configparser.c"
+#line 3908 "util/configparser.c"
break;
- case 388: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */
-#line 1137 "util/configparser.y"
+ case 389: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */
+#line 1139 "util/configparser.y"
{
OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3913,11 +3916,11 @@ yyreduce:
else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3917 "util/configparser.c"
+#line 3920 "util/configparser.c"
break;
- case 389: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */
-#line 1145 "util/configparser.y"
+ case 390: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */
+#line 1147 "util/configparser.y"
{
OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str),
@@ -3925,11 +3928,11 @@ yyreduce:
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 3929 "util/configparser.c"
+#line 3932 "util/configparser.c"
break;
- case 390: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */
-#line 1153 "util/configparser.y"
+ case 391: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */
+#line 1155 "util/configparser.y"
{
OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str),
@@ -3937,11 +3940,11 @@ yyreduce:
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 3941 "util/configparser.c"
+#line 3944 "util/configparser.c"
break;
- case 391: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */
-#line 1161 "util/configparser.y"
+ case 392: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */
+#line 1163 "util/configparser.y"
{
OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3949,11 +3952,11 @@ yyreduce:
else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3953 "util/configparser.c"
+#line 3956 "util/configparser.c"
break;
- case 392: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */
-#line 1169 "util/configparser.y"
+ case 393: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */
+#line 1171 "util/configparser.y"
{
OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3961,11 +3964,11 @@ yyreduce:
else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3965 "util/configparser.c"
+#line 3968 "util/configparser.c"
break;
- case 393: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */
-#line 1177 "util/configparser.y"
+ case 394: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */
+#line 1179 "util/configparser.y"
{
OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3973,11 +3976,11 @@ yyreduce:
else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3977 "util/configparser.c"
+#line 3980 "util/configparser.c"
break;
- case 394: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */
-#line 1186 "util/configparser.y"
+ case 395: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */
+#line 1188 "util/configparser.y"
{
OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3985,11 +3988,11 @@ yyreduce:
else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3989 "util/configparser.c"
+#line 3992 "util/configparser.c"
break;
- case 395: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */
-#line 1195 "util/configparser.y"
+ case 396: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */
+#line 1197 "util/configparser.y"
{
OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4002,11 +4005,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 4006 "util/configparser.c"
+#line 4009 "util/configparser.c"
break;
- case 396: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */
-#line 1209 "util/configparser.y"
+ case 397: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */
+#line 1211 "util/configparser.y"
{
OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4014,11 +4017,11 @@ yyreduce:
else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4018 "util/configparser.c"
+#line 4021 "util/configparser.c"
break;
- case 397: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */
-#line 1218 "util/configparser.y"
+ case 398: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */
+#line 1220 "util/configparser.y"
{
OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4026,11 +4029,11 @@ yyreduce:
else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4030 "util/configparser.c"
+#line 4033 "util/configparser.c"
break;
- case 398: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */
-#line 1227 "util/configparser.y"
+ case 399: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */
+#line 1229 "util/configparser.y"
{
OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4038,11 +4041,11 @@ yyreduce:
else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4042 "util/configparser.c"
+#line 4045 "util/configparser.c"
break;
- case 399: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */
-#line 1236 "util/configparser.y"
+ case 400: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */
+#line 1238 "util/configparser.y"
{
OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4050,11 +4053,11 @@ yyreduce:
else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4054 "util/configparser.c"
+#line 4057 "util/configparser.c"
break;
- case 400: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */
-#line 1245 "util/configparser.y"
+ case 401: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */
+#line 1247 "util/configparser.y"
{
OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4062,11 +4065,23 @@ yyreduce:
else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4066 "util/configparser.c"
+#line 4069 "util/configparser.c"
break;
- case 401: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */
-#line 1254 "util/configparser.y"
+ case 402: /* server_log_destaddr: VAR_LOG_DESTADDR STRING_ARG */
+#line 1256 "util/configparser.y"
+ {
+ OUTYY(("P(server_log_destaddr:%s)\n", (yyvsp[0].str)));
+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->log_destaddr = (strcmp((yyvsp[0].str), "yes")==0);
+ free((yyvsp[0].str));
+ }
+#line 4081 "util/configparser.c"
+ break;
+
+ case 403: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */
+#line 1265 "util/configparser.y"
{
OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4074,31 +4089,31 @@ yyreduce:
else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4078 "util/configparser.c"
+#line 4093 "util/configparser.c"
break;
- case 402: /* server_chroot: VAR_CHROOT STRING_ARG */
-#line 1263 "util/configparser.y"
+ case 404: /* server_chroot: VAR_CHROOT STRING_ARG */
+#line 1274 "util/configparser.y"
{
OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->chrootdir);
cfg_parser->cfg->chrootdir = (yyvsp[0].str);
}
-#line 4088 "util/configparser.c"
+#line 4103 "util/configparser.c"
break;
- case 403: /* server_username: VAR_USERNAME STRING_ARG */
-#line 1270 "util/configparser.y"
+ case 405: /* server_username: VAR_USERNAME STRING_ARG */
+#line 1281 "util/configparser.y"
{
OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->username);
cfg_parser->cfg->username = (yyvsp[0].str);
}
-#line 4098 "util/configparser.c"
+#line 4113 "util/configparser.c"
break;
- case 404: /* server_directory: VAR_DIRECTORY STRING_ARG */
-#line 1277 "util/configparser.y"
+ case 406: /* server_directory: VAR_DIRECTORY STRING_ARG */
+#line 1288 "util/configparser.y"
{
OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->directory);
@@ -4123,105 +4138,105 @@ yyreduce:
}
}
}
-#line 4127 "util/configparser.c"
+#line 4142 "util/configparser.c"
break;
- case 405: /* server_logfile: VAR_LOGFILE STRING_ARG */
-#line 1303 "util/configparser.y"
+ case 407: /* server_logfile: VAR_LOGFILE STRING_ARG */
+#line 1314 "util/configparser.y"
{
OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->logfile);
cfg_parser->cfg->logfile = (yyvsp[0].str);
cfg_parser->cfg->use_syslog = 0;
}
-#line 4138 "util/configparser.c"
+#line 4153 "util/configparser.c"
break;
- case 406: /* server_pidfile: VAR_PIDFILE STRING_ARG */
-#line 1311 "util/configparser.y"
+ case 408: /* server_pidfile: VAR_PIDFILE STRING_ARG */
+#line 1322 "util/configparser.y"
{
OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->pidfile);
cfg_parser->cfg->pidfile = (yyvsp[0].str);
}
-#line 4148 "util/configparser.c"
+#line 4163 "util/configparser.c"
break;
- case 407: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */
-#line 1318 "util/configparser.y"
+ case 409: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */
+#line 1329 "util/configparser.y"
{
OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4158 "util/configparser.c"
+#line 4173 "util/configparser.c"
break;
- case 408: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */
-#line 1325 "util/configparser.y"
+ case 410: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */
+#line 1336 "util/configparser.y"
{
OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
log_warn("option dlv-anchor-file ignored: DLV is decommissioned");
free((yyvsp[0].str));
}
-#line 4168 "util/configparser.c"
+#line 4183 "util/configparser.c"
break;
- case 409: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */
-#line 1332 "util/configparser.y"
+ case 411: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */
+#line 1343 "util/configparser.y"
{
OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
log_warn("option dlv-anchor ignored: DLV is decommissioned");
free((yyvsp[0].str));
}
-#line 4178 "util/configparser.c"
+#line 4193 "util/configparser.c"
break;
- case 410: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */
-#line 1339 "util/configparser.y"
+ case 412: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */
+#line 1350 "util/configparser.y"
{
OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
auto_trust_anchor_file_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4189 "util/configparser.c"
+#line 4204 "util/configparser.c"
break;
- case 411: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */
-#line 1347 "util/configparser.y"
+ case 413: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */
+#line 1358 "util/configparser.y"
{
OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
trust_anchor_file_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4200 "util/configparser.c"
+#line 4215 "util/configparser.c"
break;
- case 412: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */
-#line 1355 "util/configparser.y"
+ case 414: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */
+#line 1366 "util/configparser.y"
{
OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
trusted_keys_file_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4211 "util/configparser.c"
+#line 4226 "util/configparser.c"
break;
- case 413: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */
-#line 1363 "util/configparser.y"
+ case 415: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */
+#line 1374 "util/configparser.y"
{
OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4221 "util/configparser.c"
+#line 4236 "util/configparser.c"
break;
- case 414: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */
-#line 1370 "util/configparser.y"
+ case 416: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */
+#line 1381 "util/configparser.y"
{
OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4231,11 +4246,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4235 "util/configparser.c"
+#line 4250 "util/configparser.c"
break;
- case 415: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */
-#line 1381 "util/configparser.y"
+ case 417: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */
+#line 1392 "util/configparser.y"
{
OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4245,21 +4260,21 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4249 "util/configparser.c"
+#line 4264 "util/configparser.c"
break;
- case 416: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */
-#line 1392 "util/configparser.y"
+ case 418: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */
+#line 1403 "util/configparser.y"
{
OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4259 "util/configparser.c"
+#line 4274 "util/configparser.c"
break;
- case 417: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */
-#line 1399 "util/configparser.y"
+ case 419: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */
+#line 1410 "util/configparser.y"
{
OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4267,11 +4282,11 @@ yyreduce:
else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4271 "util/configparser.c"
+#line 4286 "util/configparser.c"
break;
- case 418: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */
-#line 1408 "util/configparser.y"
+ case 420: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */
+#line 1419 "util/configparser.y"
{
OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4279,11 +4294,11 @@ yyreduce:
else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4283 "util/configparser.c"
+#line 4298 "util/configparser.c"
break;
- case 419: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */
-#line 1417 "util/configparser.y"
+ case 421: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */
+#line 1428 "util/configparser.y"
{
OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4291,11 +4306,11 @@ yyreduce:
else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4295 "util/configparser.c"
+#line 4310 "util/configparser.c"
break;
- case 420: /* server_hide_http_user_agent: VAR_HIDE_HTTP_USER_AGENT STRING_ARG */
-#line 1426 "util/configparser.y"
+ case 422: /* server_hide_http_user_agent: VAR_HIDE_HTTP_USER_AGENT STRING_ARG */
+#line 1437 "util/configparser.y"
{
OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4303,41 +4318,41 @@ yyreduce:
else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4307 "util/configparser.c"
+#line 4322 "util/configparser.c"
break;
- case 421: /* server_identity: VAR_IDENTITY STRING_ARG */
-#line 1435 "util/configparser.y"
+ case 423: /* server_identity: VAR_IDENTITY STRING_ARG */
+#line 1446 "util/configparser.y"
{
OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->identity);
cfg_parser->cfg->identity = (yyvsp[0].str);
}
-#line 4317 "util/configparser.c"
+#line 4332 "util/configparser.c"
break;
- case 422: /* server_version: VAR_VERSION STRING_ARG */
-#line 1442 "util/configparser.y"
+ case 424: /* server_version: VAR_VERSION STRING_ARG */
+#line 1453 "util/configparser.y"
{
OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->version);
cfg_parser->cfg->version = (yyvsp[0].str);
}
-#line 4327 "util/configparser.c"
+#line 4342 "util/configparser.c"
break;
- case 423: /* server_http_user_agent: VAR_HTTP_USER_AGENT STRING_ARG */
-#line 1449 "util/configparser.y"
+ case 425: /* server_http_user_agent: VAR_HTTP_USER_AGENT STRING_ARG */
+#line 1460 "util/configparser.y"
{
OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->http_user_agent);
cfg_parser->cfg->http_user_agent = (yyvsp[0].str);
}
-#line 4337 "util/configparser.c"
+#line 4352 "util/configparser.c"
break;
- case 424: /* server_nsid: VAR_NSID STRING_ARG */
-#line 1456 "util/configparser.y"
+ case 426: /* server_nsid: VAR_NSID STRING_ARG */
+#line 1467 "util/configparser.y"
{
OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->nsid_cfg_str);
@@ -4352,33 +4367,33 @@ yyreduce:
yyerror("the NSID must be either a hex string or an "
"ascii character string prepended with ascii_.");
}
-#line 4356 "util/configparser.c"
+#line 4371 "util/configparser.c"
break;
- case 425: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */
-#line 1472 "util/configparser.y"
+ case 427: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */
+#line 1483 "util/configparser.y"
{
OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
yyerror("buffer size expected");
free((yyvsp[0].str));
}
-#line 4367 "util/configparser.c"
+#line 4382 "util/configparser.c"
break;
- case 426: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */
-#line 1480 "util/configparser.y"
+ case 428: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */
+#line 1491 "util/configparser.y"
{
OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
yyerror("buffer size expected");
free((yyvsp[0].str));
}
-#line 4378 "util/configparser.c"
+#line 4393 "util/configparser.c"
break;
- case 427: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */
-#line 1488 "util/configparser.y"
+ case 429: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */
+#line 1499 "util/configparser.y"
{
OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4387,11 +4402,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4391 "util/configparser.c"
+#line 4406 "util/configparser.c"
break;
- case 428: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */
-#line 1498 "util/configparser.y"
+ case 430: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */
+#line 1509 "util/configparser.y"
{
OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4400,11 +4415,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4404 "util/configparser.c"
+#line 4419 "util/configparser.c"
break;
- case 429: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */
-#line 1508 "util/configparser.y"
+ case 431: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */
+#line 1519 "util/configparser.y"
{
OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4413,11 +4428,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4417 "util/configparser.c"
+#line 4432 "util/configparser.c"
break;
- case 430: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */
-#line 1518 "util/configparser.y"
+ case 432: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */
+#line 1529 "util/configparser.y"
{
OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4430,22 +4445,22 @@ yyreduce:
cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4434 "util/configparser.c"
+#line 4449 "util/configparser.c"
break;
- case 431: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */
-#line 1532 "util/configparser.y"
+ case 433: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */
+#line 1543 "util/configparser.y"
{
OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4445 "util/configparser.c"
+#line 4460 "util/configparser.c"
break;
- case 432: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */
-#line 1540 "util/configparser.y"
+ case 434: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */
+#line 1551 "util/configparser.y"
{
OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4457,11 +4472,11 @@ yyreduce:
else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4461 "util/configparser.c"
+#line 4476 "util/configparser.c"
break;
- case 433: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */
-#line 1553 "util/configparser.y"
+ case 435: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */
+#line 1564 "util/configparser.y"
{
OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4471,22 +4486,22 @@ yyreduce:
else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4475 "util/configparser.c"
+#line 4490 "util/configparser.c"
break;
- case 434: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */
-#line 1564 "util/configparser.y"
+ case 436: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */
+#line 1575 "util/configparser.y"
{
OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4486 "util/configparser.c"
+#line 4501 "util/configparser.c"
break;
- case 435: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */
-#line 1572 "util/configparser.y"
+ case 437: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */
+#line 1583 "util/configparser.y"
{
OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -4498,11 +4513,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4502 "util/configparser.c"
+#line 4517 "util/configparser.c"
break;
- case 436: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */
-#line 1585 "util/configparser.y"
+ case 438: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */
+#line 1596 "util/configparser.y"
{
OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4510,11 +4525,11 @@ yyreduce:
else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4514 "util/configparser.c"
+#line 4529 "util/configparser.c"
break;
- case 437: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */
-#line 1594 "util/configparser.y"
+ case 439: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */
+#line 1605 "util/configparser.y"
{
OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4522,11 +4537,11 @@ yyreduce:
else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4526 "util/configparser.c"
+#line 4541 "util/configparser.c"
break;
- case 438: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */
-#line 1603 "util/configparser.y"
+ case 440: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */
+#line 1614 "util/configparser.y"
{
OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4534,11 +4549,11 @@ yyreduce:
else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4538 "util/configparser.c"
+#line 4553 "util/configparser.c"
break;
- case 439: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */
-#line 1612 "util/configparser.y"
+ case 441: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */
+#line 1623 "util/configparser.y"
{
OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4546,11 +4561,11 @@ yyreduce:
else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4550 "util/configparser.c"
+#line 4565 "util/configparser.c"
break;
- case 440: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */
-#line 1621 "util/configparser.y"
+ case 442: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */
+#line 1632 "util/configparser.y"
{
OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4559,11 +4574,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4563 "util/configparser.c"
+#line 4578 "util/configparser.c"
break;
- case 441: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */
-#line 1631 "util/configparser.y"
+ case 443: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */
+#line 1642 "util/configparser.y"
{
OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4572,22 +4587,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4576 "util/configparser.c"
+#line 4591 "util/configparser.c"
break;
- case 442: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */
-#line 1641 "util/configparser.y"
+ case 444: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */
+#line 1652 "util/configparser.y"
{
OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4587 "util/configparser.c"
+#line 4602 "util/configparser.c"
break;
- case 443: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */
-#line 1649 "util/configparser.y"
+ case 445: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */
+#line 1660 "util/configparser.y"
{
OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -4599,11 +4614,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4603 "util/configparser.c"
+#line 4618 "util/configparser.c"
break;
- case 444: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */
-#line 1662 "util/configparser.y"
+ case 446: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */
+#line 1673 "util/configparser.y"
{
OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4611,22 +4626,22 @@ yyreduce:
else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4615 "util/configparser.c"
+#line 4630 "util/configparser.c"
break;
- case 445: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */
-#line 1671 "util/configparser.y"
+ case 447: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */
+#line 1682 "util/configparser.y"
{
OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
"removed, use infra-host-ttl)", (yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4626 "util/configparser.c"
+#line 4641 "util/configparser.c"
break;
- case 446: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */
-#line 1679 "util/configparser.y"
+ case 448: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */
+#line 1690 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4634,22 +4649,22 @@ yyreduce:
else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4638 "util/configparser.c"
+#line 4653 "util/configparser.c"
break;
- case 447: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */
-#line 1688 "util/configparser.y"
+ case 449: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */
+#line 1699 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
"(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4649 "util/configparser.c"
+#line 4664 "util/configparser.c"
break;
- case 448: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */
-#line 1696 "util/configparser.y"
+ case 450: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */
+#line 1707 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -4661,11 +4676,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4665 "util/configparser.c"
+#line 4680 "util/configparser.c"
break;
- case 449: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */
-#line 1709 "util/configparser.y"
+ case 451: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */
+#line 1720 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4673,11 +4688,11 @@ yyreduce:
else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4677 "util/configparser.c"
+#line 4692 "util/configparser.c"
break;
- case 450: /* server_infra_cache_max_rtt: VAR_INFRA_CACHE_MAX_RTT STRING_ARG */
-#line 1718 "util/configparser.y"
+ case 452: /* server_infra_cache_max_rtt: VAR_INFRA_CACHE_MAX_RTT STRING_ARG */
+#line 1729 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_max_rtt:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4685,11 +4700,11 @@ yyreduce:
else cfg_parser->cfg->infra_cache_max_rtt = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4689 "util/configparser.c"
+#line 4704 "util/configparser.c"
break;
- case 451: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */
-#line 1727 "util/configparser.y"
+ case 453: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */
+#line 1738 "util/configparser.y"
{
OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4698,21 +4713,21 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4702 "util/configparser.c"
+#line 4717 "util/configparser.c"
break;
- case 452: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */
-#line 1737 "util/configparser.y"
+ case 454: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */
+#line 1748 "util/configparser.y"
{
OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->target_fetch_policy);
cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
}
-#line 4712 "util/configparser.c"
+#line 4727 "util/configparser.c"
break;
- case 453: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */
-#line 1744 "util/configparser.y"
+ case 455: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */
+#line 1755 "util/configparser.y"
{
OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4721,11 +4736,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4725 "util/configparser.c"
+#line 4740 "util/configparser.c"
break;
- case 454: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */
-#line 1754 "util/configparser.y"
+ case 456: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */
+#line 1765 "util/configparser.y"
{
OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4734,11 +4749,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4738 "util/configparser.c"
+#line 4753 "util/configparser.c"
break;
- case 455: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */
-#line 1764 "util/configparser.y"
+ case 457: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */
+#line 1775 "util/configparser.y"
{
OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4747,11 +4762,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4751 "util/configparser.c"
+#line 4766 "util/configparser.c"
break;
- case 456: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */
-#line 1774 "util/configparser.y"
+ case 458: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */
+#line 1785 "util/configparser.y"
{
OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4760,11 +4775,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4764 "util/configparser.c"
+#line 4779 "util/configparser.c"
break;
- case 457: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */
-#line 1784 "util/configparser.y"
+ case 459: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */
+#line 1795 "util/configparser.y"
{
OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4773,11 +4788,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4777 "util/configparser.c"
+#line 4792 "util/configparser.c"
break;
- case 458: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */
-#line 1794 "util/configparser.y"
+ case 460: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */
+#line 1805 "util/configparser.y"
{
OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4786,11 +4801,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4790 "util/configparser.c"
+#line 4805 "util/configparser.c"
break;
- case 459: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */
-#line 1804 "util/configparser.y"
+ case 461: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */
+#line 1815 "util/configparser.y"
{
OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4799,11 +4814,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4803 "util/configparser.c"
+#line 4818 "util/configparser.c"
break;
- case 460: /* server_harden_unknown_additional: VAR_HARDEN_UNKNOWN_ADDITIONAL STRING_ARG */
-#line 1814 "util/configparser.y"
+ case 462: /* server_harden_unknown_additional: VAR_HARDEN_UNKNOWN_ADDITIONAL STRING_ARG */
+#line 1825 "util/configparser.y"
{
OUTYY(("P(server_harden_unknown_additional:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4812,11 +4827,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4816 "util/configparser.c"
+#line 4831 "util/configparser.c"
break;
- case 461: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */
-#line 1824 "util/configparser.y"
+ case 463: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */
+#line 1835 "util/configparser.y"
{
OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4825,41 +4840,41 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4829 "util/configparser.c"
+#line 4844 "util/configparser.c"
break;
- case 462: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */
-#line 1834 "util/configparser.y"
+ case 464: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */
+#line 1845 "util/configparser.y"
{
OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4839 "util/configparser.c"
+#line 4854 "util/configparser.c"
break;
- case 463: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */
-#line 1841 "util/configparser.y"
+ case 465: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */
+#line 1852 "util/configparser.y"
{
OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4849 "util/configparser.c"
+#line 4864 "util/configparser.c"
break;
- case 464: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */
-#line 1848 "util/configparser.y"
+ case 466: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */
+#line 1859 "util/configparser.y"
{
OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4859 "util/configparser.c"
+#line 4874 "util/configparser.c"
break;
- case 465: /* server_prefetch: VAR_PREFETCH STRING_ARG */
-#line 1855 "util/configparser.y"
+ case 467: /* server_prefetch: VAR_PREFETCH STRING_ARG */
+#line 1866 "util/configparser.y"
{
OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4867,11 +4882,11 @@ yyreduce:
else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4871 "util/configparser.c"
+#line 4886 "util/configparser.c"
break;
- case 466: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */
-#line 1864 "util/configparser.y"
+ case 468: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */
+#line 1875 "util/configparser.y"
{
OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4879,11 +4894,11 @@ yyreduce:
else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4883 "util/configparser.c"
+#line 4898 "util/configparser.c"
break;
- case 467: /* server_deny_any: VAR_DENY_ANY STRING_ARG */
-#line 1873 "util/configparser.y"
+ case 469: /* server_deny_any: VAR_DENY_ANY STRING_ARG */
+#line 1884 "util/configparser.y"
{
OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4891,11 +4906,11 @@ yyreduce:
else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4895 "util/configparser.c"
+#line 4910 "util/configparser.c"
break;
- case 468: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */
-#line 1882 "util/configparser.y"
+ case 470: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */
+#line 1893 "util/configparser.y"
{
OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4903,21 +4918,21 @@ yyreduce:
else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4907 "util/configparser.c"
+#line 4922 "util/configparser.c"
break;
- case 469: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */
-#line 1891 "util/configparser.y"
+ case 471: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */
+#line 1902 "util/configparser.y"
{
OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4917 "util/configparser.c"
+#line 4932 "util/configparser.c"
break;
- case 470: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */
-#line 1898 "util/configparser.y"
+ case 472: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */
+#line 1909 "util/configparser.y"
{
OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4926,22 +4941,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4930 "util/configparser.c"
+#line 4945 "util/configparser.c"
break;
- case 471: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */
-#line 1908 "util/configparser.y"
+ case 473: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */
+#line 1919 "util/configparser.y"
{
OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_acl_action((yyvsp[0].str));
if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding acl");
}
-#line 4941 "util/configparser.c"
+#line 4956 "util/configparser.c"
break;
- case 472: /* server_interface_action: VAR_INTERFACE_ACTION STRING_ARG STRING_ARG */
-#line 1916 "util/configparser.y"
+ case 474: /* server_interface_action: VAR_INTERFACE_ACTION STRING_ARG STRING_ARG */
+#line 1927 "util/configparser.y"
{
OUTYY(("P(server_interface_action:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_acl_action((yyvsp[0].str));
@@ -4949,21 +4964,21 @@ yyreduce:
&cfg_parser->cfg->interface_actions, (yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding acl");
}
-#line 4953 "util/configparser.c"
+#line 4968 "util/configparser.c"
break;
- case 473: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */
-#line 1925 "util/configparser.y"
+ case 475: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */
+#line 1936 "util/configparser.y"
{
OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->module_conf);
cfg_parser->cfg->module_conf = (yyvsp[0].str);
}
-#line 4963 "util/configparser.c"
+#line 4978 "util/configparser.c"
break;
- case 474: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */
-#line 1932 "util/configparser.y"
+ case 476: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */
+#line 1943 "util/configparser.y"
{
OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -4980,11 +4995,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4984 "util/configparser.c"
+#line 4999 "util/configparser.c"
break;
- case 475: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */
-#line 1950 "util/configparser.y"
+ case 477: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */
+#line 1961 "util/configparser.y"
{
OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -4996,11 +5011,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5000 "util/configparser.c"
+#line 5015 "util/configparser.c"
break;
- case 476: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */
-#line 1963 "util/configparser.y"
+ case 478: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */
+#line 1974 "util/configparser.y"
{
OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -5012,11 +5027,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5016 "util/configparser.c"
+#line 5031 "util/configparser.c"
break;
- case 477: /* server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG */
-#line 1976 "util/configparser.y"
+ case 479: /* server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG */
+#line 1987 "util/configparser.y"
{
OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -5028,11 +5043,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5032 "util/configparser.c"
+#line 5047 "util/configparser.c"
break;
- case 478: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */
-#line 1989 "util/configparser.y"
+ case 480: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */
+#line 2000 "util/configparser.y"
{
OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5040,11 +5055,11 @@ yyreduce:
else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5044 "util/configparser.c"
+#line 5059 "util/configparser.c"
break;
- case 479: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */
-#line 1998 "util/configparser.y"
+ case 481: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */
+#line 2009 "util/configparser.y"
{
OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5052,11 +5067,11 @@ yyreduce:
else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5056 "util/configparser.c"
+#line 5071 "util/configparser.c"
break;
- case 480: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */
-#line 2007 "util/configparser.y"
+ case 482: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */
+#line 2018 "util/configparser.y"
{
OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5064,11 +5079,11 @@ yyreduce:
else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5068 "util/configparser.c"
+#line 5083 "util/configparser.c"
break;
- case 481: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */
-#line 2016 "util/configparser.y"
+ case 483: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */
+#line 2027 "util/configparser.y"
{
OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5076,11 +5091,11 @@ yyreduce:
else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5080 "util/configparser.c"
+#line 5095 "util/configparser.c"
break;
- case 482: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */
-#line 2025 "util/configparser.y"
+ case 484: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */
+#line 2036 "util/configparser.y"
{
OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5089,11 +5104,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5093 "util/configparser.c"
+#line 5108 "util/configparser.c"
break;
- case 483: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */
-#line 2035 "util/configparser.y"
+ case 485: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */
+#line 2046 "util/configparser.y"
{
OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5102,11 +5117,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5106 "util/configparser.c"
+#line 5121 "util/configparser.c"
break;
- case 484: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */
-#line 2045 "util/configparser.y"
+ case 486: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */
+#line 2056 "util/configparser.y"
{
OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5116,11 +5131,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5120 "util/configparser.c"
+#line 5135 "util/configparser.c"
break;
- case 485: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */
-#line 2056 "util/configparser.y"
+ case 487: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */
+#line 2067 "util/configparser.y"
{
OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5128,11 +5143,11 @@ yyreduce:
else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5132 "util/configparser.c"
+#line 5147 "util/configparser.c"
break;
- case 486: /* server_disable_edns_do: VAR_DISABLE_EDNS_DO STRING_ARG */
-#line 2065 "util/configparser.y"
+ case 488: /* server_disable_edns_do: VAR_DISABLE_EDNS_DO STRING_ARG */
+#line 2076 "util/configparser.y"
{
OUTYY(("P(server_disable_edns_do:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5140,11 +5155,11 @@ yyreduce:
else cfg_parser->cfg->disable_edns_do = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5144 "util/configparser.c"
+#line 5159 "util/configparser.c"
break;
- case 487: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */
-#line 2074 "util/configparser.y"
+ case 489: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */
+#line 2085 "util/configparser.y"
{
OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5152,11 +5167,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5156 "util/configparser.c"
+#line 5171 "util/configparser.c"
break;
- case 488: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */
-#line 2083 "util/configparser.y"
+ case 490: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */
+#line 2094 "util/configparser.y"
{
OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5164,11 +5179,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5168 "util/configparser.c"
+#line 5183 "util/configparser.c"
break;
- case 489: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */
-#line 2092 "util/configparser.y"
+ case 491: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */
+#line 2103 "util/configparser.y"
{
OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5176,11 +5191,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5180 "util/configparser.c"
+#line 5195 "util/configparser.c"
break;
- case 490: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */
-#line 2101 "util/configparser.y"
+ case 492: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */
+#line 2112 "util/configparser.y"
{
OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5188,11 +5203,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5192 "util/configparser.c"
+#line 5207 "util/configparser.c"
break;
- case 491: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */
-#line 2110 "util/configparser.y"
+ case 493: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */
+#line 2121 "util/configparser.y"
{
OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5200,11 +5215,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5204 "util/configparser.c"
+#line 5219 "util/configparser.c"
break;
- case 492: /* server_ede_serve_expired: VAR_EDE_SERVE_EXPIRED STRING_ARG */
-#line 2119 "util/configparser.y"
+ case 494: /* server_ede_serve_expired: VAR_EDE_SERVE_EXPIRED STRING_ARG */
+#line 2130 "util/configparser.y"
{
OUTYY(("P(server_ede_serve_expired:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5212,11 +5227,11 @@ yyreduce:
else cfg_parser->cfg->ede_serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5216 "util/configparser.c"
+#line 5231 "util/configparser.c"
break;
- case 493: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */
-#line 2128 "util/configparser.y"
+ case 495: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */
+#line 2139 "util/configparser.y"
{
OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5224,11 +5239,11 @@ yyreduce:
else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5228 "util/configparser.c"
+#line 5243 "util/configparser.c"
break;
- case 494: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */
-#line 2137 "util/configparser.y"
+ case 496: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */
+#line 2148 "util/configparser.y"
{
OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5240,11 +5255,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 5244 "util/configparser.c"
+#line 5259 "util/configparser.c"
break;
- case 495: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */
-#line 2150 "util/configparser.y"
+ case 497: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */
+#line 2161 "util/configparser.y"
{
OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5256,11 +5271,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 5260 "util/configparser.c"
+#line 5275 "util/configparser.c"
break;
- case 496: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */
-#line 2163 "util/configparser.y"
+ case 498: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */
+#line 2174 "util/configparser.y"
{
OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5268,21 +5283,21 @@ yyreduce:
else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5272 "util/configparser.c"
+#line 5287 "util/configparser.c"
break;
- case 497: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */
-#line 2172 "util/configparser.y"
+ case 499: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */
+#line 2183 "util/configparser.y"
{
OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->val_nsec3_key_iterations);
cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
}
-#line 5282 "util/configparser.c"
+#line 5297 "util/configparser.c"
break;
- case 498: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */
-#line 2179 "util/configparser.y"
+ case 500: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */
+#line 2190 "util/configparser.y"
{
OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5290,11 +5305,11 @@ yyreduce:
else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5294 "util/configparser.c"
+#line 5309 "util/configparser.c"
break;
- case 499: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */
-#line 2188 "util/configparser.y"
+ case 501: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */
+#line 2199 "util/configparser.y"
{
OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5302,11 +5317,11 @@ yyreduce:
else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5306 "util/configparser.c"
+#line 5321 "util/configparser.c"
break;
- case 500: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */
-#line 2197 "util/configparser.y"
+ case 502: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */
+#line 2208 "util/configparser.y"
{
OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5314,11 +5329,11 @@ yyreduce:
else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5318 "util/configparser.c"
+#line 5333 "util/configparser.c"
break;
- case 501: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */
-#line 2206 "util/configparser.y"
+ case 503: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */
+#line 2217 "util/configparser.y"
{
OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5326,11 +5341,11 @@ yyreduce:
else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5330 "util/configparser.c"
+#line 5345 "util/configparser.c"
break;
- case 502: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */
-#line 2215 "util/configparser.y"
+ case 504: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */
+#line 2226 "util/configparser.y"
{
OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5339,22 +5354,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5343 "util/configparser.c"
+#line 5358 "util/configparser.c"
break;
- case 503: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */
-#line 2225 "util/configparser.y"
+ case 505: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */
+#line 2236 "util/configparser.y"
{
OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 5354 "util/configparser.c"
+#line 5369 "util/configparser.c"
break;
- case 504: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */
-#line 2233 "util/configparser.y"
+ case 506: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */
+#line 2244 "util/configparser.y"
{
OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -5366,22 +5381,22 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5370 "util/configparser.c"
+#line 5385 "util/configparser.c"
break;
- case 505: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */
-#line 2246 "util/configparser.y"
+ case 507: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */
+#line 2257 "util/configparser.y"
{
OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 5381 "util/configparser.c"
+#line 5396 "util/configparser.c"
break;
- case 506: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */
-#line 2254 "util/configparser.y"
+ case 508: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */
+#line 2265 "util/configparser.y"
{
OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
@@ -5436,21 +5451,21 @@ yyreduce:
fatal_exit("out of memory adding local-zone");
}
}
-#line 5440 "util/configparser.c"
+#line 5455 "util/configparser.c"
break;
- case 507: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */
-#line 2310 "util/configparser.y"
+ case 509: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */
+#line 2321 "util/configparser.y"
{
OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
fatal_exit("out of memory adding local-data");
}
-#line 5450 "util/configparser.c"
+#line 5465 "util/configparser.c"
break;
- case 508: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */
-#line 2317 "util/configparser.y"
+ case 510: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */
+#line 2328 "util/configparser.y"
{
char* ptr;
OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -5464,11 +5479,11 @@ yyreduce:
yyerror("local-data-ptr could not be reversed");
}
}
-#line 5468 "util/configparser.c"
+#line 5483 "util/configparser.c"
break;
- case 509: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */
-#line 2332 "util/configparser.y"
+ case 511: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */
+#line 2343 "util/configparser.y"
{
OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5477,11 +5492,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5481 "util/configparser.c"
+#line 5496 "util/configparser.c"
break;
- case 510: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */
-#line 2342 "util/configparser.y"
+ case 512: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */
+#line 2353 "util/configparser.y"
{
OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5490,41 +5505,41 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5494 "util/configparser.c"
+#line 5509 "util/configparser.c"
break;
- case 511: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */
-#line 2352 "util/configparser.y"
+ case 513: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */
+#line 2363 "util/configparser.y"
{
OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str)));
cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5504 "util/configparser.c"
+#line 5519 "util/configparser.c"
break;
- case 512: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */
-#line 2359 "util/configparser.y"
+ case 514: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */
+#line 2370 "util/configparser.y"
{
OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str)));
cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5514 "util/configparser.c"
+#line 5529 "util/configparser.c"
break;
- case 513: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */
-#line 2366 "util/configparser.y"
+ case 515: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */
+#line 2377 "util/configparser.y"
{
OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dns64_prefix);
cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
}
-#line 5524 "util/configparser.c"
+#line 5539 "util/configparser.c"
break;
- case 514: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */
-#line 2373 "util/configparser.y"
+ case 516: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */
+#line 2384 "util/configparser.y"
{
OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5532,32 +5547,32 @@ yyreduce:
else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5536 "util/configparser.c"
+#line 5551 "util/configparser.c"
break;
- case 515: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */
-#line 2382 "util/configparser.y"
+ case 517: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */
+#line 2393 "util/configparser.y"
{
OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa,
(yyvsp[0].str)))
fatal_exit("out of memory adding dns64-ignore-aaaa");
}
-#line 5547 "util/configparser.c"
+#line 5562 "util/configparser.c"
break;
- case 516: /* server_nat64_prefix: VAR_NAT64_PREFIX STRING_ARG */
-#line 2390 "util/configparser.y"
+ case 518: /* server_nat64_prefix: VAR_NAT64_PREFIX STRING_ARG */
+#line 2401 "util/configparser.y"
{
OUTYY(("P(nat64_prefix:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->nat64_prefix);
cfg_parser->cfg->nat64_prefix = (yyvsp[0].str);
}
-#line 5557 "util/configparser.c"
+#line 5572 "util/configparser.c"
break;
- case 517: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */
-#line 2397 "util/configparser.y"
+ case 519: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */
+#line 2408 "util/configparser.y"
{
char* p, *s = (yyvsp[0].str);
OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
@@ -5570,11 +5585,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5574 "util/configparser.c"
+#line 5589 "util/configparser.c"
break;
- case 518: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */
-#line 2411 "util/configparser.y"
+ case 520: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */
+#line 2422 "util/configparser.y"
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -5594,11 +5609,11 @@ yyreduce:
}
}
}
-#line 5598 "util/configparser.c"
+#line 5613 "util/configparser.c"
break;
- case 519: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */
-#line 2432 "util/configparser.y"
+ case 521: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */
+#line 2443 "util/configparser.y"
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -5618,11 +5633,11 @@ yyreduce:
}
}
}
-#line 5622 "util/configparser.c"
+#line 5637 "util/configparser.c"
break;
- case 520: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */
-#line 2453 "util/configparser.y"
+ case 522: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */
+#line 2464 "util/configparser.y"
{
OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
@@ -5633,11 +5648,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 5637 "util/configparser.c"
+#line 5652 "util/configparser.c"
break;
- case 521: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */
-#line 2465 "util/configparser.y"
+ case 523: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */
+#line 2476 "util/configparser.y"
{
OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
@@ -5648,11 +5663,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 5652 "util/configparser.c"
+#line 5667 "util/configparser.c"
break;
- case 522: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */
-#line 2477 "util/configparser.y"
+ case 524: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */
+#line 2488 "util/configparser.y"
{
OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
@@ -5663,11 +5678,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 5667 "util/configparser.c"
+#line 5682 "util/configparser.c"
break;
- case 523: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */
-#line 2489 "util/configparser.y"
+ case 525: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */
+#line 2500 "util/configparser.y"
{
OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
@@ -5675,11 +5690,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 5679 "util/configparser.c"
+#line 5694 "util/configparser.c"
break;
- case 524: /* server_interface_tag: VAR_INTERFACE_TAG STRING_ARG STRING_ARG */
-#line 2498 "util/configparser.y"
+ case 526: /* server_interface_tag: VAR_INTERFACE_TAG STRING_ARG STRING_ARG */
+#line 2509 "util/configparser.y"
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -5699,11 +5714,11 @@ yyreduce:
}
}
}
-#line 5703 "util/configparser.c"
+#line 5718 "util/configparser.c"
break;
- case 525: /* server_interface_tag_action: VAR_INTERFACE_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */
-#line 2519 "util/configparser.y"
+ case 527: /* server_interface_tag_action: VAR_INTERFACE_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */
+#line 2530 "util/configparser.y"
{
OUTYY(("P(server_interface_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_actions,
@@ -5714,11 +5729,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 5718 "util/configparser.c"
+#line 5733 "util/configparser.c"
break;
- case 526: /* server_interface_tag_data: VAR_INTERFACE_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */
-#line 2531 "util/configparser.y"
+ case 528: /* server_interface_tag_data: VAR_INTERFACE_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */
+#line 2542 "util/configparser.y"
{
OUTYY(("P(server_interface_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_datas,
@@ -5729,11 +5744,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 5733 "util/configparser.c"
+#line 5748 "util/configparser.c"
break;
- case 527: /* server_interface_view: VAR_INTERFACE_VIEW STRING_ARG STRING_ARG */
-#line 2543 "util/configparser.y"
+ case 529: /* server_interface_view: VAR_INTERFACE_VIEW STRING_ARG STRING_ARG */
+#line 2554 "util/configparser.y"
{
OUTYY(("P(server_interface_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str2list_insert(&cfg_parser->cfg->interface_view,
@@ -5741,11 +5756,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 5745 "util/configparser.c"
+#line 5760 "util/configparser.c"
break;
- case 528: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */
-#line 2552 "util/configparser.y"
+ case 530: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */
+#line 2563 "util/configparser.y"
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -5765,11 +5780,11 @@ yyreduce:
}
}
}
-#line 5769 "util/configparser.c"
+#line 5784 "util/configparser.c"
break;
- case 529: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */
-#line 2573 "util/configparser.y"
+ case 531: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */
+#line 2584 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5777,11 +5792,11 @@ yyreduce:
else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5781 "util/configparser.c"
+#line 5796 "util/configparser.c"
break;
- case 530: /* server_ip_ratelimit_cookie: VAR_IP_RATELIMIT_COOKIE STRING_ARG */
-#line 2582 "util/configparser.y"
+ case 532: /* server_ip_ratelimit_cookie: VAR_IP_RATELIMIT_COOKIE STRING_ARG */
+#line 2593 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit_cookie:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5789,11 +5804,11 @@ yyreduce:
else cfg_parser->cfg->ip_ratelimit_cookie = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5793 "util/configparser.c"
+#line 5808 "util/configparser.c"
break;
- case 531: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */
-#line 2591 "util/configparser.y"
+ case 533: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */
+#line 2602 "util/configparser.y"
{
OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5801,33 +5816,33 @@ yyreduce:
else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5805 "util/configparser.c"
+#line 5820 "util/configparser.c"
break;
- case 532: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */
-#line 2600 "util/configparser.y"
+ case 534: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */
+#line 2611 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 5816 "util/configparser.c"
+#line 5831 "util/configparser.c"
break;
- case 533: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */
-#line 2608 "util/configparser.y"
+ case 535: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */
+#line 2619 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 5827 "util/configparser.c"
+#line 5842 "util/configparser.c"
break;
- case 534: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */
-#line 2616 "util/configparser.y"
+ case 536: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */
+#line 2627 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -5839,11 +5854,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5843 "util/configparser.c"
+#line 5858 "util/configparser.c"
break;
- case 535: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */
-#line 2629 "util/configparser.y"
+ case 537: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */
+#line 2640 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -5855,11 +5870,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5859 "util/configparser.c"
+#line 5874 "util/configparser.c"
break;
- case 536: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */
-#line 2642 "util/configparser.y"
+ case 538: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */
+#line 2653 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -5873,11 +5888,11 @@ yyreduce:
"ratelimit-for-domain");
}
}
-#line 5877 "util/configparser.c"
+#line 5892 "util/configparser.c"
break;
- case 537: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */
-#line 2657 "util/configparser.y"
+ case 539: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */
+#line 2668 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -5891,11 +5906,11 @@ yyreduce:
"ratelimit-below-domain");
}
}
-#line 5895 "util/configparser.c"
+#line 5910 "util/configparser.c"
break;
- case 538: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */
-#line 2672 "util/configparser.y"
+ case 540: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */
+#line 2683 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5903,11 +5918,11 @@ yyreduce:
else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5907 "util/configparser.c"
+#line 5922 "util/configparser.c"
break;
- case 539: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */
-#line 2681 "util/configparser.y"
+ case 541: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */
+#line 2692 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5915,11 +5930,11 @@ yyreduce:
else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5919 "util/configparser.c"
+#line 5934 "util/configparser.c"
break;
- case 540: /* server_ip_ratelimit_backoff: VAR_IP_RATELIMIT_BACKOFF STRING_ARG */
-#line 2690 "util/configparser.y"
+ case 542: /* server_ip_ratelimit_backoff: VAR_IP_RATELIMIT_BACKOFF STRING_ARG */
+#line 2701 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit_backoff:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5928,11 +5943,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5932 "util/configparser.c"
+#line 5947 "util/configparser.c"
break;
- case 541: /* server_ratelimit_backoff: VAR_RATELIMIT_BACKOFF STRING_ARG */
-#line 2700 "util/configparser.y"
+ case 543: /* server_ratelimit_backoff: VAR_RATELIMIT_BACKOFF STRING_ARG */
+#line 2711 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_backoff:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5941,11 +5956,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5945 "util/configparser.c"
+#line 5960 "util/configparser.c"
break;
- case 542: /* server_outbound_msg_retry: VAR_OUTBOUND_MSG_RETRY STRING_ARG */
-#line 2710 "util/configparser.y"
+ case 544: /* server_outbound_msg_retry: VAR_OUTBOUND_MSG_RETRY STRING_ARG */
+#line 2721 "util/configparser.y"
{
OUTYY(("P(server_outbound_msg_retry:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5953,11 +5968,11 @@ yyreduce:
else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5957 "util/configparser.c"
+#line 5972 "util/configparser.c"
break;
- case 543: /* server_max_sent_count: VAR_MAX_SENT_COUNT STRING_ARG */
-#line 2719 "util/configparser.y"
+ case 545: /* server_max_sent_count: VAR_MAX_SENT_COUNT STRING_ARG */
+#line 2730 "util/configparser.y"
{
OUTYY(("P(server_max_sent_count:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5965,11 +5980,11 @@ yyreduce:
else cfg_parser->cfg->max_sent_count = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5969 "util/configparser.c"
+#line 5984 "util/configparser.c"
break;
- case 544: /* server_max_query_restarts: VAR_MAX_QUERY_RESTARTS STRING_ARG */
-#line 2728 "util/configparser.y"
+ case 546: /* server_max_query_restarts: VAR_MAX_QUERY_RESTARTS STRING_ARG */
+#line 2739 "util/configparser.y"
{
OUTYY(("P(server_max_query_restarts:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5977,20 +5992,20 @@ yyreduce:
else cfg_parser->cfg->max_query_restarts = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5981 "util/configparser.c"
+#line 5996 "util/configparser.c"
break;
- case 545: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */
-#line 2737 "util/configparser.y"
+ case 547: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */
+#line 2748 "util/configparser.y"
{
OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n"));
free((yyvsp[0].str));
}
-#line 5990 "util/configparser.c"
+#line 6005 "util/configparser.c"
break;
- case 546: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */
-#line 2743 "util/configparser.y"
+ case 548: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */
+#line 2754 "util/configparser.y"
{
OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) <= 0)
@@ -5998,11 +6013,11 @@ yyreduce:
else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6002 "util/configparser.c"
+#line 6017 "util/configparser.c"
break;
- case 547: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */
-#line 2752 "util/configparser.y"
+ case 549: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */
+#line 2763 "util/configparser.y"
{
OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6010,11 +6025,11 @@ yyreduce:
else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6014 "util/configparser.c"
+#line 6029 "util/configparser.c"
break;
- case 548: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */
-#line 2761 "util/configparser.y"
+ case 550: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */
+#line 2772 "util/configparser.y"
{
OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6023,11 +6038,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6027 "util/configparser.c"
+#line 6042 "util/configparser.c"
break;
- case 549: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */
-#line 2771 "util/configparser.y"
+ case 551: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */
+#line 2782 "util/configparser.y"
{
OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6036,11 +6051,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6040 "util/configparser.c"
+#line 6055 "util/configparser.c"
break;
- case 550: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */
-#line 2781 "util/configparser.y"
+ case 552: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */
+#line 2792 "util/configparser.y"
{
OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6049,11 +6064,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6053 "util/configparser.c"
+#line 6068 "util/configparser.c"
break;
- case 551: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */
-#line 2791 "util/configparser.y"
+ case 553: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */
+#line 2802 "util/configparser.y"
{
OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -6061,11 +6076,11 @@ yyreduce:
else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6065 "util/configparser.c"
+#line 6080 "util/configparser.c"
break;
- case 552: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */
-#line 2800 "util/configparser.y"
+ case 554: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */
+#line 2811 "util/configparser.y"
{
OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6074,11 +6089,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6078 "util/configparser.c"
+#line 6093 "util/configparser.c"
break;
- case 553: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */
-#line 2810 "util/configparser.y"
+ case 555: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */
+#line 2821 "util/configparser.y"
{
OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -6086,11 +6101,11 @@ yyreduce:
else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6090 "util/configparser.c"
+#line 6105 "util/configparser.c"
break;
- case 554: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */
-#line 2819 "util/configparser.y"
+ case 556: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */
+#line 2830 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str)));
@@ -6102,11 +6117,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 6106 "util/configparser.c"
+#line 6121 "util/configparser.c"
break;
- case 555: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */
-#line 2832 "util/configparser.y"
+ case 557: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */
+#line 2843 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str)));
@@ -6118,11 +6133,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 6122 "util/configparser.c"
+#line 6137 "util/configparser.c"
break;
- case 556: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */
-#line 2845 "util/configparser.y"
+ case 558: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */
+#line 2856 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str)));
@@ -6133,11 +6148,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 6137 "util/configparser.c"
+#line 6152 "util/configparser.c"
break;
- case 557: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */
-#line 2857 "util/configparser.y"
+ case 559: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */
+#line 2868 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str)));
@@ -6150,11 +6165,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 6154 "util/configparser.c"
+#line 6169 "util/configparser.c"
break;
- case 558: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */
-#line 2871 "util/configparser.y"
+ case 560: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */
+#line 2882 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str)));
@@ -6165,11 +6180,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 6169 "util/configparser.c"
+#line 6184 "util/configparser.c"
break;
- case 559: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */
-#line 2883 "util/configparser.y"
+ case 561: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */
+#line 2894 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str)));
@@ -6182,11 +6197,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 6186 "util/configparser.c"
+#line 6201 "util/configparser.c"
break;
- case 560: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */
-#line 2897 "util/configparser.y"
+ case 562: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */
+#line 2908 "util/configparser.y"
{
OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str2list_insert(
@@ -6194,11 +6209,11 @@ yyreduce:
fatal_exit("out of memory adding "
"edns-client-string");
}
-#line 6198 "util/configparser.c"
+#line 6213 "util/configparser.c"
break;
- case 561: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */
-#line 2906 "util/configparser.y"
+ case 563: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */
+#line 2917 "util/configparser.y"
{
OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6208,11 +6223,11 @@ yyreduce:
else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6212 "util/configparser.c"
+#line 6227 "util/configparser.c"
break;
- case 562: /* server_ede: VAR_EDE STRING_ARG */
-#line 2917 "util/configparser.y"
+ case 564: /* server_ede: VAR_EDE STRING_ARG */
+#line 2928 "util/configparser.y"
{
OUTYY(("P(server_ede:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6220,21 +6235,21 @@ yyreduce:
else cfg_parser->cfg->ede = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6224 "util/configparser.c"
+#line 6239 "util/configparser.c"
break;
- case 563: /* server_proxy_protocol_port: VAR_PROXY_PROTOCOL_PORT STRING_ARG */
-#line 2926 "util/configparser.y"
+ case 565: /* server_proxy_protocol_port: VAR_PROXY_PROTOCOL_PORT STRING_ARG */
+#line 2937 "util/configparser.y"
{
OUTYY(("P(server_proxy_protocol_port:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->proxy_protocol_port, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6234 "util/configparser.c"
+#line 6249 "util/configparser.c"
break;
- case 564: /* stub_name: VAR_NAME STRING_ARG */
-#line 2933 "util/configparser.y"
+ case 566: /* stub_name: VAR_NAME STRING_ARG */
+#line 2944 "util/configparser.y"
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->stubs->name)
@@ -6243,31 +6258,31 @@ yyreduce:
free(cfg_parser->cfg->stubs->name);
cfg_parser->cfg->stubs->name = (yyvsp[0].str);
}
-#line 6247 "util/configparser.c"
+#line 6262 "util/configparser.c"
break;
- case 565: /* stub_host: VAR_STUB_HOST STRING_ARG */
-#line 2943 "util/configparser.y"
+ case 567: /* stub_host: VAR_STUB_HOST STRING_ARG */
+#line 2954 "util/configparser.y"
{
OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6257 "util/configparser.c"
+#line 6272 "util/configparser.c"
break;
- case 566: /* stub_addr: VAR_STUB_ADDR STRING_ARG */
-#line 2950 "util/configparser.y"
+ case 568: /* stub_addr: VAR_STUB_ADDR STRING_ARG */
+#line 2961 "util/configparser.y"
{
OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6267 "util/configparser.c"
+#line 6282 "util/configparser.c"
break;
- case 567: /* stub_first: VAR_STUB_FIRST STRING_ARG */
-#line 2957 "util/configparser.y"
+ case 569: /* stub_first: VAR_STUB_FIRST STRING_ARG */
+#line 2968 "util/configparser.y"
{
OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6275,11 +6290,11 @@ yyreduce:
else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6279 "util/configparser.c"
+#line 6294 "util/configparser.c"
break;
- case 568: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */
-#line 2966 "util/configparser.y"
+ case 570: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */
+#line 2977 "util/configparser.y"
{
OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6287,11 +6302,11 @@ yyreduce:
else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6291 "util/configparser.c"
+#line 6306 "util/configparser.c"
break;
- case 569: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */
-#line 2975 "util/configparser.y"
+ case 571: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */
+#line 2986 "util/configparser.y"
{
OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6300,11 +6315,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6304 "util/configparser.c"
+#line 6319 "util/configparser.c"
break;
- case 570: /* stub_tcp_upstream: VAR_STUB_TCP_UPSTREAM STRING_ARG */
-#line 2985 "util/configparser.y"
+ case 572: /* stub_tcp_upstream: VAR_STUB_TCP_UPSTREAM STRING_ARG */
+#line 2996 "util/configparser.y"
{
OUTYY(("P(stub-tcp-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6313,11 +6328,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6317 "util/configparser.c"
+#line 6332 "util/configparser.c"
break;
- case 571: /* stub_prime: VAR_STUB_PRIME STRING_ARG */
-#line 2995 "util/configparser.y"
+ case 573: /* stub_prime: VAR_STUB_PRIME STRING_ARG */
+#line 3006 "util/configparser.y"
{
OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6326,11 +6341,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6330 "util/configparser.c"
+#line 6345 "util/configparser.c"
break;
- case 572: /* forward_name: VAR_NAME STRING_ARG */
-#line 3005 "util/configparser.y"
+ case 574: /* forward_name: VAR_NAME STRING_ARG */
+#line 3016 "util/configparser.y"
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->forwards->name)
@@ -6339,31 +6354,31 @@ yyreduce:
free(cfg_parser->cfg->forwards->name);
cfg_parser->cfg->forwards->name = (yyvsp[0].str);
}
-#line 6343 "util/configparser.c"
+#line 6358 "util/configparser.c"
break;
- case 573: /* forward_host: VAR_FORWARD_HOST STRING_ARG */
-#line 3015 "util/configparser.y"
+ case 575: /* forward_host: VAR_FORWARD_HOST STRING_ARG */
+#line 3026 "util/configparser.y"
{
OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6353 "util/configparser.c"
+#line 6368 "util/configparser.c"
break;
- case 574: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */
-#line 3022 "util/configparser.y"
+ case 576: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */
+#line 3033 "util/configparser.y"
{
OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6363 "util/configparser.c"
+#line 6378 "util/configparser.c"
break;
- case 575: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */
-#line 3029 "util/configparser.y"
+ case 577: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */
+#line 3040 "util/configparser.y"
{
OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6371,11 +6386,11 @@ yyreduce:
else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6375 "util/configparser.c"
+#line 6390 "util/configparser.c"
break;
- case 576: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */
-#line 3038 "util/configparser.y"
+ case 578: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */
+#line 3049 "util/configparser.y"
{
OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6383,11 +6398,11 @@ yyreduce:
else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6387 "util/configparser.c"
+#line 6402 "util/configparser.c"
break;
- case 577: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */
-#line 3047 "util/configparser.y"
+ case 579: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */
+#line 3058 "util/configparser.y"
{
OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6396,11 +6411,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6400 "util/configparser.c"
+#line 6415 "util/configparser.c"
break;
- case 578: /* forward_tcp_upstream: VAR_FORWARD_TCP_UPSTREAM STRING_ARG */
-#line 3057 "util/configparser.y"
+ case 580: /* forward_tcp_upstream: VAR_FORWARD_TCP_UPSTREAM STRING_ARG */
+#line 3068 "util/configparser.y"
{
OUTYY(("P(forward-tcp-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6409,11 +6424,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6413 "util/configparser.c"
+#line 6428 "util/configparser.c"
break;
- case 579: /* auth_name: VAR_NAME STRING_ARG */
-#line 3067 "util/configparser.y"
+ case 581: /* auth_name: VAR_NAME STRING_ARG */
+#line 3078 "util/configparser.y"
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->auths->name)
@@ -6422,52 +6437,52 @@ yyreduce:
free(cfg_parser->cfg->auths->name);
cfg_parser->cfg->auths->name = (yyvsp[0].str);
}
-#line 6426 "util/configparser.c"
+#line 6441 "util/configparser.c"
break;
- case 580: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */
-#line 3077 "util/configparser.y"
+ case 582: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */
+#line 3088 "util/configparser.y"
{
OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->auths->zonefile);
cfg_parser->cfg->auths->zonefile = (yyvsp[0].str);
}
-#line 6436 "util/configparser.c"
+#line 6451 "util/configparser.c"
break;
- case 581: /* auth_master: VAR_MASTER STRING_ARG */
-#line 3084 "util/configparser.y"
+ case 583: /* auth_master: VAR_MASTER STRING_ARG */
+#line 3095 "util/configparser.y"
{
OUTYY(("P(master:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6446 "util/configparser.c"
+#line 6461 "util/configparser.c"
break;
- case 582: /* auth_url: VAR_URL STRING_ARG */
-#line 3091 "util/configparser.y"
+ case 584: /* auth_url: VAR_URL STRING_ARG */
+#line 3102 "util/configparser.y"
{
OUTYY(("P(url:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6456 "util/configparser.c"
+#line 6471 "util/configparser.c"
break;
- case 583: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */
-#line 3098 "util/configparser.y"
+ case 585: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */
+#line 3109 "util/configparser.y"
{
OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify,
(yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6467 "util/configparser.c"
+#line 6482 "util/configparser.c"
break;
- case 584: /* auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG */
-#line 3106 "util/configparser.y"
+ case 586: /* auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG */
+#line 3117 "util/configparser.y"
{
OUTYY(("P(zonemd-check:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6476,11 +6491,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6480 "util/configparser.c"
+#line 6495 "util/configparser.c"
break;
- case 585: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */
-#line 3116 "util/configparser.y"
+ case 587: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */
+#line 3127 "util/configparser.y"
{
OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6489,11 +6504,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6493 "util/configparser.c"
+#line 6508 "util/configparser.c"
break;
- case 586: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */
-#line 3126 "util/configparser.y"
+ case 588: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */
+#line 3137 "util/configparser.y"
{
OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6502,11 +6517,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6506 "util/configparser.c"
+#line 6521 "util/configparser.c"
break;
- case 587: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */
-#line 3136 "util/configparser.y"
+ case 589: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */
+#line 3147 "util/configparser.y"
{
OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6515,11 +6530,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6519 "util/configparser.c"
+#line 6534 "util/configparser.c"
break;
- case 588: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */
-#line 3146 "util/configparser.y"
+ case 590: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */
+#line 3157 "util/configparser.y"
{
OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6528,11 +6543,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6532 "util/configparser.c"
+#line 6547 "util/configparser.c"
break;
- case 589: /* view_name: VAR_NAME STRING_ARG */
-#line 3156 "util/configparser.y"
+ case 591: /* view_name: VAR_NAME STRING_ARG */
+#line 3167 "util/configparser.y"
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->views->name)
@@ -6541,11 +6556,11 @@ yyreduce:
free(cfg_parser->cfg->views->name);
cfg_parser->cfg->views->name = (yyvsp[0].str);
}
-#line 6545 "util/configparser.c"
+#line 6560 "util/configparser.c"
break;
- case 590: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */
-#line 3166 "util/configparser.y"
+ case 592: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */
+#line 3177 "util/configparser.y"
{
OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
@@ -6600,11 +6615,11 @@ yyreduce:
fatal_exit("out of memory adding local-zone");
}
}
-#line 6604 "util/configparser.c"
+#line 6619 "util/configparser.c"
break;
- case 591: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */
-#line 3222 "util/configparser.y"
+ case 593: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */
+#line 3233 "util/configparser.y"
{
OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_respip_action((yyvsp[0].str));
@@ -6613,33 +6628,33 @@ yyreduce:
fatal_exit("out of memory adding per-view "
"response-ip action");
}
-#line 6617 "util/configparser.c"
+#line 6632 "util/configparser.c"
break;
- case 592: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */
-#line 3232 "util/configparser.y"
+ case 594: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */
+#line 3243 "util/configparser.y"
{
OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str)));
if(!cfg_str2list_insert(
&cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding response-ip-data");
}
-#line 6628 "util/configparser.c"
+#line 6643 "util/configparser.c"
break;
- case 593: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */
-#line 3240 "util/configparser.y"
+ case 595: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */
+#line 3251 "util/configparser.y"
{
OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
fatal_exit("out of memory adding local-data");
}
}
-#line 6639 "util/configparser.c"
+#line 6654 "util/configparser.c"
break;
- case 594: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */
-#line 3248 "util/configparser.y"
+ case 596: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */
+#line 3259 "util/configparser.y"
{
char* ptr;
OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -6653,11 +6668,11 @@ yyreduce:
yyerror("local-data-ptr could not be reversed");
}
}
-#line 6657 "util/configparser.c"
+#line 6672 "util/configparser.c"
break;
- case 595: /* view_first: VAR_VIEW_FIRST STRING_ARG */
-#line 3263 "util/configparser.y"
+ case 597: /* view_first: VAR_VIEW_FIRST STRING_ARG */
+#line 3274 "util/configparser.y"
{
OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6665,20 +6680,20 @@ yyreduce:
else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6669 "util/configparser.c"
+#line 6684 "util/configparser.c"
break;
- case 596: /* rcstart: VAR_REMOTE_CONTROL */
-#line 3272 "util/configparser.y"
+ case 598: /* rcstart: VAR_REMOTE_CONTROL */
+#line 3283 "util/configparser.y"
{
OUTYY(("\nP(remote-control:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 6678 "util/configparser.c"
+#line 6693 "util/configparser.c"
break;
- case 607: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */
-#line 3284 "util/configparser.y"
+ case 609: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */
+#line 3295 "util/configparser.y"
{
OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6687,11 +6702,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6691 "util/configparser.c"
+#line 6706 "util/configparser.c"
break;
- case 608: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */
-#line 3294 "util/configparser.y"
+ case 610: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */
+#line 3305 "util/configparser.y"
{
OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -6699,80 +6714,80 @@ yyreduce:
else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6703 "util/configparser.c"
+#line 6718 "util/configparser.c"
break;
- case 609: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */
-#line 3303 "util/configparser.y"
+ case 611: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */
+#line 3314 "util/configparser.y"
{
OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6713 "util/configparser.c"
+#line 6728 "util/configparser.c"
break;
- case 610: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */
-#line 3310 "util/configparser.y"
+ case 612: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */
+#line 3321 "util/configparser.y"
{
OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6723 "util/configparser.c"
+#line 6738 "util/configparser.c"
break;
- case 611: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */
-#line 3317 "util/configparser.y"
+ case 613: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */
+#line 3328 "util/configparser.y"
{
OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->server_key_file);
cfg_parser->cfg->server_key_file = (yyvsp[0].str);
}
-#line 6733 "util/configparser.c"
+#line 6748 "util/configparser.c"
break;
- case 612: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */
-#line 3324 "util/configparser.y"
+ case 614: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */
+#line 3335 "util/configparser.y"
{
OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->server_cert_file);
cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
}
-#line 6743 "util/configparser.c"
+#line 6758 "util/configparser.c"
break;
- case 613: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */
-#line 3331 "util/configparser.y"
+ case 615: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */
+#line 3342 "util/configparser.y"
{
OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->control_key_file);
cfg_parser->cfg->control_key_file = (yyvsp[0].str);
}
-#line 6753 "util/configparser.c"
+#line 6768 "util/configparser.c"
break;
- case 614: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */
-#line 3338 "util/configparser.y"
+ case 616: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */
+#line 3349 "util/configparser.y"
{
OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->control_cert_file);
cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
}
-#line 6763 "util/configparser.c"
+#line 6778 "util/configparser.c"
break;
- case 615: /* dtstart: VAR_DNSTAP */
-#line 3345 "util/configparser.y"
+ case 617: /* dtstart: VAR_DNSTAP */
+#line 3356 "util/configparser.y"
{
OUTYY(("\nP(dnstap:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 6772 "util/configparser.c"
+#line 6787 "util/configparser.c"
break;
- case 637: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */
-#line 3366 "util/configparser.y"
+ case 639: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */
+#line 3377 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6780,11 +6795,11 @@ yyreduce:
else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6784 "util/configparser.c"
+#line 6799 "util/configparser.c"
break;
- case 638: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */
-#line 3375 "util/configparser.y"
+ case 640: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */
+#line 3386 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6793,31 +6808,31 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6797 "util/configparser.c"
+#line 6812 "util/configparser.c"
break;
- case 639: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */
-#line 3385 "util/configparser.y"
+ case 641: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */
+#line 3396 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_socket_path);
cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
}
-#line 6807 "util/configparser.c"
+#line 6822 "util/configparser.c"
break;
- case 640: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */
-#line 3392 "util/configparser.y"
+ case 642: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */
+#line 3403 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_ip);
cfg_parser->cfg->dnstap_ip = (yyvsp[0].str);
}
-#line 6817 "util/configparser.c"
+#line 6832 "util/configparser.c"
break;
- case 641: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */
-#line 3399 "util/configparser.y"
+ case 643: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */
+#line 3410 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6825,51 +6840,51 @@ yyreduce:
else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6829 "util/configparser.c"
+#line 6844 "util/configparser.c"
break;
- case 642: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */
-#line 3408 "util/configparser.y"
+ case 644: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */
+#line 3419 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_tls_server_name);
cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str);
}
-#line 6839 "util/configparser.c"
+#line 6854 "util/configparser.c"
break;
- case 643: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */
-#line 3415 "util/configparser.y"
+ case 645: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */
+#line 3426 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_tls_cert_bundle);
cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str);
}
-#line 6849 "util/configparser.c"
+#line 6864 "util/configparser.c"
break;
- case 644: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */
-#line 3422 "util/configparser.y"
+ case 646: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */
+#line 3433 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_tls_client_key_file);
cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str);
}
-#line 6859 "util/configparser.c"
+#line 6874 "util/configparser.c"
break;
- case 645: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */
-#line 3429 "util/configparser.y"
+ case 647: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */
+#line 3440 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_tls_client_cert_file);
cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str);
}
-#line 6869 "util/configparser.c"
+#line 6884 "util/configparser.c"
break;
- case 646: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */
-#line 3436 "util/configparser.y"
+ case 648: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */
+#line 3447 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6877,11 +6892,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6881 "util/configparser.c"
+#line 6896 "util/configparser.c"
break;
- case 647: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */
-#line 3445 "util/configparser.y"
+ case 649: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */
+#line 3456 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6889,31 +6904,31 @@ yyreduce:
else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6893 "util/configparser.c"
+#line 6908 "util/configparser.c"
break;
- case 648: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */
-#line 3454 "util/configparser.y"
+ case 650: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */
+#line 3465 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_identity);
cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
}
-#line 6903 "util/configparser.c"
+#line 6918 "util/configparser.c"
break;
- case 649: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */
-#line 3461 "util/configparser.y"
+ case 651: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */
+#line 3472 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_version);
cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
}
-#line 6913 "util/configparser.c"
+#line 6928 "util/configparser.c"
break;
- case 650: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */
-#line 3468 "util/configparser.y"
+ case 652: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */
+#line 3479 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6922,11 +6937,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6926 "util/configparser.c"
+#line 6941 "util/configparser.c"
break;
- case 651: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */
-#line 3478 "util/configparser.y"
+ case 653: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */
+#line 3489 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6935,11 +6950,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6939 "util/configparser.c"
+#line 6954 "util/configparser.c"
break;
- case 652: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */
-#line 3488 "util/configparser.y"
+ case 654: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */
+#line 3499 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6948,11 +6963,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6952 "util/configparser.c"
+#line 6967 "util/configparser.c"
break;
- case 653: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */
-#line 3498 "util/configparser.y"
+ case 655: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */
+#line 3509 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6961,11 +6976,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6965 "util/configparser.c"
+#line 6980 "util/configparser.c"
break;
- case 654: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */
-#line 3508 "util/configparser.y"
+ case 656: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */
+#line 3519 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6974,11 +6989,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6978 "util/configparser.c"
+#line 6993 "util/configparser.c"
break;
- case 655: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */
-#line 3518 "util/configparser.y"
+ case 657: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */
+#line 3529 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6987,49 +7002,49 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6991 "util/configparser.c"
+#line 7006 "util/configparser.c"
break;
- case 656: /* pythonstart: VAR_PYTHON */
-#line 3528 "util/configparser.y"
+ case 658: /* pythonstart: VAR_PYTHON */
+#line 3539 "util/configparser.y"
{
OUTYY(("\nP(python:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7000 "util/configparser.c"
+#line 7015 "util/configparser.c"
break;
- case 660: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */
-#line 3538 "util/configparser.y"
+ case 662: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */
+#line 3549 "util/configparser.y"
{
OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 7010 "util/configparser.c"
+#line 7025 "util/configparser.c"
break;
- case 661: /* dynlibstart: VAR_DYNLIB */
-#line 3545 "util/configparser.y"
+ case 663: /* dynlibstart: VAR_DYNLIB */
+#line 3556 "util/configparser.y"
{
OUTYY(("\nP(dynlib:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7019 "util/configparser.c"
+#line 7034 "util/configparser.c"
break;
- case 665: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */
-#line 3555 "util/configparser.y"
+ case 667: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */
+#line 3566 "util/configparser.y"
{
OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 7029 "util/configparser.c"
+#line 7044 "util/configparser.c"
break;
- case 666: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */
-#line 3562 "util/configparser.y"
+ case 668: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */
+#line 3573 "util/configparser.y"
{
OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7038,21 +7053,21 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7042 "util/configparser.c"
+#line 7057 "util/configparser.c"
break;
- case 667: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */
-#line 3572 "util/configparser.y"
+ case 669: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */
+#line 3583 "util/configparser.y"
{
OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->log_identity);
cfg_parser->cfg->log_identity = (yyvsp[0].str);
}
-#line 7052 "util/configparser.c"
+#line 7067 "util/configparser.c"
break;
- case 668: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */
-#line 3579 "util/configparser.y"
+ case 670: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */
+#line 3590 "util/configparser.y"
{
OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_respip_action((yyvsp[0].str));
@@ -7060,31 +7075,31 @@ yyreduce:
(yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding response-ip");
}
-#line 7064 "util/configparser.c"
+#line 7079 "util/configparser.c"
break;
- case 669: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */
-#line 3588 "util/configparser.y"
+ case 671: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */
+#line 3599 "util/configparser.y"
{
OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str)));
if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
(yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding response-ip-data");
}
-#line 7075 "util/configparser.c"
+#line 7090 "util/configparser.c"
break;
- case 670: /* dnscstart: VAR_DNSCRYPT */
-#line 3596 "util/configparser.y"
+ case 672: /* dnscstart: VAR_DNSCRYPT */
+#line 3607 "util/configparser.y"
{
OUTYY(("\nP(dnscrypt:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7084 "util/configparser.c"
+#line 7099 "util/configparser.c"
break;
- case 683: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */
-#line 3613 "util/configparser.y"
+ case 685: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */
+#line 3624 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7092,11 +7107,11 @@ yyreduce:
else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7096 "util/configparser.c"
+#line 7111 "util/configparser.c"
break;
- case 684: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */
-#line 3622 "util/configparser.y"
+ case 686: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */
+#line 3633 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -7104,21 +7119,21 @@ yyreduce:
else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 7108 "util/configparser.c"
+#line 7123 "util/configparser.c"
break;
- case 685: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */
-#line 3631 "util/configparser.y"
+ case 687: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */
+#line 3642 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnscrypt_provider);
cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
}
-#line 7118 "util/configparser.c"
+#line 7133 "util/configparser.c"
break;
- case 686: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */
-#line 3638 "util/configparser.y"
+ case 688: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */
+#line 3649 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str)));
if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
@@ -7126,21 +7141,21 @@ yyreduce:
if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
fatal_exit("out of memory adding dnscrypt-provider-cert");
}
-#line 7130 "util/configparser.c"
+#line 7145 "util/configparser.c"
break;
- case 687: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */
-#line 3647 "util/configparser.y"
+ case 689: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */
+#line 3658 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
fatal_exit("out of memory adding dnscrypt-provider-cert-rotated");
}
-#line 7140 "util/configparser.c"
+#line 7155 "util/configparser.c"
break;
- case 688: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */
-#line 3654 "util/configparser.y"
+ case 690: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */
+#line 3665 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str)));
if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
@@ -7148,22 +7163,22 @@ yyreduce:
if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
fatal_exit("out of memory adding dnscrypt-secret-key");
}
-#line 7152 "util/configparser.c"
+#line 7167 "util/configparser.c"
break;
- case 689: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */
-#line 3663 "util/configparser.y"
+ case 691: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */
+#line 3674 "util/configparser.y"
{
OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 7163 "util/configparser.c"
+#line 7178 "util/configparser.c"
break;
- case 690: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */
-#line 3671 "util/configparser.y"
+ case 692: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */
+#line 3682 "util/configparser.y"
{
OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -7175,22 +7190,22 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 7179 "util/configparser.c"
+#line 7194 "util/configparser.c"
break;
- case 691: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */
-#line 3684 "util/configparser.y"
+ case 693: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */
+#line 3695 "util/configparser.y"
{
OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 7190 "util/configparser.c"
+#line 7205 "util/configparser.c"
break;
- case 692: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */
-#line 3692 "util/configparser.y"
+ case 694: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */
+#line 3703 "util/configparser.y"
{
OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -7202,20 +7217,20 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 7206 "util/configparser.c"
+#line 7221 "util/configparser.c"
break;
- case 693: /* cachedbstart: VAR_CACHEDB */
-#line 3705 "util/configparser.y"
+ case 695: /* cachedbstart: VAR_CACHEDB */
+#line 3716 "util/configparser.y"
{
OUTYY(("\nP(cachedb:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7215 "util/configparser.c"
+#line 7230 "util/configparser.c"
break;
- case 706: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */
-#line 3718 "util/configparser.y"
+ case 708: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */
+#line 3729 "util/configparser.y"
{
#ifdef USE_CACHEDB
OUTYY(("P(backend:%s)\n", (yyvsp[0].str)));
@@ -7226,11 +7241,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7230 "util/configparser.c"
+#line 7245 "util/configparser.c"
break;
- case 707: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */
-#line 3730 "util/configparser.y"
+ case 709: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */
+#line 3741 "util/configparser.y"
{
#ifdef USE_CACHEDB
OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str)));
@@ -7241,11 +7256,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7245 "util/configparser.c"
+#line 7260 "util/configparser.c"
break;
- case 708: /* cachedb_no_store: VAR_CACHEDB_NO_STORE STRING_ARG */
-#line 3742 "util/configparser.y"
+ case 710: /* cachedb_no_store: VAR_CACHEDB_NO_STORE STRING_ARG */
+#line 3753 "util/configparser.y"
{
#ifdef USE_CACHEDB
OUTYY(("P(cachedb_no_store:%s)\n", (yyvsp[0].str)));
@@ -7257,11 +7272,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7261 "util/configparser.c"
+#line 7276 "util/configparser.c"
break;
- case 709: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */
-#line 3755 "util/configparser.y"
+ case 711: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */
+#line 3766 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str)));
@@ -7272,11 +7287,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7276 "util/configparser.c"
+#line 7291 "util/configparser.c"
break;
- case 710: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */
-#line 3767 "util/configparser.y"
+ case 712: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */
+#line 3778 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
int port;
@@ -7290,11 +7305,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7294 "util/configparser.c"
+#line 7309 "util/configparser.c"
break;
- case 711: /* redis_server_path: VAR_CACHEDB_REDISPATH STRING_ARG */
-#line 3782 "util/configparser.y"
+ case 713: /* redis_server_path: VAR_CACHEDB_REDISPATH STRING_ARG */
+#line 3793 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_server_path:%s)\n", (yyvsp[0].str)));
@@ -7305,11 +7320,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7309 "util/configparser.c"
+#line 7324 "util/configparser.c"
break;
- case 712: /* redis_server_password: VAR_CACHEDB_REDISPASSWORD STRING_ARG */
-#line 3794 "util/configparser.y"
+ case 714: /* redis_server_password: VAR_CACHEDB_REDISPASSWORD STRING_ARG */
+#line 3805 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_server_password:%s)\n", (yyvsp[0].str)));
@@ -7320,11 +7335,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7324 "util/configparser.c"
+#line 7339 "util/configparser.c"
break;
- case 713: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */
-#line 3806 "util/configparser.y"
+ case 715: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */
+#line 3817 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str)));
@@ -7336,11 +7351,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7340 "util/configparser.c"
+#line 7355 "util/configparser.c"
break;
- case 714: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */
-#line 3819 "util/configparser.y"
+ case 716: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */
+#line 3830 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str)));
@@ -7352,11 +7367,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7356 "util/configparser.c"
+#line 7371 "util/configparser.c"
break;
- case 715: /* redis_logical_db: VAR_CACHEDB_REDISLOGICALDB STRING_ARG */
-#line 3832 "util/configparser.y"
+ case 717: /* redis_logical_db: VAR_CACHEDB_REDISLOGICALDB STRING_ARG */
+#line 3843 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
int db;
@@ -7370,11 +7385,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7374 "util/configparser.c"
+#line 7389 "util/configparser.c"
break;
- case 716: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */
-#line 3847 "util/configparser.y"
+ case 718: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */
+#line 3858 "util/configparser.y"
{
OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if (atoi((yyvsp[0].str)) < 0)
@@ -7384,11 +7399,11 @@ yyreduce:
fatal_exit("out of memory adding tcp connection limit");
}
}
-#line 7388 "util/configparser.c"
+#line 7403 "util/configparser.c"
break;
- case 717: /* server_answer_cookie: VAR_ANSWER_COOKIE STRING_ARG */
-#line 3858 "util/configparser.y"
+ case 719: /* server_answer_cookie: VAR_ANSWER_COOKIE STRING_ARG */
+#line 3869 "util/configparser.y"
{
OUTYY(("P(server_answer_cookie:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7396,11 +7411,11 @@ yyreduce:
else cfg_parser->cfg->do_answer_cookie = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7400 "util/configparser.c"
+#line 7415 "util/configparser.c"
break;
- case 718: /* server_cookie_secret: VAR_COOKIE_SECRET STRING_ARG */
-#line 3867 "util/configparser.y"
+ case 720: /* server_cookie_secret: VAR_COOKIE_SECRET STRING_ARG */
+#line 3878 "util/configparser.y"
{
uint8_t secret[32];
size_t secret_len = sizeof(secret);
@@ -7415,20 +7430,20 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 7419 "util/configparser.c"
+#line 7434 "util/configparser.c"
break;
- case 719: /* ipsetstart: VAR_IPSET */
-#line 3883 "util/configparser.y"
+ case 721: /* ipsetstart: VAR_IPSET */
+#line 3894 "util/configparser.y"
{
OUTYY(("\nP(ipset:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7428 "util/configparser.c"
+#line 7443 "util/configparser.c"
break;
- case 724: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */
-#line 3893 "util/configparser.y"
+ case 726: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */
+#line 3904 "util/configparser.y"
{
#ifdef USE_IPSET
OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str)));
@@ -7442,11 +7457,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7446 "util/configparser.c"
+#line 7461 "util/configparser.c"
break;
- case 725: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */
-#line 3908 "util/configparser.y"
+ case 727: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */
+#line 3919 "util/configparser.y"
{
#ifdef USE_IPSET
OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str)));
@@ -7460,11 +7475,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7464 "util/configparser.c"
+#line 7479 "util/configparser.c"
break;
-#line 7468 "util/configparser.c"
+#line 7483 "util/configparser.c"
default: break;
}
@@ -7658,7 +7673,7 @@ yyreturn:
return yyresult;
}
-#line 3922 "util/configparser.y"
+#line 3933 "util/configparser.y"
/* parse helper routines could be here */
diff --git a/util/configparser.h b/util/configparser.h
index a3eeb0ae2f40..a285af866c52 100644
--- a/util/configparser.h
+++ b/util/configparser.h
@@ -399,7 +399,8 @@ extern int yydebug;
VAR_STATISTICS_INHIBIT_ZERO = 600, /* VAR_STATISTICS_INHIBIT_ZERO */
VAR_HARDEN_UNKNOWN_ADDITIONAL = 601, /* VAR_HARDEN_UNKNOWN_ADDITIONAL */
VAR_DISABLE_EDNS_DO = 602, /* VAR_DISABLE_EDNS_DO */
- VAR_CACHEDB_NO_STORE = 603 /* VAR_CACHEDB_NO_STORE */
+ VAR_CACHEDB_NO_STORE = 603, /* VAR_CACHEDB_NO_STORE */
+ VAR_LOG_DESTADDR = 604 /* VAR_LOG_DESTADDR */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -754,6 +755,7 @@ extern int yydebug;
#define VAR_HARDEN_UNKNOWN_ADDITIONAL 601
#define VAR_DISABLE_EDNS_DO 602
#define VAR_CACHEDB_NO_STORE 603
+#define VAR_LOG_DESTADDR 604
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -763,7 +765,7 @@ union YYSTYPE
char* str;
-#line 767 "util/configparser.h"
+#line 769 "util/configparser.h"
};
typedef union YYSTYPE YYSTYPE;
diff --git a/util/configparser.y b/util/configparser.y
index da5d6608f1d5..0e4cd5960a29 100644
--- a/util/configparser.y
+++ b/util/configparser.y
@@ -200,6 +200,7 @@ extern struct config_parser_state* cfg_parser;
%token VAR_INTERFACE_TAG_ACTION VAR_INTERFACE_TAG_DATA
%token VAR_PROXY_PROTOCOL_PORT VAR_STATISTICS_INHIBIT_ZERO
%token VAR_HARDEN_UNKNOWN_ADDITIONAL VAR_DISABLE_EDNS_DO VAR_CACHEDB_NO_STORE
+%token VAR_LOG_DESTADDR
%%
toplevelvars: /* empty */ | toplevelvars toplevelvar ;
@@ -333,7 +334,8 @@ content_server: server_num_threads | server_verbosity | server_port |
server_tcp_reuse_timeout | server_tcp_auth_query_timeout |
server_interface_automatic_ports | server_ede |
server_proxy_protocol_port | server_statistics_inhibit_zero |
- server_harden_unknown_additional | server_disable_edns_do
+ server_harden_unknown_additional | server_disable_edns_do |
+ server_log_destaddr
;
stubstart: VAR_STUB_ZONE
{
@@ -1250,6 +1252,15 @@ server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG
free($2);
}
;
+server_log_destaddr: VAR_LOG_DESTADDR STRING_ARG
+ {
+ OUTYY(("P(server_log_destaddr:%s)\n", $2));
+ if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->log_destaddr = (strcmp($2, "yes")==0);
+ free($2);
+ }
+ ;
server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG
{
OUTYY(("P(server_log_local_actions:%s)\n", $2));
diff --git a/util/data/msgencode.c b/util/data/msgencode.c
index 80ae33a38661..898ff8412a4e 100644
--- a/util/data/msgencode.c
+++ b/util/data/msgencode.c
@@ -886,6 +886,9 @@ ede_trim_text(struct edns_option** list)
curr->opt_len = 2;
prev = curr;
curr = curr->next;
+ } else {
+ prev = curr;
+ curr = curr->next;
}
} else {
/* continue */
diff --git a/util/data/msgreply.c b/util/data/msgreply.c
index 920a0a939d06..2286d46bc3ff 100644
--- a/util/data/msgreply.c
+++ b/util/data/msgreply.c
@@ -918,13 +918,15 @@ log_dns_msg(const char* str, struct query_info* qinfo, struct reply_info* rep)
void
log_reply_info(enum verbosity_value v, struct query_info *qinf,
struct sockaddr_storage *addr, socklen_t addrlen, struct timeval dur,
- int cached, struct sldns_buffer *rmsg)
+ int cached, struct sldns_buffer *rmsg, struct sockaddr_storage* daddr,
+ enum comm_point_type tp)
{
char qname_buf[LDNS_MAX_DOMAINLEN+1];
char clientip_buf[128];
char rcode_buf[16];
char type_buf[16];
char class_buf[16];
+ char dest_buf[160];
size_t pktlen;
uint16_t rcode = FLAGS_GET_RCODE(sldns_buffer_read_u16_at(rmsg, 2));
@@ -933,11 +935,46 @@ log_reply_info(enum verbosity_value v, struct query_info *qinf,
sldns_wire2str_rcode_buf((int)rcode, rcode_buf, sizeof(rcode_buf));
addr_to_str(addr, addrlen, clientip_buf, sizeof(clientip_buf));
+ if(daddr) {
+ char da[128];
+ int port = 0;
+ char* comm;
+ if(daddr->ss_family == AF_INET6) {
+ struct sockaddr_in6 *d = (struct sockaddr_in6 *)daddr;
+ if(inet_ntop(d->sin6_family, &d->sin6_addr, da,
+ sizeof(*d)) == 0)
+ snprintf(dest_buf, sizeof(dest_buf),
+ "(inet_ntop_error)");
+ port = ntohs(d->sin6_port);
+ } else if(daddr->ss_family == AF_INET) {
+ struct sockaddr_in *d = (struct sockaddr_in *)daddr;
+ if(inet_ntop(d->sin_family, &d->sin_addr, da,
+ sizeof(*d)) == 0)
+ snprintf(dest_buf, sizeof(dest_buf),
+ "(inet_ntop_error)");
+ port = ntohs(d->sin_port);
+ } else {
+ snprintf(da, sizeof(da), "socket%d",
+ (int)daddr->ss_family);
+ }
+ comm = "udp";
+ if(tp == comm_tcp) comm = "tcp";
+ else if(tp == comm_tcp_accept) comm = "tcp";
+ else if(tp == comm_http) comm = "dot";
+ else if(tp == comm_local) comm = "unix";
+ else if(tp == comm_raw) comm = "raw";
+ snprintf(dest_buf, sizeof(dest_buf), " on %s %s %d",
+ comm, da, port);
+ } else {
+ dest_buf[0]=0;
+ }
if(rcode == LDNS_RCODE_FORMERR)
{
if(LOG_TAG_QUERYREPLY)
- log_reply("%s - - - %s - - - ", clientip_buf, rcode_buf);
- else log_info("%s - - - %s - - - ", clientip_buf, rcode_buf);
+ log_reply("%s - - - %s - - -%s", clientip_buf,
+ rcode_buf, dest_buf);
+ else log_info("%s - - - %s - - -%s", clientip_buf,
+ rcode_buf, dest_buf);
} else {
if(qinf->qname)
dname_str(qinf->qname, qname_buf);
@@ -946,12 +983,14 @@ log_reply_info(enum verbosity_value v, struct query_info *qinf,
sldns_wire2str_type_buf(qinf->qtype, type_buf, sizeof(type_buf));
sldns_wire2str_class_buf(qinf->qclass, class_buf, sizeof(class_buf));
if(LOG_TAG_QUERYREPLY)
- log_reply("%s %s %s %s %s " ARG_LL "d.%6.6d %d %d",
+ log_reply("%s %s %s %s %s " ARG_LL "d.%6.6d %d %d%s",
clientip_buf, qname_buf, type_buf, class_buf,
- rcode_buf, (long long)dur.tv_sec, (int)dur.tv_usec, cached, (int)pktlen);
- else log_info("%s %s %s %s %s " ARG_LL "d.%6.6d %d %d",
+ rcode_buf, (long long)dur.tv_sec, (int)dur.tv_usec,
+ cached, (int)pktlen, dest_buf);
+ else log_info("%s %s %s %s %s " ARG_LL "d.%6.6d %d %d%s",
clientip_buf, qname_buf, type_buf, class_buf,
- rcode_buf, (long long)dur.tv_sec, (int)dur.tv_usec, cached, (int)pktlen);
+ rcode_buf, (long long)dur.tv_sec, (int)dur.tv_usec,
+ cached, (int)pktlen, dest_buf);
}
}
diff --git a/util/data/msgreply.h b/util/data/msgreply.h
index a9af3d7e657d..4b93b12c8f33 100644
--- a/util/data/msgreply.h
+++ b/util/data/msgreply.h
@@ -58,6 +58,7 @@ struct msg_parse;
struct rrset_parse;
struct local_rrset;
struct dns_msg;
+enum comm_point_type;
/** calculate the prefetch TTL as 90% of original. Calculation
* without numerical overflow (uin32_t) */
@@ -520,10 +521,13 @@ void log_dns_msg(const char* str, struct query_info* qinfo,
* @param cached: whether or not the reply is coming from
* the cache, or an outside network.
* @param rmsg: sldns buffer packet.
+ * @param daddr: if not NULL, the destination address and port are logged.
+ * @param tp: type of the comm point for logging destination connection type.
*/
void log_reply_info(enum verbosity_value v, struct query_info *qinf,
struct sockaddr_storage *addr, socklen_t addrlen, struct timeval dur,
- int cached, struct sldns_buffer *rmsg);
+ int cached, struct sldns_buffer *rmsg, struct sockaddr_storage* daddr,
+ enum comm_point_type tp);
/**
* Print string with neat domain name, type, class from query info.
diff --git a/util/data/packed_rrset.c b/util/data/packed_rrset.c
index e1a0833a2098..d18486cc5b36 100644
--- a/util/data/packed_rrset.c
+++ b/util/data/packed_rrset.c
@@ -275,6 +275,7 @@ int packed_rr_to_string(struct ub_packed_rrset_key* rrset, size_t i,
struct packed_rrset_data* d = (struct packed_rrset_data*)rrset->
entry.data;
uint8_t rr[65535];
+ size_t wlen;
size_t rlen = rrset->rk.dname_len + 2 + 2 + 4 + d->rr_len[i];
time_t adjust = 0;
log_assert(dest_len > 0 && dest);
@@ -292,7 +293,9 @@ int packed_rr_to_string(struct ub_packed_rrset_key* rrset, size_t i,
sldns_write_uint32(rr+rrset->rk.dname_len+4,
(uint32_t)(d->rr_ttl[i]-adjust));
memmove(rr+rrset->rk.dname_len+8, d->rr_data[i], d->rr_len[i]);
- if(sldns_wire2str_rr_buf(rr, rlen, dest, dest_len) == -1) {
+ wlen = (size_t)sldns_wire2str_rr_buf(rr, rlen, dest, dest_len);
+ if(wlen >= dest_len) {
+ /* the output string was truncated */
log_info("rrbuf failure %d %s", (int)d->rr_len[i], dest);
dest[0] = 0;
return 0;
diff --git a/util/iana_ports.inc b/util/iana_ports.inc
index 5cb127ed897b..c3903563654d 100644
--- a/util/iana_ports.inc
+++ b/util/iana_ports.inc
@@ -258,7 +258,6 @@
356,
357,
358,
-359,
360,
361,
362,
diff --git a/util/netevent.c b/util/netevent.c
index 141e48d48b3f..1fc8c6b8658e 100644
--- a/util/netevent.c
+++ b/util/netevent.c
@@ -1672,8 +1672,13 @@ ssl_handshake(struct comm_point* c)
} else {
unsigned long err = ERR_get_error();
if(!squelch_err_ssl_handshake(err)) {
+ long vr;
log_crypto_err_io_code("ssl handshake failed",
want, err);
+ if((vr=SSL_get_verify_result(c->ssl)) != 0)
+ log_err("ssl handshake cert error: %s",
+ X509_verify_cert_error_string(
+ vr));
log_addr(VERB_OPS, "ssl handshake failed",
&c->repinfo.remote_addr,
c->repinfo.remote_addrlen);
@@ -1748,6 +1753,9 @@ ssl_handshake(struct comm_point* c)
/* connection upgraded to HTTP2 */
c->tcp_do_toggle_rw = 0;
c->use_h2 = 1;
+ } else {
+ verbose(VERB_ALGO, "client doesn't support HTTP/2");
+ return 0;
}
}
#endif
@@ -4766,7 +4774,7 @@ comm_point_send_reply(struct comm_reply *repinfo)
if(repinfo->c->dtenv != NULL && repinfo->c->dtenv->log_client_response_messages) {
log_addr(VERB_ALGO, "from local addr", (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->socket->addr->ai_addrlen);
log_addr(VERB_ALGO, "response to client", &repinfo->client_addr, repinfo->client_addrlen);
- dt_msg_send_client_response(repinfo->c->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->type, repinfo->c->buffer);
+ dt_msg_send_client_response(repinfo->c->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->type, repinfo->c->ssl, repinfo->c->buffer);
}
#endif
} else {
@@ -4777,7 +4785,7 @@ comm_point_send_reply(struct comm_reply *repinfo)
if(repinfo->c->tcp_parent->dtenv != NULL && repinfo->c->tcp_parent->dtenv->log_client_response_messages) {
log_addr(VERB_ALGO, "from local addr", (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->socket->addr->ai_addrlen);
log_addr(VERB_ALGO, "response to client", &repinfo->client_addr, repinfo->client_addrlen);
- dt_msg_send_client_response(repinfo->c->tcp_parent->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->type,
+ dt_msg_send_client_response(repinfo->c->tcp_parent->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->type, repinfo->c->ssl,
( repinfo->c->tcp_req_info? repinfo->c->tcp_req_info->spool_buffer: repinfo->c->buffer ));
}
#endif
diff --git a/validator/autotrust.c b/validator/autotrust.c
index 3011a0ace7a2..3eb13b35c229 100644
--- a/validator/autotrust.c
+++ b/validator/autotrust.c
@@ -353,17 +353,21 @@ autr_tp_create(struct val_anchors* anchors, uint8_t* own, size_t own_len,
lock_basic_lock(&anchors->lock);
if(!rbtree_insert(anchors->tree, &tp->node)) {
+ char buf[LDNS_MAX_DOMAINLEN+1];
lock_basic_unlock(&anchors->lock);
- log_err("trust anchor presented twice");
+ dname_str(tp->name, buf);
+ log_err("trust anchor for '%s' presented twice", buf);
free(tp->name);
free(tp->autr);
free(tp);
return NULL;
}
if(!rbtree_insert(&anchors->autr->probe, &tp->autr->pnode)) {
+ char buf[LDNS_MAX_DOMAINLEN+1];
(void)rbtree_delete(anchors->tree, tp);
lock_basic_unlock(&anchors->lock);
- log_err("trust anchor in probetree twice");
+ dname_str(tp->name, buf);
+ log_err("trust anchor for '%s' in probetree twice", buf);
free(tp->name);
free(tp->autr);
free(tp);
diff --git a/validator/val_sigcrypt.c b/validator/val_sigcrypt.c
index f4b866366f3c..7c2b9d7e6608 100644
--- a/validator/val_sigcrypt.c
+++ b/validator/val_sigcrypt.c
@@ -748,7 +748,6 @@ dnskey_verify_rrset(struct module_env* env, struct val_env* ve,
return sec_status_bogus;
}
}
- verbose(VERB_ALGO, "rrset failed to verify: all signatures are bogus");
if(!numchecked) {
*reason = "signature for expected key and algorithm missing";
if(reason_bogus)
@@ -761,6 +760,7 @@ dnskey_verify_rrset(struct module_env* env, struct val_env* ve,
*reason = "algorithm refused by cryptolib";
return sec_status_indeterminate;
}
+ verbose(VERB_ALGO, "rrset failed to verify: all signatures are bogus");
return sec_status_bogus;
}
diff --git a/validator/val_utils.c b/validator/val_utils.c
index 67a958ae2ade..c316183a9d9e 100644
--- a/validator/val_utils.c
+++ b/validator/val_utils.c
@@ -424,11 +424,13 @@ static enum sec_status
verify_dnskeys_with_ds_rr(struct module_env* env, struct val_env* ve,
struct ub_packed_rrset_key* dnskey_rrset,
struct ub_packed_rrset_key* ds_rrset, size_t ds_idx, char** reason,
- sldns_ede_code *reason_bogus, struct module_qstate* qstate)
+ sldns_ede_code *reason_bogus, struct module_qstate* qstate,
+ int *nonechecked)
{
enum sec_status sec = sec_status_bogus;
size_t i, num, numchecked = 0, numhashok = 0, numsizesupp = 0;
num = rrset_get_count(dnskey_rrset);
+ *nonechecked = 0;
for(i=0; i<num; i++) {
/* Skip DNSKEYs that don't match the basic criteria. */
if(ds_get_key_algo(ds_rrset, ds_idx)
@@ -476,13 +478,15 @@ verify_dnskeys_with_ds_rr(struct module_env* env, struct val_env* ve,
/* there is a working DS, but that DNSKEY is not supported */
return sec_status_insecure;
}
- if(numchecked == 0)
+ if(numchecked == 0) {
algo_needs_reason(env, ds_get_key_algo(ds_rrset, ds_idx),
reason, "no keys have a DS");
- else if(numhashok == 0)
+ *nonechecked = 1;
+ } else if(numhashok == 0) {
*reason = "DS hash mismatches key";
- else if(!*reason)
+ } else if(!*reason) {
*reason = "keyset not secured by DNSKEY that matches DS";
+ }
return sec_status_bogus;
}
@@ -511,7 +515,8 @@ val_verify_DNSKEY_with_DS(struct module_env* env, struct val_env* ve,
{
/* as long as this is false, we can consider this DS rrset to be
* equivalent to no DS rrset. */
- int has_useful_ds = 0, digest_algo, alg;
+ int has_useful_ds = 0, digest_algo, alg, has_algo_refusal = 0,
+ nonechecked, has_checked_ds = 0;
struct algo_needs needs;
size_t i, num;
enum sec_status sec;
@@ -544,9 +549,16 @@ val_verify_DNSKEY_with_DS(struct module_env* env, struct val_env* ve,
}
sec = verify_dnskeys_with_ds_rr(env, ve, dnskey_rrset,
- ds_rrset, i, reason, reason_bogus, qstate);
- if(sec == sec_status_insecure)
+ ds_rrset, i, reason, reason_bogus, qstate,
+ &nonechecked);
+ if(sec == sec_status_insecure) {
+ /* DNSKEY too large unsupported or algo refused by
+ * crypto lib. */
+ has_algo_refusal = 1;
continue;
+ }
+ if(!nonechecked)
+ has_checked_ds = 1;
/* Once we see a single DS with a known digestID and
* algorithm, we cannot return INSECURE (with a
@@ -571,6 +583,15 @@ val_verify_DNSKEY_with_DS(struct module_env* env, struct val_env* ve,
/* None of the DS's worked out. */
+ /* If none of the DSes have been checked, eg. that means no matches
+ * for keytags, and the other dses are all algo_refusal, it is an
+ * insecure delegation point, since the only matched DS records
+ * have an algo refusal, or are unsupported. */
+ if(has_algo_refusal && !has_checked_ds) {
+ verbose(VERB_ALGO, "No supported DS records were found -- "
+ "treating as insecure.");
+ return sec_status_insecure;
+ }
/* If no DSs were understandable, then this is OK. */
if(!has_useful_ds) {
verbose(VERB_ALGO, "No usable DS records were found -- "
@@ -624,7 +645,8 @@ val_verify_DNSKEY_with_TA(struct module_env* env, struct val_env* ve,
{
/* as long as this is false, we can consider this anchor to be
* equivalent to no anchor. */
- int has_useful_ta = 0, digest_algo = 0, alg;
+ int has_useful_ta = 0, digest_algo = 0, alg, has_algo_refusal = 0,
+ nonechecked, has_checked_ds = 0;
struct algo_needs needs;
size_t i, num;
enum sec_status sec;
@@ -670,9 +692,13 @@ val_verify_DNSKEY_with_TA(struct module_env* env, struct val_env* ve,
continue;
sec = verify_dnskeys_with_ds_rr(env, ve, dnskey_rrset,
- ta_ds, i, reason, reason_bogus, qstate);
- if(sec == sec_status_insecure)
+ ta_ds, i, reason, reason_bogus, qstate, &nonechecked);
+ if(sec == sec_status_insecure) {
+ has_algo_refusal = 1;
continue;
+ }
+ if(!nonechecked)
+ has_checked_ds = 1;
/* Once we see a single DS with a known digestID and
* algorithm, we cannot return INSECURE (with a
@@ -728,6 +754,15 @@ val_verify_DNSKEY_with_TA(struct module_env* env, struct val_env* ve,
}
}
+ /* If none of the DSes have been checked, eg. that means no matches
+ * for keytags, and the other dses are all algo_refusal, it is an
+ * insecure delegation point, since the only matched DS records
+ * have an algo refusal, or are unsupported. */
+ if(has_algo_refusal && !has_checked_ds) {
+ verbose(VERB_ALGO, "No supported trust anchors were found -- "
+ "treating as insecure.");
+ return sec_status_insecure;
+ }
/* If no DSs were understandable, then this is OK. */
if(!has_useful_ta) {
verbose(VERB_ALGO, "No usable trust anchors were found -- "
diff --git a/validator/validator.c b/validator/validator.c
index 26d33a37ff31..aa71df9cbf58 100644
--- a/validator/validator.c
+++ b/validator/validator.c
@@ -3010,6 +3010,8 @@ return_bogus:
* @param msg: result message (if rcode is OK).
* @param qinfo: from the sub query state, query info.
* @param origin: the origin of msg.
+ * @param suspend: returned true if the task takes too long and needs to
+ * suspend to continue the effort later.
*/
static void
process_ds_response(struct module_qstate* qstate, struct val_qstate* vq,
diff --git a/winrc/rsrc_anchorupd.rc b/winrc/rsrc_anchorupd.rc
index 2419bfad5c40..ac5167866c3c 100644
--- a/winrc/rsrc_anchorupd.rc
+++ b/winrc/rsrc_anchorupd.rc
@@ -1,8 +1,8 @@
/*
Unbound resource file for windows. For use with windres
*/
-#include "winver.h"
#include "config.h"
+#include "winver.h"
1 ICON "winrc/combined.ico"
diff --git a/winrc/rsrc_svcinst.rc b/winrc/rsrc_svcinst.rc
index cb325f4c4935..0ed113695eb3 100644
--- a/winrc/rsrc_svcinst.rc
+++ b/winrc/rsrc_svcinst.rc
@@ -1,8 +1,8 @@
/*
Unbound resource file for windows. For use with windres
*/
-#include "winver.h"
#include "config.h"
+#include "winver.h"
1 ICON "winrc/combined.ico"
diff --git a/winrc/rsrc_svcuninst.rc b/winrc/rsrc_svcuninst.rc
index ecff8dcd3856..86bed5e89816 100644
--- a/winrc/rsrc_svcuninst.rc
+++ b/winrc/rsrc_svcuninst.rc
@@ -1,8 +1,8 @@
/*
Unbound resource file for windows. For use with windres
*/
-#include "winver.h"
#include "config.h"
+#include "winver.h"
1 ICON "winrc/combined.ico"
diff --git a/winrc/rsrc_unbound.rc b/winrc/rsrc_unbound.rc
index cc05d0eeb51d..d6db15eeb415 100644
--- a/winrc/rsrc_unbound.rc
+++ b/winrc/rsrc_unbound.rc
@@ -1,8 +1,8 @@
/*
Unbound resource file for windows. For use with windres
*/
-#include "winver.h"
#include "config.h"
+#include "winver.h"
1 ICON "winrc/combined.ico"
/*
diff --git a/winrc/rsrc_unbound_anchor.rc b/winrc/rsrc_unbound_anchor.rc
index 76b96b785632..2550dd051a21 100644
--- a/winrc/rsrc_unbound_anchor.rc
+++ b/winrc/rsrc_unbound_anchor.rc
@@ -1,8 +1,8 @@
/*
Unbound resource file for windows. For use with windres
*/
-#include "winver.h"
#include "config.h"
+#include "winver.h"
1 ICON "winrc/combined.ico"
diff --git a/winrc/rsrc_unbound_checkconf.rc b/winrc/rsrc_unbound_checkconf.rc
index de61900bffb1..d974d9602e64 100644
--- a/winrc/rsrc_unbound_checkconf.rc
+++ b/winrc/rsrc_unbound_checkconf.rc
@@ -1,8 +1,8 @@
/*
Unbound resource file for windows. For use with windres
*/
-#include "winver.h"
#include "config.h"
+#include "winver.h"
1 ICON "winrc/combined.ico"
diff --git a/winrc/rsrc_unbound_control.rc b/winrc/rsrc_unbound_control.rc
index f9e1245dbfa9..5360c06beb3a 100644
--- a/winrc/rsrc_unbound_control.rc
+++ b/winrc/rsrc_unbound_control.rc
@@ -1,8 +1,8 @@
/*
Unbound resource file for windows. For use with windres
*/
-#include "winver.h"
#include "config.h"
+#include "winver.h"
1 ICON "winrc/combined.ico"
diff --git a/winrc/rsrc_unbound_host.rc b/winrc/rsrc_unbound_host.rc
index d00f95cf4d84..ace601049611 100644
--- a/winrc/rsrc_unbound_host.rc
+++ b/winrc/rsrc_unbound_host.rc
@@ -1,8 +1,8 @@
/*
Unbound resource file for windows. For use with windres
*/
-#include "winver.h"
#include "config.h"
+#include "winver.h"
1 ICON "winrc/combined.ico"
diff --git a/winrc/unbound-control-setup.cmd b/winrc/unbound-control-setup.cmd
index 8c283fd5cb69..a5ffe04e914e 100644
--- a/winrc/unbound-control-setup.cmd
+++ b/winrc/unbound-control-setup.cmd
@@ -48,7 +48,7 @@ rem validity period for certificates
set DAYS=7200
rem size of keys in bits
-set BITS=1536
+set BITS=3072
rem hash algorithm
set HASH=sha256
@@ -98,9 +98,14 @@ echo default_bits=%BITS%>>request.cfg
echo default_md=%HASH%>>request.cfg
echo prompt=no>>request.cfg
echo distinguished_name=req_distinguished_name>>request.cfg
-echo.>>request.cfg
+echo x509_extensions=v3_ca>>request.cfg
echo [req_distinguished_name]>>request.cfg
echo commonName=%SERVERNAME%>>request.cfg
+echo [v3_ca]>>request.cfg
+echo subjectKeyIdentifier=hash>>request.cfg
+echo authorityKeyIdentifier=keyid:always,issuer:always>>request.cfg
+echo basicConstraints=critical,CA:TRUE,pathlen:0>>request.cfg
+echo subjectAltName=DNS:%SERVERNAME%>>request.cfg
if not exist request.cfg (
echo could not create request.cfg
@@ -119,9 +124,12 @@ echo default_bits=%BITS%>>request.cfg
echo default_md=%HASH%>>request.cfg
echo prompt=no>>request.cfg
echo distinguished_name=req_distinguished_name>>request.cfg
-echo.>>request.cfg
+echo req_extensions=v3_req>>request.cfg
echo [req_distinguished_name]>>request.cfg
echo commonName=%CLIENTNAME%>>request.cfg
+echo [v3_req]>>request.cfg
+echo basicConstraints=critical,CA:FALSE>>request.cfg
+echo subjectAltName=DNS:%CLIENTNAME%>>request.cfg
if not exist request.cfg (
echo could not create request.cfg
@@ -129,7 +137,7 @@ exit 1
)
echo create %CTL_BASE%.pem (signed client certificate)
-"%SSL_PROGRAM%" req -key %CTL_BASE%.key -config request.cfg -new | "%SSL_PROGRAM%" x509 -req -days %DAYS% -CA %SVR_BASE%_trust.pem -CAkey %SVR_BASE%.key -CAcreateserial -%HASH% -out %CTL_BASE%.pem
+"%SSL_PROGRAM%" req -key %CTL_BASE%.key -config request.cfg -new | "%SSL_PROGRAM%" x509 -req -days %DAYS% -CA %SVR_BASE%_trust.pem -CAkey %SVR_BASE%.key -CAcreateserial -%HASH% -extfile request.cfg -extensions v3_req -out %CTL_BASE%.pem
if not exist %CTL_BASE%.pem (
echo could not create %CTL_BASE%.pem