Codebase list unbound / 1a796bf
Imported Debian patch 1.3.3-1 Robert S. Edmonds 12 years ago
57 changed file(s) with 3038 addition(s) and 2101 deletion(s). Raw diff Collapse all Expand all
3434 libtool=@libtool@
3535 ldnsdir=@ldnsdir@
3636 staticexe=@staticexe@
37 EXEEXT=@EXEEXT@
3738 configfile=@ub_conf_file@
3839 UNBOUND_RUN_DIR=@UNBOUND_RUN_DIR@
3940 CHECKLOCK_SRC=@CHECKLOCK_SRC@
4546 SWIG=@SWIG@
4647 YACC=@YACC@
4748 LEX=@LEX@
49 STRIP=@STRIP@
4850 CC=@CC@
4951 CPPFLAGS=-I. @CPPFLAGS@
5052 ifneq "$(srcdir)" "."
6466 endif
6567 BUILD=build/
6668
67 WINDRES=windres
69 WINDRES=@WINDRES@
6870 LINT=splint
6971 LINTFLAGS=+quiet -weak -warnposix -unrecog -Din_addr_t=uint32_t -Du_int=unsigned -Du_char=uint8_t -preproc -Drlimit=rlimit64 -D__gnuc_va_list=va_list -Dglob64=glob -Dglobfree64=globfree
7072 # compat with openssl linux edition.
8183 $(srcdir)/iterator/*.c $(srcdir)/validator/*.c $(PYTHONMOD_SRC))) \
8284 util/configparser.c util/configlexer.c $(CHECKLOCK_SRC)
8385 COMMON_OBJ=$(addprefix $(BUILD),$(COMMON_SRC:.c=.lo))
86 COMPAT_SRC=$(addprefix compat/,$(LIBOBJS:.o=.c))
8487 COMPAT_OBJ=$(addprefix $(BUILD)compat/,$(LIBOBJS:.o=.lo))
8588 UNITTEST_SRC=$(patsubst $(srcdir)/%,%, \
8689 $(wildcard $(srcdir)/testcode/unit*.c)) \
138141 CONTROL_OBJ+=$(BUILD)winrc/rsrc_unbound_control.o
139142 CHECKCONF_OBJ+=$(BUILD)winrc/rsrc_unbound_checkconf.o
140143
141 WINAPPS=unbound-service-install unbound-service-remove anchor-update
144 WINAPPS=$(addsuffix $(EXEEXT), unbound-service-install \
145 unbound-service-remove anchor-update)
142146 SVCINST_SRC=winrc/unbound-service-install.c winrc/w_inst.c
143147 SVCINST_OBJ=$(addprefix $(BUILD),$(SVCINST_SRC:.c=.lo)) $(COMPAT_OBJ) \
144148 $(BUILD)winrc/rsrc_svcinst.o
172176 @-if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi
173177 $Q$(COMPILE) -c $< -o $@
174178
175 all: $(COMMON_OBJ) unbound unbound-checkconf lib unbound-host unbound-control unbound-control-setup $(WINAPPS)
176
177 TEST_BIN=asynclook delayer harvest lock-verify memstats perf pktview signit \
178 streamtcp testbound unittest
179 all: $(COMMON_OBJ) unbound$(EXEEXT) unbound-checkconf$(EXEEXT) lib unbound-host$(EXEEXT) unbound-control$(EXEEXT) unbound-control-setup $(WINAPPS)
180
181 TEST_BIN=$(addsuffix $(EXEEXT),asynclook delayer harvest lock-verify \
182 memstats perf pktview signit streamtcp testbound unittest)
179183 tests: all $(TEST_BIN)
180184
181185 test: tests
189193
190194 ifeq ($(patsubst ldns-src%,ldns-src,$(ldnsdir)),ldns-src)
191195 ldnslib=$(ldnsdir)/lib/libldns.a
192 $(ldnslib):
196 $(ldnslib): $(ldnsdir)/lib
197 $(ldnsdir)/lib:
193198 @if test ! -z "$(ldnsdir)"; \
194199 then (cd $(ldnsdir) && $(MAKE)); fi
195200 else
196201 ldnslib=
197202 endif
198203
199 unbound: $(DAEMON_OBJ) $(ldnslib)
204 unbound$(EXEEXT): $(DAEMON_OBJ) $(ldnslib)
200205 $(INFO) Link $@
201206 $Q$(LINK) -o $@ $(sort $(DAEMON_OBJ)) -lssl $(LIBS)
202207
203 unbound-checkconf: $(CHECKCONF_OBJ) $(ldnslib)
208 unbound-checkconf$(EXEEXT): $(CHECKCONF_OBJ) $(ldnslib)
204209 $(INFO) Link $@
205210 $Q$(LINK) -o $@ $(sort $(CHECKCONF_OBJ)) $(LIBS)
206211
207 unbound-control: $(CONTROL_OBJ) $(ldnslib)
212 unbound-control$(EXEEXT): $(CONTROL_OBJ) $(ldnslib)
208213 $(INFO) Link $@
209214 $Q$(LINK) -o $@ $(sort $(CONTROL_OBJ)) -lssl $(LIBS)
210215
211 unbound-host: $(HOST_OBJ) libunbound.la $(ldnslib)
216 unbound-host$(EXEEXT): $(HOST_OBJ) libunbound.la $(ldnslib)
212217 $(INFO) Link $@
213218 $Q$(LINK) -o $@ $(sort $(HOST_OBJ)) -L. -L.libs -lunbound $(LIBS)
214219
215 unbound-service-install: $(SVCINST_OBJ)
220 unbound-service-install$(EXEEXT): $(SVCINST_OBJ)
216221 $(INFO) Link $@
217222 $Q$(LINK) -o $@ $(sort $(SVCINST_OBJ)) $(LIBS)
218223
219 unbound-service-remove: $(SVCUNINST_OBJ)
224 unbound-service-remove$(EXEEXT): $(SVCUNINST_OBJ)
220225 $(INFO) Link $@
221226 $Q$(LINK) -o $@ $(sort $(SVCUNINST_OBJ)) $(LIBS)
222227
223 anchor-update: $(ANCHORUPD_OBJ) libunbound.la $(ldnslib)
228 anchor-update$(EXEEXT): $(ANCHORUPD_OBJ) libunbound.la $(ldnslib)
224229 $(INFO) Link $@
225230 $Q$(LINK) -o $@ $(sort $(ANCHORUPD_OBJ)) -L. -L.libs -lunbound $(LIBS)
226231
227 unittest: $(UNITTEST_OBJ) $(ldnslib)
232 unittest$(EXEEXT): $(UNITTEST_OBJ) $(ldnslib)
228233 $(INFO) Link $@
229234 $Q$(LINK) -o $@ $(sort $(UNITTEST_OBJ)) $(LIBS)
230235
231 testbound: $(TESTBOUND_OBJ) $(ldnslib)
236 testbound$(EXEEXT): $(TESTBOUND_OBJ) $(ldnslib)
232237 $(INFO) Link $@
233238 $Q$(LINK) -o $@ $(sort $(TESTBOUND_OBJ)) -lssl $(LIBS)
234239
235 lock-verify: $(LOCKVERIFY_OBJ) $(ldnslib)
240 lock-verify$(EXEEXT): $(LOCKVERIFY_OBJ) $(ldnslib)
236241 $(INFO) Link $@
237242 $Q$(LINK) -o $@ $(sort $(LOCKVERIFY_OBJ)) $(LIBS)
238243
239 pktview: $(PKTVIEW_OBJ) $(ldnslib)
244 pktview$(EXEEXT): $(PKTVIEW_OBJ) $(ldnslib)
240245 $(INFO) Link $@
241246 $Q$(LINK) -o $@ $(sort $(PKTVIEW_OBJ)) $(LIBS)
242247
243 signit: $(SIGNIT_OBJ) $(ldnslib)
248 signit$(EXEEXT): $(SIGNIT_OBJ) $(ldnslib)
244249 $(INFO) Link $@
245250 $Q$(LINK) -o $@ $(sort $(SIGNIT_OBJ)) $(LIBS)
246251
247 memstats: $(MEMSTATS_OBJ) $(ldnslib)
252 memstats$(EXEEXT): $(MEMSTATS_OBJ) $(ldnslib)
248253 $(INFO) Link $@
249254 $Q$(LINK) -o $@ $(sort $(MEMSTATS_OBJ)) $(LIBS)
250255
251 asynclook: $(ASYNCLOOK_OBJ) $(ldnslib) libunbound.la
256 asynclook$(EXEEXT): $(ASYNCLOOK_OBJ) $(ldnslib) libunbound.la
252257 $(INFO) Link $@
253258 $Q$(LINK) -o $@ $(sort $(ASYNCLOOK_OBJ)) $(LIBS) -L. -L.libs -lunbound
254259
255 streamtcp: $(STREAMTCP_OBJ) $(ldnslib)
260 streamtcp$(EXEEXT): $(STREAMTCP_OBJ) $(ldnslib)
256261 $(INFO) Link $@
257262 $Q$(LINK) -o $@ $(sort $(STREAMTCP_OBJ)) $(LIBS)
258263
259 perf: $(PERF_OBJ) $(ldnslib)
264 perf$(EXEEXT): $(PERF_OBJ) $(ldnslib)
260265 $(INFO) Link $@
261266 $Q$(LINK) -o $@ $(sort $(PERF_OBJ)) $(LIBS)
262267
263 delayer: $(DELAYER_OBJ) $(ldnslib)
268 delayer$(EXEEXT): $(DELAYER_OBJ) $(ldnslib)
264269 $(INFO) Link $@
265270 $Q$(LINK) -o $@ $(sort $(DELAYER_OBJ)) $(LIBS)
266271
267 harvest: $(HARVEST_OBJ) $(ldnslib) libunbound.la
272 harvest$(EXEEXT): $(HARVEST_OBJ) $(ldnslib) libunbound.la
268273 $(INFO) Link $@
269274 $Q$(LINK) -o $@ $(sort $(HARVEST_OBJ)) $(LIBS) -L. -L.libs -lunbound
270275
317322
318323 clean:
319324 rm -f *.o *.d *.lo *~ tags
320 rm -f unbound unbound-checkconf unbound-host unbound-control unbound-control-setup libunbound.la
325 rm -f unbound$(EXEEXT) unbound-checkconf$(EXEEXT) unbound-host$(EXEEXT) unbound-control$(EXEEXT) unbound-control-setup libunbound.la
321326 rm -rf autom4te.cache .libs build doc/html doc/xml
322327
323328 realclean: clean
348353 fi
349354
350355 strip:
351 strip unbound
352 strip unbound-checkconf
353 strip unbound-control
354 strip unbound-host
356 $(STRIP) unbound$(EXEEXT)
357 $(STRIP) unbound-checkconf$(EXEEXT)
358 $(STRIP) unbound-control$(EXEEXT)
359 $(STRIP) unbound-host$(EXEEXT)
355360
356361 install:
357362 $(INSTALL) -m 755 -d $(DESTDIR)$(sbindir)
362367 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
363368 $(INSTALL) -m 755 -d $(DESTDIR)$(libdir)
364369 $(INSTALL) -m 755 -d $(DESTDIR)$(includedir)
365 $(LIBTOOL) --mode=install cp unbound $(DESTDIR)$(sbindir)/unbound
366 $(LIBTOOL) --mode=install cp unbound-checkconf $(DESTDIR)$(sbindir)/unbound-checkconf
367 $(LIBTOOL) --mode=install cp unbound-control $(DESTDIR)$(sbindir)/unbound-control
368 $(LIBTOOL) --mode=install cp unbound-host $(DESTDIR)$(sbindir)/unbound-host
370 $(LIBTOOL) --mode=install cp unbound$(EXEEXT) $(DESTDIR)$(sbindir)/unbound$(EXEEXT)
371 $(LIBTOOL) --mode=install cp unbound-checkconf$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-checkconf$(EXEEXT)
372 $(LIBTOOL) --mode=install cp unbound-control$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control$(EXEEXT)
373 $(LIBTOOL) --mode=install cp unbound-host$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-host$(EXEEXT)
369374 ifeq "$(WITH_PYTHONMODULE)" "yes"
370375 $(INSTALL) -m 755 -d $(DESTDIR)$(PYTHON_SITE_PKG)
371376 $(INSTALL) -c -m 644 pythonmod/unboundmodule.py $(DESTDIR)$(PYTHON_SITE_PKG)/unboundmodule.py
388393 $(LIBTOOL) --mode=finish $(DESTDIR)$(libdir)
389394
390395 uninstall:
391 rm -f -- $(DESTDIR)$(sbindir)/unbound $(DESTDIR)$(sbindir)/unbound-checkconf $(DESTDIR)$(sbindir)/unbound-host $(DESTDIR)$(sbindir)/unbound-control $(DESTDIR)$(sbindir)/unbound-control-setup
396 rm -f -- $(DESTDIR)$(sbindir)/unbound$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-checkconf$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-host$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control-setup
392397 rm -f -- $(DESTDIR)$(mandir)/man8/unbound.8 $(DESTDIR)$(mandir)/man8/unbound-checkconf.8 $(DESTDIR)$(mandir)/man5/unbound.conf.5 $(DESTDIR)$(mandir)/man8/unbound-control.8
393398 rm -f -- $(DESTDIR)$(mandir)/man1/unbound-host.1 $(DESTDIR)$(mandir)/man3/libunbound.3
394399 rm -f -- $(DESTDIR)$(includedir)/unbound.h
426431 ifneq ($(MAKECMDGOALS),clean)
427432 ifneq ($(MAKECMDGOALS),realclean)
428433 ifeq ($(debug_enabled),yes)
429 -include $(addprefix $(BUILD),$(ALL_SRC:.c=.d))
430 endif
431 endif
432 endif
434 -include $(addprefix $(BUILD),$(ALL_SRC:.c=.d) $(COMPAT_SRC:.c=.d))
435 endif
436 endif
437 endif
11 # Copyright 2009, Wouter Wijngaards, NLnet Labs.
22 # BSD licensed.
33 #
4 # Version 2
5 # 2009-07-03
4 # Version 4
65 # Changelog
7 # - fixup LDFLAGS for empty ssl dir.
6 # 2009-07-14 U_CHAR detection improved for windows crosscompile.
7 # added ACX_FUNC_MALLOC
8 # fixup some #if to #ifdef
9 # NONBLOCKING test for mingw crosscompile.
10 # 2009-07-13 added ACX_WITH_SSL_OPTIONAL
11 # 2009-07-03 fixup LDFLAGS for empty ssl dir.
812 #
913 # Automates some of the checking constructs. Aims at portability for POSIX.
1014 # Documentation for functions is below.
2933 # ACX_TYPE_IN_PORT_T - in_port_t type.
3034 # ACX_ARG_RPATH - add --disable-rpath option.
3135 # ACX_WITH_SSL - add --with-ssl option, link -lcrypto.
36 # ACX_WITH_SSL_OPTIONAL - add --with-ssl option, link -lcrypto,
37 where --without-ssl is also accepted
3238 # ACX_LIB_SSL - setup to link -lssl.
3339 # ACX_SYS_LARGEFILE - improved sys_largefile, fseeko, >2G files.
3440 # ACX_CHECK_GETADDRINFO_WITH_INCLUDES - find getaddrinfo, portably.
3642 # ACX_CHECK_NONBLOCKING_BROKEN - see if nonblocking sockets really work.
3743 # ACX_MKDIR_ONE_ARG - determine mkdir(2) number of arguments.
3844 # ACX_FUNC_IOCTLSOCKET - find ioctlsocket, portably.
45 # ACX_FUNC_MALLOC - check malloc, define replacement .
3946 # AHX_CONFIG_FORMAT_ATTRIBUTE - config.h text for format.
4047 # AHX_CONFIG_UNUSED_ATTRIBUTE - config.h text for unused.
4148 # AHX_CONFIG_FSEEKO - define fseeko, ftello fallback.
479486
480487 dnl Detect if u_char type is defined, otherwise define it.
481488 AC_DEFUN([ACX_TYPE_U_CHAR],
482 [AC_CHECK_TYPE(u_char, unsigned char)])
489 [AC_CHECK_TYPE([u_char], ,
490 [AC_DEFINE([u_char], [unsigned char], [Define to 'unsigned char if not defined])], [
491 AC_INCLUDES_DEFAULT
492 #ifdef HAVE_WINSOCK2_H
493 # include <winsock2.h>
494 #endif
495 ]) ])
483496
484497 dnl Detect if rlim_t type is defined, otherwise define it.
485498 AC_DEFUN([ACX_TYPE_RLIM_T],
486499 [AC_CHECK_TYPE(rlim_t, ,
487500 [AC_DEFINE([rlim_t], [unsigned long], [Define to 'int' if not defined])], [
488501 AC_INCLUDES_DEFAULT
489 #if HAVE_SYS_RESOURCE_H
502 #ifdef HAVE_SYS_RESOURCE_H
490503 # include <sys/resource.h>
491504 #endif
492505 ]) ])
497510 AC_CHECK_TYPE(socklen_t, ,
498511 [AC_DEFINE([socklen_t], [int], [Define to 'int' if not defined])], [
499512 AC_INCLUDES_DEFAULT
500 #if HAVE_SYS_SOCKET_H
513 #ifdef HAVE_SYS_SOCKET_H
501514 # include <sys/socket.h>
502515 #endif
516 #ifdef HAVE_WS2TCPIP_H
517 # include <ws2tcpip.h>
518 #endif
503519 ]) ])
504520
505 dnl Detect if socklen_t type is defined, otherwise define it.
521 dnl Detect if in_addr_t type is defined, otherwise define it.
506522 AC_DEFUN([ACX_TYPE_IN_ADDR_T],
507523 [ AC_CHECK_TYPE(in_addr_t, [], [AC_DEFINE([in_addr_t], [uint32_t], [in_addr_t])], [
508524 AC_INCLUDES_DEFAULT
509 #if HAVE_SYS_TYPES_H
525 #ifdef HAVE_SYS_TYPES_H
510526 # include <sys/types.h>
511527 #endif
512 #if HAVE_NETINET_IN_H
528 #ifdef HAVE_NETINET_IN_H
513529 # include <netinet/in.h>
514530 #endif
515531 ]) ])
516532
517 dnl Detect if socklen_t type is defined, otherwise define it.
533 dnl Detect if in_port_t type is defined, otherwise define it.
518534 AC_DEFUN([ACX_TYPE_IN_PORT_T],
519535 [ AC_CHECK_TYPE(in_port_t, [], [AC_DEFINE([in_port_t], [uint16_t], [in_port_t])], [
520536 AC_INCLUDES_DEFAULT
521 #if HAVE_SYS_TYPES_H
537 #ifdef HAVE_SYS_TYPES_H
522538 # include <sys/types.h>
523539 #endif
524 #if HAVE_NETINET_IN_H
540 #ifdef HAVE_NETINET_IN_H
525541 # include <netinet/in.h>
526542 #endif
527543 ]) ])
554570 fi
555571 ])
556572
557 dnl Check for SSL.
558 dnl Adds --with-ssl option, searches for openssl and defines HAVE_SSL if found
559 dnl Setup of CPPFLAGS, CFLAGS. Adds -lcrypto to LIBS.
560 dnl Checks main header files of SSL.
561 dnl
562 AC_DEFUN([ACX_WITH_SSL],
563 [
564 AC_ARG_WITH(ssl, AC_HELP_STRING([--with-ssl=pathname],
565 [enable SSL (will check /usr/local/ssl
566 /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[
567 ],[
568 withval="yes"
569 ])
570 if test x_$withval = x_no; then
571 AC_MSG_ERROR([Need SSL library to do digital signature cryptography])
572 fi
573 dnl Common code for both ACX_WITH_SSL and ACX_WITH_SSL_OPTIONAL
574 dnl Takes one argument; the withval checked in those 2 functions
575 dnl sets up the environment for the given openssl path
576 AC_DEFUN([ACX_SSL_CHECKS], [
577 withval=$1
573578 if test x_$withval != x_no; then
574579 AC_MSG_CHECKING(for SSL)
575580 if test x_$withval = x_ -o x_$withval = x_yes; then
580585 if test -f "$dir/include/openssl/ssl.h"; then
581586 found_ssl="yes"
582587 AC_DEFINE_UNQUOTED([HAVE_SSL], [], [Define if you have the SSL libraries installed.])
583 dnl assume /usr/include is already in the include-path.
584 if test "$ssldir" != "/usr"; then
585 CPPFLAGS="$CPPFLAGS -I$ssldir/include"
586 fi
588 dnl assume /usr/include is already in the include-path.
589 if test "$ssldir" != "/usr"; then
590 CPPFLAGS="$CPPFLAGS -I$ssldir/include"
591 fi
587592 break;
588593 fi
589594 done
592597 else
593598 AC_MSG_RESULT(found in $ssldir)
594599 HAVE_SSL=yes
595 dnl assume /usr is already in the lib and dynlib paths.
596 if test "$ssldir" != "/usr" -a "$ssldir" != ""; then
600 dnl assume /usr is already in the lib and dynlib paths.
601 if test "$ssldir" != "/usr" -a "$ssldir" != ""; then
597602 LDFLAGS="$LDFLAGS -L$ssldir/lib"
598 ACX_RUNTIME_PATH_ADD([$ssldir/lib])
599 fi
600
601 AC_MSG_CHECKING([for HMAC_CTX_init in -lcrypto])
602 LIBS="$LIBS -lcrypto"
603 AC_TRY_LINK(, [
604 int HMAC_CTX_init(void);
605 (void)HMAC_CTX_init();
606 ], [
607 AC_MSG_RESULT(yes)
608 AC_DEFINE([HAVE_HMAC_CTX_INIT], 1,
609 [If you have HMAC_CTX_init])
610 ], [
611 AC_MSG_RESULT(no)
612 # check if -lwsock32 or -lgdi32 are needed.
613 BAKLIBS="$LIBS"
614 LIBS="$LIBS -lgdi32"
615 AC_MSG_CHECKING([if -lcrypto needs -lgdi32])
616 AC_TRY_LINK([], [
617 int HMAC_CTX_init(void);
618 (void)HMAC_CTX_init();
619 ],[
620 AC_DEFINE([HAVE_HMAC_CTX_INIT], 1,
621 [If you have HMAC_CTX_init])
622 AC_MSG_RESULT(yes)
623 ],[
624 AC_MSG_RESULT(no)
625 LIBS="$BAKLIBS"
626 LIBS="$LIBS -ldl"
627 AC_MSG_CHECKING([if -lcrypto needs -ldl])
628 AC_TRY_LINK([], [
629 int HMAC_CTX_init(void);
630 (void)HMAC_CTX_init();
631 ],[
632 AC_DEFINE([HAVE_HMAC_CTX_INIT], 1,
633 [If you have HMAC_CTX_init])
634 AC_MSG_RESULT(yes)
635 ],[
636 AC_MSG_RESULT(no)
603 ACX_RUNTIME_PATH_ADD([$ssldir/lib])
604 fi
605
606 AC_MSG_CHECKING([for HMAC_CTX_init in -lcrypto])
607 LIBS="$LIBS -lcrypto"
608 AC_TRY_LINK(, [
609 int HMAC_CTX_init(void);
610 (void)HMAC_CTX_init();
611 ], [
612 AC_MSG_RESULT(yes)
613 AC_DEFINE([HAVE_HMAC_CTX_INIT], 1,
614 [If you have HMAC_CTX_init])
615 ], [
616 AC_MSG_RESULT(no)
617 # check if -lwsock32 or -lgdi32 are needed.
618 BAKLIBS="$LIBS"
619 LIBS="$LIBS -lgdi32"
620 AC_MSG_CHECKING([if -lcrypto needs -lgdi32])
621 AC_TRY_LINK([], [
622 int HMAC_CTX_init(void);
623 (void)HMAC_CTX_init();
624 ],[
625 AC_DEFINE([HAVE_HMAC_CTX_INIT], 1,
626 [If you have HMAC_CTX_init])
627 AC_MSG_RESULT(yes)
628 ],[
629 AC_MSG_RESULT(no)
630 LIBS="$BAKLIBS"
631 LIBS="$LIBS -ldl"
632 AC_MSG_CHECKING([if -lcrypto needs -ldl])
633 AC_TRY_LINK([], [
634 int HMAC_CTX_init(void);
635 (void)HMAC_CTX_init();
636 ],[
637 AC_DEFINE([HAVE_HMAC_CTX_INIT], 1,
638 [If you have HMAC_CTX_init])
639 AC_MSG_RESULT(yes)
640 ],[
641 AC_MSG_RESULT(no)
637642 AC_MSG_ERROR([OpenSSL found in $ssldir, but version 0.9.7 or higher is required])
638 ])
639 ])
643 ])
644 ])
640645 ])
641646 fi
642647 AC_SUBST(HAVE_SSL)
643 AC_SUBST(RUNTIME_PATH)
648 AC_SUBST(RUNTIME_PATH)
644649 fi
645650 AC_CHECK_HEADERS([openssl/ssl.h],,, [AC_INCLUDES_DEFAULT])
646651 AC_CHECK_HEADERS([openssl/err.h],,, [AC_INCLUDES_DEFAULT])
647652 AC_CHECK_HEADERS([openssl/rand.h],,, [AC_INCLUDES_DEFAULT])
653 ])dnl End of ACX_SSL_CHECKS
654
655 dnl Check for SSL, where SSL is mandatory
656 dnl Adds --with-ssl option, searches for openssl and defines HAVE_SSL if found
657 dnl Setup of CPPFLAGS, CFLAGS. Adds -lcrypto to LIBS.
658 dnl Checks main header files of SSL.
659 dnl
660 AC_DEFUN([ACX_WITH_SSL],
661 [
662 AC_ARG_WITH(ssl, AC_HELP_STRING([--with-ssl=pathname],
663 [enable SSL (will check /usr/local/ssl
664 /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[
665 ],[
666 withval="yes"
667 ])
668 if test x_$withval = x_no; then
669 AC_MSG_ERROR([Need SSL library to do digital signature cryptography])
670 fi
671 ACX_SSL_CHECKS($withval)
648672 ])dnl End of ACX_WITH_SSL
673
674 dnl Check for SSL, where ssl is optional (--without-ssl is allowed)
675 dnl Adds --with-ssl option, searches for openssl and defines HAVE_SSL if found
676 dnl Setup of CPPFLAGS, CFLAGS. Adds -lcrypto to LIBS.
677 dnl Checks main header files of SSL.
678 dnl
679 AC_DEFUN([ACX_WITH_SSL_OPTIONAL],
680 [
681 AC_ARG_WITH(ssl, AC_HELP_STRING([--with-ssl=pathname],
682 [enable SSL (will check /usr/local/ssl
683 /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[
684 ],[
685 withval="yes"
686 ])
687 ACX_SSL_CHECKS($withval)
688 ])dnl End of ACX_WITH_SSL_OPTIONAL
649689
650690 dnl Setup to use -lssl
651691 dnl To use -lcrypto, use the ACX_WITH_SSL setup (before this one).
778818 AC_DEFUN([ACX_CHECK_NONBLOCKING_BROKEN],
779819 [
780820 AC_MSG_CHECKING([if nonblocking sockets work])
821 if echo $target | grep mingw32 >/dev/null; then
822 AC_MSG_RESULT([no (windows)])
823 AC_DEFINE([NONBLOCKING_IS_BROKEN], 1, [Define if the network stack does not fully support nonblocking io (causes lower performance).])
824 else
781825 AC_RUN_IFELSE(AC_LANG_PROGRAM([
782826 #include <stdio.h>
783827 #include <string.h>
903947 ], [
904948 AC_MSG_RESULT([crosscompile(yes)])
905949 ])
950 fi
906951 ])dnl End of ACX_CHECK_NONBLOCKING_BROKEN
907952
908953 dnl Check if mkdir has one or two arguments.
945990 AC_DEFINE(HAVE_IOCTLSOCKET, 1, [if the function 'ioctlsocket' is available])
946991 ],[AC_MSG_RESULT(no)])
947992 ])dnl end of ACX_FUNC_IOCTLSOCKET
993
994 dnl detect malloc and provide malloc compat prototype.
995 dnl $1: unique name for compat code
996 AC_DEFUN([ACX_FUNC_MALLOC],
997 [
998 AC_FUNC_MALLOC
999 if test "$ac_cv_func_malloc_0_nonnull" = no; then
1000 AC_DEFINE_UNQUOTED([malloc], [rpl_malloc_$1], [Define if replacement function should be used.])
1001 fi
1002 ])
9481003
9491004 dnl Define fallback for fseeko and ftello if needed.
9501005 AC_DEFUN([AHX_CONFIG_FSEEKO],
22
33 #include "config.h"
44 #undef malloc
5
65 #include <sys/types.h>
76
87 void *malloc ();
1110 If N is zero, allocate a 1-byte block. */
1211
1312 void *
14 rpl_malloc (size_t n)
13 rpl_malloc_unbound (size_t n)
1514 {
1615 if (n == 0)
1716 n = 1;
493493 /* Define to `signed char' if <sys/types.h> does not define. */
494494 #undef int8_t
495495
496 /* Define to rpl_malloc if the replacement function should be used. */
496 /* Define if replacement function should be used. */
497497 #undef malloc
498498
499499 /* Define to `long int' if <sys/types.h> does not define. */
514514 /* Define to `int' if <sys/types.h> does not define. */
515515 #undef ssize_t
516516
517 /* Define to `unsigned char' if <sys/types.h> does not define. */
517 /* Define to 'unsigned char if not defined */
518518 #undef u_char
519519
520520 /* Define to `int' if <sys/types.h> doesn't define. */
655655 #define fseeko fseek
656656 #define ftello ftell
657657 #endif /* HAVE_FSEEKO */
658
659
660 #ifndef RAND_MAX
661 #define RAND_MAX 2147483647
662 #endif
663658
664659
665660 #ifndef MAXHOSTNAMELEN
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.63 for unbound 1.3.2.
2 # Generated by GNU Autoconf 2.63 for unbound 1.3.3.
33 #
44 # Report bugs to <unbound-bugs@nlnetlabs.nl>.
55 #
744744 # Identity of this package.
745745 PACKAGE_NAME='unbound'
746746 PACKAGE_TARNAME='unbound'
747 PACKAGE_VERSION='1.3.2'
748 PACKAGE_STRING='unbound 1.3.2'
747 PACKAGE_VERSION='1.3.3'
748 PACKAGE_STRING='unbound 1.3.3'
749749 PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl'
750750
751751 # Factoring default headers for most tests.
788788 ac_subst_vars='LTLIBOBJS
789789 subdirs
790790 ldnsdir
791 WINDRES
791792 UB_ON_WINDOWS
792793 LIBOBJS
793794 CHECKLOCK_SRC
817818 DSYMUTIL
818819 lt_ECHO
819820 RANLIB
820 STRIP
821821 OBJDUMP
822822 LN_S
823823 NM
837837 build_cpu
838838 build
839839 libtool
840 STRIP
840841 doxygen
841842 YFLAGS
842843 YACC
14961497 # Omit some internal or obsolete options to make the list less imposing.
14971498 # This message is too long to be a string in the A/UX 3.1 sh.
14981499 cat <<_ACEOF
1499 \`configure' configures unbound 1.3.2 to adapt to many kinds of systems.
1500 \`configure' configures unbound 1.3.3 to adapt to many kinds of systems.
15001501
15011502 Usage: $0 [OPTION]... [VAR=VALUE]...
15021503
15611562
15621563 if test -n "$ac_init_help"; then
15631564 case $ac_init_help in
1564 short | recursive ) echo "Configuration of unbound 1.3.2:";;
1565 short | recursive ) echo "Configuration of unbound 1.3.3:";;
15651566 esac
15661567 cat <<\_ACEOF
15671568
17061707 test -n "$ac_init_help" && exit $ac_status
17071708 if $ac_init_version; then
17081709 cat <<\_ACEOF
1709 unbound configure 1.3.2
1710 unbound configure 1.3.3
17101711 generated by GNU Autoconf 2.63
17111712
17121713 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
17201721 This file contains any messages produced by compilers while
17211722 running configure, to aid debugging if configure makes a mistake.
17221723
1723 It was created by unbound $as_me 1.3.2, which was
1724 It was created by unbound $as_me 1.3.3, which was
17241725 generated by GNU Autoconf 2.63. Invocation command line was
17251726
17261727 $ $0 $@
20902091
20912092
20922093 LIBUNBOUND_CURRENT=1
2093 LIBUNBOUND_REVISION=2
2094 LIBUNBOUND_REVISION=3
20942095 LIBUNBOUND_AGE=0
20952096 # 1.0.0 had 0:12:0
20962097 # 1.0.1 had 0:13:0
21022103 # 1.3.0 had 1:0:0 # ub_cancel and -export-symbols.
21032104 # 1.3.1 had 1:1:0
21042105 # 1.3.2 had 1:2:0
2106 # 1.3.3 had 1:3:0
21052107
21062108 # Current -- the number of the binary API that we're implementing
21072109 # Revision -- which iteration of the implementation of the binary
39253927
39263928 # are we on MinGW?
39273929 if uname -s 2>&1 | grep MINGW32 >/dev/null; then on_mingw="yes"
3928 else on_mingw="no"; fi
3930 else
3931 if echo $target | grep mingw32 >/dev/null; then on_mingw="yes"
3932 else on_mingw="no"; fi
3933 fi
39293934
39303935 #
39313936 # Determine configuration file
64386443 $as_echo "no" >&6; }
64396444 fi
64406445
6446
6447 if test -n "$ac_tool_prefix"; then
6448 # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
6449 set dummy ${ac_tool_prefix}strip; ac_word=$2
6450 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
6451 $as_echo_n "checking for $ac_word... " >&6; }
6452 if test "${ac_cv_prog_STRIP+set}" = set; then
6453 $as_echo_n "(cached) " >&6
6454 else
6455 if test -n "$STRIP"; then
6456 ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
6457 else
6458 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6459 for as_dir in $PATH
6460 do
6461 IFS=$as_save_IFS
6462 test -z "$as_dir" && as_dir=.
6463 for ac_exec_ext in '' $ac_executable_extensions; do
6464 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
6465 ac_cv_prog_STRIP="${ac_tool_prefix}strip"
6466 $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
6467 break 2
6468 fi
6469 done
6470 done
6471 IFS=$as_save_IFS
6472
6473 fi
6474 fi
6475 STRIP=$ac_cv_prog_STRIP
6476 if test -n "$STRIP"; then
6477 { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
6478 $as_echo "$STRIP" >&6; }
6479 else
6480 { $as_echo "$as_me:$LINENO: result: no" >&5
6481 $as_echo "no" >&6; }
6482 fi
6483
6484
6485 fi
6486 if test -z "$ac_cv_prog_STRIP"; then
6487 ac_ct_STRIP=$STRIP
6488 # Extract the first word of "strip", so it can be a program name with args.
6489 set dummy strip; ac_word=$2
6490 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
6491 $as_echo_n "checking for $ac_word... " >&6; }
6492 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
6493 $as_echo_n "(cached) " >&6
6494 else
6495 if test -n "$ac_ct_STRIP"; then
6496 ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
6497 else
6498 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6499 for as_dir in $PATH
6500 do
6501 IFS=$as_save_IFS
6502 test -z "$as_dir" && as_dir=.
6503 for ac_exec_ext in '' $ac_executable_extensions; do
6504 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
6505 ac_cv_prog_ac_ct_STRIP="strip"
6506 $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
6507 break 2
6508 fi
6509 done
6510 done
6511 IFS=$as_save_IFS
6512
6513 fi
6514 fi
6515 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
6516 if test -n "$ac_ct_STRIP"; then
6517 { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
6518 $as_echo "$ac_ct_STRIP" >&6; }
6519 else
6520 { $as_echo "$as_me:$LINENO: result: no" >&5
6521 $as_echo "no" >&6; }
6522 fi
6523
6524 if test "x$ac_ct_STRIP" = x; then
6525 STRIP=""
6526 else
6527 case $cross_compiling:$ac_tool_warned in
6528 yes:)
6529 { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
6530 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
6531 ac_tool_warned=yes ;;
6532 esac
6533 STRIP=$ac_ct_STRIP
6534 fi
6535 else
6536 STRIP="$ac_cv_prog_STRIP"
6537 fi
64416538
64426539 ac_aux_dir=
64436540 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
71617258 else
71627259 lt_cv_nm_interface="BSD nm"
71637260 echo "int some_variable = 0;" > conftest.$ac_ext
7164 (eval echo "\"\$as_me:7165: $ac_compile\"" >&5)
7261 (eval echo "\"\$as_me:7262: $ac_compile\"" >&5)
71657262 (eval "$ac_compile" 2>conftest.err)
71667263 cat conftest.err >&5
7167 (eval echo "\"\$as_me:7168: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
7264 (eval echo "\"\$as_me:7265: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
71687265 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
71697266 cat conftest.err >&5
7170 (eval echo "\"\$as_me:7171: output\"" >&5)
7267 (eval echo "\"\$as_me:7268: output\"" >&5)
71717268 cat conftest.out >&5
71727269 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
71737270 lt_cv_nm_interface="MS dumpbin"
83728469 ;;
83738470 *-*-irix6*)
83748471 # Find out which ABI we are using.
8375 echo '#line 8376 "configure"' > conftest.$ac_ext
8472 echo '#line 8473 "configure"' > conftest.$ac_ext
83768473 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
83778474 (eval $ac_compile) 2>&5
83788475 ac_status=$?
97399836 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
97409837 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
97419838 -e 's:$: $lt_compiler_flag:'`
9742 (eval echo "\"\$as_me:9743: $lt_compile\"" >&5)
9839 (eval echo "\"\$as_me:9840: $lt_compile\"" >&5)
97439840 (eval "$lt_compile" 2>conftest.err)
97449841 ac_status=$?
97459842 cat conftest.err >&5
9746 echo "$as_me:9747: \$? = $ac_status" >&5
9843 echo "$as_me:9844: \$? = $ac_status" >&5
97479844 if (exit $ac_status) && test -s "$ac_outfile"; then
97489845 # The compiler can only warn and ignore the option if not recognized
97499846 # So say no if there are warnings other than the usual output.
1007810175 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
1007910176 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
1008010177 -e 's:$: $lt_compiler_flag:'`
10081 (eval echo "\"\$as_me:10082: $lt_compile\"" >&5)
10178 (eval echo "\"\$as_me:10179: $lt_compile\"" >&5)
1008210179 (eval "$lt_compile" 2>conftest.err)
1008310180 ac_status=$?
1008410181 cat conftest.err >&5
10085 echo "$as_me:10086: \$? = $ac_status" >&5
10182 echo "$as_me:10183: \$? = $ac_status" >&5
1008610183 if (exit $ac_status) && test -s "$ac_outfile"; then
1008710184 # The compiler can only warn and ignore the option if not recognized
1008810185 # So say no if there are warnings other than the usual output.
1018310280 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
1018410281 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
1018510282 -e 's:$: $lt_compiler_flag:'`
10186 (eval echo "\"\$as_me:10187: $lt_compile\"" >&5)
10283 (eval echo "\"\$as_me:10284: $lt_compile\"" >&5)
1018710284 (eval "$lt_compile" 2>out/conftest.err)
1018810285 ac_status=$?
1018910286 cat out/conftest.err >&5
10190 echo "$as_me:10191: \$? = $ac_status" >&5
10287 echo "$as_me:10288: \$? = $ac_status" >&5
1019110288 if (exit $ac_status) && test -s out/conftest2.$ac_objext
1019210289 then
1019310290 # The compiler can only warn and ignore the option if not recognized
1023810335 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
1023910336 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
1024010337 -e 's:$: $lt_compiler_flag:'`
10241 (eval echo "\"\$as_me:10242: $lt_compile\"" >&5)
10338 (eval echo "\"\$as_me:10339: $lt_compile\"" >&5)
1024210339 (eval "$lt_compile" 2>out/conftest.err)
1024310340 ac_status=$?
1024410341 cat out/conftest.err >&5
10245 echo "$as_me:10246: \$? = $ac_status" >&5
10342 echo "$as_me:10343: \$? = $ac_status" >&5
1024610343 if (exit $ac_status) && test -s out/conftest2.$ac_objext
1024710344 then
1024810345 # The compiler can only warn and ignore the option if not recognized
1304113138 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1304213139 lt_status=$lt_dlunknown
1304313140 cat > conftest.$ac_ext <<_LT_EOF
13044 #line 13045 "configure"
13141 #line 13142 "configure"
1304513142 #include "confdefs.h"
1304613143
1304713144 #if HAVE_DLFCN_H
1313713234 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1313813235 lt_status=$lt_dlunknown
1313913236 cat > conftest.$ac_ext <<_LT_EOF
13140 #line 13141 "configure"
13237 #line 13238 "configure"
1314113238 #include "confdefs.h"
1314213239
1314313240 #if HAVE_DLFCN_H
1474614843 cat confdefs.h >>conftest.$ac_ext
1474714844 cat >>conftest.$ac_ext <<_ACEOF
1474814845 /* end confdefs.h. */
14846
1474914847 $ac_includes_default
14848 #ifdef HAVE_WINSOCK2_H
14849 # include <winsock2.h>
14850 #endif
14851
14852
1475014853 int
1475114854 main ()
1475214855 {
1478014883 cat confdefs.h >>conftest.$ac_ext
1478114884 cat >>conftest.$ac_ext <<_ACEOF
1478214885 /* end confdefs.h. */
14886
1478314887 $ac_includes_default
14888 #ifdef HAVE_WINSOCK2_H
14889 # include <winsock2.h>
14890 #endif
14891
14892
1478414893 int
1478514894 main ()
1478614895 {
1483214941 :
1483314942 else
1483414943
14835 cat >>confdefs.h <<_ACEOF
14944 cat >>confdefs.h <<\_ACEOF
1483614945 #define u_char unsigned char
1483714946 _ACEOF
1483814947
1485214961 /* end confdefs.h. */
1485314962
1485414963 $ac_includes_default
14855 #if HAVE_SYS_RESOURCE_H
14964 #ifdef HAVE_SYS_RESOURCE_H
1485614965 # include <sys/resource.h>
1485714966 #endif
1485814967
1489215001 /* end confdefs.h. */
1489315002
1489415003 $ac_includes_default
14895 #if HAVE_SYS_RESOURCE_H
15004 #ifdef HAVE_SYS_RESOURCE_H
1489615005 # include <sys/resource.h>
1489715006 #endif
1489815007
1496915078 /* end confdefs.h. */
1497015079
1497115080 $ac_includes_default
14972 #if HAVE_SYS_SOCKET_H
15081 #ifdef HAVE_SYS_SOCKET_H
1497315082 # include <sys/socket.h>
15083 #endif
15084 #ifdef HAVE_WS2TCPIP_H
15085 # include <ws2tcpip.h>
1497415086 #endif
1497515087
1497615088
1500915121 /* end confdefs.h. */
1501015122
1501115123 $ac_includes_default
15012 #if HAVE_SYS_SOCKET_H
15124 #ifdef HAVE_SYS_SOCKET_H
1501315125 # include <sys/socket.h>
15126 #endif
15127 #ifdef HAVE_WS2TCPIP_H
15128 # include <ws2tcpip.h>
1501415129 #endif
1501515130
1501615131
1508515200 /* end confdefs.h. */
1508615201
1508715202 $ac_includes_default
15088 #if HAVE_SYS_TYPES_H
15203 #ifdef HAVE_SYS_TYPES_H
1508915204 # include <sys/types.h>
1509015205 #endif
15091 #if HAVE_NETINET_IN_H
15206 #ifdef HAVE_NETINET_IN_H
1509215207 # include <netinet/in.h>
1509315208 #endif
1509415209
1512815243 /* end confdefs.h. */
1512915244
1513015245 $ac_includes_default
15131 #if HAVE_SYS_TYPES_H
15246 #ifdef HAVE_SYS_TYPES_H
1513215247 # include <sys/types.h>
1513315248 #endif
15134 #if HAVE_NETINET_IN_H
15249 #ifdef HAVE_NETINET_IN_H
1513515250 # include <netinet/in.h>
1513615251 #endif
1513715252
1520715322 /* end confdefs.h. */
1520815323
1520915324 $ac_includes_default
15210 #if HAVE_SYS_TYPES_H
15325 #ifdef HAVE_SYS_TYPES_H
1521115326 # include <sys/types.h>
1521215327 #endif
15213 #if HAVE_NETINET_IN_H
15328 #ifdef HAVE_NETINET_IN_H
1521415329 # include <netinet/in.h>
1521515330 #endif
1521615331
1525015365 /* end confdefs.h. */
1525115366
1525215367 $ac_includes_default
15253 #if HAVE_SYS_TYPES_H
15368 #ifdef HAVE_SYS_TYPES_H
1525415369 # include <sys/types.h>
1525515370 #endif
15256 #if HAVE_NETINET_IN_H
15371 #ifdef HAVE_NETINET_IN_H
1525715372 # include <netinet/in.h>
1525815373 #endif
1525915374
1686216977 $as_echo "$as_me: error: Need SSL library to do digital signature cryptography" >&2;}
1686316978 { (exit 1); exit 1; }; }
1686416979 fi
16980
16981 withval=$withval
1686516982 if test x_$withval != x_no; then
1686616983 { $as_echo "$as_me:$LINENO: checking for SSL" >&5
1686716984 $as_echo_n "checking for SSL... " >&6; }
1687716994 #define HAVE_SSL /**/
1687816995 _ACEOF
1687916996
16880 if test "$ssldir" != "/usr"; then
16881 CPPFLAGS="$CPPFLAGS -I$ssldir/include"
16882 fi
16997 if test "$ssldir" != "/usr"; then
16998 CPPFLAGS="$CPPFLAGS -I$ssldir/include"
16999 fi
1688317000 break;
1688417001 fi
1688517002 done
1689117008 { $as_echo "$as_me:$LINENO: result: found in $ssldir" >&5
1689217009 $as_echo "found in $ssldir" >&6; }
1689317010 HAVE_SSL=yes
16894 if test "$ssldir" != "/usr" -a "$ssldir" != ""; then
17011 if test "$ssldir" != "/usr" -a "$ssldir" != ""; then
1689517012 LDFLAGS="$LDFLAGS -L$ssldir/lib"
1689617013
1689717014 if test "x$enable_rpath" = xyes; then
1690017017 fi
1690117018 fi
1690217019
16903 fi
16904
16905 { $as_echo "$as_me:$LINENO: checking for HMAC_CTX_init in -lcrypto" >&5
17020 fi
17021
17022 { $as_echo "$as_me:$LINENO: checking for HMAC_CTX_init in -lcrypto" >&5
1690617023 $as_echo_n "checking for HMAC_CTX_init in -lcrypto... " >&6; }
16907 LIBS="$LIBS -lcrypto"
16908 cat >conftest.$ac_ext <<_ACEOF
17024 LIBS="$LIBS -lcrypto"
17025 cat >conftest.$ac_ext <<_ACEOF
1690917026 /* confdefs.h. */
1691017027 _ACEOF
1691117028 cat confdefs.h >>conftest.$ac_ext
1691617033 main ()
1691717034 {
1691817035
16919 int HMAC_CTX_init(void);
16920 (void)HMAC_CTX_init();
17036 int HMAC_CTX_init(void);
17037 (void)HMAC_CTX_init();
1692117038
1692217039 ;
1692317040 return 0;
1694517062 $as_test_x conftest$ac_exeext
1694617063 }; then
1694717064
16948 { $as_echo "$as_me:$LINENO: result: yes" >&5
17065 { $as_echo "$as_me:$LINENO: result: yes" >&5
1694917066 $as_echo "yes" >&6; }
1695017067
1695117068 cat >>confdefs.h <<\_ACEOF
1695817075 sed 's/^/| /' conftest.$ac_ext >&5
1695917076
1696017077
16961 { $as_echo "$as_me:$LINENO: result: no" >&5
17078 { $as_echo "$as_me:$LINENO: result: no" >&5
1696217079 $as_echo "no" >&6; }
16963 # check if -lwsock32 or -lgdi32 are needed.
16964 BAKLIBS="$LIBS"
16965 LIBS="$LIBS -lgdi32"
16966 { $as_echo "$as_me:$LINENO: checking if -lcrypto needs -lgdi32" >&5
17080 # check if -lwsock32 or -lgdi32 are needed.
17081 BAKLIBS="$LIBS"
17082 LIBS="$LIBS -lgdi32"
17083 { $as_echo "$as_me:$LINENO: checking if -lcrypto needs -lgdi32" >&5
1696717084 $as_echo_n "checking if -lcrypto needs -lgdi32... " >&6; }
16968 cat >conftest.$ac_ext <<_ACEOF
17085 cat >conftest.$ac_ext <<_ACEOF
1696917086 /* confdefs.h. */
1697017087 _ACEOF
1697117088 cat confdefs.h >>conftest.$ac_ext
1697617093 main ()
1697717094 {
1697817095
16979 int HMAC_CTX_init(void);
16980 (void)HMAC_CTX_init();
17096 int HMAC_CTX_init(void);
17097 (void)HMAC_CTX_init();
1698117098
1698217099 ;
1698317100 return 0;
1701017127 #define HAVE_HMAC_CTX_INIT 1
1701117128 _ACEOF
1701217129
17013 { $as_echo "$as_me:$LINENO: result: yes" >&5
17130 { $as_echo "$as_me:$LINENO: result: yes" >&5
1701417131 $as_echo "yes" >&6; }
1701517132
1701617133 else
1701817135 sed 's/^/| /' conftest.$ac_ext >&5
1701917136
1702017137
17021 { $as_echo "$as_me:$LINENO: result: no" >&5
17138 { $as_echo "$as_me:$LINENO: result: no" >&5
1702217139 $as_echo "no" >&6; }
17023 LIBS="$BAKLIBS"
17024 LIBS="$LIBS -ldl"
17025 { $as_echo "$as_me:$LINENO: checking if -lcrypto needs -ldl" >&5
17140 LIBS="$BAKLIBS"
17141 LIBS="$LIBS -ldl"
17142 { $as_echo "$as_me:$LINENO: checking if -lcrypto needs -ldl" >&5
1702617143 $as_echo_n "checking if -lcrypto needs -ldl... " >&6; }
17027 cat >conftest.$ac_ext <<_ACEOF
17144 cat >conftest.$ac_ext <<_ACEOF
1702817145 /* confdefs.h. */
1702917146 _ACEOF
1703017147 cat confdefs.h >>conftest.$ac_ext
1703517152 main ()
1703617153 {
1703717154
17038 int HMAC_CTX_init(void);
17039 (void)HMAC_CTX_init();
17155 int HMAC_CTX_init(void);
17156 (void)HMAC_CTX_init();
1704017157
1704117158 ;
1704217159 return 0;
1706917186 #define HAVE_HMAC_CTX_INIT 1
1707017187 _ACEOF
1707117188
17072 { $as_echo "$as_me:$LINENO: result: yes" >&5
17189 { $as_echo "$as_me:$LINENO: result: yes" >&5
1707317190 $as_echo "yes" >&6; }
1707417191
1707517192 else
1707717194 sed 's/^/| /' conftest.$ac_ext >&5
1707817195
1707917196
17080 { $as_echo "$as_me:$LINENO: result: no" >&5
17197 { $as_echo "$as_me:$LINENO: result: no" >&5
1708117198 $as_echo "no" >&6; }
1708217199 { { $as_echo "$as_me:$LINENO: error: OpenSSL found in $ssldir, but version 0.9.7 or higher is required" >&5
1708317200 $as_echo "$as_me: error: OpenSSL found in $ssldir, but version 0.9.7 or higher is required" >&2;}
1728917406 fi
1729017407
1729117408 done
17409
1729217410
1729317411
1729417412
1858218700 staticexe="-static"
1858318701 if test "$on_mingw" = yes; then
1858418702 staticexe="-all-static"
18703 # for static crosscompile, include gdi32 and zlib here.
18704 if test "`uname`" = "Linux"; then
18705 LIBS="$LIBS -lgdi32 -lz"
18706 fi
1858518707 fi
1858618708 fi
1858718709
1861418736 _ACEOF
1861518737
1861618738 else
18739
1861718740
1861818741 for ac_header in stdlib.h
1861918742 do
1885718980 fi
1885818981
1885918982
18983
18984 if test "$ac_cv_func_malloc_0_nonnull" = no; then
18985
18986 cat >>confdefs.h <<_ACEOF
18987 #define malloc rpl_malloc_unbound
18988 _ACEOF
18989
18990 fi
1886018991
1886118992 fi
1886218993
2035720488
2035820489 UB_ON_WINDOWS=yes
2035920490
20491 if test -n "$ac_tool_prefix"; then
20492 # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args.
20493 set dummy ${ac_tool_prefix}windres; ac_word=$2
20494 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
20495 $as_echo_n "checking for $ac_word... " >&6; }
20496 if test "${ac_cv_prog_WINDRES+set}" = set; then
20497 $as_echo_n "(cached) " >&6
20498 else
20499 if test -n "$WINDRES"; then
20500 ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test.
20501 else
20502 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
20503 for as_dir in $PATH
20504 do
20505 IFS=$as_save_IFS
20506 test -z "$as_dir" && as_dir=.
20507 for ac_exec_ext in '' $ac_executable_extensions; do
20508 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
20509 ac_cv_prog_WINDRES="${ac_tool_prefix}windres"
20510 $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
20511 break 2
20512 fi
20513 done
20514 done
20515 IFS=$as_save_IFS
20516
20517 fi
20518 fi
20519 WINDRES=$ac_cv_prog_WINDRES
20520 if test -n "$WINDRES"; then
20521 { $as_echo "$as_me:$LINENO: result: $WINDRES" >&5
20522 $as_echo "$WINDRES" >&6; }
20523 else
20524 { $as_echo "$as_me:$LINENO: result: no" >&5
20525 $as_echo "no" >&6; }
20526 fi
20527
20528
20529 fi
20530 if test -z "$ac_cv_prog_WINDRES"; then
20531 ac_ct_WINDRES=$WINDRES
20532 # Extract the first word of "windres", so it can be a program name with args.
20533 set dummy windres; ac_word=$2
20534 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
20535 $as_echo_n "checking for $ac_word... " >&6; }
20536 if test "${ac_cv_prog_ac_ct_WINDRES+set}" = set; then
20537 $as_echo_n "(cached) " >&6
20538 else
20539 if test -n "$ac_ct_WINDRES"; then
20540 ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test.
20541 else
20542 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
20543 for as_dir in $PATH
20544 do
20545 IFS=$as_save_IFS
20546 test -z "$as_dir" && as_dir=.
20547 for ac_exec_ext in '' $ac_executable_extensions; do
20548 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
20549 ac_cv_prog_ac_ct_WINDRES="windres"
20550 $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
20551 break 2
20552 fi
20553 done
20554 done
20555 IFS=$as_save_IFS
20556
20557 fi
20558 fi
20559 ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES
20560 if test -n "$ac_ct_WINDRES"; then
20561 { $as_echo "$as_me:$LINENO: result: $ac_ct_WINDRES" >&5
20562 $as_echo "$ac_ct_WINDRES" >&6; }
20563 else
20564 { $as_echo "$as_me:$LINENO: result: no" >&5
20565 $as_echo "no" >&6; }
20566 fi
20567
20568 if test "x$ac_ct_WINDRES" = x; then
20569 WINDRES=""
20570 else
20571 case $cross_compiling:$ac_tool_warned in
20572 yes:)
20573 { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
20574 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
20575 ac_tool_warned=yes ;;
20576 esac
20577 WINDRES=$ac_ct_WINDRES
20578 fi
20579 else
20580 WINDRES="$ac_cv_prog_WINDRES"
20581 fi
20582
2036020583 fi
2036120584 if test $ac_cv_func_getaddrinfo = no; then
2036220585 case " $LIBOBJS " in
2073620959
2073720960 { $as_echo "$as_me:$LINENO: checking if nonblocking sockets work" >&5
2073820961 $as_echo_n "checking if nonblocking sockets work... " >&6; }
20962 if echo $target | grep mingw32 >/dev/null; then
20963 { $as_echo "$as_me:$LINENO: result: no (windows)" >&5
20964 $as_echo "no (windows)" >&6; }
20965
20966 cat >>confdefs.h <<\_ACEOF
20967 #define NONBLOCKING_IS_BROKEN 1
20968 _ACEOF
20969
20970 else
2073920971 if test "$cross_compiling" = yes; then
2074020972
2074120973 { $as_echo "$as_me:$LINENO: result: crosscompile(yes)" >&5
2092121153 fi
2092221154
2092321155
21156 fi
2092421157
2092521158
2092621159 { $as_echo "$as_me:$LINENO: checking whether mkdir has one arg" >&5
2257122804 # report actual input values of CONFIG_FILES etc. instead of their
2257222805 # values after options handling.
2257322806 ac_log="
22574 This file was extended by unbound $as_me 1.3.2, which was
22807 This file was extended by unbound $as_me 1.3.3, which was
2257522808 generated by GNU Autoconf 2.63. Invocation command line was
2257622809
2257722810 CONFIG_FILES = $CONFIG_FILES
2263422867 _ACEOF
2263522868 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2263622869 ac_cs_version="\\
22637 unbound config.status 1.3.2
22870 unbound config.status 1.3.3
2263822871 configured by $0, generated by GNU Autoconf 2.63,
2263922872 with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
2264022873
55 sinclude(acx_python.m4)
66 sinclude(ac_pkg_swig.m4)
77
8 AC_INIT(unbound, 1.3.2, unbound-bugs@nlnetlabs.nl, unbound)
8 AC_INIT(unbound, 1.3.3, unbound-bugs@nlnetlabs.nl, unbound)
99
1010 LIBUNBOUND_CURRENT=1
11 LIBUNBOUND_REVISION=2
11 LIBUNBOUND_REVISION=3
1212 LIBUNBOUND_AGE=0
1313 # 1.0.0 had 0:12:0
1414 # 1.0.1 had 0:13:0
2020 # 1.3.0 had 1:0:0 # ub_cancel and -export-symbols.
2121 # 1.3.1 had 1:1:0
2222 # 1.3.2 had 1:2:0
23 # 1.3.3 had 1:3:0
2324
2425 # Current -- the number of the binary API that we're implementing
2526 # Revision -- which iteration of the implementation of the binary
5758
5859 # are we on MinGW?
5960 if uname -s 2>&1 | grep MINGW32 >/dev/null; then on_mingw="yes"
60 else on_mingw="no"; fi
61 else
62 if echo $target | grep mingw32 >/dev/null; then on_mingw="yes"
63 else on_mingw="no"; fi
64 fi
6165
6266 #
6367 # Determine configuration file
179183 AC_PROG_LEX
180184 AC_PROG_YACC
181185 AC_CHECK_PROG(doxygen, doxygen, doxygen)
186 AC_CHECK_TOOL(STRIP, strip)
182187 ACX_LIBTOOL_C_ONLY
183188
184189 # Checks for header files.
441446 staticexe="-static"
442447 if test "$on_mingw" = yes; then
443448 staticexe="-all-static"
449 # for static crosscompile, include gdi32 and zlib here.
450 if test "`uname`" = "Linux"; then
451 LIBS="$LIBS -lgdi32 -lz"
452 fi
444453 fi
445454 fi
446455
461470 if test x_$enable_alloc_checks = x_yes; then
462471 AC_DEFINE(UNBOUND_ALLOC_STATS, 1, [use statistics for allocs and frees, for debug use])
463472 else
464 AC_FUNC_MALLOC
473 ACX_FUNC_MALLOC([unbound])
465474 fi
466475
467476 AC_FUNC_CHOWN
475484 AC_DEFINE(UB_ON_WINDOWS, 1, [Use win32 resources and API])
476485 UB_ON_WINDOWS=yes
477486 AC_SUBST(UB_ON_WINDOWS)
487 AC_CHECK_TOOL(WINDRES, windres)
478488 fi
479489 if test $ac_cv_func_getaddrinfo = no; then
480490 AC_LIBOBJ([fake-rfc2553])
633643 AHX_CONFIG_FORMAT_ATTRIBUTE
634644 AHX_CONFIG_UNUSED_ATTRIBUTE
635645 AHX_CONFIG_FSEEKO
636 AHX_CONFIG_RAND_MAX
637646 AHX_CONFIG_MAXHOSTNAMELEN
638647 AHX_CONFIG_SNPRINTF(unbound)
639648 AHX_CONFIG_INET_PTON(unbound)
77
88 usage ( )
99 {
10 echo "usage: update-anchor [-b] <zone name> <trust anchor file>"
10 echo "usage: update-anchor [-r hs] [-b] <zone name> <trust anchor file>"
1111 echo " performs an update of trust anchor file"
1212 echo " the trust anchor file is overwritten with the latest keys"
1313 echo " the trust anchor file should contain only keys for one zone"
1515 echo " without -b the file is made in unbound format."
1616 echo " "
1717 echo "alternate:"
18 echo " update-anchor [-b] -d directory"
18 echo " update-anchor [-r hints] [-b] -d directory"
1919 echo " update all <zone>.anchor files in the directory."
2020 echo " "
2121 echo " name the files br.anchor se.anchor ..., and include them in"
2222 echo " the validating resolver config file."
2323 echo " put keys for the root in a file with the name root.anchor."
24 echo ""
25 echo "-r root.hints use different root hints. Strict option order."
2426 echo ""
2527 echo "Exit code 0 means anchors updated, 1 no changes, others are errors."
2628 exit 2
3133 fi
3234 bindformat="no"
3335 filearg='-f'
36 roothints=""
37 if test X"$1" = "X-r"; then
38 shift
39 roothints="$1"
40 shift
41 fi
3442 if test X"$1" = "X-b"; then
3543 shift
3644 bindformat="yes"
4553 # arguments: <zonename> <keyfile>
4654 zonename="$1"
4755 keyfile="$2"
56 tmpfile="/tmp/update-anchor.$$"
4857 tmp2=$tmpfile.2
49
50 tmpfile="/tmp/update-anchor.$$"
51 $ubhost -v $filearg "$keyfile" -t DNSKEY "$zonename" >$tmpfile
58 tmp3=$tmpfile.3
59 rh=""
60 if test -n "$roothints"; then
61 echo "server: root-hints: '$roothints'" > $tmp3
62 rh="-C $tmp3"
63 fi
64 $ubhost -v $rh $filearg "$keyfile" -t DNSKEY "$zonename" >$tmpfile
5265 if test $? -ne 0; then
5366 rm -f $tmpfile
5467 echo "Error: Could not update zone $zonename anchor file $keyfile"
6477 rm -f $tmpfile
6578 echo "Error: Could not update zone $zonename anchor file $keyfile"
6679 echo "Cause: result of lookup was not secure"
67 echo " (keys too far out of date? domain changed ownership?)"
80 echo " (keys too far out of date? domain changed ownership? need root hints?)"
6881 return 3
6982 fi
7083
114127 echo "$zonename key file $keyfile unchanged."
115128 fi
116129
117 rm -f $tmpfile $tmp2
130 rm -f $tmpfile $tmp2 $tmp3
118131 }
119132
120133 no_updated=1
0 unbound (1.3.3-1) unstable; urgency=low
1
2 * New upstream release.
3 * Drop .la file from libunbound-dev; closes: #541640.
4
5 -- Robert S. Edmonds <edmonds@debian.org> Sun, 23 Aug 2009 13:25:53 -0400
6
07 unbound (1.3.2-1) unstable; urgency=low
18
29 * New upstream release.
00 usr/include/unbound.h usr/include
11 usr/lib/libunbound.a usr/lib
2 usr/lib/libunbound.la usr/lib
32 usr/lib/libunbound.so usr/lib
43 usr/share/man/man3/libunbound.3 usr/share/man/man3
0 4 August 2009: Wouter
1 - Added test that the examples from draft rsasha256-14 verify.
2 - iana portlist updated.
3
4 3 August 2009: Wouter
5 - nicer warning when algorithm not supported, tells you to upgrade.
6 - iana portlist updated.
7
8 27 July 2009: Wouter
9 - Updated unbound-cacti contribution from Dmitriy Demidov, with
10 the queue statistics displayed in its own graph.
11 - iana portlist updated.
12
13 22 July 2009: Wouter
14 - Fix bug found by Michael Tokarev where unbound would try to
15 prime the root servers even though forwarders are configured for
16 the root.
17 - tagged 1.3.3rc1
18
19 21 July 2009: Wouter
20 - Fix server selection, so that it waits for open target queries when
21 faced with lameness.
22
23 20 July 2009: Wouter
24 - Ignore transient sendto errors, no route to host, and host, net down.
25 - contrib/update-anchor.sh has -r option for root-hints.
26 - feature val-log-level: 1 prints validation failures so you can
27 keep track of them during dnssec deployment.
28
29 16 July 2009: Wouter
30 - fix replacement malloc code. Used in crosscompile.
31 - makedist -w creates crosscompiled setup.exe on fedora11.
32
33 15 July 2009: Wouter
34 - dependencies for compat items, for crosscompile.
35 - mingw32 crosscompile changes, dependencies and zipfile creation.
36 and with System.dll from the windows NSIS you can make setup.exe.
37 - package libgcc_s_sjlj exception handler for NSISdl.dll.
38
39 14 July 2009: Wouter
40 - updated ldns tarball for solaris x64 compile assistance.
41 - no need to define RAND_MAX from config.h.
42 - iana portlist updated.
43 - configure changes and ldns update for mingw32 crosscompile.
44
045 13 July 2009: Wouter
146 - Fix for crash at start on windows.
47 - tag for release 1.3.2.
48 - trunk has version 1.3.3.
49 - Fix for ID bits on windows to use all 16. RAND_MAX was not
50 defined like you'd expect on mingw. Reported by Mees de Roo.
251
352 9 July 2009: Wouter
453 - tag for release 1.3.1.
0 README for Unbound 1.3.2
0 README for Unbound 1.3.3
11 Copyright 2007 NLnet Labs
22 http://unbound.net
33
9494 the unbound-control-setup script creates the keys with restricted
9595 permissions, and the files need to be made readable or ownered by both the
9696 unbound daemon and unbound-control.
97 o Crosscompile seems to hang. You tried to install unbound under wine.
98 wine regedit and remove all the unbound entries from the registry or
99 delete .wine/drive_c.
97100
98101 Acknowledgements
99102 ----------------
141141 The dnssec retry scheme works without this cache entry.
142142 * If the key cache entry 'being-backed-off' is true and isdata then:
143143 The parent is backedoff, it must be the childs fault. Retry to child.
144 if the child-dnskey is bogus, then retry is useless, stop.
144145 Perform a child-retry - purge dataonly, childside, mark
145146 data-IPaddress from child as to avoid-forquery. counterperquery,
146147 max is 3, if reached, set this data element RRset&msg to the
340340 # result in interesting log files and possibly the AD bit in
341341 # replies if the message is found secure. The default is off.
342342 # val-permissive-mode: no
343
344 # Have the validator log failed validations for your diagnosis.
345 # 0: off. 1: A line per failed user query.
346 # val-log-level: 0
343347
344348 # It is possible to configure NSEC3 maximum iteration counts per
345349 # keysize. Keep this table very short, as linear search is done.
0 .TH "libunbound" "3" "Jul 13, 2009" "NLnet Labs" "unbound 1.3.2"
0 .TH "libunbound" "3" "Aug 4, 2009" "NLnet Labs" "unbound 1.3.3"
11 .\"
22 .\" libunbound.3 -- unbound library functions manual
33 .\"
4040 .B ub_ctx_zone_remove,
4141 .B ub_ctx_data_add,
4242 .B ub_ctx_data_remove
43 \- Unbound DNS validating resolver 1.3.2 functions.
43 \- Unbound DNS validating resolver 1.3.3 functions.
4444 .SH "SYNOPSIS"
4545 .LP
4646 .B #include <unbound.h>
0 .TH "unbound-checkconf" "8" "Jul 13, 2009" "NLnet Labs" "unbound 1.3.2"
0 .TH "unbound-checkconf" "8" "Aug 4, 2009" "NLnet Labs" "unbound 1.3.3"
11 .\"
22 .\" unbound-checkconf.8 -- unbound configuration checker manual
33 .\"
0 .TH "unbound-control" "8" "Jul 13, 2009" "NLnet Labs" "unbound 1.3.2"
0 .TH "unbound-control" "8" "Aug 4, 2009" "NLnet Labs" "unbound 1.3.3"
11 .\"
22 .\" unbound-control.8 -- unbound remote control manual
33 .\"
0 .TH "unbound\-host" "1" "Jul 13, 2009" "NLnet Labs" "unbound 1.3.2"
0 .TH "unbound\-host" "1" "Aug 4, 2009" "NLnet Labs" "unbound 1.3.3"
11 .\"
22 .\" unbound-host.1 -- unbound DNS lookup utility
33 .\"
0 .TH "unbound" "8" "Jul 13, 2009" "NLnet Labs" "unbound 1.3.2"
0 .TH "unbound" "8" "Aug 4, 2009" "NLnet Labs" "unbound 1.3.3"
11 .\"
22 .\" unbound.8 -- unbound manual
33 .\"
99 .SH "NAME"
1010 .LP
1111 .B unbound
12 \- Unbound DNS validating resolver 1.3.2.
12 \- Unbound DNS validating resolver 1.3.3.
1313 .SH "SYNOPSIS"
1414 .LP
1515 .B unbound
0 .TH "unbound.conf" "5" "Jul 13, 2009" "NLnet Labs" "unbound 1.3.2"
0 .TH "unbound.conf" "5" "Aug 4, 2009" "NLnet Labs" "unbound 1.3.3"
11 .\"
22 .\" unbound.conf.5 -- unbound.conf manual
33 .\"
561561 indeterminate or unchecked are not affected. Default is yes. Use this setting
562562 to protect the users that rely on this validator for authentication from
563563 protentially bad data in the additional section.
564 .TP
565 .B val\-log\-level: \fI<number>
566 Have the validator print validation failures to the log. Regardless of the
567 verbosity setting. Default is 0, off. At 1, for every user query that fails
568 a line is printed to the logs. This way you can monitor what happens with
569 validation. Use a diagnosis tool, such as dig or drill, to find out why
570 validation is failing for these queries.
564571 .TP
565572 .B val\-permissive\-mode: \fI<yes or no>
566573 Instruct the validator to mark bogus messages as indeterminate. The security
344344 return NULL;
345345 }
346346
347 struct delegpt*
348 forwards_lookup_root(struct iter_forwards* fwd, uint16_t qclass)
349 {
350 uint8_t root = 0;
351 return forwards_lookup(fwd, &root, qclass);
352 }
353
347354 size_t
348355 forwards_get_mem(struct iter_forwards* fwd)
349356 {
119119 uint8_t* qname, uint16_t qclass);
120120
121121 /**
122 * Same as forwards_lookup, but for the root only
123 * @param fwd: forward storage.
124 * @param qclass: The qclass of the query.
125 * @return: A delegation point if root forward exists, otherwise null.
126 */
127 struct delegpt* forwards_lookup_root(struct iter_forwards* fwd,
128 uint16_t qclass);
129
130 /**
122131 * Get memory in use by forward storage
123132 * @param fwd: forward storage.
124133 * @return bytes in use
232232 static int
233233 iter_filter_order(struct iter_env* iter_env, struct module_env* env,
234234 uint8_t* name, size_t namelen, uint16_t qtype, uint32_t now,
235 struct delegpt* dp, int* selected_rtt)
235 struct delegpt* dp, int* selected_rtt, int open_target)
236236 {
237237 int got_num = 0, low_rtt = 0, swap_to_front;
238238 struct delegpt_addr* a, *n, *prev=NULL;
243243 if(got_num == 0)
244244 return 0;
245245 if(low_rtt >= USEFUL_SERVER_TOP_TIMEOUT &&
246 delegpt_count_missing_targets(dp) > 0)
246 (delegpt_count_missing_targets(dp) > 0 || open_target > 0))
247247 return 0; /* we want more choice. The best choice is a bad one.
248248 return 0 to force the caller to fetch more */
249249
285285 iter_server_selection(struct iter_env* iter_env,
286286 struct module_env* env, struct delegpt* dp,
287287 uint8_t* name, size_t namelen, uint16_t qtype, int* dnssec_expected,
288 int* chase_to_rd)
288 int* chase_to_rd, int open_target)
289289 {
290290 int sel;
291291 int selrtt;
292292 struct delegpt_addr* a, *prev;
293293 int num = iter_filter_order(iter_env, env, name, namelen, qtype,
294 *env->now, dp, &selrtt);
294 *env->now, dp, &selrtt, open_target);
295295
296296 if(num == 0)
297297 return NULL;
7878 * these are not preferred, but are used as a last resort.
7979 * @param chase_to_rd: set to 1 if a known recursion lame server is selected
8080 * these are not preferred, but are used as a last resort.
81 * @param open_target: number of currently outstanding target queries.
82 * If we wait for these, perhaps more server addresses become available.
8183 * @return best target or NULL if no target.
8284 * if not null, that target is removed from the result list in the dp.
8385 */
8486 struct delegpt_addr* iter_server_selection(struct iter_env* iter_env,
8587 struct module_env* env, struct delegpt* dp, uint8_t* name,
8688 size_t namelen, uint16_t qtype, int* dnssec_expected,
87 int* chase_to_rd);
89 int* chase_to_rd, int open_target);
8890
8991 /**
9092 * Allocate dns_msg from parsed msg, in regional.
950950 /* If the cache has returned nothing, then we have a
951951 * root priming situation. */
952952 if(iq->dp == NULL) {
953 if(forwards_lookup_root(qstate->env->fwds,
954 iq->qchase.qclass)) {
955 /* forward zone root, no root prime needed */
956 /* fill in some dp - safety belt */
957 iq->dp = hints_lookup_root(ie->hints,
958 iq->qchase.qclass);
959 if(!iq->dp) {
960 log_err("internal error: no hints dp");
961 return error_response(qstate, id,
962 LDNS_RCODE_SERVFAIL);
963 }
964 iq->dp = delegpt_copy(iq->dp, qstate->region);
965 if(!iq->dp) {
966 log_err("out of memory in safety belt");
967 return error_response(qstate, id,
968 LDNS_RCODE_SERVFAIL);
969 }
970 return next_state(iq, INIT_REQUEST_2_STATE);
971 }
953972 /* Note that the result of this will set a new
954973 * DelegationPoint based on the result of priming. */
955974 if(!prime_root(qstate, iq, ie, id, iq->qchase.qclass))
13251344 /* Select the next usable target, filtering out unsuitable targets. */
13261345 target = iter_server_selection(ie, qstate->env, iq->dp,
13271346 iq->dp->name, iq->dp->namelen, iq->qchase.qtype,
1328 &iq->dnssec_expected, &iq->chase_to_rd);
1347 &iq->dnssec_expected, &iq->chase_to_rd, iq->num_target_queries);
13291348
13301349 /* If no usable target was selected... */
13311350 if(!target) {
Binary diff not shown
174174 else O_STR(opt, "dlv-anchor-file", dlv_anchor_file)
175175 else O_DEC(opt, "val-bogus-ttl", bogus_ttl)
176176 else O_YNO(opt, "val-clean-additional", val_clean_additional)
177 else O_DEC(opt, "val-log-level", val_log_level)
177178 else O_YNO(opt, "val-permissive-mode", val_permissive_mode)
178179 else O_STR(opt, "val-nsec3-keysize-iterations",val_nsec3_key_iterations)
179180 else O_MEM(opt, "key-cache-size", key_cache_size)
359359 (unsigned)tv.tv_sec, (unsigned)tv.tv_usec);
360360 log_addr(1, "from client", &p->addr, p->addr_len);
361361 /* send it */
362 sent = sendto(p->s, ldns_buffer_begin(pkt),
362 sent = sendto(p->s, (void*)ldns_buffer_begin(pkt),
363363 ldns_buffer_limit(pkt), 0,
364364 (struct sockaddr*)srv_addr, srv_len);
365365 if(sent == -1) {
383383 int i;
384384 ssize_t r;
385385 for(i=0; i<TRIES_PER_SELECT; i++) {
386 r = recv(p->s, ldns_buffer_begin(pkt),
386 r = recv(p->s, (void*)ldns_buffer_begin(pkt),
387387 ldns_buffer_capacity(pkt), 0);
388388 if(r == -1) {
389389 #ifndef USE_WINSOCK
402402 log_addr(1, "return reply to client", &p->addr, p->addr_len);
403403 /* send reply back to the real client */
404404 p->numreturn++;
405 r = sendto(retsock, ldns_buffer_begin(pkt), (size_t)r, 0,
406 (struct sockaddr*)&p->addr, p->addr_len);
405 r = sendto(retsock, (void*)ldns_buffer_begin(pkt), (size_t)r,
406 0, (struct sockaddr*)&p->addr, p->addr_len);
407407 if(r == -1) {
408408 #ifndef USE_WINSOCK
409409 log_err("sendto: %s", strerror(errno));
491491 struct proxy* p;
492492 for(i=0; i<TRIES_PER_SELECT; i++) {
493493 from_len = (socklen_t)sizeof(from);
494 len = recvfrom(s, ldns_buffer_begin(pkt),
494 len = recvfrom(s, (void*)ldns_buffer_begin(pkt),
495495 ldns_buffer_capacity(pkt), 0,
496496 (struct sockaddr*)&from, &from_len);
497497 if(len < 0) {
635635 struct timeval* delay, ldns_buffer* pkt)
636636 {
637637 struct tcp_send_list* item;
638 ssize_t r = recv(s, ldns_buffer_begin(pkt),
638 ssize_t r = recv(s, (void*)ldns_buffer_begin(pkt),
639639 ldns_buffer_capacity(pkt), 0);
640640 if(r == -1) {
641641 #ifndef USE_WINSOCK
271271 perfsend(struct perfinfo* info, size_t n, struct timeval* now)
272272 {
273273 ssize_t r;
274 r = sendto(info->io[n].fd, info->qlist_data[info->qlist_idx],
274 r = sendto(info->io[n].fd, (void*)info->qlist_data[info->qlist_idx],
275275 info->qlist_len[info->qlist_idx], 0,
276276 (struct sockaddr*)&info->dest, info->destlen);
277277 /*log_hex("send", info->qlist_data[info->qlist_idx],
298298 perfreply(struct perfinfo* info, size_t n, struct timeval* now)
299299 {
300300 ssize_t r;
301 r = recv(info->io[n].fd, ldns_buffer_begin(info->buf),
301 r = recv(info->io[n].fd, (void*)ldns_buffer_begin(info->buf),
302302 ldns_buffer_capacity(info->buf), 0);
303303 if(r == -1) {
304304 #ifndef USE_WINSOCK
136136 exit(1);
137137 }
138138 }
139 if(send(fd, ldns_buffer_begin(buf), ldns_buffer_limit(buf), 0) <
139 if(send(fd, (void*)ldns_buffer_begin(buf), ldns_buffer_limit(buf), 0) <
140140 (ssize_t)ldns_buffer_limit(buf)) {
141141 #ifndef USE_WINSOCK
142142 perror("send() data failed");
169169 len = ntohs(len);
170170 ldns_buffer_clear(buf);
171171 ldns_buffer_set_limit(buf, len);
172 if(recv(fd, ldns_buffer_begin(buf), len, 0) < (ssize_t)len) {
172 if(recv(fd, (void*)ldns_buffer_begin(buf), len, 0) <
173 (ssize_t)len) {
173174 #ifndef USE_WINSOCK
174175 perror("read() data failed");
175176 #else
181182 } else {
182183 ssize_t l;
183184 ldns_buffer_clear(buf);
184 if((l=recv(fd, ldns_buffer_begin(buf),
185 if((l=recv(fd, (void*)ldns_buffer_begin(buf),
185186 ldns_buffer_capacity(buf), 0)) < 0) {
186187 #ifndef USE_WINSOCK
187188 perror("read() data failed");
406406 for(i=0; i<num; i++) {
407407 a[i] = ub_random(r);
408408 unit_assert(a[i] >= 0);
409 unit_assert((size_t)a[i] <= (size_t)RAND_MAX);
409 unit_assert((size_t)a[i] <= (size_t)0x7fffffff);
410410 if(i > 5)
411411 unit_assert(a[i] != a[i-1] || a[i] != a[i-2] ||
412412 a[i] != a[i-3] || a[i] != a[i-4] ||
476476 #if defined(HAVE_EVP_SHA256) && defined(USE_SHA2)
477477 verifytest_file("testdata/test_signatures.9", "20070829144150");
478478 verifytest_file("testdata/test_signatures.11", "20070829144150");
479 verifytest_file("testdata/test_signatures.14", "20090101000000");
479480 #endif
480481 #if defined(HAVE_EVP_SHA512) && defined(USE_SHA2)
481 /* Skip test. Algorithm number uncertainty
482482 verifytest_file("testdata/test_signatures.10", "20070829144150");
483 */
484483 #endif
485484 verifytest_file("testdata/test_signatures.12", "20090107100022");
486485 verifytest_file("testdata/test_signatures.13", "20080414005004");
0 ; config options
1 server:
2 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
3 val-override-date: "20070916134226"
4
5 stub-zone:
6 name: "."
7 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
8
9 CONFIG_END
10
11 SCENARIO_BEGIN Bug test dnssec-lame detection at ds point with target queries.
12
13 ; K.ROOT-SERVERS.NET.
14 RANGE_BEGIN 0 100
15 ADDRESS 193.0.14.129
16 ENTRY_BEGIN
17 MATCH opcode qtype qname
18 ADJUST copy_id
19 REPLY QR NOERROR
20 SECTION QUESTION
21 . IN NS
22 SECTION ANSWER
23 . IN NS K.ROOT-SERVERS.NET.
24 SECTION ADDITIONAL
25 K.ROOT-SERVERS.NET. IN A 193.0.14.129
26 ENTRY_END
27
28 ENTRY_BEGIN
29 MATCH opcode subdomain
30 ADJUST copy_id copy_query
31 REPLY QR NOERROR
32 SECTION QUESTION
33 com. IN A
34 SECTION AUTHORITY
35 com. IN NS a.gtld-servers.net.
36 SECTION ADDITIONAL
37 a.gtld-servers.net. IN A 192.5.6.30
38 ENTRY_END
39
40 ENTRY_BEGIN
41 MATCH opcode subdomain
42 ADJUST copy_id copy_query
43 REPLY QR NOERROR
44 SECTION QUESTION
45 net. IN A
46 SECTION AUTHORITY
47 net. IN NS e.gtld-servers.net.
48 SECTION ADDITIONAL
49 e.gtld-servers.net. IN A 192.12.94.30
50 ENTRY_END
51
52 ENTRY_BEGIN
53 MATCH opcode qtype qname
54 ADJUST copy_id
55 REPLY QR NOERROR
56 SECTION QUESTION
57 ns.example.net. IN AAAA
58 SECTION AUTHORITY
59 net. IN NS e.gtld-servers.net.
60 SECTION ADDITIONAL
61 e.gtld-servers.net. IN A 192.12.94.30
62 ENTRY_END
63 RANGE_END
64
65 ; a.gtld-servers.net.
66 RANGE_BEGIN 0 100
67 ADDRESS 192.5.6.30
68 ENTRY_BEGIN
69 MATCH opcode qtype qname
70 ADJUST copy_id
71 REPLY QR NOERROR
72 SECTION QUESTION
73 com. IN NS
74 SECTION ANSWER
75 com. IN NS a.gtld-servers.net.
76 SECTION ADDITIONAL
77 a.gtld-servers.net. IN A 192.5.6.30
78 ENTRY_END
79
80 ENTRY_BEGIN
81 MATCH opcode subdomain
82 ADJUST copy_id copy_query
83 REPLY QR NOERROR
84 SECTION QUESTION
85 example.com. IN A
86 SECTION AUTHORITY
87 example.com. IN NS ns.example.com.
88 SECTION ADDITIONAL
89 ns.example.com. IN A 1.2.3.55
90 ENTRY_END
91 RANGE_END
92
93 ; e.gtld-servers.net.
94 ; Note this timing is so it will provide answers at the beginning.
95 RANGE_BEGIN 0 30
96 ADDRESS 192.12.94.30
97 ENTRY_BEGIN
98 MATCH opcode qtype qname
99 ADJUST copy_id
100 REPLY QR NOERROR
101 SECTION QUESTION
102 net. IN NS
103 SECTION ANSWER
104 net. IN NS e.gtld-servers.net.
105 SECTION ADDITIONAL
106 e.gtld-servers.net. IN A 192.12.94.30
107 ENTRY_END
108
109 ENTRY_BEGIN
110 MATCH opcode qtype qname
111 ADJUST copy_id
112 REPLY QR AA NOERROR
113 SECTION QUESTION
114 e.gtld-servers.net. IN AAAA
115 SECTION ANSWER
116 ENTRY_END
117
118 ENTRY_BEGIN
119 MATCH opcode qtype qname
120 ADJUST copy_id
121 REPLY QR AA NOERROR
122 SECTION QUESTION
123 a.gtld-servers.net. IN AAAA
124 SECTION ANSWER
125 ENTRY_END
126
127 ; no example.net delegation answers yet.
128
129 RANGE_END
130
131 ; e.gtld-servers.net.
132 ; Note this timing is so it will not provide answers at the beginning,
133 ; but only later on.
134 RANGE_BEGIN 30 100
135 ADDRESS 192.12.94.30
136 ENTRY_BEGIN
137 MATCH opcode qtype qname
138 ADJUST copy_id
139 REPLY QR NOERROR
140 SECTION QUESTION
141 net. IN NS
142 SECTION ANSWER
143 net. IN NS e.gtld-servers.net.
144 SECTION ADDITIONAL
145 e.gtld-servers.net. IN A 192.12.94.30
146 ENTRY_END
147
148 ENTRY_BEGIN
149 MATCH opcode qtype qname
150 ADJUST copy_id
151 REPLY QR AA NOERROR
152 SECTION QUESTION
153 e.gtld-servers.net. IN AAAA
154 SECTION ANSWER
155 ENTRY_END
156
157 ENTRY_BEGIN
158 MATCH opcode qtype qname
159 ADJUST copy_id
160 REPLY QR AA NOERROR
161 SECTION QUESTION
162 a.gtld-servers.net. IN AAAA
163 SECTION ANSWER
164 ENTRY_END
165
166 ENTRY_BEGIN
167 MATCH opcode qtype qname
168 ADJUST copy_id
169 REPLY QR NOERROR
170 SECTION QUESTION
171 ns.example.net. IN A
172 SECTION AUTHORITY
173 example.net. IN NS ns.example.net.
174 SECTION ADDITIONAL
175 ns.example.net. IN A 1.2.3.44
176 ENTRY_END
177
178 ENTRY_BEGIN
179 MATCH opcode qtype qname
180 ADJUST copy_id
181 REPLY QR NOERROR
182 SECTION QUESTION
183 ns.example.net. IN AAAA
184 SECTION AUTHORITY
185 example.net. IN NS ns.example.net.
186 SECTION ADDITIONAL
187 ns.example.net. IN A 1.2.3.44
188 ENTRY_END
189 RANGE_END
190
191 ; ns.example.net.
192 ; Note this timing is so it will not provide answers at the beginning,
193 ; but only later on.
194 RANGE_BEGIN 30 100
195 ADDRESS 1.2.3.44
196 ENTRY_BEGIN
197 MATCH opcode qtype qname
198 ADJUST copy_id
199 REPLY QR NOERROR
200 SECTION QUESTION
201 example.net. IN NS
202 SECTION ANSWER
203 example.net. IN NS ns.example.net.
204 SECTION ADDITIONAL
205 ns.example.net. IN A 1.2.3.44
206 ENTRY_END
207
208 ENTRY_BEGIN
209 MATCH opcode qtype qname
210 ADJUST copy_id
211 REPLY QR AA NOERROR
212 SECTION QUESTION
213 ns.example.net. IN A
214 SECTION ANSWER
215 ns.example.net. IN A 1.2.3.44
216 SECTION AUTHORITY
217 example.net. IN NS ns.example.net.
218 ENTRY_END
219
220 ENTRY_BEGIN
221 MATCH opcode qtype qname
222 ADJUST copy_id
223 REPLY QR AA NOERROR
224 SECTION QUESTION
225 ns.example.net. IN AAAA
226 SECTION AUTHORITY
227 example.net. IN NS ns.example.net.
228 SECTION ADDITIONAL
229 ns.example.net. IN A 1.2.3.44
230 ENTRY_END
231
232 ; response to DNSKEY priming query
233 ; sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3
234 ENTRY_BEGIN
235 MATCH opcode qtype qname
236 ADJUST copy_id
237 REPLY QR AA NOERROR
238 SECTION QUESTION
239 sub.example.com. IN DNSKEY
240 SECTION ANSWER
241 sub.example.com. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}
242 sub.example.com. 3600 IN RRSIG DNSKEY 5 3 3600 20070926134150 20070829134150 30899 sub.example.com. uNGp99iznjD7oOX02XnQbDnbg75UwBHRvZSKYUorTKvPUnCWMHKdRsQ+mf+Fx3GZ+Fz9BVjoCmQqpnfgXLEYqw== ;{id = 30899}
243 SECTION AUTHORITY
244 ; no NS set. not needed for this test.
245 SECTION ADDITIONAL
246 ns.sub.example.com. IN A 1.2.3.6
247 ns.sub.example.com. 3600 IN RRSIG A 5 4 3600 20070926134150 20070829134150 30899 sub.example.com. UF7shD/gt1FOp2UHgLTNbPzVykklSXFMEtJ1xD+Hholwf/PIzd7zoaIttIYibNa4fUXCqMg22H9P7MRhfmFe6g== ;{id = 30899}
248 ENTRY_END
249
250 ENTRY_BEGIN
251 MATCH opcode qtype qname
252 ADJUST copy_id
253 REPLY QR AA NOERROR
254 SECTION QUESTION
255 sub.example.com. IN NS
256 SECTION ANSWER
257 sub.example.com. IN NS ns.sub.example.com.
258 sub.example.com. IN NS ns.example.net.
259 sub.example.com. 3600 IN RRSIG NS 5 3 3600 20070926134150 20070829134150 30899 sub.example.com. C/0b+sqlsdSTkhd+aDXb6ELyuQreosIGBzLCtWxYGD+Q9QGB5rN8uB+4+48yhw36pd3MfeAn06AgAnJ6eu8tJg== ;{id = 30899}
260 SECTION ADDITIONAL
261 ns.sub.example.com. IN A 1.2.3.6
262 ns.sub.example.com. 3600 IN RRSIG A 5 4 3600 20070926134150 20070829134150 30899 sub.example.com. UF7shD/gt1FOp2UHgLTNbPzVykklSXFMEtJ1xD+Hholwf/PIzd7zoaIttIYibNa4fUXCqMg22H9P7MRhfmFe6g== ;{id = 30899}
263 ENTRY_END
264
265 ; response to query of interest
266 ENTRY_BEGIN
267 MATCH opcode qtype qname
268 ADJUST copy_id
269 REPLY QR AA NOERROR
270 SECTION QUESTION
271 www.sub.example.com. IN A
272 SECTION ANSWER
273 www.sub.example.com. IN A 11.11.11.11
274 www.sub.example.com. 3600 IN RRSIG A 5 4 3600 20070926134150 20070829134150 30899 sub.example.com. 0DqqRfRtm7VSEQ4mmBbzrKRqQAay3JAE8DPDGmjtokrrjN9F1G/HxozDV7bjdIh2EChlQea8FPwf/GepJMUVxg== ;{id = 30899}
275 SECTION AUTHORITY
276 SECTION ADDITIONAL
277 ENTRY_END
278
279 ENTRY_BEGIN
280 MATCH opcode qtype qname
281 ADJUST copy_id
282 REPLY QR AA NOERROR
283 SECTION QUESTION
284 ns.sub.example.com. IN AAAA
285 SECTION ANSWER
286 ENTRY_END
287 RANGE_END
288
289 ; ns.example.com.
290 RANGE_BEGIN 0 100
291 ADDRESS 1.2.3.55
292 ENTRY_BEGIN
293 MATCH opcode qtype qname
294 ADJUST copy_id
295 REPLY QR NOERROR
296 SECTION QUESTION
297 example.com. IN NS
298 SECTION ANSWER
299 example.com. IN NS ns.example.com.
300 SECTION ADDITIONAL
301 ns.example.com. IN A 1.2.3.55
302 ENTRY_END
303
304 ENTRY_BEGIN
305 MATCH opcode qtype qname
306 ADJUST copy_id
307 REPLY QR AA NOERROR
308 SECTION QUESTION
309 ns.example.com. IN A
310 SECTION ANSWER
311 ns.example.com. IN A 1.2.3.55
312 ENTRY_END
313
314 ENTRY_BEGIN
315 MATCH opcode qtype qname
316 ADJUST copy_id
317 REPLY QR AA NOERROR
318 SECTION QUESTION
319 ns.example.com. IN AAAA
320 ENTRY_END
321
322 ; fine DNSKEY response.
323 ENTRY_BEGIN
324 MATCH opcode qtype qname
325 ADJUST copy_id
326 REPLY QR AA NOERROR
327 SECTION QUESTION
328 example.com. IN DNSKEY
329 SECTION ANSWER
330 example.com. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJII s70j+sDS/UT2QRp61SE7S3E EXopNXoFE73JLRmvpi/UrOO/Vz4Se 6wXv/CYCKjGw06U4WRgR YXcpEhJROyNapmdIKSx hOzfLVE1gqA0PweZR8d tY3aNQSRn3sPpwJr6Mi /PqQKAMMrZ9ckJpf1+b QMOOvxgzz2U1GS18b3y ZKcgTMEaJzd/GZYzi/B N2DzQ0MsrSwYXfsNLFO Bbs8PJMW4LYIxeeOe6rUgkWOF 7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b}
331 example.com. 3600 IN RRSIG DNSKEY DSA 2 3600 20070926134150 20070829134150 2854 example.com. MCwCFBQRtlR4BEv9ohi+PGFjp+AHsJuHAhRCvz0shggvnvI88DFnBDCczHUcVA== ;{id = 2854}
332 SECTION AUTHORITY
333 example.com. IN NS ns.example.com.
334 example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
335 ENTRY_END
336
337
338 ; correct delegation with DS
339 ENTRY_BEGIN
340 MATCH opcode subdomain
341 ADJUST copy_id copy_query
342 REPLY QR AA NOERROR
343 SECTION QUESTION
344 sub.example.com. IN A
345 SECTION ANSWER
346 SECTION AUTHORITY
347 sub.example.com. IN NS ns.sub.example.com.
348 sub.example.com. IN NS ns.example.net.
349 sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3
350 sub.example.com. 3600 IN RRSIG DS 3 3 3600 20070926134150 20070829134150 2854 example.com. MCwCFCW3ix0GD4BSvNLWIbROCJt5DAW9AhRt/kg9kBKJ20UBUdumrBUHqnskdA== ;{id = 2854}
351 SECTION ADDITIONAL
352 ns.sub.example.com. IN A 1.2.3.6
353 ENTRY_END
354
355 ; response for delegation to sub.example.com.
356 ENTRY_BEGIN
357 MATCH opcode qtype qname
358 ADJUST copy_id
359 REPLY QR NOERROR
360 SECTION QUESTION
361 sub.example.com. IN DNSKEY
362 SECTION ANSWER
363 SECTION AUTHORITY
364 sub.example.com. IN NS ns.sub.example.com.
365 sub.example.com. IN NS ns.example.net.
366 sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3
367 sub.example.com. 3600 IN RRSIG DS 3 3 3600 20070926134150 20070829134150 2854 example.com. MCwCFCW3ix0GD4BSvNLWIbROCJt5DAW9AhRt/kg9kBKJ20UBUdumrBUHqnskdA== ;{id = 2854}
368 SECTION ADDITIONAL
369 ns.sub.example.com. IN A 1.2.3.6
370 ENTRY_END
371 RANGE_END
372
373 ; This server is DNSSEC LAME!
374 ; ns.sub.example.com.
375 RANGE_BEGIN 0 100
376 ADDRESS 1.2.3.6
377
378 ENTRY_BEGIN
379 MATCH opcode qtype qname
380 ADJUST copy_id
381 REPLY QR AA NOERROR
382 SECTION QUESTION
383 sub.example.com. IN NS
384 SECTION ANSWER
385 sub.example.com. IN NS ns.sub.example.com.
386 sub.example.com. IN NS ns.example.net.
387 SECTION ADDITIONAL
388 ns.sub.example.com. IN A 1.2.3.6
389 ENTRY_END
390
391
392 ; response to DNSKEY priming query
393 ; sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3
394 ENTRY_BEGIN
395 MATCH opcode qtype qname
396 ADJUST copy_id
397 REPLY QR AA NOERROR
398 SECTION QUESTION
399 sub.example.com. IN DNSKEY
400 SECTION ANSWER
401 sub.example.com. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}
402 SECTION AUTHORITY
403 sub.example.com. IN NS ns.sub.example.com.
404 sub.example.com. IN NS ns.example.net.
405 SECTION ADDITIONAL
406 ns.sub.example.com. IN A 1.2.3.6
407 ENTRY_END
408
409 ENTRY_BEGIN
410 MATCH opcode qtype qname
411 ADJUST copy_id
412 REPLY QR AA NOERROR
413 SECTION QUESTION
414 ns.sub.example.com. IN AAAA
415 SECTION ANSWER
416 ENTRY_END
417
418 ; response to query of interest
419 ENTRY_BEGIN
420 MATCH opcode qtype qname
421 ADJUST copy_id
422 REPLY QR AA NOERROR
423 SECTION QUESTION
424 www.sub.example.com. IN A
425 SECTION ANSWER
426 www.sub.example.com. IN A 11.11.11.11
427 SECTION AUTHORITY
428 ; dnssec-lameness detection depends on this information
429 sub.example.com. IN NS ns.sub.example.com.
430 sub.example.com. IN NS ns.example.net.
431 SECTION ADDITIONAL
432 ns.sub.example.com. IN A 1.2.3.6
433 ENTRY_END
434 RANGE_END
435
436
437 STEP 1 QUERY
438 ENTRY_BEGIN
439 REPLY RD DO
440 SECTION QUESTION
441 www.sub.example.com. IN A
442 ENTRY_END
443
444 STEP 10 NOTHING
445 ; recursion at time 10.
446 ; first recursion with answers in 0-30 time
447 ; with bug it now resolves to the bad version
448 ; fixed, it stops waiting for more target queries.
449
450 STEP 40 NOTHING
451 ; next recursion with more answers at time 40.
452
453 ; recursion happens here.
454 STEP 50 CHECK_ANSWER
455 ENTRY_BEGIN
456 MATCH all
457 REPLY QR RD RA AD DO NOERROR
458 SECTION QUESTION
459 www.sub.example.com. IN A
460 SECTION ANSWER
461 www.sub.example.com. IN A 11.11.11.11
462 www.sub.example.com. 3600 IN RRSIG A 5 4 3600 20070926134150 20070829134150 30899 sub.example.com. 0DqqRfRtm7VSEQ4mmBbzrKRqQAay3JAE8DPDGmjtokrrjN9F1G/HxozDV7bjdIh2EChlQea8FPwf/GepJMUVxg== ;{id = 30899}
463 ENTRY_END
464 SCENARIO_END
0 ; config options
1 server:
2 target-fetch-policy: "0 0 0 0 0"
3
4 stub-zone:
5 name: "."
6 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
7 forward-zone:
8 name: "."
9 forward-addr: 10.0.0.1
10 stub-zone:
11 name: "sub.example.com"
12 stub-addr: 10.0.0.2
13 CONFIG_END
14
15 SCENARIO_BEGIN Test iterative resolve with a stub under a forward root zone
16
17 ; K.ROOT-SERVERS.NET.
18 RANGE_BEGIN 0 100
19 ADDRESS 193.0.14.129
20
21 ; No answers from the actual root, blocked.
22
23 RANGE_END
24
25 ; a.gtld-servers.net.
26 RANGE_BEGIN 0 100
27 ADDRESS 192.5.6.30
28 ENTRY_BEGIN
29 MATCH opcode qtype qname
30 ADJUST copy_id
31 REPLY QR NOERROR
32 SECTION QUESTION
33 com. IN NS
34 SECTION ANSWER
35 com. IN NS a.gtld-servers.net.
36 SECTION ADDITIONAL
37 a.gtld-servers.net. IN A 192.5.6.30
38 ENTRY_END
39
40 ENTRY_BEGIN
41 MATCH opcode qtype qname
42 ADJUST copy_id
43 REPLY QR NOERROR
44 SECTION QUESTION
45 www.example.com. IN A
46 SECTION AUTHORITY
47 example.com. IN NS ns.example.com.
48 SECTION ADDITIONAL
49 ns.example.com. IN A 1.2.3.4
50 ENTRY_END
51 RANGE_END
52
53 ; ns.example.com.
54 RANGE_BEGIN 0 100
55 ADDRESS 1.2.3.4
56 ENTRY_BEGIN
57 MATCH opcode qtype qname
58 ADJUST copy_id
59 REPLY QR NOERROR
60 SECTION QUESTION
61 example.com. IN NS
62 SECTION ANSWER
63 example.com. IN NS ns.example.com.
64 SECTION ADDITIONAL
65 ns.example.com. IN A 1.2.3.4
66 ENTRY_END
67
68 ENTRY_BEGIN
69 MATCH opcode qtype qname
70 ADJUST copy_id
71 REPLY QR NOERROR
72 SECTION QUESTION
73 www.example.com. IN A
74 SECTION ANSWER
75 www.example.com. IN A 10.20.30.40
76 SECTION AUTHORITY
77 example.com. IN NS ns.example.com.
78 SECTION ADDITIONAL
79 ns.example.com. IN A 1.2.3.4
80 ENTRY_END
81 RANGE_END
82
83 ; forwarder for example.com.
84 RANGE_BEGIN 0 100
85 ADDRESS 10.0.0.1
86 ENTRY_BEGIN
87 MATCH opcode qtype qname
88 ADJUST copy_id
89 REPLY QR NOERROR
90 SECTION QUESTION
91 example.com. IN NS
92 SECTION ANSWER
93 example.com. IN NS ns.example.com.
94 SECTION ADDITIONAL
95 ns.example.com. IN A 1.2.3.4
96 ENTRY_END
97
98 ENTRY_BEGIN
99 MATCH opcode qtype qname
100 ADJUST copy_id
101 REPLY QR NOERROR
102 SECTION QUESTION
103 www.example.com. IN A
104 SECTION ANSWER
105 www.example.com. IN A 10.0.0.4
106 SECTION AUTHORITY
107 example.com. IN NS ns.example.com.
108 SECTION ADDITIONAL
109 ns.example.com. IN A 1.2.3.4
110 ENTRY_END
111
112 ; fail all other queries
113 ENTRY_BEGIN
114 MATCH opcode
115 ADJUST copy_id copy_query
116 REPLY QR SERVFAIL
117 SECTION QUESTION
118 example.com. IN A
119 ENTRY_END
120 RANGE_END
121
122 ; stub for sub.example.com.
123 RANGE_BEGIN 0 100
124 ADDRESS 10.0.0.2
125 ENTRY_BEGIN
126 MATCH opcode qtype qname
127 ADJUST copy_id
128 REPLY QR NOERROR
129 SECTION QUESTION
130 sub.example.com. IN NS
131 SECTION ANSWER
132 sub.example.com. IN NS ns.sub.example.com.
133 SECTION ADDITIONAL
134 ns.sub.example.com. IN A 1.2.3.44
135 ENTRY_END
136
137 ENTRY_BEGIN
138 MATCH opcode qtype qname
139 ADJUST copy_id
140 REPLY QR NOERROR
141 SECTION QUESTION
142 www.sub.example.com. IN A
143 SECTION ANSWER
144 www.sub.example.com. IN A 10.0.0.5
145 SECTION AUTHORITY
146 sub.example.com. IN NS ns.sub.example.com.
147 SECTION ADDITIONAL
148 ns.sub.example.com. IN A 1.2.3.44
149 ENTRY_END
150 RANGE_END
151
152 ; try to resolve from stub zone
153 STEP 20 QUERY
154 ENTRY_BEGIN
155 REPLY RD
156 SECTION QUESTION
157 www.sub.example.com. IN A
158 ENTRY_END
159
160 STEP 30 CHECK_ANSWER
161 ENTRY_BEGIN
162 MATCH all
163 REPLY QR RD RA NOERROR
164 SECTION QUESTION
165 www.sub.example.com. IN A
166 SECTION ANSWER
167 www.sub.example.com. IN A 10.0.0.5
168 SECTION AUTHORITY
169 sub.example.com. IN NS ns.sub.example.com.
170 SECTION ADDITIONAL
171 ns.sub.example.com. IN A 1.2.3.44
172 ENTRY_END
173
174 SCENARIO_END
22 ; first entry is a DNSKEY answer, with the DNSKEY rrset used for verification.
33 ; later entries are verified with it.
44
5 ; Test RSASHA512 signatures.
5 ; Test RSASHA512 signatures from draft-ietf-dnsext-dnssec-rsasha256-14
66
7 ; RSA key from ldns tool
87 ENTRY_BEGIN
98 SECTION QUESTION
10 sub.example.com. IN DNSKEY
9 example.net. IN DNSKEY
1110 SECTION ANSWER
12 example.com. 3600 IN DNSKEY 256 3 9 AwEAAazmeO3BNv+xPYuFbQp8JN4XX+iKNuvJgD2QG5jRXI0IP5by+JGSob20OEmbPLqKcXWMRPICTyPBDaBh0tXA66DVlHV8rCtAT5Yqdrz2qw05SNYCGWJulscR6GM0e4gkO1FrBINr385IiMH3sJegBzm2HUbyb2I+xuFIfl7SgMuZ5fahHnhjDwsdgw+19OQlbYDRmNhMvtJemomIiGzPwrxEtKBlcUevcFPX7cPU7lpbcZwVP16xhLbtSNwMHvoCoRpJrAtdDGiSyAzTQef+jWuaUlFCPle6Qkghi51zmpBrPunqRCoYg7LIyJ9zS/KzPKX2zN2ASu9KJD3tDW9OSZM= ;{id = 48886 (zsk), size = 2048b}
13
11 example.net. 3600 IN DNSKEY (256 3 10 AwEAAdHoNTOW+et86KuJOWRD p1pndvwb6Y83nSVXXyLA3DLroROUkN6X0O6pnWnjJQujX/AyhqFD xj13tOnD9u/1kTg7cV6rklMrZDtJCQ5PCl/D7QNPsgVsMu1J2Q8g pMpztNFLpPBz1bWXjDtaR7ZQBlZ3PFY12ZTSncorffcGmhOL);{id = 3740 (zsk), size = 1024b}
1412 ENTRY_END
1513
1614 ; entry to test
1715 ENTRY_BEGIN
1816 SECTION QUESTION
19 www.example.com. IN A
17 www.example.net. IN A
2018 SECTION ANSWER
21 www.example.com. 3600 IN A 192.0.2.66
22 www.example.com. 3600 IN RRSIG A 9 3 3600 20070926134150 20070829134150 48886 example.com. Ys6CGNAxJ+0lG/EoDJqZOoZTlX8Aa1k124VjnSE2A9NTecZUX44TiKtJQtUu7cnUcURuNsqX5rulr/70Vx+ANeUot/ewtY6fX6qaGZVgIaNyyDw0Gu7oiAsjOE0bt5RS4VGvDpLSdxDlPV0Kbbc4fYSTsqiSe2idMokfD2bgPcFrIx2TcX/sF8Jyhn2MGiQsWryMWyvhRTZ1+dwQcPhkeslGFLF/SQpGx5BbW/BYQG026xb6ckL/F/Pu4Jf5sQTimTZXHi9iASeRNO34DM9bS0yDgc+nm3bEg8/pEGCdFuCt6dVv7JTFgnR9fPTbEbBHIi4ORw1oef11G2sRV/Ubvw== ;{id = 48886}
23
19 www.example.net. 3600 IN A 192.0.2.91
20 www.example.net. 3600 IN RRSIG (A 10 3 3600 20300101000000 20000101000000 3740 example.net. tsb4wnjRUDnB1BUi+t 6TMTXThjVnG+eCkWqjvvjhzQL1d0YRoOe0CbxrVDYd0xDtsuJRa eUw1ep94PzEWzr0iGYgZBWm/zpq+9fOuagYJRfDqfReKBzMweOL DiNa8iP5g9vMhpuv6OPlvpXwm9Sa9ZXIbNl1MBGk0fthPgxdDLw =);{id = 3740}
2421 ENTRY_END
2522
0 ; Signature test file
1
2 ; first entry is a DNSKEY answer, with the DNSKEY rrset used for verification.
3 ; later entries are verified with it.
4
5 ; Test RSASHA256 signatures from draft-ietf-dnsext-dnssec-rsasha256-14
6
7 ENTRY_BEGIN
8 SECTION QUESTION
9 example.net. IN DNSKEY
10 SECTION ANSWER
11 example.net. 3600 IN DNSKEY (256 3 8 AwEAAcFcGsaxxdgiuuGmCkVI my4h99CqT7jwY3pexPGcnUFtR2Fh36BponcwtkZ4cAgtvd4Qs8P kxUdp6p/DlUmObdk= );{id = 9033 (zsk), size = 512b}
12 ENTRY_END
13
14 ; entry to test
15 ENTRY_BEGIN
16 SECTION QUESTION
17 www.example.net. IN A
18 SECTION ANSWER
19 www.example.net. 3600 IN A 192.0.2.91
20 www.example.net. 3600 IN RRSIG (A 8 3 3600 20300101000000 20000101000000 9033 example.net. kRCOH6u7l0QGy9qpC9 l1sLncJcOKFLJ7GhiUOibu4teYp5VE9RncriShZNz85mwlMgNEa cFYK/lPtPiVYP4bwg== ;{id = 9033}
21 ENTRY_END
22
154154 cfg->val_sig_skew_min = 3600; /* at least daylight savings trouble */
155155 cfg->val_sig_skew_max = 86400; /* at most timezone settings trouble */
156156 cfg->val_clean_additional = 1;
157 cfg->val_log_level = 0;
157158 cfg->val_permissive_mode = 0;
158159 cfg->key_cache_size = 4 * 1024 * 1024;
159160 cfg->key_cache_slabs = 4;
374375 } else if(strcmp(opt, "val-clean-additional:") == 0) {
375376 IS_YES_OR_NO;
376377 cfg->val_clean_additional = (strcmp(val, "yes") == 0);
378 } else if(strcmp(opt, "val-log-level:") == 0) {
379 IS_NUMBER_OR_ZERO;
380 cfg->val_log_level = atoi(val);
377381 } else if(strcmp(opt, "val-permissive-mode:") == 0) {
378382 IS_YES_OR_NO;
379383 cfg->val_permissive_mode = (strcmp(val, "yes") == 0);
10331037 * IPv6: (h.){32}.ip6.arpa. */
10341038
10351039 if(addr_is_ip6(&addr, addrlen)) {
1036 void* ad = &((struct sockaddr_in6*)&addr)->sin6_addr;
1040 uint8_t ad[16];
10371041 const char* hex = "0123456789abcdef";
10381042 char *p = buf;
10391043 int i;
1044 memmove(ad, &((struct sockaddr_in6*)&addr)->sin6_addr,
1045 sizeof(ad));
10401046 for(i=15; i>=0; i--) {
1041 uint8_t b = ((uint8_t*)ad)[i];
1047 uint8_t b = ad[i];
10421048 *p++ = hex[ (b&0x0f) ];
10431049 *p++ = '.';
10441050 *p++ = hex[ (b&0xf0) >> 4 ];
10461052 }
10471053 snprintf(buf+16*4, sizeof(buf)-16*4, "ip6.arpa. ");
10481054 } else {
1049 struct in_addr* ad = &((struct sockaddr_in*)&addr)->sin_addr;
1055 uint8_t ad[4];
1056 memmove(ad, &((struct sockaddr_in*)&addr)->sin_addr,
1057 sizeof(ad));
10501058 snprintf(buf, sizeof(buf), "%u.%u.%u.%u.in-addr.arpa. ",
1051 (unsigned)((uint8_t*)ad)[3], (unsigned)((uint8_t*)ad)[2],
1052 (unsigned)((uint8_t*)ad)[1], (unsigned)((uint8_t*)ad)[0]);
1059 (unsigned)ad[3], (unsigned)ad[2],
1060 (unsigned)ad[1], (unsigned)ad[0]);
10531061 }
10541062
10551063 /* printed the reverse address, now the between goop and name on end */
212212 int bogus_ttl;
213213 /** should validator clean additional section for secure msgs */
214214 int val_clean_additional;
215 /** log bogus messages by the validator */
216 int val_log_level;
215217 /** should validator allow bogus messages to go through */
216218 int val_permissive_mode;
217219 /** nsec3 maximum iterations per key size, string */
360360 *yy_cp = '\0'; \
361361 (yy_c_buf_p) = yy_cp;
362362
363 #define YY_NUM_RULES 120
364 #define YY_END_OF_BUFFER 121
363 #define YY_NUM_RULES 121
364 #define YY_END_OF_BUFFER 122
365365 /* This struct is not used in this scanner,
366366 but its presence is necessary. */
367367 struct yy_trans_info
369369 flex_int32_t yy_verify;
370370 flex_int32_t yy_nxt;
371371 };
372 static yyconst flex_int16_t yy_accept[1111] =
372 static yyconst flex_int16_t yy_accept[1121] =
373373 { 0,
374 1, 1, 102, 102, 106, 106, 110, 110, 114, 114,
375 1, 1, 121, 118, 1, 100, 100, 119, 118, 118,
376 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
377 118, 118, 118, 118, 118, 118, 118, 118, 119, 102,
378 103, 103, 104, 119, 106, 107, 107, 108, 119, 113,
379 110, 111, 111, 112, 119, 114, 115, 115, 116, 119,
380 117, 101, 117, 105, 117, 119, 118, 0, 1, 0,
381 118, 0, 2, 0, 118, 118, 118, 118, 118, 118,
382 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
383 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
384
385 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
386 118, 102, 0, 106, 0, 113, 0, 110, 114, 0,
387 117, 0, 117, 0, 117, 118, 118, 118, 118, 118,
388 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
389 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
390 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
391 118, 118, 118, 118, 118, 118, 118, 117, 118, 118,
392 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
393 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
394 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
395
396 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
397 118, 118, 118, 118, 118, 118, 118, 118, 117, 118,
398 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
399 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
400 118, 118, 118, 118, 118, 118, 118, 118, 51, 118,
401 118, 118, 118, 118, 6, 118, 118, 118, 118, 118,
402 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
403 118, 118, 118, 118, 118, 118, 118, 117, 118, 118,
404 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
405 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
406
407 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
408 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
409 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
410 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
411 117, 118, 118, 20, 118, 118, 118, 118, 12, 13,
412 118, 15, 14, 118, 118, 118, 118, 118, 118, 118,
413 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
414 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
415 118, 118, 98, 118, 118, 118, 118, 3, 118, 118,
416 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
417
418 118, 118, 118, 118, 118, 118, 118, 118, 117, 118,
419 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
420 118, 118, 118, 118, 118, 118, 118, 118, 109, 118,
421 118, 118, 118, 118, 118, 118, 118, 118, 118, 23,
422 118, 118, 118, 118, 118, 118, 118, 24, 118, 118,
423 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
424 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
425 118, 118, 118, 118, 64, 109, 118, 118, 118, 118,
426 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
427 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
428
429 63, 118, 118, 118, 118, 118, 118, 118, 118, 118,
430 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
431 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
432 118, 118, 118, 118, 118, 118, 118, 21, 118, 118,
433 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
434 118, 118, 118, 22, 118, 118, 118, 118, 118, 118,
435 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
436 118, 118, 118, 118, 17, 118, 118, 118, 118, 118,
437 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
438 118, 118, 118, 118, 118, 118, 118, 118, 118, 52,
439
440 53, 118, 50, 118, 118, 118, 118, 118, 118, 118,
441 118, 118, 118, 118, 118, 5, 118, 118, 118, 118,
442 118, 118, 118, 118, 118, 66, 118, 118, 118, 118,
443 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
444 118, 118, 118, 118, 118, 118, 118, 118, 84, 83,
445 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
446 118, 118, 118, 118, 118, 25, 118, 118, 118, 118,
447 54, 118, 118, 118, 118, 118, 81, 118, 118, 118,
448 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
449 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
450
451 43, 118, 118, 118, 118, 118, 118, 118, 118, 118,
452 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
453 118, 118, 4, 118, 118, 118, 118, 118, 118, 118,
454 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
455 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
456 118, 118, 118, 118, 92, 118, 16, 118, 118, 118,
457 56, 57, 55, 118, 118, 118, 118, 118, 62, 118,
458 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
459 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
460 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
461
462 118, 118, 70, 118, 118, 118, 118, 118, 118, 118,
463 118, 118, 118, 31, 32, 118, 118, 118, 118, 118,
464 118, 118, 118, 118, 118, 118, 118, 118, 61, 118,
465 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
466 118, 65, 118, 118, 118, 118, 118, 118, 118, 118,
467 118, 118, 118, 97, 118, 118, 118, 118, 118, 118,
468 118, 118, 118, 118, 118, 118, 74, 118, 118, 118,
469 118, 118, 60, 118, 90, 118, 118, 118, 118, 118,
470 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
471 33, 34, 118, 39, 77, 118, 85, 82, 118, 27,
472
473 118, 79, 118, 118, 118, 118, 118, 7, 118, 49,
474 89, 118, 118, 118, 118, 118, 118, 118, 118, 118,
475 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
476 118, 67, 118, 118, 99, 118, 118, 118, 118, 118,
477 118, 118, 118, 118, 118, 78, 26, 28, 118, 118,
478 118, 118, 118, 48, 118, 118, 118, 93, 118, 118,
479 118, 118, 118, 118, 46, 118, 118, 118, 118, 118,
480 118, 118, 118, 95, 118, 118, 118, 118, 118, 118,
481 118, 11, 118, 118, 118, 118, 118, 118, 10, 118,
482 118, 29, 118, 94, 118, 118, 118, 118, 118, 118,
483
484 118, 118, 118, 118, 73, 72, 96, 91, 118, 118,
485 118, 118, 118, 118, 118, 118, 118, 35, 118, 118,
486 118, 118, 118, 30, 118, 118, 118, 68, 69, 118,
487 118, 118, 71, 118, 118, 118, 118, 118, 118, 118,
488 118, 118, 118, 118, 118, 18, 118, 118, 118, 118,
489 118, 118, 118, 118, 118, 118, 118, 88, 118, 118,
490 118, 118, 118, 118, 19, 118, 9, 118, 118, 86,
491 40, 118, 118, 118, 76, 58, 118, 118, 42, 45,
492 41, 118, 36, 118, 8, 118, 118, 75, 118, 118,
493 118, 37, 118, 87, 118, 118, 59, 44, 38, 118,
494
495 118, 118, 118, 47, 118, 118, 118, 118, 80, 0
374 1, 1, 103, 103, 107, 107, 111, 111, 115, 115,
375 1, 1, 122, 119, 1, 101, 101, 120, 119, 119,
376 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
377 119, 119, 119, 119, 119, 119, 119, 119, 120, 103,
378 104, 104, 105, 120, 107, 108, 108, 109, 120, 114,
379 111, 112, 112, 113, 120, 115, 116, 116, 117, 120,
380 118, 102, 118, 106, 118, 120, 119, 0, 1, 0,
381 119, 0, 2, 0, 119, 119, 119, 119, 119, 119,
382 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
383 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
384
385 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
386 119, 103, 0, 107, 0, 114, 0, 111, 115, 0,
387 118, 0, 118, 0, 118, 119, 119, 119, 119, 119,
388 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
389 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
390 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
391 119, 119, 119, 119, 119, 119, 119, 118, 119, 119,
392 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
393 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
394 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
395
396 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
397 119, 119, 119, 119, 119, 119, 119, 119, 118, 119,
398 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
399 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
400 119, 119, 119, 119, 119, 119, 119, 119, 51, 119,
401 119, 119, 119, 119, 6, 119, 119, 119, 119, 119,
402 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
403 119, 119, 119, 119, 119, 119, 119, 119, 118, 119,
404 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
405 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
406
407 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
408 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
409 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
410 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
411 119, 119, 118, 119, 119, 20, 119, 119, 119, 119,
412 12, 13, 119, 15, 14, 119, 119, 119, 119, 119,
413 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
414 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
415 119, 119, 119, 119, 99, 119, 119, 119, 119, 3,
416 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
417
418 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
419 119, 118, 119, 119, 119, 119, 119, 119, 119, 119,
420 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
421 119, 110, 119, 119, 119, 119, 119, 119, 119, 119,
422 119, 119, 23, 119, 119, 119, 119, 119, 119, 119,
423 24, 119, 119, 119, 119, 119, 119, 119, 119, 119,
424 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
425 119, 119, 119, 119, 119, 119, 119, 119, 64, 110,
426 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
427 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
428
429 119, 119, 119, 119, 63, 119, 119, 119, 119, 119,
430 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
431 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
432 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
433 119, 21, 119, 119, 119, 119, 119, 119, 119, 119,
434 119, 119, 119, 119, 119, 119, 119, 119, 22, 119,
435 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
436 119, 119, 119, 119, 119, 119, 119, 119, 119, 17,
437 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
438 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
439
440 119, 119, 119, 119, 52, 53, 119, 50, 119, 119,
441 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
442 119, 5, 119, 119, 119, 119, 119, 119, 119, 119,
443 119, 66, 119, 119, 119, 119, 119, 119, 119, 119,
444 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
445 119, 119, 119, 119, 85, 84, 119, 119, 119, 119,
446 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
447 119, 25, 119, 119, 119, 119, 54, 119, 119, 119,
448 119, 119, 82, 119, 119, 119, 119, 119, 119, 119,
449 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
450
451 119, 119, 119, 119, 119, 119, 119, 43, 119, 119,
452 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
453 119, 119, 119, 119, 119, 119, 119, 119, 119, 4,
454 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
455 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
456 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
457 119, 119, 93, 119, 16, 119, 119, 119, 56, 57,
458 55, 119, 119, 119, 119, 119, 62, 119, 119, 119,
459 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
460 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
461
462 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
463 70, 119, 119, 119, 119, 119, 119, 119, 119, 119,
464 119, 119, 31, 32, 119, 119, 119, 119, 119, 119,
465 119, 119, 119, 119, 119, 119, 119, 61, 119, 119,
466 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
467 65, 119, 119, 119, 119, 119, 119, 119, 119, 119,
468 119, 119, 98, 119, 119, 119, 119, 119, 119, 119,
469 119, 119, 119, 119, 119, 74, 119, 77, 119, 119,
470 119, 119, 60, 119, 91, 119, 119, 119, 119, 119,
471 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
472
473 33, 34, 119, 39, 78, 119, 86, 83, 119, 27,
474 119, 80, 119, 119, 119, 119, 119, 7, 119, 49,
475 90, 119, 119, 119, 119, 119, 119, 119, 119, 119,
476 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
477 119, 67, 119, 119, 100, 119, 119, 119, 119, 119,
478 119, 119, 119, 119, 119, 79, 26, 28, 119, 119,
479 119, 119, 119, 48, 119, 119, 119, 94, 119, 119,
480 119, 119, 119, 119, 46, 119, 119, 119, 119, 119,
481 119, 119, 119, 96, 119, 119, 119, 119, 119, 119,
482 119, 11, 119, 119, 119, 119, 119, 119, 10, 119,
483
484 119, 29, 119, 95, 119, 119, 119, 119, 119, 119,
485 119, 119, 119, 119, 73, 72, 97, 92, 119, 119,
486 119, 119, 119, 119, 119, 119, 119, 35, 119, 119,
487 119, 119, 119, 30, 119, 119, 119, 68, 69, 119,
488 119, 119, 71, 119, 119, 119, 119, 119, 119, 119,
489 119, 119, 119, 119, 119, 18, 119, 119, 119, 119,
490 119, 119, 119, 119, 119, 119, 119, 89, 119, 119,
491 119, 119, 119, 119, 19, 119, 9, 119, 119, 87,
492 40, 119, 119, 119, 76, 58, 119, 119, 42, 45,
493 41, 119, 36, 119, 8, 119, 119, 75, 119, 119,
494
495 119, 37, 119, 88, 119, 119, 59, 44, 38, 119,
496 119, 119, 119, 47, 119, 119, 119, 119, 81, 0
496497 } ;
497498
498499 static yyconst flex_int32_t yy_ec[256] =
538539 1, 1, 1, 1, 1
539540 } ;
540541
541 static yyconst flex_int16_t yy_base[1125] =
542 static yyconst flex_int16_t yy_base[1135] =
542543 { 0,
543544 0, 0, 63, 66, 69, 71, 77, 83, 88, 91,
544 129, 135, 442, 402, 95, 3209, 3209, 3209, 116, 109,
545 129, 135, 442, 402, 95, 3229, 3229, 3229, 116, 109,
545546 132, 122, 90, 50, 141, 149, 130, 143, 139, 164,
546547 177, 125, 193, 209, 196, 185, 180, 232, 257, 379,
547 3209, 3209, 3209, 94, 370, 3209, 3209, 3209, 96, 362,
548 388, 3209, 3209, 3209, 107, 300, 3209, 3209, 3209, 102,
549 279, 3209, 275, 3209, 205, 263, 217, 279, 111, 249,
550 285, 240, 3209, 206, 212, 259, 255, 267, 265, 173,
548 3229, 3229, 3229, 94, 370, 3229, 3229, 3229, 96, 362,
549 388, 3229, 3229, 3229, 107, 300, 3229, 3229, 3229, 102,
550 279, 3229, 275, 3229, 205, 263, 217, 279, 111, 249,
551 285, 240, 3229, 206, 212, 259, 255, 267, 265, 173,
551552 221, 264, 269, 270, 286, 293, 301, 276, 274, 302,
552553 312, 311, 306, 317, 310, 315, 326, 322, 332, 327,
553554
564565
565566 638, 646, 649, 636, 660, 662, 661, 664, 663, 674,
566567 666, 665, 670, 656, 686, 726, 679, 695, 682, 691,
567 699, 696, 690, 719, 706, 730, 750, 724, 709, 738,
568 746, 755, 743, 749, 769, 765, 771, 770, 723, 777,
569 753, 788, 768, 784, 782, 795, 786, 798, 3209, 802,
570 787, 804, 810, 805, 3209, 813, 809, 836, 816, 832,
571 820, 826, 848, 834, 852, 835, 865, 842, 869, 858,
572 859, 861, 868, 872, 878, 883, 888, 885, 882, 893,
573 908, 899, 898, 915, 909, 919, 921, 927, 924, 928,
574 931, 929, 933, 935, 939, 936, 912, 942, 930, 964,
575
576 951, 954, 950, 961, 962, 968, 986, 977, 981, 982,
577 988, 978, 992, 1002, 1011, 990, 1001, 1009, 995, 1030,
578 1004, 1017, 1012, 1014, 1020, 1041, 1039, 1038, 1044, 1034,
579 1033, 1043, 1046, 1058, 1059, 1067, 1057, 1071, 1065, 1068,
580 1076, 1084, 1088, 3209, 1092, 1086, 1085, 1091, 3209, 3209,
581 1083, 3209, 3209, 1098, 1113, 1125, 1149, 1118, 1110, 1105,
582 1122, 1131, 1135, 1124, 1142, 1144, 1152, 1146, 1158, 1133,
583 1173, 1164, 1174, 1176, 1179, 1181, 1166, 1185, 1191, 1192,
584 1200, 1183, 3209, 1194, 1193, 1212, 1219, 3209, 1206, 1224,
585 1204, 1217, 1218, 1229, 1227, 1240, 1233, 1239, 1236, 1238,
586
587 1250, 1246, 1249, 1251, 1259, 1265, 1260, 1281, 1282, 1268,
588 1264, 1270, 1313, 1275, 1278, 1276, 1285, 1287, 1298, 1331,
589 1307, 1292, 1325, 1333, 1315, 1327, 1317, 1335, 3209, 1334,
590 1343, 1328, 1351, 1362, 1360, 1366, 1352, 1361, 1380, 3209,
591 1368, 1376, 1377, 1385, 1388, 1391, 1384, 3209, 1412, 1398,
592 1399, 1400, 1402, 1417, 1418, 1403, 1419, 1411, 1408, 1429,
593 1446, 1433, 1441, 1457, 1458, 1440, 1442, 1443, 1445, 266,
594 1447, 1466, 1461, 1456, 3209, 76, 1463, 1470, 1491, 1471,
595 1482, 1485, 1489, 1486, 1495, 1487, 1497, 1510, 1492, 1498,
596 1516, 1512, 1514, 1521, 1509, 1528, 1525, 1534, 1533, 1536,
597
598 3209, 1537, 1542, 1539, 1557, 1574, 1552, 1572, 1570, 1576,
599 1582, 1561, 1567, 1586, 1591, 1588, 1592, 1608, 1600, 1601,
600 1587, 1607, 1606, 1603, 1618, 1612, 1623, 1629, 1640, 1641,
601 1647, 1634, 1649, 1650, 1644, 1652, 1653, 3209, 1645, 1663,
602 1669, 1661, 1656, 1667, 1666, 1671, 1672, 1680, 1668, 1702,
603 1681, 1679, 1693, 3209, 1714, 1689, 1694, 1717, 1705, 1719,
604 1690, 1710, 1707, 1728, 1736, 1730, 1727, 1731, 1732, 1744,
605 1751, 1752, 1768, 1760, 3209, 1764, 1754, 1780, 1766, 1758,
606 1776, 1772, 1767, 1770, 1771, 1783, 1787, 1784, 1791, 1807,
607 1811, 1799, 1810, 1800, 1821, 1817, 1803, 1828, 1829, 3209,
608
609 3209, 1831, 3209, 1833, 1825, 1816, 1846, 1830, 1853, 1834,
610 1858, 1855, 1860, 1843, 1869, 3209, 1857, 1856, 1868, 1870,
611 1877, 1887, 1873, 1878, 1893, 3209, 1889, 1882, 1905, 1909,
612 1895, 1891, 1918, 1919, 1912, 1922, 1915, 1921, 1932, 1916,
613 1931, 1935, 1936, 1945, 1926, 1940, 1957, 1948, 3209, 3209,
614 1958, 1967, 1951, 1968, 1972, 1990, 1973, 1978, 1974, 1984,
615 1992, 1991, 1988, 1994, 1995, 3209, 2016, 2024, 2017, 2025,
616 3209, 2018, 2012, 2008, 2015, 2014, 3209, 2029, 2042, 2033,
617 2043, 2053, 2040, 2051, 2052, 2056, 2075, 2060, 2059, 2076,
618 2047, 2079, 2081, 2089, 2071, 2074, 2084, 2096, 2097, 2102,
619
620 3209, 2104, 2095, 2111, 2085, 2114, 2121, 2106, 2107, 2108,
621 2116, 2123, 2130, 2138, 2122, 2137, 2151, 2150, 2134, 2152,
622 2141, 2154, 3209, 2157, 2155, 2168, 2165, 2169, 2166, 2171,
623 2185, 2184, 2198, 2181, 2186, 2192, 2209, 2214, 2213, 2208,
624 2225, 2210, 2212, 2199, 2227, 2223, 2232, 2217, 2238, 2242,
625 2240, 2243, 2247, 2249, 3209, 2250, 3209, 2254, 2260, 2252,
626 3209, 3209, 3209, 2236, 2267, 2263, 2269, 2268, 3209, 2272,
627 2282, 2276, 2274, 2288, 2290, 2289, 2287, 2301, 2310, 2303,
628 2299, 2318, 2296, 2315, 2323, 2327, 2331, 2326, 2335, 2342,
629 2338, 2337, 2346, 2340, 2339, 2363, 2352, 2362, 2364, 2365,
630
631 2341, 2370, 3209, 2380, 2368, 2387, 2381, 2389, 2390, 2401,
632 2395, 2397, 2394, 3209, 3209, 2402, 2406, 2414, 2407, 2413,
633 2422, 2416, 2425, 2420, 2429, 2423, 2442, 2434, 3209, 2432,
634 2438, 2447, 2462, 2464, 2467, 2457, 2468, 2472, 2458, 2473,
635 2476, 3209, 2474, 2480, 2469, 2483, 2475, 2486, 2495, 2507,
636 2505, 2490, 2511, 3209, 2512, 2500, 2513, 2504, 2519, 2521,
637 2525, 2518, 2520, 2528, 2522, 2540, 3209, 2534, 2549, 2561,
638 2532, 2564, 3209, 2551, 3209, 2567, 2569, 2566, 2568, 2576,
639 2575, 2557, 2560, 2578, 2586, 2592, 2593, 2603, 2604, 2613,
640 3209, 3209, 2610, 3209, 3209, 2614, 3209, 3209, 2616, 3209,
641
642 2617, 3209, 2622, 2620, 2607, 2602, 2627, 3209, 2626, 3209,
643 3209, 2628, 2643, 2641, 2652, 2644, 2639, 2649, 2650, 2651,
644 2638, 2664, 2660, 2648, 2666, 2654, 2668, 2683, 2675, 2677,
645 2698, 3209, 2681, 2702, 3209, 2691, 2687, 2688, 2695, 2693,
646 2716, 2721, 2708, 2709, 2714, 3209, 3209, 3209, 2717, 2739,
647 2731, 2725, 2727, 3209, 2746, 2730, 2747, 3209, 2750, 2738,
648 2744, 2754, 2757, 2748, 3209, 2755, 2758, 2774, 2773, 2768,
649 2791, 2792, 2793, 3209, 2789, 2784, 2795, 2790, 2800, 2801,
650 2803, 3209, 2786, 2814, 2804, 2815, 2826, 2830, 3209, 2828,
651 2825, 3209, 2840, 3209, 2823, 2844, 2846, 2847, 2848, 2836,
652
653 2842, 2850, 2858, 2855, 3209, 3209, 3209, 3209, 2860, 2870,
654 2861, 2868, 2885, 2869, 2865, 2892, 2873, 3209, 2895, 2876,
655 2899, 2900, 2905, 3209, 2906, 2896, 2909, 3209, 3209, 2897,
656 2912, 2921, 3209, 2932, 2919, 2928, 2944, 2929, 2931, 2939,
657 2946, 2926, 2935, 2949, 2955, 3209, 2963, 2948, 2958, 2967,
658 2969, 2964, 2972, 2966, 2988, 2989, 2973, 3209, 2993, 2997,
659 3001, 3002, 2999, 3003, 3209, 3005, 3209, 3008, 3007, 3209,
660 3209, 3009, 3014, 3013, 3209, 3209, 3022, 3019, 3209, 3209,
661 3209, 3021, 3209, 3033, 3209, 3027, 3028, 3209, 3020, 3051,
662 3052, 3209, 3053, 3209, 3044, 3057, 3209, 3209, 3209, 3055,
663
664 3041, 3062, 3054, 3209, 3060, 3077, 3047, 3067, 3209, 3209,
665 3130, 3136, 3142, 3148, 3154, 82, 3160, 3166, 3172, 3178,
666 3184, 3190, 3196, 3202
568 699, 696, 690, 719, 706, 730, 750, 724, 709, 743,
569 746, 754, 756, 749, 766, 755, 776, 769, 723, 773,
570 784, 791, 798, 786, 785, 794, 783, 807, 3229, 813,
571 796, 801, 811, 815, 3229, 810, 818, 824, 825, 843,
572 828, 831, 860, 842, 867, 844, 847, 840, 852, 851,
573 869, 870, 863, 878, 879, 874, 888, 887, 894, 908,
574 903, 734, 905, 904, 915, 909, 920, 923, 928, 926,
575 933, 932, 934, 936, 941, 944, 946, 937, 947, 942,
576
577 969, 961, 958, 967, 976, 973, 960, 994, 985, 979,
578 990, 996, 987, 984, 1010, 1011, 1026, 1014, 1018, 1021,
579 1034, 1013, 1031, 1004, 1029, 1037, 1040, 1038, 1045, 1050,
580 1041, 1044, 1046, 1062, 1065, 1068, 1073, 1076, 1067, 1080,
581 1074, 1077, 1088, 1095, 1108, 3229, 1084, 1101, 1105, 1106,
582 3229, 3229, 1099, 3229, 3229, 1114, 1120, 1103, 1148, 1122,
583 1111, 1112, 1131, 1135, 1144, 1138, 1156, 1158, 1143, 1151,
584 1172, 1162, 1169, 1168, 1178, 1170, 1183, 1184, 1180, 1197,
585 1199, 1209, 1216, 1194, 3229, 1211, 1201, 1219, 1224, 3229,
586 1221, 1218, 1204, 1225, 1239, 1231, 1241, 1236, 1240, 1246,
587
588 1247, 1251, 1248, 1271, 1243, 1257, 1258, 1264, 1283, 1261,
589 1289, 1290, 1278, 1270, 1286, 1325, 1287, 1280, 1288, 1297,
590 1292, 1305, 1339, 1317, 1299, 1322, 1332, 1327, 1329, 1350,
591 1346, 3229, 1352, 1348, 1353, 1358, 1355, 1367, 1378, 1361,
592 1370, 1390, 3229, 1374, 1386, 1388, 1395, 1397, 1401, 1394,
593 3229, 1403, 1409, 1399, 1405, 1416, 1418, 1430, 1434, 1420,
594 1422, 1427, 1439, 1443, 1450, 1445, 1455, 1459, 1458, 1460,
595 1449, 1464, 1462, 266, 1461, 1454, 1465, 1469, 3229, 76,
596 1483, 1502, 1503, 1488, 1490, 1495, 1507, 1498, 1508, 1496,
597 1510, 1511, 1499, 1523, 1524, 1517, 1533, 1530, 1506, 1529,
598
599 1546, 1538, 1541, 1554, 3229, 1544, 1556, 1550, 1557, 1582,
600 1559, 1571, 1565, 1589, 1586, 1581, 1578, 1604, 1605, 1597,
601 1599, 1601, 1607, 1591, 1609, 1598, 1616, 1632, 1623, 1620,
602 1629, 1649, 1651, 1647, 1653, 1637, 1650, 1655, 1643, 1659,
603 1656, 3229, 1670, 1673, 1666, 1677, 1672, 1675, 1678, 1691,
604 1676, 1686, 1687, 1683, 1708, 1692, 1690, 1693, 3229, 1726,
605 1698, 1713, 1722, 1710, 1725, 1728, 1718, 1741, 1738, 1737,
606 1745, 1748, 1752, 1754, 1746, 1757, 1780, 1782, 1784, 3229,
607 1778, 1771, 1786, 1791, 1773, 1789, 1801, 1787, 1796, 1802,
608 1805, 1811, 1799, 1812, 1803, 1830, 1822, 1828, 1816, 1840,
609
610 1839, 1826, 1845, 1849, 3229, 3229, 1850, 3229, 1853, 1843,
611 1854, 1855, 1859, 1865, 1848, 1877, 1862, 1880, 1886, 1869,
612 1889, 3229, 1875, 1883, 1892, 1902, 1896, 1904, 1873, 1906,
613 1908, 3229, 1919, 1907, 1925, 1936, 1920, 1923, 1935, 1939,
614 1927, 1951, 1930, 1941, 1949, 1931, 1947, 1946, 1957, 1959,
615 1964, 1965, 1981, 1973, 3229, 3229, 1991, 1986, 1978, 2002,
616 1992, 2003, 1982, 2005, 2010, 2008, 2013, 2015, 2030, 2018,
617 2021, 3229, 2019, 2040, 2037, 2046, 3229, 2036, 2029, 2032,
618 2052, 2054, 3229, 2042, 2061, 2070, 2078, 2079, 2071, 2063,
619 2076, 2073, 2081, 2098, 2089, 2069, 2103, 2077, 2106, 2117,
620
621 2123, 2100, 2102, 2124, 2126, 2131, 2129, 3229, 2127, 2116,
622 2139, 2112, 2138, 2144, 2133, 2135, 2143, 2148, 2146, 2150,
623 2156, 2158, 2160, 2173, 2172, 2162, 2185, 2165, 2177, 3229,
624 2192, 2202, 2189, 2194, 2205, 2208, 2203, 2199, 2206, 2216,
625 2218, 2213, 2224, 2215, 2257, 2235, 2236, 2243, 2244, 2242,
626 2247, 2233, 2251, 2245, 2268, 2254, 2255, 2276, 2271, 2274,
627 2281, 2280, 3229, 2278, 3229, 2298, 2270, 2282, 3229, 3229,
628 3229, 2284, 2275, 2295, 2311, 2300, 3229, 2301, 2319, 2303,
629 2317, 2322, 2323, 2316, 2312, 2328, 2339, 2318, 2343, 2342,
630 2327, 2359, 2355, 2360, 2362, 2354, 2351, 2377, 2369, 2356,
631
632 2376, 2385, 2381, 2388, 2386, 2394, 2392, 2387, 2402, 2403,
633 3229, 2404, 2398, 2417, 2411, 2419, 2416, 2420, 2431, 2436,
634 2427, 2442, 3229, 3229, 2443, 2448, 2450, 2437, 2454, 2453,
635 2445, 2456, 2446, 2455, 2464, 2477, 2469, 3229, 2468, 2480,
636 2481, 2496, 2499, 2500, 2492, 2502, 2503, 2487, 2509, 2510,
637 3229, 2508, 2511, 2512, 2515, 2507, 2516, 2538, 2543, 2518,
638 2527, 2528, 3229, 2547, 2524, 2552, 2536, 2551, 2539, 2557,
639 2549, 2558, 2563, 2561, 2565, 3229, 2573, 3229, 2586, 2580,
640 2601, 2597, 3229, 2590, 3229, 2600, 2577, 2605, 2607, 2609,
641 2610, 2594, 2596, 2613, 2619, 2620, 2615, 2630, 2636, 2646,
642
643 3229, 3229, 2649, 3229, 3229, 2651, 3229, 3229, 2652, 3229,
644 2654, 3229, 2653, 2655, 2643, 2638, 2661, 3229, 2664, 3229,
645 3229, 2662, 2670, 2663, 2669, 2673, 2674, 2686, 2690, 2691,
646 2684, 2705, 2697, 2681, 2689, 2701, 2696, 2708, 2710, 2716,
647 2726, 3229, 2727, 2737, 3229, 2730, 2728, 2732, 2724, 2725,
648 2756, 2731, 2747, 2741, 2743, 3229, 3229, 3229, 2749, 2758,
649 2775, 2764, 2766, 3229, 2778, 2767, 2780, 3229, 2781, 2770,
650 2789, 2790, 2794, 2793, 3229, 2785, 2805, 2809, 2788, 2804,
651 2818, 2823, 2824, 3229, 2828, 2817, 2831, 2826, 2830, 2837,
652 2840, 3229, 2827, 2844, 2842, 2843, 2851, 2867, 3229, 2865,
653
654 2855, 3229, 2848, 3229, 2857, 2879, 2878, 2883, 2885, 2869,
655 2875, 2892, 2891, 2893, 3229, 3229, 3229, 3229, 2884, 2890,
656 2894, 2899, 2895, 2908, 2905, 2914, 2909, 3229, 2930, 2916,
657 2937, 2935, 2936, 3229, 2938, 2932, 2921, 3229, 3229, 2948,
658 2950, 2940, 3229, 2963, 2960, 2954, 2970, 2966, 2964, 2976,
659 2980, 2962, 2967, 2992, 2993, 3229, 2999, 2981, 2978, 3002,
660 3004, 2995, 3005, 2996, 3018, 3021, 3011, 3229, 3019, 3033,
661 3034, 3035, 3031, 3037, 3229, 3038, 3229, 3040, 3042, 3229,
662 3229, 3041, 3050, 3048, 3229, 3229, 3032, 3051, 3229, 3229,
663 3229, 3054, 3229, 3066, 3229, 3056, 3057, 3229, 3067, 3071,
664
665 3073, 3229, 3086, 3229, 3075, 3088, 3229, 3229, 3229, 3091,
666 3076, 3090, 3083, 3229, 3093, 3097, 3082, 3104, 3229, 3229,
667 3150, 3156, 3162, 3168, 3174, 82, 3180, 3186, 3192, 3198,
668 3204, 3210, 3216, 3222
667669 } ;
668670
669 static yyconst flex_int16_t yy_def[1125] =
671 static yyconst flex_int16_t yy_def[1135] =
670672 { 0,
671 1110, 1, 1111, 1111, 1112, 1112, 1113, 1113, 1114, 1114,
672 1115, 1115, 1110, 1116, 1110, 1110, 1110, 1110, 1117, 1116,
673 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
674 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1118,
675 1110, 1110, 1110, 1118, 1119, 1110, 1110, 1110, 1119, 1120,
676 1110, 1110, 1110, 1110, 1120, 1121, 1110, 1110, 1110, 1121,
677 1122, 1110, 1123, 1110, 1122, 1122, 1116, 1116, 1110, 1124,
678 1117, 1124, 1110, 1117, 1116, 1116, 1116, 1116, 1116, 1116,
679 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
680 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
681
682 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
683 1116, 1118, 1118, 1119, 1119, 1120, 1120, 1110, 1121, 1121,
684 1122, 1122, 1123, 1123, 1122, 1116, 1116, 1116, 1116, 1116,
685 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
686 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
687 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
688 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1122, 1116, 1116,
689 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
690 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
691 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
692
693 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
694 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1122, 1116,
695 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
696 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
697 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1110, 1116,
698 1116, 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1116,
699 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
700 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1122, 1116, 1116,
701 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
702 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
703
704 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
705 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
706 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
707 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
708 1122, 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1110, 1110,
709 1116, 1110, 1110, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
710 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
711 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
712 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1110, 1116, 1116,
713 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
714
715 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1122, 1116,
716 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
717 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1110, 1116,
718 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1110,
719 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1116,
720 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
721 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
722 1116, 1116, 1116, 1116, 1110, 1122, 1116, 1116, 1116, 1116,
723 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
724 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
725
726 1110, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
727 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
728 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
729 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1116,
730 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
731 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1116,
732 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
733 1116, 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1116,
734 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
735 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1110,
736
737 1110, 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
738 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116,
739 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116,
740 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
741 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1110, 1110,
742 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
743 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116,
744 1110, 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1116, 1116,
745 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
746 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
747
748 1110, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
749 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
750 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
751 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
752 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
753 1116, 1116, 1116, 1116, 1110, 1116, 1110, 1116, 1116, 1116,
754 1110, 1110, 1110, 1116, 1116, 1116, 1116, 1116, 1110, 1116,
755 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
756 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
757 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
758
759 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
760 1116, 1116, 1116, 1110, 1110, 1116, 1116, 1116, 1116, 1116,
761 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1110, 1116,
762 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
763 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
764 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1116,
765 1116, 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1116, 1116,
766 1116, 1116, 1110, 1116, 1110, 1116, 1116, 1116, 1116, 1116,
767 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
768 1110, 1110, 1116, 1110, 1110, 1116, 1110, 1110, 1116, 1110,
769
770 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1110,
771 1110, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
772 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
773 1116, 1110, 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1116,
774 1116, 1116, 1116, 1116, 1116, 1110, 1110, 1110, 1116, 1116,
775 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1110, 1116, 1116,
776 1116, 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1116,
777 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1116,
778 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1116, 1110, 1116,
779 1116, 1110, 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1116,
780
781 1116, 1116, 1116, 1116, 1110, 1110, 1110, 1110, 1116, 1116,
782 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1116,
783 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1110, 1110, 1116,
784 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
785 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116,
786 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1110, 1116, 1116,
787 1116, 1116, 1116, 1116, 1110, 1116, 1110, 1116, 1116, 1110,
788 1110, 1116, 1116, 1116, 1110, 1110, 1116, 1116, 1110, 1110,
789 1110, 1116, 1110, 1116, 1110, 1116, 1116, 1110, 1116, 1116,
790 1116, 1110, 1116, 1110, 1116, 1116, 1110, 1110, 1110, 1116,
791
792 1116, 1116, 1116, 1110, 1116, 1116, 1116, 1116, 1110, 0,
793 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
794 1110, 1110, 1110, 1110
673 1120, 1, 1121, 1121, 1122, 1122, 1123, 1123, 1124, 1124,
674 1125, 1125, 1120, 1126, 1120, 1120, 1120, 1120, 1127, 1126,
675 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
676 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1128,
677 1120, 1120, 1120, 1128, 1129, 1120, 1120, 1120, 1129, 1130,
678 1120, 1120, 1120, 1120, 1130, 1131, 1120, 1120, 1120, 1131,
679 1132, 1120, 1133, 1120, 1132, 1132, 1126, 1126, 1120, 1134,
680 1127, 1134, 1120, 1127, 1126, 1126, 1126, 1126, 1126, 1126,
681 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
682 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
683
684 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
685 1126, 1128, 1128, 1129, 1129, 1130, 1130, 1120, 1131, 1131,
686 1132, 1132, 1133, 1133, 1132, 1126, 1126, 1126, 1126, 1126,
687 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
688 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
689 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
690 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1132, 1126, 1126,
691 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
692 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
693 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
694
695 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
696 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1132, 1126,
697 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
698 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
699 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1120, 1126,
700 1126, 1126, 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1126,
701 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
702 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1132, 1126,
703 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
704 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
705
706 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
707 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
708 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
709 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
710 1126, 1126, 1132, 1126, 1126, 1120, 1126, 1126, 1126, 1126,
711 1120, 1120, 1126, 1120, 1120, 1126, 1126, 1126, 1126, 1126,
712 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
713 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
714 1126, 1126, 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1120,
715 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
716
717 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
718 1126, 1132, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
719 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
720 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
721 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
722 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
723 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
724 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1120, 1132,
725 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
726 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
727
728 1126, 1126, 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1126,
729 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
730 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
731 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
732 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
733 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1120, 1126,
734 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
735 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1120,
736 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
737 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
738
739 1126, 1126, 1126, 1126, 1120, 1120, 1126, 1120, 1126, 1126,
740 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
741 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
742 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
743 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
744 1126, 1126, 1126, 1126, 1120, 1120, 1126, 1126, 1126, 1126,
745 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
746 1126, 1120, 1126, 1126, 1126, 1126, 1120, 1126, 1126, 1126,
747 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
748 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
749
750 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1120, 1126, 1126,
751 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
752 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1120,
753 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
754 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
755 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
756 1126, 1126, 1120, 1126, 1120, 1126, 1126, 1126, 1120, 1120,
757 1120, 1126, 1126, 1126, 1126, 1126, 1120, 1126, 1126, 1126,
758 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
759 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
760
761 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
762 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
763 1126, 1126, 1120, 1120, 1126, 1126, 1126, 1126, 1126, 1126,
764 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1120, 1126, 1126,
765 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
766 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
767 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
768 1126, 1126, 1126, 1126, 1126, 1120, 1126, 1120, 1126, 1126,
769 1126, 1126, 1120, 1126, 1120, 1126, 1126, 1126, 1126, 1126,
770 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
771
772 1120, 1120, 1126, 1120, 1120, 1126, 1120, 1120, 1126, 1120,
773 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1120, 1126, 1120,
774 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
775 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
776 1126, 1120, 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1126,
777 1126, 1126, 1126, 1126, 1126, 1120, 1120, 1120, 1126, 1126,
778 1126, 1126, 1126, 1120, 1126, 1126, 1126, 1120, 1126, 1126,
779 1126, 1126, 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1126,
780 1126, 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126,
781 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1120, 1126,
782
783 1126, 1120, 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126,
784 1126, 1126, 1126, 1126, 1120, 1120, 1120, 1120, 1126, 1126,
785 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1120, 1126, 1126,
786 1126, 1126, 1126, 1120, 1126, 1126, 1126, 1120, 1120, 1126,
787 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
788 1126, 1126, 1126, 1126, 1126, 1120, 1126, 1126, 1126, 1126,
789 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1120, 1126, 1126,
790 1126, 1126, 1126, 1126, 1120, 1126, 1120, 1126, 1126, 1120,
791 1120, 1126, 1126, 1126, 1120, 1120, 1126, 1126, 1120, 1120,
792 1120, 1126, 1120, 1126, 1120, 1126, 1126, 1120, 1126, 1126,
793
794 1126, 1120, 1126, 1120, 1126, 1126, 1120, 1120, 1120, 1126,
795 1126, 1126, 1126, 1120, 1126, 1126, 1126, 1126, 1120, 0,
796 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
797 1120, 1120, 1120, 1120
795798 } ;
796799
797 static yyconst flex_int16_t yy_nxt[3275] =
800 static yyconst flex_int16_t yy_nxt[3295] =
798801 { 0,
799802 14, 15, 16, 17, 18, 19, 18, 14, 14, 14,
800803 14, 18, 20, 14, 21, 22, 23, 24, 14, 25,
825828 97, 107, 73, 122, 110, 133, 98, 68, 111, 99,
826829 68, 73, 101, 126, 105, 68, 100, 125, 67, 68,
827830 67, 67, 102, 67, 121, 103, 121, 121, 67, 121,
828 68, 110, 133, 127, 541, 111, 72, 73, 72, 72,
831 68, 110, 133, 127, 546, 111, 72, 73, 72, 72,
829832 67, 72, 67, 67, 128, 67, 72, 73, 72, 72,
830833 67, 72, 129, 68, 130, 134, 72, 68, 135, 136,
831834
844847 164, 116, 169, 116, 116, 166, 116, 113, 161, 167,
845848 121, 173, 121, 121, 68, 121, 72, 73, 72, 72,
846849 122, 72, 170, 168, 68, 171, 174, 172, 181, 169,
847 68, 1110, 182, 68, 68, 180, 68, 68, 173, 188,
848 1110, 1110, 184, 185, 190, 189, 191, 1110, 68, 196,
850 68, 1120, 182, 68, 68, 180, 68, 68, 173, 188,
851 1120, 1120, 184, 185, 190, 189, 191, 1120, 68, 196,
849852 68, 68, 171, 124, 172, 181, 68, 68, 175, 182,
850853 192, 68, 180, 176, 68, 198, 188, 68, 177, 184,
851854 185, 190, 189, 186, 178, 179, 187, 68, 195, 193,
852855 68, 68, 197, 199, 68, 175, 68, 192, 68, 194,
853856
854 176, 200, 201, 203, 1110, 177, 68, 1110, 68, 202,
857 176, 200, 201, 203, 1120, 177, 68, 1120, 68, 202,
855858 186, 178, 179, 187, 68, 195, 68, 207, 204, 197,
856859 68, 68, 205, 68, 68, 206, 194, 211, 200, 201,
857860 203, 210, 68, 208, 68, 209, 202, 68, 68, 68,
858861 212, 214, 68, 213, 207, 204, 216, 68, 68, 205,
859 1110, 217, 206, 220, 211, 223, 68, 221, 210, 219,
860 208, 68, 209, 215, 68, 224, 1110, 212, 218, 68,
862 1120, 217, 206, 220, 211, 223, 68, 221, 210, 219,
863 208, 68, 209, 215, 68, 224, 1120, 212, 218, 68,
861864 213, 222, 68, 225, 122, 226, 68, 68, 217, 68,
862865 220, 228, 223, 68, 221, 227, 219, 229, 231, 68,
863866 215, 232, 224, 68, 230, 218, 68, 233, 222, 68,
864867
865 225, 68, 226, 234, 68, 235, 68, 242, 228, 1110,
868 225, 68, 226, 234, 68, 235, 68, 242, 228, 1120,
866869 237, 68, 227, 236, 229, 231, 68, 68, 232, 238,
867870 68, 230, 239, 68, 233, 68, 240, 241, 243, 245,
868871 234, 68, 244, 68, 242, 68, 68, 237, 249, 68,
869 236, 1110, 68, 68, 250, 246, 238, 68, 68, 239,
872 236, 1120, 68, 68, 250, 246, 238, 68, 68, 239,
870873 247, 248, 253, 240, 241, 243, 245, 255, 254, 244,
871 68, 256, 257, 251, 68, 68, 252, 1110, 68, 259,
874 68, 256, 257, 251, 68, 68, 252, 1120, 68, 259,
872875 267, 250, 246, 68, 68, 68, 68, 247, 248, 253,
873876 261, 263, 264, 262, 68, 254, 268, 68, 256, 257,
874877 251, 258, 260, 252, 68, 266, 265, 267, 68, 68,
875878
876 68, 68, 68, 68, 68, 276, 280, 261, 68, 264,
877 262, 269, 68, 268, 278, 277, 282, 68, 258, 260,
878 122, 279, 266, 265, 68, 1110, 1110, 281, 68, 68,
879 300, 284, 276, 68, 68, 1110, 289, 68, 269, 270,
880 271, 278, 277, 282, 68, 1110, 285, 68, 279, 1110,
881 283, 272, 273, 274, 281, 288, 275, 68, 284, 286,
882 287, 68, 68, 289, 68, 290, 270, 271, 68, 302,
883 292, 291, 293, 285, 294, 304, 68, 283, 272, 273,
884 274, 68, 288, 275, 68, 297, 298, 68, 68, 295,
885 299, 68, 290, 68, 301, 1110, 302, 292, 291, 293,
886
887 303, 294, 296, 68, 305, 306, 68, 68, 68, 68,
888 309, 307, 297, 298, 310, 68, 295, 299, 308, 311,
889 68, 301, 68, 312, 68, 68, 68, 303, 314, 296,
890 313, 305, 306, 68, 316, 318, 68, 309, 307, 319,
891 68, 310, 68, 68, 315, 308, 311, 68, 68, 320,
892 312, 68, 317, 1110, 68, 314, 321, 313, 68, 327,
893 322, 316, 318, 1110, 68, 326, 329, 323, 328, 1110,
894 68, 315, 68, 68, 68, 324, 320, 330, 331, 317,
895 68, 332, 334, 321, 333, 325, 68, 322, 337, 342,
896 68, 335, 326, 329, 323, 328, 68, 68, 338, 68,
897
898 341, 336, 324, 68, 330, 331, 68, 68, 332, 334,
899 68, 333, 325, 339, 340, 337, 68, 343, 335, 344,
900 68, 68, 345, 122, 346, 338, 68, 341, 336, 347,
901 349, 68, 350, 348, 351, 352, 68, 68, 354, 353,
902 339, 340, 357, 360, 343, 355, 68, 68, 356, 345,
903 68, 346, 359, 68, 358, 362, 347, 68, 361, 68,
904 348, 367, 68, 366, 368, 68, 68, 68, 68, 68,
905 360, 68, 355, 68, 68, 356, 369, 68, 363, 359,
906 68, 358, 362, 364, 372, 361, 371, 365, 68, 68,
907 366, 368, 68, 373, 374, 375, 376, 382, 370, 68,
908
909 68, 383, 68, 369, 377, 363, 68, 378, 384, 386,
910 364, 372, 1110, 371, 365, 68, 68, 379, 380, 68,
911 68, 374, 375, 376, 68, 370, 68, 381, 68, 385,
912 68, 377, 390, 68, 378, 389, 386, 387, 391, 68,
913 68, 388, 68, 392, 379, 380, 393, 68, 394, 68,
914 68, 395, 68, 396, 381, 68, 385, 1110, 68, 390,
915 397, 398, 389, 399, 401, 391, 1110, 400, 68, 1110,
916 392, 68, 68, 393, 402, 403, 68, 68, 395, 68,
917 396, 68, 68, 404, 68, 407, 405, 397, 398, 406,
918 399, 401, 409, 408, 400, 68, 68, 68, 410, 413,
919
920 411, 402, 403, 68, 415, 68, 68, 1110, 412, 68,
921 404, 417, 407, 405, 122, 414, 406, 416, 418, 409,
922 408, 68, 68, 68, 68, 410, 68, 411, 419, 68,
923 68, 415, 420, 429, 426, 412, 68, 1110, 417, 427,
924 1110, 428, 414, 68, 416, 418, 1110, 431, 68, 430,
925 432, 68, 1110, 1110, 433, 419, 68, 1110, 434, 438,
926 68, 426, 68, 68, 421, 436, 427, 422, 428, 68,
927 437, 68, 423, 68, 431, 440, 430, 432, 424, 425,
928 68, 433, 68, 435, 68, 434, 438, 68, 441, 439,
929 68, 421, 436, 442, 422, 445, 68, 437, 443, 423,
930
931 444, 446, 68, 448, 68, 424, 425, 449, 451, 447,
932 435, 68, 68, 450, 68, 441, 439, 68, 452, 68,
933 442, 68, 445, 68, 453, 443, 456, 444, 446, 68,
934 68, 68, 68, 454, 458, 451, 447, 459, 68, 457,
935 450, 455, 68, 460, 68, 452, 461, 463, 464, 1110,
936 68, 453, 462, 456, 467, 68, 68, 68, 469, 466,
937 454, 458, 68, 470, 459, 68, 457, 68, 455, 465,
938 460, 68, 473, 461, 68, 464, 68, 68, 68, 462,
939 471, 467, 468, 472, 68, 469, 466, 68, 68, 68,
940 470, 474, 475, 476, 477, 479, 465, 68, 68, 478,
941
942 1110, 487, 68, 68, 486, 490, 68, 471, 68, 468,
943 472, 485, 489, 68, 68, 495, 68, 488, 474, 68,
944 122, 477, 479, 68, 1110, 68, 478, 480, 487, 481,
945 68, 486, 494, 482, 498, 483, 68, 496, 485, 489,
946 484, 502, 495, 491, 488, 68, 501, 500, 1110, 497,
947 492, 68, 499, 68, 480, 68, 481, 503, 504, 494,
948 482, 498, 483, 68, 496, 68, 68, 484, 493, 68,
949 491, 68, 68, 68, 500, 505, 497, 492, 506, 499,
950 507, 68, 508, 509, 503, 504, 510, 511, 1110, 68,
951 68, 518, 513, 514, 512, 493, 1110, 1110, 68, 68,
952
953 68, 515, 505, 517, 68, 506, 68, 507, 516, 508,
954 509, 1110, 521, 510, 68, 68, 524, 527, 68, 513,
955 514, 512, 68, 68, 519, 522, 68, 520, 515, 68,
956 517, 523, 530, 525, 526, 516, 68, 68, 68, 521,
957 68, 68, 529, 524, 527, 531, 68, 533, 528, 68,
958 68, 519, 522, 538, 520, 68, 68, 68, 523, 530,
959 525, 526, 532, 534, 535, 536, 537, 68, 1110, 529,
960 540, 68, 531, 539, 533, 528, 542, 547, 68, 68,
961 68, 68, 1110, 68, 68, 68, 543, 549, 546, 532,
962 534, 544, 545, 537, 68, 68, 68, 540, 548, 68,
963
964 539, 68, 1110, 542, 68, 552, 554, 550, 68, 68,
965 551, 1110, 553, 543, 549, 546, 555, 556, 544, 545,
966 68, 1110, 558, 68, 68, 68, 557, 68, 559, 68,
967 68, 560, 552, 68, 550, 68, 68, 551, 561, 553,
968 562, 564, 566, 555, 556, 1110, 1110, 68, 68, 558,
969 68, 563, 68, 557, 68, 559, 569, 565, 560, 68,
970 567, 571, 570, 68, 568, 561, 68, 562, 564, 566,
971 572, 68, 68, 573, 68, 68, 576, 68, 563, 577,
972 68, 574, 578, 569, 565, 575, 581, 567, 571, 570,
973 68, 568, 579, 583, 580, 68, 582, 572, 584, 68,
974
975 573, 1110, 1110, 576, 585, 68, 1110, 586, 68, 578,
976 68, 1110, 68, 581, 68, 591, 593, 1110, 1110, 579,
977 68, 580, 596, 582, 68, 68, 68, 592, 587, 68,
978 68, 585, 594, 588, 586, 589, 595, 590, 68, 68,
979 600, 68, 591, 593, 68, 68, 68, 597, 598, 596,
980 68, 601, 610, 599, 592, 587, 68, 602, 603, 594,
981 588, 68, 589, 595, 590, 604, 606, 68, 605, 608,
982 611, 609, 68, 607, 597, 598, 612, 616, 68, 68,
983 599, 613, 68, 68, 602, 68, 614, 68, 68, 615,
984 68, 68, 604, 606, 68, 605, 608, 620, 609, 68,
985
986 607, 68, 617, 618, 68, 68, 68, 68, 613, 68,
987 68, 619, 622, 614, 621, 623, 615, 68, 68, 68,
988 632, 625, 624, 628, 620, 626, 627, 68, 68, 617,
989 618, 68, 68, 629, 631, 633, 630, 634, 619, 622,
990 68, 621, 623, 68, 635, 68, 637, 632, 68, 624,
991 628, 639, 68, 627, 636, 68, 638, 68, 640, 643,
992 629, 631, 633, 630, 634, 68, 68, 642, 68, 68,
993 68, 635, 645, 637, 68, 644, 641, 650, 639, 653,
994 646, 636, 68, 638, 647, 640, 1110, 648, 651, 68,
995 68, 649, 68, 652, 642, 1110, 68, 654, 68, 645,
996
997 655, 656, 68, 641, 68, 68, 68, 646, 68, 68,
998 68, 647, 658, 657, 68, 651, 659, 660, 68, 661,
999 652, 68, 68, 663, 654, 68, 662, 655, 656, 68,
1000 664, 665, 666, 667, 668, 669, 670, 68, 68, 658,
1001 657, 68, 671, 659, 660, 68, 661, 672, 68, 68,
1002 663, 673, 674, 662, 68, 68, 676, 664, 665, 68,
1003 667, 668, 675, 68, 677, 678, 68, 68, 68, 68,
1004 679, 68, 68, 682, 672, 681, 1110, 680, 673, 674,
1005 690, 68, 1110, 676, 68, 683, 684, 685, 1110, 675,
1006 688, 68, 678, 68, 68, 68, 68, 679, 68, 686,
1007
1008 682, 687, 681, 689, 680, 693, 68, 68, 68, 691,
1009 692, 68, 683, 684, 685, 68, 68, 688, 694, 695,
1010 68, 696, 698, 701, 697, 68, 686, 68, 687, 68,
1011 689, 68, 693, 68, 699, 700, 691, 692, 702, 1110,
1012 1110, 706, 708, 68, 703, 694, 695, 68, 696, 698,
1013 68, 697, 704, 68, 68, 707, 68, 68, 711, 68,
1014 68, 699, 700, 705, 68, 702, 712, 709, 706, 68,
1015 68, 703, 716, 68, 68, 715, 710, 713, 68, 704,
1016 714, 718, 707, 68, 723, 711, 68, 717, 719, 68,
1017 705, 720, 721, 712, 709, 68, 68, 722, 725, 716,
1018
1019 729, 1110, 715, 710, 713, 68, 68, 714, 718, 724,
1020 68, 68, 68, 726, 717, 719, 68, 727, 720, 721,
1021 728, 730, 68, 732, 731, 725, 68, 729, 68, 68,
1022 68, 733, 68, 68, 734, 1110, 724, 737, 739, 735,
1023 726, 738, 740, 741, 727, 736, 68, 728, 730, 744,
1024 68, 731, 68, 68, 68, 68, 68, 743, 755, 745,
1025 742, 734, 68, 68, 737, 739, 735, 68, 738, 740,
1026 741, 68, 736, 746, 747, 749, 744, 748, 68, 750,
1027 68, 68, 751, 752, 743, 68, 745, 742, 753, 68,
1028 68, 68, 757, 754, 68, 761, 758, 68, 68, 756,
1029
1030 746, 747, 749, 759, 748, 760, 750, 762, 763, 68,
1031 752, 765, 68, 68, 68, 753, 764, 68, 767, 68,
1032 754, 768, 68, 68, 766, 769, 756, 68, 770, 771,
1033 759, 772, 760, 68, 68, 68, 773, 1110, 774, 775,
1034 68, 1110, 68, 764, 68, 68, 68, 776, 768, 68,
1035 779, 766, 68, 780, 68, 777, 771, 781, 772, 68,
1036 68, 68, 789, 773, 785, 774, 775, 778, 68, 782,
1037 783, 784, 68, 788, 776, 68, 68, 779, 786, 68,
1038 780, 787, 777, 791, 781, 792, 793, 1110, 68, 68,
1039 68, 785, 68, 68, 778, 68, 782, 783, 784, 790,
1040
1041 788, 798, 794, 68, 68, 786, 68, 68, 787, 68,
1042 791, 795, 792, 793, 796, 797, 801, 800, 799, 68,
1043 804, 802, 68, 68, 68, 803, 790, 808, 798, 794,
1044 68, 805, 806, 807, 810, 809, 68, 68, 795, 812,
1045 813, 796, 797, 825, 800, 799, 68, 68, 68, 814,
1046 68, 68, 68, 815, 808, 68, 811, 816, 805, 817,
1047 807, 68, 809, 68, 818, 68, 821, 813, 1110, 819,
1048 68, 1110, 824, 820, 68, 827, 68, 822, 68, 829,
1049 68, 68, 828, 811, 816, 68, 817, 68, 68, 823,
1050 68, 818, 68, 821, 831, 826, 819, 833, 68, 824,
1051
1052 820, 68, 827, 830, 822, 68, 68, 68, 832, 828,
1053 68, 834, 68, 835, 68, 836, 823, 838, 837, 841,
1054 68, 831, 826, 839, 833, 68, 68, 68, 68, 842,
1055 830, 844, 840, 843, 68, 832, 845, 68, 834, 68,
1056 835, 68, 836, 846, 838, 837, 841, 847, 68, 850,
1057 839, 854, 1110, 68, 851, 848, 68, 1110, 844, 840,
1058 843, 68, 855, 845, 68, 68, 849, 852, 862, 68,
1059 846, 853, 858, 68, 847, 68, 68, 68, 68, 68,
1060 68, 851, 848, 856, 68, 859, 857, 863, 860, 855,
1061 68, 1110, 867, 849, 852, 862, 861, 864, 853, 858,
1062
1063 68, 68, 68, 68, 865, 873, 68, 866, 68, 868,
1064 856, 871, 859, 857, 863, 860, 870, 875, 68, 68,
1065 869, 872, 874, 861, 864, 68, 876, 68, 68, 878,
1066 877, 865, 68, 68, 866, 68, 868, 879, 871, 68,
1067 68, 881, 880, 870, 68, 68, 887, 869, 872, 874,
1068 882, 68, 68, 876, 68, 884, 878, 877, 68, 883,
1069 68, 68, 888, 68, 879, 885, 886, 68, 881, 880,
1070 68, 889, 68, 887, 890, 891, 68, 882, 892, 894,
1071 68, 893, 884, 895, 897, 68, 883, 898, 896, 888,
1072 899, 900, 885, 886, 902, 68, 68, 1110, 889, 901,
1073
1074 68, 890, 68, 904, 903, 68, 68, 68, 893, 905,
1075 68, 68, 68, 68, 68, 896, 908, 899, 68, 906,
1076 909, 68, 910, 911, 68, 913, 901, 914, 68, 921,
1077 904, 903, 1110, 68, 907, 915, 905, 912, 68, 926,
1078 919, 917, 68, 68, 918, 68, 906, 909, 920, 68,
1079 68, 68, 913, 916, 914, 922, 68, 68, 68, 68,
1080 68, 907, 915, 68, 912, 923, 68, 919, 917, 924,
1081 68, 918, 68, 925, 929, 920, 927, 932, 68, 1110,
1082 916, 930, 922, 933, 928, 931, 935, 68, 936, 68,
1083 934, 937, 923, 939, 938, 68, 924, 1110, 68, 68,
1084
1085 925, 929, 68, 927, 68, 68, 68, 68, 930, 940,
1086 933, 928, 931, 68, 68, 936, 68, 934, 937, 942,
1087 941, 938, 945, 943, 68, 946, 944, 947, 948, 949,
1088 68, 68, 950, 1110, 951, 952, 940, 954, 1110, 1110,
1089 68, 68, 68, 953, 955, 68, 942, 941, 68, 945,
1090 943, 68, 68, 944, 68, 68, 956, 957, 68, 950,
1091 68, 951, 952, 958, 68, 68, 68, 959, 960, 964,
1092 953, 955, 961, 962, 963, 965, 68, 68, 969, 68,
1093 966, 68, 68, 956, 957, 967, 68, 68, 68, 68,
1094 68, 972, 68, 973, 959, 960, 964, 968, 68, 961,
1095
1096 962, 963, 68, 970, 68, 969, 68, 966, 971, 974,
1097 975, 977, 967, 68, 976, 68, 978, 979, 972, 68,
1098 973, 68, 980, 981, 968, 68, 68, 982, 983, 68,
1099 970, 68, 1110, 68, 984, 971, 68, 975, 977, 985,
1100 68, 976, 989, 978, 979, 986, 68, 68, 987, 980,
1101 981, 990, 68, 988, 68, 68, 991, 992, 994, 68,
1102 993, 984, 995, 68, 997, 68, 985, 1000, 68, 68,
1103 998, 996, 986, 999, 1002, 987, 68, 68, 990, 1005,
1104 988, 1001, 68, 991, 68, 68, 68, 993, 68, 995,
1105 1003, 997, 68, 68, 1000, 68, 68, 998, 996, 1004,
1106
1107 999, 1002, 1006, 1007, 1008, 1009, 68, 1010, 1001, 1011,
1108 1012, 68, 68, 1014, 1110, 1018, 1016, 1003, 1110, 1110,
1109 1013, 1110, 68, 1015, 68, 1110, 1004, 68, 68, 68,
1110 68, 68, 1009, 68, 1010, 1019, 1011, 1012, 68, 68,
1111 1014, 68, 68, 1016, 1017, 1020, 1021, 1013, 1022, 1023,
1112 1015, 1024, 68, 68, 1025, 1110, 1026, 1032, 1028, 1029,
1113 1027, 68, 1019, 68, 68, 1030, 68, 1031, 68, 1033,
1114 1034, 1017, 1020, 1021, 68, 1022, 1023, 1110, 68, 1110,
1115 68, 1025, 68, 1026, 68, 68, 68, 1027, 68, 1036,
1116 1035, 1037, 1030, 68, 1031, 1038, 68, 1034, 68, 68,
1117
1118 1040, 1039, 1041, 68, 1043, 1045, 68, 68, 68, 1044,
1119 1046, 68, 1042, 1052, 68, 1047, 1036, 1035, 1037, 1050,
1120 1110, 1110, 1038, 68, 1053, 1048, 1049, 1040, 1039, 1041,
1121 68, 1043, 1045, 68, 68, 68, 1044, 68, 68, 1042,
1122 1052, 1054, 1047, 68, 68, 1051, 1050, 68, 1055, 1056,
1123 68, 1053, 1048, 1049, 1057, 1058, 1059, 68, 1061, 68,
1124 1065, 1060, 1062, 1063, 68, 1064, 68, 68, 1054, 68,
1125 68, 1066, 1051, 68, 1067, 1055, 1056, 68, 1070, 1068,
1126 1071, 1057, 68, 1059, 68, 1061, 68, 68, 1060, 1062,
1127 1063, 1069, 1064, 68, 1072, 1073, 68, 1074, 1066, 1075,
1128
1129 1076, 68, 68, 1077, 68, 68, 1068, 68, 1079, 1078,
1130 68, 68, 1080, 1081, 1083, 1082, 1110, 1084, 1069, 1085,
1131 1110, 1072, 1073, 1086, 1074, 1088, 68, 68, 1087, 1089,
1132 1077, 68, 1092, 1110, 1091, 68, 1078, 68, 1094, 68,
1133 68, 68, 1082, 68, 1084, 68, 68, 68, 1093, 1096,
1134 1086, 68, 68, 1090, 1095, 1087, 1089, 68, 68, 68,
1135 68, 1091, 1097, 1098, 1099, 68, 68, 1100, 1110, 1101,
1136 1102, 68, 1103, 1104, 1105, 1093, 1096, 1108, 1109, 68,
1137 1090, 1095, 68, 1110, 1110, 68, 1106, 1110, 1110, 68,
1138 68, 68, 68, 68, 1100, 68, 1101, 1102, 68, 1103,
1139
1140 68, 1105, 1107, 1110, 1108, 68, 1110, 1110, 1110, 1110,
1141 1110, 1110, 1110, 1106, 1110, 68, 1110, 1110, 1110, 1110,
1142 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1107,
879 68, 68, 68, 68, 68, 277, 281, 261, 68, 264,
880 262, 269, 68, 268, 279, 278, 283, 68, 258, 260,
881 122, 280, 266, 265, 68, 1120, 1120, 282, 68, 68,
882 301, 285, 277, 68, 68, 1120, 290, 68, 269, 270,
883 271, 279, 278, 283, 68, 346, 286, 68, 280, 272,
884 284, 273, 274, 275, 282, 289, 276, 68, 285, 287,
885 288, 68, 68, 290, 68, 1120, 270, 271, 68, 293,
886 291, 292, 68, 286, 295, 298, 272, 284, 273, 274,
887 275, 68, 289, 276, 68, 294, 296, 68, 68, 300,
888 302, 299, 68, 68, 68, 1120, 293, 291, 292, 297,
889
890 303, 295, 298, 304, 68, 305, 306, 68, 307, 1120,
891 308, 68, 294, 296, 68, 309, 300, 302, 299, 310,
892 313, 68, 68, 68, 68, 311, 297, 303, 312, 68,
893 304, 314, 68, 306, 68, 307, 68, 308, 315, 68,
894 318, 316, 309, 317, 319, 68, 310, 313, 68, 68,
895 320, 68, 311, 68, 1120, 312, 68, 321, 314, 331,
896 1120, 322, 68, 68, 333, 315, 68, 318, 316, 68,
897 317, 319, 323, 327, 328, 330, 332, 334, 68, 324,
898 68, 68, 68, 329, 321, 68, 331, 325, 322, 68,
899 68, 333, 335, 337, 340, 339, 336, 326, 68, 323,
900
901 327, 68, 330, 332, 334, 68, 324, 68, 68, 343,
902 329, 338, 68, 342, 325, 344, 68, 68, 341, 335,
903 337, 340, 339, 336, 326, 68, 68, 345, 347, 349,
904 348, 351, 122, 350, 352, 353, 343, 354, 338, 356,
905 342, 68, 68, 68, 355, 341, 68, 68, 359, 1120,
906 357, 358, 1120, 68, 345, 347, 349, 348, 68, 360,
907 350, 68, 361, 363, 68, 369, 68, 364, 362, 1120,
908 68, 68, 68, 368, 68, 68, 374, 357, 358, 68,
909 68, 370, 68, 365, 68, 68, 360, 1120, 366, 361,
910 363, 371, 367, 377, 364, 362, 68, 373, 68, 68,
911
912 368, 375, 376, 374, 378, 68, 1120, 68, 370, 381,
913 365, 68, 379, 372, 68, 366, 380, 68, 371, 367,
914 377, 386, 68, 68, 373, 68, 382, 383, 68, 376,
915 393, 378, 68, 384, 68, 388, 381, 385, 387, 379,
916 372, 389, 68, 380, 391, 390, 392, 396, 68, 68,
917 397, 68, 68, 382, 383, 1120, 68, 393, 394, 68,
918 398, 1120, 388, 395, 68, 387, 399, 68, 400, 68,
919 402, 391, 68, 392, 401, 68, 68, 397, 68, 68,
920 403, 404, 68, 68, 68, 394, 405, 398, 68, 406,
921 395, 416, 407, 399, 410, 400, 408, 402, 409, 1120,
922
923 68, 401, 411, 68, 412, 68, 68, 403, 404, 413,
924 423, 68, 68, 405, 68, 68, 406, 1120, 68, 407,
925 414, 410, 68, 408, 418, 409, 122, 420, 415, 411,
926 417, 412, 419, 68, 421, 422, 413, 68, 429, 68,
927 430, 68, 432, 68, 68, 1120, 68, 414, 431, 68,
928 68, 418, 68, 433, 420, 415, 434, 417, 68, 419,
929 68, 421, 422, 424, 435, 429, 425, 430, 436, 68,
930 439, 426, 437, 68, 438, 431, 68, 427, 428, 443,
931 433, 68, 68, 434, 440, 442, 68, 445, 441, 68,
932 424, 435, 444, 425, 68, 436, 68, 439, 426, 437,
933
934 68, 438, 446, 447, 427, 428, 68, 68, 68, 448,
935 68, 440, 442, 449, 445, 441, 68, 450, 68, 444,
936 451, 68, 68, 452, 453, 454, 455, 1120, 1120, 446,
937 447, 456, 68, 460, 461, 68, 448, 68, 457, 68,
938 449, 459, 68, 466, 450, 462, 458, 68, 464, 68,
939 473, 453, 454, 455, 68, 467, 68, 68, 456, 68,
940 460, 461, 68, 68, 463, 457, 465, 470, 459, 68,
941 469, 474, 462, 458, 68, 464, 468, 68, 68, 68,
942 471, 68, 467, 472, 68, 68, 68, 475, 476, 68,
943 477, 463, 478, 465, 470, 68, 68, 469, 474, 68,
944
945 479, 480, 68, 468, 481, 482, 490, 471, 68, 68,
946 472, 483, 494, 491, 475, 476, 68, 493, 68, 478,
947 1120, 68, 499, 489, 68, 68, 68, 68, 122, 492,
948 68, 481, 482, 490, 500, 68, 1120, 68, 483, 484,
949 491, 485, 498, 68, 493, 486, 502, 487, 501, 499,
950 489, 495, 488, 1120, 503, 68, 492, 505, 496, 506,
951 68, 500, 507, 68, 1120, 68, 484, 68, 485, 498,
952 68, 510, 486, 502, 487, 501, 497, 68, 495, 488,
953 504, 503, 509, 508, 68, 496, 68, 511, 68, 507,
954 68, 68, 513, 68, 512, 514, 68, 515, 510, 68,
955
956 516, 522, 517, 497, 518, 68, 1120, 504, 68, 509,
957 508, 519, 68, 521, 511, 523, 68, 520, 524, 513,
958 1120, 512, 514, 525, 68, 526, 68, 516, 68, 517,
959 528, 518, 68, 68, 529, 68, 527, 68, 519, 68,
960 521, 68, 523, 68, 520, 524, 530, 68, 531, 532,
961 525, 534, 526, 533, 68, 535, 68, 528, 68, 536,
962 68, 529, 539, 527, 537, 68, 540, 538, 68, 1120,
963 1120, 542, 68, 530, 548, 531, 532, 68, 534, 543,
964 533, 68, 535, 68, 541, 545, 536, 68, 68, 544,
965 547, 537, 68, 68, 538, 549, 68, 68, 68, 68,
966
967 68, 548, 68, 68, 554, 550, 543, 68, 551, 552,
968 553, 541, 545, 1120, 1120, 555, 544, 547, 1120, 559,
969 556, 68, 549, 557, 558, 560, 68, 562, 68, 563,
970 561, 554, 550, 68, 68, 551, 68, 68, 569, 565,
971 68, 68, 555, 566, 68, 68, 68, 556, 68, 68,
972 557, 558, 560, 564, 562, 68, 563, 561, 570, 567,
973 568, 68, 68, 571, 572, 569, 565, 68, 68, 575,
974 566, 68, 573, 578, 574, 576, 68, 583, 582, 68,
975 564, 577, 68, 581, 68, 570, 567, 568, 68, 579,
976 571, 572, 68, 580, 68, 68, 575, 68, 585, 573,
977
978 578, 574, 576, 68, 583, 584, 586, 587, 577, 68,
979 581, 588, 589, 590, 591, 1120, 68, 597, 1120, 68,
980 68, 592, 596, 599, 68, 585, 593, 68, 594, 68,
981 595, 1120, 584, 586, 587, 68, 68, 68, 598, 68,
982 590, 591, 68, 68, 597, 68, 600, 68, 592, 596,
983 599, 601, 602, 593, 68, 594, 603, 595, 68, 604,
984 605, 68, 606, 607, 608, 598, 1120, 68, 609, 610,
985 68, 611, 612, 600, 614, 68, 613, 615, 601, 602,
986 616, 68, 617, 603, 618, 68, 604, 68, 68, 68,
987 607, 68, 619, 68, 68, 609, 610, 68, 611, 612,
988
989 621, 614, 622, 613, 68, 620, 1120, 623, 68, 617,
990 68, 68, 626, 68, 68, 68, 68, 624, 625, 619,
991 627, 68, 630, 628, 68, 68, 629, 621, 68, 68,
992 68, 68, 620, 631, 623, 633, 68, 632, 635, 626,
993 637, 636, 634, 639, 624, 625, 68, 627, 68, 630,
994 628, 68, 1120, 629, 641, 642, 68, 1120, 638, 1120,
995 68, 643, 633, 68, 68, 635, 68, 637, 636, 634,
996 639, 640, 645, 648, 1120, 68, 68, 644, 647, 68,
997 646, 641, 642, 68, 68, 638, 68, 649, 643, 650,
998 68, 1120, 68, 654, 652, 68, 651, 655, 640, 645,
999
1000 648, 653, 656, 657, 644, 647, 658, 646, 659, 68,
1001 1120, 68, 1120, 1120, 1120, 667, 68, 660, 68, 1120,
1002 68, 652, 68, 651, 68, 68, 661, 68, 653, 68,
1003 657, 665, 662, 658, 68, 663, 664, 68, 666, 68,
1004 68, 68, 667, 68, 660, 668, 669, 671, 670, 68,
1005 68, 672, 675, 661, 68, 673, 676, 674, 665, 662,
1006 68, 677, 663, 664, 68, 666, 68, 678, 68, 679,
1007 1120, 681, 668, 669, 671, 670, 683, 68, 68, 684,
1008 697, 68, 673, 68, 674, 682, 68, 68, 68, 685,
1009 680, 68, 68, 68, 678, 686, 679, 68, 681, 689,
1010
1011 68, 688, 687, 68, 691, 690, 684, 68, 1120, 695,
1012 1120, 68, 682, 68, 692, 68, 685, 680, 68, 1120,
1013 696, 68, 686, 693, 68, 699, 689, 68, 688, 687,
1014 68, 691, 690, 694, 68, 700, 695, 698, 708, 702,
1015 68, 692, 68, 701, 68, 68, 68, 696, 703, 704,
1016 693, 706, 699, 715, 705, 707, 713, 68, 68, 710,
1017 694, 68, 700, 68, 698, 68, 702, 709, 68, 68,
1018 701, 714, 711, 68, 68, 703, 704, 68, 706, 68,
1019 712, 705, 707, 713, 68, 68, 710, 68, 716, 68,
1020 717, 719, 1120, 730, 709, 68, 718, 68, 714, 711,
1021
1022 722, 720, 68, 68, 721, 723, 724, 712, 725, 1120,
1023 729, 68, 728, 1120, 1120, 716, 68, 717, 719, 68,
1024 68, 1120, 726, 718, 68, 727, 739, 722, 720, 68,
1025 68, 721, 723, 724, 732, 725, 731, 733, 734, 728,
1026 68, 68, 736, 68, 735, 737, 68, 740, 68, 726,
1027 738, 68, 727, 68, 741, 744, 68, 68, 745, 68,
1028 742, 732, 746, 731, 733, 734, 743, 68, 68, 736,
1029 68, 735, 737, 749, 68, 68, 750, 738, 68, 747,
1030 68, 741, 744, 748, 68, 745, 751, 742, 763, 746,
1031 68, 754, 68, 743, 752, 753, 757, 755, 761, 68,
1032
1033 749, 68, 756, 750, 758, 759, 747, 68, 68, 68,
1034 748, 68, 760, 751, 68, 68, 68, 68, 754, 68,
1035 762, 752, 753, 757, 755, 761, 764, 68, 765, 756,
1036 766, 758, 767, 768, 773, 769, 68, 770, 68, 760,
1037 68, 68, 771, 772, 68, 774, 775, 762, 776, 777,
1038 68, 778, 1120, 764, 68, 68, 779, 1120, 780, 767,
1039 768, 68, 68, 781, 68, 68, 782, 68, 787, 68,
1040 772, 68, 774, 68, 783, 776, 68, 68, 785, 784,
1041 789, 68, 68, 779, 68, 780, 68, 786, 68, 788,
1042 781, 790, 791, 782, 68, 787, 68, 793, 68, 792,
1043
1044 68, 783, 794, 68, 795, 785, 784, 789, 796, 797,
1045 68, 68, 799, 1120, 786, 68, 788, 1120, 790, 791,
1046 798, 800, 809, 68, 793, 803, 792, 68, 801, 794,
1047 68, 795, 68, 805, 802, 796, 804, 68, 806, 799,
1048 68, 68, 812, 68, 68, 807, 68, 798, 800, 808,
1049 814, 68, 803, 68, 68, 801, 68, 816, 819, 813,
1050 805, 802, 68, 804, 810, 806, 823, 815, 811, 818,
1051 817, 68, 807, 68, 68, 821, 808, 822, 820, 1120,
1052 68, 68, 68, 68, 816, 68, 813, 824, 825, 68,
1053 826, 834, 68, 68, 815, 68, 818, 817, 827, 832,
1054
1055 828, 829, 833, 835, 822, 820, 68, 836, 68, 68,
1056 830, 838, 68, 68, 68, 825, 68, 826, 68, 68,
1057 68, 831, 68, 1120, 837, 827, 832, 828, 829, 833,
1058 835, 840, 839, 68, 836, 841, 68, 830, 68, 68,
1059 842, 68, 845, 846, 847, 843, 844, 849, 831, 68,
1060 68, 837, 848, 851, 68, 68, 68, 68, 840, 839,
1061 68, 68, 841, 850, 852, 68, 68, 842, 854, 845,
1062 846, 847, 843, 844, 849, 853, 855, 68, 856, 848,
1063 68, 68, 858, 857, 859, 860, 861, 1120, 1120, 68,
1064 850, 852, 68, 68, 68, 854, 863, 68, 68, 1120,
1065
1066 68, 862, 853, 855, 864, 856, 867, 68, 865, 858,
1067 857, 866, 860, 861, 68, 68, 869, 868, 870, 68,
1068 872, 873, 876, 68, 68, 68, 68, 878, 862, 871,
1069 68, 864, 68, 867, 874, 865, 68, 875, 866, 877,
1070 68, 68, 68, 869, 868, 870, 880, 872, 873, 68,
1071 879, 882, 881, 883, 68, 68, 871, 68, 68, 885,
1072 887, 874, 886, 884, 875, 68, 877, 1120, 889, 68,
1073 888, 890, 891, 880, 68, 68, 892, 879, 882, 881,
1074 68, 68, 897, 68, 68, 893, 68, 887, 68, 886,
1075 884, 68, 68, 68, 68, 889, 894, 888, 890, 891,
1076
1077 895, 896, 68, 892, 898, 899, 68, 68, 900, 897,
1078 901, 902, 893, 904, 905, 68, 903, 906, 68, 68,
1079 907, 908, 910, 894, 909, 68, 912, 895, 896, 918,
1080 68, 898, 899, 914, 68, 900, 913, 68, 68, 920,
1081 68, 68, 911, 903, 906, 68, 68, 68, 68, 68,
1082 68, 909, 915, 68, 68, 916, 68, 919, 921, 924,
1083 914, 922, 68, 913, 923, 68, 68, 925, 931, 911,
1084 917, 926, 1120, 927, 68, 928, 68, 68, 929, 915,
1085 932, 68, 916, 930, 919, 68, 924, 68, 922, 68,
1086 68, 923, 935, 941, 925, 68, 68, 917, 926, 68,
1087
1088 927, 68, 928, 68, 933, 929, 934, 932, 936, 937,
1089 930, 68, 1120, 939, 940, 68, 942, 938, 68, 935,
1090 941, 945, 943, 944, 68, 946, 949, 947, 68, 948,
1091 1120, 933, 68, 934, 68, 68, 937, 950, 68, 68,
1092 939, 940, 951, 68, 938, 68, 952, 68, 68, 943,
1093 944, 68, 946, 68, 947, 953, 948, 68, 68, 954,
1094 959, 955, 956, 957, 950, 958, 1120, 960, 68, 951,
1095 961, 962, 1120, 952, 68, 964, 68, 963, 965, 967,
1096 968, 68, 953, 966, 68, 1120, 954, 68, 955, 68,
1097 68, 68, 68, 68, 960, 1120, 969, 961, 962, 68,
1098
1099 68, 68, 68, 970, 963, 965, 967, 68, 68, 971,
1100 966, 68, 68, 972, 973, 974, 975, 976, 977, 68,
1101 978, 1120, 68, 969, 68, 979, 982, 68, 68, 68,
1102 970, 980, 983, 981, 68, 68, 971, 984, 993, 68,
1103 972, 973, 974, 68, 976, 977, 68, 978, 68, 986,
1104 987, 990, 979, 982, 68, 991, 985, 988, 980, 983,
1105 981, 989, 68, 68, 68, 68, 68, 992, 68, 68,
1106 68, 995, 998, 994, 996, 68, 986, 987, 990, 68,
1107 997, 68, 991, 985, 988, 68, 999, 68, 989, 1002,
1108 1000, 1004, 1120, 1005, 68, 1001, 68, 1003, 995, 998,
1109
1110 994, 996, 68, 1006, 68, 68, 1008, 997, 68, 1007,
1111 1009, 1011, 1010, 68, 1014, 1015, 68, 1000, 68, 68,
1112 1005, 1012, 1001, 68, 1003, 1013, 68, 68, 68, 1016,
1113 1006, 68, 68, 1008, 1017, 1018, 1007, 1009, 1011, 1010,
1114 1020, 1014, 68, 68, 1019, 1021, 1022, 68, 1012, 1024,
1115 1023, 1120, 1013, 1028, 1120, 68, 68, 1026, 1120, 1034,
1116 1025, 68, 68, 1029, 68, 68, 68, 1020, 68, 68,
1117 1030, 1019, 1021, 1022, 1027, 68, 1024, 1023, 68, 1033,
1118 68, 68, 68, 1031, 1026, 1032, 68, 1025, 1035, 68,
1119 1029, 1036, 1037, 68, 1038, 68, 1039, 1030, 1040, 1042,
1120
1121 1041, 1027, 1043, 68, 1120, 68, 1033, 68, 1044, 1046,
1122 1031, 1049, 1032, 68, 1045, 1035, 68, 68, 1036, 1037,
1123 1120, 68, 68, 68, 1047, 1040, 1048, 1041, 68, 68,
1124 68, 68, 68, 68, 1052, 1044, 1046, 68, 1049, 1050,
1125 1053, 1045, 1051, 68, 1054, 1055, 68, 68, 1056, 1120,
1126 1057, 1047, 68, 1048, 68, 1060, 1058, 1061, 1059, 68,
1127 1064, 1052, 1063, 1120, 1062, 1120, 1050, 1053, 68, 1051,
1128 68, 1054, 1055, 68, 68, 68, 68, 1057, 68, 1065,
1129 1067, 1068, 1060, 1058, 1061, 1059, 68, 1064, 68, 1063,
1130 1066, 1062, 68, 1069, 1070, 1071, 1072, 1074, 68, 1073,
1131
1132 68, 68, 68, 1075, 68, 68, 1065, 1067, 68, 1076,
1133 1077, 1079, 1078, 1080, 68, 1081, 68, 1066, 68, 68,
1134 1069, 1070, 1071, 1072, 1074, 1082, 1073, 1084, 1083, 1085,
1135 68, 68, 1086, 68, 68, 1088, 1076, 68, 1079, 1078,
1136 68, 1087, 68, 68, 1089, 1090, 1091, 1092, 1093, 68,
1137 1094, 1095, 1082, 1120, 1084, 1083, 68, 68, 1096, 68,
1138 1097, 1098, 1088, 1100, 1099, 1102, 1101, 1104, 1087, 68,
1139 68, 68, 68, 68, 1092, 68, 68, 1094, 68, 68,
1140 68, 1103, 1107, 1105, 1108, 1096, 68, 1097, 68, 68,
1141 1100, 1099, 68, 1101, 68, 68, 1106, 1109, 1110, 1120,
1142
1143 1111, 1114, 1120, 1115, 68, 68, 1112, 1113, 1103, 68,
1144 1105, 68, 1118, 68, 68, 1119, 1120, 1120, 1120, 1116,
1145 68, 68, 1117, 1106, 68, 1110, 68, 1111, 68, 68,
1146 1115, 68, 1120, 1112, 1113, 68, 1120, 1120, 1120, 1118,
1147 1120, 1120, 68, 1120, 1120, 1120, 1116, 1120, 1120, 1117,
11431148 40, 40, 40, 40, 40, 40, 45, 45, 45, 45,
11441149 45, 45, 50, 50, 50, 50, 50, 50, 56, 56,
11451150 56, 56, 56, 56, 61, 61, 61, 61, 61, 61,
1146 71, 71, 71, 71, 71, 71, 112, 112, 1110, 1110,
1147 112, 112, 114, 114, 1110, 114, 1110, 114, 116, 1110,
1148 1110, 1110, 1110, 116, 119, 119, 1110, 1110, 119, 119,
1149 121, 1110, 1110, 1110, 1110, 121, 123, 123, 123, 123,
1150
1151 123, 123, 72, 72, 72, 72, 72, 72, 13, 1110,
1152 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1153 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1154 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1155 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1156 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1157 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1158 1110, 1110, 1110, 1110
1151 71, 71, 71, 71, 71, 71, 112, 112, 1120, 1120,
1152 112, 112, 114, 114, 1120, 114, 1120, 114, 116, 1120,
1153
1154 1120, 1120, 1120, 116, 119, 119, 1120, 1120, 119, 119,
1155 121, 1120, 1120, 1120, 1120, 121, 123, 123, 123, 123,
1156 123, 123, 72, 72, 72, 72, 72, 72, 13, 1120,
1157 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1158 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1159 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1160 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1161 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1162 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1163 1120, 1120, 1120, 1120
1164
11591165 } ;
11601166
1161 static yyconst flex_int16_t yy_chk[3275] =
1167 static yyconst flex_int16_t yy_chk[3295] =
11621168 { 0,
11631169 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11641170 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11681174 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11691175 1, 1, 1, 1, 1, 3, 3, 3, 4, 4,
11701176 4, 5, 5, 6, 6, 5, 24, 6, 7, 7,
1171 7, 7, 1116, 7, 8, 8, 8, 8, 24, 8,
1177 7, 7, 1126, 7, 8, 8, 8, 8, 24, 8,
11721178 9, 9, 9, 10, 10, 10, 15, 44, 44, 49,
11731179
11741180 15, 3, 49, 24, 4, 60, 60, 5, 55, 6,
1175 55, 55, 69, 55, 476, 7, 69, 19, 19, 19,
1181 55, 55, 69, 55, 480, 7, 69, 19, 19, 19,
11761182 19, 8, 19, 20, 124, 23, 9, 19, 23, 10,
11771183 11, 11, 11, 11, 11, 11, 12, 12, 12, 12,
11781184 12, 12, 22, 115, 21, 22, 115, 20, 22, 11,
11891195 33, 36, 72, 65, 38, 81, 33, 34, 38, 33,
11901196 75, 70, 34, 75, 35, 67, 33, 65, 39, 81,
11911197 39, 39, 34, 39, 66, 34, 66, 66, 39, 66,
1192 38, 38, 81, 76, 470, 38, 63, 63, 63, 63,
1198 38, 38, 81, 76, 474, 38, 63, 63, 63, 63,
11931199 68, 63, 68, 68, 77, 68, 71, 71, 71, 71,
11941200 68, 71, 78, 77, 79, 82, 71, 76, 83, 84,
11951201
1196 76, 85, 82, 79, 470, 78, 88, 83, 84, 86,
1202 76, 85, 82, 79, 474, 78, 88, 83, 84, 86,
11971203 89, 77, 89, 63, 88, 87, 90, 61, 87, 78,
11981204 90, 79, 82, 71, 85, 83, 84, 91, 85, 92,
11991205 93, 86, 87, 88, 95, 94, 86, 89, 56, 87,
12411247 209, 215, 210, 214, 219, 218, 223, 217, 205, 207,
12421248 219, 220, 213, 212, 215, 0, 0, 222, 223, 220,
12431249 239, 225, 217, 218, 222, 0, 229, 221, 215, 216,
1244 216, 219, 218, 223, 225, 0, 226, 229, 220, 0,
1250 216, 219, 218, 223, 225, 282, 226, 229, 220, 216,
12451251 224, 216, 216, 216, 222, 228, 216, 224, 225, 227,
1246 227, 239, 228, 229, 216, 230, 216, 216, 226, 241,
1247 232, 231, 233, 226, 234, 243, 230, 224, 216, 216,
1248 216, 233, 228, 216, 231, 236, 237, 234, 227, 235,
1249 238, 241, 230, 232, 240, 0, 241, 232, 231, 233,
1250
1251 242, 234, 235, 236, 244, 245, 243, 235, 238, 237,
1252 248, 246, 236, 237, 250, 240, 235, 238, 247, 251,
1253 245, 240, 244, 252, 247, 251, 242, 242, 254, 235,
1254 253, 244, 245, 246, 257, 259, 248, 248, 246, 260,
1255 250, 250, 252, 254, 256, 247, 251, 257, 253, 261,
1256 252, 256, 258, 0, 259, 254, 262, 253, 261, 265,
1257 263, 257, 259, 0, 262, 264, 266, 263, 265, 0,
1258 260, 256, 264, 266, 258, 263, 261, 267, 268, 258,
1259 268, 269, 271, 262, 270, 263, 263, 263, 274, 279,
1260 265, 272, 264, 266, 263, 265, 270, 271, 275, 272,
1261
1262 278, 273, 263, 267, 267, 268, 273, 269, 269, 271,
1263 274, 270, 263, 276, 277, 274, 275, 280, 272, 281,
1264 279, 276, 282, 278, 283, 275, 277, 278, 273, 284,
1265 286, 280, 287, 285, 288, 289, 283, 282, 291, 290,
1266 276, 277, 294, 297, 280, 292, 281, 285, 293, 282,
1267 297, 283, 296, 284, 295, 299, 284, 286, 298, 287,
1268 285, 302, 289, 301, 303, 288, 290, 292, 299, 291,
1269 297, 293, 292, 294, 296, 293, 304, 295, 300, 296,
1270 298, 295, 299, 300, 306, 298, 305, 300, 303, 301,
1271 301, 303, 302, 307, 308, 309, 310, 316, 304, 304,
1272
1273 305, 316, 300, 304, 311, 300, 306, 312, 317, 319,
1274 300, 306, 0, 305, 300, 308, 312, 313, 314, 309,
1275 310, 308, 309, 310, 307, 304, 311, 315, 316, 318,
1276 313, 311, 322, 319, 312, 321, 319, 320, 323, 317,
1277 314, 320, 321, 324, 313, 314, 325, 318, 326, 315,
1278 323, 327, 324, 328, 315, 322, 318, 0, 325, 322,
1279 329, 330, 321, 331, 333, 323, 0, 332, 320, 0,
1280 324, 331, 330, 325, 334, 335, 328, 327, 327, 326,
1281 328, 332, 329, 336, 333, 339, 337, 329, 330, 338,
1282 331, 333, 341, 340, 332, 337, 334, 335, 342, 345,
1283
1284 343, 334, 335, 339, 347, 336, 340, 0, 343, 338,
1285 336, 351, 339, 337, 341, 346, 338, 348, 354, 341,
1286 340, 351, 342, 347, 346, 342, 343, 343, 355, 348,
1287 345, 347, 356, 361, 358, 343, 354, 0, 351, 359,
1288 0, 360, 346, 360, 348, 354, 0, 363, 359, 362,
1289 364, 355, 0, 0, 365, 355, 358, 0, 366, 370,
1290 361, 358, 364, 356, 357, 368, 359, 357, 360, 362,
1291 369, 370, 357, 363, 363, 372, 362, 364, 357, 357,
1292 365, 365, 366, 367, 368, 366, 370, 357, 373, 371,
1293 367, 357, 368, 374, 357, 377, 369, 369, 375, 357,
1294
1295 376, 378, 372, 380, 377, 357, 357, 381, 384, 379,
1296 367, 371, 373, 382, 374, 373, 371, 375, 385, 376,
1297 374, 382, 377, 378, 386, 375, 389, 376, 378, 379,
1298 380, 385, 384, 387, 391, 384, 379, 392, 381, 390,
1299 382, 387, 391, 393, 389, 385, 394, 396, 397, 0,
1300 386, 386, 395, 389, 400, 392, 393, 387, 402, 399,
1301 387, 391, 390, 403, 392, 395, 390, 394, 387, 398,
1302 393, 397, 406, 394, 399, 397, 400, 398, 396, 395,
1303 404, 400, 401, 405, 402, 402, 399, 403, 401, 404,
1304 403, 407, 408, 409, 410, 412, 398, 405, 407, 411,
1305
1306 0, 416, 411, 406, 415, 419, 410, 404, 412, 401,
1307 405, 414, 418, 414, 416, 422, 415, 417, 407, 408,
1308 409, 410, 412, 417, 0, 418, 411, 413, 416, 413,
1309 422, 415, 421, 413, 425, 413, 419, 423, 414, 418,
1310 413, 430, 422, 420, 417, 421, 428, 427, 0, 424,
1311 420, 413, 426, 425, 413, 427, 413, 431, 432, 421,
1312 413, 425, 413, 423, 423, 426, 432, 413, 420, 420,
1313 420, 424, 430, 428, 427, 433, 424, 420, 434, 426,
1314 435, 431, 436, 437, 431, 432, 438, 439, 0, 433,
1315 437, 447, 442, 443, 441, 420, 0, 0, 435, 438,
1316
1317 434, 444, 433, 446, 436, 434, 441, 435, 445, 436,
1318 437, 0, 450, 438, 442, 443, 453, 456, 439, 442,
1319 443, 441, 447, 444, 449, 451, 445, 449, 444, 446,
1320 446, 452, 459, 454, 455, 445, 450, 451, 452, 450,
1321 453, 456, 458, 453, 456, 460, 459, 462, 457, 458,
1322 449, 449, 451, 467, 449, 454, 455, 457, 452, 459,
1323 454, 455, 461, 463, 464, 465, 466, 460, 0, 458,
1324 469, 462, 460, 468, 462, 457, 471, 478, 466, 463,
1325 467, 468, 0, 469, 461, 471, 472, 480, 477, 461,
1326 463, 473, 474, 466, 474, 464, 465, 469, 479, 473,
1327
1328 468, 477, 0, 471, 472, 483, 485, 481, 478, 480,
1329 482, 0, 484, 472, 480, 477, 486, 487, 473, 474,
1330 481, 0, 489, 482, 484, 486, 488, 483, 490, 479,
1331 489, 491, 483, 485, 481, 487, 490, 482, 492, 484,
1332 493, 495, 497, 486, 487, 0, 0, 495, 488, 489,
1333 492, 494, 493, 488, 491, 490, 500, 496, 491, 494,
1334 498, 503, 502, 497, 499, 492, 496, 493, 495, 497,
1335 504, 499, 498, 505, 500, 502, 507, 504, 494, 508,
1336 503, 506, 509, 500, 496, 506, 512, 498, 503, 502,
1337 507, 499, 510, 514, 511, 505, 513, 504, 515, 512,
1338
1339 505, 0, 0, 507, 516, 513, 0, 517, 509, 509,
1340 508, 0, 506, 512, 510, 519, 521, 0, 0, 510,
1341 511, 511, 524, 513, 514, 521, 516, 520, 518, 515,
1342 517, 516, 522, 518, 517, 518, 523, 518, 519, 520,
1343 528, 524, 519, 521, 523, 522, 518, 525, 526, 524,
1344 526, 529, 539, 527, 520, 518, 525, 530, 531, 522,
1345 518, 527, 518, 523, 518, 532, 534, 528, 533, 536,
1346 540, 537, 532, 535, 525, 526, 541, 545, 529, 530,
1347 527, 542, 535, 539, 530, 531, 543, 533, 534, 544,
1348 536, 537, 532, 534, 543, 533, 536, 549, 537, 542,
1349
1350 535, 540, 546, 547, 545, 544, 549, 541, 542, 546,
1351 547, 548, 551, 543, 550, 552, 544, 552, 548, 551,
1352 561, 555, 553, 557, 549, 555, 556, 556, 561, 546,
1353 547, 553, 557, 558, 560, 562, 559, 563, 548, 551,
1354 550, 550, 552, 559, 564, 563, 566, 561, 562, 553,
1355 557, 568, 555, 556, 565, 558, 567, 560, 569, 572,
1356 558, 560, 562, 559, 563, 567, 564, 571, 566, 568,
1357 569, 564, 574, 566, 565, 573, 570, 579, 568, 582,
1358 576, 565, 570, 567, 577, 569, 0, 578, 580, 571,
1359 572, 578, 577, 581, 571, 0, 580, 583, 574, 574,
1360
1361 584, 585, 576, 570, 579, 583, 573, 576, 584, 585,
1362 582, 577, 587, 586, 581, 580, 588, 589, 578, 590,
1363 581, 586, 588, 592, 583, 587, 591, 584, 585, 589,
1364 593, 594, 595, 596, 597, 598, 599, 592, 594, 587,
1365 586, 597, 602, 588, 589, 590, 590, 604, 593, 591,
1366 592, 605, 606, 591, 606, 596, 608, 593, 594, 595,
1367 596, 597, 607, 605, 609, 610, 598, 599, 608, 602,
1368 611, 604, 610, 614, 604, 613, 0, 612, 605, 606,
1369 623, 614, 0, 608, 607, 615, 617, 618, 0, 607,
1370 621, 609, 610, 612, 618, 617, 611, 611, 613, 619,
1371
1372 614, 620, 613, 622, 612, 627, 619, 615, 620, 624,
1373 625, 623, 615, 617, 618, 621, 624, 621, 628, 629,
1374 628, 630, 632, 635, 631, 622, 619, 627, 620, 632,
1375 622, 625, 627, 631, 633, 634, 624, 625, 636, 0,
1376 0, 640, 642, 629, 637, 628, 629, 630, 630, 632,
1377 635, 631, 638, 637, 640, 641, 633, 634, 645, 638,
1378 636, 633, 634, 639, 645, 636, 646, 643, 640, 641,
1379 639, 637, 651, 642, 643, 648, 644, 647, 646, 638,
1380 647, 653, 641, 644, 657, 645, 648, 652, 654, 653,
1381 639, 654, 655, 646, 643, 647, 651, 656, 659, 651,
1382
1383 663, 0, 648, 644, 647, 652, 654, 647, 653, 658,
1384 655, 657, 659, 660, 652, 654, 658, 661, 654, 655,
1385 662, 664, 660, 667, 665, 659, 663, 663, 656, 662,
1386 661, 668, 664, 665, 669, 0, 658, 672, 674, 670,
1387 660, 673, 675, 676, 661, 670, 674, 662, 664, 680,
1388 673, 665, 676, 675, 667, 669, 672, 679, 691, 681,
1389 678, 669, 668, 670, 672, 674, 670, 678, 673, 675,
1390 676, 680, 670, 682, 683, 685, 680, 684, 683, 686,
1391 679, 681, 687, 688, 679, 691, 681, 678, 689, 684,
1392 685, 682, 693, 690, 686, 697, 694, 689, 688, 692,
1393
1394 682, 683, 685, 695, 684, 696, 686, 698, 699, 695,
1395 688, 702, 696, 687, 690, 689, 700, 692, 704, 693,
1396 690, 705, 697, 705, 703, 706, 692, 694, 707, 708,
1397 695, 708, 696, 703, 698, 699, 708, 0, 709, 710,
1398 700, 0, 702, 700, 708, 709, 710, 711, 705, 704,
1399 714, 703, 706, 715, 711, 712, 708, 716, 708, 707,
1400 715, 712, 725, 708, 720, 709, 710, 713, 713, 717,
1401 718, 719, 719, 724, 711, 716, 714, 714, 721, 721,
1402 715, 722, 712, 727, 716, 728, 729, 0, 718, 717,
1403 720, 720, 722, 725, 713, 724, 717, 718, 719, 726,
1404
1405 724, 734, 730, 727, 729, 721, 726, 728, 722, 730,
1406 727, 731, 728, 729, 732, 733, 737, 736, 735, 734,
1407 739, 738, 732, 731, 735, 738, 726, 743, 734, 730,
1408 736, 740, 741, 742, 745, 744, 733, 744, 731, 747,
1409 748, 732, 733, 764, 736, 735, 740, 737, 742, 749,
1410 743, 739, 738, 750, 743, 748, 746, 751, 740, 752,
1411 742, 746, 744, 741, 753, 745, 758, 748, 0, 754,
1412 747, 0, 760, 756, 764, 766, 749, 758, 751, 768,
1413 750, 752, 767, 746, 751, 753, 752, 754, 756, 759,
1414 760, 753, 758, 758, 771, 765, 754, 773, 759, 760,
1415
1416 756, 766, 766, 770, 758, 765, 768, 767, 772, 767,
1417 770, 774, 773, 775, 772, 776, 759, 778, 777, 781,
1418 771, 771, 765, 779, 773, 777, 774, 776, 775, 782,
1419 770, 784, 780, 783, 783, 772, 785, 781, 774, 778,
1420 775, 780, 776, 786, 778, 777, 781, 787, 779, 790,
1421 779, 794, 0, 784, 791, 788, 782, 0, 784, 780,
1422 783, 785, 795, 785, 788, 786, 789, 792, 801, 787,
1423 786, 793, 797, 789, 787, 792, 791, 795, 794, 801,
1424 790, 791, 788, 796, 793, 798, 796, 802, 799, 795,
1425 797, 0, 807, 789, 792, 801, 800, 804, 793, 797,
1426
1427 798, 796, 799, 800, 805, 813, 805, 806, 802, 808,
1428 796, 811, 798, 796, 802, 799, 810, 817, 804, 807,
1429 809, 812, 816, 800, 804, 806, 818, 808, 809, 820,
1430 819, 805, 813, 811, 806, 812, 808, 821, 811, 810,
1431 816, 823, 822, 810, 817, 819, 830, 809, 812, 816,
1432 824, 820, 818, 818, 822, 826, 820, 819, 824, 825,
1433 821, 826, 831, 823, 821, 827, 828, 825, 823, 822,
1434 830, 832, 828, 830, 833, 834, 831, 824, 835, 837,
1435 827, 836, 826, 838, 840, 832, 825, 841, 839, 831,
1436 843, 844, 827, 828, 846, 836, 839, 0, 832, 845,
1437
1438 833, 833, 834, 848, 847, 835, 837, 845, 836, 849,
1439 838, 840, 843, 847, 841, 839, 851, 843, 844, 850,
1440 852, 846, 853, 855, 848, 857, 845, 858, 852, 865,
1441 848, 847, 0, 849, 850, 859, 849, 856, 856, 871,
1442 863, 861, 858, 851, 862, 850, 850, 852, 864, 853,
1443 855, 857, 857, 860, 858, 866, 862, 859, 863, 860,
1444 865, 850, 859, 861, 856, 868, 864, 863, 861, 869,
1445 871, 862, 868, 870, 874, 864, 872, 878, 866, 0,
1446 860, 876, 866, 879, 872, 877, 881, 869, 882, 874,
1447 880, 883, 868, 885, 884, 882, 869, 0, 883, 870,
1448
1449 870, 874, 872, 872, 878, 876, 879, 877, 876, 886,
1450 879, 872, 877, 881, 880, 882, 884, 880, 883, 888,
1451 887, 884, 893, 889, 885, 896, 890, 899, 901, 903,
1452 886, 887, 904, 0, 905, 906, 886, 909, 0, 0,
1453 906, 888, 889, 907, 912, 905, 888, 887, 893, 893,
1454 889, 890, 896, 890, 899, 901, 913, 914, 904, 904,
1455 903, 905, 906, 915, 909, 907, 912, 916, 917, 921,
1456 907, 912, 918, 919, 920, 922, 921, 917, 926, 914,
1457 923, 913, 916, 913, 914, 924, 924, 918, 919, 920,
1458 915, 929, 926, 930, 916, 917, 921, 925, 923, 918,
1459
1460 919, 920, 922, 927, 925, 926, 927, 923, 928, 931,
1461 933, 936, 924, 929, 934, 930, 937, 938, 929, 933,
1462 930, 928, 939, 940, 925, 937, 938, 941, 942, 936,
1463 927, 940, 0, 939, 943, 928, 931, 933, 936, 944,
1464 934, 934, 951, 937, 938, 945, 943, 944, 949, 939,
1465 940, 952, 945, 950, 941, 949, 953, 955, 957, 942,
1466 956, 943, 959, 952, 961, 953, 944, 964, 956, 951,
1467 962, 960, 945, 963, 967, 949, 960, 950, 952, 970,
1468 950, 966, 961, 953, 955, 957, 964, 956, 959, 959,
1469 968, 961, 962, 966, 964, 963, 967, 962, 960, 969,
1470
1471 963, 967, 971, 972, 973, 975, 970, 976, 966, 977,
1472 978, 969, 968, 980, 0, 985, 983, 968, 0, 0,
1473 979, 0, 976, 981, 983, 0, 969, 975, 978, 971,
1474 972, 973, 975, 977, 976, 986, 977, 978, 979, 980,
1475 980, 981, 985, 983, 984, 987, 988, 979, 990, 991,
1476 981, 993, 984, 986, 995, 0, 996, 1002, 998, 999,
1477 997, 995, 986, 991, 987, 1000, 990, 1001, 988, 1003,
1478 1004, 984, 987, 988, 1000, 990, 991, 0, 993, 0,
1479 1001, 995, 996, 996, 997, 998, 999, 997, 1002, 1010,
1480 1009, 1011, 1000, 1004, 1001, 1012, 1003, 1004, 1009, 1011,
1481
1482 1014, 1013, 1015, 1015, 1017, 1020, 1012, 1014, 1010, 1019,
1483 1021, 1017, 1016, 1030, 1020, 1022, 1010, 1009, 1011, 1026,
1484 0, 0, 1012, 1013, 1031, 1023, 1025, 1014, 1013, 1015,
1485 1016, 1017, 1020, 1019, 1026, 1030, 1019, 1021, 1022, 1016,
1486 1030, 1032, 1022, 1023, 1025, 1027, 1026, 1027, 1034, 1035,
1487 1031, 1031, 1023, 1025, 1036, 1037, 1038, 1035, 1040, 1032,
1488 1044, 1039, 1041, 1042, 1042, 1043, 1036, 1038, 1032, 1039,
1489 1034, 1045, 1027, 1043, 1047, 1034, 1035, 1040, 1050, 1048,
1490 1051, 1036, 1037, 1038, 1041, 1040, 1048, 1044, 1039, 1041,
1491 1042, 1049, 1043, 1045, 1052, 1053, 1049, 1054, 1045, 1055,
1492
1493 1056, 1047, 1052, 1057, 1054, 1050, 1048, 1051, 1060, 1059,
1494 1053, 1057, 1061, 1062, 1064, 1063, 0, 1066, 1049, 1068,
1495 0, 1052, 1053, 1069, 1054, 1073, 1055, 1056, 1072, 1074,
1496 1057, 1059, 1082, 0, 1078, 1060, 1059, 1063, 1086, 1061,
1497 1062, 1064, 1063, 1066, 1066, 1069, 1068, 1072, 1084, 1089,
1498 1069, 1074, 1073, 1077, 1087, 1072, 1074, 1078, 1089, 1082,
1499 1077, 1078, 1090, 1091, 1093, 1086, 1087, 1095, 0, 1096,
1500 1100, 1084, 1101, 1102, 1103, 1084, 1089, 1107, 1108, 1101,
1501 1077, 1087, 1095, 0, 0, 1107, 1105, 0, 0, 1090,
1502 1091, 1093, 1103, 1100, 1095, 1096, 1096, 1100, 1105, 1101,
1503
1504 1102, 1103, 1106, 0, 1107, 1108, 0, 0, 0, 0,
1505 0, 0, 0, 1105, 0, 1106, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 0, 0, 1106,
1507 1111, 1111, 1111, 1111, 1111, 1111, 1112, 1112, 1112, 1112,
1508 1112, 1112, 1113, 1113, 1113, 1113, 1113, 1113, 1114, 1114,
1509 1114, 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115,
1510 1117, 1117, 1117, 1117, 1117, 1117, 1118, 1118, 0, 0,
1511 1118, 1118, 1119, 1119, 0, 1119, 0, 1119, 1120, 0,
1512 0, 0, 0, 1120, 1121, 1121, 0, 0, 1121, 1121,
1513 1122, 0, 0, 0, 0, 1122, 1123, 1123, 1123, 1123,
1514
1515 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1110, 1110,
1516 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1517 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1518 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1519 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1520 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1521 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
1522 1110, 1110, 1110, 1110
1252 227, 239, 228, 229, 216, 0, 216, 216, 226, 232,
1253 230, 231, 282, 226, 234, 236, 216, 224, 216, 216,
1254 216, 230, 228, 216, 231, 233, 235, 234, 227, 238,
1255 240, 237, 232, 236, 233, 0, 232, 230, 231, 235,
1256
1257 241, 234, 236, 242, 235, 243, 244, 238, 245, 0,
1258 246, 240, 233, 235, 237, 247, 238, 240, 237, 248,
1259 252, 247, 241, 245, 244, 250, 235, 241, 251, 242,
1260 242, 253, 246, 244, 251, 245, 243, 246, 254, 252,
1261 258, 256, 247, 257, 259, 248, 248, 252, 256, 253,
1262 260, 250, 250, 254, 0, 251, 257, 261, 253, 267,
1263 0, 262, 258, 259, 269, 254, 261, 258, 256, 262,
1264 257, 259, 263, 264, 265, 266, 268, 270, 268, 263,
1265 264, 260, 266, 265, 261, 267, 267, 263, 262, 270,
1266 269, 269, 271, 273, 276, 275, 272, 263, 263, 263,
1267
1268 264, 273, 266, 268, 270, 265, 263, 271, 272, 279,
1269 265, 274, 276, 278, 263, 280, 274, 275, 277, 271,
1270 273, 276, 275, 272, 263, 278, 277, 281, 283, 285,
1271 284, 287, 279, 286, 288, 289, 279, 290, 274, 292,
1272 278, 281, 284, 283, 291, 277, 280, 286, 295, 0,
1273 293, 294, 0, 285, 281, 283, 285, 284, 287, 296,
1274 286, 288, 297, 299, 290, 303, 289, 300, 298, 0,
1275 292, 291, 293, 302, 294, 298, 307, 293, 294, 295,
1276 300, 304, 296, 301, 297, 299, 296, 0, 301, 297,
1277 299, 305, 301, 310, 300, 298, 303, 306, 307, 302,
1278
1279 302, 308, 309, 307, 311, 304, 0, 301, 304, 314,
1280 301, 306, 312, 305, 305, 301, 313, 310, 305, 301,
1281 310, 318, 314, 309, 306, 313, 315, 316, 311, 309,
1282 324, 311, 308, 317, 312, 320, 314, 317, 319, 312,
1283 305, 321, 324, 313, 322, 321, 323, 327, 315, 316,
1284 328, 322, 318, 315, 316, 0, 319, 324, 325, 320,
1285 329, 0, 320, 326, 317, 319, 330, 325, 331, 323,
1286 333, 322, 321, 323, 332, 326, 328, 328, 327, 331,
1287 334, 335, 332, 329, 333, 325, 336, 329, 330, 337,
1288 326, 347, 338, 330, 341, 331, 339, 333, 340, 0,
1289
1290 334, 332, 342, 335, 343, 339, 336, 334, 335, 344,
1291 358, 337, 341, 336, 338, 342, 337, 0, 340, 338,
1292 345, 341, 347, 339, 349, 340, 343, 353, 345, 342,
1293 348, 343, 350, 344, 356, 357, 344, 353, 360, 348,
1294 361, 358, 363, 349, 350, 0, 345, 345, 362, 361,
1295 362, 349, 356, 364, 353, 345, 365, 348, 357, 350,
1296 360, 356, 357, 359, 366, 360, 359, 361, 367, 363,
1297 370, 359, 368, 364, 369, 362, 366, 359, 359, 374,
1298 364, 369, 365, 365, 371, 373, 359, 376, 372, 370,
1299 359, 366, 375, 359, 367, 367, 368, 370, 359, 368,
1300
1301 372, 369, 377, 378, 359, 359, 374, 373, 376, 379,
1302 371, 371, 373, 380, 376, 372, 375, 381, 379, 375,
1303 382, 377, 378, 383, 384, 386, 387, 0, 0, 377,
1304 378, 388, 384, 392, 393, 380, 379, 381, 389, 387,
1305 380, 391, 393, 398, 381, 394, 389, 382, 396, 386,
1306 405, 384, 386, 387, 383, 399, 392, 388, 388, 391,
1307 392, 393, 389, 394, 395, 389, 397, 402, 391, 396,
1308 401, 406, 394, 389, 398, 396, 400, 395, 399, 397,
1309 403, 405, 399, 404, 400, 401, 403, 407, 408, 402,
1310 409, 395, 410, 397, 402, 406, 407, 401, 406, 410,
1311
1312 411, 412, 408, 400, 413, 414, 418, 403, 414, 404,
1313 404, 415, 422, 419, 407, 408, 413, 421, 418, 410,
1314 0, 409, 425, 417, 415, 417, 419, 411, 412, 420,
1315 421, 413, 414, 418, 426, 420, 0, 425, 415, 416,
1316 419, 416, 424, 422, 421, 416, 428, 416, 427, 425,
1317 417, 423, 416, 0, 429, 424, 420, 431, 423, 433,
1318 426, 426, 434, 416, 0, 428, 416, 429, 416, 424,
1319 427, 437, 416, 428, 416, 427, 423, 423, 423, 416,
1320 430, 429, 436, 435, 431, 423, 434, 438, 430, 434,
1321 433, 435, 440, 437, 439, 441, 436, 442, 437, 440,
1322
1323 444, 450, 445, 423, 446, 438, 0, 430, 441, 436,
1324 435, 447, 444, 449, 438, 452, 439, 448, 452, 440,
1325 0, 439, 441, 453, 445, 454, 446, 444, 442, 445,
1326 456, 446, 450, 447, 457, 448, 455, 454, 447, 449,
1327 449, 452, 452, 455, 448, 452, 458, 453, 459, 460,
1328 453, 462, 454, 461, 456, 463, 457, 456, 460, 464,
1329 461, 457, 467, 455, 465, 462, 468, 466, 458, 0,
1330 0, 470, 459, 458, 476, 459, 460, 463, 462, 471,
1331 461, 464, 463, 466, 469, 473, 464, 471, 465, 472,
1332 475, 465, 476, 467, 466, 477, 469, 468, 470, 475,
1333
1334 473, 476, 472, 477, 484, 478, 471, 478, 481, 482,
1335 483, 469, 473, 0, 0, 485, 472, 475, 0, 489,
1336 486, 481, 477, 487, 488, 490, 484, 492, 485, 493,
1337 491, 484, 478, 486, 490, 481, 488, 493, 499, 495,
1338 482, 483, 485, 496, 499, 487, 489, 486, 491, 492,
1339 487, 488, 490, 494, 492, 496, 493, 491, 500, 497,
1340 498, 494, 495, 501, 502, 499, 495, 500, 498, 506,
1341 496, 497, 503, 509, 504, 507, 502, 513, 512, 503,
1342 494, 508, 506, 511, 501, 500, 497, 498, 508, 510,
1343 501, 502, 504, 510, 507, 509, 506, 511, 515, 503,
1344
1345 509, 504, 507, 513, 513, 514, 516, 517, 508, 512,
1346 511, 518, 519, 520, 521, 0, 517, 524, 0, 516,
1347 510, 522, 523, 526, 515, 515, 522, 514, 522, 524,
1348 522, 0, 514, 516, 517, 520, 526, 521, 525, 522,
1349 520, 521, 518, 519, 524, 523, 527, 525, 522, 523,
1350 526, 528, 529, 522, 527, 522, 530, 522, 530, 531,
1351 532, 529, 533, 534, 535, 525, 0, 531, 536, 537,
1352 528, 538, 539, 527, 541, 536, 540, 543, 528, 529,
1353 544, 539, 545, 530, 546, 534, 531, 532, 537, 533,
1354 534, 535, 547, 538, 541, 536, 537, 540, 538, 539,
1355
1356 549, 541, 550, 540, 545, 548, 0, 551, 543, 545,
1357 547, 544, 554, 548, 551, 546, 549, 552, 553, 547,
1358 555, 554, 558, 556, 552, 553, 557, 549, 557, 550,
1359 556, 558, 548, 560, 551, 561, 561, 560, 563, 554,
1360 565, 564, 562, 567, 552, 553, 555, 555, 564, 558,
1361 556, 562, 0, 557, 569, 570, 567, 0, 566, 0,
1362 563, 571, 561, 565, 560, 563, 566, 565, 564, 562,
1363 567, 568, 573, 576, 0, 570, 569, 572, 575, 568,
1364 574, 569, 570, 571, 575, 566, 572, 577, 571, 578,
1365 573, 0, 574, 583, 581, 576, 579, 583, 568, 573,
1366
1367 576, 582, 584, 585, 572, 575, 586, 574, 587, 582,
1368 0, 585, 0, 0, 0, 595, 581, 588, 577, 0,
1369 578, 581, 579, 579, 583, 588, 589, 586, 582, 584,
1370 585, 593, 590, 586, 589, 591, 592, 593, 594, 587,
1371 590, 595, 595, 591, 588, 596, 597, 599, 598, 592,
1372 594, 600, 603, 589, 599, 601, 604, 602, 593, 590,
1373 597, 607, 591, 592, 602, 594, 598, 609, 596, 610,
1374 0, 612, 596, 597, 599, 598, 614, 601, 600, 615,
1375 629, 610, 601, 603, 602, 613, 615, 604, 607, 616,
1376 611, 609, 611, 612, 609, 617, 610, 613, 612, 620,
1377
1378 617, 619, 618, 614, 623, 621, 615, 620, 0, 627,
1379 0, 629, 613, 623, 624, 616, 616, 611, 618, 0,
1380 628, 624, 617, 625, 619, 631, 620, 621, 619, 618,
1381 625, 623, 621, 626, 627, 633, 627, 630, 641, 635,
1382 626, 624, 628, 634, 630, 634, 631, 628, 636, 637,
1383 625, 639, 631, 648, 638, 640, 646, 633, 637, 643,
1384 626, 638, 633, 635, 630, 641, 635, 642, 643, 646,
1385 634, 647, 644, 639, 636, 636, 637, 640, 639, 644,
1386 645, 638, 640, 646, 648, 647, 643, 645, 649, 642,
1387 650, 652, 0, 663, 642, 649, 651, 650, 647, 644,
1388
1389 654, 653, 651, 652, 653, 657, 658, 645, 659, 0,
1390 662, 654, 661, 0, 0, 649, 659, 650, 652, 653,
1391 663, 0, 660, 651, 658, 660, 673, 654, 653, 657,
1392 661, 653, 657, 658, 665, 659, 664, 666, 667, 661,
1393 660, 662, 669, 664, 668, 670, 666, 674, 665, 660,
1394 671, 667, 660, 668, 675, 678, 670, 673, 679, 671,
1395 676, 665, 680, 664, 666, 667, 676, 679, 669, 669,
1396 680, 668, 670, 684, 678, 675, 685, 671, 674, 681,
1397 684, 675, 678, 682, 676, 679, 686, 676, 698, 680,
1398 681, 689, 682, 676, 687, 688, 692, 690, 696, 685,
1399
1400 684, 690, 691, 685, 693, 694, 681, 696, 686, 689,
1401 682, 692, 695, 686, 691, 698, 687, 688, 689, 693,
1402 697, 687, 688, 692, 690, 696, 699, 695, 700, 691,
1403 701, 693, 702, 703, 709, 704, 694, 705, 702, 695,
1404 703, 697, 706, 707, 699, 710, 711, 697, 712, 713,
1405 712, 714, 0, 699, 710, 700, 715, 0, 715, 702,
1406 703, 701, 704, 715, 705, 709, 716, 707, 721, 706,
1407 707, 715, 710, 716, 717, 712, 713, 711, 719, 718,
1408 723, 717, 714, 715, 719, 715, 718, 720, 720, 722,
1409 715, 724, 725, 716, 721, 721, 722, 727, 723, 726,
1410
1411 726, 717, 728, 728, 729, 719, 718, 723, 731, 732,
1412 725, 724, 734, 0, 720, 729, 722, 0, 724, 725,
1413 733, 735, 744, 727, 727, 738, 726, 733, 736, 728,
1414 731, 729, 734, 740, 737, 731, 739, 738, 741, 734,
1415 732, 737, 746, 735, 739, 742, 736, 733, 735, 743,
1416 748, 742, 738, 744, 740, 736, 741, 750, 753, 747,
1417 740, 737, 743, 739, 745, 741, 757, 749, 745, 752,
1418 751, 752, 742, 746, 747, 755, 743, 756, 754, 0,
1419 750, 748, 749, 754, 750, 751, 747, 758, 759, 753,
1420 760, 772, 756, 757, 749, 745, 752, 751, 761, 767,
1421
1422 762, 764, 768, 773, 756, 754, 755, 774, 767, 759,
1423 766, 776, 760, 773, 758, 759, 764, 760, 762, 761,
1424 768, 766, 772, 0, 775, 761, 767, 762, 764, 768,
1425 773, 779, 778, 774, 774, 780, 766, 766, 776, 778,
1426 781, 780, 784, 785, 786, 782, 783, 788, 766, 775,
1427 785, 775, 787, 790, 784, 781, 788, 779, 779, 778,
1428 782, 783, 780, 789, 791, 791, 786, 781, 793, 784,
1429 785, 786, 782, 783, 788, 792, 794, 787, 795, 787,
1430 790, 789, 797, 796, 798, 799, 800, 0, 0, 797,
1431 789, 791, 796, 793, 800, 793, 802, 792, 794, 0,
1432
1433 795, 801, 792, 794, 803, 795, 805, 799, 804, 797,
1434 796, 804, 799, 800, 801, 798, 807, 806, 808, 803,
1435 810, 812, 815, 802, 805, 808, 804, 817, 801, 809,
1436 807, 803, 806, 805, 813, 804, 813, 814, 804, 816,
1437 809, 810, 812, 807, 806, 808, 819, 810, 812, 815,
1438 818, 821, 820, 822, 817, 814, 809, 816, 818, 826,
1439 828, 813, 827, 825, 814, 821, 816, 0, 830, 819,
1440 829, 831, 832, 819, 820, 828, 833, 818, 821, 820,
1441 822, 825, 839, 831, 833, 834, 826, 828, 827, 827,
1442 825, 830, 829, 834, 832, 830, 835, 829, 831, 832,
1443
1444 836, 837, 835, 833, 840, 841, 839, 837, 842, 839,
1445 843, 844, 834, 846, 847, 836, 845, 848, 840, 841,
1446 849, 850, 853, 835, 852, 848, 855, 836, 837, 860,
1447 845, 840, 841, 857, 842, 842, 856, 843, 844, 862,
1448 846, 847, 854, 845, 848, 856, 852, 849, 850, 853,
1449 854, 852, 858, 855, 857, 859, 860, 861, 864, 867,
1450 857, 865, 865, 856, 866, 861, 862, 868, 874, 854,
1451 859, 869, 0, 870, 867, 871, 858, 869, 872, 858,
1452 875, 859, 859, 873, 861, 864, 867, 871, 865, 868,
1453 866, 866, 880, 887, 868, 870, 872, 859, 869, 874,
1454
1455 870, 873, 871, 875, 877, 872, 879, 875, 881, 882,
1456 873, 877, 0, 884, 886, 887, 888, 882, 880, 880,
1457 887, 891, 889, 890, 879, 892, 895, 893, 884, 894,
1458 0, 877, 892, 879, 893, 882, 882, 896, 886, 881,
1459 884, 886, 897, 888, 882, 889, 898, 890, 891, 889,
1460 890, 894, 892, 897, 893, 899, 894, 895, 896, 900,
1461 913, 903, 906, 909, 896, 911, 0, 914, 898, 897,
1462 915, 916, 0, 898, 899, 919, 916, 917, 922, 924,
1463 925, 915, 899, 923, 900, 0, 900, 903, 903, 906,
1464 909, 913, 911, 914, 914, 0, 926, 915, 916, 917,
1465
1466 922, 924, 919, 927, 917, 922, 924, 925, 923, 928,
1467 923, 926, 927, 929, 930, 931, 932, 933, 934, 934,
1468 935, 0, 931, 926, 928, 936, 939, 935, 929, 930,
1469 927, 937, 940, 938, 937, 933, 928, 941, 952, 936,
1470 929, 930, 931, 932, 933, 934, 938, 935, 939, 944,
1471 946, 949, 936, 939, 940, 950, 943, 947, 937, 940,
1472 938, 948, 949, 950, 941, 943, 947, 951, 946, 952,
1473 948, 954, 960, 953, 955, 944, 944, 946, 949, 954,
1474 959, 955, 950, 943, 947, 953, 961, 959, 948, 965,
1475 962, 967, 0, 969, 951, 963, 960, 966, 954, 960,
1476
1477 953, 955, 962, 970, 963, 966, 972, 959, 970, 971,
1478 973, 976, 974, 961, 979, 980, 965, 962, 967, 969,
1479 969, 977, 963, 976, 966, 978, 979, 971, 972, 981,
1480 970, 974, 973, 972, 982, 983, 971, 973, 976, 974,
1481 986, 979, 980, 977, 985, 987, 988, 978, 977, 990,
1482 989, 0, 978, 995, 0, 986, 981, 993, 0, 1003,
1483 991, 982, 983, 996, 988, 993, 985, 986, 989, 987,
1484 997, 985, 987, 988, 994, 990, 990, 989, 991, 1001,
1485 995, 996, 994, 998, 993, 1000, 1003, 991, 1005, 997,
1486 996, 1006, 1007, 1001, 1008, 1005, 1009, 997, 1010, 1012,
1487
1488 1011, 994, 1013, 1000, 0, 998, 1001, 1010, 1014, 1020,
1489 998, 1023, 1000, 1011, 1019, 1005, 1007, 1006, 1006, 1007,
1490 0, 1008, 1019, 1009, 1021, 1010, 1022, 1011, 1020, 1013,
1491 1012, 1014, 1021, 1023, 1026, 1014, 1020, 1022, 1023, 1024,
1492 1027, 1019, 1025, 1025, 1029, 1030, 1024, 1027, 1031, 0,
1493 1032, 1021, 1026, 1022, 1030, 1036, 1033, 1037, 1035, 1037,
1494 1042, 1026, 1041, 0, 1040, 0, 1024, 1027, 1029, 1025,
1495 1036, 1029, 1030, 1032, 1033, 1031, 1035, 1032, 1042, 1044,
1496 1046, 1047, 1036, 1033, 1037, 1035, 1040, 1042, 1041, 1041,
1497 1045, 1040, 1046, 1048, 1049, 1050, 1051, 1053, 1045, 1052,
1498
1499 1052, 1044, 1049, 1054, 1048, 1053, 1044, 1046, 1047, 1055,
1500 1057, 1059, 1058, 1060, 1050, 1061, 1059, 1045, 1051, 1058,
1501 1048, 1049, 1050, 1051, 1053, 1062, 1052, 1064, 1063, 1065,
1502 1054, 1055, 1066, 1062, 1064, 1069, 1055, 1057, 1059, 1058,
1503 1060, 1067, 1061, 1063, 1070, 1071, 1072, 1073, 1074, 1067,
1504 1076, 1078, 1062, 0, 1064, 1063, 1065, 1069, 1079, 1066,
1505 1082, 1083, 1069, 1087, 1084, 1092, 1088, 1096, 1067, 1073,
1506 1087, 1070, 1071, 1072, 1073, 1074, 1076, 1076, 1078, 1082,
1507 1079, 1094, 1100, 1097, 1101, 1079, 1084, 1082, 1083, 1088,
1508 1087, 1084, 1092, 1088, 1096, 1097, 1099, 1103, 1105, 0,
1509
1510 1106, 1112, 0, 1113, 1094, 1099, 1110, 1111, 1094, 1100,
1511 1097, 1101, 1117, 1105, 1111, 1118, 0, 0, 0, 1115,
1512 1117, 1113, 1116, 1099, 1103, 1105, 1106, 1106, 1112, 1110,
1513 1113, 1115, 0, 1110, 1111, 1116, 0, 0, 0, 1117,
1514 0, 0, 1118, 0, 0, 0, 1115, 0, 0, 1116,
1515 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122,
1516 1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123, 1124, 1124,
1517 1124, 1124, 1124, 1124, 1125, 1125, 1125, 1125, 1125, 1125,
1518 1127, 1127, 1127, 1127, 1127, 1127, 1128, 1128, 0, 0,
1519 1128, 1128, 1129, 1129, 0, 1129, 0, 1129, 1130, 0,
1520
1521 0, 0, 0, 1130, 1131, 1131, 0, 0, 1131, 1131,
1522 1132, 0, 0, 0, 0, 1132, 1133, 1133, 1133, 1133,
1523 1133, 1133, 1134, 1134, 1134, 1134, 1134, 1134, 1120, 1120,
1524 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1525 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1526 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1527 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1528 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1529 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1530 1120, 1120, 1120, 1120
1531
15231532 } ;
15241533
15251534 static yy_state_type yy_last_accepting_state;
16461655 #define YY_NO_INPUT 1
16471656 #endif
16481657
1649 #line 1650 "<stdout>"
1658 #line 1659 "<stdout>"
16501659
16511660 #define INITIAL 0
16521661 #define quotedstring 1
18331842
18341843 #line 123 "util/configlexer.lex"
18351844
1836 #line 1837 "<stdout>"
1845 #line 1846 "<stdout>"
18371846
18381847 if ( !(yy_init) )
18391848 {
18921901 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
18931902 {
18941903 yy_current_state = (int) yy_def[yy_current_state];
1895 if ( yy_current_state >= 1111 )
1904 if ( yy_current_state >= 1121 )
18961905 yy_c = yy_meta[(unsigned int) yy_c];
18971906 }
18981907 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
18991908 ++yy_cp;
19001909 }
1901 while ( yy_base[yy_current_state] != 3209 );
1910 while ( yy_base[yy_current_state] != 3229 );
19021911
19031912 yy_find_action:
19041913 yy_act = yy_accept[yy_current_state];
23102319 case 77:
23112320 YY_RULE_SETUP
23122321 #line 202 "util/configlexer.lex"
2322 { YDVAR(1, VAR_VAL_LOG_LEVEL) }
2323 YY_BREAK
2324 case 78:
2325 YY_RULE_SETUP
2326 #line 203 "util/configlexer.lex"
23132327 { YDVAR(1, VAR_KEY_CACHE_SIZE) }
23142328 YY_BREAK
2315 case 78:
2316 YY_RULE_SETUP
2317 #line 203 "util/configlexer.lex"
2329 case 79:
2330 YY_RULE_SETUP
2331 #line 204 "util/configlexer.lex"
23182332 { YDVAR(1, VAR_KEY_CACHE_SLABS) }
23192333 YY_BREAK
2320 case 79:
2321 YY_RULE_SETUP
2322 #line 204 "util/configlexer.lex"
2334 case 80:
2335 YY_RULE_SETUP
2336 #line 205 "util/configlexer.lex"
23232337 { YDVAR(1, VAR_NEG_CACHE_SIZE) }
23242338 YY_BREAK
2325 case 80:
2326 YY_RULE_SETUP
2327 #line 205 "util/configlexer.lex"
2339 case 81:
2340 YY_RULE_SETUP
2341 #line 206 "util/configlexer.lex"
23282342 {
23292343 YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
23302344 YY_BREAK
2331 case 81:
2332 YY_RULE_SETUP
2333 #line 207 "util/configlexer.lex"
2345 case 82:
2346 YY_RULE_SETUP
2347 #line 208 "util/configlexer.lex"
23342348 { YDVAR(1, VAR_USE_SYSLOG) }
23352349 YY_BREAK
2336 case 82:
2337 YY_RULE_SETUP
2338 #line 208 "util/configlexer.lex"
2350 case 83:
2351 YY_RULE_SETUP
2352 #line 209 "util/configlexer.lex"
23392353 { YDVAR(1, VAR_LOG_TIME_ASCII) }
23402354 YY_BREAK
2341 case 83:
2342 YY_RULE_SETUP
2343 #line 209 "util/configlexer.lex"
2355 case 84:
2356 YY_RULE_SETUP
2357 #line 210 "util/configlexer.lex"
23442358 { YDVAR(2, VAR_LOCAL_ZONE) }
23452359 YY_BREAK
2346 case 84:
2347 YY_RULE_SETUP
2348 #line 210 "util/configlexer.lex"
2360 case 85:
2361 YY_RULE_SETUP
2362 #line 211 "util/configlexer.lex"
23492363 { YDVAR(1, VAR_LOCAL_DATA) }
23502364 YY_BREAK
2351 case 85:
2352 YY_RULE_SETUP
2353 #line 211 "util/configlexer.lex"
2365 case 86:
2366 YY_RULE_SETUP
2367 #line 212 "util/configlexer.lex"
23542368 { YDVAR(1, VAR_LOCAL_DATA_PTR) }
23552369 YY_BREAK
2356 case 86:
2357 YY_RULE_SETUP
2358 #line 212 "util/configlexer.lex"
2370 case 87:
2371 YY_RULE_SETUP
2372 #line 213 "util/configlexer.lex"
23592373 { YDVAR(1, VAR_STATISTICS_INTERVAL) }
23602374 YY_BREAK
2361 case 87:
2362 YY_RULE_SETUP
2363 #line 213 "util/configlexer.lex"
2375 case 88:
2376 YY_RULE_SETUP
2377 #line 214 "util/configlexer.lex"
23642378 { YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
23652379 YY_BREAK
2366 case 88:
2367 YY_RULE_SETUP
2368 #line 214 "util/configlexer.lex"
2380 case 89:
2381 YY_RULE_SETUP
2382 #line 215 "util/configlexer.lex"
23692383 { YDVAR(1, VAR_EXTENDED_STATISTICS) }
23702384 YY_BREAK
2371 case 89:
2372 YY_RULE_SETUP
2373 #line 215 "util/configlexer.lex"
2385 case 90:
2386 YY_RULE_SETUP
2387 #line 216 "util/configlexer.lex"
23742388 { YDVAR(0, VAR_REMOTE_CONTROL) }
23752389 YY_BREAK
2376 case 90:
2377 YY_RULE_SETUP
2378 #line 216 "util/configlexer.lex"
2390 case 91:
2391 YY_RULE_SETUP
2392 #line 217 "util/configlexer.lex"
23792393 { YDVAR(1, VAR_CONTROL_ENABLE) }
23802394 YY_BREAK
2381 case 91:
2382 YY_RULE_SETUP
2383 #line 217 "util/configlexer.lex"
2395 case 92:
2396 YY_RULE_SETUP
2397 #line 218 "util/configlexer.lex"
23842398 { YDVAR(1, VAR_CONTROL_INTERFACE) }
23852399 YY_BREAK
2386 case 92:
2387 YY_RULE_SETUP
2388 #line 218 "util/configlexer.lex"
2400 case 93:
2401 YY_RULE_SETUP
2402 #line 219 "util/configlexer.lex"
23892403 { YDVAR(1, VAR_CONTROL_PORT) }
23902404 YY_BREAK
2391 case 93:
2392 YY_RULE_SETUP
2393 #line 219 "util/configlexer.lex"
2405 case 94:
2406 YY_RULE_SETUP
2407 #line 220 "util/configlexer.lex"
23942408 { YDVAR(1, VAR_SERVER_KEY_FILE) }
23952409 YY_BREAK
2396 case 94:
2397 YY_RULE_SETUP
2398 #line 220 "util/configlexer.lex"
2410 case 95:
2411 YY_RULE_SETUP
2412 #line 221 "util/configlexer.lex"
23992413 { YDVAR(1, VAR_SERVER_CERT_FILE) }
24002414 YY_BREAK
2401 case 95:
2402 YY_RULE_SETUP
2403 #line 221 "util/configlexer.lex"
2415 case 96:
2416 YY_RULE_SETUP
2417 #line 222 "util/configlexer.lex"
24042418 { YDVAR(1, VAR_CONTROL_KEY_FILE) }
24052419 YY_BREAK
2406 case 96:
2407 YY_RULE_SETUP
2408 #line 222 "util/configlexer.lex"
2420 case 97:
2421 YY_RULE_SETUP
2422 #line 223 "util/configlexer.lex"
24092423 { YDVAR(1, VAR_CONTROL_CERT_FILE) }
24102424 YY_BREAK
2411 case 97:
2412 YY_RULE_SETUP
2413 #line 223 "util/configlexer.lex"
2425 case 98:
2426 YY_RULE_SETUP
2427 #line 224 "util/configlexer.lex"
24142428 { YDVAR(1, VAR_PYTHON_SCRIPT) }
24152429 YY_BREAK
2416 case 98:
2417 YY_RULE_SETUP
2418 #line 224 "util/configlexer.lex"
2430 case 99:
2431 YY_RULE_SETUP
2432 #line 225 "util/configlexer.lex"
24192433 { YDVAR(0, VAR_PYTHON) }
24202434 YY_BREAK
2421 case 99:
2422 YY_RULE_SETUP
2423 #line 225 "util/configlexer.lex"
2435 case 100:
2436 YY_RULE_SETUP
2437 #line 226 "util/configlexer.lex"
24242438 { YDVAR(1, VAR_DOMAIN_INSECURE) }
24252439 YY_BREAK
2426 case 100:
2427 /* rule 100 can match eol */
2428 YY_RULE_SETUP
2429 #line 226 "util/configlexer.lex"
2440 case 101:
2441 /* rule 101 can match eol */
2442 YY_RULE_SETUP
2443 #line 227 "util/configlexer.lex"
24302444 { LEXOUT(("NL\n")); cfg_parser->line++; }
24312445 YY_BREAK
24322446 /* Quoted strings. Strip leading and ending quotes */
2433 case 101:
2434 YY_RULE_SETUP
2435 #line 229 "util/configlexer.lex"
2447 case 102:
2448 YY_RULE_SETUP
2449 #line 230 "util/configlexer.lex"
24362450 { BEGIN(quotedstring); LEXOUT(("QS ")); }
24372451 YY_BREAK
24382452 case YY_STATE_EOF(quotedstring):
2439 #line 230 "util/configlexer.lex"
2453 #line 231 "util/configlexer.lex"
24402454 {
24412455 yyerror("EOF inside quoted string");
24422456 if(--num_args == 0) { BEGIN(INITIAL); }
24432457 else { BEGIN(val); }
24442458 }
24452459 YY_BREAK
2446 case 102:
2447 YY_RULE_SETUP
2448 #line 235 "util/configlexer.lex"
2460 case 103:
2461 YY_RULE_SETUP
2462 #line 236 "util/configlexer.lex"
24492463 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
24502464 YY_BREAK
2451 case 103:
2452 /* rule 103 can match eol */
2453 YY_RULE_SETUP
2454 #line 236 "util/configlexer.lex"
2465 case 104:
2466 /* rule 104 can match eol */
2467 YY_RULE_SETUP
2468 #line 237 "util/configlexer.lex"
24552469 { yyerror("newline inside quoted string, no end \"");
24562470 cfg_parser->line++; BEGIN(INITIAL); }
24572471 YY_BREAK
2458 case 104:
2459 YY_RULE_SETUP
2460 #line 238 "util/configlexer.lex"
2472 case 105:
2473 YY_RULE_SETUP
2474 #line 239 "util/configlexer.lex"
24612475 {
24622476 LEXOUT(("QE "));
24632477 if(--num_args == 0) { BEGIN(INITIAL); }
24702484 }
24712485 YY_BREAK
24722486 /* Single Quoted strings. Strip leading and ending quotes */
2473 case 105:
2474 YY_RULE_SETUP
2475 #line 250 "util/configlexer.lex"
2487 case 106:
2488 YY_RULE_SETUP
2489 #line 251 "util/configlexer.lex"
24762490 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
24772491 YY_BREAK
24782492 case YY_STATE_EOF(singlequotedstr):
2479 #line 251 "util/configlexer.lex"
2493 #line 252 "util/configlexer.lex"
24802494 {
24812495 yyerror("EOF inside quoted string");
24822496 if(--num_args == 0) { BEGIN(INITIAL); }
24832497 else { BEGIN(val); }
24842498 }
24852499 YY_BREAK
2486 case 106:
2487 YY_RULE_SETUP
2488 #line 256 "util/configlexer.lex"
2500 case 107:
2501 YY_RULE_SETUP
2502 #line 257 "util/configlexer.lex"
24892503 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
24902504 YY_BREAK
2491 case 107:
2492 /* rule 107 can match eol */
2493 YY_RULE_SETUP
2494 #line 257 "util/configlexer.lex"
2505 case 108:
2506 /* rule 108 can match eol */
2507 YY_RULE_SETUP
2508 #line 258 "util/configlexer.lex"
24952509 { yyerror("newline inside quoted string, no end '");
24962510 cfg_parser->line++; BEGIN(INITIAL); }
24972511 YY_BREAK
2498 case 108:
2499 YY_RULE_SETUP
2500 #line 259 "util/configlexer.lex"
2512 case 109:
2513 YY_RULE_SETUP
2514 #line 260 "util/configlexer.lex"
25012515 {
25022516 LEXOUT(("SQE "));
25032517 if(--num_args == 0) { BEGIN(INITIAL); }
25102524 }
25112525 YY_BREAK
25122526 /* include: directive */
2513 case 109:
2514 YY_RULE_SETUP
2515 #line 271 "util/configlexer.lex"
2527 case 110:
2528 YY_RULE_SETUP
2529 #line 272 "util/configlexer.lex"
25162530 {
25172531 LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
25182532 YY_BREAK
25192533 case YY_STATE_EOF(include):
2520 #line 273 "util/configlexer.lex"
2534 #line 274 "util/configlexer.lex"
25212535 {
25222536 yyerror("EOF inside include directive");
25232537 BEGIN(inc_prev);
25242538 }
25252539 YY_BREAK
2526 case 110:
2527 YY_RULE_SETUP
2528 #line 277 "util/configlexer.lex"
2540 case 111:
2541 YY_RULE_SETUP
2542 #line 278 "util/configlexer.lex"
25292543 { LEXOUT(("ISP ")); /* ignore */ }
25302544 YY_BREAK
2531 case 111:
2532 /* rule 111 can match eol */
2533 YY_RULE_SETUP
2534 #line 278 "util/configlexer.lex"
2545 case 112:
2546 /* rule 112 can match eol */
2547 YY_RULE_SETUP
2548 #line 279 "util/configlexer.lex"
25352549 { LEXOUT(("NL\n")); cfg_parser->line++;}
25362550 YY_BREAK
2537 case 112:
2538 YY_RULE_SETUP
2539 #line 279 "util/configlexer.lex"
2551 case 113:
2552 YY_RULE_SETUP
2553 #line 280 "util/configlexer.lex"
25402554 { LEXOUT(("IQS ")); BEGIN(include_quoted); }
25412555 YY_BREAK
2542 case 113:
2543 YY_RULE_SETUP
2544 #line 280 "util/configlexer.lex"
2556 case 114:
2557 YY_RULE_SETUP
2558 #line 281 "util/configlexer.lex"
25452559 {
25462560 LEXOUT(("Iunquotedstr(%s) ", yytext));
25472561 config_start_include(yytext);
25492563 }
25502564 YY_BREAK
25512565 case YY_STATE_EOF(include_quoted):
2552 #line 285 "util/configlexer.lex"
2566 #line 286 "util/configlexer.lex"
25532567 {
25542568 yyerror("EOF inside quoted string");
25552569 BEGIN(inc_prev);
25562570 }
25572571 YY_BREAK
2558 case 114:
2559 YY_RULE_SETUP
2560 #line 289 "util/configlexer.lex"
2572 case 115:
2573 YY_RULE_SETUP
2574 #line 290 "util/configlexer.lex"
25612575 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
25622576 YY_BREAK
2563 case 115:
2564 /* rule 115 can match eol */
2565 YY_RULE_SETUP
2566 #line 290 "util/configlexer.lex"
2577 case 116:
2578 /* rule 116 can match eol */
2579 YY_RULE_SETUP
2580 #line 291 "util/configlexer.lex"
25672581 { yyerror("newline before \" in include name");
25682582 cfg_parser->line++; BEGIN(inc_prev); }
25692583 YY_BREAK
2570 case 116:
2571 YY_RULE_SETUP
2572 #line 292 "util/configlexer.lex"
2584 case 117:
2585 YY_RULE_SETUP
2586 #line 293 "util/configlexer.lex"
25732587 {
25742588 LEXOUT(("IQE "));
25752589 yytext[yyleng - 1] = '\0';
25792593 YY_BREAK
25802594 case YY_STATE_EOF(INITIAL):
25812595 case YY_STATE_EOF(val):
2582 #line 298 "util/configlexer.lex"
2596 #line 299 "util/configlexer.lex"
25832597 {
25842598 yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
25852599 if (config_include_stack_ptr == 0) {
25902604 }
25912605 }
25922606 YY_BREAK
2593 case 117:
2594 YY_RULE_SETUP
2595 #line 308 "util/configlexer.lex"
2607 case 118:
2608 YY_RULE_SETUP
2609 #line 309 "util/configlexer.lex"
25962610 { LEXOUT(("unquotedstr(%s) ", yytext));
25972611 if(--num_args == 0) { BEGIN(INITIAL); }
25982612 yylval.str = strdup(yytext); return STRING_ARG; }
25992613 YY_BREAK
2600 case 118:
2601 YY_RULE_SETUP
2602 #line 312 "util/configlexer.lex"
2614 case 119:
2615 YY_RULE_SETUP
2616 #line 313 "util/configlexer.lex"
26032617 {
26042618 ub_c_error_msg("unknown keyword '%s'", yytext);
26052619 }
26062620 YY_BREAK
2607 case 119:
2608 YY_RULE_SETUP
2609 #line 316 "util/configlexer.lex"
2621 case 120:
2622 YY_RULE_SETUP
2623 #line 317 "util/configlexer.lex"
26102624 {
26112625 ub_c_error_msg("stray '%s'", yytext);
26122626 }
26132627 YY_BREAK
2614 case 120:
2615 YY_RULE_SETUP
2616 #line 320 "util/configlexer.lex"
2628 case 121:
2629 YY_RULE_SETUP
2630 #line 321 "util/configlexer.lex"
26172631 ECHO;
26182632 YY_BREAK
2619 #line 2620 "<stdout>"
2633 #line 2634 "<stdout>"
26202634
26212635 case YY_END_OF_BUFFER:
26222636 {
29062920 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
29072921 {
29082922 yy_current_state = (int) yy_def[yy_current_state];
2909 if ( yy_current_state >= 1111 )
2923 if ( yy_current_state >= 1121 )
29102924 yy_c = yy_meta[(unsigned int) yy_c];
29112925 }
29122926 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
29342948 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
29352949 {
29362950 yy_current_state = (int) yy_def[yy_current_state];
2937 if ( yy_current_state >= 1111 )
2951 if ( yy_current_state >= 1121 )
29382952 yy_c = yy_meta[(unsigned int) yy_c];
29392953 }
29402954 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2941 yy_is_jam = (yy_current_state == 1110);
2955 yy_is_jam = (yy_current_state == 1120);
29422956
29432957 return yy_is_jam ? 0 : yy_current_state;
29442958 }
35753589
35763590 #define YYTABLES_NAME "yytables"
35773591
3578 #line 320 "util/configlexer.lex"
3579
3580
3581
3592 #line 321 "util/configlexer.lex"
3593
3594
3595
198198 val-bogus-ttl{COLON} { YDVAR(1, VAR_BOGUS_TTL) }
199199 val-clean-additional{COLON} { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
200200 val-permissive-mode{COLON} { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
201 val-log-level{COLON} { YDVAR(1, VAR_VAL_LOG_LEVEL) }
201202 key-cache-size{COLON} { YDVAR(1, VAR_KEY_CACHE_SIZE) }
202203 key-cache-slabs{COLON} { YDVAR(1, VAR_KEY_CACHE_SLABS) }
203204 neg-cache-size{COLON} { YDVAR(1, VAR_NEG_CACHE_SIZE) }
227227 VAR_PYTHON_SCRIPT = 359,
228228 VAR_VAL_SIG_SKEW_MIN = 360,
229229 VAR_VAL_SIG_SKEW_MAX = 361,
230 VAR_CACHE_MIN_TTL = 362
230 VAR_CACHE_MIN_TTL = 362,
231 VAR_VAL_LOG_LEVEL = 363
231232 };
232233 #endif
233234 /* Tokens. */
336337 #define VAR_VAL_SIG_SKEW_MIN 360
337338 #define VAR_VAL_SIG_SKEW_MAX 361
338339 #define VAR_CACHE_MIN_TTL 362
340 #define VAR_VAL_LOG_LEVEL 363
339341
340342
341343
352354
353355
354356 /* Line 214 of yacc.c */
355 #line 357 "util/configparser.c"
357 #line 359 "util/configparser.c"
356358 } YYSTYPE;
357359 # define YYSTYPE_IS_TRIVIAL 1
358360 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
364366
365367
366368 /* Line 264 of yacc.c */
367 #line 369 "util/configparser.c"
369 #line 371 "util/configparser.c"
368370
369371 #ifdef short
370372 # undef short
579581 /* YYFINAL -- State number of the termination state. */
580582 #define YYFINAL 2
581583 /* YYLAST -- Last index in YYTABLE. */
582 #define YYLAST 199
584 #define YYLAST 200
583585
584586 /* YYNTOKENS -- Number of terminals. */
585 #define YYNTOKENS 108
587 #define YYNTOKENS 109
586588 /* YYNNTS -- Number of nonterminals. */
587 #define YYNNTS 111
589 #define YYNNTS 112
588590 /* YYNRULES -- Number of rules. */
589 #define YYNRULES 209
591 #define YYNRULES 211
590592 /* YYNRULES -- Number of states. */
591 #define YYNSTATES 305
593 #define YYNSTATES 308
592594
593595 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
594596 #define YYUNDEFTOK 2
595 #define YYMAXUTOK 362
597 #define YYMAXUTOK 363
596598
597599 #define YYTRANSLATE(YYX) \
598600 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
636638 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
637639 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
638640 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
639 105, 106, 107
641 105, 106, 107, 108
640642 };
641643
642644 #if YYDEBUG
653655 124, 126, 128, 130, 132, 134, 136, 138, 140, 142,
654656 144, 146, 148, 150, 152, 154, 156, 158, 160, 162,
655657 164, 166, 168, 170, 172, 174, 176, 178, 180, 182,
656 184, 186, 189, 190, 192, 194, 196, 198, 200, 203,
657 204, 206, 208, 210, 213, 216, 219, 222, 225, 228,
658 231, 234, 237, 240, 243, 246, 249, 252, 255, 258,
659 261, 264, 267, 270, 273, 276, 279, 282, 285, 288,
660 291, 294, 297, 300, 303, 306, 309, 312, 315, 318,
661 321, 324, 327, 330, 333, 336, 339, 342, 345, 348,
662 351, 354, 357, 360, 363, 366, 369, 372, 375, 378,
663 381, 384, 387, 390, 393, 397, 400, 403, 406, 409,
664 412, 415, 418, 421, 424, 427, 430, 433, 436, 440,
665 443, 446, 449, 452, 455, 458, 461, 464, 467, 469,
666 472, 473, 475, 477, 479, 481, 483, 485, 487, 490,
667 493, 496, 499, 502, 505, 508, 510, 513, 514, 516
658 184, 186, 188, 191, 192, 194, 196, 198, 200, 202,
659 205, 206, 208, 210, 212, 215, 218, 221, 224, 227,
660 230, 233, 236, 239, 242, 245, 248, 251, 254, 257,
661 260, 263, 266, 269, 272, 275, 278, 281, 284, 287,
662 290, 293, 296, 299, 302, 305, 308, 311, 314, 317,
663 320, 323, 326, 329, 332, 335, 338, 341, 344, 347,
664 350, 353, 356, 359, 362, 365, 368, 371, 374, 377,
665 380, 383, 386, 389, 392, 395, 399, 402, 405, 408,
666 411, 414, 417, 420, 423, 426, 429, 432, 435, 438,
667 441, 445, 448, 451, 454, 457, 460, 463, 466, 469,
668 472, 474, 477, 478, 480, 482, 484, 486, 488, 490,
669 492, 495, 498, 501, 504, 507, 510, 513, 515, 518,
670 519, 521
668671 };
669672
670673 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
671674 static const yytype_int16 yyrhs[] =
672675 {
673 109, 0, -1, -1, 109, 110, -1, 111, 112, -1,
674 114, 115, -1, 117, 118, -1, 215, 216, -1, 205,
675 206, -1, 11, -1, 112, 113, -1, -1, 120, -1,
676 121, -1, 125, -1, 128, -1, 134, -1, 135, -1,
677 136, -1, 137, -1, 126, -1, 141, -1, 142, -1,
678 143, -1, 144, -1, 145, -1, 158, -1, 159, -1,
679 160, -1, 162, -1, 163, -1, 131, -1, 164, -1,
680 165, -1, 168, -1, 166, -1, 167, -1, 169, -1,
681 170, -1, 171, -1, 179, -1, 153, -1, 154, -1,
682 155, -1, 156, -1, 172, -1, 182, -1, 149, -1,
683 151, -1, 183, -1, 188, -1, 189, -1, 190, -1,
684 132, -1, 157, -1, 192, -1, 193, -1, 150, -1,
685 191, -1, 139, -1, 127, -1, 146, -1, 180, -1,
686 186, -1, 173, -1, 181, -1, 195, -1, 196, -1,
687 133, -1, 122, -1, 138, -1, 175, -1, 123, -1,
688 129, -1, 130, -1, 147, -1, 148, -1, 194, -1,
689 174, -1, 176, -1, 177, -1, 124, -1, 197, -1,
690 161, -1, 178, -1, 140, -1, 152, -1, 184, -1,
691 185, -1, 187, -1, 38, -1, 115, 116, -1, -1,
692 198, -1, 199, -1, 200, -1, 201, -1, 44, -1,
693 118, 119, -1, -1, 202, -1, 203, -1, 204, -1,
694 13, 10, -1, 12, 10, -1, 76, 10, -1, 79,
695 10, -1, 96, 10, -1, 14, 10, -1, 16, 10,
696 -1, 67, 10, -1, 15, 10, -1, 80, 10, -1,
697 81, 10, -1, 31, 10, -1, 60, 10, -1, 75,
698 10, -1, 17, 10, -1, 18, 10, -1, 19, 10,
699 -1, 20, 10, -1, 77, 10, -1, 66, 10, -1,
700 101, 10, -1, 21, 10, -1, 22, 10, -1, 23,
701 10, -1, 24, 10, -1, 25, 10, -1, 68, 10,
702 -1, 82, 10, -1, 83, 10, -1, 54, 10, -1,
703 64, 10, -1, 55, 10, -1, 102, 10, -1, 48,
704 10, -1, 49, 10, -1, 50, 10, -1, 51, 10,
705 -1, 61, 10, -1, 26, 10, -1, 27, 10, -1,
706 28, 10, -1, 98, 10, -1, 29, 10, -1, 30,
707 10, -1, 32, 10, -1, 33, 10, -1, 35, 10,
708 -1, 36, 10, -1, 34, 10, -1, 41, 10, -1,
709 42, 10, -1, 43, 10, -1, 52, 10, -1, 71,
710 10, -1, 85, 10, -1, 78, 10, -1, 86, 10,
711 -1, 87, 10, -1, 100, 10, -1, 47, 10, -1,
712 69, 10, -1, 72, 10, 10, -1, 53, 10, -1,
713 56, 10, -1, 105, 10, -1, 106, 10, -1, 70,
714 10, -1, 107, 10, -1, 57, 10, -1, 58, 10,
715 -1, 59, 10, -1, 65, 10, -1, 62, 10, -1,
716 63, 10, -1, 84, 10, -1, 73, 10, 10, -1,
717 74, 10, -1, 97, 10, -1, 37, 10, -1, 39,
718 10, -1, 40, 10, -1, 99, 10, -1, 37, 10,
719 -1, 45, 10, -1, 46, 10, -1, 88, -1, 206,
720 207, -1, -1, 208, -1, 210, -1, 209, -1, 211,
721 -1, 212, -1, 213, -1, 214, -1, 89, 10, -1,
722 91, 10, -1, 90, 10, -1, 92, 10, -1, 93,
723 10, -1, 94, 10, -1, 95, 10, -1, 103, -1,
724 216, 217, -1, -1, 218, -1, 104, 10, -1
676 110, 0, -1, -1, 110, 111, -1, 112, 113, -1,
677 115, 116, -1, 118, 119, -1, 217, 218, -1, 207,
678 208, -1, 11, -1, 113, 114, -1, -1, 121, -1,
679 122, -1, 126, -1, 129, -1, 135, -1, 136, -1,
680 137, -1, 138, -1, 127, -1, 142, -1, 143, -1,
681 144, -1, 145, -1, 146, -1, 159, -1, 160, -1,
682 161, -1, 163, -1, 164, -1, 132, -1, 165, -1,
683 166, -1, 169, -1, 167, -1, 168, -1, 170, -1,
684 171, -1, 172, -1, 180, -1, 154, -1, 155, -1,
685 156, -1, 157, -1, 173, -1, 183, -1, 150, -1,
686 152, -1, 184, -1, 189, -1, 190, -1, 191, -1,
687 133, -1, 158, -1, 194, -1, 195, -1, 151, -1,
688 193, -1, 140, -1, 128, -1, 147, -1, 181, -1,
689 187, -1, 174, -1, 182, -1, 197, -1, 198, -1,
690 134, -1, 123, -1, 139, -1, 176, -1, 124, -1,
691 130, -1, 131, -1, 148, -1, 149, -1, 196, -1,
692 175, -1, 177, -1, 178, -1, 125, -1, 199, -1,
693 162, -1, 179, -1, 141, -1, 153, -1, 185, -1,
694 186, -1, 188, -1, 192, -1, 38, -1, 116, 117,
695 -1, -1, 200, -1, 201, -1, 202, -1, 203, -1,
696 44, -1, 119, 120, -1, -1, 204, -1, 205, -1,
697 206, -1, 13, 10, -1, 12, 10, -1, 76, 10,
698 -1, 79, 10, -1, 96, 10, -1, 14, 10, -1,
699 16, 10, -1, 67, 10, -1, 15, 10, -1, 80,
700 10, -1, 81, 10, -1, 31, 10, -1, 60, 10,
701 -1, 75, 10, -1, 17, 10, -1, 18, 10, -1,
702 19, 10, -1, 20, 10, -1, 77, 10, -1, 66,
703 10, -1, 101, 10, -1, 21, 10, -1, 22, 10,
704 -1, 23, 10, -1, 24, 10, -1, 25, 10, -1,
705 68, 10, -1, 82, 10, -1, 83, 10, -1, 54,
706 10, -1, 64, 10, -1, 55, 10, -1, 102, 10,
707 -1, 48, 10, -1, 49, 10, -1, 50, 10, -1,
708 51, 10, -1, 61, 10, -1, 26, 10, -1, 27,
709 10, -1, 28, 10, -1, 98, 10, -1, 29, 10,
710 -1, 30, 10, -1, 32, 10, -1, 33, 10, -1,
711 35, 10, -1, 36, 10, -1, 34, 10, -1, 41,
712 10, -1, 42, 10, -1, 43, 10, -1, 52, 10,
713 -1, 71, 10, -1, 85, 10, -1, 78, 10, -1,
714 86, 10, -1, 87, 10, -1, 100, 10, -1, 47,
715 10, -1, 69, 10, -1, 72, 10, 10, -1, 53,
716 10, -1, 56, 10, -1, 105, 10, -1, 106, 10,
717 -1, 70, 10, -1, 107, 10, -1, 57, 10, -1,
718 58, 10, -1, 59, 10, -1, 108, 10, -1, 65,
719 10, -1, 62, 10, -1, 63, 10, -1, 84, 10,
720 -1, 73, 10, 10, -1, 74, 10, -1, 97, 10,
721 -1, 37, 10, -1, 39, 10, -1, 40, 10, -1,
722 99, 10, -1, 37, 10, -1, 45, 10, -1, 46,
723 10, -1, 88, -1, 208, 209, -1, -1, 210, -1,
724 212, -1, 211, -1, 213, -1, 214, -1, 215, -1,
725 216, -1, 89, 10, -1, 91, 10, -1, 90, 10,
726 -1, 92, 10, -1, 93, 10, -1, 94, 10, -1,
727 95, 10, -1, 103, -1, 218, 219, -1, -1, 220,
728 -1, 104, 10, -1
725729 };
726730
727731 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
736740 138, 138, 139, 139, 140, 140, 141, 141, 141, 142,
737741 142, 143, 143, 144, 144, 145, 145, 145, 146, 146,
738742 147, 147, 148, 148, 149, 149, 150, 150, 151, 151,
739 153, 165, 166, 167, 167, 167, 167, 169, 181, 182,
740 183, 183, 183, 185, 194, 203, 214, 223, 232, 241,
741 254, 269, 278, 287, 296, 305, 314, 323, 332, 341,
742 350, 359, 368, 382, 391, 398, 405, 412, 420, 427,
743 434, 441, 448, 456, 464, 471, 478, 487, 496, 503,
744 510, 521, 529, 542, 551, 560, 568, 581, 590, 599,
745 608, 617, 630, 637, 647, 657, 667, 677, 687, 697,
746 704, 711, 720, 727, 737, 751, 758, 776, 789, 802,
747 811, 820, 829, 839, 849, 856, 864, 877, 885, 905,
748 912, 927, 934, 941, 948, 958, 965, 972, 979, 984,
749 985, 986, 986, 986, 987, 987, 987, 988, 990, 1000,
750 1009, 1016, 1023, 1030, 1037, 1044, 1049, 1050, 1051, 1053
743 151, 153, 165, 166, 167, 167, 167, 167, 169, 181,
744 182, 183, 183, 183, 185, 194, 203, 214, 223, 232,
745 241, 254, 269, 278, 287, 296, 305, 314, 323, 332,
746 341, 350, 359, 368, 382, 391, 398, 405, 412, 420,
747 427, 434, 441, 448, 456, 464, 471, 478, 487, 496,
748 503, 510, 521, 529, 542, 551, 560, 568, 581, 590,
749 599, 608, 617, 630, 637, 647, 657, 667, 677, 687,
750 697, 704, 711, 720, 727, 737, 751, 758, 776, 789,
751 802, 811, 820, 829, 839, 849, 857, 864, 872, 885,
752 893, 913, 920, 935, 942, 949, 956, 966, 973, 980,
753 987, 992, 993, 994, 994, 994, 995, 995, 995, 996,
754 998, 1008, 1017, 1024, 1031, 1038, 1045, 1052, 1057, 1058,
755 1059, 1061
751756 };
752757 #endif
753758
790795 "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII",
791796 "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT",
792797 "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_CACHE_MIN_TTL",
793 "$accept", "toplevelvars", "toplevelvar", "serverstart",
794 "contents_server", "content_server", "stubstart", "contents_stub",
795 "content_stub", "forwardstart", "contents_forward", "content_forward",
796 "server_num_threads", "server_verbosity", "server_statistics_interval",
797 "server_statistics_cumulative", "server_extended_statistics",
798 "server_port", "server_interface", "server_outgoing_interface",
799 "server_outgoing_range", "server_outgoing_port_permit",
800 "server_outgoing_port_avoid", "server_outgoing_num_tcp",
801 "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4",
802 "server_do_ip6", "server_do_udp", "server_do_tcp", "server_do_daemonize",
798 "VAR_VAL_LOG_LEVEL", "$accept", "toplevelvars", "toplevelvar",
799 "serverstart", "contents_server", "content_server", "stubstart",
800 "contents_stub", "content_stub", "forwardstart", "contents_forward",
801 "content_forward", "server_num_threads", "server_verbosity",
802 "server_statistics_interval", "server_statistics_cumulative",
803 "server_extended_statistics", "server_port", "server_interface",
804 "server_outgoing_interface", "server_outgoing_range",
805 "server_outgoing_port_permit", "server_outgoing_port_avoid",
806 "server_outgoing_num_tcp", "server_incoming_num_tcp",
807 "server_interface_automatic", "server_do_ip4", "server_do_ip6",
808 "server_do_udp", "server_do_tcp", "server_do_daemonize",
803809 "server_use_syslog", "server_log_time_ascii", "server_chroot",
804810 "server_username", "server_directory", "server_logfile",
805811 "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
823829 "server_val_sig_skew_min", "server_val_sig_skew_max",
824830 "server_cache_max_ttl", "server_cache_min_ttl", "server_bogus_ttl",
825831 "server_val_clean_additional", "server_val_permissive_mode",
826 "server_val_nsec3_keysize_iterations", "server_key_cache_size",
827 "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone",
828 "server_local_data", "server_local_data_ptr", "stub_name", "stub_host",
829 "stub_addr", "stub_prime", "forward_name", "forward_host",
830 "forward_addr", "rcstart", "contents_rc", "content_rc",
831 "rc_control_enable", "rc_control_port", "rc_control_interface",
832 "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file",
833 "rc_control_cert_file", "pythonstart", "contents_py", "content_py",
834 "py_script", 0
832 "server_val_log_level", "server_val_nsec3_keysize_iterations",
833 "server_key_cache_size", "server_key_cache_slabs",
834 "server_neg_cache_size", "server_local_zone", "server_local_data",
835 "server_local_data_ptr", "stub_name", "stub_host", "stub_addr",
836 "stub_prime", "forward_name", "forward_host", "forward_addr", "rcstart",
837 "contents_rc", "content_rc", "rc_control_enable", "rc_control_port",
838 "rc_control_interface", "rc_server_key_file", "rc_server_cert_file",
839 "rc_control_key_file", "rc_control_cert_file", "pythonstart",
840 "contents_py", "content_py", "py_script", 0
835841 };
836842 #endif
837843
850856 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
851857 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
852858 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
853 355, 356, 357, 358, 359, 360, 361, 362
859 355, 356, 357, 358, 359, 360, 361, 362, 363
854860 };
855861 # endif
856862
857863 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
858864 static const yytype_uint8 yyr1[] =
859865 {
860 0, 108, 109, 109, 110, 110, 110, 110, 110, 111,
861 112, 112, 113, 113, 113, 113, 113, 113, 113, 113,
862 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
863 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
864 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
865 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
866 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
867 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
868 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
869 114, 115, 115, 116, 116, 116, 116, 117, 118, 118,
870 119, 119, 119, 120, 121, 122, 123, 124, 125, 126,
866 0, 109, 110, 110, 111, 111, 111, 111, 111, 112,
867 113, 113, 114, 114, 114, 114, 114, 114, 114, 114,
868 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
869 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
870 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
871 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
872 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
873 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
874 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
875 114, 115, 116, 116, 117, 117, 117, 117, 118, 119,
876 119, 120, 120, 120, 121, 122, 123, 124, 125, 126,
871877 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
872878 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
873879 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
876882 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
877883 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
878884 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
879 206, 207, 207, 207, 207, 207, 207, 207, 208, 209,
880 210, 211, 212, 213, 214, 215, 216, 216, 217, 218
885 207, 208, 208, 209, 209, 209, 209, 209, 209, 209,
886 210, 211, 212, 213, 214, 215, 216, 217, 218, 218,
887 219, 220
881888 };
882889
883890 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
892899 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
893900 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
894901 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
895 1, 2, 0, 1, 1, 1, 1, 1, 2, 0,
896 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
902 1, 1, 2, 0, 1, 1, 1, 1, 1, 2,
903 0, 1, 1, 1, 2, 2, 2, 2, 2, 2,
897904 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
898905 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
899906 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
900907 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
901908 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
902 2, 2, 2, 2, 3, 2, 2, 2, 2, 2,
903 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
904 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
905 0, 1, 1, 1, 1, 1, 1, 1, 2, 2,
906 2, 2, 2, 2, 2, 1, 2, 0, 1, 2
909 2, 2, 2, 2, 2, 3, 2, 2, 2, 2,
910 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
911 3, 2, 2, 2, 2, 2, 2, 2, 2, 2,
912 1, 2, 0, 1, 1, 1, 1, 1, 1, 1,
913 2, 2, 2, 2, 2, 2, 2, 1, 2, 0,
914 1, 2
907915 };
908916
909917 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
911919 means the default is an error. */
912920 static const yytype_uint8 yydefact[] =
913921 {
914 2, 0, 1, 9, 90, 97, 188, 205, 3, 11,
915 92, 99, 190, 207, 4, 5, 6, 8, 7, 0,
922 2, 0, 1, 9, 91, 98, 190, 207, 3, 11,
923 93, 100, 192, 209, 4, 5, 6, 8, 7, 0,
916924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
920928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
922930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
923 0, 0, 0, 0, 0, 0, 0, 10, 12, 13,
924 69, 72, 81, 14, 20, 60, 15, 73, 74, 31,
925 53, 68, 16, 17, 18, 19, 70, 59, 85, 21,
926 22, 23, 24, 25, 61, 75, 76, 47, 57, 48,
927 86, 41, 42, 43, 44, 54, 26, 27, 28, 83,
928 29, 30, 32, 33, 35, 36, 34, 37, 38, 39,
929 45, 64, 78, 71, 79, 80, 84, 40, 62, 65,
930 46, 49, 87, 88, 63, 89, 50, 51, 52, 58,
931 55, 56, 77, 66, 67, 82, 0, 0, 0, 0,
932 91, 93, 94, 95, 96, 0, 0, 0, 98, 100,
933 101, 102, 0, 0, 0, 0, 0, 0, 0, 189,
934 191, 193, 192, 194, 195, 196, 197, 0, 206, 208,
935 104, 103, 108, 111, 109, 117, 118, 119, 120, 124,
936 125, 126, 127, 128, 141, 142, 143, 145, 146, 114,
937 147, 148, 151, 149, 150, 152, 153, 154, 162, 136,
938 137, 138, 139, 155, 165, 132, 134, 166, 171, 172,
939 173, 115, 140, 175, 176, 133, 174, 122, 110, 129,
940 163, 169, 156, 0, 0, 179, 116, 105, 121, 158,
941 106, 112, 113, 130, 131, 177, 157, 159, 160, 107,
942 180, 144, 161, 123, 135, 167, 168, 170, 181, 182,
943 183, 184, 185, 186, 187, 198, 200, 199, 201, 202,
944 203, 204, 209, 164, 178
931 0, 0, 0, 0, 0, 0, 0, 0, 10, 12,
932 13, 69, 72, 81, 14, 20, 60, 15, 73, 74,
933 31, 53, 68, 16, 17, 18, 19, 70, 59, 85,
934 21, 22, 23, 24, 25, 61, 75, 76, 47, 57,
935 48, 86, 41, 42, 43, 44, 54, 26, 27, 28,
936 83, 29, 30, 32, 33, 35, 36, 34, 37, 38,
937 39, 45, 64, 78, 71, 79, 80, 84, 40, 62,
938 65, 46, 49, 87, 88, 63, 89, 50, 51, 52,
939 90, 58, 55, 56, 77, 66, 67, 82, 0, 0,
940 0, 0, 92, 94, 95, 96, 97, 0, 0, 0,
941 99, 101, 102, 103, 0, 0, 0, 0, 0, 0,
942 0, 191, 193, 195, 194, 196, 197, 198, 199, 0,
943 208, 210, 105, 104, 109, 112, 110, 118, 119, 120,
944 121, 125, 126, 127, 128, 129, 142, 143, 144, 146,
945 147, 115, 148, 149, 152, 150, 151, 153, 154, 155,
946 163, 137, 138, 139, 140, 156, 166, 133, 135, 167,
947 172, 173, 174, 116, 141, 177, 178, 134, 176, 123,
948 111, 130, 164, 170, 157, 0, 0, 181, 117, 106,
949 122, 159, 107, 113, 114, 131, 132, 179, 158, 160,
950 161, 108, 182, 145, 162, 124, 136, 168, 169, 171,
951 175, 183, 184, 185, 186, 187, 188, 189, 200, 202,
952 201, 203, 204, 205, 206, 211, 165, 180
945953 };
946954
947955 /* YYDEFGOTO[NTERM-NUM]. */
948956 static const yytype_int16 yydefgoto[] =
949957 {
950 -1, 1, 8, 9, 14, 97, 10, 15, 180, 11,
951 16, 188, 98, 99, 100, 101, 102, 103, 104, 105,
952 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
953 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
954 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
955 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
956 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
957 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
958 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
959 181, 182, 183, 184, 189, 190, 191, 12, 17, 199,
960 200, 201, 202, 203, 204, 205, 206, 13, 18, 208,
961 209
958 -1, 1, 8, 9, 14, 98, 10, 15, 182, 11,
959 16, 190, 99, 100, 101, 102, 103, 104, 105, 106,
960 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
961 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
962 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
963 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
964 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
965 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
966 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
967 177, 183, 184, 185, 186, 191, 192, 193, 12, 17,
968 201, 202, 203, 204, 205, 206, 207, 208, 13, 18,
969 210, 211
962970 };
963971
964972 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
975983 50, 51, 52, 54, 55, 56, 57, 58, 59, 60,
976984 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
977985 71, 72, 73, 74, 75, 76, 77, 79, 80, 81,
978 82, 83, 84, 85, 86, 87, 88, -103, -103, -103,
986 82, 83, 84, 85, 86, 87, 88, 89, -103, -103,
979987 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
980988 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
981989 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
983991 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
984992 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
985993 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
986 -103, -103, -103, -103, -103, -103, 89, 90, 91, 119,
987 -103, -103, -103, -103, -103, 120, 121, 122, -103, -103,
988 -103, -103, 126, 127, 128, 170, 171, 172, 173, -103,
989 -103, -103, -103, -103, -103, -103, -103, 174, -103, -103,
994 -103, -103, -103, -103, -103, -103, -103, -103, 90, 91,
995 119, 120, -103, -103, -103, -103, -103, 121, 122, 126,
996 -103, -103, -103, -103, 127, 128, 170, 171, 172, 173,
997 174, -103, -103, -103, -103, -103, -103, -103, -103, 175,
990998 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
991999 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
9921000 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
9931001 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
9941002 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
995 -103, -103, -103, 175, 176, -103, -103, -103, -103, -103,
1003 -103, -103, -103, -103, -103, 176, 177, -103, -103, -103,
9961004 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
9971005 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
9981006 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
999 -103, -103, -103, -103, -103
1007 -103, -103, -103, -103, -103, -103, -103, -103
10001008 };
10011009
10021010 /* YYPGOTO[NTERM-NUM]. */
10131021 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
10141022 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
10151023 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
1016 -103
1024 -103, -103
10171025 };
10181026
10191027 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
10231031 #define YYTABLE_NINF -1
10241032 static const yytype_uint16 yytable[] =
10251033 {
1026 2, 176, 207, 177, 178, 185, 210, 211, 212, 213,
1027 0, 3, 214, 186, 187, 192, 193, 194, 195, 196,
1028 197, 198, 215, 216, 217, 218, 219, 220, 221, 222,
1029 223, 224, 225, 226, 227, 228, 229, 230, 4, 231,
1030 232, 233, 234, 235, 5, 236, 237, 238, 239, 240,
1031 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
1032 251, 252, 253, 179, 254, 255, 256, 257, 258, 259,
1033 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1034 270, 271, 272, 273, 274, 275, 276, 277, 6, 278,
1035 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
1036 289, 290, 0, 7, 19, 20, 21, 22, 23, 24,
1034 2, 178, 209, 179, 180, 187, 212, 213, 214, 215,
1035 0, 3, 216, 188, 189, 194, 195, 196, 197, 198,
1036 199, 200, 217, 218, 219, 220, 221, 222, 223, 224,
1037 225, 226, 227, 228, 229, 230, 231, 232, 4, 233,
1038 234, 235, 236, 237, 5, 238, 239, 240, 241, 242,
1039 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
1040 253, 254, 255, 181, 256, 257, 258, 259, 260, 261,
1041 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1042 272, 273, 274, 275, 276, 277, 278, 279, 6, 280,
1043 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
1044 291, 292, 0, 7, 19, 20, 21, 22, 23, 24,
10371045 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1038 35, 36, 37, 38, 39, 40, 41, 42, 43, 291,
1039 292, 293, 294, 44, 45, 46, 295, 296, 297, 47,
1046 35, 36, 37, 38, 39, 40, 41, 42, 43, 293,
1047 294, 295, 296, 44, 45, 46, 297, 298, 299, 47,
10401048 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
10411049 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
10421050 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
10431051 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1044 298, 299, 300, 301, 302, 303, 304, 0, 88, 89,
1045 90, 0, 91, 92, 93, 0, 0, 94, 95, 96
1052 300, 301, 302, 303, 304, 305, 306, 307, 88, 89,
1053 90, 0, 91, 92, 93, 0, 0, 94, 95, 96,
1054 97
10461055 };
10471056
10481057 static const yytype_int8 yycheck[] =
10651074 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
10661075 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
10671076 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1068 10, 10, 10, 10, 10, 10, 10, -1, 96, 97,
1069 98, -1, 100, 101, 102, -1, -1, 105, 106, 107
1077 10, 10, 10, 10, 10, 10, 10, 10, 96, 97,
1078 98, -1, 100, 101, 102, -1, -1, 105, 106, 107,
1079 108
10701080 };
10711081
10721082 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
10731083 symbol of state STATE-NUM. */
10741084 static const yytype_uint8 yystos[] =
10751085 {
1076 0, 109, 0, 11, 38, 44, 88, 103, 110, 111,
1077 114, 117, 205, 215, 112, 115, 118, 206, 216, 12,
1086 0, 110, 0, 11, 38, 44, 88, 103, 111, 112,
1087 115, 118, 207, 217, 113, 116, 119, 208, 218, 12,
10781088 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
10791089 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
10801090 33, 34, 35, 36, 41, 42, 43, 47, 48, 49,
10821092 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
10831093 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
10841094 80, 81, 82, 83, 84, 85, 86, 87, 96, 97,
1085 98, 100, 101, 102, 105, 106, 107, 113, 120, 121,
1095 98, 100, 101, 102, 105, 106, 107, 108, 114, 121,
10861096 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
10871097 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
10881098 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
10901100 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
10911101 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
10921102 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1093 192, 193, 194, 195, 196, 197, 37, 39, 40, 99,
1094 116, 198, 199, 200, 201, 37, 45, 46, 119, 202,
1095 203, 204, 89, 90, 91, 92, 93, 94, 95, 207,
1096 208, 209, 210, 211, 212, 213, 214, 104, 217, 218,
1103 192, 193, 194, 195, 196, 197, 198, 199, 37, 39,
1104 40, 99, 117, 200, 201, 202, 203, 37, 45, 46,
1105 120, 204, 205, 206, 89, 90, 91, 92, 93, 94,
1106 95, 209, 210, 211, 212, 213, 214, 215, 216, 104,
1107 219, 220, 10, 10, 10, 10, 10, 10, 10, 10,
10971108 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10981109 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10991110 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11021113 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11031114 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11041115 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1105 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1106 10, 10, 10, 10, 10
1116 10, 10, 10, 10, 10, 10, 10, 10
11071117 };
11081118
11091119 #define yyerrok (yyerrstatus = 0)
19231933 }
19241934 break;
19251935
1926 case 90:
1936 case 91:
19271937
19281938 /* Line 1455 of yacc.c */
19291939 #line 154 "util/configparser.y"
19391949 }
19401950 break;
19411951
1942 case 97:
1952 case 98:
19431953
19441954 /* Line 1455 of yacc.c */
19451955 #line 170 "util/configparser.y"
19551965 }
19561966 break;
19571967
1958 case 103:
1968 case 104:
19591969
19601970 /* Line 1455 of yacc.c */
19611971 #line 186 "util/configparser.y"
19681978 }
19691979 break;
19701980
1971 case 104:
1981 case 105:
19721982
19731983 /* Line 1455 of yacc.c */
19741984 #line 195 "util/configparser.y"
19811991 }
19821992 break;
19831993
1984 case 105:
1994 case 106:
19851995
19861996 /* Line 1455 of yacc.c */
19871997 #line 204 "util/configparser.y"
19962006 }
19972007 break;
19982008
1999 case 106:
2009 case 107:
20002010
20012011 /* Line 1455 of yacc.c */
20022012 #line 215 "util/configparser.y"
20092019 }
20102020 break;
20112021
2012 case 107:
2022 case 108:
20132023
20142024 /* Line 1455 of yacc.c */
20152025 #line 224 "util/configparser.y"
20222032 }
20232033 break;
20242034
2025 case 108:
2035 case 109:
20262036
20272037 /* Line 1455 of yacc.c */
20282038 #line 233 "util/configparser.y"
20352045 }
20362046 break;
20372047
2038 case 109:
2048 case 110:
20392049
20402050 /* Line 1455 of yacc.c */
20412051 #line 242 "util/configparser.y"
20522062 }
20532063 break;
20542064
2055 case 110:
2065 case 111:
20562066
20572067 /* Line 1455 of yacc.c */
20582068 #line 255 "util/configparser.y"
20712081 }
20722082 break;
20732083
2074 case 111:
2084 case 112:
20752085
20762086 /* Line 1455 of yacc.c */
20772087 #line 270 "util/configparser.y"
20842094 }
20852095 break;
20862096
2087 case 112:
2097 case 113:
20882098
20892099 /* Line 1455 of yacc.c */
20902100 #line 279 "util/configparser.y"
20972107 }
20982108 break;
20992109
2100 case 113:
2110 case 114:
21012111
21022112 /* Line 1455 of yacc.c */
21032113 #line 288 "util/configparser.y"
21102120 }
21112121 break;
21122122
2113 case 114:
2123 case 115:
21142124
21152125 /* Line 1455 of yacc.c */
21162126 #line 297 "util/configparser.y"
21232133 }
21242134 break;
21252135
2126 case 115:
2136 case 116:
21272137
21282138 /* Line 1455 of yacc.c */
21292139 #line 306 "util/configparser.y"
21362146 }
21372147 break;
21382148
2139 case 116:
2149 case 117:
21402150
21412151 /* Line 1455 of yacc.c */
21422152 #line 315 "util/configparser.y"
21492159 }
21502160 break;
21512161
2152 case 117:
2162 case 118:
21532163
21542164 /* Line 1455 of yacc.c */
21552165 #line 324 "util/configparser.y"
21622172 }
21632173 break;
21642174
2165 case 118:
2175 case 119:
21662176
21672177 /* Line 1455 of yacc.c */
21682178 #line 333 "util/configparser.y"
21752185 }
21762186 break;
21772187
2178 case 119:
2188 case 120:
21792189
21802190 /* Line 1455 of yacc.c */
21812191 #line 342 "util/configparser.y"
21882198 }
21892199 break;
21902200
2191 case 120:
2201 case 121:
21922202
21932203 /* Line 1455 of yacc.c */
21942204 #line 351 "util/configparser.y"
22012211 }
22022212 break;
22032213
2204 case 121:
2214 case 122:
22052215
22062216 /* Line 1455 of yacc.c */
22072217 #line 360 "util/configparser.y"
22142224 }
22152225 break;
22162226
2217 case 122:
2227 case 123:
22182228
22192229 /* Line 1455 of yacc.c */
22202230 #line 369 "util/configparser.y"
22322242 }
22332243 break;
22342244
2235 case 123:
2245 case 124:
22362246
22372247 /* Line 1455 of yacc.c */
22382248 #line 383 "util/configparser.y"
22452255 }
22462256 break;
22472257
2248 case 124:
2258 case 125:
22492259
22502260 /* Line 1455 of yacc.c */
22512261 #line 392 "util/configparser.y"
22562266 }
22572267 break;
22582268
2259 case 125:
2269 case 126:
22602270
22612271 /* Line 1455 of yacc.c */
22622272 #line 399 "util/configparser.y"
22672277 }
22682278 break;
22692279
2270 case 126:
2280 case 127:
22712281
22722282 /* Line 1455 of yacc.c */
22732283 #line 406 "util/configparser.y"
22782288 }
22792289 break;
22802290
2281 case 127:
2291 case 128:
22822292
22832293 /* Line 1455 of yacc.c */
22842294 #line 413 "util/configparser.y"
22902300 }
22912301 break;
22922302
2293 case 128:
2303 case 129:
22942304
22952305 /* Line 1455 of yacc.c */
22962306 #line 421 "util/configparser.y"
23012311 }
23022312 break;
23032313
2304 case 129:
2314 case 130:
23052315
23062316 /* Line 1455 of yacc.c */
23072317 #line 428 "util/configparser.y"
23122322 }
23132323 break;
23142324
2315 case 130:
2325 case 131:
23162326
23172327 /* Line 1455 of yacc.c */
23182328 #line 435 "util/configparser.y"
23232333 }
23242334 break;
23252335
2326 case 131:
2336 case 132:
23272337
23282338 /* Line 1455 of yacc.c */
23292339 #line 442 "util/configparser.y"
23342344 }
23352345 break;
23362346
2337 case 132:
2347 case 133:
23382348
23392349 /* Line 1455 of yacc.c */
23402350 #line 449 "util/configparser.y"
23462356 }
23472357 break;
23482358
2349 case 133:
2359 case 134:
23502360
23512361 /* Line 1455 of yacc.c */
23522362 #line 457 "util/configparser.y"
23582368 }
23592369 break;
23602370
2361 case 134:
2371 case 135:
23622372
23632373 /* Line 1455 of yacc.c */
23642374 #line 465 "util/configparser.y"
23692379 }
23702380 break;
23712381
2372 case 135:
2382 case 136:
23732383
23742384 /* Line 1455 of yacc.c */
23752385 #line 472 "util/configparser.y"
23802390 }
23812391 break;
23822392
2383 case 136:
2393 case 137:
23842394
23852395 /* Line 1455 of yacc.c */
23862396 #line 479 "util/configparser.y"
23932403 }
23942404 break;
23952405
2396 case 137:
2406 case 138:
23972407
23982408 /* Line 1455 of yacc.c */
23992409 #line 488 "util/configparser.y"
24062416 }
24072417 break;
24082418
2409 case 138:
2419 case 139:
24102420
24112421 /* Line 1455 of yacc.c */
24122422 #line 497 "util/configparser.y"
24172427 }
24182428 break;
24192429
2420 case 139:
2430 case 140:
24212431
24222432 /* Line 1455 of yacc.c */
24232433 #line 504 "util/configparser.y"
24282438 }
24292439 break;
24302440
2431 case 140:
2441 case 141:
24322442
24332443 /* Line 1455 of yacc.c */
24342444 #line 511 "util/configparser.y"
24432453 }
24442454 break;
24452455
2446 case 141:
2456 case 142:
24472457
24482458 /* Line 1455 of yacc.c */
24492459 #line 522 "util/configparser.y"
24552465 }
24562466 break;
24572467
2458 case 142:
2468 case 143:
24592469
24602470 /* Line 1455 of yacc.c */
24612471 #line 530 "util/configparser.y"
24722482 }
24732483 break;
24742484
2475 case 143:
2485 case 144:
24762486
24772487 /* Line 1455 of yacc.c */
24782488 #line 543 "util/configparser.y"
24852495 }
24862496 break;
24872497
2488 case 144:
2498 case 145:
24892499
24902500 /* Line 1455 of yacc.c */
24912501 #line 552 "util/configparser.y"
24982508 }
24992509 break;
25002510
2501 case 145:
2511 case 146:
25022512
25032513 /* Line 1455 of yacc.c */
25042514 #line 561 "util/configparser.y"
25102520 }
25112521 break;
25122522
2513 case 146:
2523 case 147:
25142524
25152525 /* Line 1455 of yacc.c */
25162526 #line 569 "util/configparser.y"
25272537 }
25282538 break;
25292539
2530 case 147:
2540 case 148:
25312541
25322542 /* Line 1455 of yacc.c */
25332543 #line 582 "util/configparser.y"
25402550 }
25412551 break;
25422552
2543 case 148:
2553 case 149:
25442554
25452555 /* Line 1455 of yacc.c */
25462556 #line 591 "util/configparser.y"
25532563 }
25542564 break;
25552565
2556 case 149:
2566 case 150:
25572567
25582568 /* Line 1455 of yacc.c */
25592569 #line 600 "util/configparser.y"
25662576 }
25672577 break;
25682578
2569 case 150:
2579 case 151:
25702580
25712581 /* Line 1455 of yacc.c */
25722582 #line 609 "util/configparser.y"
25792589 }
25802590 break;
25812591
2582 case 151:
2592 case 152:
25832593
25842594 /* Line 1455 of yacc.c */
25852595 #line 618 "util/configparser.y"
25962606 }
25972607 break;
25982608
2599 case 152:
2609 case 153:
26002610
26012611 /* Line 1455 of yacc.c */
26022612 #line 631 "util/configparser.y"
26072617 }
26082618 break;
26092619
2610 case 153:
2620 case 154:
26112621
26122622 /* Line 1455 of yacc.c */
26132623 #line 638 "util/configparser.y"
26212631 }
26222632 break;
26232633
2624 case 154:
2634 case 155:
26252635
26262636 /* Line 1455 of yacc.c */
26272637 #line 648 "util/configparser.y"
26352645 }
26362646 break;
26372647
2638 case 155:
2648 case 156:
26392649
26402650 /* Line 1455 of yacc.c */
26412651 #line 658 "util/configparser.y"
26492659 }
26502660 break;
26512661
2652 case 156:
2662 case 157:
26532663
26542664 /* Line 1455 of yacc.c */
26552665 #line 668 "util/configparser.y"
26632673 }
26642674 break;
26652675
2666 case 157:
2676 case 158:
26672677
26682678 /* Line 1455 of yacc.c */
26692679 #line 678 "util/configparser.y"
26772687 }
26782688 break;
26792689
2680 case 158:
2690 case 159:
26812691
26822692 /* Line 1455 of yacc.c */
26832693 #line 688 "util/configparser.y"
26912701 }
26922702 break;
26932703
2694 case 159:
2704 case 160:
26952705
26962706 /* Line 1455 of yacc.c */
26972707 #line 698 "util/configparser.y"
27022712 }
27032713 break;
27042714
2705 case 160:
2715 case 161:
27062716
27072717 /* Line 1455 of yacc.c */
27082718 #line 705 "util/configparser.y"
27132723 }
27142724 break;
27152725
2716 case 161:
2726 case 162:
27172727
27182728 /* Line 1455 of yacc.c */
27192729 #line 712 "util/configparser.y"
27262736 }
27272737 break;
27282738
2729 case 162:
2739 case 163:
27302740
27312741 /* Line 1455 of yacc.c */
27322742 #line 721 "util/configparser.y"
27372747 }
27382748 break;
27392749
2740 case 163:
2750 case 164:
27412751
27422752 /* Line 1455 of yacc.c */
27432753 #line 728 "util/configparser.y"
27512761 }
27522762 break;
27532763
2754 case 164:
2764 case 165:
27552765
27562766 /* Line 1455 of yacc.c */
27572767 #line 738 "util/configparser.y"
27692779 }
27702780 break;
27712781
2772 case 165:
2782 case 166:
27732783
27742784 /* Line 1455 of yacc.c */
27752785 #line 752 "util/configparser.y"
27802790 }
27812791 break;
27822792
2783 case 166:
2793 case 167:
27842794
27852795 /* Line 1455 of yacc.c */
27862796 #line 759 "util/configparser.y"
28022812 }
28032813 break;
28042814
2805 case 167:
2815 case 168:
28062816
28072817 /* Line 1455 of yacc.c */
28082818 #line 777 "util/configparser.y"
28192829 }
28202830 break;
28212831
2822 case 168:
2832 case 169:
28232833
28242834 /* Line 1455 of yacc.c */
28252835 #line 790 "util/configparser.y"
28362846 }
28372847 break;
28382848
2839 case 169:
2849 case 170:
28402850
28412851 /* Line 1455 of yacc.c */
28422852 #line 803 "util/configparser.y"
28492859 }
28502860 break;
28512861
2852 case 170:
2862 case 171:
28532863
28542864 /* Line 1455 of yacc.c */
28552865 #line 812 "util/configparser.y"
28622872 }
28632873 break;
28642874
2865 case 171:
2875 case 172:
28662876
28672877 /* Line 1455 of yacc.c */
28682878 #line 821 "util/configparser.y"
28752885 }
28762886 break;
28772887
2878 case 172:
2888 case 173:
28792889
28802890 /* Line 1455 of yacc.c */
28812891 #line 830 "util/configparser.y"
28892899 }
28902900 break;
28912901
2892 case 173:
2902 case 174:
28932903
28942904 /* Line 1455 of yacc.c */
28952905 #line 840 "util/configparser.y"
29032913 }
29042914 break;
29052915
2906 case 174:
2916 case 175:
29072917
29082918 /* Line 1455 of yacc.c */
29092919 #line 850 "util/configparser.y"
2920 {
2921 OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str)));
2922 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2923 yyerror("number expected");
2924 else cfg_parser->cfg->val_log_level = atoi((yyvsp[(2) - (2)].str));
2925 }
2926 break;
2927
2928 case 176:
2929
2930 /* Line 1455 of yacc.c */
2931 #line 858 "util/configparser.y"
29102932 {
29112933 OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
29122934 free(cfg_parser->cfg->val_nsec3_key_iterations);
29142936 }
29152937 break;
29162938
2917 case 175:
2918
2919 /* Line 1455 of yacc.c */
2920 #line 857 "util/configparser.y"
2939 case 177:
2940
2941 /* Line 1455 of yacc.c */
2942 #line 865 "util/configparser.y"
29212943 {
29222944 OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
29232945 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size))
29262948 }
29272949 break;
29282950
2929 case 176:
2930
2931 /* Line 1455 of yacc.c */
2932 #line 865 "util/configparser.y"
2951 case 178:
2952
2953 /* Line 1455 of yacc.c */
2954 #line 873 "util/configparser.y"
29332955 {
29342956 OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
29352957 if(atoi((yyvsp[(2) - (2)].str)) == 0)
29432965 }
29442966 break;
29452967
2946 case 177:
2947
2948 /* Line 1455 of yacc.c */
2949 #line 878 "util/configparser.y"
2968 case 179:
2969
2970 /* Line 1455 of yacc.c */
2971 #line 886 "util/configparser.y"
29502972 {
29512973 OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
29522974 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size))
29552977 }
29562978 break;
29572979
2958 case 178:
2959
2960 /* Line 1455 of yacc.c */
2961 #line 886 "util/configparser.y"
2980 case 180:
2981
2982 /* Line 1455 of yacc.c */
2983 #line 894 "util/configparser.y"
29622984 {
29632985 OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
29642986 if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 &&
29793001 }
29803002 break;
29813003
2982 case 179:
2983
2984 /* Line 1455 of yacc.c */
2985 #line 906 "util/configparser.y"
3004 case 181:
3005
3006 /* Line 1455 of yacc.c */
3007 #line 914 "util/configparser.y"
29863008 {
29873009 OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str)));
29883010 if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str)))
29903012 }
29913013 break;
29923014
2993 case 180:
2994
2995 /* Line 1455 of yacc.c */
2996 #line 913 "util/configparser.y"
3015 case 182:
3016
3017 /* Line 1455 of yacc.c */
3018 #line 921 "util/configparser.y"
29973019 {
29983020 char* ptr;
29993021 OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str)));
30093031 }
30103032 break;
30113033
3012 case 181:
3013
3014 /* Line 1455 of yacc.c */
3015 #line 928 "util/configparser.y"
3034 case 183:
3035
3036 /* Line 1455 of yacc.c */
3037 #line 936 "util/configparser.y"
30163038 {
30173039 OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
30183040 free(cfg_parser->cfg->stubs->name);
30203042 }
30213043 break;
30223044
3023 case 182:
3024
3025 /* Line 1455 of yacc.c */
3026 #line 935 "util/configparser.y"
3045 case 184:
3046
3047 /* Line 1455 of yacc.c */
3048 #line 943 "util/configparser.y"
30273049 {
30283050 OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str)));
30293051 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str)))
30313053 }
30323054 break;
30333055
3034 case 183:
3035
3036 /* Line 1455 of yacc.c */
3037 #line 942 "util/configparser.y"
3056 case 185:
3057
3058 /* Line 1455 of yacc.c */
3059 #line 950 "util/configparser.y"
30383060 {
30393061 OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str)));
30403062 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str)))
30423064 }
30433065 break;
30443066
3045 case 184:
3046
3047 /* Line 1455 of yacc.c */
3048 #line 949 "util/configparser.y"
3067 case 186:
3068
3069 /* Line 1455 of yacc.c */
3070 #line 957 "util/configparser.y"
30493071 {
30503072 OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str)));
30513073 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
30563078 }
30573079 break;
30583080
3059 case 185:
3060
3061 /* Line 1455 of yacc.c */
3062 #line 959 "util/configparser.y"
3081 case 187:
3082
3083 /* Line 1455 of yacc.c */
3084 #line 967 "util/configparser.y"
30633085 {
30643086 OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
30653087 free(cfg_parser->cfg->forwards->name);
30673089 }
30683090 break;
30693091
3070 case 186:
3071
3072 /* Line 1455 of yacc.c */
3073 #line 966 "util/configparser.y"
3092 case 188:
3093
3094 /* Line 1455 of yacc.c */
3095 #line 974 "util/configparser.y"
30743096 {
30753097 OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str)));
30763098 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str)))
30783100 }
30793101 break;
30803102
3081 case 187:
3082
3083 /* Line 1455 of yacc.c */
3084 #line 973 "util/configparser.y"
3103 case 189:
3104
3105 /* Line 1455 of yacc.c */
3106 #line 981 "util/configparser.y"
30853107 {
30863108 OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str)));
30873109 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str)))
30893111 }
30903112 break;
30913113
3092 case 188:
3093
3094 /* Line 1455 of yacc.c */
3095 #line 980 "util/configparser.y"
3114 case 190:
3115
3116 /* Line 1455 of yacc.c */
3117 #line 988 "util/configparser.y"
30963118 {
30973119 OUTYY(("\nP(remote-control:)\n"));
30983120 }
30993121 break;
31003122
3101 case 198:
3102
3103 /* Line 1455 of yacc.c */
3104 #line 991 "util/configparser.y"
3123 case 200:
3124
3125 /* Line 1455 of yacc.c */
3126 #line 999 "util/configparser.y"
31053127 {
31063128 OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str)));
31073129 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
31123134 }
31133135 break;
31143136
3115 case 199:
3116
3117 /* Line 1455 of yacc.c */
3118 #line 1001 "util/configparser.y"
3137 case 201:
3138
3139 /* Line 1455 of yacc.c */
3140 #line 1009 "util/configparser.y"
31193141 {
31203142 OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str)));
31213143 if(atoi((yyvsp[(2) - (2)].str)) == 0)
31253147 }
31263148 break;
31273149
3128 case 200:
3129
3130 /* Line 1455 of yacc.c */
3131 #line 1010 "util/configparser.y"
3150 case 202:
3151
3152 /* Line 1455 of yacc.c */
3153 #line 1018 "util/configparser.y"
31323154 {
31333155 OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str)));
31343156 if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str)))
31363158 }
31373159 break;
31383160
3139 case 201:
3140
3141 /* Line 1455 of yacc.c */
3142 #line 1017 "util/configparser.y"
3161 case 203:
3162
3163 /* Line 1455 of yacc.c */
3164 #line 1025 "util/configparser.y"
31433165 {
31443166 OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
31453167 free(cfg_parser->cfg->server_key_file);
31473169 }
31483170 break;
31493171
3150 case 202:
3151
3152 /* Line 1455 of yacc.c */
3153 #line 1024 "util/configparser.y"
3172 case 204:
3173
3174 /* Line 1455 of yacc.c */
3175 #line 1032 "util/configparser.y"
31543176 {
31553177 OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
31563178 free(cfg_parser->cfg->server_cert_file);
31583180 }
31593181 break;
31603182
3161 case 203:
3162
3163 /* Line 1455 of yacc.c */
3164 #line 1031 "util/configparser.y"
3183 case 205:
3184
3185 /* Line 1455 of yacc.c */
3186 #line 1039 "util/configparser.y"
31653187 {
31663188 OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
31673189 free(cfg_parser->cfg->control_key_file);
31693191 }
31703192 break;
31713193
3172 case 204:
3173
3174 /* Line 1455 of yacc.c */
3175 #line 1038 "util/configparser.y"
3194 case 206:
3195
3196 /* Line 1455 of yacc.c */
3197 #line 1046 "util/configparser.y"
31763198 {
31773199 OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
31783200 free(cfg_parser->cfg->control_cert_file);
31803202 }
31813203 break;
31823204
3183 case 205:
3184
3185 /* Line 1455 of yacc.c */
3186 #line 1045 "util/configparser.y"
3205 case 207:
3206
3207 /* Line 1455 of yacc.c */
3208 #line 1053 "util/configparser.y"
31873209 {
31883210 OUTYY(("\nP(python:)\n"));
31893211 }
31903212 break;
31913213
3192 case 209:
3193
3194 /* Line 1455 of yacc.c */
3195 #line 1054 "util/configparser.y"
3214 case 211:
3215
3216 /* Line 1455 of yacc.c */
3217 #line 1062 "util/configparser.y"
31963218 {
31973219 OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str)));
31983220 free(cfg_parser->cfg->python_script);
32033225
32043226
32053227 /* Line 1455 of yacc.c */
3206 #line 3208 "util/configparser.c"
3228 #line 3230 "util/configparser.c"
32073229 default: break;
32083230 }
32093231 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
34153437
34163438
34173439 /* Line 1675 of yacc.c */
3418 #line 1059 "util/configparser.y"
3440 #line 1067 "util/configparser.y"
34193441
34203442
34213443 /* parse helper routines could be here */
142142 VAR_PYTHON_SCRIPT = 359,
143143 VAR_VAL_SIG_SKEW_MIN = 360,
144144 VAR_VAL_SIG_SKEW_MAX = 361,
145 VAR_CACHE_MIN_TTL = 362
145 VAR_CACHE_MIN_TTL = 362,
146 VAR_VAL_LOG_LEVEL = 363
146147 };
147148 #endif
148149 /* Tokens. */
251252 #define VAR_VAL_SIG_SKEW_MIN 360
252253 #define VAR_VAL_SIG_SKEW_MAX 361
253254 #define VAR_CACHE_MIN_TTL 362
255 #define VAR_VAL_LOG_LEVEL 363
254256
255257
256258
267269
268270
269271 /* Line 1676 of yacc.c */
270 #line 272 "util/configparser.h"
272 #line 274 "util/configparser.h"
271273 } YYSTYPE;
272274 # define YYSTYPE_IS_TRIVIAL 1
273275 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
9797 %token VAR_EXTENDED_STATISTICS VAR_LOCAL_DATA_PTR VAR_JOSTLE_TIMEOUT
9898 %token VAR_STUB_PRIME VAR_UNWANTED_REPLY_THRESHOLD VAR_LOG_TIME_ASCII
9999 %token VAR_DOMAIN_INSECURE VAR_PYTHON VAR_PYTHON_SCRIPT VAR_VAL_SIG_SKEW_MIN
100 %token VAR_VAL_SIG_SKEW_MAX VAR_CACHE_MIN_TTL
100 %token VAR_VAL_SIG_SKEW_MAX VAR_CACHE_MIN_TTL VAR_VAL_LOG_LEVEL
101101
102102 %%
103103 toplevelvars: /* empty */ | toplevelvars toplevelvar ;
147147 server_local_data_ptr | server_jostle_timeout |
148148 server_unwanted_reply_threshold | server_log_time_ascii |
149149 server_domain_insecure | server_val_sig_skew_min |
150 server_val_sig_skew_max | server_cache_min_ttl
150 server_val_sig_skew_max | server_cache_min_ttl | server_val_log_level
151151 ;
152152 stubstart: VAR_STUB_ZONE
153153 {
843843 else cfg_parser->cfg->val_permissive_mode =
844844 (strcmp($2, "yes")==0);
845845 free($2);
846 }
847 ;
848 server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG
849 {
850 OUTYY(("P(server_val_log_level:%s)\n", $2));
851 if(atoi($2) == 0 && strcmp($2, "0") != 0)
852 yyerror("number expected");
853 else cfg_parser->cfg->val_log_level = atoi($2);
846854 }
847855 ;
848856 server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG
222222 267,
223223 268,
224224 269,
225 270,
225226 280,
226227 281,
227228 282,
40604061 5102,
40614062 5111,
40624063 5112,
4064 5113,
40634065 5116,
40644066 5133,
40654067 5137,
50025004 16367,
50035005 16368,
50045006 16384,
5007 16900,
50055008 16950,
50065009 16991,
50075010 16992,
50525055 20005,
50535056 20014,
50545057 20034,
5058 20046,
50555059 20049,
50565060 20167,
50575061 20202,
245245 log_err("error: send empty UDP packet");
246246 #endif
247247 log_assert(addr && addrlen > 0);
248 sent = sendto(c->fd, ldns_buffer_begin(packet),
248 sent = sendto(c->fd, (void*)ldns_buffer_begin(packet),
249249 ldns_buffer_remaining(packet), 0,
250250 addr, addrlen);
251251 if(sent == -1) {
252 #ifdef ENETUNREACH
253 if(errno == ENETUNREACH && verbosity < VERB_ALGO)
254 return 0;
252 /* do not log transient errors (unless high verbosity) */
253 #if defined(ENETUNREACH) || defined(EHOSTDOWN) || defined(EHOSTUNREACH) || defined(ENETDOWN)
254 switch(errno) {
255 # ifdef ENETUNREACH
256 case ENETUNREACH:
257 # endif
258 # ifdef EHOSTDOWN
259 case EHOSTDOWN:
260 # endif
261 # ifdef EHOSTUNREACH
262 case EHOSTUNREACH:
263 # endif
264 # ifdef ENETDOWN
265 case ENETDOWN:
266 # endif
267 if(verbosity < VERB_ALGO)
268 return 0;
269 default:
270 break;
271 }
255272 #endif
256273 /* squelch errors where people deploy AAAA ::ffff:bla for
257274 * authority servers, which we try for intranets. */
529546 rep.addrlen = (socklen_t)sizeof(rep.addr);
530547 log_assert(fd != -1);
531548 log_assert(ldns_buffer_remaining(rep.c->buffer) > 0);
532 recv = recvfrom(fd, ldns_buffer_begin(rep.c->buffer),
549 recv = recvfrom(fd, (void*)ldns_buffer_begin(rep.c->buffer),
533550 ldns_buffer_remaining(rep.c->buffer), 0,
534551 (struct sockaddr*)&rep.addr, &rep.addrlen);
535552 if(recv == -1) {
710727 log_assert(fd != -1);
711728 if(c->tcp_byte_count < sizeof(uint16_t)) {
712729 /* read length bytes */
713 r = recv(fd, ldns_buffer_at(c->buffer, c->tcp_byte_count),
730 r = recv(fd,(void*)ldns_buffer_at(c->buffer,c->tcp_byte_count),
714731 sizeof(uint16_t)-c->tcp_byte_count, 0);
715732 if(r == 0)
716733 return 0;
759776 }
760777
761778 log_assert(ldns_buffer_remaining(c->buffer) > 0);
762 r = recv(fd, ldns_buffer_current(c->buffer),
779 r = recv(fd, (void*)ldns_buffer_current(c->buffer),
763780 ldns_buffer_remaining(c->buffer), 0);
764781 if(r == 0) {
765782 return 0;
901918 }
902919 }
903920 log_assert(ldns_buffer_remaining(c->buffer) > 0);
904 r = send(fd, ldns_buffer_current(c->buffer),
921 r = send(fd, (void*)ldns_buffer_current(c->buffer),
905922 ldns_buffer_remaining(c->buffer), 0);
906923 if(r == -1) {
907924 #ifndef USE_WINSOCK
7676
7777 /** Size of key to use */
7878 #define SEED_SIZE 20
79
80 /**
81 * Max random value. Similar to RAND_MAX, but more portable
82 * (mingw uses only 15 bits random).
83 */
84 #define MAX_VALUE 0x7fffffff
7985
8086 /** Number of bytes to reseed after */
8187 #define REKEY_BYTES (1 << 24)
167173 RC4(&s->rc4, sizeof(r),
168174 (unsigned char *)&r, (unsigned char *)&r);
169175 s->rc4_ready -= sizeof(r);
170 return (long int)((r) % (((unsigned)RAND_MAX + 1)));
176 return (long int)((r) % (((unsigned)MAX_VALUE + 1)));
171177 }
172178
173179 void
7575 return 0;
7676 }
7777
78 #ifdef UNBOUND_DEBUG
7879 /**
7980 * Find a fd in the list of items.
8081 * Note that not all items have a fd associated (those are -1).
9394 }
9495 return -1;
9596 }
97 #endif
9698
9799 /** Find ptr in base array */
98 static int
100 static void
99101 zero_waitfor(WSAEVENT waitfor[], WSAEVENT x)
100102 {
101103 int i;
914914 char b[257];
915915 dname_str(ta->name, b);
916916 log_warn("trust anchor %s has no supported algorithms,"
917 " the anchor is ignored", b);
917 " the anchor is ignored (check if you need to"
918 " upgrade unbound and openssl)", b);
918919 (void)rbtree_delete(anchors->tree, &ta->node);
919920 }
920921 ta = next;
17951795 * endless bogus revalidation */
17961796 if(vq->orig_msg->rep->security == sec_status_bogus) {
17971797 vq->orig_msg->rep->ttl = *qstate->env->now + ve->bogus_ttl;
1798 if(qstate->env->cfg->val_log_level >= 1) {
1799 log_query_info(0, "validation failure", &qstate->qinfo);
1800 }
17981801 /* If we are in permissive mode, bogus gets indeterminate */
17991802 if(ve->permissive_mode)
18001803 vq->orig_msg->rep->security = sec_status_indeterminate;
21012104
21022105 if(sec != sec_status_secure) {
21032106 log_nametypeclass(VERB_OPS, "failed to prime trust anchor -- "
2104 "could not fetch secure DNSKEY rrset",
2107 "DNSKEY rrset is not secure",
21052108 ta->name, LDNS_RR_TYPE_DNSKEY, ta->dclass);
21062109 /* NOTE: in this case, we should probably reject the trust
21072110 * anchor for longer, perhaps forever. */
7878 you prefer.
7979
8080
81 +++ Cross compile
82
83 You can crosscompile unbound. This results in .exe files.
84 Install the packages: mingw32-binutils mingw32-cpp mingw32-filesystem
85 mingw32-gcc mingw32-openssl mingw32-openssl-static mingw32-runtime zip
86 mingw32-termcap mingw32-w32api mingw32-zlib mingw32-zlib-static mingw32-nsis
87 (package names for fedora 11).
88
89 For dynamic linked executables
90 $ mingw32-configure
91 $ make
92 $ mkdir /home/user/installdir
93 $ make install DESTDIR=/home/user/installdir
94 Find the dlls and exes in /home/user/installdir and
95 crypto in /usr/i686-pc-mingw32/sys-root/mingw/bin
96
97 For static linked executables
98 Use --enable-staticexe for mingw32-configure, see above. Or use makedist.sh,
99 copy System.dll from the windows dist of NSIS to /usr/share/nsis/Plugins/
100 Then do ./makedist.sh -w and the setup.exe is created using nsis.
101
102
81103 +++ CREDITS
82104
83105 Unbound was written in portable C by Wouter Wijngaards (NLnet Labs).
33
44 !include LogicLib.nsh
55 !include MUI2.nsh
6 !include setup_servicelib.nsh
76
87 !define VERSION "0.0.0"
98 !define QUADVERSION "0.0.0.0"
3231 #ReserveFile "System.dll"
3332 #ReserveFile "NsExec.dll"
3433
35 !define MUI_ICON "${NSISDIR}\contrib\graphics\icons\orange-install-nsis.ico"
36 !define MUI_UNICON "${NSISDIR}\contrib\graphics\icons\orange-uninstall-nsis.ico"
34 !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install-nsis.ico"
35 !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall-nsis.ico"
3736
3837 !define MUI_HEADERIMAGE
3938 !define MUI_HEADERIMAGE_RIGHT
7473 # add estimated size for key (Kb)
7574 AddSize 2
7675 SetOutPath $INSTDIR
76
77 # libgcc exception lib used by NSISdl plugin (in crosscompile).
78 File /nonfatal "/oname=$PLUGINSDIR\libgcc_s_sjlj-1.dll" "/usr/i686-pc-mingw32/sys-root/mingw/bin/libgcc_s_sjlj-1.dll"
79
7780 NSISdl::download "http://ftp.isc.org/www/dlv/dlv.isc.org.key" "$INSTDIR\dlv.isc.org.key"
7881 Pop $R0 # result from Inetc::get
7982 ${If} $R0 != "success"
143146 # install service entry
144147 nsExec::ExecToLog '"$INSTDIR\unbound-service-install.exe"'
145148 # start unbound service
146 !insertmacro SERVICE "start" "unbound" ""
149 nsExec::ExecToLog '"$INSTDIR\unbound-service-install.exe" start'
147150 sectionEnd
148151
149152 # set section descriptions
156159 !insertmacro MUI_FUNCTION_DESCRIPTION_END
157160
158161 # setup macros for uninstall functions.
162 !ifdef UN
159163 !undef UN
164 !endif
160165 !define UN "un."
161166
162167 # uninstaller section
163168 section "un.Unbound"
164169 # stop unbound service
165 !insertmacro SERVICE "stop" "unbound" ""
170 nsExec::ExecToLog '"$INSTDIR\unbound-service-remove.exe" stop'
166171 # uninstall service entry
167172 nsExec::ExecToLog '"$INSTDIR\unbound-service-remove.exe"'
168173 # deregister uninstall
+0
-372
winrc/setup_servicelib.nsh less more
0 ; Taken from http://nsis.sourceforge.net/NSIS_Service_Lib on 10-mar-2009
1 ;
2
3 ; NSIS SERVICE LIBRARY - servicelib.nsh
4 ; Version 1.5 - Jun 25th, 2008
5 ; Questions/Comments - dselkirk@hotmail.com
6 ;
7 ; Description:
8 ; Provides an interface to window services
9 ;
10 ; Inputs:
11 ; action - systemlib action ie. create, delete, start, stop, pause,
12 ; continue, installed, running, status
13 ; name - name of service to manipulate
14 ; param - action parameters; usage: var1=value1;var2=value2;...etc.
15 ; (don't forget to add a ';' after the last value!)
16 ;
17 ; Actions:
18 ; create - creates a new windows service
19 ; Parameters:
20 ; path - path to service executable
21 ; autostart - automatically start with system ie. 1|0
22 ; interact - interact with the desktop ie. 1|0
23 ; depend - service dependencies
24 ; user - user that runs the service
25 ; password - password of the above user
26 ; display - display name in service's console
27 ; description - Description of service
28 ;
29 ; delete - deletes a windows service
30 ; start - start a stopped windows service
31 ; stop - stops a running windows service
32 ; pause - pauses a running windows service
33 ; continue - continues a paused windows service
34 ; installed - is the provided service installed
35 ; Parameters:
36 ; action - if true then invokes the specified action
37 ; running - is the provided service running
38 ; Parameters:
39 ; action - if true then invokes the specified action
40 ; status - check the status of the provided service
41 ;
42 ; If run from uninstall define "UN" as "un." before running.
43 ;
44 ; Usage:
45 ; Method 1:
46 ; Push "action"
47 ; Push "name"
48 ; Push "param"
49 ; Call Service
50 ; Pop $0 ;response
51 ;
52 ; Method 2:
53 ; !insertmacro SERVICE "action" "name" "param"
54 ;
55 ; History:
56 ; 1.0 - 09/15/2003 - Initial release
57 ; 1.1 - 09/16/2003 - Changed &l to i, thx brainsucker
58 ; 1.2 - 02/29/2004 - Fixed documentation.
59 ; 1.3 - 01/05/2006 - Fixed interactive flag and pop order (Kichik)
60 ; 1.4 - 12/07/2006 - Added display and depend, fixed datatypes (Vitoco)
61 ; 1.5 - 06/25/2008 - Added description of service.(DeSafe.com/liuqixing#gmail.com)
62
63 !ifndef SERVICELIB
64 !define SERVICELIB
65
66 !define SC_MANAGER_ALL_ACCESS 0x3F
67 !define SERVICE_ALL_ACCESS 0xF01FF
68
69 !define SERVICE_CONTROL_STOP 1
70 !define SERVICE_CONTROL_PAUSE 2
71 !define SERVICE_CONTROL_CONTINUE 3
72
73 !define SERVICE_STOPPED 0x1
74 !define SERVICE_START_PENDING 0x2
75 !define SERVICE_STOP_PENDING 0x3
76 !define SERVICE_RUNNING 0x4
77 !define SERVICE_CONTINUE_PENDING 0x5
78 !define SERVICE_PAUSE_PENDING 0x6
79 !define SERVICE_PAUSED 0x7
80
81 !ifndef UN
82 !define UN ""
83 !endif
84
85 !macro SERVICE ACTION NAME PARAM
86 Push '${ACTION}'
87 Push '${NAME}'
88 Push '${PARAM}'
89 Call ${UN}Service
90 !macroend
91
92 !macro FUNC_GETPARAM
93 Push $0
94 Push $1
95 Push $2
96 Push $3
97 Push $4
98 Push $5
99 Push $6
100 Push $7
101 Exch 8
102 Pop $1 ;name
103 Exch 8
104 Pop $2 ;source
105 StrCpy $0 ""
106 StrLen $7 $2
107 StrCpy $3 0
108 lbl_loop:
109 IntCmp $3 $7 0 0 lbl_done
110 StrLen $4 "$1="
111 StrCpy $5 $2 $4 $3
112 StrCmp $5 "$1=" 0 lbl_next
113 IntOp $5 $3 + $4
114 StrCpy $3 $5
115 lbl_loop2:
116 IntCmp $3 $7 0 0 lbl_done
117 StrCpy $6 $2 1 $3
118 StrCmp $6 ";" 0 lbl_next2
119 IntOp $6 $3 - $5
120 StrCpy $0 $2 $6 $5
121 Goto lbl_done
122 lbl_next2:
123 IntOp $3 $3 + 1
124 Goto lbl_loop2
125 lbl_next:
126 IntOp $3 $3 + 1
127 Goto lbl_loop
128 lbl_done:
129 Pop $5
130 Pop $4
131 Pop $3
132 Pop $2
133 Pop $1
134 Exch 2
135 Pop $6
136 Pop $7
137 Exch $0
138 !macroend
139
140 !macro CALL_GETPARAM VAR NAME DEFAULT LABEL
141 Push $1
142 Push ${NAME}
143 Call ${UN}GETPARAM
144 Pop $6
145 StrCpy ${VAR} "${DEFAULT}"
146 StrCmp $6 "" "${LABEL}" 0
147 StrCpy ${VAR} $6
148 !macroend
149
150 !macro FUNC_SERVICE UN
151 Push $0
152 Push $1
153 Push $2
154 Push $3
155 Push $4
156 Push $5
157 Push $6
158 Push $7
159 Exch 8
160 Pop $1 ;param
161 Exch 8
162 Pop $2 ;name
163 Exch 8
164 Pop $3 ;action
165 ;$0 return
166 ;$4 OpenSCManager
167 ;$5 OpenService
168
169 StrCpy $0 "false"
170 System::Call 'advapi32::OpenSCManagerA(n, n, i ${SC_MANAGER_ALL_ACCESS}) i.r4'
171 IntCmp $4 0 lbl_done
172 StrCmp $3 "create" lbl_create
173 System::Call 'advapi32::OpenServiceA(i r4, t r2, i ${SERVICE_ALL_ACCESS}) i.r5'
174 IntCmp $5 0 lbl_done
175
176 lbl_select:
177 StrCmp $3 "delete" lbl_delete
178 StrCmp $3 "start" lbl_start
179 StrCmp $3 "stop" lbl_stop
180 StrCmp $3 "pause" lbl_pause
181 StrCmp $3 "continue" lbl_continue
182 StrCmp $3 "installed" lbl_installed
183 StrCmp $3 "running" lbl_running
184 StrCmp $3 "status" lbl_status
185 Goto lbl_done
186
187 ; create service
188 lbl_create:
189 Push $R1 ;depend
190 Push $R2 ;user
191 Push $R3 ;password
192 Push $R4 ;interact
193 Push $R5 ;autostart
194 Push $R6 ;path
195 Push $R7 ;display
196 Push $R8 ;description
197
198 !insertmacro CALL_GETPARAM $R1 "depend" "n" "lbl_depend"
199 StrCpy $R1 't "$R1"'
200 lbl_depend:
201 StrCmp $R1 "n" 0 lbl_machine ;old name of depend param
202 !insertmacro CALL_GETPARAM $R1 "machine" "n" "lbl_machine"
203 StrCpy $R1 't "$R1"'
204 lbl_machine:
205
206 !insertmacro CALL_GETPARAM $R2 "user" "n" "lbl_user"
207 StrCpy $R2 't "$R2"'
208 lbl_user:
209
210 !insertmacro CALL_GETPARAM $R3 "password" "n" "lbl_password"
211 StrCpy $R3 't "$R3"'
212 lbl_password:
213
214 !insertmacro CALL_GETPARAM $R4 "interact" "0x10" "lbl_interact"
215 StrCpy $6 0x10
216 IntCmp $R4 0 +2
217 IntOp $6 $6 | 0x100
218 StrCpy $R4 $6
219 lbl_interact:
220
221 !insertmacro CALL_GETPARAM $R5 "autostart" "0x3" "lbl_autostart"
222 StrCpy $6 0x3
223 IntCmp $R5 0 +2
224 StrCpy $6 0x2
225 StrCpy $R5 $6
226 lbl_autostart:
227
228 !insertmacro CALL_GETPARAM $R6 "path" "n" "lbl_path"
229 lbl_path:
230
231 !insertmacro CALL_GETPARAM $R7 "display" "$2" "lbl_display"
232 lbl_display:
233
234 !insertmacro CALL_GETPARAM $R8 "description" "$2" "lbl_description"
235 lbl_description:
236
237 System::Call 'advapi32::CreateServiceA(i r4, t r2, t R7, i ${SERVICE_ALL_ACCESS}, \
238 i R4, i R5, i 0, t R6, n, n, $R1, $R2, $R3) i.r6'
239
240 ; write description of service
241 WriteRegStr HKLM "SYSTEM\ControlSet001\Services\$2" "Description" $R8
242
243 Pop $R8
244 Pop $R7
245 Pop $R6
246 Pop $R5
247 Pop $R4
248 Pop $R3
249 Pop $R2
250 Pop $R1
251 StrCmp $6 0 lbl_done lbl_good
252
253 ; delete service
254 lbl_delete:
255 System::Call 'advapi32::DeleteService(i r5) i.r6'
256 StrCmp $6 0 lbl_done lbl_good
257
258 ; start service
259 lbl_start:
260 System::Call 'advapi32::StartServiceA(i r5, i 0, i 0) i.r6'
261 StrCmp $6 0 lbl_done lbl_good
262
263 ; stop service
264 lbl_stop:
265 Push $R1
266 System::Call '*(i,i,i,i,i,i,i) i.R1'
267 System::Call 'advapi32::ControlService(i r5, i ${SERVICE_CONTROL_STOP}, i $R1) i'
268 System::Free $R1
269 Pop $R1
270 StrCmp $6 0 lbl_done lbl_good
271
272 ; pause service
273 lbl_pause:
274 Push $R1
275 System::Call '*(i,i,i,i,i,i,i) i.R1'
276 System::Call 'advapi32::ControlService(i r5, i ${SERVICE_CONTROL_PAUSE}, i $R1) i'
277 System::Free $R1
278 Pop $R1
279 StrCmp $6 0 lbl_done lbl_good
280
281 ; continue service
282 lbl_continue:
283 Push $R1
284 System::Call '*(i,i,i,i,i,i,i) i.R1'
285 System::Call 'advapi32::ControlService(i r5, i ${SERVICE_CONTROL_CONTINUE}, i $R1) i'
286 System::Free $R1
287 Pop $R1
288 StrCmp $6 0 lbl_done lbl_good
289
290 ; is installed
291 lbl_installed:
292 !insertmacro CALL_GETPARAM $7 "action" "" "lbl_good"
293 StrCpy $3 $7
294 Goto lbl_select
295
296 ; is service running
297 lbl_running:
298 Push $R1
299 System::Call '*(i,i,i,i,i,i,i) i.R1'
300 System::Call 'advapi32::QueryServiceStatus(i r5, i $R1) i'
301 System::Call '*$R1(i, i.r6)'
302 System::Free $R1
303 Pop $R1
304 IntFmt $6 "0x%X" $6
305 StrCmp $6 ${SERVICE_RUNNING} 0 lbl_done
306 !insertmacro CALL_GETPARAM $7 "action" "" "lbl_good"
307 StrCpy $3 $7
308 Goto lbl_select
309
310 lbl_status:
311 Push $R1
312 System::Call '*(i,i,i,i,i,i,i) i.R1'
313 System::Call 'advapi32::QueryServiceStatus(i r5, i $R1) i'
314 System::Call '*$R1(i, i .r6)'
315 System::Free $R1
316 Pop $R1
317 IntFmt $6 "0x%X" $6
318 StrCpy $0 "running"
319 IntCmp $6 ${SERVICE_RUNNING} lbl_done
320 StrCpy $0 "stopped"
321 IntCmp $6 ${SERVICE_STOPPED} lbl_done
322 StrCpy $0 "start_pending"
323 IntCmp $6 ${SERVICE_START_PENDING} lbl_done
324 StrCpy $0 "stop_pending"
325 IntCmp $6 ${SERVICE_STOP_PENDING} lbl_done
326 StrCpy $0 "running"
327 IntCmp $6 ${SERVICE_RUNNING} lbl_done
328 StrCpy $0 "continue_pending"
329 IntCmp $6 ${SERVICE_CONTINUE_PENDING} lbl_done
330 StrCpy $0 "pause_pending"
331 IntCmp $6 ${SERVICE_PAUSE_PENDING} lbl_done
332 StrCpy $0 "paused"
333 IntCmp $6 ${SERVICE_PAUSED} lbl_done
334 StrCpy $0 "unknown"
335 Goto lbl_done
336
337 lbl_good:
338 StrCpy $0 "true"
339 lbl_done:
340 IntCmp $5 0 +2
341 System::Call 'advapi32::CloseServiceHandle(i r5) n'
342 IntCmp $4 0 +2
343 System::Call 'advapi32::CloseServiceHandle(i r4) n'
344 Pop $4
345 Pop $3
346 Pop $2
347 Pop $1
348 Exch 3
349 Pop $5
350 Pop $7
351 Pop $6
352 Exch $0
353 !macroend
354
355 Function Service
356 !insertmacro FUNC_SERVICE ""
357 FunctionEnd
358
359 Function un.Service
360 !insertmacro FUNC_SERVICE "un."
361 FunctionEnd
362
363 Function GetParam
364 !insertmacro FUNC_GETPARAM
365 FunctionEnd
366
367 Function un.GetParam
368 !insertmacro FUNC_GETPARAM
369 FunctionEnd
370
371 !endif
4646 #include "winrc/w_inst.h"
4747
4848 /** Install service main */
49 int main(int ATTR_UNUSED(argc), char** ATTR_UNUSED(argv))
49 int main(int argc, char** argv)
5050 {
51 /*FILE* out = fopen("unbound-service-install.log", "w");*/
52 wsvc_install(NULL, "unbound-service-install.exe");
51 FILE* out = stdout;
52 /* out = fopen("unbound-service-install.log", "w");*/
53 if(argc == 2 && strcmp(argv[1], "start")==0) {
54 wsvc_rc_start(out);
55 return 0;
56 }
57 if(argc != 1) {
58 if(out) fprintf(out, "Usage: %s [start]\n", argv[0]);
59 else printf("Usage: %s [start]\n", argv[0]);
60 return 1;
61 }
62 wsvc_install(out, "unbound-service-install.exe");
5363 return 0;
5464 }
00 /*
1 * winrc/unbound-service-install.c - windows services installation util
1 * winrc/unbound-service-remove.c - windows services installation util
22 *
33 * Copyright (c) 2009, NLnet Labs. All rights reserved.
44 *
4545 #include "config.h"
4646 #include "winrc/w_inst.h"
4747
48 /** Install service main */
49 int main(int ATTR_UNUSED(argc), char** ATTR_UNUSED(argv))
48 /** Remove service main */
49 int main(int argc, char** argv)
5050 {
51 /*FILE* out = fopen("unbound-service-remove.log", "w");*/
51 FILE* out = stdout;
52 /* out = fopen("unbound-service-remove.log", "w");*/
53 if(argc == 2 && strcmp(argv[1], "stop")==0) {
54 wsvc_rc_stop(out);
55 return 0;
56 }
57 if(argc != 1) {
58 if(out) fprintf(out, "Usage: %s [stop]\n", argv[0]);
59 else printf("Usage: %s [stop]\n", argv[0]);
60 return 1;
61 }
5262 wsvc_remove(NULL);
5363 return 0;
5464 }
4242 #include "winrc/w_inst.h"
4343 #include "winrc/win_svc.h"
4444
45 void wsvc_err2str(char* str, size_t len, const char* fixed, DWORD err)
46 {
47 LPTSTR buf;
48 if(FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM |
49 FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER,
50 NULL, err, 0, (LPTSTR)&buf, 0, NULL) == 0) {
51 /* could not format error message */
52 snprintf(str, len, "%s GetLastError=%d", fixed, (int)err);
53 return;
54 }
55 snprintf(str, len, "%s (err=%d): %s", fixed, (int)err, buf);
56 LocalFree(buf);
57 }
58
4559 /** exit with windows error */
4660 static void
4761 fatal_win(FILE* out, const char* str)
4862 {
49 if(out) fprintf(out, "%s (%d)\n", str, (int)GetLastError());
63 char e[256];
64 wsvc_err2str(e, sizeof(e), str, (int)GetLastError());
65 if(out) fprintf(out, "%s\n", e);
66 else fprintf(stderr, "%s\n", e);
5067 exit(1);
5168 }
5269
7491 if(RegSetValueEx(hk, (LPCTSTR)"EventMessageFile",
7592 0, /* reserved, mustbezero */
7693 REG_EXPAND_SZ, /* value type (string w env subst) */
77 pathname, /* data */
94 (BYTE*)pathname, /* data */
7895 (DWORD)strlen(pathname)+1)) /* length of data */
7996 {
8097 RegCloseKey(hk);
92109
93110 /* category message file */
94111 if(RegSetValueEx(hk, (LPCTSTR)"CategoryMessageFile", 0, REG_EXPAND_SZ,
95 pathname, (DWORD)strlen(pathname)+1)) {
112 (BYTE*)pathname, (DWORD)strlen(pathname)+1)) {
96113 RegCloseKey(hk);
97114 fatal_win(out, "could not registry set CategoryMessageFile");
98115 }
212229 if(out) fprintf(out, "unbound service installed\n");
213230 }
214231
232
215233 /* Remove installed service from servicecontrolmanager */
216234 void
217235 wsvc_remove(FILE* out)
227245 fatal_win(out, "could not OpenService");
228246 }
229247 if(!DeleteService(sv)) {
248 CloseServiceHandle(sv);
249 CloseServiceHandle(scm);
230250 fatal_win(out, "could not DeleteService");
231251 }
232252 CloseServiceHandle(sv);
234254 event_reg_remove(out);
235255 if(out) fprintf(out, "unbound service removed\n");
236256 }
257
258
259 /* Start daemon */
260 void
261 wsvc_rc_start(FILE* out)
262 {
263 SC_HANDLE scm;
264 SC_HANDLE sv;
265 if(out) fprintf(out, "start unbound service\n");
266 scm = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
267 if(!scm) fatal_win(out, "could not OpenSCManager");
268 sv = OpenService(scm, SERVICE_NAME, SERVICE_START);
269 if(!sv) {
270 CloseServiceHandle(scm);
271 fatal_win(out, "could not OpenService");
272 }
273 if(!StartService(sv, 0, NULL)) {
274 CloseServiceHandle(sv);
275 CloseServiceHandle(scm);
276 fatal_win(out, "could not StartService");
277 }
278 CloseServiceHandle(sv);
279 CloseServiceHandle(scm);
280 if(out) fprintf(out, "unbound service started\n");
281 }
282
283
284 /* Stop daemon */
285 void
286 wsvc_rc_stop(FILE* out)
287 {
288 SC_HANDLE scm;
289 SC_HANDLE sv;
290 SERVICE_STATUS st;
291 if(out) fprintf(out, "stop unbound service\n");
292 scm = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
293 if(!scm) fatal_win(out, "could not OpenSCManager");
294 sv = OpenService(scm, SERVICE_NAME, SERVICE_STOP);
295 if(!sv) {
296 CloseServiceHandle(scm);
297 fatal_win(out, "could not OpenService");
298 }
299 if(!ControlService(sv, SERVICE_CONTROL_STOP, &st)) {
300 CloseServiceHandle(sv);
301 CloseServiceHandle(scm);
302 fatal_win(out, "could not ControlService");
303 }
304 CloseServiceHandle(sv);
305 CloseServiceHandle(scm);
306 if(out) fprintf(out, "unbound service stopped\n");
307 }
5555 */
5656 void wsvc_remove(FILE* out);
5757
58 /**
59 * Start the service from servicecontrolmanager, tells OS to start daemon.
60 * @param out: debug output printed here (errors). or NULL.
61 */
62 void wsvc_rc_start(FILE* out);
63
64 /**
65 * Stop the service from servicecontrolmanager, tells OS to stop daemon.
66 * @param out: debug output printed here (errors). or NULL.
67 */
68 void wsvc_rc_stop(FILE* out);
69
70 /**
71 * Convert windows GetLastError() value to a neat string.
72 * @param str: destination buffer
73 * @param len: length of dest buffer
74 * @param fixed: fixed text to prepend to string.
75 * @param err: the GetLastError() value.
76 */
77 void wsvc_err2str(char* str, size_t len, const char* fixed, DWORD err);
78
5879 #endif /* WINRC_W_INST_H */
126126 reportev(const char* str)
127127 {
128128 char b[256];
129 char e[256];
129130 HANDLE* s;
130131 LPCTSTR msg = b;
131132 /* print quickly to keep GetLastError value */
132 snprintf(b, sizeof(b), "%s: %s (%d)", SERVICE_NAME,
133 str, (int)GetLastError());
133 wsvc_err2str(e, sizeof(e), str, GetLastError());
134 snprintf(b, sizeof(b), "%s: %s", SERVICE_NAME, e);
134135 s = RegisterEventSource(NULL, SERVICE_NAME);
135136 if(!s) return;
136137 ReportEvent(s, /* event log */
180181 if(type == REG_SZ || type == REG_MULTI_SZ || type == REG_EXPAND_SZ) {
181182 buf[sizeof(buf)-1] = 0;
182183 buf[sizeof(buf)-2] = 0; /* for multi_sz */
183 result = strdup(buf);
184 result = strdup((char*)buf);
184185 if(!result) reportev("out of memory");
185186 }
186187 return result;
220221 if(type == REG_SZ || type == REG_MULTI_SZ || type == REG_EXPAND_SZ) {
221222 buf[sizeof(buf)-1] = 0;
222223 buf[sizeof(buf)-2] = 0; /* for multi_sz */
223 result = atoi(buf);
224 result = atoi((char*)buf);
224225 } else if(type == REG_DWORD) {
225 result = *(DWORD*)buf;
226 DWORD r;
227 memmove(&r, buf, sizeof(r));
228 result = r;
226229 }
227230 return result;
228231 }