aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2018-09-10 16:31:49 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2018-09-10 16:31:49 +0000
commit4aea2433fa04a7a86c8972869bd021b7a3622dc8 (patch)
tree7f4f9830855c0cb429f2c902b18e688a8020f299
parent7b6fdf425a9ef38fe9e16779b3af25863104d9c0 (diff)
downloadsrc-vendor/unbound/1.7.3.tar.gz
src-vendor/unbound/1.7.3.zip
Vendor import of Unbound 1.7.3.vendor/unbound/1.7.3
-rw-r--r--Makefile.in50
-rwxr-xr-xconfigure27
-rw-r--r--configure.ac7
-rw-r--r--daemon/cachedump.c42
-rw-r--r--daemon/cachedump.h7
-rw-r--r--daemon/remote.c535
-rw-r--r--daemon/remote.h27
-rw-r--r--doc/Changelog44
-rw-r--r--doc/README2
-rw-r--r--doc/example.conf.in14
-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.in22
-rw-r--r--iterator/iterator.c46
-rw-r--r--pythonmod/interface.i2
-rw-r--r--services/authzone.c21
-rw-r--r--services/cache/infra.c28
-rw-r--r--services/listen_dnsport.c18
-rw-r--r--smallapp/unbound-checkconf.c3
-rw-r--r--smallapp/unbound-control.c196
-rw-r--r--testcode/unitneg.c6
-rw-r--r--testdata/fwd_oneport.tdir/fwd_oneport.pre2
-rw-r--r--testdata/fwd_oneport.tdir/fwd_oneport.test2
-rw-r--r--util/config_file.c32
-rw-r--r--util/config_file.h28
-rw-r--r--util/configlexer.c2808
-rw-r--r--util/configlexer.lex7
-rw-r--r--util/configparser.c203
-rw-r--r--util/configparser.h4
-rw-r--r--util/configparser.y17
34 files changed, 2166 insertions, 2050 deletions
diff --git a/Makefile.in b/Makefile.in
index a62aaaf427f1..4bdb7059dc0b 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -858,10 +858,11 @@ fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/
$(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \
$(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \
$(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h $(srcdir)/libunbound/context.h \
- $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \
- $(srcdir)/util/config_file.h $(srcdir)/respip/respip.h $(PYTHONMOD_HEADER) \
- $(srcdir)/cachedb/cachedb.h $(srcdir)/ipsecmod/ipsecmod.h $(srcdir)/edns-subnet/subnetmod.h \
- $(srcdir)/util/net_help.h $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h
+ $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/unbound-event.h \
+ $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h $(srcdir)/respip/respip.h \
+ $(PYTHONMOD_HEADER) $(srcdir)/cachedb/cachedb.h $(srcdir)/ipsecmod/ipsecmod.h \
+ $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/util/net_help.h $(srcdir)/edns-subnet/addrtree.h \
+ $(srcdir)/edns-subnet/edns-subnet.h
locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
$(srcdir)/testcode/checklocks.h
log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h \
@@ -1257,8 +1258,8 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(sr
$(srcdir)/services/localzone.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \
$(srcdir)/validator/autotrust.h $(srcdir)/validator/val_anchor.h $(srcdir)/respip/respip.h \
- $(srcdir)/libunbound/context.h $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h \
- $(srcdir)/util/shm_side/shm_main.h
+ $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound-event.h $(srcdir)/libunbound/libworker.h \
+ $(srcdir)/sldns/wire2str.h $(srcdir)/util/shm_side/shm_main.h
testbound.lo testbound.o: $(srcdir)/testcode/testbound.c config.h $(srcdir)/testcode/testpkts.h \
$(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
$(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
@@ -1291,8 +1292,8 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(sr
$(srcdir)/services/localzone.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \
$(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \
$(srcdir)/validator/autotrust.h $(srcdir)/validator/val_anchor.h $(srcdir)/respip/respip.h \
- $(srcdir)/libunbound/context.h $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h \
- $(srcdir)/util/shm_side/shm_main.h
+ $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound-event.h $(srcdir)/libunbound/libworker.h \
+ $(srcdir)/sldns/wire2str.h $(srcdir)/util/shm_side/shm_main.h
acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \
$(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \
$(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \
@@ -1375,22 +1376,22 @@ unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/smallapp/unbound-checkconf.c
$(PYTHONMOD_HEADER) $(srcdir)/edns-subnet/subnet-whitelist.h
worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/libunbound/context.h \
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \
- $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h \
- $(srcdir)/util/storage/lruhash.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \
- $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
+ $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/unbound-event.h \
+ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/libunbound/worker.h \
+ $(srcdir)/sldns/sbuffer.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
$(srcdir)/dnscrypt/cert.h $(srcdir)/util/module.h \
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \
$(srcdir)/util/tube.h $(srcdir)/services/mesh.h
context.lo context.o: $(srcdir)/libunbound/context.c config.h $(srcdir)/libunbound/context.h \
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \
- $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h \
- $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
- $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h \
- $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \
- $(srcdir)/services/view.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
- $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
- $(srcdir)/dnscrypt/cert.h $(srcdir)/services/authzone.h \
- $(srcdir)/services/mesh.h $(srcdir)/sldns/sbuffer.h
+ $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/unbound-event.h \
+ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h \
+ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \
+ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h \
+ $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/cache/rrset.h \
+ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
+ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
+ $(srcdir)/dnscrypt/cert.h $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h $(srcdir)/sldns/sbuffer.h
libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h \
$(srcdir)/libunbound/unbound-event.h config.h $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h \
$(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \
@@ -1407,7 +1408,7 @@ libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h \
$(srcdir)/libunbound/libworker.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/libunbound/context.h \
$(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h \
- $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/libunbound/unbound-event.h \
+ $(srcdir)/libunbound/unbound-event.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \
$(srcdir)/services/outside_network.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
$(srcdir)/dnscrypt/cert.h \
$(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \
@@ -1419,11 +1420,14 @@ libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h \
$(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h \
$(srcdir)/iterator/iter_hints.h $(srcdir)/sldns/str2wire.h
unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \
- $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h
+ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h \
+
asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \
$(srcdir)/libunbound/context.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \
- $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/data/packed_rrset.h \
- $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/rrdef.h
+ $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \
+ $(srcdir)/libunbound/unbound-event.h $(srcdir)/util/data/packed_rrset.h \
+ $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/rrdef.h \
+
streamtcp.lo streamtcp.o: $(srcdir)/testcode/streamtcp.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
$(srcdir)/testcode/checklocks.h $(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h \
$(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \
diff --git a/configure b/configure
index 3f38929d8fd8..7163bb967733 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.7.2.
+# Generated by GNU Autoconf 2.69 for unbound 1.7.3.
#
# Report bugs to <unbound-bugs@nlnetlabs.nl>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='unbound'
PACKAGE_TARNAME='unbound'
-PACKAGE_VERSION='1.7.2'
-PACKAGE_STRING='unbound 1.7.2'
+PACKAGE_VERSION='1.7.3'
+PACKAGE_STRING='unbound 1.7.3'
PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl'
PACKAGE_URL=''
@@ -1440,7 +1440,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.7.2 to adapt to many kinds of systems.
+\`configure' configures unbound 1.7.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1505,7 +1505,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of unbound 1.7.2:";;
+ short | recursive ) echo "Configuration of unbound 1.7.3:";;
esac
cat <<\_ACEOF
@@ -1722,7 +1722,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-unbound configure 1.7.2
+unbound configure 1.7.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2431,7 +2431,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.7.2, which was
+It was created by unbound $as_me 1.7.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2783,11 +2783,11 @@ UNBOUND_VERSION_MAJOR=1
UNBOUND_VERSION_MINOR=7
-UNBOUND_VERSION_MICRO=2
+UNBOUND_VERSION_MICRO=3
LIBUNBOUND_CURRENT=7
-LIBUNBOUND_REVISION=10
+LIBUNBOUND_REVISION=11
LIBUNBOUND_AGE=5
# 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0
@@ -2849,6 +2849,7 @@ LIBUNBOUND_AGE=5
# 1.7.0 had 7:8:5
# 1.7.1 had 7:9:5
# 1.7.2 had 7:10:5
+# 1.7.3 had 7:11:5
# Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary
@@ -19762,7 +19763,7 @@ done
# check if setreuid en setregid fail, on MacOSX10.4(darwin8).
-if echo $build_os | grep darwin8 > /dev/null; then
+if echo $target_os | grep darwin8 > /dev/null; then
$as_echo "#define DARWIN_BROKEN_SETREUID 1" >>confdefs.h
@@ -21044,7 +21045,7 @@ _ACEOF
-version=1.7.2
+version=1.7.3
date=`date +'%b %e, %Y'`
@@ -21563,7 +21564,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.7.2, which was
+This file was extended by unbound $as_me 1.7.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21629,7 +21630,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.7.2
+unbound config.status 1.7.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index b4c484ec976f..80fed29a7bc9 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],[7])
-m4_define([VERSION_MICRO],[2])
+m4_define([VERSION_MICRO],[3])
AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound)
AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR])
AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR])
AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO])
LIBUNBOUND_CURRENT=7
-LIBUNBOUND_REVISION=10
+LIBUNBOUND_REVISION=11
LIBUNBOUND_AGE=5
# 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0
@@ -80,6 +80,7 @@ LIBUNBOUND_AGE=5
# 1.7.0 had 7:8:5
# 1.7.1 had 7:9:5
# 1.7.2 had 7:10:5
+# 1.7.3 had 7:11:5
# Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary
@@ -1324,7 +1325,7 @@ AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])])
AC_CHECK_FUNCS([setresgid],,[AC_CHECK_FUNCS([setregid])])
# check if setreuid en setregid fail, on MacOSX10.4(darwin8).
-if echo $build_os | grep darwin8 > /dev/null; then
+if echo $target_os | grep darwin8 > /dev/null; then
AC_DEFINE(DARWIN_BROKEN_SETREUID, 1, [Define this if on macOSX10.4-darwin8 and setreuid and setregid do not work])
fi
AC_CHECK_DECLS([inet_pton,inet_ntop], [], [], [
diff --git a/daemon/cachedump.c b/daemon/cachedump.c
index 81061870b581..5a72e9d1106f 100644
--- a/daemon/cachedump.c
+++ b/daemon/cachedump.c
@@ -62,7 +62,7 @@
/** dump one rrset zonefile line */
static int
-dump_rrset_line(SSL* ssl, struct ub_packed_rrset_key* k, time_t now, size_t i)
+dump_rrset_line(RES* ssl, struct ub_packed_rrset_key* k, time_t now, size_t i)
{
char s[65535];
if(!packed_rr_to_string(k, i, now, s, sizeof(s))) {
@@ -73,7 +73,7 @@ dump_rrset_line(SSL* ssl, struct ub_packed_rrset_key* k, time_t now, size_t i)
/** dump rrset key and data info */
static int
-dump_rrset(SSL* ssl, struct ub_packed_rrset_key* k,
+dump_rrset(RES* ssl, struct ub_packed_rrset_key* k,
struct packed_rrset_data* d, time_t now)
{
size_t i;
@@ -99,7 +99,7 @@ dump_rrset(SSL* ssl, struct ub_packed_rrset_key* k,
/** dump lruhash rrset cache */
static int
-dump_rrset_lruhash(SSL* ssl, struct lruhash* h, time_t now)
+dump_rrset_lruhash(RES* ssl, struct lruhash* h, time_t now)
{
struct lruhash_entry* e;
/* lruhash already locked by caller */
@@ -118,7 +118,7 @@ dump_rrset_lruhash(SSL* ssl, struct lruhash* h, time_t now)
/** dump rrset cache */
static int
-dump_rrset_cache(SSL* ssl, struct worker* worker)
+dump_rrset_cache(RES* ssl, struct worker* worker)
{
struct rrset_cache* r = worker->env.rrset_cache;
size_t slab;
@@ -137,7 +137,7 @@ dump_rrset_cache(SSL* ssl, struct worker* worker)
/** dump message to rrset reference */
static int
-dump_msg_ref(SSL* ssl, struct ub_packed_rrset_key* k)
+dump_msg_ref(RES* ssl, struct ub_packed_rrset_key* k)
{
char* nm, *tp, *cl;
nm = sldns_wire2str_dname(k->rk.dname, k->rk.dname_len);
@@ -164,7 +164,7 @@ dump_msg_ref(SSL* ssl, struct ub_packed_rrset_key* k)
/** dump message entry */
static int
-dump_msg(SSL* ssl, struct query_info* k, struct reply_info* d,
+dump_msg(RES* ssl, struct query_info* k, struct reply_info* d,
time_t now)
{
size_t i;
@@ -246,7 +246,7 @@ copy_msg(struct regional* region, struct lruhash_entry* e,
/** dump lruhash msg cache */
static int
-dump_msg_lruhash(SSL* ssl, struct worker* worker, struct lruhash* h)
+dump_msg_lruhash(RES* ssl, struct worker* worker, struct lruhash* h)
{
struct lruhash_entry* e;
struct query_info* k;
@@ -274,7 +274,7 @@ dump_msg_lruhash(SSL* ssl, struct worker* worker, struct lruhash* h)
/** dump msg cache */
static int
-dump_msg_cache(SSL* ssl, struct worker* worker)
+dump_msg_cache(RES* ssl, struct worker* worker)
{
struct slabhash* sh = worker->env.msg_cache;
size_t slab;
@@ -291,7 +291,7 @@ dump_msg_cache(SSL* ssl, struct worker* worker)
}
int
-dump_cache(SSL* ssl, struct worker* worker)
+dump_cache(RES* ssl, struct worker* worker)
{
if(!dump_rrset_cache(ssl, worker))
return 0;
@@ -302,7 +302,7 @@ dump_cache(SSL* ssl, struct worker* worker)
/** read a line from ssl into buffer */
static int
-ssl_read_buf(SSL* ssl, sldns_buffer* buf)
+ssl_read_buf(RES* ssl, sldns_buffer* buf)
{
return ssl_read_line(ssl, (char*)sldns_buffer_begin(buf),
sldns_buffer_capacity(buf));
@@ -310,7 +310,7 @@ ssl_read_buf(SSL* ssl, sldns_buffer* buf)
/** check fixed text on line */
static int
-read_fixed(SSL* ssl, sldns_buffer* buf, const char* str)
+read_fixed(RES* ssl, sldns_buffer* buf, const char* str)
{
if(!ssl_read_buf(ssl, buf)) return 0;
return (strcmp((char*)sldns_buffer_begin(buf), str) == 0);
@@ -318,7 +318,7 @@ read_fixed(SSL* ssl, sldns_buffer* buf, const char* str)
/** load an RR into rrset */
static int
-load_rr(SSL* ssl, sldns_buffer* buf, struct regional* region,
+load_rr(RES* ssl, sldns_buffer* buf, struct regional* region,
struct ub_packed_rrset_key* rk, struct packed_rrset_data* d,
unsigned int i, int is_rrsig, int* go_on, time_t now)
{
@@ -435,7 +435,7 @@ move_into_cache(struct ub_packed_rrset_key* k,
/** load an rrset entry */
static int
-load_rrset(SSL* ssl, sldns_buffer* buf, struct worker* worker)
+load_rrset(RES* ssl, sldns_buffer* buf, struct worker* worker)
{
char* s = (char*)sldns_buffer_begin(buf);
struct regional* region = worker->scratchpad;
@@ -519,7 +519,7 @@ load_rrset(SSL* ssl, sldns_buffer* buf, struct worker* worker)
/** load rrset cache */
static int
-load_rrset_cache(SSL* ssl, struct worker* worker)
+load_rrset_cache(RES* ssl, struct worker* worker)
{
sldns_buffer* buf = worker->env.scratch_buffer;
if(!read_fixed(ssl, buf, "START_RRSET_CACHE")) return 0;
@@ -575,7 +575,7 @@ load_qinfo(char* str, struct query_info* qinfo, struct regional* region)
/** load a msg rrset reference */
static int
-load_ref(SSL* ssl, sldns_buffer* buf, struct worker* worker,
+load_ref(RES* ssl, sldns_buffer* buf, struct worker* worker,
struct regional *region, struct ub_packed_rrset_key** rrset,
int* go_on)
{
@@ -620,7 +620,7 @@ load_ref(SSL* ssl, sldns_buffer* buf, struct worker* worker,
/** load a msg entry */
static int
-load_msg(SSL* ssl, sldns_buffer* buf, struct worker* worker)
+load_msg(RES* ssl, sldns_buffer* buf, struct worker* worker)
{
struct regional* region = worker->scratchpad;
struct query_info qinf;
@@ -685,7 +685,7 @@ load_msg(SSL* ssl, sldns_buffer* buf, struct worker* worker)
/** load msg cache */
static int
-load_msg_cache(SSL* ssl, struct worker* worker)
+load_msg_cache(RES* ssl, struct worker* worker)
{
sldns_buffer* buf = worker->env.scratch_buffer;
if(!read_fixed(ssl, buf, "START_MSG_CACHE")) return 0;
@@ -698,7 +698,7 @@ load_msg_cache(SSL* ssl, struct worker* worker)
}
int
-load_cache(SSL* ssl, struct worker* worker)
+load_cache(RES* ssl, struct worker* worker)
{
if(!load_rrset_cache(ssl, worker))
return 0;
@@ -709,7 +709,7 @@ load_cache(SSL* ssl, struct worker* worker)
/** print details on a delegation point */
static void
-print_dp_details(SSL* ssl, struct worker* worker, struct delegpt* dp)
+print_dp_details(RES* ssl, struct worker* worker, struct delegpt* dp)
{
char buf[257];
struct delegpt_addr* a;
@@ -785,7 +785,7 @@ print_dp_details(SSL* ssl, struct worker* worker, struct delegpt* dp)
/** print main dp info */
static void
-print_dp_main(SSL* ssl, struct delegpt* dp, struct dns_msg* msg)
+print_dp_main(RES* ssl, struct delegpt* dp, struct dns_msg* msg)
{
size_t i, n_ns, n_miss, n_addr, n_res, n_avail;
@@ -813,7 +813,7 @@ print_dp_main(SSL* ssl, struct delegpt* dp, struct dns_msg* msg)
return;
}
-int print_deleg_lookup(SSL* ssl, struct worker* worker, uint8_t* nm,
+int print_deleg_lookup(RES* ssl, struct worker* worker, uint8_t* nm,
size_t nmlen, int ATTR_UNUSED(nmlabs))
{
/* deep links into the iterator module */
diff --git a/daemon/cachedump.h b/daemon/cachedump.h
index 0f2feabcb7f4..72c172d4414e 100644
--- a/daemon/cachedump.h
+++ b/daemon/cachedump.h
@@ -72,6 +72,7 @@
#ifndef DAEMON_DUMPCACHE_H
#define DAEMON_DUMPCACHE_H
struct worker;
+#include "daemon/remote.h"
/**
* Dump cache(s) to text
@@ -80,7 +81,7 @@ struct worker;
* ptrs to the caches.
* @return false on ssl print error.
*/
-int dump_cache(SSL* ssl, struct worker* worker);
+int dump_cache(RES* ssl, struct worker* worker);
/**
* Load cache(s) from text
@@ -89,7 +90,7 @@ int dump_cache(SSL* ssl, struct worker* worker);
* ptrs to the caches.
* @return false on ssl error.
*/
-int load_cache(SSL* ssl, struct worker* worker);
+int load_cache(RES* ssl, struct worker* worker);
/**
* Print the delegation used to lookup for this name.
@@ -101,7 +102,7 @@ int load_cache(SSL* ssl, struct worker* worker);
* @param nmlabs: labels in name.
* @return false on ssl error.
*/
-int print_deleg_lookup(SSL* ssl, struct worker* worker, uint8_t* nm,
+int print_deleg_lookup(RES* ssl, struct worker* worker, uint8_t* nm,
size_t nmlen, int nmlabs);
#endif /* DAEMON_DUMPCACHE_H */
diff --git a/daemon/remote.c b/daemon/remote.c
index cfc91eb98b3a..011c55e659f2 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -142,130 +142,20 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, long long d)
#endif
}
-/*
- * The following function was generated using the openssl utility, using
- * the command : "openssl dhparam -C 2048"
- * (some openssl versions reject DH that is 'too small', eg. 512).
- */
-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
-#ifndef S_SPLINT_S
-static DH *get_dh2048(void)
-{
- static unsigned char dh2048_p[]={
- 0xE7,0x36,0x28,0x3B,0xE4,0xC3,0x32,0x1C,0x01,0xC3,0x67,0xD6,
- 0xF5,0xF3,0xDA,0xDC,0x71,0xC0,0x42,0x8B,0xE6,0xEB,0x8D,0x80,
- 0x35,0x7F,0x09,0x45,0x30,0xE5,0xB2,0x92,0x81,0x3F,0x08,0xCD,
- 0x36,0x5E,0x19,0x83,0x62,0xCC,0xAE,0x9B,0x81,0x66,0x24,0xEE,
- 0x16,0x6F,0xA9,0x9E,0xF4,0x82,0x1B,0xDD,0x46,0xC7,0x33,0x5D,
- 0xF4,0xCA,0xE6,0x8F,0xFC,0xD4,0xD8,0x58,0x94,0x24,0x5D,0xFF,
- 0x0A,0xE8,0xEF,0x3D,0xCE,0xBB,0x50,0x94,0xE0,0x5F,0xE8,0x41,
- 0xC3,0x35,0x30,0x37,0xD5,0xCB,0x8F,0x3D,0x95,0x15,0x1A,0x77,
- 0x42,0xB2,0x06,0x86,0xF6,0x09,0x66,0x0E,0x9A,0x25,0x94,0x3E,
- 0xD2,0x04,0x25,0x25,0x1D,0x23,0xEB,0xDC,0x4D,0x0C,0x83,0x28,
- 0x2E,0x15,0x81,0x2D,0xC1,0xAF,0x8D,0x36,0x64,0xE3,0x9A,0x83,
- 0x78,0xC2,0x8D,0xC0,0x9D,0xD9,0x3A,0x1C,0xC5,0x2B,0x50,0x68,
- 0x07,0xA9,0x4B,0x8C,0x07,0x57,0xD6,0x15,0x03,0x4E,0x9E,0x01,
- 0xF2,0x6F,0x35,0xAC,0x26,0x9C,0x92,0x68,0x61,0x13,0xFB,0x01,
- 0xBA,0x22,0x36,0x01,0x55,0xB6,0x62,0xD9,0xB2,0x98,0xCE,0x5D,
- 0x4B,0xA5,0x41,0xD6,0xE5,0x70,0x78,0x12,0x1F,0x64,0xB6,0x6F,
- 0xB0,0x91,0x51,0x91,0x92,0xC0,0x94,0x3A,0xD1,0x28,0x4D,0x30,
- 0x84,0x3E,0xE4,0xE4,0x7F,0x47,0x89,0xB1,0xB6,0x8C,0x8E,0x0E,
- 0x26,0xDB,0xCD,0x17,0x07,0x2A,0x21,0x7A,0xCC,0x68,0xE8,0x57,
- 0x94,0x9E,0x59,0x61,0xEC,0x20,0x34,0x26,0x0D,0x66,0x44,0xEB,
- 0x6F,0x02,0x58,0xE2,0xED,0xF6,0xF3,0x1B,0xBF,0x9E,0x45,0x52,
- 0x5A,0x49,0xA1,0x5B,
- };
- static unsigned char dh2048_g[]={
- 0x02,
- };
- DH *dh = NULL;
- BIGNUM *p = NULL, *g = NULL;
-
- dh = DH_new();
- p = BN_bin2bn(dh2048_p, sizeof(dh2048_p), NULL);
- g = BN_bin2bn(dh2048_g, sizeof(dh2048_g), NULL);
- if (!dh || !p || !g)
- goto err;
-
-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
- dh->p = p;
- dh->g = g;
-#else
- if (!DH_set0_pqg(dh, p, NULL, g))
- goto err;
-#endif
- return dh;
-err:
- if (p)
- BN_free(p);
- if (g)
- BN_free(g);
- if (dh)
- DH_free(dh);
- return NULL;
-}
-#endif /* SPLINT */
-#endif /* OPENSSL_VERSION_NUMBER < 0x10100000 */
-
-struct daemon_remote*
-daemon_remote_create(struct config_file* cfg)
+static int
+remote_setup_ctx(struct daemon_remote* rc, struct config_file* cfg)
{
char* s_cert;
char* s_key;
- struct daemon_remote* rc = (struct daemon_remote*)calloc(1,
- sizeof(*rc));
- if(!rc) {
- log_err("out of memory in daemon_remote_create");
- return NULL;
- }
- rc->max_active = 10;
-
- if(!cfg->remote_control_enable) {
- rc->ctx = NULL;
- return rc;
- }
rc->ctx = SSL_CTX_new(SSLv23_server_method());
if(!rc->ctx) {
log_crypto_err("could not SSL_CTX_new");
- free(rc);
- return NULL;
+ return 0;
}
if(!listen_sslctx_setup(rc->ctx)) {
- daemon_remote_delete(rc);
- return NULL;
+ return 0;
}
- if (cfg->remote_control_use_cert == 0) {
- /* No certificates are requested */
-#if defined(SSL_OP_NO_TLSv1_3)
- /* in openssl 1.1.1, negotiation code for tls 1.3 does
- * not allow the unauthenticated aNULL and eNULL ciphers */
- SSL_CTX_set_options(rc->ctx, SSL_OP_NO_TLSv1_3);
-#endif
-#ifdef HAVE_SSL_CTX_SET_SECURITY_LEVEL
- SSL_CTX_set_security_level(rc->ctx, 0);
-#endif
- if(!SSL_CTX_set_cipher_list(rc->ctx, "aNULL:eNULL")) {
- log_crypto_err("Failed to set aNULL cipher list");
- daemon_remote_delete(rc);
- return NULL;
- }
-
- /* in openssl 1.1, the securitylevel 0 allows eNULL, that
- * does not need the DH */
-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
- /* Since we have no certificates and hence no source of
- * DH params, let's generate and set them
- */
- if(!SSL_CTX_set_tmp_dh(rc->ctx,get_dh2048())) {
- log_crypto_err("Wanted to set DH param, but failed");
- daemon_remote_delete(rc);
- return NULL;
- }
-#endif
- return rc;
- }
- rc->use_cert = 1;
s_cert = fname_after_chroot(cfg->server_cert_file, cfg, 1);
s_key = fname_after_chroot(cfg->server_key_file, cfg, 1);
if(!s_cert || !s_key) {
@@ -294,14 +184,46 @@ daemon_remote_create(struct config_file* cfg)
setup_error:
free(s_cert);
free(s_key);
- daemon_remote_delete(rc);
- return NULL;
+ return 0;
}
SSL_CTX_set_client_CA_list(rc->ctx, SSL_load_client_CA_file(s_cert));
SSL_CTX_set_verify(rc->ctx, SSL_VERIFY_PEER, NULL);
free(s_cert);
free(s_key);
+ return 1;
+}
+struct daemon_remote*
+daemon_remote_create(struct config_file* cfg)
+{
+ struct daemon_remote* rc = (struct daemon_remote*)calloc(1,
+ sizeof(*rc));
+ if(!rc) {
+ log_err("out of memory in daemon_remote_create");
+ return NULL;
+ }
+ rc->max_active = 10;
+
+ if(!cfg->remote_control_enable) {
+ rc->ctx = NULL;
+ return rc;
+ }
+ if(options_remote_is_address(cfg) && cfg->control_use_cert) {
+ if(!remote_setup_ctx(rc, cfg)) {
+ daemon_remote_delete(rc);
+ return NULL;
+ }
+ rc->use_cert = 1;
+ } else {
+ struct config_strlist* p;
+ rc->ctx = NULL;
+ rc->use_cert = 0;
+ if(!options_remote_is_address(cfg))
+ for(p = cfg->control_ifs.first; p; p = p->next) {
+ if(p->str && p->str[0] != '/')
+ log_warn("control-interface %s is not using TLS, but plain transfer, because first control-interface in config file is a local socket (starts with a /).", p->str);
+ }
+ }
return rc;
}
@@ -442,9 +364,9 @@ struct listen_port* daemon_remote_open_ports(struct config_file* cfg)
{
struct listen_port* l = NULL;
log_assert(cfg->remote_control_enable && cfg->control_port);
- if(cfg->control_ifs) {
+ if(cfg->control_ifs.first) {
struct config_strlist* p;
- for(p = cfg->control_ifs; p; p = p->next) {
+ for(p = cfg->control_ifs.first; p; p = p->next) {
if(!add_open(p->str, cfg->control_port, &l, 1, cfg)) {
listening_ports_free(l);
return NULL;
@@ -551,6 +473,7 @@ int remote_accept_callback(struct comm_point* c, void* arg, int err,
log_err("out of memory");
goto close_exit;
}
+ n->fd = newfd;
/* start in reading state */
n->c = comm_point_create_raw(rc->worker->base, newfd, 0,
&remote_control_callback, n);
@@ -565,22 +488,26 @@ int remote_accept_callback(struct comm_point* c, void* arg, int err,
comm_point_start_listening(n->c, -1, REMOTE_CONTROL_TCP_TIMEOUT);
memcpy(&n->c->repinfo.addr, &addr, addrlen);
n->c->repinfo.addrlen = addrlen;
- n->shake_state = rc_hs_read;
- n->ssl = SSL_new(rc->ctx);
- if(!n->ssl) {
- log_crypto_err("could not SSL_new");
- comm_point_delete(n->c);
- free(n);
- goto close_exit;
- }
- SSL_set_accept_state(n->ssl);
- (void)SSL_set_mode(n->ssl, SSL_MODE_AUTO_RETRY);
- if(!SSL_set_fd(n->ssl, newfd)) {
- log_crypto_err("could not SSL_set_fd");
- SSL_free(n->ssl);
- comm_point_delete(n->c);
- free(n);
- goto close_exit;
+ if(rc->use_cert) {
+ n->shake_state = rc_hs_read;
+ n->ssl = SSL_new(rc->ctx);
+ if(!n->ssl) {
+ log_crypto_err("could not SSL_new");
+ comm_point_delete(n->c);
+ free(n);
+ goto close_exit;
+ }
+ SSL_set_accept_state(n->ssl);
+ (void)SSL_set_mode(n->ssl, SSL_MODE_AUTO_RETRY);
+ if(!SSL_set_fd(n->ssl, newfd)) {
+ log_crypto_err("could not SSL_set_fd");
+ SSL_free(n->ssl);
+ comm_point_delete(n->c);
+ free(n);
+ goto close_exit;
+ }
+ } else {
+ n->ssl = NULL;
}
n->rc = rc;
@@ -622,27 +549,45 @@ clean_point(struct daemon_remote* rc, struct rc_state* s)
}
int
-ssl_print_text(SSL* ssl, const char* text)
+ssl_print_text(RES* res, const char* text)
{
int r;
- if(!ssl)
+ if(!res)
return 0;
- ERR_clear_error();
- if((r=SSL_write(ssl, text, (int)strlen(text))) <= 0) {
- if(SSL_get_error(ssl, r) == SSL_ERROR_ZERO_RETURN) {
- verbose(VERB_QUERY, "warning, in SSL_write, peer "
- "closed connection");
+ if(res->ssl) {
+ ERR_clear_error();
+ if((r=SSL_write(res->ssl, text, (int)strlen(text))) <= 0) {
+ if(SSL_get_error(res->ssl, r) == SSL_ERROR_ZERO_RETURN) {
+ verbose(VERB_QUERY, "warning, in SSL_write, peer "
+ "closed connection");
+ return 0;
+ }
+ log_crypto_err("could not SSL_write");
return 0;
}
- log_crypto_err("could not SSL_write");
- return 0;
+ } else {
+ size_t at = 0;
+ while(at < strlen(text)) {
+ ssize_t r = send(res->fd, text+at, strlen(text)-at, 0);
+ if(r == -1) {
+ if(errno == EAGAIN || errno == EINTR)
+ continue;
+#ifndef USE_WINSOCK
+ log_err("could not send: %s", strerror(errno));
+#else
+ log_err("could not send: %s", wsa_strerror(WSAGetLastError()));
+#endif
+ return 0;
+ }
+ at += r;
+ }
}
return 1;
}
/** print text over the ssl connection */
static int
-ssl_print_vmsg(SSL* ssl, const char* format, va_list args)
+ssl_print_vmsg(RES* ssl, const char* format, va_list args)
{
char msg[1024];
vsnprintf(msg, sizeof(msg), format, args);
@@ -650,7 +595,7 @@ ssl_print_vmsg(SSL* ssl, const char* format, va_list args)
}
/** printf style printing to the ssl connection */
-int ssl_printf(SSL* ssl, const char* format, ...)
+int ssl_printf(RES* ssl, const char* format, ...)
{
va_list args;
int ret;
@@ -661,21 +606,42 @@ int ssl_printf(SSL* ssl, const char* format, ...)
}
int
-ssl_read_line(SSL* ssl, char* buf, size_t max)
+ssl_read_line(RES* res, char* buf, size_t max)
{
int r;
size_t len = 0;
- if(!ssl)
+ if(!res)
return 0;
while(len < max) {
- ERR_clear_error();
- if((r=SSL_read(ssl, buf+len, 1)) <= 0) {
- if(SSL_get_error(ssl, r) == SSL_ERROR_ZERO_RETURN) {
- buf[len] = 0;
- return 1;
+ if(res->ssl) {
+ ERR_clear_error();
+ if((r=SSL_read(res->ssl, buf+len, 1)) <= 0) {
+ if(SSL_get_error(res->ssl, r) == SSL_ERROR_ZERO_RETURN) {
+ buf[len] = 0;
+ return 1;
+ }
+ log_crypto_err("could not SSL_read");
+ return 0;
+ }
+ } else {
+ while(1) {
+ ssize_t rr = recv(res->fd, buf+len, 1, 0);
+ if(rr <= 0) {
+ if(rr == 0) {
+ buf[len] = 0;
+ return 1;
+ }
+ if(errno == EINTR || errno == EAGAIN)
+ continue;
+#ifndef USE_WINSOCK
+ log_err("could not recv: %s", strerror(errno));
+#else
+ log_err("could not recv: %s", wsa_strerror(WSAGetLastError()));
+#endif
+ return 0;
+ }
+ break;
}
- log_crypto_err("could not SSL_read");
- return 0;
}
if(buf[len] == '\n') {
/* return string without \n */
@@ -700,14 +666,14 @@ skipwhite(char* str)
}
/** send the OK to the control client */
-static void send_ok(SSL* ssl)
+static void send_ok(RES* ssl)
{
(void)ssl_printf(ssl, "ok\n");
}
/** do the stop command */
static void
-do_stop(SSL* ssl, struct daemon_remote* rc)
+do_stop(RES* ssl, struct daemon_remote* rc)
{
rc->worker->need_to_exit = 1;
comm_base_exit(rc->worker->base);
@@ -716,7 +682,7 @@ do_stop(SSL* ssl, struct daemon_remote* rc)
/** do the reload command */
static void
-do_reload(SSL* ssl, struct daemon_remote* rc)
+do_reload(RES* ssl, struct daemon_remote* rc)
{
rc->worker->need_to_exit = 0;
comm_base_exit(rc->worker->base);
@@ -725,7 +691,7 @@ do_reload(SSL* ssl, struct daemon_remote* rc)
/** do the verbosity command */
static void
-do_verbosity(SSL* ssl, char* str)
+do_verbosity(RES* ssl, char* str)
{
int val = atoi(str);
if(val == 0 && strcmp(str, "0") != 0) {
@@ -738,7 +704,7 @@ do_verbosity(SSL* ssl, char* str)
/** print stats from statinfo */
static int
-print_stats(SSL* ssl, const char* nm, struct ub_stats_info* s)
+print_stats(RES* ssl, const char* nm, struct ub_stats_info* s)
{
struct timeval sumwait, avg;
if(!ssl_printf(ssl, "%s.num.queries"SQ"%lu\n", nm,
@@ -797,7 +763,7 @@ print_stats(SSL* ssl, const char* nm, struct ub_stats_info* s)
/** print stats for one thread */
static int
-print_thread_stats(SSL* ssl, int i, struct ub_stats_info* s)
+print_thread_stats(RES* ssl, int i, struct ub_stats_info* s)
{
char nm[32];
snprintf(nm, sizeof(nm), "thread%d", i);
@@ -807,7 +773,7 @@ print_thread_stats(SSL* ssl, int i, struct ub_stats_info* s)
/** print long number */
static int
-print_longnum(SSL* ssl, const char* desc, size_t x)
+print_longnum(RES* ssl, const char* desc, size_t x)
{
if(x > 1024*1024*1024) {
/* more than a Gb */
@@ -822,7 +788,7 @@ print_longnum(SSL* ssl, const char* desc, size_t x)
/** print mem stats */
static int
-print_mem(SSL* ssl, struct worker* worker, struct daemon* daemon)
+print_mem(RES* ssl, struct worker* worker, struct daemon* daemon)
{
size_t msg, rrset, val, iter, respip;
#ifdef CLIENT_SUBNET
@@ -885,7 +851,7 @@ print_mem(SSL* ssl, struct worker* worker, struct daemon* daemon)
/** print uptime stats */
static int
-print_uptime(SSL* ssl, struct worker* worker, int reset)
+print_uptime(RES* ssl, struct worker* worker, int reset)
{
struct timeval now = *worker->env.now_tv;
struct timeval up, dt;
@@ -904,7 +870,7 @@ print_uptime(SSL* ssl, struct worker* worker, int reset)
/** print extended histogram */
static int
-print_hist(SSL* ssl, struct ub_stats_info* s)
+print_hist(RES* ssl, struct ub_stats_info* s)
{
struct timehist* hist;
size_t i;
@@ -932,7 +898,7 @@ print_hist(SSL* ssl, struct ub_stats_info* s)
/** print extended stats */
static int
-print_ext(SSL* ssl, struct ub_stats_info* s)
+print_ext(RES* ssl, struct ub_stats_info* s)
{
int i;
char nm[16];
@@ -1089,7 +1055,7 @@ print_ext(SSL* ssl, struct ub_stats_info* s)
/** do the stats command */
static void
-do_stats(SSL* ssl, struct daemon_remote* rc, int reset)
+do_stats(RES* ssl, struct daemon_remote* rc, int reset)
{
struct daemon* daemon = rc->worker->daemon;
struct ub_stats_info total;
@@ -1123,7 +1089,7 @@ do_stats(SSL* ssl, struct daemon_remote* rc, int reset)
/** parse commandline argument domain name */
static int
-parse_arg_name(SSL* ssl, char* str, uint8_t** res, size_t* len, int* labs)
+parse_arg_name(RES* ssl, char* str, uint8_t** res, size_t* len, int* labs)
{
uint8_t nm[LDNS_MAX_DOMAINLEN+1];
size_t nmlen = sizeof(nm);
@@ -1149,7 +1115,7 @@ parse_arg_name(SSL* ssl, char* str, uint8_t** res, size_t* len, int* labs)
/** find second argument, modifies string */
static int
-find_arg2(SSL* ssl, char* arg, char** arg2)
+find_arg2(RES* ssl, char* arg, char** arg2)
{
char* as = strchr(arg, ' ');
char* at = strchr(arg, '\t');
@@ -1174,7 +1140,7 @@ find_arg2(SSL* ssl, char* arg, char** arg2)
/** Add a new zone */
static int
-perform_zone_add(SSL* ssl, struct local_zones* zones, char* arg)
+perform_zone_add(RES* ssl, struct local_zones* zones, char* arg)
{
uint8_t* nm;
int nmlabs;
@@ -1214,7 +1180,7 @@ perform_zone_add(SSL* ssl, struct local_zones* zones, char* arg)
/** Do the local_zone command */
static void
-do_zone_add(SSL* ssl, struct local_zones* zones, char* arg)
+do_zone_add(RES* ssl, struct local_zones* zones, char* arg)
{
if(!perform_zone_add(ssl, zones, arg))
return;
@@ -1223,7 +1189,7 @@ do_zone_add(SSL* ssl, struct local_zones* zones, char* arg)
/** Do the local_zones command */
static void
-do_zones_add(SSL* ssl, struct local_zones* zones)
+do_zones_add(RES* ssl, struct local_zones* zones)
{
char buf[2048];
int num = 0;
@@ -1242,7 +1208,7 @@ do_zones_add(SSL* ssl, struct local_zones* zones)
/** Remove a zone */
static int
-perform_zone_remove(SSL* ssl, struct local_zones* zones, char* arg)
+perform_zone_remove(RES* ssl, struct local_zones* zones, char* arg)
{
uint8_t* nm;
int nmlabs;
@@ -1263,7 +1229,7 @@ perform_zone_remove(SSL* ssl, struct local_zones* zones, char* arg)
/** Do the local_zone_remove command */
static void
-do_zone_remove(SSL* ssl, struct local_zones* zones, char* arg)
+do_zone_remove(RES* ssl, struct local_zones* zones, char* arg)
{
if(!perform_zone_remove(ssl, zones, arg))
return;
@@ -1272,7 +1238,7 @@ do_zone_remove(SSL* ssl, struct local_zones* zones, char* arg)
/** Do the local_zones_remove command */
static void
-do_zones_remove(SSL* ssl, struct local_zones* zones)
+do_zones_remove(RES* ssl, struct local_zones* zones)
{
char buf[2048];
int num = 0;
@@ -1291,7 +1257,7 @@ do_zones_remove(SSL* ssl, struct local_zones* zones)
/** Add new RR data */
static int
-perform_data_add(SSL* ssl, struct local_zones* zones, char* arg)
+perform_data_add(RES* ssl, struct local_zones* zones, char* arg)
{
if(!local_zones_add_RR(zones, arg)) {
ssl_printf(ssl,"error in syntax or out of memory, %s\n", arg);
@@ -1302,7 +1268,7 @@ perform_data_add(SSL* ssl, struct local_zones* zones, char* arg)
/** Do the local_data command */
static void
-do_data_add(SSL* ssl, struct local_zones* zones, char* arg)
+do_data_add(RES* ssl, struct local_zones* zones, char* arg)
{
if(!perform_data_add(ssl, zones, arg))
return;
@@ -1311,7 +1277,7 @@ do_data_add(SSL* ssl, struct local_zones* zones, char* arg)
/** Do the local_datas command */
static void
-do_datas_add(SSL* ssl, struct local_zones* zones)
+do_datas_add(RES* ssl, struct local_zones* zones)
{
char buf[2048];
int num = 0;
@@ -1330,7 +1296,7 @@ do_datas_add(SSL* ssl, struct local_zones* zones)
/** Remove RR data */
static int
-perform_data_remove(SSL* ssl, struct local_zones* zones, char* arg)
+perform_data_remove(RES* ssl, struct local_zones* zones, char* arg)
{
uint8_t* nm;
int nmlabs;
@@ -1345,7 +1311,7 @@ perform_data_remove(SSL* ssl, struct local_zones* zones, char* arg)
/** Do the local_data_remove command */
static void
-do_data_remove(SSL* ssl, struct local_zones* zones, char* arg)
+do_data_remove(RES* ssl, struct local_zones* zones, char* arg)
{
if(!perform_data_remove(ssl, zones, arg))
return;
@@ -1354,7 +1320,7 @@ do_data_remove(SSL* ssl, struct local_zones* zones, char* arg)
/** Do the local_datas_remove command */
static void
-do_datas_remove(SSL* ssl, struct local_zones* zones)
+do_datas_remove(RES* ssl, struct local_zones* zones)
{
char buf[2048];
int num = 0;
@@ -1373,7 +1339,7 @@ do_datas_remove(SSL* ssl, struct local_zones* zones)
/** Add a new zone to view */
static void
-do_view_zone_add(SSL* ssl, struct worker* worker, char* arg)
+do_view_zone_add(RES* ssl, struct worker* worker, char* arg)
{
char* arg2;
struct view* v;
@@ -1406,7 +1372,7 @@ do_view_zone_add(SSL* ssl, struct worker* worker, char* arg)
/** Remove a zone from view */
static void
-do_view_zone_remove(SSL* ssl, struct worker* worker, char* arg)
+do_view_zone_remove(RES* ssl, struct worker* worker, char* arg)
{
char* arg2;
struct view* v;
@@ -1429,7 +1395,7 @@ do_view_zone_remove(SSL* ssl, struct worker* worker, char* arg)
/** Add new RR data to view */
static void
-do_view_data_add(SSL* ssl, struct worker* worker, char* arg)
+do_view_data_add(RES* ssl, struct worker* worker, char* arg)
{
char* arg2;
struct view* v;
@@ -1454,7 +1420,7 @@ do_view_data_add(SSL* ssl, struct worker* worker, char* arg)
/** Remove RR data from view */
static void
-do_view_data_remove(SSL* ssl, struct worker* worker, char* arg)
+do_view_data_remove(RES* ssl, struct worker* worker, char* arg)
{
char* arg2;
struct view* v;
@@ -1477,7 +1443,7 @@ do_view_data_remove(SSL* ssl, struct worker* worker, char* arg)
/** cache lookup of nameservers */
static void
-do_lookup(SSL* ssl, struct worker* worker, char* arg)
+do_lookup(RES* ssl, struct worker* worker, char* arg)
{
uint8_t* nm;
int nmlabs;
@@ -1515,7 +1481,7 @@ do_cache_remove(struct worker* worker, uint8_t* nm, size_t nmlen,
/** flush a type */
static void
-do_flush_type(SSL* ssl, struct worker* worker, char* arg)
+do_flush_type(RES* ssl, struct worker* worker, char* arg)
{
uint8_t* nm;
int nmlabs;
@@ -1535,7 +1501,7 @@ do_flush_type(SSL* ssl, struct worker* worker, char* arg)
/** flush statistics */
static void
-do_flush_stats(SSL* ssl, struct worker* worker)
+do_flush_stats(RES* ssl, struct worker* worker)
{
worker_stats_clear(worker);
send_ok(ssl);
@@ -1590,7 +1556,7 @@ infra_del_host(struct lruhash_entry* e, void* arg)
/** flush infra cache */
static void
-do_flush_infra(SSL* ssl, struct worker* worker, char* arg)
+do_flush_infra(RES* ssl, struct worker* worker, char* arg)
{
struct sockaddr_storage addr;
socklen_t len;
@@ -1624,7 +1590,7 @@ do_flush_infra(SSL* ssl, struct worker* worker, char* arg)
/** flush requestlist */
static void
-do_flush_requestlist(SSL* ssl, struct worker* worker)
+do_flush_requestlist(RES* ssl, struct worker* worker)
{
mesh_delete_all(worker->env.mesh);
send_ok(ssl);
@@ -1682,7 +1648,7 @@ zone_del_kcache(struct lruhash_entry* e, void* arg)
/** remove all rrsets and keys from zone from cache */
static void
-do_flush_zone(SSL* ssl, struct worker* worker, char* arg)
+do_flush_zone(RES* ssl, struct worker* worker, char* arg)
{
uint8_t* nm;
int nmlabs;
@@ -1760,7 +1726,7 @@ bogus_del_kcache(struct lruhash_entry* e, void* arg)
/** remove all bogus rrsets, msgs and keys from cache */
static void
-do_flush_bogus(SSL* ssl, struct worker* worker)
+do_flush_bogus(RES* ssl, struct worker* worker)
{
struct del_info inf;
/* what we do is to set them all expired */
@@ -1835,7 +1801,7 @@ negative_del_kcache(struct lruhash_entry* e, void* arg)
/** remove all negative(NODATA,NXDOMAIN), and servfail messages from cache */
static void
-do_flush_negative(SSL* ssl, struct worker* worker)
+do_flush_negative(RES* ssl, struct worker* worker)
{
struct del_info inf;
/* what we do is to set them all expired */
@@ -1863,7 +1829,7 @@ do_flush_negative(SSL* ssl, struct worker* worker)
/** remove name rrset from cache */
static void
-do_flush_name(SSL* ssl, struct worker* w, char* arg)
+do_flush_name(RES* ssl, struct worker* w, char* arg)
{
uint8_t* nm;
int nmlabs;
@@ -1887,7 +1853,7 @@ do_flush_name(SSL* ssl, struct worker* w, char* arg)
/** printout a delegation point info */
static int
-ssl_print_name_dp(SSL* ssl, const char* str, uint8_t* nm, uint16_t dclass,
+ssl_print_name_dp(RES* ssl, const char* str, uint8_t* nm, uint16_t dclass,
struct delegpt* dp)
{
char buf[257];
@@ -1921,7 +1887,7 @@ ssl_print_name_dp(SSL* ssl, const char* str, uint8_t* nm, uint16_t dclass,
/** print root forwards */
static int
-print_root_fwds(SSL* ssl, struct iter_forwards* fwds, uint8_t* root)
+print_root_fwds(RES* ssl, struct iter_forwards* fwds, uint8_t* root)
{
struct delegpt* dp;
dp = forwards_lookup(fwds, root, LDNS_RR_CLASS_IN);
@@ -1934,7 +1900,7 @@ print_root_fwds(SSL* ssl, struct iter_forwards* fwds, uint8_t* root)
/** parse args into delegpt */
static struct delegpt*
-parse_delegpt(SSL* ssl, char* args, uint8_t* nm, int allow_names)
+parse_delegpt(RES* ssl, char* args, uint8_t* nm, int allow_names)
{
/* parse args and add in */
char* p = args;
@@ -1997,7 +1963,7 @@ parse_delegpt(SSL* ssl, char* args, uint8_t* nm, int allow_names)
/** do the status command */
static void
-do_forward(SSL* ssl, struct worker* worker, char* args)
+do_forward(RES* ssl, struct worker* worker, char* args)
{
struct iter_forwards* fwd = worker->env.fwds;
uint8_t* root = (uint8_t*)"\000";
@@ -2028,7 +1994,7 @@ do_forward(SSL* ssl, struct worker* worker, char* args)
}
static int
-parse_fs_args(SSL* ssl, char* args, uint8_t** nm, struct delegpt** dp,
+parse_fs_args(RES* ssl, char* args, uint8_t** nm, struct delegpt** dp,
int* insecure, int* prime)
{
char* zonename;
@@ -2073,7 +2039,7 @@ parse_fs_args(SSL* ssl, char* args, uint8_t** nm, struct delegpt** dp,
/** do the forward_add command */
static void
-do_forward_add(SSL* ssl, struct worker* worker, char* args)
+do_forward_add(RES* ssl, struct worker* worker, char* args)
{
struct iter_forwards* fwd = worker->env.fwds;
int insecure = 0;
@@ -2101,7 +2067,7 @@ do_forward_add(SSL* ssl, struct worker* worker, char* args)
/** do the forward_remove command */
static void
-do_forward_remove(SSL* ssl, struct worker* worker, char* args)
+do_forward_remove(RES* ssl, struct worker* worker, char* args)
{
struct iter_forwards* fwd = worker->env.fwds;
int insecure = 0;
@@ -2118,7 +2084,7 @@ do_forward_remove(SSL* ssl, struct worker* worker, char* args)
/** do the stub_add command */
static void
-do_stub_add(SSL* ssl, struct worker* worker, char* args)
+do_stub_add(RES* ssl, struct worker* worker, char* args)
{
struct iter_forwards* fwd = worker->env.fwds;
int insecure = 0, prime = 0;
@@ -2159,7 +2125,7 @@ do_stub_add(SSL* ssl, struct worker* worker, char* args)
/** do the stub_remove command */
static void
-do_stub_remove(SSL* ssl, struct worker* worker, char* args)
+do_stub_remove(RES* ssl, struct worker* worker, char* args)
{
struct iter_forwards* fwd = worker->env.fwds;
int insecure = 0;
@@ -2177,7 +2143,7 @@ do_stub_remove(SSL* ssl, struct worker* worker, char* args)
/** do the insecure_add command */
static void
-do_insecure_add(SSL* ssl, struct worker* worker, char* arg)
+do_insecure_add(RES* ssl, struct worker* worker, char* arg)
{
size_t nmlen;
int nmlabs;
@@ -2198,7 +2164,7 @@ do_insecure_add(SSL* ssl, struct worker* worker, char* arg)
/** do the insecure_remove command */
static void
-do_insecure_remove(SSL* ssl, struct worker* worker, char* arg)
+do_insecure_remove(RES* ssl, struct worker* worker, char* arg)
{
size_t nmlen;
int nmlabs;
@@ -2213,7 +2179,7 @@ do_insecure_remove(SSL* ssl, struct worker* worker, char* arg)
}
static void
-do_insecure_list(SSL* ssl, struct worker* worker)
+do_insecure_list(RES* ssl, struct worker* worker)
{
char buf[257];
struct trust_anchor* a;
@@ -2229,7 +2195,7 @@ do_insecure_list(SSL* ssl, struct worker* worker)
/** do the status command */
static void
-do_status(SSL* ssl, struct worker* worker)
+do_status(RES* ssl, struct worker* worker)
{
int i;
time_t uptime;
@@ -2250,9 +2216,12 @@ do_status(SSL* ssl, struct worker* worker)
uptime = (time_t)time(NULL) - (time_t)worker->daemon->time_boot.tv_sec;
if(!ssl_printf(ssl, "uptime: " ARG_LL "d seconds\n", (long long)uptime))
return;
- if(!ssl_printf(ssl, "options:%s%s\n" ,
+ if(!ssl_printf(ssl, "options:%s%s%s%s\n" ,
(worker->daemon->reuseport?" reuseport":""),
- (worker->daemon->rc->accept_list?" control(ssl)":"")))
+ (worker->daemon->rc->accept_list?" control":""),
+ (worker->daemon->rc->accept_list && worker->daemon->rc->use_cert?"(ssl)":""),
+ (worker->daemon->rc->accept_list && worker->daemon->cfg->control_ifs.first && worker->daemon->cfg->control_ifs.first->str && worker->daemon->cfg->control_ifs.first->str[0] == '/'?"(namedpipe)":"")
+ ))
return;
if(!ssl_printf(ssl, "unbound (pid %d) is running...\n",
(int)getpid()))
@@ -2334,7 +2303,7 @@ get_mesh_status(struct mesh_area* mesh, struct mesh_state* m,
/** do the dump_requestlist command */
static void
-do_dump_requestlist(SSL* ssl, struct worker* worker)
+do_dump_requestlist(RES* ssl, struct worker* worker)
{
struct mesh_area* mesh;
struct mesh_state* m;
@@ -2373,7 +2342,7 @@ struct infra_arg {
/** the infra cache */
struct infra_cache* infra;
/** the SSL connection */
- SSL* ssl;
+ RES* ssl;
/** the time now */
time_t now;
/** ssl failure? stop writing and skip the rest. If the tcp
@@ -2428,7 +2397,7 @@ dump_infra_host(struct lruhash_entry* e, void* arg)
/** do the dump_infra command */
static void
-do_dump_infra(SSL* ssl, struct worker* worker)
+do_dump_infra(RES* ssl, struct worker* worker)
{
struct infra_arg arg;
arg.infra = worker->env.infra_cache;
@@ -2440,7 +2409,7 @@ do_dump_infra(SSL* ssl, struct worker* worker)
/** do the log_reopen command */
static void
-do_log_reopen(SSL* ssl, struct worker* worker)
+do_log_reopen(RES* ssl, struct worker* worker)
{
struct config_file* cfg = worker->env.cfg;
send_ok(ssl);
@@ -2449,7 +2418,7 @@ do_log_reopen(SSL* ssl, struct worker* worker)
/** do the set_option command */
static void
-do_set_option(SSL* ssl, struct worker* worker, char* arg)
+do_set_option(RES* ssl, struct worker* worker, char* arg)
{
char* arg2;
if(!find_arg2(ssl, arg, &arg2))
@@ -2472,13 +2441,13 @@ do_set_option(SSL* ssl, struct worker* worker, char* arg)
/* routine to printout option values over SSL */
void remote_get_opt_ssl(char* line, void* arg)
{
- SSL* ssl = (SSL*)arg;
+ RES* ssl = (RES*)arg;
(void)ssl_printf(ssl, "%s\n", line);
}
/** do the get_option command */
static void
-do_get_option(SSL* ssl, struct worker* worker, char* arg)
+do_get_option(RES* ssl, struct worker* worker, char* arg)
{
int r;
r = config_get_option(worker->env.cfg, arg, remote_get_opt_ssl, ssl);
@@ -2490,7 +2459,7 @@ do_get_option(SSL* ssl, struct worker* worker, char* arg)
/** do the list_forwards command */
static void
-do_list_forwards(SSL* ssl, struct worker* worker)
+do_list_forwards(RES* ssl, struct worker* worker)
{
/* since its a per-worker structure no locks needed */
struct iter_forwards* fwds = worker->env.fwds;
@@ -2518,7 +2487,7 @@ do_list_forwards(SSL* ssl, struct worker* worker)
/** do the list_stubs command */
static void
-do_list_stubs(SSL* ssl, struct worker* worker)
+do_list_stubs(RES* ssl, struct worker* worker)
{
struct iter_hints_stub* z;
struct trust_anchor* a;
@@ -2546,7 +2515,7 @@ do_list_stubs(SSL* ssl, struct worker* worker)
/** do the list_auth_zones command */
static void
-do_list_auth_zones(SSL* ssl, struct auth_zones* az)
+do_list_auth_zones(RES* ssl, struct auth_zones* az)
{
struct auth_zone* z;
char buf[257], buf2[256];
@@ -2576,7 +2545,7 @@ do_list_auth_zones(SSL* ssl, struct auth_zones* az)
/** do the list_local_zones command */
static void
-do_list_local_zones(SSL* ssl, struct local_zones* zones)
+do_list_local_zones(RES* ssl, struct local_zones* zones)
{
struct local_zone* z;
char buf[257];
@@ -2598,7 +2567,7 @@ do_list_local_zones(SSL* ssl, struct local_zones* zones)
/** do the list_local_data command */
static void
-do_list_local_data(SSL* ssl, struct worker* worker, struct local_zones* zones)
+do_list_local_data(RES* ssl, struct worker* worker, struct local_zones* zones)
{
struct local_zone* z;
struct local_data* d;
@@ -2637,7 +2606,7 @@ do_list_local_data(SSL* ssl, struct worker* worker, struct local_zones* zones)
/** do the view_list_local_zones command */
static void
-do_view_list_local_zones(SSL* ssl, struct worker* worker, char* arg)
+do_view_list_local_zones(RES* ssl, struct worker* worker, char* arg)
{
struct view* v = views_find_view(worker->daemon->views,
arg, 0 /* get read lock*/);
@@ -2653,7 +2622,7 @@ do_view_list_local_zones(SSL* ssl, struct worker* worker, char* arg)
/** do the view_list_local_data command */
static void
-do_view_list_local_data(SSL* ssl, struct worker* worker, char* arg)
+do_view_list_local_data(RES* ssl, struct worker* worker, char* arg)
{
struct view* v = views_find_view(worker->daemon->views,
arg, 0 /* get read lock*/);
@@ -2672,7 +2641,7 @@ struct ratelimit_list_arg {
/** the infra cache */
struct infra_cache* infra;
/** the SSL to print to */
- SSL* ssl;
+ RES* ssl;
/** all or only ratelimited */
int all;
/** current time */
@@ -2719,7 +2688,7 @@ ip_rate_list(struct lruhash_entry* e, void* arg)
/** do the ratelimit_list command */
static void
-do_ratelimit_list(SSL* ssl, struct worker* worker, char* arg)
+do_ratelimit_list(RES* ssl, struct worker* worker, char* arg)
{
struct ratelimit_list_arg a;
a.all = 0;
@@ -2737,7 +2706,7 @@ do_ratelimit_list(SSL* ssl, struct worker* worker, char* arg)
/** do the ip_ratelimit_list command */
static void
-do_ip_ratelimit_list(SSL* ssl, struct worker* worker, char* arg)
+do_ip_ratelimit_list(RES* ssl, struct worker* worker, char* arg)
{
struct ip_ratelimit_list_arg a;
a.all = 0;
@@ -2755,7 +2724,7 @@ do_ip_ratelimit_list(SSL* ssl, struct worker* worker, char* arg)
/** tell other processes to execute the command */
static void
-distribute_cmd(struct daemon_remote* rc, SSL* ssl, char* cmd)
+distribute_cmd(struct daemon_remote* rc, RES* ssl, char* cmd)
{
int i;
if(!cmd || !ssl)
@@ -2781,7 +2750,7 @@ cmdcmp(char* p, const char* cmd, size_t len)
/** execute a remote control command */
static void
-execute_cmd(struct daemon_remote* rc, SSL* ssl, char* cmd,
+execute_cmd(struct daemon_remote* rc, RES* ssl, char* cmd,
struct worker* worker)
{
char* p = skipwhite(cmd);
@@ -2965,7 +2934,7 @@ daemon_remote_exec(struct worker* worker)
/** handle remote control request */
static void
-handle_req(struct daemon_remote* rc, struct rc_state* s, SSL* ssl)
+handle_req(struct daemon_remote* rc, struct rc_state* s, RES* res)
{
int r;
char pre[10];
@@ -2979,12 +2948,31 @@ handle_req(struct daemon_remote* rc, struct rc_state* s, SSL* ssl)
fd_set_block(s->c->fd);
/* try to read magic UBCT[version]_space_ string */
- ERR_clear_error();
- if((r=SSL_read(ssl, magic, (int)sizeof(magic)-1)) <= 0) {
- if(SSL_get_error(ssl, r) == SSL_ERROR_ZERO_RETURN)
+ if(res->ssl) {
+ ERR_clear_error();
+ if((r=SSL_read(res->ssl, magic, (int)sizeof(magic)-1)) <= 0) {
+ if(SSL_get_error(res->ssl, r) == SSL_ERROR_ZERO_RETURN)
+ return;
+ log_crypto_err("could not SSL_read");
return;
- log_crypto_err("could not SSL_read");
- return;
+ }
+ } else {
+ while(1) {
+ ssize_t rr = recv(res->fd, magic, sizeof(magic)-1, 0);
+ if(rr <= 0) {
+ if(rr == 0) return;
+ if(errno == EINTR || errno == EAGAIN)
+ continue;
+#ifndef USE_WINSOCK
+ log_err("could not recv: %s", strerror(errno));
+#else
+ log_err("could not recv: %s", wsa_strerror(WSAGetLastError()));
+#endif
+ return;
+ }
+ r = (int)rr;
+ break;
+ }
}
magic[6] = 0;
if( r != 6 || strncmp(magic, "UBCT", 4) != 0) {
@@ -2994,25 +2982,58 @@ handle_req(struct daemon_remote* rc, struct rc_state* s, SSL* ssl)
}
/* read the command line */
- if(!ssl_read_line(ssl, buf, sizeof(buf))) {
+ if(!ssl_read_line(res, buf, sizeof(buf))) {
return;
}
snprintf(pre, sizeof(pre), "UBCT%d ", UNBOUND_CONTROL_VERSION);
if(strcmp(magic, pre) != 0) {
verbose(VERB_QUERY, "control connection had bad "
"version %s, cmd: %s", magic, buf);
- ssl_printf(ssl, "error version mismatch\n");
+ ssl_printf(res, "error version mismatch\n");
return;
}
verbose(VERB_DETAIL, "control cmd: %s", buf);
/* figure out what to do */
- execute_cmd(rc, ssl, buf, rc->worker);
+ execute_cmd(rc, res, buf, rc->worker);
+}
+
+/** handle SSL_do_handshake changes to the file descriptor to wait for later */
+static int
+remote_handshake_later(struct daemon_remote* rc, struct rc_state* s,
+ struct comm_point* c, int r, int r2)
+{
+ if(r2 == SSL_ERROR_WANT_READ) {
+ if(s->shake_state == rc_hs_read) {
+ /* try again later */
+ return 0;
+ }
+ s->shake_state = rc_hs_read;
+ comm_point_listen_for_rw(c, 1, 0);
+ return 0;
+ } else if(r2 == SSL_ERROR_WANT_WRITE) {
+ if(s->shake_state == rc_hs_write) {
+ /* try again later */
+ return 0;
+ }
+ s->shake_state = rc_hs_write;
+ comm_point_listen_for_rw(c, 0, 1);
+ return 0;
+ } else {
+ if(r == 0)
+ log_err("remote control connection closed prematurely");
+ log_addr(1, "failed connection from",
+ &s->c->repinfo.addr, s->c->repinfo.addrlen);
+ log_crypto_err("remote control failed ssl");
+ clean_point(rc, s);
+ }
+ return 0;
}
int remote_control_callback(struct comm_point* c, void* arg, int err,
struct comm_reply* ATTR_UNUSED(rep))
{
+ RES res;
struct rc_state* s = (struct rc_state*)arg;
struct daemon_remote* rc = s->rc;
int r;
@@ -3022,38 +3043,16 @@ int remote_control_callback(struct comm_point* c, void* arg, int err,
clean_point(rc, s);
return 0;
}
- /* (continue to) setup the SSL connection */
- ERR_clear_error();
- r = SSL_do_handshake(s->ssl);
- if(r != 1) {
- int r2 = SSL_get_error(s->ssl, r);
- if(r2 == SSL_ERROR_WANT_READ) {
- if(s->shake_state == rc_hs_read) {
- /* try again later */
- return 0;
- }
- s->shake_state = rc_hs_read;
- comm_point_listen_for_rw(c, 1, 0);
- return 0;
- } else if(r2 == SSL_ERROR_WANT_WRITE) {
- if(s->shake_state == rc_hs_write) {
- /* try again later */
- return 0;
- }
- s->shake_state = rc_hs_write;
- comm_point_listen_for_rw(c, 0, 1);
- return 0;
- } else {
- if(r == 0)
- log_err("remote control connection closed prematurely");
- log_addr(1, "failed connection from",
- &s->c->repinfo.addr, s->c->repinfo.addrlen);
- log_crypto_err("remote control failed ssl");
- clean_point(rc, s);
- return 0;
+ if(s->ssl) {
+ /* (continue to) setup the SSL connection */
+ ERR_clear_error();
+ r = SSL_do_handshake(s->ssl);
+ if(r != 1) {
+ int r2 = SSL_get_error(s->ssl, r);
+ return remote_handshake_later(rc, s, c, r, r2);
}
+ s->shake_state = rc_none;
}
- s->shake_state = rc_none;
/* once handshake has completed, check authentication */
if (!rc->use_cert) {
@@ -3076,7 +3075,9 @@ int remote_control_callback(struct comm_point* c, void* arg, int err,
}
/* if OK start to actually handle the request */
- handle_req(rc, s, s->ssl);
+ res.ssl = s->ssl;
+ res.fd = c->fd;
+ handle_req(rc, s, &res);
verbose(VERB_ALGO, "remote control operation completed");
clean_point(rc, s);
diff --git a/daemon/remote.h b/daemon/remote.h
index 190286d474a4..217ea21e80c1 100644
--- a/daemon/remote.h
+++ b/daemon/remote.h
@@ -73,6 +73,8 @@ struct rc_state {
/** the ssl state */
SSL* ssl;
#endif
+ /** file descriptor */
+ int fd;
/** the rc this is part of */
struct daemon_remote* rc;
};
@@ -104,6 +106,19 @@ struct daemon_remote {
};
/**
+ * Connection to print to, either SSL or plain over fd
+ */
+struct remote_stream {
+#ifdef HAVE_SSL
+ /** SSL structure, nonNULL if using SSL */
+ SSL* ssl;
+#endif
+ /** file descriptor for plain transfer */
+ int fd;
+};
+typedef struct remote_stream RES;
+
+/**
* Create new remote control state for the daemon.
* @param cfg: config file with key file settings.
* @return new state, or NULL on failure.
@@ -166,26 +181,26 @@ void daemon_remote_exec(struct worker* worker);
* @param text: the text.
* @return false on connection failure.
*/
-int ssl_print_text(SSL* ssl, const char* text);
+int ssl_print_text(RES* ssl, const char* text);
/**
* printf style printing to the ssl connection
- * @param ssl: the SSL connection to print to. Blocking.
+ * @param ssl: the RES connection to print to. Blocking.
* @param format: printf style format string.
* @return success or false on a network failure.
*/
-int ssl_printf(SSL* ssl, const char* format, ...)
+int ssl_printf(RES* ssl, const char* format, ...)
ATTR_FORMAT(printf, 2, 3);
/**
* Read until \n is encountered
- * If SSL signals EOF, the string up to then is returned (without \n).
- * @param ssl: the SSL connection to read from. blocking.
+ * If stream signals EOF, the string up to then is returned (without \n).
+ * @param ssl: the RES connection to read from. blocking.
* @param buf: buffer to read to.
* @param max: size of buffer.
* @return false on connection failure.
*/
-int ssl_read_line(SSL* ssl, char* buf, size_t max);
+int ssl_read_line(RES* ssl, char* buf, size_t max);
#endif /* HAVE_SSL */
#endif /* DAEMON_REMOTE_H */
diff --git a/doc/Changelog b/doc/Changelog
index 6a09942663f1..3d05ae53a1a5 100644
--- a/doc/Changelog
+++ b/doc/Changelog
@@ -1,6 +1,48 @@
+19 June 2018: Wouter
+ - Fix for unbound-control on Windows and set TCP socket parameters
+ more closely.
+ - Fix windows unbound-control no cert bad file descriptor error.
+
+18 June 2018: Wouter
+ - Fix that control-use-cert: no works for 127.0.0.1 to disable certs.
+ - Fix unbound-checkconf for control-use-cert.
+
+15 June 2018: Wouter
+ - tag for 1.7.3rc1.
+
+14 June 2018: Wouter
+ - #4103: Fix that auth-zone does not insist on SOA record first in
+ file for url downloads.
+ - Fix that first control-interface determines if TLS is used. Warn
+ when IP address interfaces are used without TLS.
+ - Fix nettle compile.
+
+12 June 2018: Ralph
+ - Don't count CNAME response types received during qname minimisation as
+ query restart.
+
+12 June 2018: Wouter
+ - #4102 for NSD, but for Unbound. Named unix pipes do not use
+ certificate and key files, access can be restricted with file and
+ directory permissions. The option control-use-cert is no longer
+ used, and ignored if found in unbound.conf.
+ - Rename tls-additional-ports to tls-additional-port, because every
+ line adds one port.
+ - Fix buffer size warning in unit test.
+ - remade dependencies in the Makefile.
+
+6 June 2018: Wouter
+ - Patch to fix openwrt for mac os build darwin detection in configure.
+
+5 June 2018: Wouter
+ - Fix crash if ratelimit taken into use with unbound-control
+ instead of with unbound.conf.
+
4 June 2018: Wouter
- Fix deadlock caused by incoming notify for auth-zone.
- - tag for 1.7.2rc1
+ - tag for 1.7.2rc1, became 1.7.2 release on 11 June 2018,
+ trunk is 1.7.3 in development from this point.
+ - #4100: Fix stub reprime when it becomes useless.
1 June 2018: Wouter
- Rename additional-tls-port to tls-additional-ports.
diff --git a/doc/README b/doc/README
index 6d3bb8674eba..5bd23fac67be 100644
--- a/doc/README
+++ b/doc/README
@@ -1,4 +1,4 @@
-README for Unbound 1.7.2
+README for Unbound 1.7.3
Copyright 2007 NLnet Labs
http://unbound.net
diff --git a/doc/example.conf.in b/doc/example.conf.in
index 072bd8d21138..be83bdacc21c 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.7.2.
+# See unbound.conf(5) man page, version 1.7.3.
#
# this is a comment.
@@ -686,7 +686,7 @@ server:
# tls-win-cert: no
# Also serve tls on these port numbers (eg. 443, ...), by listing
- # tls-additional-ports: portno for each of the port numbers.
+ # tls-additional-port: portno for each of the port numbers.
# DNS64 prefix. Must be specified when DNS64 is use.
# Enable dns64 in module-config. Used to synthesize IPv6 from IPv4.
@@ -774,18 +774,20 @@ remote-control:
# set up the keys and certificates with unbound-control-setup.
# control-enable: no
- # Set to no and use an absolute path as control-interface to use
- # a unix local named pipe for unbound-control.
- # control-use-cert: yes
-
# what interfaces are listened to for remote control.
# give 0.0.0.0 and ::0 to listen to all interfaces.
+ # set to an absolute path to use a unix local name pipe, certificates
+ # are not used for that, so key and cert files need not be present.
# control-interface: 127.0.0.1
# control-interface: ::1
# port number for remote control operations.
# control-port: 8953
+ # for localhost, you can disable use of TLS by setting this to "no"
+ # For local sockets this option is ignored, and TLS is not used.
+ # control-use-cert: "yes"
+
# unbound server key file.
# server-key-file: "@UNBOUND_RUN_DIR@/unbound_server.key"
diff --git a/doc/libunbound.3.in b/doc/libunbound.3.in
index aac99580d5c3..d4b0efd69a9d 100644
--- a/doc/libunbound.3.in
+++ b/doc/libunbound.3.in
@@ -1,4 +1,4 @@
-.TH "libunbound" "3" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
+.TH "libunbound" "3" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
.\"
.\" libunbound.3 -- unbound library functions manual
.\"
@@ -43,7 +43,7 @@
.B ub_ctx_zone_remove,
.B ub_ctx_data_add,
.B ub_ctx_data_remove
-\- Unbound DNS validating resolver 1.7.2 functions.
+\- Unbound DNS validating resolver 1.7.3 functions.
.SH "SYNOPSIS"
.B #include <unbound.h>
.LP
diff --git a/doc/unbound-anchor.8.in b/doc/unbound-anchor.8.in
index 1b588b851cde..ca7cafa060ab 100644
--- a/doc/unbound-anchor.8.in
+++ b/doc/unbound-anchor.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-anchor" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
+.TH "unbound-anchor" "8" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
.\"
.\" unbound-anchor.8 -- unbound anchor maintenance utility manual
.\"
diff --git a/doc/unbound-checkconf.8.in b/doc/unbound-checkconf.8.in
index 311e48dcee21..9d35e64dbe08 100644
--- a/doc/unbound-checkconf.8.in
+++ b/doc/unbound-checkconf.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-checkconf" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
+.TH "unbound-checkconf" "8" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
.\"
.\" unbound-checkconf.8 -- unbound configuration checker manual
.\"
diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in
index 566a175331c7..f3d9669f8160 100644
--- a/doc/unbound-control.8.in
+++ b/doc/unbound-control.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-control" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
+.TH "unbound-control" "8" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
.\"
.\" unbound-control.8 -- unbound remote control manual
.\"
diff --git a/doc/unbound-host.1.in b/doc/unbound-host.1.in
index 68acc54ba7f6..ea95bd77e071 100644
--- a/doc/unbound-host.1.in
+++ b/doc/unbound-host.1.in
@@ -1,4 +1,4 @@
-.TH "unbound\-host" "1" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
+.TH "unbound\-host" "1" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
.\"
.\" unbound-host.1 -- unbound DNS lookup utility
.\"
diff --git a/doc/unbound.8.in b/doc/unbound.8.in
index 0d27b75a0873..5613ce30b20d 100644
--- a/doc/unbound.8.in
+++ b/doc/unbound.8.in
@@ -1,4 +1,4 @@
-.TH "unbound" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
+.TH "unbound" "8" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
.\"
.\" unbound.8 -- unbound manual
.\"
@@ -9,7 +9,7 @@
.\"
.SH "NAME"
.B unbound
-\- Unbound DNS validating resolver 1.7.2.
+\- Unbound DNS validating resolver 1.7.3.
.SH "SYNOPSIS"
.B unbound
.RB [ \-h ]
diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in
index 9c3892279c3e..9167a5a10def 100644
--- a/doc/unbound.conf.5.in
+++ b/doc/unbound.conf.5.in
@@ -1,4 +1,4 @@
-.TH "unbound.conf" "5" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
+.TH "unbound.conf" "5" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
.\"
.\" unbound.conf.5 -- unbound.conf manual
.\"
@@ -452,8 +452,8 @@ If no cert bundle, it uses only these certificates. Default is no.
On windows this option uses the certificates from the cert store. Use
the tls\-cert\-bundle option on other systems.
.TP
-.B tls\-additional\-ports: \fI<portnr>
-List portnumbers as tls\-additional\-ports, and when interfaces are defined,
+.B tls\-additional\-port: \fI<portnr>
+List portnumbers as tls\-additional\-port, and when interfaces are defined,
eg. with the @port suffix, as this port number, they provide dns over TLS
service. Can list multiple, each on a new statement.
.TP
@@ -1369,6 +1369,14 @@ By default localhost (127.0.0.1 and ::1) is listened to.
Use 0.0.0.0 and ::0 to listen to all interfaces.
If you change this and permissions have been dropped, you must restart
the server for the change to take effect.
+.IP
+If you set it to an absolute path, a local socket is used. The local socket
+does not use the certificates and keys, so those files need not be present.
+To restrict access, unbound sets permissions on the file to the user and
+group that is configured, the access bits are set to allow the group members
+to access the control socket file. Put users that need to access the socket
+in the that group. To restrict access further, create a directory to put
+the control socket in and restrict access to that directory.
.TP 5
.B control\-port: \fI<port number>
The port number to listen on for IPv4 or IPv6 control interfaces,
@@ -1377,11 +1385,9 @@ If you change this and permissions have been dropped, you must restart
the server for the change to take effect.
.TP 5
.B control\-use\-cert: \fI<yes or no>
-Whether to require certificate authentication of control connections.
-The default is "yes".
-This should not be changed unless there are other mechanisms in place
-to prevent untrusted users from accessing the remote control
-interface.
+For localhost control-interface you can disable the use of TLS by setting
+this option to "no", default is "yes". For local sockets, TLS is disabled
+and the value of this option is ignored.
.TP 5
.B server\-key\-file: \fI<private key file>
Path to the server private key, by default unbound_server.key.
diff --git a/iterator/iterator.c b/iterator/iterator.c
index 188a623a2bc7..58a9bff6634c 100644
--- a/iterator/iterator.c
+++ b/iterator/iterator.c
@@ -536,7 +536,7 @@ handle_cname_response(struct module_qstate* qstate, struct iter_qstate* iq,
/** see if last resort is possible - does config allow queries to parent */
static int
can_have_last_resort(struct module_env* env, uint8_t* nm, size_t nmlen,
- uint16_t qclass)
+ uint16_t qclass, struct delegpt** retdp)
{
struct delegpt* fwddp;
struct iter_hints_stub* stub;
@@ -549,12 +549,14 @@ can_have_last_resort(struct module_env* env, uint8_t* nm, size_t nmlen,
/* has_parent side is turned off for stub_first, where we
* are allowed to go to the parent */
stub->dp->has_parent_side_NS) {
+ if(retdp) *retdp = stub->dp;
return 0;
}
if((fwddp = forwards_find(env->fwds, nm, qclass)) &&
/* has_parent_side is turned off for forward_first, where
* we are allowed to go to the parent */
fwddp->has_parent_side_NS) {
+ if(retdp) *retdp = fwddp;
return 0;
}
return 1;
@@ -1000,7 +1002,7 @@ generate_ns_check(struct module_qstate* qstate, struct iter_qstate* iq, int id)
if(iq->depth == ie->max_dependency_depth)
return;
if(!can_have_last_resort(qstate->env, iq->dp->name, iq->dp->namelen,
- iq->qchase.qclass))
+ iq->qchase.qclass, NULL))
return;
/* is this query the same as the nscheck? */
if(qstate->qinfo.qtype == LDNS_RR_TYPE_NS &&
@@ -1184,10 +1186,8 @@ processInitRequest(struct module_qstate* qstate, struct iter_qstate* iq,
*/
if (iq->refetch_glue &&
iq->dp &&
- !can_have_last_resort(qstate->env,
- iq->dp->name,
- iq->dp->namelen,
- iq->qchase.qclass)) {
+ !can_have_last_resort(qstate->env, iq->dp->name,
+ iq->dp->namelen, iq->qchase.qclass, NULL)) {
iq->refetch_glue = 0;
}
@@ -1300,7 +1300,7 @@ processInitRequest(struct module_qstate* qstate, struct iter_qstate* iq,
}
if(iq->qchase.qtype == LDNS_RR_TYPE_DS || iq->refetch_glue ||
(iq->qchase.qtype == LDNS_RR_TYPE_NS && qstate->prefetch_leeway
- && can_have_last_resort(qstate->env, delname, delnamelen, iq->qchase.qclass))) {
+ && can_have_last_resort(qstate->env, delname, delnamelen, iq->qchase.qclass, NULL))) {
/* remove first label from delname, root goes to hints,
* but only to fetch glue, not for qtype=DS. */
/* also when prefetching an NS record, fetch it again from
@@ -1416,9 +1416,25 @@ processInitRequest(struct module_qstate* qstate, struct iter_qstate* iq,
*/
if(iter_dp_is_useless(&qstate->qinfo, qstate->query_flags,
iq->dp)) {
- if(!can_have_last_resort(qstate->env, iq->dp->name, iq->dp->namelen, iq->qchase.qclass)) {
+ struct delegpt* retdp = NULL;
+ if(!can_have_last_resort(qstate->env, iq->dp->name, iq->dp->namelen, iq->qchase.qclass, &retdp)) {
+ if(retdp) {
+ verbose(VERB_QUERY, "cache has stub "
+ "or fwd but no addresses, "
+ "fallback to config");
+ iq->dp = delegpt_copy(retdp,
+ qstate->region);
+ if(!iq->dp) {
+ log_err("out of memory in "
+ "stub/fwd fallback");
+ return error_response(qstate,
+ id, LDNS_RCODE_SERVFAIL);
+ }
+ break;
+ }
verbose(VERB_ALGO, "useless dp "
"but cannot go up, servfail");
+ delegpt_log(VERB_ALGO, iq->dp);
return error_response(qstate, id,
LDNS_RCODE_SERVFAIL);
}
@@ -1779,7 +1795,7 @@ processLastResort(struct module_qstate* qstate, struct iter_qstate* iq,
log_assert(iq->dp);
if(!can_have_last_resort(qstate->env, iq->dp->name, iq->dp->namelen,
- iq->qchase.qclass)) {
+ iq->qchase.qclass, NULL)) {
/* fail -- no more targets, no more hope of targets, no hope
* of a response. */
verbose(VERB_QUERY, "configured stub or forward servers failed -- returning SERVFAIL");
@@ -1872,7 +1888,7 @@ processLastResort(struct module_qstate* qstate, struct iter_qstate* iq,
if( ((ie->supports_ipv6 && !ns->done_pside6) ||
(ie->supports_ipv4 && !ns->done_pside4)) &&
!can_have_last_resort(qstate->env, ns->name, ns->namelen,
- iq->qchase.qclass)) {
+ iq->qchase.qclass, NULL)) {
log_nametypeclass(VERB_ALGO, "cannot pside lookup ns "
"because it is also a stub/forward,",
ns->name, LDNS_RR_TYPE_NS, iq->qchase.qclass);
@@ -2754,16 +2770,18 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
/* set the current request's qname to the new value. */
iq->qchase.qname = sname;
iq->qchase.qname_len = snamelen;
- if (qstate->env->cfg->qname_minimisation)
- iq->minimisation_state = INIT_MINIMISE_STATE;
/* Clear the query state, since this is a query restart. */
iq->deleg_msg = NULL;
iq->dp = NULL;
iq->dsns_point = NULL;
iq->auth_zone_response = 0;
- /* Note the query restart. */
- iq->query_restart_count++;
iq->sent_count = 0;
+ if(iq->minimisation_state != MINIMISE_STATE)
+ /* Only count as query restart when it is not an extra
+ * query as result of qname minimisation. */
+ iq->query_restart_count++;
+ if(qstate->env->cfg->qname_minimisation)
+ iq->minimisation_state = INIT_MINIMISE_STATE;
/* stop current outstanding queries.
* FIXME: should the outstanding queries be waited for and
diff --git a/pythonmod/interface.i b/pythonmod/interface.i
index 72e6d99c7cf2..df06d1064b04 100644
--- a/pythonmod/interface.i
+++ b/pythonmod/interface.i
@@ -883,7 +883,7 @@ struct config_file {
struct config_strlist* local_zones_nodefault;
struct config_strlist* local_data;
int remote_control_enable;
- struct config_strlist* control_ifs;
+ struct config_strlist_head control_ifs;
int control_port;
char* server_key_file;
char* server_cert_file;
diff --git a/services/authzone.c b/services/authzone.c
index 7ec280bafd92..f1ca2a2b0552 100644
--- a/services/authzone.c
+++ b/services/authzone.c
@@ -4164,8 +4164,8 @@ chunkline_non_comment_RR(struct auth_chunk** chunk, size_t* chunk_pos,
return 0;
}
-/** check syntax of chunklist zonefile, parse SOA RR, return false on
- * failure and return a string in the scratch buffer (SOA RR string)
+/** check syntax of chunklist zonefile, parse first RR, return false on
+ * failure and return a string in the scratch buffer (first RR string)
* on failure. */
static int
http_zonefile_syntax_check(struct auth_xfer* xfr, sldns_buffer* buf)
@@ -4193,26 +4193,11 @@ http_zonefile_syntax_check(struct auth_xfer* xfr, sldns_buffer* buf)
pstate.origin_len?pstate.origin:NULL, pstate.origin_len,
pstate.prev_rr_len?pstate.prev_rr:NULL, pstate.prev_rr_len);
if(e != 0) {
- log_err("parse failure on SOA RR[%d]: %s",
+ log_err("parse failure on first RR[%d]: %s",
LDNS_WIREPARSE_OFFSET(e),
sldns_get_errorstr_parse(LDNS_WIREPARSE_ERROR(e)));
return 0;
}
- /* check that name is correct */
- if(query_dname_compare(rr, xfr->name) != 0) {
- char nm[255+1], zname[255+1];
- dname_str(rr, nm);
- dname_str(xfr->name, zname);
- log_err("parse failure for %s, SOA RR for %s found instead",
- zname, nm);
- return 0;
- }
- /* check that type is SOA */
- if(sldns_wirerr_get_type(rr, rr_len, dname_len) != LDNS_RR_TYPE_SOA) {
- log_err("parse failure: first record in downloaded zonefile "
- "not of type SOA");
- return 0;
- }
/* check that class is correct */
if(sldns_wirerr_get_class(rr, rr_len, dname_len) != xfr->dclass) {
log_err("parse failure: first record in downloaded zonefile "
diff --git a/services/cache/infra.c b/services/cache/infra.c
index 734b7969e7a2..f4320306daa2 100644
--- a/services/cache/infra.c
+++ b/services/cache/infra.c
@@ -232,22 +232,20 @@ infra_create(struct config_file* cfg)
infra->host_ttl = cfg->host_ttl;
name_tree_init(&infra->domain_limits);
infra_dp_ratelimit = cfg->ratelimit;
- if(cfg->ratelimit != 0) {
- infra->domain_rates = slabhash_create(cfg->ratelimit_slabs,
- INFRA_HOST_STARTSIZE, cfg->ratelimit_size,
- &rate_sizefunc, &rate_compfunc, &rate_delkeyfunc,
- &rate_deldatafunc, NULL);
- if(!infra->domain_rates) {
- infra_delete(infra);
- return NULL;
- }
- /* insert config data into ratelimits */
- if(!infra_ratelimit_cfg_insert(infra, cfg)) {
- infra_delete(infra);
- return NULL;
- }
- name_tree_init_parents(&infra->domain_limits);
+ infra->domain_rates = slabhash_create(cfg->ratelimit_slabs,
+ INFRA_HOST_STARTSIZE, cfg->ratelimit_size,
+ &rate_sizefunc, &rate_compfunc, &rate_delkeyfunc,
+ &rate_deldatafunc, NULL);
+ if(!infra->domain_rates) {
+ infra_delete(infra);
+ return NULL;
+ }
+ /* insert config data into ratelimits */
+ if(!infra_ratelimit_cfg_insert(infra, cfg)) {
+ infra_delete(infra);
+ return NULL;
}
+ name_tree_init_parents(&infra->domain_limits);
infra_ip_ratelimit = cfg->ip_ratelimit;
infra->client_ip_rates = slabhash_create(cfg->ip_ratelimit_slabs,
INFRA_HOST_STARTSIZE, cfg->ip_ratelimit_size, &ip_rate_sizefunc,
diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c
index a6922888aa49..248cad3665b0 100644
--- a/services/listen_dnsport.c
+++ b/services/listen_dnsport.c
@@ -1059,7 +1059,7 @@ set_recvpktinfo(int s, int family)
/** see if interface is ssl, its port number == the ssl port number */
static int
if_is_ssl(const char* ifname, const char* port, int ssl_port,
- struct config_strlist* tls_additional_ports)
+ struct config_strlist* tls_additional_port)
{
struct config_strlist* s;
char* p = strchr(ifname, '@');
@@ -1067,7 +1067,7 @@ if_is_ssl(const char* ifname, const char* port, int ssl_port,
return 1;
if(p && atoi(p+1) == ssl_port)
return 1;
- for(s = tls_additional_ports; s; s = s->next) {
+ for(s = tls_additional_port; s; s = s->next) {
if(p && atoi(p+1) == atoi(s->str))
return 1;
if(!p && atoi(port) == atoi(s->str))
@@ -1089,7 +1089,7 @@ if_is_ssl(const char* ifname, const char* port, int ssl_port,
* @param rcv: receive buffer size for UDP
* @param snd: send buffer size for UDP
* @param ssl_port: ssl service port number
- * @param tls_additional_ports: list of additional ssl service port numbers.
+ * @param tls_additional_port: list of additional ssl service port numbers.
* @param reuseport: try to set SO_REUSEPORT if nonNULL and true.
* set to false on exit if reuseport failed due to no kernel support.
* @param transparent: set IP_TRANSPARENT socket option.
@@ -1103,7 +1103,7 @@ static int
ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
struct addrinfo *hints, const char* port, struct listen_port** list,
size_t rcv, size_t snd, int ssl_port,
- struct config_strlist* tls_additional_ports, int* reuseport,
+ struct config_strlist* tls_additional_port, int* reuseport,
int transparent, int tcp_mss, int freebind, int use_systemd,
int dnscrypt_port)
{
@@ -1170,7 +1170,7 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
}
if(do_tcp) {
int is_ssl = if_is_ssl(ifname, port, ssl_port,
- tls_additional_ports);
+ tls_additional_port);
if((s = make_sock_port(SOCK_STREAM, ifname, port, hints, 1,
&noip6, 0, 0, reuseport, transparent, tcp_mss,
freebind, use_systemd)) == -1) {
@@ -1356,7 +1356,7 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
do_auto, cfg->do_udp, do_tcp,
&hints, portbuf, &list,
cfg->so_rcvbuf, cfg->so_sndbuf,
- cfg->ssl_port, cfg->tls_additional_ports,
+ cfg->ssl_port, cfg->tls_additional_port,
reuseport, cfg->ip_transparent,
cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
cfg->dnscrypt_port)) {
@@ -1370,7 +1370,7 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
do_auto, cfg->do_udp, do_tcp,
&hints, portbuf, &list,
cfg->so_rcvbuf, cfg->so_sndbuf,
- cfg->ssl_port, cfg->tls_additional_ports,
+ cfg->ssl_port, cfg->tls_additional_port,
reuseport, cfg->ip_transparent,
cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
cfg->dnscrypt_port)) {
@@ -1386,7 +1386,7 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
if(!ports_create_if(cfg->ifs[i], 0, cfg->do_udp,
do_tcp, &hints, portbuf, &list,
cfg->so_rcvbuf, cfg->so_sndbuf,
- cfg->ssl_port, cfg->tls_additional_ports,
+ cfg->ssl_port, cfg->tls_additional_port,
reuseport, cfg->ip_transparent,
cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
cfg->dnscrypt_port)) {
@@ -1400,7 +1400,7 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
if(!ports_create_if(cfg->ifs[i], 0, cfg->do_udp,
do_tcp, &hints, portbuf, &list,
cfg->so_rcvbuf, cfg->so_sndbuf,
- cfg->ssl_port, cfg->tls_additional_ports,
+ cfg->ssl_port, cfg->tls_additional_port,
reuseport, cfg->ip_transparent,
cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
cfg->dnscrypt_port)) {
diff --git a/smallapp/unbound-checkconf.c b/smallapp/unbound-checkconf.c
index e205c3e9c49c..37ba9eab31a1 100644
--- a/smallapp/unbound-checkconf.c
+++ b/smallapp/unbound-checkconf.c
@@ -542,7 +542,8 @@ morechecks(struct config_file* cfg, const char* fname)
# endif
}
#endif
- if(cfg->remote_control_enable && cfg->remote_control_use_cert) {
+ if(cfg->remote_control_enable && options_remote_is_address(cfg)
+ && cfg->control_use_cert) {
check_chroot_string("server-key-file", &cfg->server_key_file,
cfg->chrootdir, cfg);
check_chroot_string("server-cert-file", &cfg->server_cert_file,
diff --git a/smallapp/unbound-control.c b/smallapp/unbound-control.c
index 2337e7a73728..d16541779190 100644
--- a/smallapp/unbound-control.c
+++ b/smallapp/unbound-control.c
@@ -451,47 +451,33 @@ setup_ctx(struct config_file* cfg)
char* s_cert=NULL, *c_key=NULL, *c_cert=NULL;
SSL_CTX* ctx;
- if(cfg->remote_control_use_cert) {
- s_cert = fname_after_chroot(cfg->server_cert_file, cfg, 1);
- c_key = fname_after_chroot(cfg->control_key_file, cfg, 1);
- c_cert = fname_after_chroot(cfg->control_cert_file, cfg, 1);
- if(!s_cert || !c_key || !c_cert)
- fatal_exit("out of memory");
- }
+ if(!(options_remote_is_address(cfg) && cfg->control_use_cert))
+ return NULL;
+ s_cert = fname_after_chroot(cfg->server_cert_file, cfg, 1);
+ c_key = fname_after_chroot(cfg->control_key_file, cfg, 1);
+ c_cert = fname_after_chroot(cfg->control_cert_file, cfg, 1);
+ if(!s_cert || !c_key || !c_cert)
+ fatal_exit("out of memory");
ctx = SSL_CTX_new(SSLv23_client_method());
if(!ctx)
ssl_err("could not allocate SSL_CTX pointer");
if((SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2) & SSL_OP_NO_SSLv2)
!= SSL_OP_NO_SSLv2)
ssl_err("could not set SSL_OP_NO_SSLv2");
- if(cfg->remote_control_use_cert) {
- if((SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv3) & SSL_OP_NO_SSLv3)
- != SSL_OP_NO_SSLv3)
- ssl_err("could not set SSL_OP_NO_SSLv3");
- if(!SSL_CTX_use_certificate_chain_file(ctx,c_cert) ||
- !SSL_CTX_use_PrivateKey_file(ctx,c_key,SSL_FILETYPE_PEM)
- || !SSL_CTX_check_private_key(ctx))
- ssl_err("Error setting up SSL_CTX client key and cert");
- if (SSL_CTX_load_verify_locations(ctx, s_cert, NULL) != 1)
- ssl_err("Error setting up SSL_CTX verify, server cert");
- SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
-
- free(s_cert);
- free(c_key);
- free(c_cert);
- } else {
- /* Use ciphers that don't require authentication */
-#if defined(SSL_OP_NO_TLSv1_3)
- /* in openssl 1.1.1, negotiation code for tls 1.3 does
- * not allow the unauthenticated aNULL and eNULL ciphers */
- SSL_CTX_set_options(ctx, SSL_OP_NO_TLSv1_3);
-#endif
-#ifdef HAVE_SSL_CTX_SET_SECURITY_LEVEL
- SSL_CTX_set_security_level(ctx, 0);
-#endif
- if(!SSL_CTX_set_cipher_list(ctx, "aNULL:eNULL"))
- ssl_err("Error setting NULL cipher!");
- }
+ if((SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv3) & SSL_OP_NO_SSLv3)
+ != SSL_OP_NO_SSLv3)
+ ssl_err("could not set SSL_OP_NO_SSLv3");
+ if(!SSL_CTX_use_certificate_chain_file(ctx,c_cert) ||
+ !SSL_CTX_use_PrivateKey_file(ctx,c_key,SSL_FILETYPE_PEM)
+ || !SSL_CTX_check_private_key(ctx))
+ ssl_err("Error setting up SSL_CTX client key and cert");
+ if (SSL_CTX_load_verify_locations(ctx, s_cert, NULL) != 1)
+ ssl_err("Error setting up SSL_CTX verify, server cert");
+ SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
+
+ free(s_cert);
+ free(c_key);
+ free(c_cert);
return ctx;
}
@@ -501,12 +487,12 @@ contact_server(const char* svr, struct config_file* cfg, int statuscmd)
{
struct sockaddr_storage addr;
socklen_t addrlen;
- int addrfamily = 0;
- int fd;
+ int addrfamily = 0, proto = IPPROTO_TCP;
+ int fd, useport = 1;
/* use svr or the first config entry */
if(!svr) {
- if(cfg->control_ifs) {
- svr = cfg->control_ifs->str;
+ if(cfg->control_ifs.first) {
+ svr = cfg->control_ifs.first->str;
} else if(cfg->do_ip4) {
svr = "127.0.0.1";
} else {
@@ -534,6 +520,8 @@ contact_server(const char* svr, struct config_file* cfg, int statuscmd)
(void)strlcpy(usock->sun_path, svr, sizeof(usock->sun_path));
addrlen = (socklen_t)sizeof(struct sockaddr_un);
addrfamily = AF_LOCAL;
+ useport = 0;
+ proto = 0;
#endif
} else {
if(!ipstrtoaddr(svr, cfg->control_port, &addr, &addrlen))
@@ -541,8 +529,8 @@ contact_server(const char* svr, struct config_file* cfg, int statuscmd)
}
if(addrfamily == 0)
- addrfamily = addr_is_ip6(&addr, addrlen)?AF_INET6:AF_INET;
- fd = socket(addrfamily, SOCK_STREAM, 0);
+ addrfamily = addr_is_ip6(&addr, addrlen)?PF_INET6:PF_INET;
+ fd = socket(addrfamily, SOCK_STREAM, proto);
if(fd == -1) {
#ifndef USE_WINSOCK
fatal_exit("socket: %s", strerror(errno));
@@ -552,14 +540,18 @@ contact_server(const char* svr, struct config_file* cfg, int statuscmd)
}
if(connect(fd, (struct sockaddr*)&addr, addrlen) < 0) {
#ifndef USE_WINSOCK
- log_err_addr("connect", strerror(errno), &addr, addrlen);
- if(errno == ECONNREFUSED && statuscmd) {
+ int err = errno;
+ if(!useport) log_err("connect: %s for %s", strerror(err), svr);
+ else log_err_addr("connect", strerror(err), &addr, addrlen);
+ if(err == ECONNREFUSED && statuscmd) {
printf("unbound is stopped\n");
exit(3);
}
#else
- log_err_addr("connect", wsa_strerror(WSAGetLastError()), &addr, addrlen);
- if(WSAGetLastError() == WSAECONNREFUSED && statuscmd) {
+ int wsaerr = WSAGetLastError();
+ if(!useport) log_err("connect: %s for %s", wsa_strerror(wsaerr), svr);
+ else log_err_addr("connect", wsa_strerror(wsaerr), &addr, addrlen);
+ if(wsaerr == WSAECONNREFUSED && statuscmd) {
printf("unbound is stopped\n");
exit(3);
}
@@ -571,12 +563,13 @@ contact_server(const char* svr, struct config_file* cfg, int statuscmd)
/** setup SSL on the connection */
static SSL*
-setup_ssl(SSL_CTX* ctx, int fd, struct config_file* cfg)
+setup_ssl(SSL_CTX* ctx, int fd)
{
SSL* ssl;
X509* x;
int r;
+ if(!ctx) return NULL;
ssl = SSL_new(ctx);
if(!ssl)
ssl_err("could not SSL_new");
@@ -597,78 +590,115 @@ setup_ssl(SSL_CTX* ctx, int fd, struct config_file* cfg)
/* check authenticity of server */
if(SSL_get_verify_result(ssl) != X509_V_OK)
ssl_err("SSL verification failed");
- if(cfg->remote_control_use_cert) {
- x = SSL_get_peer_certificate(ssl);
- if(!x)
- ssl_err("Server presented no peer certificate");
- X509_free(x);
- }
+ x = SSL_get_peer_certificate(ssl);
+ if(!x)
+ ssl_err("Server presented no peer certificate");
+ X509_free(x);
return ssl;
}
+/** read from ssl or fd, fatalexit on error, 0 EOF, 1 success */
+static int
+remote_read(SSL* ssl, int fd, char* buf, size_t len)
+{
+ if(ssl) {
+ int r;
+ ERR_clear_error();
+ if((r = SSL_read(ssl, buf, (int)len-1)) <= 0) {
+ if(SSL_get_error(ssl, r) == SSL_ERROR_ZERO_RETURN) {
+ /* EOF */
+ return 0;
+ }
+ ssl_err("could not SSL_read");
+ }
+ buf[r] = 0;
+ } else {
+ ssize_t rr = recv(fd, buf, len-1, 0);
+ if(rr <= 0) {
+ if(rr == 0) {
+ /* EOF */
+ return 0;
+ }
+#ifndef USE_WINSOCK
+ fatal_exit("could not recv: %s", strerror(errno));
+#else
+ fatal_exit("could not recv: %s", wsa_strerror(WSAGetLastError()));
+#endif
+ }
+ buf[rr] = 0;
+ }
+ return 1;
+}
+
+/** write to ssl or fd, fatalexit on error */
+static void
+remote_write(SSL* ssl, int fd, const char* buf, size_t len)
+{
+ if(ssl) {
+ if(SSL_write(ssl, buf, (int)len) <= 0)
+ ssl_err("could not SSL_write");
+ } else {
+ if(send(fd, buf, len, 0) < (ssize_t)len) {
+#ifndef USE_WINSOCK
+ fatal_exit("could not send: %s", strerror(errno));
+#else
+ fatal_exit("could not send: %s", wsa_strerror(WSAGetLastError()));
+#endif
+ }
+ }
+}
+
/** send stdin to server */
static void
-send_file(SSL* ssl, FILE* in, char* buf, size_t sz)
+send_file(SSL* ssl, int fd, FILE* in, char* buf, size_t sz)
{
while(fgets(buf, (int)sz, in)) {
- if(SSL_write(ssl, buf, (int)strlen(buf)) <= 0)
- ssl_err("could not SSL_write contents");
+ remote_write(ssl, fd, buf, strlen(buf));
}
}
/** send end-of-file marker to server */
static void
-send_eof(SSL* ssl)
+send_eof(SSL* ssl, int fd)
{
char e[] = {0x04, 0x0a};
- if(SSL_write(ssl, e, (int)sizeof(e)) <= 0)
- ssl_err("could not SSL_write end-of-file marker");
+ remote_write(ssl, fd, e, sizeof(e));
}
/** send command and display result */
static int
-go_cmd(SSL* ssl, int quiet, int argc, char* argv[])
+go_cmd(SSL* ssl, int fd, int quiet, int argc, char* argv[])
{
char pre[10];
const char* space=" ";
const char* newline="\n";
int was_error = 0, first_line = 1;
- int r, i;
+ int i;
char buf[1024];
snprintf(pre, sizeof(pre), "UBCT%d ", UNBOUND_CONTROL_VERSION);
- if(SSL_write(ssl, pre, (int)strlen(pre)) <= 0)
- ssl_err("could not SSL_write");
+ remote_write(ssl, fd, pre, strlen(pre));
for(i=0; i<argc; i++) {
- if(SSL_write(ssl, space, (int)strlen(space)) <= 0)
- ssl_err("could not SSL_write");
- if(SSL_write(ssl, argv[i], (int)strlen(argv[i])) <= 0)
- ssl_err("could not SSL_write");
+ remote_write(ssl, fd, space, strlen(space));
+ remote_write(ssl, fd, argv[i], strlen(argv[i]));
}
- if(SSL_write(ssl, newline, (int)strlen(newline)) <= 0)
- ssl_err("could not SSL_write");
+ remote_write(ssl, fd, newline, strlen(newline));
if(argc == 1 && strcmp(argv[0], "load_cache") == 0) {
- send_file(ssl, stdin, buf, sizeof(buf));
+ send_file(ssl, fd, stdin, buf, sizeof(buf));
}
else if(argc == 1 && (strcmp(argv[0], "local_zones") == 0 ||
strcmp(argv[0], "local_zones_remove") == 0 ||
strcmp(argv[0], "local_datas") == 0 ||
strcmp(argv[0], "local_datas_remove") == 0)) {
- send_file(ssl, stdin, buf, sizeof(buf));
- send_eof(ssl);
+ send_file(ssl, fd, stdin, buf, sizeof(buf));
+ send_eof(ssl, fd);
}
while(1) {
- ERR_clear_error();
- if((r = SSL_read(ssl, buf, (int)sizeof(buf)-1)) <= 0) {
- if(SSL_get_error(ssl, r) == SSL_ERROR_ZERO_RETURN) {
- /* EOF */
- break;
- }
- ssl_err("could not SSL_read");
+ if(remote_read(ssl, fd, buf, sizeof(buf)) == 0) {
+ break; /* EOF */
}
- buf[r] = 0;
if(first_line && strncmp(buf, "error", 5) == 0) {
printf("%s", buf);
was_error = 1;
@@ -703,18 +733,18 @@ go(const char* cfgfile, char* svr, int quiet, int argc, char* argv[])
/* contact server */
fd = contact_server(svr, cfg, argc>0&&strcmp(argv[0],"status")==0);
- ssl = setup_ssl(ctx, fd, cfg);
+ ssl = setup_ssl(ctx, fd);
/* send command */
- ret = go_cmd(ssl, quiet, argc, argv);
+ ret = go_cmd(ssl, fd, quiet, argc, argv);
- SSL_free(ssl);
+ if(ssl) SSL_free(ssl);
#ifndef USE_WINSOCK
close(fd);
#else
closesocket(fd);
#endif
- SSL_CTX_free(ctx);
+ if(ctx) SSL_CTX_free(ctx);
config_delete(cfg);
return ret;
}
diff --git a/testcode/unitneg.c b/testcode/unitneg.c
index 2b67df18232f..4cd9b306c72e 100644
--- a/testcode/unitneg.c
+++ b/testcode/unitneg.c
@@ -94,7 +94,7 @@ static void print_neg_cache(struct val_neg_cache* neg)
/** get static pointer to random zone name */
static char* get_random_zone(void)
{
- static char zname[256];
+ static char zname[36];
int labels = random() % 3;
int i;
char* p = zname;
@@ -102,10 +102,10 @@ static char* get_random_zone(void)
for(i=0; i<labels; i++) {
labnum = random()%10;
- snprintf(p, 256-(p-zname), "\003%3.3d", labnum);
+ snprintf(p, sizeof(zname)-(p-zname), "\003%3.3d", labnum);
p+=4;
}
- snprintf(p, 256-(p-zname), "\007example\003com");
+ snprintf(p, sizeof(zname)-(p-zname), "\007example\003com");
return zname;
}
diff --git a/testdata/fwd_oneport.tdir/fwd_oneport.pre b/testdata/fwd_oneport.tdir/fwd_oneport.pre
index eeb5238a9334..73c35489887c 100644
--- a/testdata/fwd_oneport.tdir/fwd_oneport.pre
+++ b/testdata/fwd_oneport.tdir/fwd_oneport.pre
@@ -28,4 +28,4 @@ echo "UNBOUND_PID=$UNBOUND_PID" >> .tpkg.var.test
cat .tpkg.var.test
wait_ldns_testns_up fwd.log
wait_unbound_up unbound.log
-
+sleep 2
diff --git a/testdata/fwd_oneport.tdir/fwd_oneport.test b/testdata/fwd_oneport.tdir/fwd_oneport.test
index f6dfcea91f71..59d5b016308e 100644
--- a/testdata/fwd_oneport.tdir/fwd_oneport.test
+++ b/testdata/fwd_oneport.tdir/fwd_oneport.test
@@ -36,7 +36,7 @@ dig @localhost -p $UNBOUND_PORT www5.example.com. >outfile5 &
digpid5=$!
dig @localhost -p $UNBOUND_PORT www6.example.com. >outfile6 &
digpid6=$!
-sleep 6
+sleep 12
kill -9 $digpid1
kill -9 $digpid2
kill -9 $digpid3
diff --git a/util/config_file.c b/util/config_file.c
index b76ed56fc209..b06176053c60 100644
--- a/util/config_file.c
+++ b/util/config_file.c
@@ -244,9 +244,10 @@ config_create(void)
cfg->insecure_lan_zones = 0;
cfg->python_script = NULL;
cfg->remote_control_enable = 0;
- cfg->control_ifs = NULL;
+ cfg->control_ifs.first = NULL;
+ cfg->control_ifs.last = NULL;
cfg->control_port = UNBOUND_CONTROL_PORT;
- cfg->remote_control_use_cert = 1;
+ cfg->control_use_cert = 1;
cfg->minimal_responses = 0;
cfg->rrset_roundrobin = 0;
cfg->max_udp_size = 4096;
@@ -386,6 +387,9 @@ struct config_file* config_create_forlib(void)
#define S_STRLIST_UNIQ(str, var) if(strcmp(opt, str)==0) \
{ if(cfg_strlist_find(cfg->var, val)) { return 0;} \
return cfg_strlist_insert(&cfg->var, strdup(val)); }
+/** append string to strlist */
+#define S_STRLIST_APPEND(str, var) if(strcmp(opt, str)==0) \
+ { return cfg_strlist_append(&cfg->var, strdup(val)); }
int config_set_option(struct config_file* cfg, const char* opt,
const char* val)
@@ -457,8 +461,9 @@ int config_set_option(struct config_file* cfg, const char* opt,
else S_NUMBER_NONZERO("ssl-port:", ssl_port)
else S_STR("tls-cert-bundle:", tls_cert_bundle)
else S_YNO("tls-win-cert:", tls_win_cert)
- else S_STRLIST("additional-tls-port:", tls_additional_ports)
- else S_STRLIST("tls-additional-ports:", tls_additional_ports)
+ else S_STRLIST("additional-tls-port:", tls_additional_port)
+ else S_STRLIST("tls-additional-ports:", tls_additional_port)
+ else S_STRLIST("tls-additional-port:", tls_additional_port)
else S_YNO("interface-automatic:", if_automatic)
else S_YNO("use-systemd:", use_systemd)
else S_YNO("do-daemonize:", do_daemonize)
@@ -555,7 +560,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
else S_YNO("unblock-lan-zones:", unblock_lan_zones)
else S_YNO("insecure-lan-zones:", insecure_lan_zones)
else S_YNO("control-enable:", remote_control_enable)
- else S_STRLIST("control-interface:", control_ifs)
+ else S_STRLIST_APPEND("control-interface:", control_ifs)
else S_NUMBER_NONZERO("control-port:", control_port)
else S_STR("server-key-file:", server_key_file)
else S_STR("server-cert-file:", server_cert_file)
@@ -879,7 +884,7 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_DEC(opt, "ssl-port", ssl_port)
else O_STR(opt, "tls-cert-bundle", tls_cert_bundle)
else O_YNO(opt, "tls-win-cert", tls_win_cert)
- else O_LST(opt, "tls-additional-ports", tls_additional_ports)
+ else O_LST(opt, "tls-additional-port", tls_additional_port)
else O_YNO(opt, "use-systemd", use_systemd)
else O_YNO(opt, "do-daemonize", do_daemonize)
else O_STR(opt, "chroot", chrootdir)
@@ -941,7 +946,7 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_YNO(opt, "trust-anchor-signaling", trust_anchor_signaling)
else O_YNO(opt, "root-key-sentinel", root_key_sentinel)
else O_LST(opt, "dlv-anchor", dlv_anchor_list)
- else O_LST(opt, "control-interface", control_ifs)
+ else O_LST(opt, "control-interface", control_ifs.first)
else O_LST(opt, "domain-insecure", domain_insecure)
else O_UNS(opt, "val-override-date", val_date_override)
else O_YNO(opt, "minimal-responses", minimal_responses)
@@ -1303,7 +1308,7 @@ config_delete(struct config_file* cfg)
free(cfg->ssl_service_key);
free(cfg->ssl_service_pem);
free(cfg->tls_cert_bundle);
- config_delstrlist(cfg->tls_additional_ports);
+ config_delstrlist(cfg->tls_additional_port);
free(cfg->log_identity);
config_del_strarray(cfg->ifs, cfg->num_ifs);
config_del_strarray(cfg->out_ifs, cfg->num_out_ifs);
@@ -1344,7 +1349,7 @@ config_delete(struct config_file* cfg)
config_del_strbytelist(cfg->respip_tags);
config_deltrplstrlist(cfg->acl_tag_actions);
config_deltrplstrlist(cfg->acl_tag_datas);
- config_delstrlist(cfg->control_ifs);
+ config_delstrlist(cfg->control_ifs.first);
free(cfg->server_key_file);
free(cfg->server_cert_file);
free(cfg->control_key_file);
@@ -2264,3 +2269,12 @@ void errinf_dname(struct module_qstate* qstate, const char* str, uint8_t* dname)
snprintf(b, sizeof(b), "%s %s", str, buf);
errinf(qstate, b);
}
+
+int options_remote_is_address(struct config_file* cfg)
+{
+ if(!cfg->remote_control_enable) return 0;
+ if(!cfg->control_ifs.first) return 1;
+ if(!cfg->control_ifs.first->str) return 1;
+ if(cfg->control_ifs.first->str[0] == 0) return 1;
+ return (cfg->control_ifs.first->str[0] != '/');
+}
diff --git a/util/config_file.h b/util/config_file.h
index 548cc33e908f..4206eb9a2a51 100644
--- a/util/config_file.h
+++ b/util/config_file.h
@@ -53,6 +53,14 @@ struct sock_list;
struct ub_packed_rrset_key;
struct regional;
+/** List head for strlist processing, used for append operation. */
+struct config_strlist_head {
+ /** first in list of text items */
+ struct config_strlist* first;
+ /** last in list of text items */
+ struct config_strlist* last;
+};
+
/**
* The configuration options.
* Strings are malloced.
@@ -105,7 +113,7 @@ struct config_file {
/** should the system certificate store get added to the cert bundle */
int tls_win_cert;
/** additional tls ports */
- struct config_strlist* tls_additional_ports;
+ struct config_strlist* tls_additional_port;
/** outgoing port range number of ports (per thread) */
int outgoing_num_ports;
@@ -374,11 +382,11 @@ struct config_file {
/** remote control section. enable toggle. */
int remote_control_enable;
/** the interfaces the remote control should listen on */
- struct config_strlist* control_ifs;
+ struct config_strlist_head control_ifs;
+ /** if the use-cert option is set */
+ int control_use_cert;
/** port number for the control port */
int control_port;
- /** use certificates for remote control */
- int remote_control_use_cert;
/** private key file for server */
char* server_key_file;
/** certificate file for server */
@@ -653,14 +661,6 @@ struct config_strbytelist {
size_t str2len;
};
-/** List head for strlist processing, used for append operation. */
-struct config_strlist_head {
- /** first in list of text items */
- struct config_strlist* first;
- /** last in list of text items */
- struct config_strlist* last;
-};
-
/**
* Create config file structure. Filled with default values.
* @return: the new structure or NULL on memory error.
@@ -894,6 +894,10 @@ void config_delview(struct config_view* p);
*/
void config_delviews(struct config_view* list);
+/** check if config for remote control turns on IP-address interface
+ * with certificates or a named pipe without certificates. */
+int options_remote_is_address(struct config_file* cfg);
+
/**
* Convert 14digit to time value
* @param str: string of 14 digits
diff --git a/util/configlexer.c b/util/configlexer.c
index 941501eedc42..f6a453899977 100644
--- a/util/configlexer.c
+++ b/util/configlexer.c
@@ -363,8 +363,8 @@ static void yynoreturn yy_fatal_error (yyconst char* msg );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 266
-#define YY_END_OF_BUFFER 267
+#define YY_NUM_RULES 267
+#define YY_END_OF_BUFFER 268
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -372,297 +372,298 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[2631] =
+static yyconst flex_int16_t yy_accept[2632] =
{ 0,
- 1, 1, 248, 248, 252, 252, 256, 256, 260, 260,
- 1, 1, 267, 264, 1, 246, 246, 265, 2, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 265, 248, 249, 249, 250, 265, 252, 253, 253,
- 254, 265, 259, 256, 257, 257, 258, 265, 260, 261,
- 261, 262, 265, 263, 247, 2, 251, 263, 265, 264,
- 0, 1, 2, 2, 2, 2, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 248,
- 0, 252, 0, 259, 0, 256, 260, 0, 263, 0,
- 2, 2, 263, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 263, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 103, 264, 264, 264, 264, 264, 264, 264, 263, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 87, 264, 264, 264, 264,
- 264, 264, 8, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 108, 264, 263, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 263, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 47, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 192,
- 264, 14, 15, 264, 18, 17, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 102, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 178, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 264, 3, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 263, 264, 264, 264, 264, 264, 264, 264,
- 240, 264, 264, 239, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 255, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 50, 264, 216, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 51,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 167, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 20, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 123, 264, 264, 255, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 222, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 142, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 122, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 85, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 28, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 29, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 48, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 101, 264, 264, 264, 264, 264, 100, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 49, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 143, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 38, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 207, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 42,
- 264, 43, 264, 264, 264, 264, 88, 264, 89, 264,
-
- 264, 264, 86, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 7, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 185, 264, 264, 264, 264, 125,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 39, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 159,
- 264, 158, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 16, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 52, 264, 264, 264,
- 264, 264, 264, 264, 264, 166, 264, 264, 264, 264,
- 264, 91, 90, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 153, 264,
- 264, 264, 264, 264, 264, 264, 264, 109, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 264, 264, 70, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 74, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 46, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 156, 157, 264, 217, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 6, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 220,
- 264, 264, 264, 241, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 36,
- 264, 264, 264, 264, 264, 264, 264, 264, 149, 264,
- 264, 264, 104, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 171, 264, 150, 264, 264, 183, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 37, 264, 264, 264, 264,
- 264, 264, 106, 95, 264, 96, 264, 264, 94, 264,
-
- 264, 264, 264, 264, 264, 264, 264, 120, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 206,
- 264, 264, 264, 264, 264, 264, 264, 264, 151, 264,
- 264, 264, 264, 264, 154, 264, 264, 264, 182, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 84, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 44, 264, 264, 264, 22, 264,
- 264, 264, 264, 264, 19, 264, 264, 264, 264, 23,
- 32, 264, 130, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 59, 61, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 224, 264, 264, 264, 193,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 97, 264, 264, 264, 264,
- 264, 264, 264, 264, 119, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 235, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 124, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 177,
-
- 264, 264, 264, 264, 264, 264, 264, 264, 244, 264,
- 264, 264, 264, 264, 264, 264, 264, 141, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 136,
- 264, 144, 264, 264, 264, 264, 264, 112, 264, 264,
- 264, 264, 264, 80, 264, 264, 264, 264, 169, 264,
- 264, 264, 264, 264, 184, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 198, 264, 264,
- 264, 264, 264, 264, 105, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 140, 264, 264, 264, 264, 264,
-
- 62, 63, 264, 264, 264, 264, 264, 45, 264, 264,
- 264, 264, 264, 69, 145, 264, 160, 264, 186, 155,
- 218, 264, 264, 264, 55, 264, 147, 264, 264, 264,
- 264, 264, 9, 264, 264, 264, 83, 264, 264, 264,
- 264, 211, 264, 264, 264, 168, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 139, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 126, 223, 264, 264, 264,
-
- 264, 197, 264, 264, 264, 264, 264, 264, 264, 264,
- 179, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 238, 264, 146, 264,
- 264, 264, 54, 56, 264, 264, 264, 264, 264, 264,
- 264, 82, 264, 264, 264, 264, 209, 264, 264, 264,
- 219, 264, 264, 264, 264, 264, 264, 173, 30, 24,
- 26, 264, 264, 264, 264, 264, 264, 31, 25, 27,
- 264, 264, 264, 264, 264, 264, 79, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 175, 172, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 53,
- 264, 107, 264, 264, 264, 264, 264, 264, 264, 264,
- 121, 13, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 233, 264, 236, 264, 264, 264, 264, 264, 264,
- 12, 264, 264, 21, 264, 264, 264, 215, 264, 264,
- 264, 221, 264, 57, 264, 181, 264, 174, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 135, 134, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 176, 170, 264, 264, 264,
-
- 225, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 64, 264, 264, 264, 210, 264, 264,
- 264, 264, 264, 180, 264, 264, 264, 264, 264, 264,
- 264, 264, 242, 243, 132, 58, 264, 264, 264, 92,
- 93, 264, 264, 127, 264, 129, 264, 161, 264, 264,
- 264, 133, 264, 264, 187, 264, 264, 264, 264, 264,
- 264, 264, 114, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 194, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 162,
-
- 264, 264, 208, 264, 237, 264, 264, 264, 40, 264,
- 264, 264, 264, 4, 264, 264, 113, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 190,
- 33, 34, 264, 264, 264, 264, 264, 264, 264, 226,
- 264, 264, 264, 264, 264, 264, 196, 264, 264, 165,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 67,
- 264, 41, 214, 264, 191, 264, 264, 11, 264, 264,
- 264, 264, 264, 264, 163, 71, 264, 264, 264, 264,
- 264, 264, 138, 264, 264, 264, 264, 264, 116, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 195, 110,
-
- 264, 98, 99, 264, 264, 264, 73, 77, 72, 264,
- 65, 264, 264, 264, 10, 264, 264, 264, 212, 264,
- 35, 264, 264, 264, 137, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 78, 76, 264, 66, 234, 264, 264, 264,
- 152, 264, 264, 164, 264, 264, 264, 264, 264, 264,
- 128, 60, 264, 264, 264, 264, 264, 227, 264, 264,
- 264, 264, 264, 264, 264, 111, 75, 117, 118, 68,
- 264, 213, 131, 264, 264, 264, 264, 189, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
-
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 81,
- 264, 188, 264, 205, 231, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 5, 264, 264, 264, 232, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 115, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 148, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 228, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 245, 264,
-
- 264, 201, 264, 264, 264, 264, 264, 229, 264, 264,
- 264, 264, 264, 264, 230, 264, 264, 264, 199, 264,
- 202, 203, 264, 264, 264, 264, 264, 200, 204, 0
+ 1, 1, 249, 249, 253, 253, 257, 257, 261, 261,
+ 1, 1, 268, 265, 1, 247, 247, 266, 2, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 266, 249, 250, 250, 251, 266, 253, 254, 254,
+ 255, 266, 260, 257, 258, 258, 259, 266, 261, 262,
+ 262, 263, 266, 264, 248, 2, 252, 264, 266, 265,
+ 0, 1, 2, 2, 2, 2, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 249,
+ 0, 253, 0, 260, 0, 257, 261, 0, 264, 0,
+ 2, 2, 264, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 264, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 104, 265, 265, 265, 265, 265, 265, 265, 264, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 88, 265, 265, 265, 265,
+ 265, 265, 8, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 109, 265, 264, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 264, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 48, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 193,
+ 265, 14, 15, 265, 18, 17, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 103, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 179, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 265, 3, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 264, 265, 265, 265, 265, 265, 265, 265,
+ 241, 265, 265, 240, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 256, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 51, 265, 217, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 52,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 168, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 20, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 124, 265, 265, 256, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 223, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 143, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 123, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 86, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 28, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 29, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 49, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 102, 265, 265, 265, 265, 265, 101, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 50, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 144, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 39, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 208, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 43,
+ 265, 44, 265, 265, 265, 265, 89, 265, 90, 265,
+
+ 265, 265, 87, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 7, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 186, 265, 265, 265, 265, 126,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 40, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 160,
+ 265, 159, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 16, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 53, 265, 265, 265,
+ 265, 265, 265, 265, 265, 167, 265, 265, 265, 265,
+ 265, 92, 91, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 154, 265,
+ 265, 265, 265, 265, 265, 265, 265, 110, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 265, 265, 71, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 75, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 47, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 157, 158, 265, 218, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 6, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 221,
+ 265, 265, 265, 242, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 37,
+ 265, 265, 265, 265, 265, 265, 265, 265, 150, 265,
+ 265, 265, 105, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 172, 265, 151, 265, 265, 184, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 38, 265, 265, 265, 265,
+ 265, 265, 107, 96, 265, 97, 265, 265, 95, 265,
+
+ 265, 265, 265, 265, 265, 265, 265, 121, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 207,
+ 265, 265, 265, 265, 265, 265, 265, 265, 152, 265,
+ 265, 265, 265, 265, 155, 265, 265, 265, 183, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 85, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 45, 265, 265, 265, 22, 265,
+ 265, 265, 265, 265, 19, 265, 265, 265, 265, 23,
+ 32, 265, 131, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 60, 62, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 225, 265, 265, 265, 194,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 98, 265, 265, 265, 265,
+ 265, 265, 265, 265, 120, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 236, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 125, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 178,
+
+ 265, 265, 265, 265, 265, 265, 265, 265, 245, 265,
+ 265, 265, 265, 265, 265, 265, 265, 142, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 137,
+ 265, 145, 265, 265, 265, 265, 265, 113, 265, 265,
+ 265, 265, 265, 81, 265, 265, 265, 265, 170, 265,
+ 265, 265, 265, 265, 185, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 199, 265, 265,
+ 265, 265, 265, 265, 106, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 141, 265, 265, 265, 265, 265,
+
+ 63, 64, 265, 265, 265, 265, 265, 46, 265, 265,
+ 265, 265, 265, 70, 146, 265, 161, 265, 187, 156,
+ 219, 265, 265, 265, 56, 265, 148, 265, 265, 265,
+ 265, 265, 9, 265, 265, 265, 84, 265, 265, 265,
+ 265, 212, 265, 265, 265, 169, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 140, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 127, 224, 265, 265, 265,
+
+ 265, 198, 265, 265, 265, 265, 265, 265, 265, 265,
+ 180, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 239, 265, 147, 265,
+ 265, 265, 55, 57, 265, 265, 265, 265, 265, 265,
+ 265, 83, 265, 265, 265, 265, 210, 265, 265, 265,
+ 220, 265, 265, 265, 265, 265, 265, 174, 30, 24,
+ 26, 265, 265, 265, 265, 265, 265, 31, 25, 27,
+ 265, 265, 265, 265, 265, 265, 80, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 176, 173, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 54,
+ 265, 108, 265, 265, 265, 265, 265, 265, 265, 265,
+ 122, 13, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 234, 265, 237, 265, 265, 265, 265, 265, 265,
+ 12, 265, 265, 21, 265, 265, 265, 216, 265, 265,
+ 265, 222, 265, 58, 265, 182, 265, 175, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 136, 135, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 177, 171, 265, 265, 265,
+
+ 226, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 65, 265, 265, 265, 211, 265, 265,
+ 265, 265, 265, 181, 265, 265, 265, 265, 265, 265,
+ 265, 265, 243, 244, 133, 59, 265, 265, 265, 93,
+ 94, 265, 265, 128, 265, 130, 265, 162, 265, 265,
+ 265, 134, 265, 265, 188, 265, 265, 265, 265, 265,
+ 265, 265, 115, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 195, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 163,
+
+ 265, 265, 209, 265, 238, 265, 265, 265, 41, 265,
+ 265, 265, 265, 4, 265, 265, 114, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 191,
+ 33, 34, 265, 265, 265, 265, 265, 265, 265, 227,
+ 265, 265, 265, 265, 265, 265, 197, 265, 265, 166,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 68,
+ 265, 42, 215, 265, 192, 265, 265, 11, 265, 265,
+ 265, 265, 265, 265, 164, 72, 36, 265, 265, 265,
+ 265, 265, 265, 139, 265, 265, 265, 265, 265, 117,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 196,
+
+ 111, 265, 99, 100, 265, 265, 265, 74, 78, 73,
+ 265, 66, 265, 265, 265, 10, 265, 265, 265, 213,
+ 265, 35, 265, 265, 265, 138, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 79, 77, 265, 67, 235, 265, 265,
+ 265, 153, 265, 265, 165, 265, 265, 265, 265, 265,
+ 265, 129, 61, 265, 265, 265, 265, 265, 228, 265,
+ 265, 265, 265, 265, 265, 265, 112, 76, 118, 119,
+ 69, 265, 214, 132, 265, 265, 265, 265, 190, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 82, 265, 189, 265, 206, 232, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 5, 265, 265, 265, 233,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 116, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 149, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 229, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 246,
+
+ 265, 265, 202, 265, 265, 265, 265, 265, 230, 265,
+ 265, 265, 265, 265, 265, 231, 265, 265, 265, 200,
+ 265, 203, 204, 265, 265, 265, 265, 265, 201, 205,
+ 0
} ;
static yyconst YY_CHAR yy_ec[256] =
@@ -708,15 +709,15 @@ static yyconst YY_CHAR yy_meta[67] =
1, 1, 1, 1, 1, 1
} ;
-static yyconst flex_uint16_t yy_base[2645] =
+static yyconst flex_uint16_t yy_base[2646] =
{ 0,
0, 0, 64, 67, 70, 72, 78, 84, 89, 92,
- 131, 137, 352, 307, 96, 7525, 7525, 7525, 109, 171,
+ 131, 137, 352, 307, 96, 7504, 7504, 7504, 109, 171,
85, 142, 215, 83, 117, 152, 207, 50, 110, 75,
167, 231, 112, 275, 121, 259, 323, 243, 291, 320,
- 170, 368, 289, 7525, 7525, 7525, 104, 288, 7525, 7525,
- 7525, 147, 286, 289, 7525, 7525, 7525, 305, 239, 7525,
- 7525, 7525, 160, 210, 7525, 372, 7525, 177, 382, 201,
+ 170, 368, 289, 7504, 7504, 7504, 104, 288, 7504, 7504,
+ 7504, 147, 286, 289, 7504, 7504, 7504, 305, 239, 7504,
+ 7504, 7504, 160, 210, 7504, 372, 7504, 177, 382, 201,
386, 115, 0, 390, 0, 0, 160, 162, 199, 204,
188, 169, 303, 222, 256, 248, 377, 369, 254, 226,
313, 271, 365, 382, 296, 327, 391, 392, 384, 420,
@@ -746,7 +747,7 @@ static yyconst flex_uint16_t yy_base[2645] =
1037, 1044, 1061, 1057, 1054, 1071, 1058, 1055, 1062, 1064,
1075, 1077, 1099, 1085, 1098, 1111, 1102, 1104, 1113, 1094,
1125, 1124, 1122, 1132, 1126, 1174, 1134, 1135, 1142, 1151,
- 7525, 1169, 1153, 1223, 1143, 1173, 1191, 1181, 1184, 1194,
+ 7504, 1169, 1153, 1223, 1143, 1173, 1191, 1181, 1184, 1194,
1192, 1218, 1209, 1203, 1097, 1196, 1162, 1252, 1183, 1221,
1224, 1231, 1254, 1234, 1236, 1240, 1245, 1261, 1279, 1253,
1266, 1265, 1291, 1274, 1269, 1283, 1281, 1296, 1273, 1309,
@@ -754,13 +755,13 @@ static yyconst flex_uint16_t yy_base[2645] =
1320, 1325, 1347, 1350, 1334, 1348, 1358, 1351, 1360, 1357,
1366, 1355, 1372, 1362, 1374, 1381, 1384, 1378, 1382, 1392,
- 1403, 1387, 1397, 1391, 1415, 7525, 1419, 1401, 1405, 1417,
- 1418, 1409, 7525, 1432, 1431, 1427, 1440, 1428, 1461, 1455,
+ 1403, 1387, 1397, 1391, 1415, 7504, 1419, 1401, 1405, 1417,
+ 1418, 1409, 7504, 1432, 1431, 1427, 1440, 1428, 1461, 1455,
1443, 1458, 1467, 1453, 1468, 1479, 1449, 1476, 1464, 1462,
1488, 1494, 1487, 1496, 1489, 1485, 1532, 1498, 1490, 1514,
1516, 1517, 1512, 1529, 1519, 1528, 1568, 1526, 1547, 1556,
1565, 1545, 1579, 1567, 1559, 1569, 1562, 1577, 1583, 1578,
- 1593, 1575, 1595, 7525, 1604, 1614, 1480, 1607, 1606, 1597,
+ 1593, 1575, 1595, 7504, 1604, 1614, 1480, 1607, 1606, 1597,
1609, 1610, 1611, 1626, 1622, 1640, 1624, 1627, 1649, 1643,
1652, 1646, 1657, 1648, 1656, 1662, 1675, 1650, 1686, 1682,
1671, 1672, 1669, 1674, 1678, 1673, 1676, 1699, 1687, 1700,
@@ -777,528 +778,528 @@ static yyconst flex_uint16_t yy_base[2645] =
1969, 1963, 1970, 1977, 1995, 1994, 1997, 2008, 1988, 2007,
1980, 2003, 2009, 2011, 2015, 2016, 2021, 2012, 2022, 2036,
- 2040, 2034, 2032, 2056, 2037, 2053, 7525, 2041, 2061, 2046,
- 2067, 2058, 2059, 2074, 2064, 2078, 2075, 2083, 2126, 7525,
- 2080, 7525, 7525, 2089, 7525, 7525, 2081, 2107, 2105, 2114,
+ 2040, 2034, 2032, 2056, 2037, 2053, 7504, 2041, 2061, 2046,
+ 2067, 2058, 2059, 2074, 2064, 2078, 2075, 2083, 2126, 7504,
+ 2080, 7504, 7504, 2089, 7504, 7504, 2081, 2107, 2105, 2114,
2119, 2101, 2110, 2123, 2084, 2175, 2139, 2133, 2141, 2136,
2122, 2129, 2157, 2168, 2158, 2188, 2178, 2171, 2185, 2195,
2180, 2199, 2204, 2203, 2206, 2205, 2210, 2212, 2214, 2216,
- 2217, 2231, 2242, 2251, 7525, 2243, 2172, 2252, 2246, 2247,
+ 2217, 2231, 2242, 2251, 7504, 2243, 2172, 2252, 2246, 2247,
2254, 2256, 2239, 2255, 2258, 2240, 2268, 2263, 2269, 2276,
- 2274, 7525, 2279, 2285, 2292, 2289, 2299, 2295, 2291, 2282,
+ 2274, 7504, 2279, 2285, 2292, 2289, 2299, 2295, 2291, 2282,
- 2309, 2296, 2312, 2308, 2306, 2337, 7525, 2326, 2314, 2322,
+ 2309, 2296, 2312, 2308, 2306, 2337, 7504, 2326, 2314, 2322,
2341, 2324, 2327, 2332, 2334, 2342, 2351, 2359, 2353, 2357,
2368, 2354, 2369, 2378, 2379, 2382, 2374, 2390, 2380, 2391,
2375, 2393, 2396, 2402, 2415, 2405, 2419, 2404, 2403, 2421,
2423, 2418, 2435, 2442, 2431, 2426, 2438, 2452, 2437, 2454,
2449, 2465, 2456, 2458, 2455, 2471, 2453, 2468, 2469, 2484,
- 7525, 2463, 2477, 7525, 2485, 2486, 2532, 2492, 2502, 2494,
+ 7504, 2463, 2477, 7504, 2485, 2486, 2532, 2492, 2502, 2494,
2497, 2513, 2512, 2518, 2511, 2531, 2528, 2547, 2545, 2552,
2556, 2549, 2544, 2559, 2483, 2571, 2577, 1152, 2586, 2566,
2564, 2613, 2583, 2584, 2588, 2591, 2596, 2615, 2599, 2611,
- 2608, 2609, 2617, 2641, 7525, 2604, 2634, 2624, 2636, 2655,
+ 2608, 2609, 2617, 2641, 7504, 2604, 2634, 2624, 2636, 2655,
2648, 2638, 2647, 2658, 2646, 2663, 2660, 2652, 2672, 2661,
- 2664, 2666, 2683, 2688, 2700, 7525, 2685, 7525, 2689, 2687,
- 2684, 2694, 2712, 2713, 2715, 2698, 2721, 2705, 2710, 7525,
+ 2664, 2666, 2683, 2688, 2700, 7504, 2685, 7504, 2689, 2687,
+ 2684, 2694, 2712, 2713, 2715, 2698, 2721, 2705, 2710, 7504,
2719, 2731, 2737, 2740, 2739, 2732, 2733, 2742, 2746, 2759,
2736, 2762, 2768, 2754, 2767, 2769, 2760, 2779, 2780, 2765,
- 7525, 2787, 2781, 2794, 2795, 2791, 2796, 2792, 2806, 2798,
- 2807, 2808, 2802, 2818, 2822, 2825, 2833, 7525, 2813, 2819,
+ 7504, 2787, 2781, 2794, 2795, 2791, 2796, 2792, 2806, 2798,
+ 2807, 2808, 2802, 2818, 2822, 2825, 2833, 7504, 2813, 2819,
2846, 2844, 2841, 2829, 2845, 2851, 2852, 2843, 2855, 2856,
2864, 2865, 2857, 2869, 2866, 2872, 2875, 1093, 2877, 2888,
- 2879, 2876, 7525, 2881, 2905, 61, 2896, 2894, 2899, 2912,
+ 2879, 2876, 7504, 2881, 2905, 61, 2896, 2894, 2899, 2912,
2907, 2918, 2913, 2924, 2925, 2926, 2927, 2930, 2928, 2932,
2936, 2934, 2945, 2940, 2950, 2951, 2948, 2952, 2953, 2975,
- 2962, 2980, 7525, 2983, 2990, 2979, 2973, 2998, 2997, 3007,
- 3000, 3010, 3013, 3011, 7525, 3004, 3014, 3024, 3028, 3031,
+ 2962, 2980, 7504, 2983, 2990, 2979, 2973, 2998, 2997, 3007,
+ 3000, 3010, 3013, 3011, 7504, 3004, 3014, 3024, 3028, 3031,
3027, 3032, 3034, 3037, 3050, 3041, 3040, 3051, 3045, 3055,
- 3063, 3068, 3061, 3064, 3076, 7525, 2993, 3072, 3079, 3074,
+ 3063, 3068, 3061, 3064, 3076, 7504, 2993, 3072, 3079, 3074,
3093, 3077, 3107, 3090, 3091, 3102, 3118, 3142, 3113, 3121,
3127, 3132, 3136, 3122, 3139, 3157, 3163, 3167, 3153, 3166,
3171, 3169, 3168, 3129, 3140, 3174, 3177, 3205, 3184, 1434,
- 3204, 7525, 3203, 3201, 3191, 3208, 3227, 3202, 3228, 3212,
+ 3204, 7504, 3203, 3201, 3191, 3208, 3227, 3202, 3228, 3212,
3211, 3218, 3230, 3232, 3242, 3253, 3247, 3254, 3244, 3241,
- 3260, 3270, 3257, 3273, 3275, 7525, 3276, 3281, 3282, 3278,
+ 3260, 3270, 3257, 3273, 3275, 7504, 3276, 3281, 3282, 3278,
3271, 3294, 3290, 3289, 3293, 3296, 3292, 3302, 3306, 3309,
- 7525, 3321, 3320, 3322, 3318, 3330, 3338, 3331, 3328, 3334,
- 3337, 3347, 7525, 3336, 3355, 3351, 3371, 3359, 3350, 3361,
- 3375, 3364, 7525, 3365, 3353, 3386, 3394, 3373, 7525, 3395,
+ 7504, 3321, 3320, 3322, 3318, 3330, 3338, 3331, 3328, 3334,
+ 3337, 3347, 7504, 3336, 3355, 3351, 3371, 3359, 3350, 3361,
+ 3375, 3364, 7504, 3365, 3353, 3386, 3394, 3373, 7504, 3395,
3387, 3377, 3381, 3391, 3392, 3408, 3396, 3390, 3411, 3420,
- 3426, 3404, 3428, 7525, 3421, 3444, 3432, 3422, 3431, 3435,
+ 3426, 3404, 3428, 7504, 3421, 3444, 3432, 3422, 3431, 3435,
3446, 3458, 3449, 3455, 3470, 3471, 3468, 3462, 3457, 3474,
- 3482, 3476, 3480, 7525, 3472, 3493, 3503, 3501, 3497, 3498,
+ 3482, 3476, 3480, 7504, 3472, 3493, 3503, 3501, 3497, 3498,
3506, 3507, 3502, 3508, 3521, 3520, 3532, 3533, 3541, 3531,
3542, 3553, 3547, 3550, 3534, 3552, 3485, 3570, 3571, 3574,
- 7525, 3585, 3582, 3578, 3573, 3576, 3577, 3581, 3593, 3596,
+ 7504, 3585, 3582, 3578, 3573, 3576, 3577, 3581, 3593, 3596,
3598, 3602, 3597, 3603, 3631, 3632, 3608, 3617, 3618, 3620,
3621, 3624, 3645, 3626, 3627, 3644, 3661, 3638, 3643, 3648,
3655, 3664, 3659, 3666, 3675, 3682, 3671, 3660, 3687, 3686,
- 3684, 3691, 3693, 3719, 7525, 3699, 3701, 3695, 3707, 3729,
- 3727, 3730, 3733, 3736, 3724, 3731, 3741, 3746, 3739, 7525,
- 3751, 7525, 3726, 3750, 3771, 3775, 7525, 3779, 7525, 3780,
+ 3684, 3691, 3693, 3719, 7504, 3699, 3701, 3695, 3707, 3729,
+ 3727, 3730, 3733, 3736, 3724, 3731, 3741, 3746, 3739, 7504,
+ 3751, 7504, 3726, 3750, 3771, 3775, 7504, 3779, 7504, 3780,
- 3765, 3767, 7525, 3782, 3786, 3774, 3763, 3788, 3790, 3777,
+ 3765, 3767, 7504, 3782, 3786, 3774, 3763, 3788, 3790, 3777,
3804, 3778, 3796, 3807, 3820, 3811, 3800, 3824, 3809, 3831,
- 3813, 3822, 3837, 3823, 3834, 7525, 3843, 3827, 3830, 3854,
+ 3813, 3822, 3837, 3823, 3834, 7504, 3843, 3827, 3830, 3854,
3849, 3840, 3876, 3870, 3858, 3859, 3871, 3882, 3864, 3881,
- 3888, 3894, 3892, 3899, 7525, 3902, 3895, 3898, 3907, 7525,
+ 3888, 3894, 3892, 3899, 7504, 3902, 3895, 3898, 3907, 7504,
3872, 3923, 3926, 3904, 3910, 3915, 3929, 3934, 3921, 3938,
3946, 3941, 3942, 3954, 3961, 3945, 3968, 3951, 3974, 3976,
3962, 3969, 3965, 3980, 3985, 3989, 3991, 3995, 3992, 3988,
4001, 4008, 4009, 4002, 3997, 4003, 4007, 4025, 4019, 4024,
- 4018, 4022, 4033, 4029, 4034, 7525, 4040, 4045, 4049, 4056,
+ 4018, 4022, 4033, 4029, 4034, 7504, 4040, 4045, 4049, 4056,
- 4044, 4048, 4050, 4060, 4064, 4070, 4061, 4081, 4080, 7525,
- 4079, 7525, 4077, 4098, 4103, 4106, 4110, 4100, 4092, 4117,
+ 4044, 4048, 4050, 4060, 4064, 4070, 4061, 4081, 4080, 7504,
+ 4079, 7504, 4077, 4098, 4103, 4106, 4110, 4100, 4092, 4117,
4108, 4105, 4112, 4133, 4107, 4120, 4128, 4126, 4135, 4132,
- 4138, 4140, 4149, 7525, 4139, 4136, 4167, 4155, 4165, 4173,
- 4169, 4177, 4172, 4166, 4185, 4207, 7525, 4192, 4213, 4191,
- 4210, 4220, 4216, 4225, 4217, 7525, 4202, 4212, 4229, 4214,
- 4242, 7525, 7525, 4219, 4236, 4249, 4246, 4244, 4247, 4233,
- 4253, 4215, 4250, 4248, 4270, 4237, 4263, 4269, 7525, 4281,
- 4271, 4285, 4294, 4295, 4296, 4293, 4280, 7525, 4277, 4305,
+ 4138, 4140, 4149, 7504, 4139, 4136, 4167, 4155, 4165, 4173,
+ 4169, 4177, 4172, 4166, 4185, 4207, 7504, 4192, 4213, 4191,
+ 4210, 4220, 4216, 4225, 4217, 7504, 4202, 4212, 4229, 4214,
+ 4242, 7504, 7504, 4219, 4236, 4249, 4246, 4244, 4247, 4233,
+ 4253, 4215, 4250, 4248, 4270, 4237, 4263, 4269, 7504, 4281,
+ 4271, 4285, 4294, 4295, 4296, 4293, 4280, 7504, 4277, 4305,
4290, 4312, 4306, 4311, 4317, 4308, 4322, 4328, 4318, 4321,
- 4348, 4335, 4332, 4351, 4346, 4353, 4354, 7525, 4355, 4361,
+ 4348, 4335, 4332, 4351, 4346, 4353, 4354, 7504, 4355, 4361,
4363, 4359, 4364, 4362, 4349, 4372, 4377, 4382, 4374, 4376,
4390, 4392, 4403, 4396, 4393, 4399, 4410, 4416, 4404, 4409,
4419, 4422, 4432, 4415, 4438, 4427, 4444, 4429, 4436, 4448,
- 4449, 4463, 4458, 7525, 4467, 4446, 4472, 4443, 4466, 4478,
- 4480, 4477, 4497, 4459, 4492, 4487, 4493, 7525, 4502, 4501,
+ 4449, 4463, 4458, 7504, 4467, 4446, 4472, 4443, 4466, 4478,
+ 4480, 4477, 4497, 4459, 4492, 4487, 4493, 7504, 4502, 4501,
4496, 4506, 4503, 4494, 4522, 4507, 4505, 4535, 4520, 4540,
- 4528, 4529, 4549, 4552, 7525, 7525, 4554, 7525, 4555, 4538,
- 4557, 4545, 4562, 4561, 4566, 4573, 4568, 4582, 7525, 4575,
+ 4528, 4529, 4549, 4552, 7504, 7504, 4554, 7504, 4555, 4538,
+ 4557, 4545, 4562, 4561, 4566, 4573, 4568, 4582, 7504, 4575,
4576, 4579, 4578, 4588, 4609, 4608, 4605, 4602, 4593, 4595,
- 4604, 4615, 4606, 4601, 4622, 4635, 4619, 4629, 4643, 7525,
- 4628, 4633, 4638, 7525, 4640, 4630, 4658, 4660, 4668, 4672,
+ 4604, 4615, 4606, 4601, 4622, 4635, 4619, 4629, 4643, 7504,
+ 4628, 4633, 4638, 7504, 4640, 4630, 4658, 4660, 4668, 4672,
4662, 4677, 4661, 4667, 4686, 4687, 4688, 4684, 4691, 4689,
- 4701, 4697, 4698, 4726, 4715, 4727, 4703, 4711, 4732, 7525,
- 4719, 4733, 4724, 4716, 4740, 4725, 4745, 4743, 7525, 4749,
- 4738, 4764, 7525, 4759, 4765, 4748, 4771, 4753, 4750, 4772,
- 4774, 4775, 4776, 7525, 4782, 7525, 4780, 4792, 7525, 4799,
+ 4701, 4697, 4698, 4726, 4715, 4727, 4703, 4711, 4732, 7504,
+ 4719, 4733, 4724, 4716, 4740, 4725, 4745, 4743, 7504, 4749,
+ 4738, 4764, 7504, 4759, 4765, 4748, 4771, 4753, 4750, 4772,
+ 4774, 4775, 4776, 7504, 4782, 7504, 4780, 4792, 7504, 4799,
4801, 4789, 4790, 4788, 4815, 4817, 4818, 4803, 4816, 4809,
- 4810, 4828, 4830, 4838, 4834, 7525, 4852, 4833, 4849, 4854,
- 4855, 4856, 7525, 7525, 4839, 7525, 4857, 4861, 7525, 4859,
+ 4810, 4828, 4830, 4838, 4834, 7504, 4852, 4833, 4849, 4854,
+ 4855, 4856, 7504, 7504, 4839, 7504, 4857, 4861, 7504, 4859,
- 4875, 4876, 4870, 4871, 4866, 4892, 4897, 7525, 4899, 4888,
- 4909, 4898, 4890, 4900, 4901, 4917, 4894, 4903, 4935, 7525,
- 4922, 4919, 4923, 4925, 4928, 4950, 4946, 4937, 7525, 4955,
- 4959, 4945, 4962, 4958, 7525, 4970, 4964, 4969, 7525, 4981,
+ 4875, 4876, 4870, 4871, 4866, 4892, 4897, 7504, 4899, 4888,
+ 4909, 4898, 4890, 4900, 4901, 4917, 4894, 4903, 4935, 7504,
+ 4922, 4919, 4923, 4925, 4928, 4950, 4946, 4937, 7504, 4955,
+ 4959, 4945, 4962, 4958, 7504, 4970, 4964, 4969, 7504, 4981,
4966, 4973, 4978, 5000, 4996, 5004, 4989, 4991, 5017, 5008,
- 5006, 5012, 7525, 5005, 5016, 5014, 5036, 5027, 5025, 5022,
+ 5006, 5012, 7504, 5005, 5016, 5014, 5036, 5027, 5025, 5022,
5043, 5051, 5050, 5055, 5044, 5059, 5061, 5064, 5067, 5063,
- 5047, 5081, 5075, 5085, 7525, 5086, 5091, 5094, 7525, 5088,
- 5087, 5092, 5102, 5089, 7525, 5115, 5118, 5104, 5112, 7525,
- 7525, 5116, 7525, 5132, 5123, 5125, 5126, 5139, 5133, 5147,
+ 5047, 5081, 5075, 5085, 7504, 5086, 5091, 5094, 7504, 5088,
+ 5087, 5092, 5102, 5089, 7504, 5115, 5118, 5104, 5112, 7504,
+ 7504, 5116, 7504, 5132, 5123, 5125, 5126, 5139, 5133, 5147,
5141, 5136, 5154, 5159, 5157, 5176, 5166, 5174, 5169, 5171,
- 5160, 7525, 7525, 5177, 5187, 5181, 5189, 5191, 5182, 5193,
- 5200, 5205, 5212, 5217, 5228, 7525, 5220, 5206, 5221, 7525,
+ 5160, 7504, 7504, 5177, 5187, 5181, 5189, 5191, 5182, 5193,
+ 5200, 5205, 5212, 5217, 5228, 7504, 5220, 5206, 5221, 7504,
5209, 5230, 5218, 5216, 5237, 5232, 5238, 5246, 5252, 5245,
- 5258, 5240, 5251, 5269, 5271, 7525, 5257, 5261, 5259, 5265,
- 5272, 5273, 5283, 5281, 7525, 5290, 5304, 5303, 5298, 5299,
+ 5258, 5240, 5251, 5269, 5271, 7504, 5257, 5261, 5259, 5265,
+ 5272, 5273, 5283, 5281, 7504, 5290, 5304, 5303, 5298, 5299,
5301, 5318, 5312, 5315, 5308, 5307, 5326, 5339, 5336, 5332,
- 7525, 5338, 5329, 5335, 5340, 5344, 5357, 5341, 5358, 5354,
- 5361, 5369, 5373, 5363, 5364, 7525, 5375, 5374, 5367, 5389,
- 5379, 5387, 5392, 5402, 5398, 5390, 5396, 5407, 5405, 7525,
+ 7504, 5338, 5329, 5335, 5340, 5344, 5357, 5341, 5358, 5354,
+ 5361, 5369, 5373, 5363, 5364, 7504, 5375, 5374, 5367, 5389,
+ 5379, 5387, 5392, 5402, 5398, 5390, 5396, 5407, 5405, 7504,
- 5388, 5404, 5406, 5424, 5412, 5422, 5425, 5429, 7525, 5437,
- 5423, 5435, 5432, 5431, 5459, 5438, 5461, 7525, 5454, 5467,
+ 5388, 5404, 5406, 5424, 5412, 5422, 5425, 5429, 7504, 5437,
+ 5423, 5435, 5432, 5431, 5459, 5438, 5461, 7504, 5454, 5467,
5470, 5451, 5464, 5458, 5478, 5484, 5487, 5480, 5485, 5491,
- 5473, 5488, 5499, 5500, 5504, 5511, 5503, 5526, 5525, 7525,
- 5512, 7525, 5515, 5533, 5538, 5536, 5521, 7525, 5530, 5539,
- 5549, 5535, 5558, 7525, 5542, 5559, 5556, 5562, 7525, 5576,
- 5573, 5560, 5572, 5588, 7525, 5590, 5589, 5586, 5598, 5600,
- 5596, 5583, 5603, 5602, 5594, 5593, 5621, 7525, 5605, 5623,
- 5628, 5629, 5613, 5638, 7525, 5617, 5625, 5632, 5639, 5627,
- 5652, 5656, 5661, 5644, 7525, 5659, 5653, 5668, 5669, 5674,
-
- 7525, 7525, 5664, 5680, 5679, 5666, 5686, 7525, 5693, 5673,
- 5698, 5690, 5702, 7525, 7525, 5699, 7525, 5694, 7525, 7525,
- 7525, 5713, 5717, 5715, 7525, 5716, 7525, 5703, 5726, 5707,
- 5706, 5730, 7525, 5729, 5719, 5732, 7525, 5738, 5741, 5733,
- 5737, 7525, 5761, 5744, 5749, 7525, 5765, 5769, 5768, 5772,
+ 5473, 5488, 5499, 5500, 5504, 5511, 5503, 5526, 5525, 7504,
+ 5512, 7504, 5515, 5533, 5538, 5536, 5521, 7504, 5530, 5539,
+ 5549, 5535, 5558, 7504, 5542, 5559, 5556, 5562, 7504, 5576,
+ 5573, 5560, 5572, 5588, 7504, 5590, 5589, 5586, 5598, 5600,
+ 5596, 5583, 5603, 5602, 5594, 5593, 5621, 7504, 5605, 5623,
+ 5628, 5629, 5613, 5638, 7504, 5617, 5625, 5632, 5639, 5627,
+ 5652, 5656, 5661, 5644, 7504, 5659, 5653, 5668, 5669, 5674,
+
+ 7504, 7504, 5664, 5680, 5679, 5666, 5686, 7504, 5693, 5673,
+ 5698, 5690, 5702, 7504, 7504, 5699, 7504, 5694, 7504, 7504,
+ 7504, 5713, 5717, 5715, 7504, 5716, 7504, 5703, 5726, 5707,
+ 5706, 5730, 7504, 5729, 5719, 5732, 7504, 5738, 5741, 5733,
+ 5737, 7504, 5761, 5744, 5749, 7504, 5765, 5769, 5768, 5772,
5778, 5756, 5771, 5776, 5782, 5784, 5786, 5787, 5779, 5783,
5788, 5816, 5807, 5804, 5802, 5821, 5822, 5811, 5818, 5812,
5806, 5827, 5810, 5835, 5831, 5815, 5836, 5842, 5837, 5846,
- 5864, 5857, 5859, 5862, 7525, 5852, 5849, 5858, 5869, 5876,
- 5873, 5875, 5894, 5895, 5905, 7525, 7525, 5908, 5892, 5900,
+ 5864, 5857, 5859, 5862, 7504, 5852, 5849, 5858, 5869, 5876,
+ 5873, 5875, 5894, 5895, 5905, 7504, 7504, 5908, 5892, 5900,
- 5893, 7525, 5896, 5897, 5891, 5914, 5917, 5925, 5928, 5929,
- 7525, 5931, 5938, 5948, 5932, 5933, 5942, 5939, 5944, 5952,
+ 5893, 7504, 5896, 5897, 5891, 5914, 5917, 5925, 5928, 5929,
+ 7504, 5931, 5938, 5948, 5932, 5933, 5942, 5939, 5944, 5952,
5964, 5963, 5967, 5968, 5969, 5965, 5971, 5966, 5979, 5981,
- 5994, 5995, 5997, 5988, 6002, 6003, 7525, 5998, 7525, 5996,
- 6013, 6015, 7525, 7525, 6016, 6032, 6018, 6022, 6020, 6019,
- 6044, 7525, 6024, 6046, 6052, 6040, 7525, 6049, 6054, 6055,
- 7525, 6045, 6056, 6051, 6058, 6063, 6086, 7525, 7525, 7525,
- 7525, 6087, 6067, 6078, 6079, 6084, 6083, 7525, 7525, 7525,
- 6094, 6090, 6095, 6101, 6105, 6115, 7525, 6114, 6103, 6107,
+ 5994, 5995, 5997, 5988, 6002, 6003, 7504, 5998, 7504, 5996,
+ 6013, 6015, 7504, 7504, 6016, 6032, 6018, 6022, 6020, 6019,
+ 6044, 7504, 6024, 6046, 6052, 6040, 7504, 6049, 6054, 6055,
+ 7504, 6045, 6056, 6051, 6058, 6063, 6086, 7504, 7504, 7504,
+ 7504, 6087, 6067, 6078, 6079, 6084, 6083, 7504, 7504, 7504,
+ 6094, 6090, 6095, 6101, 6105, 6115, 7504, 6114, 6103, 6107,
6118, 6137, 6138, 6136, 6135, 6126, 6128, 6152, 6149, 6147,
- 6142, 6153, 6159, 6161, 7525, 7525, 6155, 6163, 6177, 6173,
- 6182, 6188, 6185, 6186, 6183, 6179, 6190, 6196, 6195, 7525,
- 6199, 7525, 6203, 6206, 6209, 6218, 6215, 6223, 6219, 6228,
- 7525, 7525, 6221, 6229, 6225, 6239, 6234, 6248, 6245, 6241,
- 6243, 7525, 6250, 7525, 6254, 6259, 6278, 6269, 6271, 6277,
- 7525, 6276, 6270, 7525, 6284, 6280, 6287, 7525, 6290, 6293,
- 6295, 7525, 6299, 7525, 6300, 7525, 6296, 7525, 6304, 6307,
+ 6142, 6153, 6159, 6161, 7504, 7504, 6155, 6163, 6177, 6173,
+ 6182, 6188, 6185, 6186, 6183, 6179, 6190, 6196, 6195, 7504,
+ 6199, 7504, 6203, 6206, 6209, 6218, 6215, 6223, 6219, 6228,
+ 7504, 7504, 6221, 6229, 6225, 6239, 6234, 6248, 6245, 6241,
+ 6243, 7504, 6250, 7504, 6254, 6259, 6278, 6269, 6271, 6277,
+ 7504, 6276, 6270, 7504, 6284, 6280, 6287, 7504, 6290, 6293,
+ 6295, 7504, 6299, 7504, 6300, 7504, 6296, 7504, 6304, 6307,
6313, 6319, 6322, 6310, 6330, 6331, 6333, 6321, 6338, 6323,
- 6339, 6344, 6342, 6343, 7525, 7525, 6361, 6349, 6355, 6357,
- 6356, 6359, 6354, 6360, 6367, 7525, 7525, 6368, 6370, 6382,
+ 6339, 6344, 6342, 6343, 7504, 7504, 6361, 6349, 6355, 6357,
+ 6356, 6359, 6354, 6360, 6367, 7504, 7504, 6368, 6370, 6382,
- 7525, 6365, 6393, 6397, 6398, 6383, 6391, 6394, 6407, 6400,
+ 7504, 6365, 6393, 6397, 6398, 6383, 6391, 6394, 6407, 6400,
6405, 6410, 6421, 6425, 6430, 6432, 6420, 6434, 6423, 6418,
- 6442, 6435, 6445, 7525, 6454, 6461, 6449, 7525, 6468, 6466,
- 6474, 6470, 6471, 7525, 6459, 6479, 6481, 6478, 6469, 6515,
- 6476, 6490, 7525, 7525, 7525, 7525, 6509, 6504, 6506, 7525,
- 7525, 6494, 6500, 7525, 6510, 7525, 6502, 7525, 6525, 6527,
- 6526, 7525, 6529, 6537, 7525, 6524, 6532, 6539, 6549, 6540,
- 6544, 6543, 7525, 6574, 6567, 6568, 6577, 6561, 6557, 6575,
- 6564, 6586, 6571, 6583, 7525, 6570, 6588, 6592, 6595, 6598,
- 6610, 6609, 6601, 6593, 6613, 6619, 6600, 6629, 6615, 7525,
-
- 6631, 6632, 7525, 6622, 7525, 6633, 6636, 6642, 7525, 6650,
- 6635, 6641, 6638, 7525, 6653, 6658, 7525, 6644, 6667, 6673,
- 6656, 6669, 6668, 6670, 6674, 6683, 6687, 6695, 6691, 7525,
- 7525, 7525, 6694, 6684, 6681, 6690, 6709, 6714, 6702, 7525,
- 6718, 6719, 6707, 6732, 6725, 6728, 7525, 6735, 6721, 7525,
- 6737, 6738, 6739, 6746, 6749, 6756, 6757, 6758, 6763, 7525,
- 6761, 7525, 7525, 6753, 7525, 6752, 6776, 7525, 6775, 6764,
- 6762, 6783, 6786, 6788, 7525, 7525, 6794, 6784, 6801, 6789,
- 6800, 6802, 7525, 6803, 6806, 6809, 6805, 6812, 7525, 6827,
- 6819, 6820, 6822, 6825, 6821, 6839, 6834, 6846, 7525, 7525,
-
- 6848, 7525, 7525, 6831, 6859, 6867, 7525, 7525, 7525, 6860,
- 7525, 6863, 6878, 6870, 7525, 6872, 6861, 6866, 7525, 6881,
- 7525, 6882, 6887, 6877, 7525, 6884, 6876, 6895, 6900, 6910,
- 6898, 6912, 6919, 6920, 6926, 6899, 6915, 6911, 6929, 6936,
- 6916, 6933, 7525, 7525, 6945, 7525, 7525, 6948, 6949, 6950,
- 7525, 6943, 6954, 7525, 6964, 6951, 6953, 6968, 6956, 6967,
- 7525, 7525, 6955, 6981, 6959, 6986, 6970, 7525, 6996, 6979,
- 6975, 6998, 6982, 6992, 6991, 7525, 7525, 7525, 7525, 7525,
- 7002, 7525, 7525, 6994, 7000, 7013, 7008, 7525, 6997, 7025,
- 7034, 7040, 7023, 7044, 7028, 7024, 7030, 7037, 7029, 7031,
-
- 7056, 7060, 7059, 7068, 7062, 7078, 7082, 7084, 7066, 7070,
- 7088, 7087, 7089, 7071, 7093, 7083, 7086, 7099, 7103, 7525,
- 7109, 7525, 7107, 7525, 7525, 7102, 7127, 7123, 7113, 7112,
- 7138, 7129, 7133, 7118, 7525, 7121, 7130, 7149, 7525, 7142,
- 7156, 7147, 7150, 7154, 7159, 7170, 7174, 7164, 7165, 7172,
- 7180, 7192, 7194, 7191, 7193, 7199, 7181, 7208, 7205, 7213,
- 7525, 7211, 7197, 7207, 7209, 7220, 7222, 7225, 7232, 7229,
- 7525, 7233, 7241, 7243, 7227, 7242, 7238, 7257, 7259, 7249,
- 7525, 7255, 7266, 7260, 7273, 7282, 7285, 7288, 7277, 7292,
- 7293, 7297, 7302, 7300, 7304, 7286, 7309, 7316, 7525, 7303,
-
- 7318, 7525, 7323, 7334, 7321, 7325, 7332, 7525, 7342, 7327,
- 7330, 7350, 7347, 7356, 7525, 7353, 7358, 7361, 7525, 7360,
- 7525, 7525, 7367, 7362, 7374, 7370, 7375, 7525, 7525, 7525,
- 7433, 7440, 7447, 7454, 7461, 83, 7468, 7475, 7482, 7489,
- 7496, 7503, 7510, 7517
+ 6442, 6435, 6445, 7504, 6454, 6461, 6449, 7504, 6468, 6466,
+ 6474, 6470, 6471, 7504, 6459, 6479, 6481, 6478, 6469, 6515,
+ 6476, 6490, 7504, 7504, 7504, 7504, 6509, 6504, 6506, 7504,
+ 7504, 6494, 6500, 7504, 6510, 7504, 6502, 7504, 6525, 6527,
+ 6526, 7504, 6529, 6537, 7504, 6524, 6532, 6539, 6549, 6540,
+ 6544, 6543, 7504, 6574, 6567, 6568, 6577, 6561, 6557, 6575,
+ 6564, 6586, 6571, 6583, 7504, 6570, 6588, 6592, 6595, 6598,
+ 6610, 6609, 6601, 6593, 6613, 6619, 6600, 6629, 6615, 7504,
+
+ 6631, 6632, 7504, 6622, 7504, 6633, 6636, 6642, 7504, 6650,
+ 6635, 6641, 6638, 7504, 6653, 6658, 7504, 6644, 6667, 6673,
+ 6676, 6669, 6663, 6670, 6674, 6682, 6687, 6685, 6691, 7504,
+ 7504, 7504, 6694, 6684, 6680, 6698, 6705, 6722, 6709, 7504,
+ 6715, 6718, 6707, 6729, 6721, 6728, 7504, 6730, 6724, 7504,
+ 6737, 6740, 6736, 6732, 6747, 6744, 6758, 6760, 6756, 7504,
+ 6762, 7504, 7504, 6750, 7504, 6753, 6771, 7504, 6776, 6764,
+ 6766, 6773, 6781, 6779, 7504, 7504, 7504, 6790, 6780, 6797,
+ 6787, 6801, 6799, 7504, 6792, 6796, 6805, 6803, 6814, 7504,
+ 6817, 6808, 6809, 6813, 6828, 6818, 6831, 6830, 6845, 7504,
+
+ 7504, 6839, 7504, 7504, 6838, 6853, 6858, 7504, 7504, 7504,
+ 6863, 7504, 6864, 6869, 6866, 7504, 6871, 6856, 6865, 7504,
+ 6881, 7504, 6875, 6880, 6872, 7504, 6876, 6886, 6899, 6888,
+ 6904, 6890, 6907, 6911, 6924, 6915, 6891, 6910, 6908, 6928,
+ 6931, 6921, 6930, 7504, 7504, 6941, 7504, 7504, 6944, 6945,
+ 6946, 7504, 6950, 6949, 7504, 6953, 6939, 6952, 6960, 6947,
+ 6965, 7504, 7504, 6951, 6967, 6956, 6974, 6966, 7504, 6987,
+ 7000, 6971, 6994, 6986, 6988, 6991, 7504, 7504, 7504, 7504,
+ 7504, 7001, 7504, 7504, 6993, 7015, 6983, 7008, 7504, 7002,
+ 7012, 7031, 7035, 7026, 7039, 7011, 7028, 7027, 7032, 7044,
+
+ 7046, 7050, 7051, 7056, 7067, 7057, 7059, 7079, 7080, 7062,
+ 7071, 7082, 7088, 7090, 7074, 7087, 7105, 7096, 7104, 7092,
+ 7504, 7098, 7504, 7103, 7504, 7504, 7116, 7123, 7119, 7109,
+ 7138, 7139, 7130, 7122, 7126, 7504, 7132, 7133, 7137, 7504,
+ 7136, 7153, 7142, 7154, 7157, 7159, 7168, 7171, 7164, 7174,
+ 7175, 7172, 7192, 7188, 7185, 7191, 7201, 7194, 7197, 7202,
+ 7208, 7504, 7210, 7203, 7204, 7217, 7220, 7215, 7224, 7219,
+ 7225, 7504, 7227, 7246, 7240, 7229, 7238, 7237, 7259, 7256,
+ 7249, 7504, 7242, 7270, 7272, 7273, 7277, 7275, 7283, 7284,
+ 7279, 7287, 7294, 7281, 7286, 7302, 7297, 7307, 7306, 7504,
+
+ 7315, 7308, 7504, 7317, 7321, 7313, 7318, 7330, 7504, 7328,
+ 7319, 7341, 7346, 7350, 7344, 7504, 7356, 7361, 7355, 7504,
+ 7358, 7504, 7504, 7364, 7348, 7353, 7366, 7370, 7504, 7504,
+ 7504, 7412, 7419, 7426, 7433, 7440, 83, 7447, 7454, 7461,
+ 7468, 7475, 7482, 7489, 7496
} ;
-static yyconst flex_int16_t yy_def[2645] =
+static yyconst flex_int16_t yy_def[2646] =
{ 0,
- 2630, 1, 2631, 2631, 2632, 2632, 2633, 2633, 2634, 2634,
- 2635, 2635, 2630, 2636, 2630, 2630, 2630, 2630, 2637, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2638, 2630, 2630, 2630, 2638, 2639, 2630, 2630,
- 2630, 2639, 2640, 2630, 2630, 2630, 2630, 2640, 2641, 2630,
- 2630, 2630, 2641, 2642, 2630, 2643, 2630, 2642, 2642, 2636,
- 2636, 2630, 2644, 2637, 2644, 2637, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2638,
- 2638, 2639, 2639, 2640, 2640, 2630, 2641, 2641, 2642, 2642,
- 2643, 2643, 2642, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2642, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2642, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2630, 2636, 2642, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2642, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2630, 2630, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2642, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2630, 2636, 2636, 2642, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2630, 2636, 2636, 2636, 2636, 2630, 2636, 2630, 2636,
-
- 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2630,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
- 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2630, 2636, 2630, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2630, 2630, 2636, 2630, 2636, 2636, 2630, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2630,
- 2630, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
-
- 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2630, 2630, 2636, 2630, 2636, 2630, 2630,
- 2630, 2636, 2636, 2636, 2630, 2636, 2630, 2636, 2636, 2636,
- 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
- 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636,
-
- 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2630, 2636,
- 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2630, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2630,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2630,
- 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2630, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2630, 2636, 2630, 2636, 2630, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636,
-
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2630, 2630, 2630, 2630, 2636, 2636, 2636, 2630,
- 2630, 2636, 2636, 2630, 2636, 2630, 2636, 2630, 2636, 2636,
- 2636, 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
-
- 2636, 2636, 2630, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2630, 2636, 2636, 2630, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2630,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2630, 2630, 2636, 2630, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
- 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2630,
-
- 2636, 2630, 2630, 2636, 2636, 2636, 2630, 2630, 2630, 2636,
- 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
- 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2630, 2630, 2636, 2630, 2630, 2636, 2636, 2636,
- 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2630, 2630, 2630,
- 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
-
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
- 2636, 2630, 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
- 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
-
- 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
- 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
- 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2630, 0,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630
+ 2631, 1, 2632, 2632, 2633, 2633, 2634, 2634, 2635, 2635,
+ 2636, 2636, 2631, 2637, 2631, 2631, 2631, 2631, 2638, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2639, 2631, 2631, 2631, 2639, 2640, 2631, 2631,
+ 2631, 2640, 2641, 2631, 2631, 2631, 2631, 2641, 2642, 2631,
+ 2631, 2631, 2642, 2643, 2631, 2644, 2631, 2643, 2643, 2637,
+ 2637, 2631, 2645, 2638, 2645, 2638, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2639,
+ 2639, 2640, 2640, 2641, 2641, 2631, 2642, 2642, 2643, 2643,
+ 2644, 2644, 2643, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2643, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2643, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2637, 2643, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2643, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2631, 2631, 2637, 2631, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2643, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2631, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2631, 2637, 2637, 2643, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2631, 2637, 2637, 2637, 2637, 2631, 2637, 2631, 2637,
+
+ 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2631, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2631, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2637, 2631, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2631, 2631, 2637, 2631, 2637, 2637, 2631, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2631,
+ 2631, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2631, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2631,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+
+ 2631, 2631, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2631, 2637, 2631, 2637, 2631, 2631,
+ 2631, 2637, 2637, 2637, 2631, 2637, 2631, 2637, 2637, 2637,
+ 2637, 2637, 2631, 2637, 2637, 2637, 2631, 2637, 2637, 2637,
+ 2637, 2631, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2631, 2637, 2637, 2637,
+
+ 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2631, 2637,
+ 2637, 2637, 2631, 2631, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2631, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637,
+ 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2631, 2631,
+ 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2631, 2631,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2631, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2631, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2631, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2631, 2637, 2637, 2631, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2631, 2637, 2631, 2637, 2631, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2631, 2637, 2637, 2637,
+
+ 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2631, 2631, 2631, 2631, 2637, 2637, 2637, 2631,
+ 2631, 2637, 2637, 2631, 2637, 2631, 2637, 2631, 2637, 2637,
+ 2637, 2631, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+
+ 2637, 2637, 2631, 2637, 2631, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2631, 2637, 2637, 2631, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2631, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2631,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2631, 2631, 2637, 2631, 2637, 2637, 2631, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2631, 2631, 2631, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2631,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+
+ 2631, 2637, 2631, 2631, 2637, 2637, 2637, 2631, 2631, 2631,
+ 2637, 2631, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2631,
+ 2637, 2631, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2631, 2631, 2637, 2631, 2631, 2637, 2637,
+ 2637, 2631, 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2631, 2631, 2637, 2637, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2631, 2631, 2631, 2631,
+ 2631, 2637, 2631, 2631, 2637, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2631, 2637, 2631, 2637, 2631, 2631, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2631,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2631,
+
+ 2637, 2637, 2631, 2637, 2637, 2637, 2637, 2637, 2631, 2637,
+ 2637, 2637, 2637, 2637, 2637, 2631, 2637, 2637, 2637, 2631,
+ 2637, 2631, 2631, 2637, 2637, 2637, 2637, 2637, 2631, 2631,
+ 0, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631
} ;
-static yyconst flex_uint16_t yy_nxt[7592] =
+static yyconst flex_uint16_t yy_nxt[7571] =
{ 0,
14, 15, 16, 17, 18, 19, 18, 14, 14, 14,
14, 14, 18, 20, 21, 22, 23, 24, 25, 14,
@@ -1338,52 +1339,52 @@ static yyconst flex_uint16_t yy_nxt[7592] =
171, 134, 135, 114, 173, 145, 177, 143, 141, 115,
71, 161, 116, 136, 132, 71, 198, 137, 172, 117,
123, 138, 71, 124, 133, 160, 71, 256, 134, 135,
- 125, 2630, 71, 177, 126, 127, 71, 178, 161, 71,
- 136, 2630, 71, 198, 137, 172, 71, 123, 138, 70,
+ 125, 2631, 71, 177, 126, 127, 71, 178, 161, 71,
+ 136, 2631, 71, 198, 137, 172, 71, 123, 138, 70,
124, 70, 70, 75, 70, 75, 75, 125, 75, 71,
70, 126, 127, 149, 178, 149, 149, 70, 149, 70,
70, 75, 70, 75, 75, 165, 75, 174, 70, 167,
- 168, 166, 75, 2630, 71, 175, 176, 179, 71, 180,
- 181, 152, 2630, 2630, 2630, 186, 71, 188, 2630, 197,
- 2630, 71, 165, 71, 174, 71, 167, 168, 166, 76,
+ 168, 166, 75, 2631, 71, 175, 176, 179, 71, 180,
+ 181, 152, 2631, 2631, 2631, 186, 71, 188, 2631, 197,
+ 2631, 71, 165, 71, 174, 71, 167, 168, 166, 76,
71, 71, 175, 176, 179, 182, 180, 181, 183, 187,
194, 189, 71, 196, 188, 195, 197, 71, 71, 191,
- 199, 184, 185, 192, 200, 2630, 71, 201, 2630, 71,
- 2630, 190, 182, 71, 71, 183, 187, 194, 189, 193,
+ 199, 184, 185, 192, 200, 2631, 71, 201, 2631, 71,
+ 2631, 190, 182, 71, 71, 183, 187, 194, 189, 193,
196, 71, 195, 71, 71, 202, 191, 199, 184, 185,
192, 200, 71, 203, 201, 204, 205, 206, 190, 209,
- 208, 207, 71, 210, 214, 71, 193, 71, 2630, 215,
+ 208, 207, 71, 210, 214, 71, 193, 71, 2631, 215,
- 71, 2630, 202, 222, 331, 2630, 71, 71, 71, 71,
+ 71, 2631, 202, 222, 331, 2631, 71, 71, 71, 71,
203, 219, 204, 205, 206, 71, 209, 208, 207, 211,
210, 214, 221, 223, 216, 71, 215, 224, 212, 71,
222, 71, 225, 226, 213, 217, 71, 71, 219, 218,
- 2630, 71, 71, 71, 229, 228, 211, 227, 71, 221,
+ 2631, 71, 71, 71, 229, 228, 211, 227, 71, 221,
223, 216, 231, 71, 224, 212, 71, 236, 232, 225,
226, 213, 217, 233, 234, 230, 218, 71, 239, 71,
- 71, 229, 228, 71, 227, 235, 2630, 2630, 71, 231,
- 71, 2630, 240, 2630, 236, 232, 2630, 237, 2630, 2630,
+ 71, 229, 228, 71, 227, 235, 2631, 2631, 71, 231,
+ 71, 2631, 240, 2631, 236, 232, 2631, 237, 2631, 2631,
233, 234, 230, 144, 238, 144, 144, 71, 144, 245,
71, 149, 235, 149, 149, 75, 149, 75, 75, 240,
75, 150, 242, 241, 237, 71, 71, 246, 243, 247,
- 248, 238, 71, 2630, 71, 244, 245, 71, 249, 252,
+ 248, 238, 71, 2631, 71, 244, 245, 71, 249, 252,
251, 250, 71, 255, 288, 253, 71, 71, 71, 242,
241, 254, 292, 152, 246, 243, 247, 248, 71, 257,
71, 267, 244, 258, 268, 249, 265, 251, 250, 71,
255, 71, 253, 71, 266, 272, 71, 270, 254, 269,
- 259, 2630, 71, 71, 71, 2630, 71, 71, 267, 273,
- 258, 268, 71, 265, 71, 278, 316, 2630, 71, 274,
- 2630, 266, 272, 275, 71, 271, 269, 259, 260, 71,
+ 259, 2631, 71, 71, 71, 2631, 71, 71, 267, 273,
+ 258, 268, 71, 265, 71, 278, 316, 2631, 71, 274,
+ 2631, 266, 272, 275, 71, 271, 269, 259, 260, 71,
289, 71, 71, 261, 276, 71, 273, 277, 262, 71,
279, 280, 278, 316, 263, 264, 274, 290, 285, 71,
- 275, 71, 271, 2630, 406, 260, 71, 289, 291, 294,
+ 275, 71, 271, 2631, 406, 260, 71, 289, 291, 294,
261, 276, 71, 71, 277, 262, 286, 279, 280, 281,
71, 263, 264, 71, 282, 285, 287, 293, 298, 71,
295, 71, 297, 296, 71, 291, 283, 71, 284, 71,
- 299, 71, 300, 286, 302, 71, 281, 2630, 71, 301,
+ 299, 71, 300, 286, 302, 71, 281, 2631, 71, 301,
71, 282, 303, 287, 293, 298, 305, 295, 71, 304,
296, 307, 306, 283, 71, 284, 71, 71, 308, 71,
309, 302, 71, 71, 71, 310, 301, 71, 311, 303,
@@ -1399,23 +1400,23 @@ static yyconst flex_uint16_t yy_nxt[7592] =
340, 343, 71, 71, 71, 71, 71, 335, 71, 337,
333, 341, 344, 347, 348, 349, 71, 350, 351, 353,
- 2630, 352, 2630, 71, 336, 368, 342, 340, 343, 71,
- 71, 71, 71, 354, 356, 71, 71, 357, 2630, 344,
+ 2631, 352, 2631, 71, 336, 368, 342, 340, 343, 71,
+ 71, 71, 71, 354, 356, 71, 71, 357, 2631, 344,
347, 348, 358, 363, 350, 351, 353, 71, 352, 355,
360, 71, 71, 361, 71, 362, 367, 71, 71, 71,
- 354, 356, 71, 364, 357, 365, 371, 2630, 71, 358,
+ 354, 356, 71, 364, 357, 365, 371, 2631, 71, 358,
363, 366, 369, 370, 71, 71, 355, 360, 376, 71,
361, 71, 362, 367, 372, 71, 374, 375, 377, 71,
364, 71, 365, 371, 71, 71, 379, 378, 366, 369,
381, 373, 71, 380, 390, 71, 71, 71, 382, 71,
71, 372, 71, 374, 375, 377, 383, 71, 384, 389,
- 385, 2630, 386, 379, 378, 71, 71, 381, 373, 71,
- 380, 387, 71, 388, 71, 382, 71, 391, 392, 2630,
+ 385, 2631, 386, 379, 378, 71, 71, 381, 373, 71,
+ 380, 387, 71, 388, 71, 382, 71, 391, 392, 2631,
71, 71, 398, 383, 397, 384, 389, 385, 71, 386,
- 2630, 71, 399, 71, 400, 2630, 2630, 71, 387, 393,
+ 2631, 71, 399, 71, 400, 2631, 2631, 71, 387, 393,
388, 71, 71, 407, 391, 392, 402, 394, 395, 398,
- 396, 397, 401, 403, 71, 2630, 2630, 71, 71, 399,
+ 396, 397, 401, 403, 71, 2631, 2631, 71, 71, 399,
71, 400, 404, 405, 410, 411, 393, 71, 71, 413,
407, 414, 417, 402, 394, 395, 71, 396, 408, 401,
403, 409, 412, 71, 415, 416, 418, 71, 71, 404,
@@ -1423,33 +1424,33 @@ static yyconst flex_uint16_t yy_nxt[7592] =
71, 71, 1057, 71, 421, 408, 422, 420, 409, 412,
71, 415, 416, 418, 71, 424, 71, 423, 425, 426,
- 431, 427, 419, 2630, 71, 2630, 2630, 428, 429, 437,
- 430, 421, 71, 71, 420, 472, 71, 71, 71, 2630,
+ 431, 427, 419, 2631, 71, 2631, 2631, 428, 429, 437,
+ 430, 421, 71, 71, 420, 472, 71, 71, 71, 2631,
432, 71, 424, 71, 423, 436, 426, 431, 427, 438,
71, 439, 71, 433, 428, 429, 434, 430, 435, 440,
946, 71, 472, 71, 71, 71, 447, 432, 448, 449,
- 461, 71, 436, 71, 71, 2630, 438, 450, 439, 453,
+ 461, 71, 436, 71, 71, 2631, 438, 450, 439, 453,
433, 71, 71, 434, 451, 435, 440, 441, 474, 442,
71, 71, 71, 447, 462, 448, 449, 461, 463, 465,
452, 71, 443, 464, 450, 444, 453, 445, 71, 446,
471, 451, 71, 71, 441, 474, 442, 466, 477, 468,
- 71, 462, 71, 150, 2630, 467, 465, 452, 473, 443,
+ 71, 462, 71, 150, 2631, 467, 465, 452, 473, 443,
71, 71, 444, 71, 445, 71, 446, 454, 455, 469,
- 470, 2630, 71, 483, 466, 477, 468, 456, 71, 457,
+ 470, 2631, 71, 483, 466, 477, 468, 456, 71, 457,
458, 459, 467, 478, 460, 473, 479, 71, 480, 475,
71, 482, 71, 71, 454, 455, 469, 470, 476, 485,
71, 481, 484, 71, 456, 71, 457, 458, 459, 71,
478, 460, 490, 479, 71, 480, 487, 486, 482, 498,
488, 71, 71, 71, 489, 476, 485, 494, 481, 484,
- 71, 491, 492, 2630, 71, 71, 493, 496, 71, 490,
+ 71, 491, 492, 2631, 71, 71, 493, 496, 71, 490,
497, 495, 71, 71, 486, 501, 498, 488, 71, 502,
- 71, 489, 71, 504, 494, 499, 509, 513, 503, 2630,
+ 71, 489, 71, 504, 494, 499, 509, 513, 503, 2631,
71, 71, 71, 493, 496, 71, 505, 497, 495, 71,
500, 71, 501, 506, 71, 511, 502, 510, 71, 71,
504, 517, 499, 509, 507, 503, 508, 512, 514, 71,
- 2630, 71, 524, 505, 71, 515, 516, 500, 71, 71,
+ 2631, 71, 524, 505, 71, 515, 516, 500, 71, 71,
506, 519, 511, 71, 510, 71, 520, 521, 517, 523,
518, 507, 522, 508, 512, 514, 71, 71, 525, 71,
71, 527, 515, 516, 71, 526, 71, 71, 519, 71,
@@ -1462,21 +1463,21 @@ static yyconst flex_uint16_t yy_nxt[7592] =
542, 536, 540, 547, 71, 537, 71, 71, 71, 538,
543, 539, 544, 546, 545, 541, 71, 71, 550, 552,
71, 71, 551, 71, 555, 560, 549, 542, 553, 71,
- 547, 554, 71, 557, 2630, 556, 558, 606, 71, 544,
+ 547, 554, 71, 557, 2631, 556, 558, 606, 71, 544,
546, 545, 71, 561, 71, 563, 552, 71, 562, 551,
71, 71, 560, 71, 564, 553, 71, 71, 554, 559,
557, 565, 556, 567, 566, 71, 569, 568, 71, 71,
- 561, 578, 563, 2630, 71, 562, 71, 71, 71, 71,
+ 561, 578, 563, 2631, 71, 562, 71, 71, 71, 71,
577, 564, 580, 71, 581, 71, 559, 71, 565, 582,
567, 566, 579, 569, 568, 570, 583, 584, 578, 585,
571, 71, 572, 71, 588, 71, 71, 577, 71, 580,
573, 581, 589, 574, 575, 71, 582, 71, 71, 579,
576, 71, 570, 583, 584, 586, 585, 571, 591, 572,
- 2630, 588, 592, 595, 71, 587, 71, 573, 590, 589,
+ 2631, 588, 592, 595, 71, 587, 71, 573, 590, 589,
574, 575, 593, 597, 594, 71, 596, 576, 71, 600,
- 599, 71, 602, 2630, 71, 591, 71, 71, 71, 592,
+ 599, 71, 602, 2631, 71, 591, 71, 71, 71, 592,
595, 598, 587, 603, 71, 590, 71, 71, 71, 593,
597, 594, 71, 596, 601, 604, 600, 599, 609, 602,
605, 607, 71, 608, 71, 610, 71, 611, 598, 617,
@@ -1494,7 +1495,7 @@ static yyconst flex_uint16_t yy_nxt[7592] =
651, 650, 653, 639, 71, 640, 71, 641, 71, 642,
643, 644, 71, 652, 71, 71, 645, 658, 647, 71,
71, 654, 648, 665, 649, 657, 655, 659, 650, 653,
- 656, 664, 71, 660, 71, 71, 71, 661, 662, 2630,
+ 656, 664, 71, 660, 71, 71, 71, 661, 662, 2631,
652, 71, 666, 71, 658, 71, 663, 672, 654, 667,
665, 71, 657, 655, 659, 71, 669, 656, 71, 71,
@@ -1506,8 +1507,8 @@ static yyconst flex_uint16_t yy_nxt[7592] =
697, 71, 71, 680, 681, 71, 690, 685, 682, 691,
693, 71, 694, 71, 692, 71, 683, 684, 687, 703,
71, 695, 696, 689, 71, 699, 71, 71, 71, 71,
- 698, 700, 71, 690, 705, 701, 2630, 693, 71, 694,
- 704, 71, 706, 71, 708, 2630, 2630, 707, 695, 696,
+ 698, 700, 71, 690, 705, 701, 2631, 693, 71, 694,
+ 704, 71, 706, 71, 708, 2631, 2631, 707, 695, 696,
702, 71, 699, 71, 710, 71, 71, 698, 700, 71,
711, 705, 701, 709, 712, 71, 713, 704, 71, 714,
@@ -1516,8 +1517,8 @@ static yyconst flex_uint16_t yy_nxt[7592] =
709, 712, 721, 713, 722, 723, 714, 71, 726, 716,
715, 71, 71, 717, 71, 724, 71, 71, 727, 729,
71, 718, 720, 719, 728, 730, 71, 71, 71, 721,
- 71, 722, 723, 732, 71, 726, 733, 2630, 734, 731,
- 2630, 71, 724, 737, 735, 727, 729, 71, 71, 71,
+ 71, 722, 723, 732, 71, 726, 733, 2631, 734, 731,
+ 2631, 71, 724, 737, 735, 727, 729, 71, 71, 71,
736, 728, 730, 738, 740, 741, 742, 739, 71, 71,
732, 749, 71, 733, 71, 734, 731, 71, 71, 71,
@@ -1528,19 +1529,19 @@ static yyconst flex_uint16_t yy_nxt[7592] =
71, 71, 746, 748, 150, 71, 750, 751, 754, 753,
71, 71, 752, 758, 755, 756, 759, 760, 767, 762,
757, 71, 766, 71, 765, 71, 71, 763, 768, 71,
- 71, 772, 770, 769, 773, 71, 2630, 2630, 2630, 771,
+ 71, 772, 770, 769, 773, 71, 2631, 2631, 2631, 771,
758, 792, 71, 759, 760, 71, 762, 71, 71, 766,
71, 765, 784, 71, 763, 768, 71, 782, 774, 770,
769, 773, 775, 71, 71, 776, 771, 71, 783, 71,
- 71, 786, 71, 71, 789, 785, 2630, 787, 71, 784,
- 2630, 2630, 788, 2630, 782, 774, 790, 804, 2630, 775,
+ 71, 786, 71, 71, 789, 785, 2631, 787, 71, 784,
+ 2631, 2631, 788, 2631, 782, 774, 790, 804, 2631, 775,
71, 805, 776, 777, 71, 783, 71, 778, 786, 71,
779, 789, 785, 71, 787, 791, 800, 780, 71, 788,
- 781, 71, 71, 790, 804, 71, 801, 2630, 71, 2630,
+ 781, 71, 71, 790, 804, 71, 801, 2631, 71, 2631,
777, 802, 71, 803, 778, 71, 806, 779, 71, 830,
71, 807, 791, 800, 780, 808, 811, 781, 793, 794,
- 2630, 795, 2630, 801, 796, 810, 71, 71, 802, 797,
+ 2631, 795, 2631, 801, 796, 810, 71, 71, 802, 797,
803, 809, 812, 806, 814, 798, 799, 71, 807, 813,
71, 71, 808, 811, 71, 793, 794, 71, 795, 71,
@@ -1555,12 +1556,12 @@ static yyconst flex_uint16_t yy_nxt[7592] =
845, 834, 71, 835, 838, 844, 846, 71, 71, 847,
848, 841, 850, 71, 849, 71, 842, 851, 71, 852,
- 2630, 71, 853, 854, 71, 2630, 861, 845, 71, 856,
+ 2631, 71, 853, 854, 71, 2631, 861, 845, 71, 856,
71, 71, 844, 846, 71, 71, 847, 848, 71, 850,
860, 849, 857, 855, 851, 71, 852, 71, 71, 853,
- 854, 71, 858, 71, 2630, 862, 856, 864, 863, 865,
- 859, 71, 2630, 71, 866, 71, 71, 860, 867, 857,
- 855, 71, 869, 71, 868, 870, 71, 2630, 874, 858,
+ 854, 71, 858, 71, 2631, 862, 856, 864, 863, 865,
+ 859, 71, 2631, 71, 866, 71, 71, 860, 867, 857,
+ 855, 71, 869, 71, 868, 870, 71, 2631, 874, 858,
71, 71, 862, 871, 864, 863, 865, 859, 872, 873,
71, 866, 71, 71, 878, 867, 71, 877, 71, 869,
@@ -1572,23 +1573,23 @@ static yyconst flex_uint16_t yy_nxt[7592] =
882, 895, 884, 893, 71, 886, 899, 71, 71, 901,
71, 891, 71, 900, 888, 71, 903, 894, 906, 902,
71, 908, 892, 898, 71, 896, 71, 71, 895, 904,
- 893, 71, 905, 899, 909, 907, 912, 910, 71, 2630,
+ 893, 71, 905, 899, 909, 907, 912, 910, 71, 2631,
900, 71, 71, 71, 71, 150, 902, 71, 908, 914,
911, 943, 71, 915, 71, 924, 904, 71, 71, 905,
71, 909, 907, 912, 910, 913, 71, 916, 925, 917,
- 2630, 926, 71, 71, 71, 71, 914, 911, 943, 928,
+ 2631, 926, 71, 71, 71, 71, 914, 911, 943, 928,
915, 71, 924, 71, 927, 930, 71, 931, 932, 929,
- 2630, 71, 913, 933, 916, 925, 917, 918, 926, 919,
- 71, 71, 71, 920, 934, 921, 928, 71, 2630, 2630,
- 922, 927, 930, 935, 931, 923, 929, 71, 2630, 937,
+ 2631, 71, 913, 933, 916, 925, 917, 918, 926, 919,
+ 71, 71, 71, 920, 934, 921, 928, 71, 2631, 2631,
+ 922, 927, 930, 935, 931, 923, 929, 71, 2631, 937,
71, 71, 936, 939, 918, 940, 919, 941, 944, 938,
920, 934, 921, 71, 71, 942, 71, 922, 71, 945,
935, 71, 923, 947, 949, 71, 937, 948, 71, 936,
- 939, 957, 940, 71, 941, 71, 938, 956, 2630, 960,
- 71, 968, 942, 2630, 958, 959, 71, 2630, 2630, 962,
- 2630, 949, 71, 71, 948, 71, 950, 71, 957, 966,
+ 939, 957, 940, 71, 941, 71, 938, 956, 2631, 960,
+ 71, 968, 942, 2631, 958, 959, 71, 2631, 2631, 962,
+ 2631, 949, 71, 71, 948, 71, 950, 71, 957, 966,
71, 951, 961, 952, 956, 71, 960, 963, 71, 964,
965, 958, 959, 71, 953, 954, 962, 71, 71, 969,
71, 955, 71, 950, 71, 970, 71, 967, 951, 961,
@@ -1615,28 +1616,28 @@ static yyconst flex_uint16_t yy_nxt[7592] =
1032, 71, 1036, 1038, 1027, 71, 71, 71, 1029, 1028,
1037, 1039, 71, 1040, 1033, 1030, 1041, 71, 71, 1043,
1044, 71, 1042, 1049, 71, 1031, 1045, 1032, 71, 1036,
- 1038, 1050, 71, 1047, 1052, 1046, 2630, 1037, 1039, 1048,
- 71, 1053, 71, 71, 71, 71, 1043, 1044, 2630, 1042,
+ 1038, 1050, 71, 1047, 1052, 1046, 2631, 1037, 1039, 1048,
+ 71, 1053, 71, 71, 71, 71, 1043, 1044, 2631, 1042,
71, 71, 1051, 1045, 71, 71, 71, 1054, 1055, 1056,
1047, 1052, 1046, 71, 71, 71, 1048, 1058, 71, 1059,
1060, 71, 1062, 1061, 71, 71, 71, 1063, 71, 1051,
71, 1065, 1064, 1066, 1054, 1055, 1056, 71, 1068, 1067,
1069, 1071, 1072, 71, 1058, 71, 1059, 1060, 71, 1062,
- 1061, 1074, 2630, 1073, 71, 1070, 71, 1075, 1065, 1064,
+ 1061, 1074, 2631, 1073, 71, 1070, 71, 1075, 1065, 1064,
1066, 71, 71, 1078, 1076, 1068, 1067, 71, 1077, 1081,
- 1084, 1079, 2630, 71, 71, 71, 71, 71, 1074, 71,
+ 1084, 1079, 2631, 71, 71, 71, 71, 71, 1074, 71,
1073, 71, 1070, 71, 1075, 71, 1080, 1082, 1085, 71,
1078, 1076, 1083, 1086, 71, 1077, 1081, 71, 1079, 71,
- 71, 71, 71, 1087, 1088, 2630, 1093, 1089, 1095, 1096,
+ 71, 71, 71, 1087, 1088, 2631, 1093, 1089, 1095, 1096,
- 1124, 71, 2630, 1080, 1082, 1085, 1090, 1094, 1091, 1083,
- 1086, 1092, 71, 1097, 71, 2630, 1104, 1100, 71, 71,
+ 1124, 71, 2631, 1080, 1082, 1085, 1090, 1094, 1091, 1083,
+ 1086, 1092, 71, 1097, 71, 2631, 1104, 1100, 71, 71,
1087, 1088, 71, 1093, 1089, 1095, 1096, 1098, 1099, 71,
1102, 1105, 71, 1090, 1094, 1091, 71, 71, 1092, 71,
1097, 1101, 1103, 71, 1100, 1107, 71, 1108, 1109, 71,
- 71, 2630, 71, 71, 1098, 1099, 1106, 1102, 1105, 1110,
- 1114, 1112, 2630, 71, 1115, 1111, 71, 71, 1101, 1103,
+ 71, 2631, 71, 71, 1098, 1099, 1106, 1102, 1105, 1110,
+ 1114, 1112, 2631, 71, 1115, 1111, 71, 71, 1101, 1103,
71, 71, 1107, 71, 1108, 1109, 71, 1113, 1117, 71,
71, 1119, 1116, 1106, 71, 1118, 1110, 1114, 1112, 71,
71, 1115, 1111, 1121, 71, 1120, 1122, 1123, 1125, 1126,
@@ -1644,225 +1645,225 @@ static yyconst flex_uint16_t yy_nxt[7592] =
71, 1129, 71, 71, 1113, 1117, 1127, 71, 1119, 1116,
1128, 71, 1118, 71, 1130, 71, 71, 1133, 71, 1131,
1121, 1132, 1120, 1122, 1123, 1125, 1126, 1134, 1129, 71,
- 71, 1135, 71, 1127, 1144, 2630, 1158, 1128, 1142, 2630,
- 2630, 71, 1143, 1147, 1133, 1145, 71, 1159, 1132, 2630,
- 2630, 2630, 71, 1146, 1134, 2630, 1148, 71, 1135, 1136,
- 71, 71, 1137, 1138, 2630, 1142, 71, 1139, 71, 1143,
+ 71, 1135, 71, 1127, 1144, 2631, 1158, 1128, 1142, 2631,
+ 2631, 71, 1143, 1147, 1133, 1145, 71, 1159, 1132, 2631,
+ 2631, 2631, 71, 1146, 1134, 2631, 1148, 71, 1135, 1136,
+ 71, 71, 1137, 1138, 2631, 1142, 71, 1139, 71, 1143,
1147, 71, 1145, 1140, 1149, 71, 1150, 1141, 71, 71,
1146, 71, 1151, 1148, 1152, 1153, 1136, 1154, 1155, 1137,
- 1138, 1160, 71, 1161, 1139, 1156, 71, 1167, 1157, 2630,
+ 1138, 1160, 71, 1161, 1139, 1156, 71, 1167, 1157, 2631,
1140, 1149, 71, 1150, 1141, 71, 71, 71, 71, 1151,
- 71, 1152, 1153, 71, 1154, 1155, 71, 2630, 1160, 1170,
+ 71, 1152, 1153, 71, 1154, 1155, 71, 2631, 1160, 1170,
1161, 1172, 1156, 71, 1167, 1157, 1162, 1169, 1171, 1173,
71, 1163, 1179, 1164, 1174, 1165, 1176, 1166, 1178, 1175,
71, 71, 71, 71, 71, 1177, 1170, 71, 1172, 1180,
71, 71, 1182, 1162, 1169, 1171, 1173, 71, 1163, 1179,
1164, 1181, 1165, 1176, 1166, 1178, 71, 71, 1183, 71,
1184, 71, 1177, 1185, 1187, 1186, 1180, 1189, 1188, 1182,
- 71, 71, 1190, 71, 1191, 1192, 71, 2630, 1181, 1193,
- 1197, 1194, 71, 71, 2630, 1183, 71, 1184, 1195, 71,
+ 71, 71, 1190, 71, 1191, 1192, 71, 2631, 1181, 1193,
+ 1197, 1194, 71, 71, 2631, 1183, 71, 1184, 1195, 71,
1185, 1187, 1186, 1198, 1189, 1188, 1199, 1200, 1203, 71,
71, 1191, 71, 1196, 71, 71, 1193, 71, 1194, 1205,
71, 71, 1201, 1207, 1204, 1195, 1202, 1206, 71, 71,
1198, 71, 71, 71, 1200, 71, 1208, 1209, 1211, 1210,
- 1196, 71, 2630, 1219, 1214, 71, 1205, 1212, 71, 1201,
+ 1196, 71, 2631, 1219, 1214, 71, 1205, 1212, 71, 1201,
1207, 1204, 1216, 1202, 1206, 1213, 1217, 71, 1215, 71,
71, 71, 1220, 1208, 1209, 1211, 1210, 71, 1221, 71,
71, 1214, 1218, 71, 1212, 71, 71, 71, 1222, 1216,
1223, 1224, 1213, 1217, 1225, 1215, 71, 1226, 1229, 71,
71, 1232, 71, 1230, 71, 1221, 1227, 1228, 71, 1218,
- 71, 1231, 1233, 71, 71, 1237, 2630, 1223, 1224, 1236,
+ 71, 1231, 1233, 71, 71, 1237, 2631, 1223, 1224, 1236,
71, 1225, 71, 1234, 71, 1229, 71, 1238, 1232, 1235,
71, 1240, 1239, 1227, 1228, 71, 71, 1242, 1241, 71,
71, 71, 1237, 71, 71, 71, 1236, 1244, 1245, 1246,
1234, 1243, 1252, 71, 1238, 1247, 1235, 71, 1240, 1239,
- 71, 1249, 1248, 1251, 1242, 1241, 1250, 1253, 2630, 71,
+ 71, 1249, 1248, 1251, 1242, 1241, 1250, 1253, 2631, 71,
71, 71, 1254, 1259, 1244, 71, 1246, 71, 1243, 1252,
71, 71, 1247, 1255, 71, 1257, 1256, 1261, 1258, 1248,
- 1251, 1260, 2630, 71, 1253, 71, 2630, 1262, 71, 1254,
+ 1251, 1260, 2631, 71, 1253, 71, 2631, 1262, 71, 1254,
1259, 1263, 1292, 1264, 71, 1265, 71, 71, 1270, 1267,
1255, 71, 1257, 1256, 1266, 1258, 1268, 71, 1260, 71,
71, 71, 1269, 71, 1262, 71, 1272, 1273, 1263, 71,
1264, 71, 1265, 1271, 71, 1270, 1267, 1274, 1278, 1275,
- 1276, 1266, 71, 1268, 2630, 1279, 71, 71, 1277, 1269,
+ 1276, 1266, 71, 1268, 2631, 1279, 71, 71, 1277, 1269,
71, 71, 71, 1272, 1273, 71, 71, 71, 1280, 1282,
- 1271, 1281, 1283, 2630, 1274, 1278, 1275, 1276, 1284, 71,
- 71, 1285, 1279, 1286, 2630, 1277, 1287, 1290, 1289, 1291,
+ 1271, 1281, 1283, 2631, 1274, 1278, 1275, 1276, 1284, 71,
+ 71, 1285, 1279, 1286, 2631, 1277, 1287, 1290, 1289, 1291,
71, 71, 71, 71, 1288, 1280, 1282, 1293, 1281, 1283,
- 71, 71, 2630, 2630, 1294, 1284, 71, 1295, 1285, 71,
+ 71, 71, 2631, 2631, 1294, 1284, 71, 1295, 1285, 71,
1286, 71, 71, 1287, 1290, 1289, 1291, 1296, 1297, 1298,
- 1302, 1288, 1300, 1299, 1301, 2630, 1303, 2630, 2630, 71,
+ 1302, 1288, 1300, 1299, 1301, 2631, 1303, 2631, 2631, 71,
71, 1294, 71, 71, 1295, 71, 71, 71, 1305, 1306,
- 71, 71, 2630, 1307, 71, 1297, 1298, 1302, 1304, 1300,
+ 71, 71, 2631, 1307, 71, 1297, 1298, 1302, 1304, 1300,
1299, 1301, 71, 1303, 1308, 71, 71, 71, 1309, 1311,
1313, 71, 71, 1310, 1312, 1305, 1306, 71, 1314, 1315,
1307, 1316, 1319, 1317, 1318, 1304, 71, 71, 1321, 71,
71, 1308, 1322, 71, 1320, 71, 71, 1313, 1323, 1324,
- 71, 71, 1334, 2630, 1325, 1314, 1315, 71, 1316, 1326,
+ 71, 71, 1334, 2631, 1325, 1314, 1315, 71, 1316, 1326,
1317, 1318, 71, 71, 71, 1321, 1327, 71, 1331, 1322,
1328, 1320, 1329, 1330, 71, 1333, 1324, 1332, 71, 71,
- 71, 1325, 1336, 71, 1335, 71, 1326, 2630, 2630, 1337,
- 71, 2630, 1338, 1327, 71, 1331, 1343, 1328, 1339, 1329,
+ 71, 1325, 1336, 71, 1335, 71, 1326, 2631, 2631, 1337,
+ 71, 2631, 1338, 1327, 71, 1331, 1343, 1328, 1339, 1329,
1330, 71, 1333, 71, 1332, 71, 71, 1345, 1344, 1336,
71, 1335, 71, 1340, 71, 1346, 1337, 1341, 71, 1338,
- 71, 1347, 2630, 1343, 1348, 1339, 71, 1349, 2630, 1350,
- 1342, 1356, 1351, 1355, 1345, 1344, 1352, 2630, 71, 1358,
+ 71, 1347, 2631, 1343, 1348, 1339, 71, 1349, 2631, 1350,
+ 1342, 1356, 1351, 1355, 1345, 1344, 1352, 2631, 71, 1358,
1340, 1353, 1346, 71, 1341, 71, 71, 1359, 71, 71,
71, 1348, 71, 1354, 1349, 71, 1350, 1342, 71, 1351,
- 71, 1357, 1361, 1352, 1360, 71, 1358, 2630, 1353, 71,
- 71, 1362, 1363, 1364, 1359, 1365, 1369, 1366, 2630, 1367,
+ 71, 1357, 1361, 1352, 1360, 71, 1358, 2631, 1353, 71,
+ 71, 1362, 1363, 1364, 1359, 1365, 1369, 1366, 2631, 1367,
1354, 1368, 71, 1371, 71, 1370, 71, 1372, 1357, 1375,
71, 1360, 1379, 71, 71, 1374, 71, 71, 71, 71,
1364, 71, 1365, 1369, 1366, 71, 1367, 71, 1368, 71,
1371, 1373, 1370, 1376, 1372, 71, 1375, 1377, 1378, 71,
- 1380, 1381, 1374, 71, 1382, 1384, 71, 1383, 71, 2630,
+ 1380, 1381, 1374, 71, 1382, 1384, 71, 1383, 71, 2631,
71, 1387, 71, 1385, 1386, 1388, 1390, 1389, 1373, 71,
1376, 71, 71, 71, 1377, 1378, 71, 1380, 1381, 71,
71, 1382, 1384, 71, 1383, 1393, 71, 1394, 1387, 71,
1385, 1386, 71, 1390, 1389, 1391, 1392, 1396, 71, 1395,
- 1397, 1398, 1399, 71, 2630, 1402, 1401, 71, 71, 1400,
+ 1397, 1398, 1399, 71, 2631, 1402, 1401, 71, 71, 1400,
- 2630, 1404, 1393, 71, 1394, 1403, 1406, 1408, 1411, 71,
+ 2631, 1404, 1393, 71, 1394, 1403, 1406, 1408, 1411, 71,
71, 71, 1391, 1392, 1396, 71, 1395, 1397, 1398, 1399,
71, 71, 1402, 1401, 1405, 1410, 1400, 71, 1407, 1409,
1414, 71, 1403, 71, 71, 1411, 1412, 71, 71, 1413,
1415, 71, 1416, 71, 1417, 1419, 71, 1418, 1424, 71,
- 2630, 1405, 1410, 2630, 71, 1407, 1409, 1414, 1430, 1425,
+ 2631, 1405, 1410, 2631, 71, 1407, 1409, 1414, 1430, 1425,
71, 1421, 71, 1412, 1422, 71, 1413, 1415, 71, 1416,
1420, 1417, 1419, 71, 1418, 1426, 1423, 71, 1427, 1433,
71, 71, 1428, 1429, 71, 71, 1425, 1431, 1421, 1432,
- 71, 1422, 2630, 71, 1434, 1435, 1438, 1420, 1439, 1441,
+ 71, 1422, 2631, 71, 1434, 1435, 1438, 1420, 1439, 1441,
71, 71, 1426, 1423, 71, 1427, 1433, 71, 71, 1428,
1429, 1436, 1440, 71, 1431, 71, 1432, 1437, 1443, 71,
1444, 1434, 1435, 1442, 71, 1453, 1445, 71, 71, 1447,
- 71, 71, 1446, 1449, 71, 1448, 71, 2630, 1436, 1440,
+ 71, 71, 1446, 1449, 71, 1448, 71, 2631, 1436, 1440,
71, 71, 71, 1451, 1437, 1443, 71, 71, 71, 1452,
1442, 1450, 1458, 1445, 1454, 1456, 1447, 71, 71, 1446,
1449, 71, 1448, 71, 71, 1455, 1460, 1457, 71, 1461,
- 1451, 1462, 71, 71, 1463, 2630, 1452, 1459, 1450, 71,
+ 1451, 1462, 71, 71, 1463, 2631, 1452, 1459, 1450, 71,
1468, 1454, 1456, 71, 71, 1466, 1464, 71, 71, 71,
- 1465, 2630, 1455, 1460, 1457, 71, 1461, 1467, 1462, 71,
+ 1465, 2631, 1455, 1460, 1457, 71, 1461, 1467, 1462, 71,
71, 1463, 1469, 71, 1459, 1470, 1472, 1468, 1471, 71,
1475, 1473, 1466, 1464, 1474, 1476, 71, 1465, 71, 71,
71, 1477, 1478, 1480, 1467, 1479, 1483, 1488, 1487, 1469,
- 2630, 71, 1470, 1472, 1481, 1471, 1482, 71, 1473, 71,
+ 2631, 71, 1470, 1472, 1481, 1471, 1482, 71, 1473, 71,
1489, 1474, 71, 1484, 71, 71, 71, 71, 1477, 71,
1480, 71, 1479, 1483, 1485, 1487, 71, 1486, 1490, 71,
- 1491, 1481, 1492, 1482, 1493, 71, 1497, 71, 1494, 2630,
+ 1491, 1481, 1492, 1482, 1493, 71, 1497, 71, 1494, 2631,
1484, 71, 71, 1495, 71, 71, 1496, 71, 71, 71,
1498, 1485, 1502, 1499, 1486, 1490, 1500, 1491, 71, 1492,
- 1501, 1493, 2630, 1497, 71, 1494, 1503, 2630, 1504, 1507,
+ 1501, 1493, 2631, 1497, 71, 1494, 1503, 2631, 1504, 1507,
1495, 1505, 1506, 1496, 71, 71, 71, 1498, 71, 1502,
1499, 71, 71, 1500, 1509, 1508, 71, 1501, 1511, 1510,
1512, 1513, 1514, 1503, 71, 1504, 1507, 1515, 1505, 1506,
- 71, 71, 1517, 1516, 1519, 1518, 1521, 2630, 1520, 1522,
- 1531, 71, 1508, 2630, 1537, 1511, 71, 1533, 1513, 71,
+ 71, 71, 1517, 1516, 1519, 1518, 1521, 2631, 1520, 1522,
+ 1531, 71, 1508, 2631, 1537, 1511, 71, 1533, 1513, 71,
1525, 71, 71, 71, 71, 71, 71, 1523, 71, 71,
1516, 1519, 1518, 1524, 71, 1520, 1522, 1526, 71, 1527,
1529, 1528, 71, 1530, 1533, 71, 71, 1525, 1532, 1535,
- 1534, 71, 2630, 71, 1523, 71, 71, 71, 71, 71,
+ 1534, 71, 2631, 71, 1523, 71, 71, 71, 71, 71,
1524, 1538, 71, 1540, 1526, 1536, 1527, 1529, 1528, 1539,
1530, 1542, 71, 1541, 1548, 1532, 1535, 1534, 71, 71,
71, 1543, 1544, 1545, 1546, 1547, 71, 1549, 1538, 71,
- 71, 1550, 1536, 1553, 71, 2630, 1539, 1555, 1542, 71,
+ 71, 1550, 1536, 1553, 71, 2631, 1539, 1555, 1542, 71,
1541, 1548, 71, 71, 71, 71, 1551, 1552, 1543, 1544,
1545, 1546, 1547, 1554, 71, 71, 1556, 71, 1550, 1558,
71, 71, 1557, 1559, 1555, 1560, 71, 71, 1564, 1561,
- 71, 71, 1562, 1551, 1552, 2630, 1566, 71, 1565, 1563,
+ 71, 71, 1562, 1551, 1552, 2631, 1566, 71, 1565, 1563,
1554, 71, 1567, 1556, 71, 1569, 1558, 1572, 1571, 1557,
- 1559, 1573, 1568, 1570, 2630, 71, 1561, 71, 71, 1562,
+ 1559, 1573, 1568, 1570, 2631, 71, 1561, 71, 71, 1562,
71, 1577, 71, 71, 71, 1565, 1563, 1578, 71, 1567,
71, 71, 71, 71, 1572, 1571, 1574, 1575, 1573, 1568,
1570, 71, 1576, 71, 1579, 71, 71, 1582, 1577, 1580,
- 1581, 71, 1586, 1587, 1578, 1584, 1585, 1593, 2630, 71,
+ 1581, 71, 1586, 1587, 1578, 1584, 1585, 1593, 2631, 71,
1583, 71, 71, 1574, 1575, 71, 1591, 1588, 71, 1576,
1589, 1579, 71, 71, 1582, 1592, 1580, 1581, 71, 71,
1594, 1590, 1584, 1585, 71, 71, 1596, 1583, 71, 1595,
1599, 71, 1597, 1591, 1588, 1600, 71, 1589, 71, 1598,
1601, 71, 1592, 1602, 1603, 71, 1604, 71, 1590, 1605,
1606, 1607, 71, 71, 1610, 71, 1595, 71, 71, 1597,
- 1608, 1615, 1600, 1609, 1617, 2630, 1598, 71, 71, 2630,
+ 1608, 1615, 1600, 1609, 1617, 2631, 1598, 71, 71, 2631,
- 1602, 1625, 71, 1604, 2630, 71, 71, 1606, 1607, 1619,
- 1622, 71, 2630, 2630, 1620, 2630, 71, 71, 1615, 71,
+ 1602, 1625, 71, 1604, 2631, 71, 71, 1606, 1607, 1619,
+ 1622, 71, 2631, 2631, 1620, 2631, 71, 71, 1615, 71,
1609, 1611, 1612, 1613, 1616, 1618, 71, 1621, 1614, 1623,
- 1624, 71, 71, 71, 2630, 71, 71, 1622, 1628, 1627,
+ 1624, 71, 71, 71, 2631, 71, 71, 1622, 1628, 1627,
71, 71, 71, 1626, 71, 71, 71, 1629, 1611, 1612,
1613, 1616, 1618, 1631, 1621, 1614, 1623, 1624, 1630, 71,
1632, 71, 1634, 1633, 1635, 1628, 1627, 71, 71, 1639,
- 1626, 1638, 1640, 2630, 71, 1636, 1637, 71, 2630, 71,
+ 1626, 1638, 1640, 2631, 71, 1636, 1637, 71, 2631, 71,
1631, 1641, 1642, 1648, 71, 1630, 1644, 1632, 71, 1634,
1633, 71, 1647, 71, 71, 1651, 71, 1650, 1638, 1640,
71, 71, 1636, 1637, 1643, 71, 1645, 71, 1641, 1642,
1646, 1649, 71, 1644, 71, 71, 1652, 71, 71, 1647,
- 1653, 71, 1654, 1655, 1650, 1656, 1657, 71, 1658, 2630,
+ 1653, 71, 1654, 1655, 1650, 1656, 1657, 71, 1658, 2631,
1659, 1643, 71, 1645, 71, 1662, 1660, 1646, 1649, 1661,
71, 71, 1663, 71, 71, 71, 1672, 71, 71, 1654,
1655, 1664, 1656, 1657, 71, 1658, 1665, 1659, 71, 1666,
1668, 71, 1662, 1660, 1669, 1670, 1661, 71, 71, 71,
- 2630, 1671, 71, 1672, 71, 1667, 1673, 71, 1664, 71,
- 1675, 1674, 71, 1665, 2630, 1677, 1666, 1668, 1676, 1679,
+ 2631, 1671, 71, 1672, 71, 1667, 1673, 71, 1664, 71,
+ 1675, 1674, 71, 1665, 2631, 1677, 1666, 1668, 1676, 1679,
1678, 1669, 1670, 1681, 1680, 1684, 1685, 71, 1671, 71,
71, 71, 1667, 1673, 1686, 1687, 71, 71, 1674, 1690,
- 1691, 71, 1677, 2630, 2630, 1676, 71, 1678, 1682, 1683,
+ 1691, 71, 1677, 2631, 2631, 1676, 71, 1678, 1682, 1683,
1681, 1680, 1694, 71, 1688, 71, 71, 71, 71, 1689,
71, 1686, 1687, 1692, 1695, 1697, 71, 71, 1693, 1698,
- 71, 1696, 71, 1699, 2630, 1682, 1683, 1703, 1701, 1700,
+ 71, 1696, 71, 1699, 2631, 1682, 1683, 1703, 1701, 1700,
71, 1688, 1705, 1702, 71, 71, 1689, 1715, 71, 1704,
- 1712, 2630, 1697, 71, 71, 71, 71, 1706, 1696, 1708,
+ 1712, 2631, 1697, 71, 71, 71, 71, 1706, 1696, 1708,
1699, 71, 71, 1707, 1710, 1701, 1700, 71, 1711, 71,
1702, 1709, 71, 1713, 71, 1714, 1704, 71, 71, 71,
1716, 1717, 71, 1718, 1706, 1721, 1708, 1719, 71, 1720,
- 1707, 1710, 1726, 71, 71, 1711, 1725, 2630, 1709, 1727,
+ 1707, 1710, 1726, 71, 71, 1711, 1725, 2631, 1709, 1727,
71, 71, 1714, 71, 71, 71, 1722, 1716, 1717, 71,
1718, 71, 1721, 1723, 1719, 1724, 1720, 71, 71, 71,
1730, 71, 1728, 1725, 1729, 1731, 1727, 1732, 71, 1733,
- 71, 1734, 71, 1722, 1735, 1737, 2630, 1736, 71, 71,
- 1723, 1746, 1724, 2630, 71, 71, 71, 71, 2630, 1728,
+ 71, 1734, 71, 1722, 1735, 1737, 2631, 1736, 71, 71,
+ 1723, 1746, 1724, 2631, 71, 71, 71, 71, 2631, 1728,
1738, 1729, 1731, 1741, 1732, 1739, 1733, 71, 1734, 71,
1742, 1735, 71, 71, 1736, 1743, 1740, 71, 71, 1744,
- 1754, 1745, 2630, 1751, 1753, 1747, 1749, 1738, 71, 1748,
+ 1754, 1745, 2631, 1751, 1753, 1747, 1749, 1738, 71, 1748,
1741, 71, 1739, 71, 71, 71, 71, 1742, 71, 1752,
71, 1750, 1743, 1740, 1755, 71, 1744, 1754, 1745, 71,
71, 1753, 1747, 1749, 71, 71, 1748, 1756, 1757, 1760,
- 1758, 2630, 1759, 1761, 1762, 1763, 1752, 71, 1750, 71,
- 1766, 71, 1765, 71, 2630, 1771, 71, 71, 71, 71,
+ 1758, 2631, 1759, 1761, 1762, 1763, 1752, 71, 1750, 71,
+ 1766, 71, 1765, 71, 2631, 1771, 71, 71, 71, 71,
71, 1764, 71, 1770, 1756, 1757, 1760, 1758, 71, 1759,
1761, 1762, 1763, 1767, 1769, 1772, 71, 1766, 71, 1765,
1773, 71, 71, 1775, 71, 1774, 1768, 71, 1764, 1776,
- 1770, 2630, 1777, 1778, 71, 1779, 71, 1781, 1786, 1780,
- 1767, 1769, 1772, 1784, 71, 71, 2630, 1773, 1783, 71,
+ 1770, 2631, 1777, 1778, 71, 1779, 71, 1781, 1786, 1780,
+ 1767, 1769, 1772, 1784, 71, 71, 2631, 1773, 1783, 71,
1775, 1782, 1774, 1768, 71, 1788, 1776, 71, 71, 1777,
1778, 71, 1779, 71, 1781, 71, 1780, 1785, 71, 71,
- 1784, 1787, 71, 1790, 1789, 1783, 2630, 71, 1782, 1792,
- 71, 1791, 1788, 1793, 1794, 1795, 1800, 2630, 71, 1804,
- 71, 1796, 1797, 2630, 1785, 71, 1798, 2630, 1787, 71,
+ 1784, 1787, 71, 1790, 1789, 1783, 2631, 71, 1782, 1792,
+ 71, 1791, 1788, 1793, 1794, 1795, 1800, 2631, 71, 1804,
+ 71, 1796, 1797, 2631, 1785, 71, 1798, 2631, 1787, 71,
1790, 1789, 1799, 71, 71, 71, 1792, 71, 1791, 1801,
1793, 71, 1795, 71, 1802, 71, 71, 1803, 1796, 1797,
- 1805, 71, 2630, 1798, 71, 1806, 71, 1809, 1810, 1799,
- 1807, 2630, 1811, 2630, 1812, 71, 1801, 1816, 1808, 2630,
+ 1805, 71, 2631, 1798, 71, 1806, 71, 1809, 1810, 1799,
+ 1807, 2631, 1811, 2631, 1812, 71, 1801, 1816, 1808, 2631,
1817, 1802, 71, 71, 1803, 1813, 71, 1805, 1814, 71,
71, 1815, 1806, 1818, 71, 1810, 1819, 1807, 71, 1811,
71, 1812, 71, 71, 1816, 1808, 71, 1817, 1822, 1820,
- 1821, 1823, 1813, 1824, 71, 1814, 2630, 1828, 1815, 1825,
+ 1821, 1823, 1813, 1824, 71, 1814, 2631, 1828, 1815, 1825,
71, 1831, 1826, 1819, 71, 71, 71, 71, 71, 1832,
71, 71, 1827, 71, 1833, 1822, 1820, 1821, 1823, 1829,
1824, 71, 1830, 71, 1828, 1840, 1825, 1834, 1831, 1826,
@@ -1873,20 +1874,20 @@ static yyconst flex_uint16_t yy_nxt[7592] =
1838, 1852, 1853, 71, 1843, 1841, 71, 1844, 71, 71,
1855, 1859, 1858, 1845, 1860, 71, 1861, 1863, 71, 1846,
- 71, 1851, 2630, 71, 1856, 71, 71, 2630, 1852, 1853,
+ 71, 1851, 2631, 71, 1856, 71, 71, 2631, 1852, 1853,
71, 71, 1864, 1862, 1865, 1857, 71, 1855, 71, 1858,
71, 1860, 71, 1861, 1866, 1867, 1868, 1870, 1869, 71,
- 2630, 1856, 2630, 1874, 71, 71, 1871, 1872, 71, 1864,
+ 2631, 1856, 2631, 1874, 71, 71, 1871, 1872, 71, 1864,
1862, 71, 1857, 1873, 1875, 71, 71, 71, 1878, 71,
71, 1866, 1876, 1868, 1870, 1869, 1877, 71, 1879, 71,
1874, 71, 1880, 1871, 1872, 1881, 71, 71, 1882, 71,
- 1873, 1875, 1883, 1885, 71, 71, 1884, 2630, 1886, 1876,
+ 1873, 1875, 1883, 1885, 71, 71, 1884, 2631, 1886, 1876,
71, 71, 1887, 1877, 1888, 1879, 71, 71, 71, 1880,
71, 1889, 1881, 1890, 71, 1882, 1891, 1892, 71, 1883,
71, 71, 71, 1884, 1893, 1886, 1895, 1894, 1896, 1887,
71, 1888, 71, 1897, 1901, 1898, 1899, 1902, 1889, 71,
- 1890, 1900, 1904, 1891, 1892, 1903, 2630, 71, 71, 1905,
+ 1890, 1900, 1904, 1891, 1892, 1903, 2631, 71, 71, 1905,
71, 1893, 71, 71, 1894, 1896, 71, 71, 1908, 1909,
1897, 71, 1898, 1899, 71, 1910, 1914, 71, 1900, 1904,
1906, 1911, 1903, 1907, 1913, 71, 1905, 1912, 71, 1915,
@@ -1894,16 +1895,16 @@ static yyconst flex_uint16_t yy_nxt[7592] =
71, 1920, 1910, 71, 1918, 1921, 1925, 1906, 1911, 1922,
1907, 1913, 1924, 71, 1912, 1923, 71, 71, 1926, 1916,
- 71, 1927, 71, 71, 2630, 1929, 71, 1930, 71, 1928,
+ 71, 1927, 71, 71, 2631, 1929, 71, 1930, 71, 1928,
1933, 1918, 71, 71, 71, 1931, 1922, 1937, 71, 1924,
1938, 1934, 1923, 1935, 1942, 1926, 71, 71, 71, 71,
1932, 71, 1929, 1940, 1930, 71, 1928, 71, 1936, 1939,
1941, 71, 1931, 71, 71, 71, 71, 1938, 1934, 1946,
1935, 71, 1944, 1943, 1948, 1947, 1945, 1932, 1949, 1952,
1940, 71, 71, 71, 71, 1936, 1939, 1941, 71, 1950,
- 71, 71, 1951, 2630, 71, 1953, 71, 71, 1954, 1944,
+ 71, 71, 1951, 2631, 71, 1953, 71, 71, 1954, 1944,
1943, 1948, 1947, 1945, 1955, 1949, 1952, 1956, 1957, 1958,
- 71, 1959, 1964, 71, 2630, 1960, 1950, 71, 71, 1951,
+ 71, 1959, 1964, 71, 2631, 1960, 1950, 71, 71, 1951,
71, 1961, 1953, 71, 1962, 1954, 71, 1963, 1965, 71,
1966, 1955, 71, 1967, 1956, 1957, 1958, 71, 1959, 71,
@@ -1912,7 +1913,7 @@ static yyconst flex_uint16_t yy_nxt[7592] =
1967, 1974, 71, 71, 1975, 1978, 1977, 1968, 1969, 1979,
71, 71, 1970, 1981, 71, 1982, 1972, 1980, 1983, 1971,
71, 1985, 1986, 1976, 71, 71, 1988, 1984, 1974, 71,
- 2630, 1975, 71, 1977, 71, 71, 1979, 71, 71, 1987,
+ 2631, 1975, 71, 1977, 71, 71, 1979, 71, 71, 1987,
1981, 71, 1982, 1990, 1980, 1983, 1991, 1989, 71, 1986,
1993, 1992, 1994, 1988, 1984, 71, 1995, 71, 71, 71,
@@ -1921,7 +1922,7 @@ static yyconst flex_uint16_t yy_nxt[7592] =
2006, 2009, 71, 1995, 2007, 71, 2005, 71, 71, 71,
1999, 1998, 71, 71, 2008, 71, 2003, 71, 2010, 71,
2011, 71, 71, 2004, 71, 2013, 2012, 2006, 2009, 2015,
- 2630, 2007, 71, 2005, 2014, 2018, 71, 2016, 2017, 2019,
+ 2631, 2007, 71, 2005, 2014, 2018, 71, 2016, 2017, 2019,
71, 2008, 71, 2021, 71, 2010, 71, 71, 71, 2020,
2025, 71, 2013, 2012, 2023, 2026, 2015, 71, 71, 2022,
2035, 2014, 2018, 71, 2016, 2017, 2019, 2024, 2028, 2027,
@@ -1932,101 +1933,101 @@ static yyconst flex_uint16_t yy_nxt[7592] =
2030, 2031, 2036, 2038, 2040, 71, 2033, 2043, 2044, 71,
2041, 2032, 71, 71, 2042, 2047, 2034, 71, 71, 2046,
2048, 71, 71, 2051, 2052, 71, 71, 2049, 2054, 2036,
- 2038, 2040, 71, 2630, 71, 71, 71, 2041, 71, 2053,
+ 2038, 2040, 71, 2631, 71, 71, 71, 2041, 71, 2053,
2050, 2042, 2047, 2055, 2056, 71, 2046, 2048, 71, 71,
2051, 71, 71, 2057, 2049, 2058, 71, 71, 2060, 2059,
- 71, 2061, 2065, 71, 2630, 2062, 2053, 2050, 71, 2063,
+ 71, 2061, 2065, 71, 2631, 2062, 2053, 2050, 71, 2063,
2055, 2056, 2064, 2067, 2068, 71, 2069, 2066, 2070, 2071,
71, 2074, 2058, 2072, 71, 2060, 2059, 71, 71, 2065,
71, 71, 2062, 2073, 2078, 71, 2063, 71, 71, 2064,
2067, 71, 71, 71, 2066, 71, 71, 71, 2074, 2075,
- 2072, 2076, 2077, 2079, 2080, 2081, 2083, 2082, 2084, 2630,
- 2073, 71, 2086, 71, 2085, 71, 71, 2087, 2630, 71,
+ 2072, 2076, 2077, 2079, 2080, 2081, 2083, 2082, 2084, 2631,
+ 2073, 71, 2086, 71, 2085, 71, 71, 2087, 2631, 71,
71, 71, 2088, 2089, 71, 71, 2075, 71, 2076, 2077,
71, 71, 2081, 2083, 2082, 2084, 71, 2091, 2090, 2086,
71, 2085, 2093, 2092, 71, 71, 71, 2094, 2095, 2088,
- 2089, 71, 2098, 2099, 2101, 71, 2096, 2630, 71, 2097,
+ 2089, 71, 2098, 2099, 2101, 71, 2096, 2631, 71, 2097,
2103, 71, 2104, 2100, 2091, 2090, 71, 71, 71, 2093,
2092, 71, 2102, 71, 2094, 2095, 2105, 2106, 71, 2098,
2099, 2101, 71, 2096, 71, 71, 2097, 2103, 2107, 2104,
- 2100, 2108, 2109, 2110, 2111, 2114, 2630, 2113, 2112, 2102,
- 71, 71, 71, 71, 71, 71, 71, 2630, 2116, 71,
- 2630, 2630, 2119, 2120, 71, 2107, 2115, 71, 2108, 2109,
+ 2100, 2108, 2109, 2110, 2111, 2114, 2631, 2113, 2112, 2102,
+ 71, 71, 71, 71, 71, 71, 71, 2631, 2116, 71,
+ 2631, 2631, 2119, 2120, 71, 2107, 2115, 71, 2108, 2109,
2110, 2111, 2114, 71, 2113, 2112, 71, 2117, 2118, 2121,
2122, 2125, 2123, 2124, 71, 2116, 2126, 71, 71, 2119,
- 71, 71, 71, 2115, 2127, 2630, 2133, 71, 71, 2131,
+ 71, 71, 71, 2115, 2127, 2631, 2133, 71, 71, 2131,
2132, 71, 2128, 71, 2117, 2118, 2121, 71, 2125, 2123,
- 2124, 71, 2129, 2126, 2130, 2134, 2137, 2136, 2135, 2630,
+ 2124, 71, 2129, 2126, 2130, 2134, 2137, 2136, 2135, 2631,
2142, 2127, 71, 71, 71, 71, 71, 71, 71, 2128,
- 71, 2141, 2140, 2138, 2630, 2144, 2143, 2146, 71, 2129,
- 71, 2130, 2134, 2137, 2136, 2135, 2139, 71, 2630, 2145,
- 2151, 2154, 2630, 71, 71, 71, 71, 71, 2141, 2140,
+ 71, 2141, 2140, 2138, 2631, 2144, 2143, 2146, 71, 2129,
+ 71, 2130, 2134, 2137, 2136, 2135, 2139, 71, 2631, 2145,
+ 2151, 2154, 2631, 71, 71, 71, 71, 71, 2141, 2140,
2138, 71, 71, 2143, 2146, 2147, 2148, 2150, 2149, 2152,
2153, 2156, 71, 2139, 71, 71, 2145, 71, 71, 71,
- 2155, 71, 2157, 71, 2158, 2159, 2630, 2162, 2164, 2163,
+ 2155, 71, 2157, 71, 2158, 2159, 2631, 2162, 2164, 2163,
2166, 71, 2147, 2148, 2150, 2149, 2152, 2153, 2156, 71,
2167, 2160, 2165, 71, 71, 71, 2161, 2155, 71, 2157,
- 71, 71, 2159, 71, 71, 71, 2163, 71, 2168, 2630,
+ 71, 71, 2159, 71, 71, 71, 2163, 71, 2168, 2631,
2169, 2170, 71, 2171, 2172, 2173, 71, 2167, 2160, 2165,
- 2174, 2175, 2177, 2161, 2630, 2630, 2176, 71, 71, 2630,
+ 2174, 2175, 2177, 2161, 2631, 2631, 2176, 71, 71, 2631,
2182, 2178, 71, 71, 2183, 71, 71, 2169, 2170, 71,
2171, 2172, 2173, 71, 71, 2180, 2179, 2174, 2175, 2177,
71, 2181, 71, 2176, 71, 2184, 71, 2182, 2178, 2185,
2186, 2183, 2188, 71, 71, 2187, 2189, 71, 2190, 2191,
- 2193, 2630, 2180, 2179, 2630, 71, 2192, 71, 2181, 2194,
+ 2193, 2631, 2180, 2179, 2631, 71, 2192, 71, 2181, 2194,
2195, 2196, 2184, 2197, 71, 71, 71, 71, 2199, 2188,
2198, 71, 2187, 2189, 2200, 2190, 71, 2193, 71, 2201,
2202, 71, 71, 2192, 71, 2204, 2194, 2195, 71, 2203,
- 71, 2205, 71, 2206, 2207, 2199, 2208, 2198, 2630, 2630,
- 2209, 2630, 71, 2210, 2212, 2630, 71, 2202, 71, 2211,
+ 71, 2205, 71, 2206, 2207, 2199, 2208, 2198, 2631, 2631,
+ 2209, 2631, 71, 2210, 2212, 2631, 71, 2202, 71, 2211,
2213, 71, 71, 2214, 71, 71, 2203, 71, 2205, 71,
2206, 2207, 2219, 2208, 71, 71, 2217, 2209, 71, 2215,
2210, 2212, 71, 2216, 2218, 71, 2211, 2213, 71, 2220,
- 2214, 2224, 2221, 2228, 71, 2630, 2223, 71, 71, 2219,
+ 2214, 2224, 2221, 2228, 71, 2631, 2223, 71, 71, 2219,
71, 2222, 71, 2217, 71, 2225, 2215, 71, 71, 2226,
2216, 2218, 2227, 71, 2229, 2232, 2220, 2230, 71, 2221,
71, 2234, 71, 2223, 71, 2233, 2231, 71, 2222, 71,
- 2630, 2235, 2225, 71, 2236, 2238, 2226, 2237, 71, 2227,
+ 2631, 2235, 2225, 71, 2236, 2238, 2226, 2237, 71, 2227,
2239, 2229, 2232, 2242, 2230, 2243, 2240, 2244, 71, 71,
71, 2245, 2246, 2231, 2241, 71, 71, 71, 2235, 71,
2249, 2236, 2238, 71, 2237, 2250, 71, 2239, 2247, 71,
2242, 2251, 71, 2240, 71, 71, 2248, 2252, 71, 71,
2253, 2241, 2254, 71, 2255, 2256, 71, 2249, 2257, 71,
- 2258, 2261, 71, 2259, 2262, 2247, 2630, 2630, 71, 2263,
+ 2258, 2261, 71, 2259, 2262, 2247, 2631, 2631, 71, 2263,
71, 71, 71, 2248, 2252, 2260, 2270, 2253, 2264, 71,
71, 2255, 71, 2265, 2269, 2257, 2272, 71, 71, 2273,
2259, 71, 71, 71, 2266, 2274, 2263, 2267, 71, 2268,
2275, 2271, 2260, 71, 71, 71, 71, 2276, 71, 71,
- 71, 2269, 2277, 2272, 71, 2630, 71, 71, 2278, 71,
- 2630, 2266, 2274, 2282, 2267, 2281, 2268, 2275, 2271, 2285,
- 2284, 71, 71, 2283, 2276, 2287, 2279, 2280, 2630, 2277,
+ 71, 2269, 2277, 2272, 71, 2631, 71, 71, 2278, 71,
+ 2631, 2266, 2274, 2282, 2267, 2281, 2268, 2275, 2271, 2285,
+ 2284, 71, 71, 2283, 2276, 2287, 2279, 2280, 2631, 2277,
71, 2286, 71, 71, 2289, 2278, 71, 71, 2290, 71,
2282, 2288, 2281, 2291, 71, 2292, 71, 2284, 2293, 71,
2283, 2294, 2287, 2279, 2280, 2295, 2296, 71, 2286, 71,
71, 2289, 71, 2297, 71, 2290, 2300, 2298, 2288, 71,
2291, 71, 2292, 71, 71, 2293, 2301, 2299, 2294, 2302,
2303, 71, 2295, 2296, 71, 2304, 2305, 2306, 71, 2308,
- 2297, 2309, 2307, 71, 2298, 2630, 2312, 2310, 71, 2311,
+ 2297, 2309, 2307, 71, 2298, 2631, 2312, 2310, 71, 2311,
- 71, 2315, 2630, 2301, 2299, 71, 2302, 71, 71, 71,
+ 71, 2315, 2631, 2301, 2299, 71, 2302, 71, 71, 71,
71, 2316, 2304, 71, 2306, 71, 2308, 71, 71, 2307,
71, 2317, 2313, 2312, 2310, 2318, 2311, 2314, 2315, 71,
- 2319, 2320, 2321, 71, 2322, 2323, 2330, 2630, 2316, 71,
+ 2319, 2320, 2321, 71, 2322, 2323, 2330, 2631, 2316, 71,
2325, 71, 2324, 71, 2331, 71, 2327, 2326, 71, 71,
- 2328, 2332, 2318, 2329, 71, 2630, 2630, 2319, 2320, 2321,
+ 2328, 2332, 2318, 2329, 71, 2631, 2631, 2319, 2320, 2321,
2336, 2322, 2323, 71, 71, 71, 71, 2325, 71, 2324,
2333, 71, 2334, 2327, 2326, 2335, 71, 2328, 71, 71,
- 2329, 2337, 71, 71, 2338, 2339, 2630, 2336, 71, 2340,
- 2342, 2341, 2343, 2345, 2344, 2347, 71, 2333, 2630, 2334,
+ 2329, 2337, 71, 71, 2338, 2339, 2631, 2336, 71, 2340,
+ 2342, 2341, 2343, 2345, 2344, 2347, 71, 2333, 2631, 2334,
- 71, 2348, 2335, 71, 2350, 2630, 71, 71, 2346, 71,
+ 71, 2348, 2335, 71, 2350, 2631, 71, 71, 2346, 71,
71, 2338, 2339, 71, 71, 2349, 71, 2342, 2341, 2343,
2351, 2344, 71, 2352, 2356, 71, 2353, 71, 2348, 2355,
2354, 71, 71, 2357, 71, 2346, 2358, 71, 2359, 71,
@@ -2034,111 +2035,107 @@ static yyconst flex_uint16_t yy_nxt[7592] =
2352, 2356, 71, 2353, 71, 2364, 2355, 2354, 71, 2367,
2357, 71, 2368, 2358, 2366, 2359, 2372, 2369, 71, 2371,
71, 71, 71, 2361, 71, 71, 2370, 71, 2374, 2375,
- 71, 71, 2364, 71, 2373, 2376, 2367, 2377, 2388, 71,
- 2378, 2366, 71, 2372, 2369, 71, 2371, 71, 2381, 2383,
-
- 2379, 2380, 2389, 2370, 2385, 2374, 71, 71, 71, 71,
- 2384, 2373, 71, 71, 2377, 2382, 2387, 2378, 2386, 2630,
- 71, 2391, 71, 71, 2390, 2381, 71, 2379, 2380, 71,
- 71, 2385, 2392, 71, 71, 2393, 2394, 2384, 2395, 2396,
- 2399, 71, 2382, 2387, 2630, 2386, 71, 2400, 71, 2402,
- 2403, 2390, 2401, 71, 2397, 2398, 2404, 71, 71, 2392,
- 71, 2630, 2393, 2394, 71, 2395, 2406, 71, 2407, 2408,
- 2409, 71, 2405, 2411, 71, 2630, 71, 71, 71, 2401,
- 2410, 2397, 2398, 2404, 2412, 71, 2413, 2415, 71, 2414,
- 2416, 71, 71, 2406, 2417, 71, 71, 71, 2419, 2405,
-
- 71, 71, 71, 71, 2418, 2420, 2421, 2410, 2423, 2424,
- 2422, 2412, 2425, 2413, 71, 71, 2414, 2416, 2630, 2426,
- 2630, 2417, 71, 71, 2630, 71, 2429, 71, 71, 2430,
- 2431, 2418, 2420, 71, 2630, 2427, 2424, 2422, 2428, 71,
- 71, 71, 71, 2443, 71, 71, 2426, 2432, 71, 2437,
- 2433, 71, 2434, 2429, 2435, 2436, 2430, 2431, 71, 71,
- 71, 71, 2427, 2441, 71, 2428, 71, 2440, 2438, 2439,
- 71, 2444, 2446, 71, 2432, 2447, 2437, 2433, 71, 2434,
- 2442, 2435, 2436, 2445, 2451, 71, 2450, 71, 2448, 2449,
- 2441, 2452, 2453, 2454, 2440, 2438, 2439, 2459, 71, 71,
-
- 71, 2455, 71, 2456, 2457, 71, 71, 2442, 2460, 71,
- 2445, 71, 2461, 2450, 2458, 71, 71, 71, 2452, 2453,
- 71, 71, 2462, 71, 2459, 2463, 71, 2467, 2455, 2464,
- 2456, 2457, 2468, 2469, 71, 2460, 2470, 71, 71, 71,
- 2465, 2458, 2471, 2466, 2472, 2476, 2473, 2475, 2630, 71,
- 71, 71, 2463, 2474, 71, 71, 2464, 2477, 71, 71,
- 2478, 2479, 2480, 2470, 2481, 71, 2482, 2465, 71, 2471,
- 2466, 2472, 71, 2473, 2475, 71, 2483, 2485, 2484, 2488,
- 2474, 2486, 71, 2487, 71, 2489, 2495, 71, 71, 71,
- 71, 2481, 71, 71, 71, 71, 2490, 2491, 71, 2492,
-
- 2493, 2496, 2630, 71, 2485, 2484, 71, 71, 2486, 71,
- 2487, 2494, 2489, 2498, 71, 2497, 2503, 2501, 71, 2500,
- 71, 71, 2499, 2490, 2491, 71, 2492, 2493, 2496, 2502,
- 71, 71, 2506, 71, 2505, 71, 71, 71, 2494, 71,
- 2498, 71, 2497, 2503, 2501, 2504, 2500, 71, 2507, 2499,
- 2510, 2508, 71, 2512, 2509, 2513, 2502, 2511, 2517, 2506,
- 2514, 2505, 71, 71, 71, 2515, 2516, 71, 71, 71,
- 71, 2520, 2504, 71, 2522, 2507, 71, 2510, 2508, 71,
- 2512, 2509, 2513, 71, 2511, 2517, 2519, 2514, 2518, 2521,
- 2533, 2523, 2515, 2516, 2524, 71, 2525, 2526, 71, 71,
-
- 2630, 71, 2527, 2528, 2529, 71, 2530, 71, 2531, 71,
- 71, 2535, 2534, 2519, 2539, 2518, 2521, 71, 2523, 2543,
- 2532, 71, 71, 71, 2526, 71, 71, 71, 71, 2527,
- 2528, 2529, 71, 2530, 2536, 2531, 2537, 2538, 71, 2534,
- 2540, 71, 71, 2541, 2542, 2544, 71, 2532, 71, 2547,
- 2630, 71, 71, 2548, 2630, 2545, 2549, 71, 2546, 2630,
- 71, 2536, 71, 2537, 2538, 2550, 71, 2540, 71, 71,
- 2541, 2542, 71, 2552, 2551, 2554, 2547, 71, 2553, 2555,
- 2548, 71, 2545, 2549, 2561, 2546, 71, 2557, 71, 71,
- 2556, 2558, 2550, 71, 2559, 71, 2560, 2562, 71, 2563,
-
- 2552, 2551, 2554, 71, 71, 2553, 2555, 2564, 2565, 71,
- 2566, 71, 2568, 71, 2557, 2569, 2567, 2556, 2558, 71,
- 71, 2559, 2570, 2560, 2562, 2571, 2574, 2572, 2573, 2577,
- 71, 71, 71, 71, 2564, 2565, 71, 2566, 71, 2568,
- 2575, 2630, 2580, 2567, 71, 2581, 71, 71, 71, 2570,
- 71, 2576, 71, 2574, 2572, 2573, 2578, 2579, 2585, 71,
- 2584, 71, 2582, 2587, 71, 2583, 71, 2575, 71, 2580,
- 2588, 71, 71, 2586, 2590, 2630, 2589, 71, 2576, 2592,
- 71, 71, 71, 2578, 2579, 2585, 2594, 2584, 71, 2582,
- 2587, 2593, 2583, 2591, 71, 2595, 71, 2588, 71, 71,
-
- 2586, 2590, 2596, 2589, 2599, 71, 2592, 2597, 2598, 2630,
- 2600, 2601, 71, 2594, 2602, 2608, 71, 2605, 2593, 2603,
- 2591, 71, 2595, 2604, 71, 71, 2606, 71, 2630, 2596,
- 2630, 71, 71, 2630, 2597, 2598, 71, 2600, 2601, 71,
- 2610, 71, 71, 71, 2605, 2614, 2603, 2607, 71, 2609,
- 2604, 2611, 2612, 2606, 2615, 71, 2613, 71, 2616, 2619,
- 71, 2617, 71, 2618, 71, 2621, 71, 2610, 2630, 71,
- 2622, 71, 2614, 71, 2607, 2620, 2609, 2624, 2611, 2612,
- 2623, 71, 2628, 2613, 2625, 2616, 71, 2629, 2617, 71,
- 2618, 2630, 71, 2626, 2630, 71, 2630, 71, 2630, 71,
-
- 71, 71, 2620, 2630, 2624, 2627, 71, 2623, 2630, 71,
- 2630, 2625, 2630, 71, 71, 2630, 2630, 2630, 2630, 2630,
- 2626, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2627, 43, 43, 43, 43, 43, 43, 43,
- 48, 48, 48, 48, 48, 48, 48, 53, 53, 53,
- 53, 53, 53, 53, 59, 59, 59, 59, 59, 59,
- 59, 64, 64, 64, 64, 64, 64, 64, 74, 74,
- 2630, 74, 74, 74, 74, 140, 140, 2630, 2630, 2630,
- 140, 140, 142, 142, 2630, 2630, 142, 2630, 142, 144,
- 2630, 2630, 2630, 2630, 2630, 144, 147, 147, 2630, 2630,
-
- 2630, 147, 147, 149, 2630, 2630, 2630, 2630, 2630, 149,
- 151, 151, 2630, 151, 151, 151, 151, 75, 75, 2630,
- 75, 75, 75, 75, 13, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630
-
+ 71, 71, 2364, 71, 2373, 2376, 2367, 2389, 2377, 71,
+ 2379, 2366, 71, 2372, 2369, 2380, 2371, 71, 2382, 2384,
+
+ 2385, 2381, 71, 2370, 2386, 2374, 71, 2378, 71, 71,
+ 2390, 2373, 71, 71, 2383, 71, 2388, 2379, 2387, 71,
+ 2391, 71, 2380, 71, 71, 2382, 71, 2385, 2381, 2392,
+ 71, 2386, 2394, 71, 2378, 2395, 2397, 71, 2396, 2393,
+ 2400, 2383, 2401, 2388, 71, 2387, 71, 2391, 71, 2403,
+ 2398, 2399, 2404, 2405, 71, 2402, 2408, 71, 2406, 2394,
+ 71, 71, 2395, 71, 2407, 2396, 2393, 71, 71, 71,
+ 2409, 71, 2410, 2411, 2412, 71, 71, 2398, 2399, 71,
+ 2405, 2413, 2402, 71, 2415, 2406, 71, 2414, 2416, 71,
+ 2417, 2407, 71, 2420, 2419, 71, 2421, 71, 2418, 71,
+
+ 2411, 71, 2422, 71, 2424, 71, 2423, 2425, 2413, 2631,
+ 71, 2415, 71, 2426, 2414, 71, 2427, 2417, 71, 71,
+ 71, 2419, 2430, 2421, 2428, 2418, 71, 2431, 2429, 71,
+ 2631, 71, 2432, 2423, 2425, 71, 71, 2433, 71, 2434,
+ 71, 2435, 71, 2427, 71, 2436, 2438, 71, 71, 2430,
+ 2444, 2428, 71, 71, 2431, 2429, 71, 71, 2437, 2432,
+ 2439, 2440, 2442, 2441, 2433, 2445, 2434, 71, 2435, 71,
+ 71, 2443, 2436, 2438, 2446, 2447, 2448, 71, 71, 2449,
+ 2450, 2631, 2451, 2452, 71, 2437, 2453, 2439, 2440, 2442,
+ 2441, 2454, 71, 2455, 2456, 71, 2457, 71, 2443, 2458,
+
+ 2462, 2446, 71, 71, 71, 71, 2459, 2460, 71, 2451,
+ 71, 71, 2461, 2453, 71, 71, 2463, 2464, 2454, 71,
+ 71, 2456, 2470, 2457, 2465, 71, 2458, 71, 2471, 71,
+ 71, 2468, 2466, 2459, 2460, 2467, 2469, 2472, 71, 2461,
+ 2631, 2473, 2477, 71, 2464, 2474, 71, 71, 2475, 71,
+ 71, 2465, 2476, 2478, 71, 2471, 2479, 2480, 2481, 2466,
+ 71, 2483, 2467, 71, 2472, 2484, 2485, 71, 2473, 71,
+ 71, 2482, 2474, 2487, 2488, 2475, 2486, 2489, 71, 2476,
+ 71, 2490, 2491, 71, 71, 71, 71, 2493, 71, 71,
+ 71, 71, 71, 2485, 2492, 71, 2494, 2497, 2482, 71,
+
+ 2487, 2488, 2495, 2486, 71, 71, 71, 2496, 2490, 2491,
+ 71, 2498, 2631, 71, 2493, 2505, 2502, 2499, 2500, 2501,
+ 2631, 2492, 71, 2494, 2497, 71, 71, 71, 2503, 2495,
+ 71, 2504, 71, 71, 2506, 2508, 2513, 2507, 2498, 71,
+ 71, 71, 2505, 2502, 2499, 2500, 2501, 71, 2509, 2510,
+ 71, 71, 2512, 2511, 71, 2503, 2631, 2515, 2504, 2514,
+ 2516, 2506, 2508, 2513, 2507, 71, 71, 71, 2521, 2523,
+ 71, 71, 2524, 2518, 71, 2509, 2510, 2520, 71, 2512,
+ 2511, 2517, 2519, 71, 2515, 71, 2514, 2516, 2522, 71,
+ 71, 2525, 2526, 2527, 2631, 71, 71, 2529, 71, 2524,
+
+ 2518, 71, 2631, 2528, 2520, 2530, 71, 2531, 2517, 2519,
+ 71, 2532, 2534, 71, 2533, 2522, 2536, 2631, 71, 71,
+ 2527, 71, 2535, 2537, 2529, 2538, 71, 71, 2540, 71,
+ 2528, 71, 2530, 2539, 2531, 71, 2541, 71, 2532, 2542,
+ 2543, 2533, 71, 71, 71, 2544, 2545, 2547, 71, 2535,
+ 2537, 2631, 2538, 2551, 2631, 71, 2546, 2548, 71, 2550,
+ 2539, 71, 71, 2541, 2549, 71, 2542, 2543, 2552, 71,
+ 2553, 71, 71, 2554, 2547, 71, 71, 71, 71, 2555,
+ 2551, 71, 2556, 2546, 2548, 2558, 2550, 2562, 2559, 2563,
+ 2557, 2549, 71, 71, 2560, 2552, 71, 2553, 71, 2564,
+
+ 2554, 2565, 2566, 71, 2570, 2561, 2555, 71, 2567, 2556,
+ 71, 71, 2558, 71, 71, 2559, 2563, 2557, 2568, 2571,
+ 2572, 2560, 2578, 2575, 71, 2569, 2573, 71, 2565, 2566,
+ 71, 71, 2561, 71, 2574, 2567, 71, 2631, 2581, 2582,
+ 71, 71, 71, 71, 2580, 2568, 2571, 71, 2576, 71,
+ 2575, 2577, 2569, 2573, 71, 2579, 71, 2585, 71, 71,
+ 2586, 2574, 2588, 71, 71, 2581, 71, 2583, 71, 2587,
+ 2584, 2580, 2589, 2590, 2591, 2576, 71, 71, 2577, 71,
+ 2592, 71, 2579, 2593, 2585, 71, 2595, 2586, 71, 2588,
+ 2596, 2600, 2597, 2603, 2583, 71, 2587, 2584, 71, 2589,
+
+ 2590, 2591, 2598, 2594, 2601, 2604, 2631, 2592, 2602, 71,
+ 2593, 71, 71, 2595, 71, 2599, 71, 2596, 71, 2597,
+ 71, 2605, 71, 71, 2607, 71, 71, 2609, 2606, 2598,
+ 2594, 2601, 2604, 71, 2611, 2602, 71, 2608, 2612, 2610,
+ 2616, 71, 2599, 2615, 2613, 71, 71, 71, 2605, 2614,
+ 2617, 2607, 71, 2631, 71, 2606, 71, 71, 71, 2619,
+ 71, 2611, 2620, 2621, 2608, 2612, 2610, 71, 2622, 71,
+ 2615, 2613, 2618, 2623, 2624, 2625, 2614, 2617, 2629, 2627,
+ 71, 2626, 2630, 71, 2628, 71, 2619, 71, 2631, 71,
+ 2621, 2631, 71, 2631, 71, 71, 2631, 71, 2631, 2618,
+
+ 71, 2624, 2625, 71, 2631, 71, 2627, 2631, 2626, 71,
+ 2631, 2628, 43, 43, 43, 43, 43, 43, 43, 48,
+ 48, 48, 48, 48, 48, 48, 53, 53, 53, 53,
+ 53, 53, 53, 59, 59, 59, 59, 59, 59, 59,
+ 64, 64, 64, 64, 64, 64, 64, 74, 74, 2631,
+ 74, 74, 74, 74, 140, 140, 2631, 2631, 2631, 140,
+ 140, 142, 142, 2631, 2631, 142, 2631, 142, 144, 2631,
+ 2631, 2631, 2631, 2631, 144, 147, 147, 2631, 2631, 2631,
+ 147, 147, 149, 2631, 2631, 2631, 2631, 2631, 149, 151,
+ 151, 2631, 151, 151, 151, 151, 75, 75, 2631, 75,
+
+ 75, 75, 75, 13, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631
} ;
-static yyconst flex_int16_t yy_chk[7592] =
+static yyconst flex_int16_t yy_chk[7571] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -2148,7 +2145,7 @@ static yyconst flex_int16_t yy_chk[7592] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 3, 3, 3, 4,
4, 4, 5, 5, 6, 6, 5, 28, 6, 7,
- 7, 7, 7, 2636, 7, 8, 8, 8, 8, 28,
+ 7, 7, 7, 2637, 7, 8, 8, 8, 8, 28,
8, 9, 9, 9, 10, 10, 10, 15, 21, 24,
906, 15, 30, 3, 28, 149, 4, 47, 47, 5,
@@ -2874,108 +2871,104 @@ static yyconst flex_int16_t yy_chk[7592] =
2290, 2294, 2295, 2291, 2299, 2304, 2293, 2292, 2296, 2308,
2295, 2304, 2310, 2296, 2307, 2297, 2315, 2311, 2298, 2313,
2301, 2302, 2306, 2299, 2311, 2307, 2312, 2313, 2318, 2319,
- 2312, 2308, 2304, 2318, 2316, 2320, 2308, 2321, 2335, 2310,
- 2322, 2307, 2315, 2315, 2311, 2321, 2313, 2316, 2325, 2327,
-
- 2323, 2324, 2336, 2312, 2329, 2318, 2319, 2323, 2322, 2324,
- 2328, 2316, 2320, 2325, 2321, 2326, 2334, 2322, 2333, 0,
- 2335, 2338, 2326, 2334, 2337, 2325, 2327, 2323, 2324, 2336,
- 2329, 2329, 2339, 2333, 2328, 2341, 2342, 2328, 2343, 2344,
- 2346, 2339, 2326, 2334, 0, 2333, 2343, 2348, 2337, 2351,
- 2352, 2337, 2349, 2338, 2345, 2345, 2353, 2341, 2342, 2339,
- 2349, 0, 2341, 2342, 2345, 2343, 2355, 2346, 2356, 2357,
- 2358, 2344, 2354, 2361, 2348, 0, 2351, 2352, 2353, 2349,
- 2359, 2345, 2345, 2353, 2364, 2354, 2366, 2369, 2355, 2367,
- 2370, 2366, 2364, 2355, 2371, 2356, 2357, 2358, 2373, 2354,
-
- 2361, 2371, 2359, 2370, 2372, 2374, 2377, 2359, 2379, 2380,
- 2378, 2364, 2381, 2366, 2369, 2367, 2367, 2370, 0, 2382,
- 0, 2371, 2372, 2378, 0, 2373, 2386, 2374, 2380, 2387,
- 2388, 2372, 2374, 2377, 0, 2384, 2380, 2378, 2385, 2381,
- 2379, 2382, 2384, 2404, 2387, 2385, 2382, 2390, 2386, 2395,
- 2391, 2388, 2392, 2386, 2393, 2394, 2387, 2388, 2391, 2392,
- 2395, 2393, 2384, 2398, 2394, 2385, 2390, 2397, 2396, 2396,
- 2404, 2405, 2410, 2397, 2390, 2412, 2395, 2391, 2396, 2392,
- 2401, 2393, 2394, 2406, 2416, 2398, 2414, 2401, 2413, 2413,
- 2398, 2417, 2418, 2420, 2397, 2396, 2396, 2427, 2405, 2410,
-
- 2417, 2422, 2412, 2423, 2424, 2418, 2406, 2401, 2428, 2414,
- 2406, 2416, 2429, 2414, 2426, 2427, 2424, 2413, 2417, 2418,
- 2420, 2422, 2430, 2426, 2427, 2431, 2423, 2434, 2422, 2432,
- 2423, 2424, 2434, 2435, 2428, 2428, 2436, 2431, 2436, 2429,
- 2433, 2426, 2437, 2433, 2438, 2442, 2439, 2441, 0, 2430,
- 2438, 2432, 2431, 2440, 2437, 2441, 2432, 2445, 2433, 2434,
- 2448, 2449, 2450, 2436, 2452, 2435, 2453, 2433, 2439, 2437,
- 2433, 2438, 2442, 2439, 2441, 2440, 2455, 2457, 2456, 2460,
- 2440, 2458, 2452, 2459, 2445, 2463, 2470, 2448, 2449, 2450,
- 2456, 2452, 2457, 2453, 2463, 2459, 2464, 2465, 2465, 2466,
-
- 2467, 2471, 0, 2455, 2457, 2456, 2460, 2458, 2458, 2467,
- 2459, 2469, 2463, 2473, 2471, 2472, 2485, 2481, 2470, 2475,
- 2464, 2473, 2474, 2464, 2465, 2466, 2466, 2467, 2471, 2484,
- 2475, 2474, 2489, 2484, 2487, 2469, 2489, 2472, 2469, 2485,
- 2473, 2481, 2472, 2485, 2481, 2486, 2475, 2487, 2490, 2474,
- 2493, 2491, 2486, 2495, 2492, 2496, 2484, 2494, 2500, 2489,
- 2497, 2487, 2493, 2496, 2490, 2498, 2499, 2495, 2499, 2497,
- 2500, 2503, 2486, 2491, 2505, 2490, 2498, 2493, 2491, 2492,
- 2495, 2492, 2496, 2494, 2494, 2500, 2502, 2497, 2501, 2504,
- 2516, 2506, 2498, 2499, 2507, 2501, 2508, 2509, 2503, 2502,
-
- 0, 2505, 2510, 2511, 2512, 2509, 2513, 2504, 2514, 2510,
- 2514, 2518, 2517, 2502, 2526, 2501, 2504, 2506, 2506, 2530,
- 2515, 2507, 2516, 2508, 2509, 2517, 2512, 2511, 2513, 2510,
- 2511, 2512, 2515, 2513, 2519, 2514, 2521, 2523, 2518, 2517,
- 2527, 2526, 2519, 2528, 2529, 2531, 2523, 2515, 2521, 2534,
- 0, 2530, 2529, 2536, 0, 2532, 2537, 2534, 2533, 0,
- 2536, 2519, 2528, 2521, 2523, 2538, 2527, 2527, 2532, 2537,
- 2528, 2529, 2533, 2541, 2540, 2543, 2534, 2531, 2542, 2544,
- 2536, 2540, 2532, 2537, 2550, 2533, 2542, 2546, 2538, 2543,
- 2545, 2547, 2538, 2544, 2548, 2541, 2549, 2551, 2545, 2552,
-
- 2541, 2540, 2543, 2548, 2549, 2542, 2544, 2553, 2554, 2546,
- 2555, 2550, 2557, 2547, 2546, 2558, 2556, 2545, 2547, 2551,
- 2557, 2548, 2559, 2549, 2551, 2560, 2564, 2562, 2563, 2567,
- 2554, 2552, 2555, 2553, 2553, 2554, 2563, 2555, 2556, 2557,
- 2565, 0, 2570, 2556, 2559, 2572, 2564, 2558, 2565, 2559,
- 2562, 2566, 2560, 2564, 2562, 2563, 2568, 2569, 2575, 2566,
- 2574, 2567, 2573, 2577, 2568, 2573, 2575, 2565, 2570, 2570,
- 2578, 2569, 2572, 2576, 2580, 0, 2579, 2577, 2566, 2583,
- 2573, 2576, 2574, 2568, 2569, 2575, 2585, 2574, 2580, 2573,
- 2577, 2584, 2573, 2582, 2582, 2586, 2578, 2578, 2579, 2584,
-
- 2576, 2580, 2587, 2579, 2590, 2583, 2583, 2588, 2589, 0,
- 2591, 2592, 2585, 2585, 2593, 2600, 2589, 2596, 2584, 2594,
- 2582, 2586, 2586, 2595, 2587, 2596, 2597, 2588, 0, 2587,
- 0, 2590, 2591, 0, 2588, 2589, 2592, 2591, 2592, 2594,
- 2603, 2593, 2600, 2595, 2596, 2607, 2594, 2598, 2597, 2601,
- 2595, 2604, 2605, 2597, 2609, 2598, 2606, 2601, 2610, 2613,
- 2605, 2611, 2603, 2612, 2606, 2616, 2610, 2603, 0, 2611,
- 2617, 2607, 2607, 2604, 2598, 2614, 2601, 2620, 2604, 2605,
- 2618, 2609, 2626, 2606, 2623, 2610, 2613, 2627, 2611, 2612,
- 2612, 0, 2616, 2624, 0, 2614, 0, 2617, 0, 2620,
-
- 2618, 2624, 2614, 0, 2620, 2625, 2623, 2618, 0, 2626,
- 0, 2623, 0, 2625, 2627, 0, 0, 0, 0, 0,
- 2624, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2625, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
- 2632, 2632, 2632, 2632, 2632, 2632, 2632, 2633, 2633, 2633,
- 2633, 2633, 2633, 2633, 2634, 2634, 2634, 2634, 2634, 2634,
- 2634, 2635, 2635, 2635, 2635, 2635, 2635, 2635, 2637, 2637,
- 0, 2637, 2637, 2637, 2637, 2638, 2638, 0, 0, 0,
- 2638, 2638, 2639, 2639, 0, 0, 2639, 0, 2639, 2640,
- 0, 0, 0, 0, 0, 2640, 2641, 2641, 0, 0,
-
- 0, 2641, 2641, 2642, 0, 0, 0, 0, 0, 2642,
- 2643, 2643, 0, 2643, 2643, 2643, 2643, 2644, 2644, 0,
- 2644, 2644, 2644, 2644, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
- 2630
-
+ 2312, 2308, 2304, 2318, 2316, 2320, 2308, 2335, 2321, 2310,
+ 2322, 2307, 2315, 2315, 2311, 2323, 2313, 2316, 2325, 2327,
+
+ 2328, 2324, 2323, 2312, 2329, 2318, 2319, 2321, 2322, 2324,
+ 2336, 2316, 2320, 2325, 2326, 2321, 2334, 2322, 2333, 2335,
+ 2337, 2326, 2323, 2334, 2328, 2325, 2327, 2328, 2324, 2338,
+ 2329, 2329, 2341, 2333, 2321, 2342, 2344, 2336, 2343, 2339,
+ 2346, 2326, 2348, 2334, 2337, 2333, 2343, 2337, 2339, 2351,
+ 2345, 2345, 2352, 2353, 2341, 2349, 2356, 2342, 2354, 2341,
+ 2345, 2338, 2342, 2349, 2355, 2343, 2339, 2346, 2344, 2348,
+ 2357, 2354, 2358, 2359, 2361, 2353, 2351, 2345, 2345, 2352,
+ 2353, 2364, 2349, 2356, 2367, 2354, 2355, 2366, 2369, 2364,
+ 2370, 2355, 2366, 2373, 2372, 2359, 2374, 2357, 2371, 2358,
+
+ 2359, 2361, 2378, 2370, 2380, 2371, 2379, 2381, 2364, 0,
+ 2367, 2367, 2372, 2382, 2366, 2369, 2383, 2370, 2374, 2379,
+ 2373, 2372, 2387, 2374, 2385, 2371, 2381, 2388, 2386, 2378,
+ 0, 2385, 2389, 2379, 2381, 2386, 2380, 2391, 2383, 2392,
+ 2382, 2393, 2388, 2383, 2387, 2394, 2396, 2392, 2393, 2387,
+ 2405, 2385, 2394, 2389, 2388, 2386, 2391, 2396, 2395, 2389,
+ 2397, 2397, 2399, 2398, 2391, 2406, 2392, 2395, 2393, 2398,
+ 2397, 2402, 2394, 2396, 2407, 2411, 2413, 2405, 2402, 2414,
+ 2414, 0, 2415, 2417, 2399, 2395, 2418, 2397, 2397, 2399,
+ 2398, 2419, 2406, 2421, 2423, 2418, 2424, 2407, 2402, 2425,
+
+ 2430, 2407, 2411, 2413, 2419, 2415, 2427, 2428, 2414, 2415,
+ 2417, 2425, 2429, 2418, 2423, 2427, 2431, 2432, 2419, 2424,
+ 2421, 2423, 2436, 2424, 2433, 2428, 2425, 2430, 2437, 2432,
+ 2437, 2435, 2434, 2427, 2428, 2434, 2435, 2438, 2429, 2429,
+ 0, 2439, 2443, 2431, 2432, 2440, 2433, 2439, 2441, 2438,
+ 2434, 2433, 2442, 2446, 2436, 2437, 2449, 2450, 2451, 2434,
+ 2442, 2454, 2434, 2435, 2438, 2456, 2457, 2440, 2439, 2443,
+ 2441, 2453, 2440, 2459, 2460, 2441, 2458, 2461, 2457, 2442,
+ 2446, 2464, 2465, 2449, 2450, 2451, 2460, 2467, 2454, 2453,
+ 2464, 2458, 2456, 2457, 2466, 2466, 2468, 2472, 2453, 2459,
+
+ 2459, 2460, 2470, 2458, 2461, 2468, 2465, 2471, 2464, 2465,
+ 2472, 2473, 0, 2467, 2467, 2487, 2482, 2474, 2475, 2476,
+ 0, 2466, 2487, 2468, 2472, 2474, 2470, 2475, 2485, 2470,
+ 2476, 2486, 2485, 2473, 2488, 2491, 2496, 2490, 2473, 2471,
+ 2482, 2490, 2487, 2482, 2474, 2475, 2476, 2488, 2492, 2493,
+ 2496, 2491, 2495, 2494, 2486, 2485, 0, 2498, 2486, 2497,
+ 2499, 2488, 2491, 2496, 2490, 2494, 2498, 2497, 2504, 2506,
+ 2492, 2499, 2507, 2501, 2493, 2492, 2493, 2503, 2495, 2495,
+ 2494, 2500, 2502, 2500, 2498, 2501, 2497, 2499, 2505, 2502,
+ 2503, 2508, 2509, 2510, 0, 2504, 2506, 2512, 2507, 2507,
+
+ 2501, 2510, 0, 2511, 2503, 2513, 2505, 2514, 2500, 2502,
+ 2511, 2515, 2517, 2515, 2516, 2505, 2519, 0, 2508, 2509,
+ 2510, 2512, 2518, 2520, 2512, 2522, 2516, 2513, 2527, 2514,
+ 2511, 2520, 2513, 2524, 2514, 2518, 2528, 2522, 2515, 2529,
+ 2530, 2516, 2524, 2519, 2517, 2531, 2532, 2534, 2530, 2518,
+ 2520, 0, 2522, 2539, 0, 2527, 2533, 2535, 2529, 2538,
+ 2524, 2534, 2528, 2528, 2537, 2535, 2529, 2530, 2541, 2533,
+ 2542, 2537, 2538, 2543, 2534, 2541, 2539, 2531, 2532, 2544,
+ 2539, 2543, 2545, 2533, 2535, 2547, 2538, 2551, 2548, 2552,
+ 2546, 2537, 2542, 2544, 2549, 2541, 2545, 2542, 2546, 2553,
+
+ 2543, 2554, 2555, 2549, 2559, 2550, 2544, 2547, 2556, 2545,
+ 2548, 2552, 2547, 2550, 2551, 2548, 2552, 2546, 2557, 2560,
+ 2561, 2549, 2568, 2565, 2555, 2558, 2563, 2554, 2554, 2555,
+ 2556, 2553, 2550, 2558, 2564, 2556, 2559, 0, 2571, 2573,
+ 2557, 2560, 2564, 2565, 2570, 2557, 2560, 2561, 2566, 2563,
+ 2565, 2567, 2558, 2563, 2568, 2569, 2566, 2575, 2570, 2567,
+ 2576, 2564, 2578, 2569, 2571, 2571, 2573, 2574, 2576, 2577,
+ 2574, 2570, 2579, 2580, 2581, 2566, 2578, 2577, 2567, 2575,
+ 2583, 2583, 2569, 2584, 2575, 2574, 2586, 2576, 2581, 2578,
+ 2587, 2591, 2588, 2594, 2574, 2580, 2577, 2574, 2579, 2579,
+
+ 2580, 2581, 2589, 2585, 2592, 2595, 0, 2583, 2593, 2584,
+ 2584, 2585, 2586, 2586, 2588, 2590, 2587, 2587, 2591, 2588,
+ 2594, 2596, 2589, 2590, 2598, 2595, 2592, 2601, 2597, 2589,
+ 2585, 2592, 2595, 2593, 2604, 2593, 2597, 2599, 2605, 2602,
+ 2610, 2596, 2590, 2608, 2606, 2599, 2598, 2602, 2596, 2607,
+ 2611, 2598, 2606, 0, 2601, 2597, 2604, 2607, 2611, 2613,
+ 2605, 2604, 2614, 2615, 2599, 2605, 2602, 2610, 2617, 2608,
+ 2608, 2606, 2612, 2618, 2619, 2621, 2607, 2611, 2627, 2625,
+ 2612, 2624, 2628, 2615, 2626, 2613, 2613, 2625, 0, 2614,
+ 2615, 0, 2626, 0, 2619, 2617, 0, 2621, 0, 2612,
+
+ 2618, 2619, 2621, 2624, 0, 2627, 2625, 0, 2624, 2628,
+ 0, 2626, 2632, 2632, 2632, 2632, 2632, 2632, 2632, 2633,
+ 2633, 2633, 2633, 2633, 2633, 2633, 2634, 2634, 2634, 2634,
+ 2634, 2634, 2634, 2635, 2635, 2635, 2635, 2635, 2635, 2635,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2638, 2638, 0,
+ 2638, 2638, 2638, 2638, 2639, 2639, 0, 0, 0, 2639,
+ 2639, 2640, 2640, 0, 0, 2640, 0, 2640, 2641, 0,
+ 0, 0, 0, 0, 2641, 2642, 2642, 0, 0, 0,
+ 2642, 2642, 2643, 0, 0, 0, 0, 0, 2643, 2644,
+ 2644, 0, 2644, 2644, 2644, 2644, 2645, 2645, 0, 2645,
+
+ 2645, 2645, 2645, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631
} ;
static yy_state_type yy_last_accepting_state;
@@ -3185,7 +3178,7 @@ static void config_end_include(void)
#define YY_NO_INPUT 1
#endif
-#line 3187 "<stdout>"
+#line 3180 "<stdout>"
#define INITIAL 0
#define quotedstring 1
@@ -3408,7 +3401,7 @@ YY_DECL
{
#line 206 "util/configlexer.lex"
-#line 3410 "<stdout>"
+#line 3403 "<stdout>"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -3441,13 +3434,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 >= 2631 )
+ if ( yy_current_state >= 2632 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 7525 );
+ while ( yy_base[yy_current_state] != 7504 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -3637,32 +3630,32 @@ YY_RULE_SETUP
case 33:
YY_RULE_SETUP
#line 242 "util/configlexer.lex"
-{ YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
+{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 243 "util/configlexer.lex"
-{ YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
+{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 244 "util/configlexer.lex"
-{ YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
+{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 245 "util/configlexer.lex"
-{ YDVAR(1, VAR_USE_SYSTEMD) }
+{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
YY_BREAK
case 37:
YY_RULE_SETUP
#line 246 "util/configlexer.lex"
-{ YDVAR(1, VAR_DO_DAEMONIZE) }
+{ YDVAR(1, VAR_USE_SYSTEMD) }
YY_BREAK
case 38:
YY_RULE_SETUP
#line 247 "util/configlexer.lex"
-{ YDVAR(1, VAR_INTERFACE) }
+{ YDVAR(1, VAR_DO_DAEMONIZE) }
YY_BREAK
case 39:
YY_RULE_SETUP
@@ -3672,267 +3665,267 @@ YY_RULE_SETUP
case 40:
YY_RULE_SETUP
#line 249 "util/configlexer.lex"
-{ YDVAR(1, VAR_OUTGOING_INTERFACE) }
+{ YDVAR(1, VAR_INTERFACE) }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 250 "util/configlexer.lex"
-{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
+{ YDVAR(1, VAR_OUTGOING_INTERFACE) }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 251 "util/configlexer.lex"
-{ YDVAR(1, VAR_SO_RCVBUF) }
+{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 252 "util/configlexer.lex"
-{ YDVAR(1, VAR_SO_SNDBUF) }
+{ YDVAR(1, VAR_SO_RCVBUF) }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 253 "util/configlexer.lex"
-{ YDVAR(1, VAR_SO_REUSEPORT) }
+{ YDVAR(1, VAR_SO_SNDBUF) }
YY_BREAK
case 45:
YY_RULE_SETUP
#line 254 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_TRANSPARENT) }
+{ YDVAR(1, VAR_SO_REUSEPORT) }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 255 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_FREEBIND) }
+{ YDVAR(1, VAR_IP_TRANSPARENT) }
YY_BREAK
case 47:
YY_RULE_SETUP
#line 256 "util/configlexer.lex"
-{ YDVAR(1, VAR_CHROOT) }
+{ YDVAR(1, VAR_IP_FREEBIND) }
YY_BREAK
case 48:
YY_RULE_SETUP
#line 257 "util/configlexer.lex"
-{ YDVAR(1, VAR_USERNAME) }
+{ YDVAR(1, VAR_CHROOT) }
YY_BREAK
case 49:
YY_RULE_SETUP
#line 258 "util/configlexer.lex"
-{ YDVAR(1, VAR_DIRECTORY) }
+{ YDVAR(1, VAR_USERNAME) }
YY_BREAK
case 50:
YY_RULE_SETUP
#line 259 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOGFILE) }
+{ YDVAR(1, VAR_DIRECTORY) }
YY_BREAK
case 51:
YY_RULE_SETUP
#line 260 "util/configlexer.lex"
-{ YDVAR(1, VAR_PIDFILE) }
+{ YDVAR(1, VAR_LOGFILE) }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 261 "util/configlexer.lex"
-{ YDVAR(1, VAR_ROOT_HINTS) }
+{ YDVAR(1, VAR_PIDFILE) }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 262 "util/configlexer.lex"
-{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
+{ YDVAR(1, VAR_ROOT_HINTS) }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 263 "util/configlexer.lex"
-{ YDVAR(1, VAR_MSG_BUFFER_SIZE) }
+{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 264 "util/configlexer.lex"
-{ YDVAR(1, VAR_MSG_CACHE_SIZE) }
+{ YDVAR(1, VAR_MSG_BUFFER_SIZE) }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 265 "util/configlexer.lex"
-{ YDVAR(1, VAR_MSG_CACHE_SLABS) }
+{ YDVAR(1, VAR_MSG_CACHE_SIZE) }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 266 "util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_CACHE_SIZE) }
+{ YDVAR(1, VAR_MSG_CACHE_SLABS) }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 267 "util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_CACHE_SLABS) }
+{ YDVAR(1, VAR_RRSET_CACHE_SIZE) }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 268 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHE_MAX_TTL) }
+{ YDVAR(1, VAR_RRSET_CACHE_SLABS) }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 269 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
+{ YDVAR(1, VAR_CACHE_MAX_TTL) }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 270 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHE_MIN_TTL) }
+{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 271 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_HOST_TTL) }
+{ YDVAR(1, VAR_CACHE_MIN_TTL) }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 272 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_LAME_TTL) }
+{ YDVAR(1, VAR_INFRA_HOST_TTL) }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 273 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_SLABS) }
+{ YDVAR(1, VAR_INFRA_LAME_TTL) }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 274 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
+{ YDVAR(1, VAR_INFRA_CACHE_SLABS) }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 275 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
+{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
YY_BREAK
case 67:
YY_RULE_SETUP
#line 276 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
+{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
YY_BREAK
case 68:
YY_RULE_SETUP
#line 277 "util/configlexer.lex"
-{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
+{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
YY_BREAK
case 69:
YY_RULE_SETUP
#line 278 "util/configlexer.lex"
-{ YDVAR(1, VAR_JOSTLE_TIMEOUT) }
+{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
YY_BREAK
case 70:
YY_RULE_SETUP
#line 279 "util/configlexer.lex"
-{ YDVAR(1, VAR_DELAY_CLOSE) }
+{ YDVAR(1, VAR_JOSTLE_TIMEOUT) }
YY_BREAK
case 71:
YY_RULE_SETUP
#line 280 "util/configlexer.lex"
-{ YDVAR(1, VAR_TARGET_FETCH_POLICY) }
+{ YDVAR(1, VAR_DELAY_CLOSE) }
YY_BREAK
case 72:
YY_RULE_SETUP
#line 281 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
+{ YDVAR(1, VAR_TARGET_FETCH_POLICY) }
YY_BREAK
case 73:
YY_RULE_SETUP
#line 282 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
+{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
YY_BREAK
case 74:
YY_RULE_SETUP
#line 283 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_GLUE) }
+{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
YY_BREAK
case 75:
YY_RULE_SETUP
#line 284 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
+{ YDVAR(1, VAR_HARDEN_GLUE) }
YY_BREAK
case 76:
YY_RULE_SETUP
#line 285 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
+{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
YY_BREAK
case 77:
YY_RULE_SETUP
#line 286 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
+{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
YY_BREAK
case 78:
YY_RULE_SETUP
#line 287 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
+{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
YY_BREAK
case 79:
YY_RULE_SETUP
#line 288 "util/configlexer.lex"
-{ YDVAR(1, VAR_USE_CAPS_FOR_ID) }
+{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
YY_BREAK
case 80:
YY_RULE_SETUP
#line 289 "util/configlexer.lex"
-{ YDVAR(1, VAR_CAPS_WHITELIST) }
+{ YDVAR(1, VAR_USE_CAPS_FOR_ID) }
YY_BREAK
case 81:
YY_RULE_SETUP
#line 290 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
+{ YDVAR(1, VAR_CAPS_WHITELIST) }
YY_BREAK
case 82:
YY_RULE_SETUP
#line 291 "util/configlexer.lex"
-{ YDVAR(1, VAR_PRIVATE_ADDRESS) }
+{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
YY_BREAK
case 83:
YY_RULE_SETUP
#line 292 "util/configlexer.lex"
-{ YDVAR(1, VAR_PRIVATE_DOMAIN) }
+{ YDVAR(1, VAR_PRIVATE_ADDRESS) }
YY_BREAK
case 84:
YY_RULE_SETUP
#line 293 "util/configlexer.lex"
-{ YDVAR(1, VAR_PREFETCH_KEY) }
+{ YDVAR(1, VAR_PRIVATE_DOMAIN) }
YY_BREAK
case 85:
YY_RULE_SETUP
#line 294 "util/configlexer.lex"
-{ YDVAR(1, VAR_PREFETCH) }
+{ YDVAR(1, VAR_PREFETCH_KEY) }
YY_BREAK
case 86:
YY_RULE_SETUP
#line 295 "util/configlexer.lex"
-{ YDVAR(0, VAR_STUB_ZONE) }
+{ YDVAR(1, VAR_PREFETCH) }
YY_BREAK
case 87:
YY_RULE_SETUP
#line 296 "util/configlexer.lex"
-{ YDVAR(1, VAR_NAME) }
+{ YDVAR(0, VAR_STUB_ZONE) }
YY_BREAK
case 88:
YY_RULE_SETUP
#line 297 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_ADDR) }
+{ YDVAR(1, VAR_NAME) }
YY_BREAK
case 89:
YY_RULE_SETUP
#line 298 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_HOST) }
+{ YDVAR(1, VAR_STUB_ADDR) }
YY_BREAK
case 90:
YY_RULE_SETUP
#line 299 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_PRIME) }
+{ YDVAR(1, VAR_STUB_HOST) }
YY_BREAK
case 91:
YY_RULE_SETUP
#line 300 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_FIRST) }
+{ YDVAR(1, VAR_STUB_PRIME) }
YY_BREAK
case 92:
YY_RULE_SETUP
#line 301 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
+{ YDVAR(1, VAR_STUB_FIRST) }
YY_BREAK
case 93:
YY_RULE_SETUP
@@ -3942,27 +3935,27 @@ YY_RULE_SETUP
case 94:
YY_RULE_SETUP
#line 303 "util/configlexer.lex"
-{ YDVAR(0, VAR_FORWARD_ZONE) }
+{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
YY_BREAK
case 95:
YY_RULE_SETUP
#line 304 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_ADDR) }
+{ YDVAR(0, VAR_FORWARD_ZONE) }
YY_BREAK
case 96:
YY_RULE_SETUP
#line 305 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_HOST) }
+{ YDVAR(1, VAR_FORWARD_ADDR) }
YY_BREAK
case 97:
YY_RULE_SETUP
#line 306 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_FIRST) }
+{ YDVAR(1, VAR_FORWARD_HOST) }
YY_BREAK
case 98:
YY_RULE_SETUP
#line 307 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
+{ YDVAR(1, VAR_FORWARD_FIRST) }
YY_BREAK
case 99:
YY_RULE_SETUP
@@ -3972,599 +3965,599 @@ YY_RULE_SETUP
case 100:
YY_RULE_SETUP
#line 309 "util/configlexer.lex"
-{ YDVAR(0, VAR_AUTH_ZONE) }
+{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
YY_BREAK
case 101:
YY_RULE_SETUP
#line 310 "util/configlexer.lex"
-{ YDVAR(1, VAR_ZONEFILE) }
+{ YDVAR(0, VAR_AUTH_ZONE) }
YY_BREAK
case 102:
YY_RULE_SETUP
#line 311 "util/configlexer.lex"
-{ YDVAR(1, VAR_MASTER) }
+{ YDVAR(1, VAR_ZONEFILE) }
YY_BREAK
case 103:
YY_RULE_SETUP
#line 312 "util/configlexer.lex"
-{ YDVAR(1, VAR_URL) }
+{ YDVAR(1, VAR_MASTER) }
YY_BREAK
case 104:
YY_RULE_SETUP
#line 313 "util/configlexer.lex"
-{ YDVAR(1, VAR_ALLOW_NOTIFY) }
+{ YDVAR(1, VAR_URL) }
YY_BREAK
case 105:
YY_RULE_SETUP
#line 314 "util/configlexer.lex"
-{ YDVAR(1, VAR_FOR_DOWNSTREAM) }
+{ YDVAR(1, VAR_ALLOW_NOTIFY) }
YY_BREAK
case 106:
YY_RULE_SETUP
#line 315 "util/configlexer.lex"
-{ YDVAR(1, VAR_FOR_UPSTREAM) }
+{ YDVAR(1, VAR_FOR_DOWNSTREAM) }
YY_BREAK
case 107:
YY_RULE_SETUP
#line 316 "util/configlexer.lex"
-{ YDVAR(1, VAR_FALLBACK_ENABLED) }
+{ YDVAR(1, VAR_FOR_UPSTREAM) }
YY_BREAK
case 108:
YY_RULE_SETUP
#line 317 "util/configlexer.lex"
-{ YDVAR(0, VAR_VIEW) }
+{ YDVAR(1, VAR_FALLBACK_ENABLED) }
YY_BREAK
case 109:
YY_RULE_SETUP
#line 318 "util/configlexer.lex"
-{ YDVAR(1, VAR_VIEW_FIRST) }
+{ YDVAR(0, VAR_VIEW) }
YY_BREAK
case 110:
YY_RULE_SETUP
#line 319 "util/configlexer.lex"
-{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
+{ YDVAR(1, VAR_VIEW_FIRST) }
YY_BREAK
case 111:
YY_RULE_SETUP
#line 320 "util/configlexer.lex"
-{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
+{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
YY_BREAK
case 112:
YY_RULE_SETUP
#line 321 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL) }
+{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
YY_BREAK
case 113:
YY_RULE_SETUP
#line 322 "util/configlexer.lex"
-{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
+{ YDVAR(2, VAR_ACCESS_CONTROL) }
YY_BREAK
case 114:
YY_RULE_SETUP
#line 323 "util/configlexer.lex"
-{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
+{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
YY_BREAK
case 115:
YY_RULE_SETUP
#line 324 "util/configlexer.lex"
-{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
+{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
YY_BREAK
case 116:
YY_RULE_SETUP
#line 325 "util/configlexer.lex"
-{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
+{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
YY_BREAK
case 117:
YY_RULE_SETUP
#line 326 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
+{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
YY_BREAK
case 118:
YY_RULE_SETUP
#line 327 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
+{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
YY_BREAK
case 119:
YY_RULE_SETUP
#line 328 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_IDENTITY) }
+{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
YY_BREAK
case 120:
YY_RULE_SETUP
#line 329 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_VERSION) }
+{ YDVAR(1, VAR_HIDE_IDENTITY) }
YY_BREAK
case 121:
YY_RULE_SETUP
#line 330 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
+{ YDVAR(1, VAR_HIDE_VERSION) }
YY_BREAK
case 122:
YY_RULE_SETUP
#line 331 "util/configlexer.lex"
-{ YDVAR(1, VAR_IDENTITY) }
+{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
YY_BREAK
case 123:
YY_RULE_SETUP
#line 332 "util/configlexer.lex"
-{ YDVAR(1, VAR_VERSION) }
+{ YDVAR(1, VAR_IDENTITY) }
YY_BREAK
case 124:
YY_RULE_SETUP
#line 333 "util/configlexer.lex"
-{ YDVAR(1, VAR_MODULE_CONF) }
+{ YDVAR(1, VAR_VERSION) }
YY_BREAK
case 125:
YY_RULE_SETUP
#line 334 "util/configlexer.lex"
-{ YDVAR(1, VAR_DLV_ANCHOR) }
+{ YDVAR(1, VAR_MODULE_CONF) }
YY_BREAK
case 126:
YY_RULE_SETUP
#line 335 "util/configlexer.lex"
-{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
+{ YDVAR(1, VAR_DLV_ANCHOR) }
YY_BREAK
case 127:
YY_RULE_SETUP
#line 336 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
+{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
YY_BREAK
case 128:
YY_RULE_SETUP
#line 337 "util/configlexer.lex"
-{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
+{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
YY_BREAK
case 129:
YY_RULE_SETUP
#line 338 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
+{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
YY_BREAK
case 130:
YY_RULE_SETUP
#line 339 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR) }
+{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
YY_BREAK
case 131:
YY_RULE_SETUP
#line 340 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
+{ YDVAR(1, VAR_TRUST_ANCHOR) }
YY_BREAK
case 132:
YY_RULE_SETUP
#line 341 "util/configlexer.lex"
-{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) }
+{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
YY_BREAK
case 133:
YY_RULE_SETUP
#line 342 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
+{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) }
YY_BREAK
case 134:
YY_RULE_SETUP
#line 343 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
+{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
YY_BREAK
case 135:
YY_RULE_SETUP
#line 344 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
+{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
YY_BREAK
case 136:
YY_RULE_SETUP
#line 345 "util/configlexer.lex"
-{ YDVAR(1, VAR_BOGUS_TTL) }
+{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
YY_BREAK
case 137:
YY_RULE_SETUP
#line 346 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
+{ YDVAR(1, VAR_BOGUS_TTL) }
YY_BREAK
case 138:
YY_RULE_SETUP
#line 347 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
+{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
YY_BREAK
case 139:
YY_RULE_SETUP
#line 348 "util/configlexer.lex"
-{ YDVAR(1, VAR_AGGRESSIVE_NSEC) }
+{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
YY_BREAK
case 140:
YY_RULE_SETUP
#line 349 "util/configlexer.lex"
-{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
+{ YDVAR(1, VAR_AGGRESSIVE_NSEC) }
YY_BREAK
case 141:
YY_RULE_SETUP
#line 350 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVE_EXPIRED) }
+{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
YY_BREAK
case 142:
YY_RULE_SETUP
#line 351 "util/configlexer.lex"
-{ YDVAR(1, VAR_FAKE_DSA) }
+{ YDVAR(1, VAR_SERVE_EXPIRED) }
YY_BREAK
case 143:
YY_RULE_SETUP
#line 352 "util/configlexer.lex"
-{ YDVAR(1, VAR_FAKE_SHA1) }
+{ YDVAR(1, VAR_FAKE_DSA) }
YY_BREAK
case 144:
YY_RULE_SETUP
#line 353 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
+{ YDVAR(1, VAR_FAKE_SHA1) }
YY_BREAK
case 145:
YY_RULE_SETUP
#line 354 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
+{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
YY_BREAK
case 146:
YY_RULE_SETUP
#line 355 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
+{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
YY_BREAK
case 147:
YY_RULE_SETUP
#line 356 "util/configlexer.lex"
-{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
+{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
YY_BREAK
case 148:
YY_RULE_SETUP
#line 357 "util/configlexer.lex"
-{
- YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
+{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
YY_BREAK
case 149:
YY_RULE_SETUP
-#line 359 "util/configlexer.lex"
-{ YDVAR(1, VAR_ADD_HOLDDOWN) }
+#line 358 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
YY_BREAK
case 150:
YY_RULE_SETUP
#line 360 "util/configlexer.lex"
-{ YDVAR(1, VAR_DEL_HOLDDOWN) }
+{ YDVAR(1, VAR_ADD_HOLDDOWN) }
YY_BREAK
case 151:
YY_RULE_SETUP
#line 361 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEEP_MISSING) }
+{ YDVAR(1, VAR_DEL_HOLDDOWN) }
YY_BREAK
case 152:
YY_RULE_SETUP
#line 362 "util/configlexer.lex"
-{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
+{ YDVAR(1, VAR_KEEP_MISSING) }
YY_BREAK
case 153:
YY_RULE_SETUP
#line 363 "util/configlexer.lex"
-{ YDVAR(1, VAR_USE_SYSLOG) }
+{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
YY_BREAK
case 154:
YY_RULE_SETUP
#line 364 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_IDENTITY) }
+{ YDVAR(1, VAR_USE_SYSLOG) }
YY_BREAK
case 155:
YY_RULE_SETUP
#line 365 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_TIME_ASCII) }
+{ YDVAR(1, VAR_LOG_IDENTITY) }
YY_BREAK
case 156:
YY_RULE_SETUP
#line 366 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_QUERIES) }
+{ YDVAR(1, VAR_LOG_TIME_ASCII) }
YY_BREAK
case 157:
YY_RULE_SETUP
#line 367 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_REPLIES) }
+{ YDVAR(1, VAR_LOG_QUERIES) }
YY_BREAK
case 158:
YY_RULE_SETUP
#line 368 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE) }
+{ YDVAR(1, VAR_LOG_REPLIES) }
YY_BREAK
case 159:
YY_RULE_SETUP
#line 369 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA) }
+{ YDVAR(2, VAR_LOCAL_ZONE) }
YY_BREAK
case 160:
YY_RULE_SETUP
#line 370 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
+{ YDVAR(1, VAR_LOCAL_DATA) }
YY_BREAK
case 161:
YY_RULE_SETUP
#line 371 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
YY_BREAK
case 162:
YY_RULE_SETUP
#line 372 "util/configlexer.lex"
-{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
+{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
YY_BREAK
case 163:
YY_RULE_SETUP
#line 373 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
+{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
YY_BREAK
case 164:
YY_RULE_SETUP
#line 374 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
+{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
YY_BREAK
case 165:
YY_RULE_SETUP
#line 375 "util/configlexer.lex"
-{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
+{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
YY_BREAK
case 166:
YY_RULE_SETUP
#line 376 "util/configlexer.lex"
-{ YDVAR(1, VAR_SHM_ENABLE) }
+{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
YY_BREAK
case 167:
YY_RULE_SETUP
#line 377 "util/configlexer.lex"
-{ YDVAR(1, VAR_SHM_KEY) }
+{ YDVAR(1, VAR_SHM_ENABLE) }
YY_BREAK
case 168:
YY_RULE_SETUP
#line 378 "util/configlexer.lex"
-{ YDVAR(0, VAR_REMOTE_CONTROL) }
+{ YDVAR(1, VAR_SHM_KEY) }
YY_BREAK
case 169:
YY_RULE_SETUP
#line 379 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_ENABLE) }
+{ YDVAR(0, VAR_REMOTE_CONTROL) }
YY_BREAK
case 170:
YY_RULE_SETUP
#line 380 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_INTERFACE) }
+{ YDVAR(1, VAR_CONTROL_ENABLE) }
YY_BREAK
case 171:
YY_RULE_SETUP
#line 381 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_PORT) }
+{ YDVAR(1, VAR_CONTROL_INTERFACE) }
YY_BREAK
case 172:
YY_RULE_SETUP
#line 382 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_USE_CERT) }
+{ YDVAR(1, VAR_CONTROL_PORT) }
YY_BREAK
case 173:
YY_RULE_SETUP
#line 383 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_KEY_FILE) }
+{ YDVAR(1, VAR_CONTROL_USE_CERT) }
YY_BREAK
case 174:
YY_RULE_SETUP
#line 384 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_CERT_FILE) }
+{ YDVAR(1, VAR_SERVER_KEY_FILE) }
YY_BREAK
case 175:
YY_RULE_SETUP
#line 385 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
+{ YDVAR(1, VAR_SERVER_CERT_FILE) }
YY_BREAK
case 176:
YY_RULE_SETUP
#line 386 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
+{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
YY_BREAK
case 177:
YY_RULE_SETUP
#line 387 "util/configlexer.lex"
-{ YDVAR(1, VAR_PYTHON_SCRIPT) }
+{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
YY_BREAK
case 178:
YY_RULE_SETUP
#line 388 "util/configlexer.lex"
-{ YDVAR(0, VAR_PYTHON) }
+{ YDVAR(1, VAR_PYTHON_SCRIPT) }
YY_BREAK
case 179:
YY_RULE_SETUP
#line 389 "util/configlexer.lex"
-{ YDVAR(1, VAR_DOMAIN_INSECURE) }
+{ YDVAR(0, VAR_PYTHON) }
YY_BREAK
case 180:
YY_RULE_SETUP
#line 390 "util/configlexer.lex"
-{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
+{ YDVAR(1, VAR_DOMAIN_INSECURE) }
YY_BREAK
case 181:
YY_RULE_SETUP
#line 391 "util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
+{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
YY_BREAK
case 182:
YY_RULE_SETUP
#line 392 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_UDP_SIZE) }
+{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
YY_BREAK
case 183:
YY_RULE_SETUP
#line 393 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_PREFIX) }
+{ YDVAR(1, VAR_MAX_UDP_SIZE) }
YY_BREAK
case 184:
YY_RULE_SETUP
#line 394 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_SYNTHALL) }
+{ YDVAR(1, VAR_DNS64_PREFIX) }
YY_BREAK
case 185:
YY_RULE_SETUP
#line 395 "util/configlexer.lex"
-{ YDVAR(1, VAR_DEFINE_TAG) }
+{ YDVAR(1, VAR_DNS64_SYNTHALL) }
YY_BREAK
case 186:
YY_RULE_SETUP
#line 396 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
+{ YDVAR(1, VAR_DEFINE_TAG) }
YY_BREAK
case 187:
YY_RULE_SETUP
#line 397 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
+{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
YY_BREAK
case 188:
YY_RULE_SETUP
#line 398 "util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
YY_BREAK
case 189:
YY_RULE_SETUP
#line 399 "util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
YY_BREAK
case 190:
YY_RULE_SETUP
#line 400 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
YY_BREAK
case 191:
YY_RULE_SETUP
#line 401 "util/configlexer.lex"
-{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
YY_BREAK
case 192:
YY_RULE_SETUP
#line 402 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSTAP) }
+{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
YY_BREAK
case 193:
YY_RULE_SETUP
#line 403 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_ENABLE) }
+{ YDVAR(0, VAR_DNSTAP) }
YY_BREAK
case 194:
YY_RULE_SETUP
#line 404 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
+{ YDVAR(1, VAR_DNSTAP_ENABLE) }
YY_BREAK
case 195:
YY_RULE_SETUP
#line 405 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
YY_BREAK
case 196:
YY_RULE_SETUP
#line 406 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
YY_BREAK
case 197:
YY_RULE_SETUP
#line 407 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
YY_BREAK
case 198:
YY_RULE_SETUP
#line 408 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
YY_BREAK
case 199:
YY_RULE_SETUP
#line 409 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
+{ YDVAR(1, VAR_DNSTAP_VERSION) }
YY_BREAK
case 200:
YY_RULE_SETUP
-#line 411 "util/configlexer.lex"
+#line 410 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
YY_BREAK
case 201:
YY_RULE_SETUP
-#line 413 "util/configlexer.lex"
+#line 412 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
YY_BREAK
case 202:
YY_RULE_SETUP
-#line 415 "util/configlexer.lex"
+#line 414 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
YY_BREAK
case 203:
YY_RULE_SETUP
-#line 417 "util/configlexer.lex"
+#line 416 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
YY_BREAK
case 204:
YY_RULE_SETUP
-#line 419 "util/configlexer.lex"
+#line 418 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
YY_BREAK
case 205:
YY_RULE_SETUP
-#line 421 "util/configlexer.lex"
-{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
+#line 420 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
YY_BREAK
case 206:
YY_RULE_SETUP
#line 422 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT) }
+{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
YY_BREAK
case 207:
YY_RULE_SETUP
#line 423 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT) }
+{ YDVAR(1, VAR_IP_RATELIMIT) }
YY_BREAK
case 208:
YY_RULE_SETUP
#line 424 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_RATELIMIT) }
YY_BREAK
case 209:
YY_RULE_SETUP
#line 425 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
YY_BREAK
case 210:
YY_RULE_SETUP
#line 426 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_RATELIMIT_SLABS) }
YY_BREAK
case 211:
YY_RULE_SETUP
#line 427 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
YY_BREAK
case 212:
YY_RULE_SETUP
#line 428 "util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
+{ YDVAR(1, VAR_RATELIMIT_SIZE) }
YY_BREAK
case 213:
YY_RULE_SETUP
#line 429 "util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
+{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
YY_BREAK
case 214:
YY_RULE_SETUP
#line 430 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
YY_BREAK
case 215:
YY_RULE_SETUP
#line 431 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
YY_BREAK
case 216:
YY_RULE_SETUP
#line 432 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOW_RTT) }
+{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
YY_BREAK
case 217:
YY_RULE_SETUP
#line 433 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOW_RTT_PERMIL) }
+{ YDVAR(1, VAR_LOW_RTT) }
YY_BREAK
case 218:
YY_RULE_SETUP
@@ -4574,175 +4567,180 @@ YY_RULE_SETUP
case 219:
YY_RULE_SETUP
#line 435 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
+{ YDVAR(1, VAR_LOW_RTT_PERMIL) }
YY_BREAK
case 220:
YY_RULE_SETUP
#line 436 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP) }
+{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
YY_BREAK
case 221:
YY_RULE_SETUP
#line 437 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
+{ YDVAR(2, VAR_RESPONSE_IP) }
YY_BREAK
case 222:
YY_RULE_SETUP
#line 438 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSCRYPT) }
+{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
YY_BREAK
case 223:
YY_RULE_SETUP
#line 439 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
+{ YDVAR(0, VAR_DNSCRYPT) }
YY_BREAK
case 224:
YY_RULE_SETUP
#line 440 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PORT) }
+{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
YY_BREAK
case 225:
YY_RULE_SETUP
#line 441 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
+{ YDVAR(1, VAR_DNSCRYPT_PORT) }
YY_BREAK
case 226:
YY_RULE_SETUP
#line 442 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
YY_BREAK
case 227:
YY_RULE_SETUP
#line 443 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
+{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
YY_BREAK
case 228:
YY_RULE_SETUP
#line 444 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
YY_BREAK
case 229:
YY_RULE_SETUP
#line 445 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
YY_BREAK
case 230:
YY_RULE_SETUP
-#line 447 "util/configlexer.lex"
+#line 446 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
+ YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
YY_BREAK
case 231:
YY_RULE_SETUP
-#line 449 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
+#line 448 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
YY_BREAK
case 232:
YY_RULE_SETUP
#line 450 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
+{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
YY_BREAK
case 233:
YY_RULE_SETUP
#line 451 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_ENABLED) }
+{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
YY_BREAK
case 234:
YY_RULE_SETUP
#line 452 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
+{ YDVAR(1, VAR_IPSECMOD_ENABLED) }
YY_BREAK
case 235:
YY_RULE_SETUP
#line 453 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_HOOK) }
+{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
YY_BREAK
case 236:
YY_RULE_SETUP
#line 454 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
+{ YDVAR(1, VAR_IPSECMOD_HOOK) }
YY_BREAK
case 237:
YY_RULE_SETUP
#line 455 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_WHITELIST) }
+{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
YY_BREAK
case 238:
YY_RULE_SETUP
#line 456 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_STRICT) }
+{ YDVAR(1, VAR_IPSECMOD_WHITELIST) }
YY_BREAK
case 239:
YY_RULE_SETUP
#line 457 "util/configlexer.lex"
-{ YDVAR(0, VAR_CACHEDB) }
+{ YDVAR(1, VAR_IPSECMOD_STRICT) }
YY_BREAK
case 240:
YY_RULE_SETUP
#line 458 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_BACKEND) }
+{ YDVAR(0, VAR_CACHEDB) }
YY_BREAK
case 241:
YY_RULE_SETUP
#line 459 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_SECRETSEED) }
+{ YDVAR(1, VAR_CACHEDB_BACKEND) }
YY_BREAK
case 242:
YY_RULE_SETUP
#line 460 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISHOST) }
+{ YDVAR(1, VAR_CACHEDB_SECRETSEED) }
YY_BREAK
case 243:
YY_RULE_SETUP
#line 461 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISPORT) }
+{ YDVAR(1, VAR_CACHEDB_REDISHOST) }
YY_BREAK
case 244:
YY_RULE_SETUP
#line 462 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
+{ YDVAR(1, VAR_CACHEDB_REDISPORT) }
YY_BREAK
case 245:
YY_RULE_SETUP
#line 463 "util/configlexer.lex"
-{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
+{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
YY_BREAK
case 246:
-/* rule 246 can match eol */
YY_RULE_SETUP
#line 464 "util/configlexer.lex"
+{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
+ YY_BREAK
+case 247:
+/* rule 247 can match eol */
+YY_RULE_SETUP
+#line 465 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++; }
YY_BREAK
/* Quoted strings. Strip leading and ending quotes */
-case 247:
+case 248:
YY_RULE_SETUP
-#line 467 "util/configlexer.lex"
+#line 468 "util/configlexer.lex"
{ BEGIN(quotedstring); LEXOUT(("QS ")); }
YY_BREAK
case YY_STATE_EOF(quotedstring):
-#line 468 "util/configlexer.lex"
+#line 469 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 248:
+case 249:
YY_RULE_SETUP
-#line 473 "util/configlexer.lex"
+#line 474 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 249:
-/* rule 249 can match eol */
+case 250:
+/* rule 250 can match eol */
YY_RULE_SETUP
-#line 474 "util/configlexer.lex"
+#line 475 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end \"");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 250:
+case 251:
YY_RULE_SETUP
-#line 476 "util/configlexer.lex"
+#line 477 "util/configlexer.lex"
{
LEXOUT(("QE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -4755,34 +4753,34 @@ YY_RULE_SETUP
}
YY_BREAK
/* Single Quoted strings. Strip leading and ending quotes */
-case 251:
+case 252:
YY_RULE_SETUP
-#line 488 "util/configlexer.lex"
+#line 489 "util/configlexer.lex"
{ BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
YY_BREAK
case YY_STATE_EOF(singlequotedstr):
-#line 489 "util/configlexer.lex"
+#line 490 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 252:
+case 253:
YY_RULE_SETUP
-#line 494 "util/configlexer.lex"
+#line 495 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 253:
-/* rule 253 can match eol */
+case 254:
+/* rule 254 can match eol */
YY_RULE_SETUP
-#line 495 "util/configlexer.lex"
+#line 496 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end '");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 254:
+case 255:
YY_RULE_SETUP
-#line 497 "util/configlexer.lex"
+#line 498 "util/configlexer.lex"
{
LEXOUT(("SQE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -4795,38 +4793,38 @@ YY_RULE_SETUP
}
YY_BREAK
/* include: directive */
-case 255:
+case 256:
YY_RULE_SETUP
-#line 509 "util/configlexer.lex"
+#line 510 "util/configlexer.lex"
{
LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
YY_BREAK
case YY_STATE_EOF(include):
-#line 511 "util/configlexer.lex"
+#line 512 "util/configlexer.lex"
{
yyerror("EOF inside include directive");
BEGIN(inc_prev);
}
YY_BREAK
-case 256:
-YY_RULE_SETUP
-#line 515 "util/configlexer.lex"
-{ LEXOUT(("ISP ")); /* ignore */ }
- YY_BREAK
case 257:
-/* rule 257 can match eol */
YY_RULE_SETUP
#line 516 "util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++;}
+{ LEXOUT(("ISP ")); /* ignore */ }
YY_BREAK
case 258:
+/* rule 258 can match eol */
YY_RULE_SETUP
#line 517 "util/configlexer.lex"
-{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+{ LEXOUT(("NL\n")); cfg_parser->line++;}
YY_BREAK
case 259:
YY_RULE_SETUP
#line 518 "util/configlexer.lex"
+{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+ YY_BREAK
+case 260:
+YY_RULE_SETUP
+#line 519 "util/configlexer.lex"
{
LEXOUT(("Iunquotedstr(%s) ", yytext));
config_start_include_glob(yytext);
@@ -4834,27 +4832,27 @@ YY_RULE_SETUP
}
YY_BREAK
case YY_STATE_EOF(include_quoted):
-#line 523 "util/configlexer.lex"
+#line 524 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
BEGIN(inc_prev);
}
YY_BREAK
-case 260:
+case 261:
YY_RULE_SETUP
-#line 527 "util/configlexer.lex"
+#line 528 "util/configlexer.lex"
{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 261:
-/* rule 261 can match eol */
+case 262:
+/* rule 262 can match eol */
YY_RULE_SETUP
-#line 528 "util/configlexer.lex"
+#line 529 "util/configlexer.lex"
{ yyerror("newline before \" in include name");
cfg_parser->line++; BEGIN(inc_prev); }
YY_BREAK
-case 262:
+case 263:
YY_RULE_SETUP
-#line 530 "util/configlexer.lex"
+#line 531 "util/configlexer.lex"
{
LEXOUT(("IQE "));
yytext[yyleng - 1] = '\0';
@@ -4864,7 +4862,7 @@ YY_RULE_SETUP
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(val):
-#line 536 "util/configlexer.lex"
+#line 537 "util/configlexer.lex"
{
LEXOUT(("LEXEOF "));
yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
@@ -4876,33 +4874,33 @@ case YY_STATE_EOF(val):
}
}
YY_BREAK
-case 263:
+case 264:
YY_RULE_SETUP
-#line 547 "util/configlexer.lex"
+#line 548 "util/configlexer.lex"
{ LEXOUT(("unquotedstr(%s) ", yytext));
if(--num_args == 0) { BEGIN(INITIAL); }
yylval.str = strdup(yytext); return STRING_ARG; }
YY_BREAK
-case 264:
+case 265:
YY_RULE_SETUP
-#line 551 "util/configlexer.lex"
+#line 552 "util/configlexer.lex"
{
ub_c_error_msg("unknown keyword '%s'", yytext);
}
YY_BREAK
-case 265:
+case 266:
YY_RULE_SETUP
-#line 555 "util/configlexer.lex"
+#line 556 "util/configlexer.lex"
{
ub_c_error_msg("stray '%s'", yytext);
}
YY_BREAK
-case 266:
+case 267:
YY_RULE_SETUP
-#line 559 "util/configlexer.lex"
+#line 560 "util/configlexer.lex"
ECHO;
YY_BREAK
-#line 4904 "<stdout>"
+#line 4902 "<stdout>"
case YY_END_OF_BUFFER:
{
@@ -5193,7 +5191,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 >= 2631 )
+ if ( yy_current_state >= 2632 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
@@ -5221,11 +5219,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 >= 2631 )
+ if ( yy_current_state >= 2632 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
- yy_is_jam = (yy_current_state == 2630);
+ yy_is_jam = (yy_current_state == 2631);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -5864,7 +5862,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 559 "util/configlexer.lex"
+#line 560 "util/configlexer.lex"
diff --git a/util/configlexer.lex b/util/configlexer.lex
index 6019b1395b36..6124e32bd240 100644
--- a/util/configlexer.lex
+++ b/util/configlexer.lex
@@ -239,9 +239,10 @@ tls-port{COLON} { YDVAR(1, VAR_SSL_PORT) }
ssl-cert-bundle{COLON} { YDVAR(1, VAR_TLS_CERT_BUNDLE) }
tls-cert-bundle{COLON} { YDVAR(1, VAR_TLS_CERT_BUNDLE) }
tls-win-cert{COLON} { YDVAR(1, VAR_TLS_WIN_CERT) }
-additional-ssl-port{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
-additional-tls-port{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
-tls-additional-ports{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
+additional-ssl-port{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
+additional-tls-port{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
+tls-additional-ports{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
+tls-additional-port{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
use-systemd{COLON} { YDVAR(1, VAR_USE_SYSTEMD) }
do-daemonize{COLON} { YDVAR(1, VAR_DO_DAEMONIZE) }
interface{COLON} { YDVAR(1, VAR_INTERFACE) }
diff --git a/util/configparser.c b/util/configparser.c
index 227dd0ae9b25..820a6fd9560e 100644
--- a/util/configparser.c
+++ b/util/configparser.c
@@ -361,7 +361,7 @@ extern int yydebug;
VAR_URL = 490,
VAR_FOR_DOWNSTREAM = 491,
VAR_FALLBACK_ENABLED = 492,
- VAR_TLS_ADDITIONAL_PORTS = 493,
+ VAR_TLS_ADDITIONAL_PORT = 493,
VAR_LOW_RTT = 494,
VAR_LOW_RTT_PERMIL = 495,
VAR_ALLOW_NOTIFY = 496,
@@ -604,7 +604,7 @@ extern int yydebug;
#define VAR_URL 490
#define VAR_FOR_DOWNSTREAM 491
#define VAR_FALLBACK_ENABLED 492
-#define VAR_TLS_ADDITIONAL_PORTS 493
+#define VAR_TLS_ADDITIONAL_PORT 493
#define VAR_LOW_RTT 494
#define VAR_LOW_RTT_PERMIL 495
#define VAR_ALLOW_NOTIFY 496
@@ -999,15 +999,15 @@ static const yytype_uint16 yyrline[] =
2025, 2034, 2044, 2054, 2064, 2071, 2078, 2087, 2097, 2107,
2114, 2121, 2128, 2136, 2146, 2156, 2166, 2176, 2206, 2216,
2224, 2233, 2248, 2257, 2262, 2263, 2264, 2264, 2264, 2265,
- 2265, 2265, 2266, 2266, 2268, 2278, 2287, 2294, 2304, 2311,
- 2318, 2325, 2332, 2337, 2338, 2339, 2339, 2340, 2340, 2341,
- 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2349, 2357, 2364,
- 2372, 2380, 2387, 2394, 2403, 2412, 2421, 2430, 2439, 2448,
- 2453, 2454, 2455, 2457, 2463, 2473, 2480, 2489, 2497, 2503,
- 2504, 2506, 2506, 2506, 2507, 2507, 2508, 2509, 2510, 2511,
- 2512, 2514, 2524, 2534, 2541, 2550, 2557, 2566, 2574, 2587,
- 2595, 2608, 2613, 2614, 2615, 2615, 2616, 2616, 2616, 2618,
- 2632, 2647, 2659, 2674
+ 2265, 2265, 2266, 2266, 2268, 2278, 2287, 2294, 2301, 2308,
+ 2315, 2322, 2329, 2334, 2335, 2336, 2336, 2337, 2337, 2338,
+ 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2346, 2354, 2361,
+ 2369, 2377, 2384, 2391, 2400, 2409, 2418, 2427, 2436, 2445,
+ 2450, 2451, 2452, 2454, 2460, 2470, 2477, 2486, 2494, 2500,
+ 2501, 2503, 2503, 2503, 2504, 2504, 2505, 2506, 2507, 2508,
+ 2509, 2511, 2521, 2531, 2538, 2547, 2554, 2563, 2571, 2584,
+ 2592, 2605, 2610, 2611, 2612, 2612, 2613, 2613, 2613, 2615,
+ 2629, 2644, 2656, 2671
};
#endif
@@ -1103,7 +1103,7 @@ static const char *const yytname[] =
"VAR_CACHEDB_REDISTIMEOUT", "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM",
"VAR_FOR_UPSTREAM", "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER",
"VAR_URL", "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED",
- "VAR_TLS_ADDITIONAL_PORTS", "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL",
+ "VAR_TLS_ADDITIONAL_PORT", "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL",
"VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT", "$accept", "toplevelvars",
"toplevelvar", "serverstart", "contents_server", "content_server",
"stubstart", "contents_stub", "content_stub", "forwardstart",
@@ -1124,7 +1124,7 @@ static const char *const yytname[] =
"server_udp_upstream_without_downstream", "server_ssl_upstream",
"server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port",
"server_tls_cert_bundle", "server_tls_win_cert",
- "server_tls_additional_ports", "server_use_systemd",
+ "server_tls_additional_port", "server_use_systemd",
"server_do_daemonize", "server_use_syslog", "server_log_time_ascii",
"server_log_queries", "server_log_replies", "server_chroot",
"server_username", "server_directory", "server_logfile",
@@ -3022,8 +3022,8 @@ yyreduce:
case 260:
#line 701 "util/configparser.y" /* yacc.c:1646 */
{
- OUTYY(("P(server_tls_additional_ports:%s)\n", (yyvsp[0].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_ports,
+ 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");
}
@@ -5072,7 +5072,7 @@ yyreduce:
#line 2288 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
+ if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
yyerror("out of memory");
}
#line 5079 "util/configparser.c" /* yacc.c:1646 */
@@ -5082,128 +5082,125 @@ yyreduce:
#line 2295 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
- if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
- yyerror("expected yes or no.");
- else cfg_parser->cfg->remote_control_use_cert =
- (strcmp((yyvsp[0].str), "yes")==0);
+ cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5092 "util/configparser.c" /* yacc.c:1646 */
+#line 5089 "util/configparser.c" /* yacc.c:1646 */
break;
case 428:
-#line 2305 "util/configparser.y" /* yacc.c:1646 */
+#line 2302 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->server_key_file);
cfg_parser->cfg->server_key_file = (yyvsp[0].str);
}
-#line 5102 "util/configparser.c" /* yacc.c:1646 */
+#line 5099 "util/configparser.c" /* yacc.c:1646 */
break;
case 429:
-#line 2312 "util/configparser.y" /* yacc.c:1646 */
+#line 2309 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->server_cert_file);
cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
}
-#line 5112 "util/configparser.c" /* yacc.c:1646 */
+#line 5109 "util/configparser.c" /* yacc.c:1646 */
break;
case 430:
-#line 2319 "util/configparser.y" /* yacc.c:1646 */
+#line 2316 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->control_key_file);
cfg_parser->cfg->control_key_file = (yyvsp[0].str);
}
-#line 5122 "util/configparser.c" /* yacc.c:1646 */
+#line 5119 "util/configparser.c" /* yacc.c:1646 */
break;
case 431:
-#line 2326 "util/configparser.y" /* yacc.c:1646 */
+#line 2323 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->control_cert_file);
cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
}
-#line 5132 "util/configparser.c" /* yacc.c:1646 */
+#line 5129 "util/configparser.c" /* yacc.c:1646 */
break;
case 432:
-#line 2333 "util/configparser.y" /* yacc.c:1646 */
+#line 2330 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(dnstap:)\n"));
}
-#line 5140 "util/configparser.c" /* yacc.c:1646 */
+#line 5137 "util/configparser.c" /* yacc.c:1646 */
break;
case 447:
-#line 2350 "util/configparser.y" /* yacc.c:1646 */
+#line 2347 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5151 "util/configparser.c" /* yacc.c:1646 */
+#line 5148 "util/configparser.c" /* yacc.c:1646 */
break;
case 448:
-#line 2358 "util/configparser.y" /* yacc.c:1646 */
+#line 2355 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_socket_path);
cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
}
-#line 5161 "util/configparser.c" /* yacc.c:1646 */
+#line 5158 "util/configparser.c" /* yacc.c:1646 */
break;
case 449:
-#line 2365 "util/configparser.y" /* yacc.c:1646 */
+#line 2362 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5172 "util/configparser.c" /* yacc.c:1646 */
+#line 5169 "util/configparser.c" /* yacc.c:1646 */
break;
case 450:
-#line 2373 "util/configparser.y" /* yacc.c:1646 */
+#line 2370 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5183 "util/configparser.c" /* yacc.c:1646 */
+#line 5180 "util/configparser.c" /* yacc.c:1646 */
break;
case 451:
-#line 2381 "util/configparser.y" /* yacc.c:1646 */
+#line 2378 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_identity);
cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
}
-#line 5193 "util/configparser.c" /* yacc.c:1646 */
+#line 5190 "util/configparser.c" /* yacc.c:1646 */
break;
case 452:
-#line 2388 "util/configparser.y" /* yacc.c:1646 */
+#line 2385 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_version);
cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
}
-#line 5203 "util/configparser.c" /* yacc.c:1646 */
+#line 5200 "util/configparser.c" /* yacc.c:1646 */
break;
case 453:
-#line 2395 "util/configparser.y" /* yacc.c:1646 */
+#line 2392 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5211,11 +5208,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_resolver_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5215 "util/configparser.c" /* yacc.c:1646 */
+#line 5212 "util/configparser.c" /* yacc.c:1646 */
break;
case 454:
-#line 2404 "util/configparser.y" /* yacc.c:1646 */
+#line 2401 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5223,11 +5220,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_resolver_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5227 "util/configparser.c" /* yacc.c:1646 */
+#line 5224 "util/configparser.c" /* yacc.c:1646 */
break;
case 455:
-#line 2413 "util/configparser.y" /* yacc.c:1646 */
+#line 2410 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5235,11 +5232,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_client_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5239 "util/configparser.c" /* yacc.c:1646 */
+#line 5236 "util/configparser.c" /* yacc.c:1646 */
break;
case 456:
-#line 2422 "util/configparser.y" /* yacc.c:1646 */
+#line 2419 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5247,11 +5244,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_client_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5251 "util/configparser.c" /* yacc.c:1646 */
+#line 5248 "util/configparser.c" /* yacc.c:1646 */
break;
case 457:
-#line 2431 "util/configparser.y" /* yacc.c:1646 */
+#line 2428 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5259,11 +5256,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5263 "util/configparser.c" /* yacc.c:1646 */
+#line 5260 "util/configparser.c" /* yacc.c:1646 */
break;
case 458:
-#line 2440 "util/configparser.y" /* yacc.c:1646 */
+#line 2437 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5271,29 +5268,29 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5275 "util/configparser.c" /* yacc.c:1646 */
+#line 5272 "util/configparser.c" /* yacc.c:1646 */
break;
case 459:
-#line 2449 "util/configparser.y" /* yacc.c:1646 */
+#line 2446 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(python:)\n"));
}
-#line 5283 "util/configparser.c" /* yacc.c:1646 */
+#line 5280 "util/configparser.c" /* yacc.c:1646 */
break;
case 463:
-#line 2458 "util/configparser.y" /* yacc.c:1646 */
+#line 2455 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->python_script);
cfg_parser->cfg->python_script = (yyvsp[0].str);
}
-#line 5293 "util/configparser.c" /* yacc.c:1646 */
+#line 5290 "util/configparser.c" /* yacc.c:1646 */
break;
case 464:
-#line 2464 "util/configparser.y" /* yacc.c:1646 */
+#line 2461 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5302,21 +5299,21 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5306 "util/configparser.c" /* yacc.c:1646 */
+#line 5303 "util/configparser.c" /* yacc.c:1646 */
break;
case 465:
-#line 2474 "util/configparser.y" /* yacc.c:1646 */
+#line 2471 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->log_identity);
cfg_parser->cfg->log_identity = (yyvsp[0].str);
}
-#line 5316 "util/configparser.c" /* yacc.c:1646 */
+#line 5313 "util/configparser.c" /* yacc.c:1646 */
break;
case 466:
-#line 2481 "util/configparser.y" /* yacc.c:1646 */
+#line 2478 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_respip_action((yyvsp[0].str));
@@ -5324,31 +5321,31 @@ yyreduce:
(yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding response-ip");
}
-#line 5328 "util/configparser.c" /* yacc.c:1646 */
+#line 5325 "util/configparser.c" /* yacc.c:1646 */
break;
case 467:
-#line 2490 "util/configparser.y" /* yacc.c:1646 */
+#line 2487 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str)));
if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
(yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding response-ip-data");
}
-#line 5339 "util/configparser.c" /* yacc.c:1646 */
+#line 5336 "util/configparser.c" /* yacc.c:1646 */
break;
case 468:
-#line 2498 "util/configparser.y" /* yacc.c:1646 */
+#line 2495 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(dnscrypt:)\n"));
OUTYY(("\nP(dnscrypt:)\n"));
}
-#line 5348 "util/configparser.c" /* yacc.c:1646 */
+#line 5345 "util/configparser.c" /* yacc.c:1646 */
break;
case 481:
-#line 2515 "util/configparser.y" /* yacc.c:1646 */
+#line 2512 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5356,11 +5353,11 @@ yyreduce:
else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5360 "util/configparser.c" /* yacc.c:1646 */
+#line 5357 "util/configparser.c" /* yacc.c:1646 */
break;
case 482:
-#line 2525 "util/configparser.y" /* yacc.c:1646 */
+#line 2522 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
@@ -5369,21 +5366,21 @@ yyreduce:
else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5373 "util/configparser.c" /* yacc.c:1646 */
+#line 5370 "util/configparser.c" /* yacc.c:1646 */
break;
case 483:
-#line 2535 "util/configparser.y" /* yacc.c:1646 */
+#line 2532 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnscrypt_provider);
cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
}
-#line 5383 "util/configparser.c" /* yacc.c:1646 */
+#line 5380 "util/configparser.c" /* yacc.c:1646 */
break;
case 484:
-#line 2542 "util/configparser.y" /* yacc.c:1646 */
+#line 2539 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str)));
if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
@@ -5391,21 +5388,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 5395 "util/configparser.c" /* yacc.c:1646 */
+#line 5392 "util/configparser.c" /* yacc.c:1646 */
break;
case 485:
-#line 2551 "util/configparser.y" /* yacc.c:1646 */
+#line 2548 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
fatal_exit("out of memory adding dnscrypt-provider-cert-rotated");
}
-#line 5405 "util/configparser.c" /* yacc.c:1646 */
+#line 5402 "util/configparser.c" /* yacc.c:1646 */
break;
case 486:
-#line 2558 "util/configparser.y" /* yacc.c:1646 */
+#line 2555 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str)));
if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
@@ -5413,22 +5410,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 5417 "util/configparser.c" /* yacc.c:1646 */
+#line 5414 "util/configparser.c" /* yacc.c:1646 */
break;
case 487:
-#line 2567 "util/configparser.y" /* yacc.c:1646 */
+#line 2564 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 5428 "util/configparser.c" /* yacc.c:1646 */
+#line 5425 "util/configparser.c" /* yacc.c:1646 */
break;
case 488:
-#line 2575 "util/configparser.y" /* yacc.c:1646 */
+#line 2572 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -5440,22 +5437,22 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5444 "util/configparser.c" /* yacc.c:1646 */
+#line 5441 "util/configparser.c" /* yacc.c:1646 */
break;
case 489:
-#line 2588 "util/configparser.y" /* yacc.c:1646 */
+#line 2585 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 5455 "util/configparser.c" /* yacc.c:1646 */
+#line 5452 "util/configparser.c" /* yacc.c:1646 */
break;
case 490:
-#line 2596 "util/configparser.y" /* yacc.c:1646 */
+#line 2593 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -5467,19 +5464,19 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5471 "util/configparser.c" /* yacc.c:1646 */
+#line 5468 "util/configparser.c" /* yacc.c:1646 */
break;
case 491:
-#line 2609 "util/configparser.y" /* yacc.c:1646 */
+#line 2606 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(cachedb:)\n"));
}
-#line 5479 "util/configparser.c" /* yacc.c:1646 */
+#line 5476 "util/configparser.c" /* yacc.c:1646 */
break;
case 499:
-#line 2619 "util/configparser.y" /* yacc.c:1646 */
+#line 2616 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef USE_CACHEDB
OUTYY(("P(backend:%s)\n", (yyvsp[0].str)));
@@ -5492,11 +5489,11 @@ yyreduce:
OUTYY(("P(Compiled without cachedb, ignoring)\n"));
#endif
}
-#line 5496 "util/configparser.c" /* yacc.c:1646 */
+#line 5493 "util/configparser.c" /* yacc.c:1646 */
break;
case 500:
-#line 2633 "util/configparser.y" /* yacc.c:1646 */
+#line 2630 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef USE_CACHEDB
OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str)));
@@ -5510,11 +5507,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 5514 "util/configparser.c" /* yacc.c:1646 */
+#line 5511 "util/configparser.c" /* yacc.c:1646 */
break;
case 501:
-#line 2648 "util/configparser.y" /* yacc.c:1646 */
+#line 2645 "util/configparser.y" /* yacc.c:1646 */
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str)));
@@ -5525,11 +5522,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 5529 "util/configparser.c" /* yacc.c:1646 */
+#line 5526 "util/configparser.c" /* yacc.c:1646 */
break;
case 502:
-#line 2660 "util/configparser.y" /* yacc.c:1646 */
+#line 2657 "util/configparser.y" /* yacc.c:1646 */
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
int port;
@@ -5543,11 +5540,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 5547 "util/configparser.c" /* yacc.c:1646 */
+#line 5544 "util/configparser.c" /* yacc.c:1646 */
break;
case 503:
-#line 2675 "util/configparser.y" /* yacc.c:1646 */
+#line 2672 "util/configparser.y" /* yacc.c:1646 */
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str)));
@@ -5559,11 +5556,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 5563 "util/configparser.c" /* yacc.c:1646 */
+#line 5560 "util/configparser.c" /* yacc.c:1646 */
break;
-#line 5567 "util/configparser.c" /* yacc.c:1646 */
+#line 5564 "util/configparser.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -5791,7 +5788,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 2687 "util/configparser.y" /* yacc.c:1906 */
+#line 2684 "util/configparser.y" /* yacc.c:1906 */
/* parse helper routines could be here */
diff --git a/util/configparser.h b/util/configparser.h
index c5d0fe1c0d71..f635b8aa5eac 100644
--- a/util/configparser.h
+++ b/util/configparser.h
@@ -280,7 +280,7 @@ extern int yydebug;
VAR_URL = 490,
VAR_FOR_DOWNSTREAM = 491,
VAR_FALLBACK_ENABLED = 492,
- VAR_TLS_ADDITIONAL_PORTS = 493,
+ VAR_TLS_ADDITIONAL_PORT = 493,
VAR_LOW_RTT = 494,
VAR_LOW_RTT_PERMIL = 495,
VAR_ALLOW_NOTIFY = 496,
@@ -523,7 +523,7 @@ extern int yydebug;
#define VAR_URL 490
#define VAR_FOR_DOWNSTREAM 491
#define VAR_FALLBACK_ENABLED 492
-#define VAR_TLS_ADDITIONAL_PORTS 493
+#define VAR_TLS_ADDITIONAL_PORT 493
#define VAR_LOW_RTT 494
#define VAR_LOW_RTT_PERMIL 495
#define VAR_ALLOW_NOTIFY 496
diff --git a/util/configparser.y b/util/configparser.y
index 3f8a2df6e7d4..e34665aded0c 100644
--- a/util/configparser.y
+++ b/util/configparser.y
@@ -156,7 +156,7 @@ extern struct config_parser_state* cfg_parser;
%token VAR_CACHEDB_REDISHOST VAR_CACHEDB_REDISPORT VAR_CACHEDB_REDISTIMEOUT
%token VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM VAR_FOR_UPSTREAM
%token VAR_AUTH_ZONE VAR_ZONEFILE VAR_MASTER VAR_URL VAR_FOR_DOWNSTREAM
-%token VAR_FALLBACK_ENABLED VAR_TLS_ADDITIONAL_PORTS VAR_LOW_RTT VAR_LOW_RTT_PERMIL
+%token VAR_FALLBACK_ENABLED VAR_TLS_ADDITIONAL_PORT VAR_LOW_RTT VAR_LOW_RTT_PERMIL
%token VAR_ALLOW_NOTIFY VAR_TLS_WIN_CERT
%%
@@ -248,7 +248,7 @@ content_server: server_num_threads | server_verbosity | server_port |
server_ipsecmod_ignore_bogus | server_ipsecmod_max_ttl |
server_ipsecmod_whitelist | server_ipsecmod_strict |
server_udp_upstream_without_downstream | server_aggressive_nsec |
- server_tls_cert_bundle | server_tls_additional_ports | server_low_rtt |
+ server_tls_cert_bundle | server_tls_additional_port | server_low_rtt |
server_low_rtt_permil | server_tls_win_cert
;
stubstart: VAR_STUB_ZONE
@@ -697,10 +697,10 @@ server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG
free($2);
}
;
-server_tls_additional_ports: VAR_TLS_ADDITIONAL_PORTS STRING_ARG
+server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG
{
- OUTYY(("P(server_tls_additional_ports:%s)\n", $2));
- if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_ports,
+ OUTYY(("P(server_tls_additional_port:%s)\n", $2));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
$2))
yyerror("out of memory");
}
@@ -2287,17 +2287,14 @@ rc_control_port: VAR_CONTROL_PORT STRING_ARG
rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG
{
OUTYY(("P(control_interface:%s)\n", $2));
- if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, $2))
+ if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, $2))
yyerror("out of memory");
}
;
rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG
{
OUTYY(("P(control_use_cert:%s)\n", $2));
- if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
- yyerror("expected yes or no.");
- else cfg_parser->cfg->remote_control_use_cert =
- (strcmp($2, "yes")==0);
+ cfg_parser->cfg->control_use_cert = (strcmp($2, "yes")==0);
free($2);
}
;