Codebase list unbound / ebdab46
Merge tag 'upstream/1.13.1' Upstream version 1.13.1 Robert Edmonds 3 years ago
96 changed file(s) with 10675 addition(s) and 7881 deletion(s). Raw diff Collapse all Expand all
247247 DNSTAP_SOCKET_OBJ=unbound-dnstap-socket.lo
248248 DNSTAP_SOCKET_OBJ_LINK=$(DNSTAP_SOCKET_OBJ) $(COMMON_OBJ) \
249249 $(COMPAT_OBJ) $(SLDNS_OBJ)
250 DNSTAP_SOCKET_TESTBIN=@DNSTAP_SOCKET_TESTBIN@
250251 LIBUNBOUND_SRC=libunbound/context.c libunbound/libunbound.c \
251252 libunbound/libworker.c
252253 LIBUNBOUND_OBJ=context.lo libunbound.lo libworker.lo ub_event_pluggable.lo
322323 TEST_BIN=asynclook$(EXEEXT) delayer$(EXEEXT) \
323324 lock-verify$(EXEEXT) memstats$(EXEEXT) perf$(EXEEXT) \
324325 petal$(EXEEXT) pktview$(EXEEXT) streamtcp$(EXEEXT) \
325 unbound-dnstap-socket$(EXEEXT) dohclient$(EXEEXT) \
326 $(DNSTAP_SOCKET_TESTBIN) dohclient$(EXEEXT) \
326327 testbound$(EXEEXT) unittest$(EXEEXT)
327328 tests: all $(TEST_BIN)
328329
348349 $(LINK) -o $@ $(DAEMON_OBJ_LINK) $(EXTRALINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
349350
350351 unbound-checkconf$(EXEEXT): $(CHECKCONF_OBJ_LINK) libunbound.la
351 $(LINK) -o $@ $(CHECKCONF_OBJ_LINK) $(EXTRALINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
352 $(LINK) -o $@ $(CHECKCONF_OBJ_LINK) $(EXTRALINK) $(SSLLIB) $(LIBS)
352353
353354 unbound-control$(EXEEXT): $(CONTROL_OBJ_LINK) libunbound.la
354 $(LINK) -o $@ $(CONTROL_OBJ_LINK) $(EXTRALINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
355 $(LINK) -o $@ $(CONTROL_OBJ_LINK) $(EXTRALINK) $(SSLLIB) $(LIBS)
355356
356357 unbound-host$(EXEEXT): $(HOST_OBJ_LINK) libunbound.la
357358 $(LINK) -o $@ $(HOST_OBJ_LINK) -L. -L.libs -lunbound $(SSLLIB) $(LIBS)
369370 $(LINK) -o $@ $(ANCHORUPD_OBJ_LINK) -L. -L.libs -lunbound $(LIBS)
370371
371372 unittest$(EXEEXT): $(UNITTEST_OBJ_LINK)
372 $(LINK) -o $@ $(UNITTEST_OBJ_LINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
373 $(LINK) -o $@ $(UNITTEST_OBJ_LINK) $(SSLLIB) $(LIBS)
373374
374375 testbound$(EXEEXT): $(TESTBOUND_OBJ_LINK)
375 $(LINK) -o $@ $(TESTBOUND_OBJ_LINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
376 $(LINK) -o $@ $(TESTBOUND_OBJ_LINK) $(SSLLIB) $(LIBS)
376377
377378 lock-verify$(EXEEXT): $(LOCKVERIFY_OBJ_LINK)
378 $(LINK) -o $@ $(LOCKVERIFY_OBJ_LINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
379 $(LINK) -o $@ $(LOCKVERIFY_OBJ_LINK) $(SSLLIB) $(LIBS)
379380
380381 petal$(EXEEXT): $(PETAL_OBJ_LINK)
381382 $(LINK) -o $@ $(PETAL_OBJ_LINK) $(SSLLIB) $(LIBS)
382383
383384 pktview$(EXEEXT): $(PKTVIEW_OBJ_LINK)
384 $(LINK) -o $@ $(PKTVIEW_OBJ_LINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
385 $(LINK) -o $@ $(PKTVIEW_OBJ_LINK) $(SSLLIB) $(LIBS)
385386
386387 memstats$(EXEEXT): $(MEMSTATS_OBJ_LINK)
387 $(LINK) -o $@ $(MEMSTATS_OBJ_LINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
388 $(LINK) -o $@ $(MEMSTATS_OBJ_LINK) $(SSLLIB) $(LIBS)
388389
389390 asynclook$(EXEEXT): $(ASYNCLOOK_OBJ_LINK) libunbound.la
390391 $(LINK) -o $@ $(ASYNCLOOK_OBJ_LINK) -L. -L.libs -lunbound $(SSLLIB) $(LIBS)
391392
392393 streamtcp$(EXEEXT): $(STREAMTCP_OBJ_LINK)
393 $(LINK) -o $@ $(STREAMTCP_OBJ_LINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
394 $(LINK) -o $@ $(STREAMTCP_OBJ_LINK) $(SSLLIB) $(LIBS)
394395
395396 dohclient$(EXEEXT): $(DOHCLIENT_OBJ_LINK)
396 $(LINK) -o $@ $(DOHCLIENT_OBJ_LINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
397 $(LINK) -o $@ $(DOHCLIENT_OBJ_LINK) $(SSLLIB) $(LIBS)
397398
398399 perf$(EXEEXT): $(PERF_OBJ_LINK)
399 $(LINK) -o $@ $(PERF_OBJ_LINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
400 $(LINK) -o $@ $(PERF_OBJ_LINK) $(SSLLIB) $(LIBS)
400401
401402 delayer$(EXEEXT): $(DELAYER_OBJ_LINK)
402 $(LINK) -o $@ $(DELAYER_OBJ_LINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
403 $(LINK) -o $@ $(DELAYER_OBJ_LINK) $(SSLLIB) $(LIBS)
403404
404405 signit$(EXEEXT): testcode/signit.c
405406 $(CC) $(CPPFLAGS) $(CFLAGS) @PTHREAD_CFLAGS_ONLY@ -o $@ testcode/signit.c $(LDFLAGS) -lldns $(SSLLIB) $(LIBS)
422423 $(PROTOC_C) --c_out=. --proto_path=$(srcdir) $(srcdir)/dnstap/dnstap.proto
423424
424425 unbound-dnstap-socket$(EXEEXT): $(DNSTAP_SOCKET_OBJ_LINK)
425 $(LINK) -o $@ $(DNSTAP_SOCKET_OBJ_LINK) $(SSLLIB) $(LIBS) $(DYNLIBMOD_EXTRALIBS)
426 $(LINK) -o $@ $(DNSTAP_SOCKET_OBJ_LINK) $(SSLLIB) $(LIBS)
426427
427428 dnstap.pb-c.lo dnstap.pb-c.o: dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h
428429 dtstream.lo dtstream.o: $(srcdir)/dnstap/dtstream.c config.h $(srcdir)/dnstap/dtstream.h
429430 dnstap_fstrm.lo dnstap_fstrm.o: $(srcdir)/dnstap/dnstap_fstrm.c config.h $(srcdir)/dnstap/dnstap_fstrm.h
430431 unbound-dnstap-socket.lo unbound-dnstap-socket.o: $(srcdir)/dnstap/unbound-dnstap-socket.c config.h $(srcdir)/dnstap/dtstream.h
432 dynlibmod.lo dynlibdmod.o: $(srcdir)/dynlibmod/dynlibmod.c config.h $(srcdir)/dynlibmod/dynlibmod.h
431433
432434 # dnscrypt
433435 dnscrypt.lo dnscrypt.o: $(srcdir)/dnscrypt/dnscrypt.c config.h \
825827 $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
826828 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
827829 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \
828 $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \
829 $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h \
830 $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h \
831 $(srcdir)/validator/val_utils.h $(srcdir)/respip/respip.h $(srcdir)/services/localzone.h \
832 $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(PYTHONMOD_HEADER) $(srcdir)/ipsecmod/ipsecmod.h \
833 $(srcdir)/util/storage/slabhash.h $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h \
834 $(srcdir)/ipset/ipset.h $(srcdir)/dynlibmod/dynlibmod.h
830 $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/tube.h \
831 $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h \
832 $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h \
833 $(srcdir)/util/config_file.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \
834 $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \
835 $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \
836 $(PYTHONMOD_HEADER) $(DYNLIBMOD_HEADER) $(srcdir)/cachedb/cachedb.h \
837 $(srcdir)/ipsecmod/ipsecmod.h $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/util/alloc.h $(srcdir)/util/net_help.h \
838 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/dname.h $(srcdir)/edns-subnet/addrtree.h \
839 $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/ipset/ipset.h
835840 view.lo view.o: $(srcdir)/services/view.c config.h $(srcdir)/services/view.h $(srcdir)/util/rbtree.h \
836841 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \
837842 $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \
862867 $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h \
863868 $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h $(srcdir)/services/authzone.h \
864869 $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h \
865 $(srcdir)/dnstap/dnstap.h
870 $(srcdir)/util/edns.h $(srcdir)/dnstap/dnstap.h \
871
866872 alloc.lo alloc.o: $(srcdir)/util/alloc.c config.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
867873 $(srcdir)/util/regional.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
868874 $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
883889 $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h \
884890 $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/util/data/dname.h \
885891 $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h \
886 $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/util/iana_ports.inc
892 $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/edns-subnet/edns-subnet.h \
893 $(srcdir)/util/iana_ports.inc
887894 configlexer.lo configlexer.o: util/configlexer.c config.h $(srcdir)/util/configyyrename.h \
888895 $(srcdir)/util/config_file.h util/configparser.h
889896 configparser.lo configparser.o: util/configparser.c config.h $(srcdir)/util/configyyrename.h \
912919 $(srcdir)/util/data/msgencode.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h \
913920 $(srcdir)/services/cache/dns.h $(srcdir)/services/outside_network.h \
914921 $(srcdir)/services/listen_dnsport.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h \
915 $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/keyraw.h $(srcdir)/validator/val_nsec3.h \
916 $(srcdir)/validator/val_secalgo.h
922 $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/keyraw.h \
923 $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_secalgo.h
917924 fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/fptr_wlist.h \
918925 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
919 $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h \
920 $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
921 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \
922 $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \
923 $(srcdir)/services/outside_network.h $(srcdir)/services/localzone.h \
924 $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/authzone.h \
925 $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \
926 $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \
927 $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \
928 $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \
929 $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \
930 $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h $(srcdir)/libunbound/context.h \
931 $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/unbound-event.h \
932 $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h $(srcdir)/respip/respip.h \
933 $(PYTHONMOD_HEADER) $(srcdir)/ipsecmod/ipsecmod.h $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/util/net_help.h \
934 $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/ipset/ipset.h \
935 $(srcdir)/dynlibmod/dynlibmod.h
926 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h \
927 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
928 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
929 $(srcdir)/services/modstack.h $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h \
930 $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h \
931 $(srcdir)/util/config_file.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \
932 $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/util/mini_event.h \
933 $(srcdir)/services/outside_network.h $(srcdir)/services/cache/infra.h \
934 $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h \
935 $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \
936 $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \
937 $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h \
938 $(srcdir)/validator/val_neg.h $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h \
939 $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound-event.h \
940 $(srcdir)/libunbound/worker.h $(PYTHONMOD_HEADER) $(DYNLIBMOD_HEADER) \
941 $(srcdir)/cachedb/cachedb.h $(srcdir)/ipsecmod/ipsecmod.h $(srcdir)/edns-subnet/subnetmod.h \
942 $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/edns-subnet/addrtree.h \
943 $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/ipset/ipset.h $(srcdir)/dnstap/dtstream.h
936944 locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h
937945 log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/sldns/sbuffer.h
938 mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \
939 $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
940 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
941 $(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
942 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \
943 $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/services/rpz.h \
944 $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \
945 $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h \
946 $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h
946 mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h
947947 module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \
948948 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
949949 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h
956956 $(srcdir)/services/modstack.h $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h $(srcdir)/services/view.h \
957957 $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h \
958958 $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/sldns/str2wire.h \
959 $(srcdir)/dnstap/dnstap.h $(srcdir)/services/listen_dnsport.h
959 $(srcdir)/dnstap/dnstap.h $(srcdir)/services/listen_dnsport.h \
960
960961 net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \
961962 $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \
962963 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
963964 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \
964 $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h
965 $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h \
966
965967 random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h
966968 rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \
967969 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
977979 $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
978980 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h \
979981 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h
980 edns.lo edns.o: $(srcdir)/util/edns.c config.h $(srcdir)/util/edns.h $(srcdir)/util/config_file.h \
981 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
982 $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
983 $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \
984 $(srcdir)/util/data/packed_rrset.h
982 edns.lo edns.o: $(srcdir)/util/edns.c config.h $(srcdir)/util/edns.h $(srcdir)/util/storage/dnstree.h \
983 $(srcdir)/util/rbtree.h $(srcdir)/util/config_file.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
984 $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/regional.h \
985 $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h \
986 $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h
985987 dnstree.lo dnstree.o: $(srcdir)/util/storage/dnstree.c config.h $(srcdir)/util/storage/dnstree.h \
986988 $(srcdir)/util/rbtree.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
987989 $(srcdir)/util/log.h $(srcdir)/util/net_help.h
10151017 $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/util/ub_event.h
10161018 ub_event.lo ub_event.o: $(srcdir)/util/ub_event.c config.h $(srcdir)/util/ub_event.h $(srcdir)/util/log.h \
10171019 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1018 $(srcdir)/util/tube.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
1020 $(srcdir)/util/tube.h \
1021
10191022 ub_event_pluggable.lo ub_event_pluggable.o: $(srcdir)/util/ub_event_pluggable.c config.h $(srcdir)/util/ub_event.h \
10201023 $(srcdir)/libunbound/unbound-event.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
10211024 $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \
10251028 $(srcdir)/services/modstack.h $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h \
10261029 $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h \
10271030 $(srcdir)/util/config_file.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \
1028 $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
1031 $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h \
1032
10291033 winsock_event.lo winsock_event.o: $(srcdir)/util/winsock_event.c config.h
10301034 autotrust.lo autotrust.o: $(srcdir)/validator/autotrust.c config.h $(srcdir)/validator/autotrust.h \
10311035 $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
10381042 $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h \
10391043 $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \
10401044 $(srcdir)/respip/respip.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
1041 $(srcdir)/validator/val_kcache.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/keyraw.h
1045 $(srcdir)/validator/val_kcache.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/keyraw.h \
1046
10421047 val_anchor.lo val_anchor.o: $(srcdir)/validator/val_anchor.c config.h $(srcdir)/validator/val_anchor.h \
10431048 $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_sigcrypt.h \
10441049 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h \
10681073 val_kentry.lo val_kentry.o: $(srcdir)/validator/val_kentry.c config.h $(srcdir)/validator/val_kentry.h \
10691074 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
10701075 $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \
1071 $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h
1072 val_neg.lo val_neg.o: $(srcdir)/validator/val_neg.c config.h $(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h \
1073 $(srcdir)/util/log.h $(srcdir)/util/rbtree.h $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h \
1074 $(srcdir)/util/storage/lruhash.h $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_utils.h \
1075 $(srcdir)/sldns/pkthdr.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/net_help.h \
1076 $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \
1077
1078 val_neg.lo val_neg.o: $(srcdir)/validator/val_neg.c config.h \
1079 $(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \
1080 $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
1081 $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_utils.h $(srcdir)/sldns/pkthdr.h \
1082 $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/net_help.h \
10761083 $(srcdir)/util/config_file.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
10771084 $(srcdir)/services/cache/dns.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h
10781085 val_nsec3.lo val_nsec3.o: $(srcdir)/validator/val_nsec3.c config.h $(srcdir)/validator/val_nsec3.h \
10901097 val_secalgo.lo val_secalgo.o: $(srcdir)/validator/val_secalgo.c config.h $(srcdir)/util/data/packed_rrset.h \
10911098 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h \
10921099 $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \
1093 $(srcdir)/sldns/sbuffer.h
1100 $(srcdir)/sldns/sbuffer.h \
1101
10941102 val_sigcrypt.lo val_sigcrypt.o: $(srcdir)/validator/val_sigcrypt.c config.h \
10951103 $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
10961104 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h $(srcdir)/validator/val_secalgo.h \
10971105 $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
10981106 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_utils.h \
10991107 $(srcdir)/util/data/dname.h $(srcdir)/util/rbtree.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \
1100 $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/parseutil.h \
1101 $(srcdir)/sldns/wire2str.h
1108 $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h \
1109 $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h \
1110
11021111 val_utils.lo val_utils.o: $(srcdir)/validator/val_utils.c config.h $(srcdir)/validator/val_utils.h \
11031112 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
11041113 $(srcdir)/sldns/pkthdr.h $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
11191128 $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h \
11201129 $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/util/net_help.h \
11211130 $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/sldns/str2wire.h
1122 edns-subnet.lo edns-subnet.o: $(srcdir)/edns-subnet/edns-subnet.c config.h
1123 subnetmod.lo subnetmod.o: $(srcdir)/edns-subnet/subnetmod.c config.h
1131 edns-subnet.lo edns-subnet.o: $(srcdir)/edns-subnet/edns-subnet.c config.h \
1132 $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h
1133 subnetmod.lo subnetmod.o: $(srcdir)/edns-subnet/subnetmod.c config.h $(srcdir)/edns-subnet/subnetmod.h \
1134 $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1135 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
1136 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/outbound_list.h $(srcdir)/util/alloc.h \
1137 $(srcdir)/util/net_help.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/dname.h \
1138 $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h \
1139 $(srcdir)/edns-subnet/subnet-whitelist.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
1140 $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1141 $(srcdir)/services/modstack.h $(srcdir)/services/rpz.h \
1142 $(srcdir)/services/localzone.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h \
1143 $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \
1144 $(srcdir)/respip/respip.h $(srcdir)/services/cache/dns.h $(srcdir)/util/regional.h \
1145 $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h
11241146 addrtree.lo addrtree.o: $(srcdir)/edns-subnet/addrtree.c config.h $(srcdir)/util/log.h \
11251147 $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
11261148 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \
11271149 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/edns-subnet/addrtree.h
1128 subnet-whitelist.lo subnet-whitelist.o: $(srcdir)/edns-subnet/subnet-whitelist.c config.h
1129 cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h
1130 redis.lo redis.o: $(srcdir)/cachedb/redis.c config.h
1150 subnet-whitelist.lo subnet-whitelist.o: $(srcdir)/edns-subnet/subnet-whitelist.c config.h \
1151 $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \
1152 $(srcdir)/edns-subnet/subnet-whitelist.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
1153 $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h \
1154 $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h
1155 cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h $(srcdir)/cachedb/cachedb.h $(srcdir)/util/module.h \
1156 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \
1157 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \
1158 $(srcdir)/sldns/rrdef.h $(srcdir)/cachedb/redis.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \
1159 $(srcdir)/util/config_file.h $(srcdir)/util/data/msgencode.h $(srcdir)/services/cache/dns.h \
1160 $(srcdir)/validator/val_neg.h $(srcdir)/util/rbtree.h $(srcdir)/validator/val_secalgo.h \
1161 $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h $(srcdir)/sldns/parseutil.h \
1162 $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/sbuffer.h
1163 redis.lo redis.o: $(srcdir)/cachedb/redis.c config.h $(srcdir)/cachedb/redis.h $(srcdir)/cachedb/cachedb.h \
1164 $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1165 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
1166 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h \
1167 $(srcdir)/sldns/sbuffer.h
11311168 respip.lo respip.o: $(srcdir)/respip/respip.c config.h $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h \
11321169 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h \
11331170 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
11421179 $(srcdir)/testcode/checklocks.h
11431180 dnstap.lo dnstap.o: $(srcdir)/dnstap/dnstap.c config.h $(srcdir)/sldns/sbuffer.h \
11441181 $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \
1145 $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \
1146 $(srcdir)/util/locks.h $(srcdir)/dnstap/dnstap.h \
1147 dnstap/dnstap.pb-c.h
1182 $(srcdir)/dnscrypt/dnscrypt.h \
1183 $(srcdir)/dnstap/dnstap.h \
1184 $(srcdir)/dnstap/dtstream.h $(srcdir)/util/locks.h dnstap/dnstap.pb-c.h
11481185 dnstap.pb-c.lo dnstap.pb-c.o: dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h \
11491186
1150 dynlibmod.lo dynlibmod.o: $(srcdir)/dynlibmod/dynlibmod.c config.h $(srcdir)/dynlibmod/dynlibmod.h \
1187 dnstap_fstrm.lo dnstap_fstrm.o: $(srcdir)/dnstap/dnstap_fstrm.c config.h $(srcdir)/dnstap/dnstap_fstrm.h \
1188 $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h
1189 dtstream.lo dtstream.o: $(srcdir)/dnstap/dtstream.c config.h $(srcdir)/dnstap/dtstream.h $(srcdir)/util/locks.h \
1190 $(srcdir)/util/log.h $(srcdir)/dnstap/dnstap_fstrm.h $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h \
1191 $(srcdir)/util/net_help.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h \
1192 $(srcdir)/dnscrypt/dnscrypt.h \
1193 $(srcdir)/sldns/sbuffer.h \
1194
1195 ipsecmod.lo ipsecmod.o: $(srcdir)/ipsecmod/ipsecmod.c config.h $(srcdir)/ipsecmod/ipsecmod.h \
11511196 $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
11521197 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
1153 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/rbtree.h\
1198 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/rbtree.h $(srcdir)/ipsecmod/ipsecmod-whitelist.h \
11541199 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \
11551200 $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/tube.h \
1156 $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \
1157 $(srcdir)/util/config_file.h $(srcdir)/services/cache/dns.h $(srcdir)/sldns/wire2str.h
1158 dnscrypt.lo dnscrypt.o: $(srcdir)/dnscrypt/dnscrypt.c config.h $(srcdir)/sldns/sbuffer.h \
1159 $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \
1160 $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \
1161 $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \
1162 $(srcdir)/util/storage/lookup3.h
1163 ipsecmod.lo ipsecmod.o: $(srcdir)/ipsecmod/ipsecmod.c config.h
1201 $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h \
1202 $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h $(srcdir)/services/authzone.h \
1203 $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h \
1204 $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h $(srcdir)/sldns/wire2str.h
1205 ipsecmod-whitelist.lo ipsecmod-whitelist.o: $(srcdir)/ipsecmod/ipsecmod-whitelist.c config.h \
1206 $(srcdir)/ipsecmod/ipsecmod.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
1207 $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
1208 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/rbtree.h \
1209 $(srcdir)/ipsecmod/ipsecmod-whitelist.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/regional.h \
1210 $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/sldns/str2wire.h
11641211 ipset.lo ipset.o: $(srcdir)/ipset/ipset.c config.h $(srcdir)/ipset/ipset.h $(srcdir)/util/module.h \
11651212 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \
11661213 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \
1167 $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/services/cache/dns.h \
1168 $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h
1169 ipsecmod-whitelist.lo ipsecmod-whitelist.o: $(srcdir)/ipsecmod/ipsecmod-whitelist.c config.h
1214 $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \
1215 $(srcdir)/services/cache/dns.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h
11701216 unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \
11711217 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/unitmain.h \
11721218 $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/rrdef.h
11751221 $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h
11761222 unitlruhash.lo unitlruhash.o: $(srcdir)/testcode/unitlruhash.c config.h $(srcdir)/testcode/unitmain.h \
11771223 $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h
1178 unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \
1224 unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h \
1225 $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \
11791226 $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \
11801227 $(srcdir)/util/config_file.h $(srcdir)/util/rtt.h $(srcdir)/util/timehist.h $(srcdir)/iterator/iterator.h \
11811228 $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
11831230 $(srcdir)/sldns/pkthdr.h $(srcdir)/libunbound/unbound.h $(srcdir)/services/cache/infra.h \
11841231 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
11851232 $(srcdir)/util/random.h $(srcdir)/respip/respip.h \
1186 $(srcdir)/services/localzone.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h
1233 $(srcdir)/services/localzone.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h \
1234 $(srcdir)/services/outside_network.h
11871235 unitmsgparse.lo unitmsgparse.o: $(srcdir)/testcode/unitmsgparse.c config.h $(srcdir)/util/log.h \
11881236 $(srcdir)/testcode/unitmain.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h \
11891237 $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \
12151263 unitldns.lo unitldns.o: $(srcdir)/testcode/unitldns.c config.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \
12161264 $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h \
12171265 $(srcdir)/sldns/parseutil.h
1218 unitecs.lo unitecs.o: $(srcdir)/testcode/unitecs.c config.h
1266 unitecs.lo unitecs.o: $(srcdir)/testcode/unitecs.c config.h $(srcdir)/util/log.h $(srcdir)/util/module.h \
1267 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/data/msgreply.h \
1268 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \
1269 $(srcdir)/sldns/rrdef.h $(srcdir)/testcode/unitmain.h $(srcdir)/edns-subnet/addrtree.h \
1270 $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/services/outbound_list.h $(srcdir)/util/alloc.h \
1271 $(srcdir)/util/net_help.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/dname.h \
1272 $(srcdir)/edns-subnet/edns-subnet.h
12191273 unitauth.lo unitauth.o: $(srcdir)/testcode/unitauth.c config.h $(srcdir)/services/authzone.h \
12201274 $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h \
12211275 $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/data/msgparse.h \
12321286 $(srcdir)/services/localzone.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \
12331287 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
12341288 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h
1235 cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h $(srcdir)/daemon/cachedump.h \
1236 $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \
1237 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1238 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1239 $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \
1240 $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \
1241 $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \
1242 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \
1243 $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h \
1244 $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/iterator/iterator.h \
1245 $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_utils.h \
1246 $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \
1247 $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h
1248 daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h \
1249 $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
1250 $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \
1289 cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h \
1290 $(srcdir)/daemon/cachedump.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \
12511291 $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
1252 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/data/msgreply.h \
1292 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1293 $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h \
12531294 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \
12541295 $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \
1255 $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
1256 $(srcdir)/services/view.h $(srcdir)/util/config_file.h $(srcdir)/util/shm_side/shm_main.h \
1257 $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/tcp_conn_limit.h \
1296 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
1297 $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \
1298 $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \
1299 $(srcdir)/util/data/dname.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \
1300 $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h \
1301 $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/sldns/wire2str.h \
1302 $(srcdir)/sldns/str2wire.h
1303 daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \
1304 $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
1305 $(srcdir)/daemon/worker.h \
1306 $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \
1307 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1308 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \
1309 $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h \
1310 $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \
1311 $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \
1312 $(srcdir)/util/config_file.h $(srcdir)/util/shm_side/shm_main.h $(srcdir)/util/storage/lookup3.h \
1313 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/tcp_conn_limit.h $(srcdir)/util/edns.h \
12581314 $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
12591315 $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h \
12601316 $(srcdir)/services/rpz.h $(srcdir)/respip/respip.h $(srcdir)/util/random.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h \
12611317 $(srcdir)/sldns/keyraw.h
1262 remote.lo remote.o: $(srcdir)/daemon/remote.c config.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h \
1263 $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \
1264 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \
1265 $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/alloc.h \
1266 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \
1267 $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h \
1268 $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \
1318 remote.lo remote.o: $(srcdir)/daemon/remote.c config.h \
1319 $(srcdir)/daemon/remote.h \
1320 $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \
1321 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1322 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1323 $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \
1324 $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \
1325 $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \
12691326 $(srcdir)/services/modstack.h $(srcdir)/daemon/cachedump.h $(srcdir)/util/config_file.h \
12701327 $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \
12711328 $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \
12901347 $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \
12911348 $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h \
12921349 $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
1293 $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_neg.h
1350 $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_neg.h $(srcdir)/edns-subnet/subnetmod.h \
1351 $(srcdir)/util/data/dname.h $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h \
1352
12941353 unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \
12951354 $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
1296 $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h \
1297 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/services/listen_dnsport.h \
1298 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/services/cache/rrset.h \
1299 $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \
1300 $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/fptr_wlist.h \
1301 $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \
1302 $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h \
1303 $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h \
1304 $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/util/net_help.h \
1305 $(srcdir)/util/ub_event.h
1355 $(srcdir)/daemon/remote.h \
1356 $(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \
1357 $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1358 $(srcdir)/services/cache/rrset.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h \
1359 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h \
1360 $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \
1361 $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/rpz.h \
1362 $(srcdir)/services/localzone.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(srcdir)/services/authzone.h \
1363 $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h \
1364 $(srcdir)/util/net_help.h $(srcdir)/util/ub_event.h
13061365 worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \
13071366 $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \
13081367 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
13101369 $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \
13111370 $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \
13121371 $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \
1313 $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \
1314 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \
1315 $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \
1316 $(srcdir)/services/outside_network.h $(srcdir)/services/outbound_list.h \
1317 $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
1318 $(srcdir)/services/cache/dns.h $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h $(srcdir)/services/rpz.h \
1319 $(srcdir)/services/localzone.h $(srcdir)/respip/respip.h $(srcdir)/util/data/msgencode.h \
1320 $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/edns.h \
1321 $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \
1322 $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound-event.h \
1323 $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h $(srcdir)/util/shm_side/shm_main.h \
1324 $(srcdir)/dnstap/dtstream.h
1372 $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \
1373 $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \
1374 $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \
1375 $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
1376 $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
1377 $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h \
1378 $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h $(srcdir)/respip/respip.h \
1379 $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \
1380 $(srcdir)/util/edns.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \
1381 $(srcdir)/validator/autotrust.h $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h \
1382 $(srcdir)/libunbound/unbound-event.h $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h \
1383 $(srcdir)/util/shm_side/shm_main.h $(srcdir)/dnstap/dtstream.h
13251384 testbound.lo testbound.o: $(srcdir)/testcode/testbound.c config.h $(srcdir)/testcode/testpkts.h \
13261385 $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
13271386 $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h \
1328 $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h $(srcdir)/daemon/unbound.c \
1329 $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
1387 $(srcdir)/daemon/remote.h \
1388 $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h $(srcdir)/daemon/unbound.c $(srcdir)/util/log.h \
1389 $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
13301390 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \
13311391 $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \
13321392 $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \
13451405 $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \
13461406 $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \
13471407 $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \
1348 $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \
1349 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \
1350 $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \
1351 $(srcdir)/services/outside_network.h $(srcdir)/services/outbound_list.h \
1352 $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
1353 $(srcdir)/services/cache/dns.h $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h $(srcdir)/services/rpz.h \
1354 $(srcdir)/services/localzone.h $(srcdir)/respip/respip.h $(srcdir)/util/data/msgencode.h \
1355 $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/edns.h \
1356 $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \
1357 $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound-event.h \
1358 $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h $(srcdir)/util/shm_side/shm_main.h \
1359 $(srcdir)/dnstap/dtstream.h
1408 $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \
1409 $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \
1410 $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \
1411 $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
1412 $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
1413 $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h \
1414 $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h $(srcdir)/respip/respip.h \
1415 $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \
1416 $(srcdir)/util/edns.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \
1417 $(srcdir)/validator/autotrust.h $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h \
1418 $(srcdir)/libunbound/unbound-event.h $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h \
1419 $(srcdir)/util/shm_side/shm_main.h $(srcdir)/dnstap/dtstream.h
13601420 acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \
13611421 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \
13621422 $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \
13631423 $(srcdir)/services/localzone.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \
13641424 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
13651425 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h
1366 daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h \
1367 $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
1368 $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \
1369 $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
1370 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/data/msgreply.h \
1371 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \
1372 $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \
1373 $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
1374 $(srcdir)/services/view.h $(srcdir)/util/config_file.h $(srcdir)/util/shm_side/shm_main.h \
1375 $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/tcp_conn_limit.h \
1426 daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \
1427 $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
1428 $(srcdir)/daemon/worker.h \
1429 $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \
1430 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1431 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \
1432 $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h \
1433 $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \
1434 $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \
1435 $(srcdir)/util/config_file.h $(srcdir)/util/shm_side/shm_main.h $(srcdir)/util/storage/lookup3.h \
1436 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/tcp_conn_limit.h $(srcdir)/util/edns.h \
13761437 $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
13771438 $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h \
13781439 $(srcdir)/services/rpz.h $(srcdir)/respip/respip.h $(srcdir)/util/random.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h \
13901451 $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \
13911452 $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h \
13921453 $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
1393 $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_neg.h
1454 $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_neg.h $(srcdir)/edns-subnet/subnetmod.h \
1455 $(srcdir)/util/data/dname.h $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h \
1456
13941457 replay.lo replay.o: $(srcdir)/testcode/replay.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \
13951458 $(srcdir)/util/config_file.h $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
13961459 $(srcdir)/testcode/testpkts.h $(srcdir)/util/rbtree.h \
14001463 $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h \
14011464 $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \
14021465 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \
1403 $(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
1404 $(srcdir)/util/rbtree.h $(srcdir)/services/cache/infra.h \
1405 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h $(srcdir)/testcode/replay.h $(srcdir)/testcode/testpkts.h \
1406 $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \
1407 $(srcdir)/services/modstack.h $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h $(srcdir)/services/view.h \
1408 $(srcdir)/sldns/sbuffer.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \
1409 $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h
1466 $(srcdir)/util/edns.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/config_file.h \
1467 $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
1468 $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
1469 $(srcdir)/testcode/replay.h $(srcdir)/testcode/testpkts.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h \
1470 $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/services/rpz.h \
1471 $(srcdir)/services/localzone.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(srcdir)/services/authzone.h \
1472 $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h \
1473 $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h
14101474 lock_verify.lo lock_verify.o: $(srcdir)/testcode/lock_verify.c config.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \
14111475 $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
14121476 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h \
14411505 $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h \
14421506 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
14431507 $(srcdir)/services/modstack.h $(srcdir)/services/rpz.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \
1444 $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h
1508 $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/sldns/str2wire.h \
1509 $(PYTHONMOD_HEADER) $(srcdir)/edns-subnet/subnet-whitelist.h
14451510 worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/libunbound/context.h \
14461511 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \
14471512 $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/unbound-event.h $(srcdir)/util/data/packed_rrset.h \
14621527 $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
14631528 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
14641529 $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h $(srcdir)/services/rpz.h $(srcdir)/daemon/stats.h \
1465 $(srcdir)/util/timehist.h $(srcdir)/respip/respip.h
1530 $(srcdir)/util/timehist.h $(srcdir)/respip/respip.h $(srcdir)/util/edns.h
14661531 libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h \
14671532 $(srcdir)/libunbound/unbound-event.h config.h $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h \
14681533 $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \
14691534 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/libunbound/libworker.h \
14701535 $(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
14711536 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h \
1472 $(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h $(srcdir)/util/ub_event.h \
1473 $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \
1537 $(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h $(srcdir)/util/ub_event.h $(srcdir)/util/edns.h \
1538 $(srcdir)/util/storage/dnstree.h $(srcdir)/services/localzone.h $(srcdir)/services/view.h \
14741539 $(srcdir)/sldns/sbuffer.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h \
14751540 $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/services/cache/rrset.h \
14761541 $(srcdir)/util/storage/slabhash.h $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h \
14771542 $(srcdir)/services/rpz.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/respip/respip.h
1478 libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h $(srcdir)/libunbound/libworker.h \
1479 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1480 $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \
1481 $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/unbound-event.h $(srcdir)/libunbound/worker.h \
1482 $(srcdir)/sldns/sbuffer.h $(srcdir)/services/outside_network.h $(srcdir)/util/netevent.h \
1483 $(srcdir)/dnscrypt/dnscrypt.h \
1484 $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \
1485 $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h \
1486 $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \
1487 $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/respip/respip.h \
1488 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h \
1489 $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \
1490 $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \
1491 $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \
1492 $(srcdir)/sldns/str2wire.h
1543 libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h \
1544 $(srcdir)/libunbound/libworker.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
1545 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \
1546 $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/unbound-event.h \
1547 $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/services/outside_network.h \
1548 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1549 $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h \
1550 $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
1551 $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \
1552 $(srcdir)/services/view.h $(srcdir)/util/config_file.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h \
1553 $(srcdir)/util/timehist.h $(srcdir)/respip/respip.h $(srcdir)/services/cache/rrset.h \
1554 $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h $(srcdir)/util/fptr_wlist.h \
1555 $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/util/storage/lookup3.h \
1556 $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h \
1557 $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/sldns/str2wire.h
14931558 unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \
1494 $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h
1559 $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h \
1560
14951561 asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \
14961562 $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \
14971563 $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound-event.h $(srcdir)/util/data/packed_rrset.h \
1498 $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/rrdef.h
1564 $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/rrdef.h \
1565
14991566 streamtcp.lo streamtcp.o: $(srcdir)/testcode/streamtcp.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
15001567 $(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgparse.h \
15011568 $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \
15021569 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/dname.h $(srcdir)/sldns/sbuffer.h \
1503 $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h
1570 $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h \
1571
15041572 perf.lo perf.o: $(srcdir)/testcode/perf.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \
15051573 $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
15061574 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \
15071575 $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h
15081576 delayer.lo delayer.o: $(srcdir)/testcode/delayer.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \
15091577 $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h
1510 unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h $(srcdir)/util/log.h \
1511 $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h $(srcdir)/util/shm_side/shm_main.h \
1512 $(srcdir)/libunbound/unbound.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/sldns/wire2str.h \
1513 $(srcdir)/sldns/pkthdr.h $(srcdir)/services/rpz.h $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h \
1514 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \
1515 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
1516 $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(srcdir)/services/authzone.h \
1517 $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1578 unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h \
1579 $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \
1580 $(srcdir)/util/shm_side/shm_main.h $(srcdir)/libunbound/unbound.h $(srcdir)/daemon/stats.h \
1581 $(srcdir)/util/timehist.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/pkthdr.h $(srcdir)/services/rpz.h \
1582 $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h \
1583 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
1584 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h \
1585 $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
15181586 $(srcdir)/services/modstack.h $(srcdir)/respip/respip.h
15191587 unbound-anchor.lo unbound-anchor.o: $(srcdir)/smallapp/unbound-anchor.c config.h $(srcdir)/libunbound/unbound.h \
1520 $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/parseutil.h
1521 petal.lo petal.o: $(srcdir)/testcode/petal.c config.h
1588 $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/parseutil.h \
1589
1590 petal.lo petal.o: $(srcdir)/testcode/petal.c config.h \
1591
15221592 unbound-dnstap-socket.lo unbound-dnstap-socket.o: $(srcdir)/dnstap/unbound-dnstap-socket.c config.h \
15231593 $(srcdir)/dnstap/dtstream.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/dnstap/dnstap_fstrm.h \
15241594 $(srcdir)/util/ub_event.h $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h \
15251595 $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
1526 $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/util/config_file.h \
1527 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h
1596 $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h \
1597 dnstap/dnstap.pb-c.h \
1598 $(srcdir)/util/config_file.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h
15281599 pythonmod_utils.lo pythonmod_utils.o: $(srcdir)/pythonmod/pythonmod_utils.c config.h $(srcdir)/util/module.h \
15291600 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \
15301601 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \
15311602 $(srcdir)/sldns/rrdef.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
15321603 $(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h \
15331604 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h \
1534 $(srcdir)/iterator/iter_delegpt.h $(srcdir)/sldns/sbuffer.h
1605 $(srcdir)/iterator/iter_delegpt.h $(srcdir)/sldns/sbuffer.h \
1606
15351607 win_svc.lo win_svc.o: $(srcdir)/winrc/win_svc.c config.h $(srcdir)/winrc/win_svc.h $(srcdir)/winrc/w_inst.h \
15361608 $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
15371609 $(srcdir)/daemon/worker.h \
15391611 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \
15401612 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \
15411613 $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h \
1542 $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h \
1543 $(srcdir)/util/net_help.h
1614 $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \
1615 $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h $(srcdir)/util/net_help.h
15441616 w_inst.lo w_inst.o: $(srcdir)/winrc/w_inst.c config.h $(srcdir)/winrc/w_inst.h $(srcdir)/winrc/win_svc.h
15451617 unbound-service-install.lo unbound-service-install.o: $(srcdir)/winrc/unbound-service-install.c config.h \
15461618 $(srcdir)/winrc/w_inst.h
15481620 $(srcdir)/winrc/w_inst.h
15491621 anchor-update.lo anchor-update.o: $(srcdir)/winrc/anchor-update.c config.h $(srcdir)/libunbound/unbound.h \
15501622 $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/wire2str.h
1551 keyraw.lo keyraw.o: $(srcdir)/sldns/keyraw.c config.h $(srcdir)/sldns/keyraw.h $(srcdir)/sldns/rrdef.h
1623 keyraw.lo keyraw.o: $(srcdir)/sldns/keyraw.c config.h $(srcdir)/sldns/keyraw.h \
1624 $(srcdir)/sldns/rrdef.h \
1625
15521626 sbuffer.lo sbuffer.o: $(srcdir)/sldns/sbuffer.c config.h $(srcdir)/sldns/sbuffer.h
15531627 wire2str.lo wire2str.o: $(srcdir)/sldns/wire2str.c config.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h \
15541628 $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/sbuffer.h \
1555 $(srcdir)/sldns/keyraw.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
1556 $(srcdir)/util/log.h
1629 $(srcdir)/sldns/keyraw.h \
1630 $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h
15571631 parse.lo parse.o: $(srcdir)/sldns/parse.c config.h $(srcdir)/sldns/parse.h $(srcdir)/sldns/parseutil.h \
15581632 $(srcdir)/sldns/sbuffer.h
15591633 parseutil.lo parseutil.o: $(srcdir)/sldns/parseutil.c config.h $(srcdir)/sldns/parseutil.h
15611635 str2wire.lo str2wire.o: $(srcdir)/sldns/str2wire.c config.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h \
15621636 $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/parse.h $(srcdir)/sldns/parseutil.h
15631637 dohclient.lo dohclient.o: $(srcdir)/testcode/dohclient.c config.h $(srcdir)/sldns/wire2str.h \
1564 $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h \
1565 $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1566 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/net_help.h
1638 $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/parseutil.h \
1639 $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
1640 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
1641 $(srcdir)/sldns/pkthdr.h $(srcdir)/util/net_help.h \
1642
15671643 ctime_r.lo ctime_r.o: $(srcdir)/compat/ctime_r.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h
15681644 fake-rfc2553.lo fake-rfc2553.o: $(srcdir)/compat/fake-rfc2553.c $(srcdir)/compat/fake-rfc2553.h config.h
15691645 gmtime_r.lo gmtime_r.o: $(srcdir)/compat/gmtime_r.c config.h
15781654 strlcpy.lo strlcpy.o: $(srcdir)/compat/strlcpy.c config.h
15791655 strptime.lo strptime.o: $(srcdir)/compat/strptime.c config.h
15801656 getentropy_freebsd.lo getentropy_freebsd.o: $(srcdir)/compat/getentropy_freebsd.c
1581 getentropy_linux.lo getentropy_linux.o: $(srcdir)/compat/getentropy_linux.c config.h
1657 getentropy_linux.lo getentropy_linux.o: $(srcdir)/compat/getentropy_linux.c config.h \
1658
15821659 getentropy_osx.lo getentropy_osx.o: $(srcdir)/compat/getentropy_osx.c
1583 getentropy_solaris.lo getentropy_solaris.o: $(srcdir)/compat/getentropy_solaris.c config.h
1660 getentropy_solaris.lo getentropy_solaris.o: $(srcdir)/compat/getentropy_solaris.c config.h \
1661
15841662 getentropy_win.lo getentropy_win.o: $(srcdir)/compat/getentropy_win.c
15851663 explicit_bzero.lo explicit_bzero.o: $(srcdir)/compat/explicit_bzero.c config.h
15861664 arc4random.lo arc4random.o: $(srcdir)/compat/arc4random.c config.h $(srcdir)/compat/chacha_private.h
0 # generated automatically by aclocal 1.16.1 -*- Autoconf -*-
1
2 # Copyright (C) 1996-2018 Free Software Foundation, Inc.
0 # generated automatically by aclocal 1.16.2 -*- Autoconf -*-
1
2 # Copyright (C) 1996-2020 Free Software Foundation, Inc.
33
44 # This file is free software; the Free Software Foundation
55 # gives unlimited permission to copy and/or distribute it,
93899389
93909390 # AM_CONDITIONAL -*- Autoconf -*-
93919391
9392 # Copyright (C) 1997-2018 Free Software Foundation, Inc.
9392 # Copyright (C) 1997-2020 Free Software Foundation, Inc.
93939393 #
93949394 # This file is free software; the Free Software Foundation
93959395 # gives unlimited permission to copy and/or distribute it,
94209420 Usually this means the macro was only invoked conditionally.]])
94219421 fi])])
94229422
9423 # Copyright (C) 2006-2018 Free Software Foundation, Inc.
9423 # Copyright (C) 2006-2020 Free Software Foundation, Inc.
94249424 #
94259425 # This file is free software; the Free Software Foundation
94269426 # gives unlimited permission to copy and/or distribute it,
11 # Copyright 2009, Wouter Wijngaards, NLnet Labs.
22 # BSD licensed.
33 #
4 # Version 35
4 # Version 37
5 # 2021-01-05 fix defun for aclocal
6 # 2021-01-05 autoconf 2.70 autoupdate and fixes, no AC_TRY_COMPILE
57 # 2020-08-24 Use EVP_sha256 instead of HMAC_Update (for openssl-3.0.0).
68 # 2016-03-21 Check -ldl -pthread for libcrypto for ldns and openssl 1.1.0.
79 # 2016-03-21 Use HMAC_Update instead of HMAC_CTX_Init (for openssl-1.1.0).
446448 AC_MSG_CHECKING(whether the C compiler (${CC-cc}) accepts the "format" attribute)
447449 AC_CACHE_VAL(ac_cv_c_format_attribute,
448450 [ac_cv_c_format_attribute=no
449 AC_TRY_COMPILE(
450 [#include <stdio.h>
451 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
451452 void f (char *format, ...) __attribute__ ((format (printf, 1, 2)));
452453 void (*pf) (char *format, ...) __attribute__ ((format (printf, 1, 2)));
453 ], [
454 ]], [[
454455 f ("%s", "str");
455 ],
456 [ac_cv_c_format_attribute="yes"],
457 [ac_cv_c_format_attribute="no"])
456 ]])],[ac_cv_c_format_attribute="yes"],[ac_cv_c_format_attribute="no"])
458457 ])
459458
460459 AC_MSG_RESULT($ac_cv_c_format_attribute)
483482 AC_MSG_CHECKING(whether the C compiler (${CC-cc}) accepts the "unused" attribute)
484483 AC_CACHE_VAL(ac_cv_c_unused_attribute,
485484 [ac_cv_c_unused_attribute=no
486 AC_TRY_COMPILE(
487 [#include <stdio.h>
485 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
488486 void f (char *u __attribute__((unused)));
489 ], [
487 ]], [[
490488 f ("x");
491 ],
492 [ac_cv_c_unused_attribute="yes"],
493 [ac_cv_c_unused_attribute="no"])
489 ]])],[ac_cv_c_unused_attribute="yes"],[ac_cv_c_unused_attribute="no"])
494490 ])
495491
496492 dnl Setup ATTR_UNUSED config.h parts.
547543 dnl because libtools 'AC_REQUIRE' names are right after this one, before
548544 dnl this function contents.
549545 AC_REQUIRE([ACX_LIBTOOL_C_PRE])
550 AC_PROG_LIBTOOL
546 LT_INIT
551547 ])
552548
553549 dnl Detect if u_char type is defined, otherwise define it.
676672 AC_MSG_CHECKING([for EVP_sha256 in -lcrypto])
677673 LIBS="$LIBS -lcrypto"
678674 LIBSSL_LIBS="$LIBSSL_LIBS -lcrypto"
679 AC_TRY_LINK(, [
675 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
680676 int EVP_sha256(void);
681677 (void)EVP_sha256();
682 ], [
678 ]])],[
683679 AC_MSG_RESULT(yes)
684680 AC_DEFINE([HAVE_EVP_SHA256], 1,
685681 [If you have EVP_sha256])
686 ], [
682 ],[
687683 AC_MSG_RESULT(no)
688684 # check if -lwsock32 or -lgdi32 are needed.
689685 BAKLIBS="$LIBS"
691687 LIBS="$LIBS -lgdi32 -lws2_32"
692688 LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32"
693689 AC_MSG_CHECKING([if -lcrypto needs -lgdi32])
694 AC_TRY_LINK([], [
690 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
695691 int EVP_sha256(void);
696692 (void)EVP_sha256();
697 ],[
693 ]])],[
698694 AC_DEFINE([HAVE_EVP_SHA256], 1,
699695 [If you have EVP_sha256])
700696 AC_MSG_RESULT(yes)
705701 LIBS="$LIBS -ldl"
706702 LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
707703 AC_MSG_CHECKING([if -lcrypto needs -ldl])
708 AC_TRY_LINK([], [
704 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
709705 int EVP_sha256(void);
710706 (void)EVP_sha256();
711 ],[
707 ]])],[
712708 AC_DEFINE([HAVE_EVP_SHA256], 1,
713709 [If you have EVP_sha256])
714710 AC_MSG_RESULT(yes)
719715 LIBS="$LIBS -ldl -pthread"
720716 LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
721717 AC_MSG_CHECKING([if -lcrypto needs -ldl -pthread])
722 AC_TRY_LINK([], [
718 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
723719 int EVP_sha256(void);
724720 (void)EVP_sha256();
725 ],[
721 ]])],[
726722 AC_DEFINE([HAVE_EVP_SHA256], 1,
727723 [If you have EVP_sha256])
728724 AC_MSG_RESULT(yes)
749745 dnl
750746 AC_DEFUN([ACX_WITH_SSL],
751747 [
752 AC_ARG_WITH(ssl, AC_HELP_STRING([--with-ssl=pathname],
753 [enable SSL (will check /usr/local/ssl
748 AC_ARG_WITH(ssl, AS_HELP_STRING([--with-ssl=pathname],[enable SSL (will check /usr/local/ssl
754749 /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[
755750 ],[
756751 withval="yes"
768763 dnl
769764 AC_DEFUN([ACX_WITH_SSL_OPTIONAL],
770765 [
771 AC_ARG_WITH(ssl, AC_HELP_STRING([--with-ssl=pathname],
772 [enable SSL (will check /usr/local/ssl
766 AC_ARG_WITH(ssl, AS_HELP_STRING([--with-ssl=pathname],[enable SSL (will check /usr/local/ssl
773767 /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[
774768 ],[
775769 withval="yes"
10611055 AC_DEFUN([ACX_MKDIR_ONE_ARG],
10621056 [
10631057 AC_MSG_CHECKING([whether mkdir has one arg])
1064 AC_TRY_COMPILE([
1058 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
10651059 #include <stdio.h>
10661060 #include <unistd.h>
10671061 #ifdef HAVE_WINSOCK2_H
10701064 #ifdef HAVE_SYS_STAT_H
10711065 #include <sys/stat.h>
10721066 #endif
1073 ], [
1067 ]], [[
10741068 (void)mkdir("directory");
1075 ],
1076 AC_MSG_RESULT(yes)
1069 ]])],[AC_MSG_RESULT(yes)
10771070 AC_DEFINE(MKDIR_HAS_ONE_ARG, 1, [Define if mkdir has one argument.])
1078 ,
1079 AC_MSG_RESULT(no)
1080 )
1071 ],[AC_MSG_RESULT(no)
1072 ])
10811073 ])dnl end of ACX_MKDIR_ONE_ARG
10821074
10831075 dnl Check for ioctlsocket function. works on mingw32 too.
8484
8585 LIBS="$LIBS $PYTHON_LDFLAGS"
8686 CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
87 AC_TRY_LINK([
87 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
8888 #include <Python.h>
89 ],[
89 ]],[[
9090 Py_Initialize();
91 ],[pythonexists=yes],[pythonexists=no])
91 ]])],[pythonexists=yes],[pythonexists=no])
9292
9393 AC_MSG_RESULT([$pythonexists])
9494
464464 data->rr_ttl[i] -= subtract;
465465 else data->rr_ttl[i] = 0;
466466 }
467 data->ttl_add = (subtract < data->ttl_add) ? (data->ttl_add - subtract) : 0;
467468 }
468469
469470 /* Adjust the TTL of a DNS message and its RRs by 'adjust'. If 'adjust' is
00 #! /bin/sh
11 # Attempt to guess a canonical system name.
2 # Copyright 1992-2020 Free Software Foundation, Inc.
3
4 timestamp='2020-11-19'
2 # Copyright 1992-2021 Free Software Foundation, Inc.
3
4 timestamp='2021-01-25'
55
66 # This file is free software; you can redistribute it and/or modify it
77 # under the terms of the GNU General Public License as published by
4949 GNU config.guess ($timestamp)
5050
5151 Originally written by Per Bothner.
52 Copyright 1992-2020 Free Software Foundation, Inc.
52 Copyright 1992-2021 Free Software Foundation, Inc.
5353
5454 This is free software; see the source for copying conditions. There is NO
5555 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
187187 #
188188 # Note: NetBSD doesn't particularly care about the vendor
189189 # portion of the name. We always set it to "unknown".
190 sysctl="sysctl -n hw.machine_arch"
191190 UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \
192 "/sbin/$sysctl" 2>/dev/null || \
193 "/usr/sbin/$sysctl" 2>/dev/null || \
191 /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
192 /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
194193 echo unknown))
195194 case "$UNAME_MACHINE_ARCH" in
196195 aarch64eb) machine=aarch64_be-unknown ;;
995994 k1om:Linux:*:*)
996995 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
997996 exit ;;
997 loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
998 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
999 exit ;;
9981000 m32r*:Linux:*:*)
9991001 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10001002 exit ;;
10831085 ppcle:Linux:*:*)
10841086 echo powerpcle-unknown-linux-"$LIBC"
10851087 exit ;;
1086 riscv32:Linux:*:* | riscv64:Linux:*:*)
1088 riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
10871089 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10881090 exit ;;
10891091 s390:Linux:*:* | s390x:Linux:*:*)
14791481 i*86:rdos:*:*)
14801482 echo "$UNAME_MACHINE"-pc-rdos
14811483 exit ;;
1482 i*86:AROS:*:*)
1483 echo "$UNAME_MACHINE"-pc-aros
1484 *:AROS:*:*)
1485 echo "$UNAME_MACHINE"-unknown-aros
14841486 exit ;;
14851487 x86_64:VMkernel:*:*)
14861488 echo "$UNAME_MACHINE"-unknown-esx
746746 your system. */
747747 #undef PTHREAD_CREATE_JOINABLE
748748
749 /* Define as the return type of signal handlers (`int' or `void'). */
749 /* Return type of signal handlers, but autoconf 2.70 says 'your code may
750 safely assume C89 semantics that RETSIGTYPE is void.' */
750751 #undef RETSIGTYPE
751752
752753 /* if REUSEPORT is enabled by default */
00 #! /bin/sh
11 # Configuration validation subroutine script.
2 # Copyright 1992-2020 Free Software Foundation, Inc.
3
4 timestamp='2020-12-02'
2 # Copyright 1992-2021 Free Software Foundation, Inc.
3
4 timestamp='2021-01-08'
55
66 # This file is free software; you can redistribute it and/or modify it
77 # under the terms of the GNU General Public License as published by
6666 version="\
6767 GNU config.sub ($timestamp)
6868
69 Copyright 1992-2020 Free Software Foundation, Inc.
69 Copyright 1992-2021 Free Software Foundation, Inc.
7070
7171 This is free software; see the source for copying conditions. There is NO
7272 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
11841184 | k1om \
11851185 | le32 | le64 \
11861186 | lm32 \
1187 | loongarch32 | loongarch64 | loongarchx32 \
11871188 | m32c | m32r | m32rle \
11881189 | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
11891190 | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
12281229 | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
12291230 | pru \
12301231 | pyramid \
1231 | riscv | riscv32 | riscv64 \
1232 | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
12321233 | rl78 | romp | rs6000 | rx \
12331234 | s390 | s390x \
12341235 | score \
16811682
16821683 # Now, validate our (potentially fixed-up) OS.
16831684 case $os in
1684 # Sometimes we do "kernel-abi", so those need to count as OSes.
1685 # Sometimes we do "kernel-libc", so those need to count as OSes.
16851686 musl* | newlib* | uclibc*)
16861687 ;;
1687 # Likewise for "kernel-libc"
1688 eabi | eabihf | gnueabi | gnueabihf)
1688 # Likewise for "kernel-abi"
1689 eabi* | gnueabi*)
1690 ;;
1691 # VxWorks passes extra cpu info in the 4th filed.
1692 simlinux | simwindows | spe)
16891693 ;;
16901694 # Now accept the basic system types.
16911695 # The portable systems comes first.
17491753 ;;
17501754 kfreebsd*-gnu* | kopensolaris*-gnu*)
17511755 ;;
1756 vxworks-simlinux | vxworks-simwindows | vxworks-spe)
1757 ;;
17521758 nto-qnx*)
17531759 ;;
17541760 os2-emx)
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for unbound 1.13.0.
2 # Generated by GNU Autoconf 2.69 for unbound 1.13.1.
33 #
44 # Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>.
55 #
590590 # Identity of this package.
591591 PACKAGE_NAME='unbound'
592592 PACKAGE_TARNAME='unbound'
593 PACKAGE_VERSION='1.13.0'
594 PACKAGE_STRING='unbound 1.13.0'
593 PACKAGE_VERSION='1.13.1'
594 PACKAGE_STRING='unbound 1.13.1'
595595 PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues'
596596 PACKAGE_URL=''
597597
648648 ENABLE_DNSCRYPT_XCHACHA20
649649 DNSTAP_OBJ
650650 DNSTAP_SRC
651 DNSTAP_SOCKET_TESTBIN
651652 DNSTAP_SOCKET_PATH
652653 opt_dnstap_socket_path
653654 ENABLE_DNSTAP
14581459 # Omit some internal or obsolete options to make the list less imposing.
14591460 # This message is too long to be a string in the A/UX 3.1 sh.
14601461 cat <<_ACEOF
1461 \`configure' configures unbound 1.13.0 to adapt to many kinds of systems.
1462 \`configure' configures unbound 1.13.1 to adapt to many kinds of systems.
14621463
14631464 Usage: $0 [OPTION]... [VAR=VALUE]...
14641465
15231524
15241525 if test -n "$ac_init_help"; then
15251526 case $ac_init_help in
1526 short | recursive ) echo "Configuration of unbound 1.13.0:";;
1527 short | recursive ) echo "Configuration of unbound 1.13.1:";;
15271528 esac
15281529 cat <<\_ACEOF
15291530
17511752 test -n "$ac_init_help" && exit $ac_status
17521753 if $ac_init_version; then
17531754 cat <<\_ACEOF
1754 unbound configure 1.13.0
1755 unbound configure 1.13.1
17551756 generated by GNU Autoconf 2.69
17561757
17571758 Copyright (C) 2012 Free Software Foundation, Inc.
24602461 This file contains any messages produced by compilers while
24612462 running configure, to aid debugging if configure makes a mistake.
24622463
2463 It was created by unbound $as_me 1.13.0, which was
2464 It was created by unbound $as_me 1.13.1, which was
24642465 generated by GNU Autoconf 2.69. Invocation command line was
24652466
24662467 $ $0 $@
28122813
28132814 UNBOUND_VERSION_MINOR=13
28142815
2815 UNBOUND_VERSION_MICRO=0
2816 UNBOUND_VERSION_MICRO=1
28162817
28172818
28182819 LIBUNBOUND_CURRENT=9
2819 LIBUNBOUND_REVISION=11
2820 LIBUNBOUND_REVISION=12
28202821 LIBUNBOUND_AGE=1
28212822 # 1.0.0 had 0:12:0
28222823 # 1.0.1 had 0:13:0
28952896 # 1.11.0 had 9:9:1
28962897 # 1.12.0 had 9:10:1
28972898 # 1.13.0 had 9:11:1
2899 # 1.13.1 had 9:12:1
28982900
28992901 # Current -- the number of the binary API that we're implementing
29002902 # Revision -- which iteration of the implementation of the binary
41734175 $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
41744176
41754177 $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
4176
41774178
41784179
41794180 if test "$ac_cv_header_minix_config_h" = "yes"; then
1557815579
1557915580 fi
1558015581
15581 { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
15582 $as_echo_n "checking return type of signal handlers... " >&6; }
15583 if ${ac_cv_type_signal+:} false; then :
15584 $as_echo_n "(cached) " >&6
15585 else
15586 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
15587 /* end confdefs.h. */
15588 #include <sys/types.h>
15589 #include <signal.h>
15590
15591 int
15592 main ()
15593 {
15594 return *(signal (0, 0)) (0) == 1;
15595 ;
15596 return 0;
15597 }
15598 _ACEOF
15599 if ac_fn_c_try_compile "$LINENO"; then :
15600 ac_cv_type_signal=int
15601 else
15602 ac_cv_type_signal=void
15603 fi
15604 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
15605 fi
15606 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
15607 $as_echo "$ac_cv_type_signal" >&6; }
15608
15609 cat >>confdefs.h <<_ACEOF
15610 #define RETSIGTYPE $ac_cv_type_signal
15611 _ACEOF
15612
15582
15583 $as_echo "#define RETSIGTYPE void" >>confdefs.h
1561315584
1561415585 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
1561515586 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
1724817219 DYNLIBMOD_HEADER='$(srcdir)/dynlibmod/dynlibmod.h'
1724917220
1725017221 if test $on_mingw = "no"; then
17251 DYNLIBMOD_EXTRALIBS="-ldl -export-dynamic"
17222 # link with -ldl if not already there, for all executables because
17223 # dlopen call is in the dynlib module. For unbound executable, also
17224 # export symbols.
17225 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
17226 $as_echo_n "checking for library containing dlopen... " >&6; }
17227 if ${ac_cv_search_dlopen+:} false; then :
17228 $as_echo_n "(cached) " >&6
17229 else
17230 ac_func_search_save_LIBS=$LIBS
17231 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17232 /* end confdefs.h. */
17233
17234 /* Override any GCC internal prototype to avoid an error.
17235 Use char because int might match the return type of a GCC
17236 builtin and then its argument prototype would still apply. */
17237 #ifdef __cplusplus
17238 extern "C"
17239 #endif
17240 char dlopen ();
17241 int
17242 main ()
17243 {
17244 return dlopen ();
17245 ;
17246 return 0;
17247 }
17248 _ACEOF
17249 for ac_lib in '' dl; do
17250 if test -z "$ac_lib"; then
17251 ac_res="none required"
1725217252 else
17253 DYNLIBMOD_EXTRALIBS="-Wl,--export-all-symbols,--out-implib,libunbound.a"
17253 ac_res=-l$ac_lib
17254 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
17255 fi
17256 if ac_fn_c_try_link "$LINENO"; then :
17257 ac_cv_search_dlopen=$ac_res
17258 fi
17259 rm -f core conftest.err conftest.$ac_objext \
17260 conftest$ac_exeext
17261 if ${ac_cv_search_dlopen+:} false; then :
17262 break
17263 fi
17264 done
17265 if ${ac_cv_search_dlopen+:} false; then :
17266
17267 else
17268 ac_cv_search_dlopen=no
17269 fi
17270 rm conftest.$ac_ext
17271 LIBS=$ac_func_search_save_LIBS
17272 fi
17273 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
17274 $as_echo "$ac_cv_search_dlopen" >&6; }
17275 ac_res=$ac_cv_search_dlopen
17276 if test "$ac_res" != no; then :
17277 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
17278
17279 fi
17280
17281 DYNLIBMOD_EXTRALIBS="-export-dynamic"
17282 else
17283 DYNLIBMOD_EXTRALIBS="-Wl,--export-all-symbols,--out-implib,libunbound.dll.a"
1725417284 fi
1725517285
1725617286 fi
1827018300 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1827118301 /* end confdefs.h. */
1827218302
18273 /* Override any GCC internal prototype to avoid an error.
18274 Use char because int might match the return type of a GCC
18275 builtin and then its argument prototype would still apply. */
18276 #ifdef __cplusplus
18277 extern "C"
18278 #endif
18279 char EVP_sha256 ();
1828018303 int
1828118304 main ()
1828218305 {
18283 return EVP_sha256 ();
18306
18307 int EVP_sha256(void);
18308 (void)EVP_sha256();
18309
1828418310 ;
1828518311 return 0;
1828618312 }
1978219808 LIBS="$LIBS -lgdi32"
1978319809 fi
1978419810 LIBS="$LIBS -lz"
19811 LIBS="$LIBS -l:libssp.a"
1978519812 fi
1978619813 fi
1978719814
1980119828 LIBS="$LIBS -lgdi32"
1980219829 fi
1980319830 LIBS="$LIBS -lz"
19831 LIBS="$LIBS -l:libssp.a"
1980419832 fi
1980519833 fi
1980619834
2120821236
2120921237 DNSTAP_SOCKET_PATH="$hdr_dnstap_socket_path"
2121021238
21239 DNSTAP_SOCKET_TESTBIN='unbound-dnstap-socket$(EXEEXT)'
2121121240
2121221241 DNSTAP_SRC="dnstap/dnstap.c dnstap/dnstap.pb-c.c dnstap/dnstap_fstrm.c dnstap/dtstream.c"
2121321242
2171421743
2171521744
2171621745
21717 version=1.13.0
21746 version=1.13.1
2171821747
2171921748 date=`date +'%b %e, %Y'`
2172021749
2223322262 # report actual input values of CONFIG_FILES etc. instead of their
2223422263 # values after options handling.
2223522264 ac_log="
22236 This file was extended by unbound $as_me 1.13.0, which was
22265 This file was extended by unbound $as_me 1.13.1, which was
2223722266 generated by GNU Autoconf 2.69. Invocation command line was
2223822267
2223922268 CONFIG_FILES = $CONFIG_FILES
2229922328 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2230022329 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
2230122330 ac_cs_version="\\
22302 unbound config.status 1.13.0
22331 unbound config.status 1.13.1
2230322332 configured by $0, generated by GNU Autoconf 2.69,
2230422333 with options \\"\$ac_cs_config\\"
2230522334
00 # -*- Autoconf -*-
11 # Process this file with autoconf to produce a configure script.
2 AC_PREREQ(2.56)
2 AC_PREREQ([2.56])
33 sinclude(acx_nlnetlabs.m4)
44 sinclude(ax_pthread.m4)
55 sinclude(acx_python.m4)
1010 # must be numbers. ac_defun because of later processing
1111 m4_define([VERSION_MAJOR],[1])
1212 m4_define([VERSION_MINOR],[13])
13 m4_define([VERSION_MICRO],[0])
14 AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues, unbound)
13 m4_define([VERSION_MICRO],[1])
14 AC_INIT([unbound],m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]),[unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues],[unbound])
1515 AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR])
1616 AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR])
1717 AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO])
1818
1919 LIBUNBOUND_CURRENT=9
20 LIBUNBOUND_REVISION=11
20 LIBUNBOUND_REVISION=12
2121 LIBUNBOUND_AGE=1
2222 # 1.0.0 had 0:12:0
2323 # 1.0.1 had 0:13:0
9696 # 1.11.0 had 9:9:1
9797 # 1.12.0 had 9:10:1
9898 # 1.13.0 had 9:11:1
99 # 1.13.1 had 9:12:1
99100
100101 # Current -- the number of the binary API that we're implementing
101102 # Revision -- which iteration of the implementation of the binary
124125 AC_DEFINE_UNQUOTED(CONFCMDLINE, ["$cmdln"], [Command line arguments used with configure])
125126
126127 CFLAGS="$CFLAGS"
127 AC_AIX
128 AC_USE_SYSTEM_EXTENSIONS
128129 if test "$ac_cv_header_minix_config_h" = "yes"; then
129130 AC_DEFINE(_NETBSD_SOURCE,1, [Enable for compile on Minix])
130131 fi
165166 ub_conf_file="C:\\Program Files\\Unbound\\service.conf"
166167 fi
167168 AC_ARG_WITH([conf_file],
168 AC_HELP_STRING([--with-conf-file=path],
169 [Pathname to the Unbound configuration file]),
169 AS_HELP_STRING([--with-conf-file=path],[Pathname to the Unbound configuration file]),
170170 [ub_conf_file="$withval"])
171171 AC_SUBST(ub_conf_file)
172172 ACX_ESCAPE_BACKSLASH($ub_conf_file, hdr_config)
176176
177177 # Determine run, chroot directory and pidfile locations
178178 AC_ARG_WITH(run-dir,
179 AC_HELP_STRING([--with-run-dir=path],
180 [set default directory to chdir to (by default dir part of cfg file)]),
179 AS_HELP_STRING([--with-run-dir=path],[set default directory to chdir to (by default dir part of cfg file)]),
181180 UNBOUND_RUN_DIR="$withval",
182181 if test $on_mingw = no; then
183182 UNBOUND_RUN_DIR=`dirname "$ub_conf_file"`
190189 AC_DEFINE_UNQUOTED(RUN_DIR, ["$hdr_run"], [Directory to chdir to])
191190
192191 AC_ARG_WITH(chroot-dir,
193 AC_HELP_STRING([--with-chroot-dir=path],
194 [set default directory to chroot to (by default same as run-dir)]),
192 AS_HELP_STRING([--with-chroot-dir=path],[set default directory to chroot to (by default same as run-dir)]),
195193 UNBOUND_CHROOT_DIR="$withval",
196194 if test $on_mingw = no; then
197195 UNBOUND_CHROOT_DIR="$UNBOUND_RUN_DIR"
204202 AC_DEFINE_UNQUOTED(CHROOT_DIR, ["$hdr_chroot"], [Directory to chroot to])
205203
206204 AC_ARG_WITH(share-dir,
207 AC_HELP_STRING([--with-share-dir=path],
208 [set default directory with shared data (by default same as share/unbound)]),
205 AS_HELP_STRING([--with-share-dir=path],[set default directory with shared data (by default same as share/unbound)]),
209206 UNBOUND_SHARE_DIR="$withval",
210207 UNBOUND_SHARE_DIR="$UNBOUND_RUN_DIR")
211208 AC_SUBST(UNBOUND_SHARE_DIR)
212209 AC_DEFINE_UNQUOTED(SHARE_DIR, ["$UNBOUND_SHARE_DIR"], [Shared data])
213210
214211 AC_ARG_WITH(pidfile,
215 AC_HELP_STRING([--with-pidfile=filename],
216 [set default pathname to unbound pidfile (default run-dir/unbound.pid)]),
212 AS_HELP_STRING([--with-pidfile=filename],[set default pathname to unbound pidfile (default run-dir/unbound.pid)]),
217213 UNBOUND_PIDFILE="$withval",
218214 if test $on_mingw = no; then
219215 UNBOUND_PIDFILE="$UNBOUND_RUN_DIR/unbound.pid"
226222 AC_DEFINE_UNQUOTED(PIDFILE, ["$hdr_pid"], [default pidfile location])
227223
228224 AC_ARG_WITH(rootkey-file,
229 AC_HELP_STRING([--with-rootkey-file=filename],
230 [set default pathname to root key file (default run-dir/root.key). This file is read and written.]),
225 AS_HELP_STRING([--with-rootkey-file=filename],[set default pathname to root key file (default run-dir/root.key). This file is read and written.]),
231226 UNBOUND_ROOTKEY_FILE="$withval",
232227 if test $on_mingw = no; then
233228 UNBOUND_ROOTKEY_FILE="$UNBOUND_RUN_DIR/root.key"
240235 AC_DEFINE_UNQUOTED(ROOT_ANCHOR_FILE, ["$hdr_rkey"], [default rootkey location])
241236
242237 AC_ARG_WITH(rootcert-file,
243 AC_HELP_STRING([--with-rootcert-file=filename],
244 [set default pathname to root update certificate file (default run-dir/icannbundle.pem). This file need not exist if you are content with the builtin.]),
238 AS_HELP_STRING([--with-rootcert-file=filename],[set default pathname to root update certificate file (default run-dir/icannbundle.pem). This file need not exist if you are content with the builtin.]),
245239 UNBOUND_ROOTCERT_FILE="$withval",
246240 if test $on_mingw = no; then
247241 UNBOUND_ROOTCERT_FILE="$UNBOUND_RUN_DIR/icannbundle.pem"
254248 AC_DEFINE_UNQUOTED(ROOT_CERT_FILE, ["$hdr_rpem"], [default rootcert location])
255249
256250 AC_ARG_WITH(username,
257 AC_HELP_STRING([--with-username=user],
258 [set default user that unbound changes to (default user is unbound)]),
251 AS_HELP_STRING([--with-username=user],[set default user that unbound changes to (default user is unbound)]),
259252 UNBOUND_USERNAME="$withval",
260253 UNBOUND_USERNAME="unbound")
261254 AC_SUBST(UNBOUND_USERNAME)
267260
268261 # Checks for typedefs, structures, and compiler characteristics.
269262 AC_C_CONST
270 AC_LANG_C
263 AC_LANG([C])
271264 # allow user to override the -g -O2 flags.
272265 default_cflags=no
273266 if test "x$CFLAGS" = "x" ; then
280273 ACX_DETERMINE_EXT_FLAGS_UNBOUND
281274
282275 # debug mode flags warnings
283 AC_ARG_ENABLE(checking, AC_HELP_STRING([--enable-checking], [Enable warnings, asserts, makefile-dependencies]))
284 AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [same as enable-checking]))
276 AC_ARG_ENABLE(checking, AS_HELP_STRING([--enable-checking],[Enable warnings, asserts, makefile-dependencies]))
277 AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug],[same as enable-checking]))
285278 if test "$enable_debug" = "yes"; then debug_enabled="$enable_debug";
286279 else debug_enabled="$enable_checking"; fi
287280 AC_SUBST(debug_enabled)
315308 AC_MSG_CHECKING(whether the C compiler (${CC-cc}) accepts the "weak" attribute)
316309 AC_CACHE_VAL(ac_cv_c_weak_attribute,
317310 [ac_cv_c_weak_attribute=no
318 AC_TRY_COMPILE(
319 [ #include <stdio.h>
311 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <stdio.h>
320312 __attribute__((weak)) void f(int x) { printf("%d", x); }
321 ], [
313 ]], [[
322314 f(1);
323 ],
324 [ac_cv_c_weak_attribute="yes"],
325 [ac_cv_c_weak_attribute="no"])
315 ]])],[ac_cv_c_weak_attribute="yes"],[ac_cv_c_weak_attribute="no"])
326316 ])
327317
328318 AC_MSG_RESULT($ac_cv_c_weak_attribute)
339329 AC_MSG_CHECKING(whether the C compiler (${CC-cc}) accepts the "noreturn" attribute)
340330 AC_CACHE_VAL(ac_cv_c_noreturn_attribute,
341331 [ac_cv_c_noreturn_attribute=no
342 AC_TRY_COMPILE(
343 [ #include <stdio.h>
332 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <stdio.h>
344333 __attribute__((noreturn)) void f(int x) { printf("%d", x); }
345 ], [
334 ]], [[
346335 f(1);
347 ],
348 [ac_cv_c_noreturn_attribute="yes"],
349 [ac_cv_c_noreturn_attribute="no"])
336 ]])],[ac_cv_c_noreturn_attribute="yes"],[ac_cv_c_noreturn_attribute="no"])
350337 ])
351338
352339 AC_MSG_RESULT($ac_cv_c_noreturn_attribute)
384371 fi
385372 ])
386373
387 AC_PROG_LEX
374 AC_PROG_LEX([noyywrap])
388375 if test "$LEX" != "" -a "$LEX" != ":"; then
389376 ACX_YYLEX_DESTROY
390377 fi
493480 # check some functions of the OS before linking libs (while still runnable).
494481 AC_FUNC_CHOWN
495482 AC_FUNC_FORK
496 AC_TYPE_SIGNAL
483 AC_DEFINE(RETSIGTYPE,void,[Return type of signal handlers, but autoconf 2.70 says 'your code may safely assume C89 semantics that RETSIGTYPE is void.'])
497484 AC_FUNC_FSEEKO
498485 ACX_SYS_LARGEFILE
499486 ACX_CHECK_NONBLOCKING_BROKEN
512499 # Include systemd.m4 - end
513500
514501 # set memory allocation checking if requested
515 AC_ARG_ENABLE(alloc-checks, AC_HELP_STRING([--enable-alloc-checks],
516 [ enable to memory allocation statistics, for debug purposes ]),
502 AC_ARG_ENABLE(alloc-checks, AS_HELP_STRING([--enable-alloc-checks],[ enable to memory allocation statistics, for debug purposes ]),
517503 , )
518 AC_ARG_ENABLE(alloc-lite, AC_HELP_STRING([--enable-alloc-lite],
519 [ enable for lightweight alloc assertions, for debug purposes ]),
504 AC_ARG_ENABLE(alloc-lite, AS_HELP_STRING([--enable-alloc-lite],[ enable for lightweight alloc assertions, for debug purposes ]),
520505 , )
521 AC_ARG_ENABLE(alloc-nonregional, AC_HELP_STRING([--enable-alloc-nonregional],
522 [ enable nonregional allocs, slow but exposes regional allocations to other memory purifiers, for debug purposes ]),
506 AC_ARG_ENABLE(alloc-nonregional, AS_HELP_STRING([--enable-alloc-nonregional],[ enable nonregional allocs, slow but exposes regional allocations to other memory purifiers, for debug purposes ]),
523507 , )
524508 if test x_$enable_alloc_nonregional = x_yes; then
525509 AC_DEFINE(UNBOUND_ALLOC_NONREGIONAL, 1, [use malloc not regions, for debug use])
563547 # check this first, so that the pthread lib does not get linked in via
564548 # libssl or libpython, and thus distorts the tests, and we end up using
565549 # the non-threadsafe C libraries.
566 AC_ARG_WITH(pthreads, AC_HELP_STRING([--with-pthreads],
567 [use pthreads library, or --without-pthreads to disable threading support.]),
550 AC_ARG_WITH(pthreads, AS_HELP_STRING([--with-pthreads],[use pthreads library, or --without-pthreads to disable threading support.]),
568551 [ ],[ withval="yes" ])
569552 ub_have_pthreads=no
570553 if test x_$withval != x_no; then
611594 fi
612595
613596 # check solaris thread library
614 AC_ARG_WITH(solaris-threads, AC_HELP_STRING([--with-solaris-threads],
615 [use solaris native thread library.]), [ ],[ withval="no" ])
597 AC_ARG_WITH(solaris-threads, AS_HELP_STRING([--with-solaris-threads],[use solaris native thread library.]), [ ],[ withval="no" ])
616598 ub_have_sol_threads=no
617599 if test x_$withval != x_no; then
618600 if test x_$ub_have_pthreads != x_no; then
619 AC_WARN([Have pthreads already, ignoring --with-solaris-threads])
601 AC_MSG_WARN([Have pthreads already, ignoring --with-solaris-threads])
620602 else
621603 AC_SEARCH_LIBS(thr_create, [thread],
622604 [
626608 [CFLAGS="$CFLAGS -D_REENTRANT"])
627609 ub_have_sol_threads=yes
628610 ] , [
629 AC_ERROR([no solaris threads found.])
611 AC_MSG_ERROR([no solaris threads found.])
630612 ])
631613 fi
632614 fi
634616 fi # end of non-mingw check of thread libraries
635617
636618 # Check for SYSLOG_FACILITY
637 AC_ARG_WITH(syslog-facility, AC_HELP_STRING([--with-syslog-facility=LOCAL0 - LOCAL7], [ set SYSLOG_FACILITY, default DAEMON ]),
619 AC_ARG_WITH(syslog-facility, AS_HELP_STRING([--with-syslog-facility=LOCAL0 - LOCAL7],[ set SYSLOG_FACILITY, default DAEMON ]),
638620 [ UNBOUND_SYSLOG_FACILITY="$withval" ], [])
639621 case "${UNBOUND_SYSLOG_FACILITY}" in
640622
647629
648630 # Check for dynamic library module
649631 AC_ARG_WITH(dynlibmodule,
650 AC_HELP_STRING([--with-dynlibmodule],
651 [build dynamic library module, or --without-dynlibmodule to disable it. (default=no)]),
632 AS_HELP_STRING([--with-dynlibmodule],[build dynamic library module, or --without-dynlibmodule to disable it. (default=no)]),
652633 [], [ withval="no" ])
653634
654635 if test x_$withval != x_no; then
660641 DYNLIBMOD_HEADER='$(srcdir)/dynlibmod/dynlibmod.h'
661642 AC_SUBST(DYNLIBMOD_HEADER)
662643 if test $on_mingw = "no"; then
663 DYNLIBMOD_EXTRALIBS="-ldl -export-dynamic"
644 # link with -ldl if not already there, for all executables because
645 # dlopen call is in the dynlib module. For unbound executable, also
646 # export symbols.
647 AC_SEARCH_LIBS([dlopen], [dl])
648 DYNLIBMOD_EXTRALIBS="-export-dynamic"
664649 else
665 DYNLIBMOD_EXTRALIBS="-Wl,--export-all-symbols,--out-implib,libunbound.a"
650 DYNLIBMOD_EXTRALIBS="-Wl,--export-all-symbols,--out-implib,libunbound.dll.a"
666651 fi
667652 AC_SUBST(DYNLIBMOD_EXTRALIBS)
668653 fi
669654
670655 # Check for PyUnbound
671656 AC_ARG_WITH(pyunbound,
672 AC_HELP_STRING([--with-pyunbound],
673 [build PyUnbound, or --without-pyunbound to skip it. (default=no)]),
657 AS_HELP_STRING([--with-pyunbound],[build PyUnbound, or --without-pyunbound to skip it. (default=no)]),
674658 [], [ withval="no" ])
675659
676660 ub_test_python=no
682666
683667 # Check for Python module
684668 AC_ARG_WITH(pythonmodule,
685 AC_HELP_STRING([--with-pythonmodule],
686 [build Python module, or --without-pythonmodule to disable script engine. (default=no)]),
669 AS_HELP_STRING([--with-pythonmodule],[build Python module, or --without-pythonmodule to disable script engine. (default=no)]),
687670 [], [ withval="no" ])
688671
689672 ub_with_pythonmod=no
701684 AC_PYTHON_DEVEL
702685 if test ! -z "$PYTHON_VERSION"; then
703686 if test `$PYTHON -c "print('$PYTHON_VERSION' >= '2.4.0')"` = "False"; then
704 AC_ERROR([Python version >= 2.4.0 is required])
687 AC_MSG_ERROR([Python version >= 2.4.0 is required])
705688 fi
706689
707690 [PY_MAJOR_VERSION="`$PYTHON -c \"import sys; print(sys.version_info[0])\"`"]
729712
730713 # Check for SWIG
731714 ub_have_swig=no
732 AC_ARG_ENABLE(swig-version-check, AC_HELP_STRING([--disable-swig-version-check], [Disable swig version check to build python modules with older swig even though that is unreliable]))
715 AC_ARG_ENABLE(swig-version-check, AS_HELP_STRING([--disable-swig-version-check],[Disable swig version check to build python modules with older swig even though that is unreliable]))
733716 if test "$enable_swig_version_check" = "yes"; then
734717 AC_PROG_SWIG(2.0.1)
735718 else
737720 fi
738721 AC_MSG_CHECKING(SWIG)
739722 if test ! -x "$SWIG"; then
740 AC_ERROR([failed to find swig tool, install it, or do not build Python module and PyUnbound])
723 AC_MSG_ERROR([failed to find swig tool, install it, or do not build Python module and PyUnbound])
741724 else
742725 AC_DEFINE(HAVE_SWIG, 1, [Define if you have Swig libraries and header files.])
743726 AC_SUBST(swig, "$SWIG")
792775
793776 # libnss
794777 USE_NSS="no"
795 AC_ARG_WITH([nss], AC_HELP_STRING([--with-nss=path],
796 [use libnss instead of openssl, installed at path.]),
778 AC_ARG_WITH([nss], AS_HELP_STRING([--with-nss=path],[use libnss instead of openssl, installed at path.]),
797779 [
798780 USE_NSS="yes"
799781 AC_DEFINE(HAVE_NSS, 1, [Use libnss for crypto])
815797
816798 # libnettle
817799 USE_NETTLE="no"
818 AC_ARG_WITH([nettle], AC_HELP_STRING([--with-nettle=path],
819 [use libnettle as crypto library, installed at path.]),
800 AC_ARG_WITH([nettle], AS_HELP_STRING([--with-nettle=path],[use libnettle as crypto library, installed at path.]),
820801 [
821802 USE_NETTLE="yes"
822803 AC_DEFINE(HAVE_NETTLE, 1, [Use libnettle for crypto])
848829 BAKLIBS="$LIBS"
849830 LIBS="-lssl $LIBS"
850831 AC_MSG_CHECKING([if libssl needs -lcrypt32])
851 AC_TRY_LINK_FUNC([EVP_sha256], [
832 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
833 int EVP_sha256(void);
834 (void)EVP_sha256();
835 ]])], [
852836 AC_MSG_RESULT([no])
853837 LIBS="$BAKLIBS"
854838 ], [
936920 AC_SUBST(SSLLIB)
937921
938922 # libbsd
939 AC_ARG_WITH([libbsd], AC_HELP_STRING([--with-libbsd], [Use portable libbsd functions]), [
923 AC_ARG_WITH([libbsd], AS_HELP_STRING([--with-libbsd],[Use portable libbsd functions]), [
940924 AC_CHECK_HEADERS([bsd/string.h bsd/stdlib.h],,, [AC_INCLUDES_DEFAULT])
941925 if test "x$ac_cv_header_bsd_string_h" = xyes -a "x$ac_cv_header_bsd_stdlib_h" = xyes; then
942926 for func in strlcpy strlcat arc4random arc4random_uniform reallocarray; do
949933 fi
950934 ])
951935
952 AC_ARG_ENABLE(sha1, AC_HELP_STRING([--disable-sha1], [Disable SHA1 RRSIG support, does not disable nsec3 support]))
936 AC_ARG_ENABLE(sha1, AS_HELP_STRING([--disable-sha1],[Disable SHA1 RRSIG support, does not disable nsec3 support]))
953937 case "$enable_sha1" in
954938 no)
955939 ;;
959943 esac
960944
961945
962 AC_ARG_ENABLE(sha2, AC_HELP_STRING([--disable-sha2], [Disable SHA256 and SHA512 RRSIG support]))
946 AC_ARG_ENABLE(sha2, AS_HELP_STRING([--disable-sha2],[Disable SHA256 and SHA512 RRSIG support]))
963947 case "$enable_sha2" in
964948 no)
965949 ;;
968952 ;;
969953 esac
970954
971 AC_ARG_ENABLE(subnet, AC_HELP_STRING([--enable-subnet], [Enable client subnet]))
955 AC_ARG_ENABLE(subnet, AS_HELP_STRING([--enable-subnet],[Enable client subnet]))
972956 case "$enable_subnet" in
973957 yes)
974958 AC_DEFINE([CLIENT_SUBNET], [1], [Define this to enable client subnet option.])
10791063 AC_MSG_RESULT($ac_cv_c_gost_works)
10801064 ])dnl
10811065
1082 AC_ARG_ENABLE(gost, AC_HELP_STRING([--disable-gost], [Disable GOST support]))
1066 AC_ARG_ENABLE(gost, AS_HELP_STRING([--disable-gost],[Disable GOST support]))
10831067 use_gost="no"
10841068 if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
10851069 case "$enable_gost" in
10971081 esac
10981082 fi dnl !USE_NSS && !USE_NETTLE
10991083
1100 AC_ARG_ENABLE(ecdsa, AC_HELP_STRING([--disable-ecdsa], [Disable ECDSA support]))
1084 AC_ARG_ENABLE(ecdsa, AS_HELP_STRING([--disable-ecdsa],[Disable ECDSA support]))
11011085 use_ecdsa="no"
11021086 case "$enable_ecdsa" in
11031087 no)
11291113 ;;
11301114 esac
11311115
1132 AC_ARG_ENABLE(dsa, AC_HELP_STRING([--disable-dsa], [Disable DSA support]))
1116 AC_ARG_ENABLE(dsa, AS_HELP_STRING([--disable-dsa],[Disable DSA support]))
11331117 use_dsa="no"
11341118 case "$enable_dsa" in
11351119 yes)
11691153 ;;
11701154 esac
11711155
1172 AC_ARG_ENABLE(ed25519, AC_HELP_STRING([--disable-ed25519], [Disable ED25519 support]))
1156 AC_ARG_ENABLE(ed25519, AS_HELP_STRING([--disable-ed25519],[Disable ED25519 support]))
11731157 use_ed25519="no"
11741158 case "$enable_ed25519" in
11751159 no)
11921176 ;;
11931177 esac
11941178
1195 AC_ARG_ENABLE(ed448, AC_HELP_STRING([--disable-ed448], [Disable ED448 support]))
1179 AC_ARG_ENABLE(ed448, AS_HELP_STRING([--disable-ed448],[Disable ED448 support]))
11961180 use_ed448="no"
11971181 case "$enable_ed448" in
11981182 no)
12121196 ;;
12131197 esac
12141198
1215 AC_ARG_ENABLE(event-api, AC_HELP_STRING([--enable-event-api], [Enable (experimental) pluggable event base libunbound API installed to unbound-event.h]))
1199 AC_ARG_ENABLE(event-api, AS_HELP_STRING([--enable-event-api],[Enable (experimental) pluggable event base libunbound API installed to unbound-event.h]))
12161200 case "$enable_event_api" in
12171201 yes)
12181202 AC_SUBST(UNBOUND_EVENT_INSTALL, [unbound-event-install])
12221206 ;;
12231207 esac
12241208
1225 AC_ARG_ENABLE(tfo-client, AC_HELP_STRING([--enable-tfo-client], [Enable TCP Fast Open for client mode]))
1209 AC_ARG_ENABLE(tfo-client, AS_HELP_STRING([--enable-tfo-client],[Enable TCP Fast Open for client mode]))
12261210 case "$enable_tfo_client" in
12271211 yes)
12281212 case `uname` in
12461230 ;;
12471231 esac
12481232
1249 AC_ARG_ENABLE(tfo-server, AC_HELP_STRING([--enable-tfo-server], [Enable TCP Fast Open for server mode]))
1233 AC_ARG_ENABLE(tfo-server, AS_HELP_STRING([--enable-tfo-server],[Enable TCP Fast Open for server mode]))
12501234 case "$enable_tfo_server" in
12511235 yes)
12521236 AC_CHECK_DECL([TCP_FASTOPEN], [AC_MSG_WARN([Check the platform specific TFO kernel parameters are correctly configured to support server mode TFO])], [AC_MSG_ERROR([TCP Fast Open is not available for server mode: please rerun without --enable-tfo-server])], [AC_INCLUDES_DEFAULT
12591243 esac
12601244
12611245 # check for libevent
1262 AC_ARG_WITH(libevent, AC_HELP_STRING([--with-libevent=pathname],
1263 [use libevent (will check /usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr or you can specify an explicit path). Slower, but allows use of large outgoing port ranges.]),
1246 AC_ARG_WITH(libevent, AS_HELP_STRING([--with-libevent=pathname],[use libevent (will check /usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr or you can specify an explicit path). Slower, but allows use of large outgoing port ranges.]),
12641247 [ ],[ with_libevent="no" ])
12651248 if test "x_$with_libevent" != x_no; then
12661249 AC_DEFINE([USE_LIBEVENT], [1], [Define if you enable libevent])
13541337 fi
13551338
13561339 # check for libexpat
1357 AC_ARG_WITH(libexpat, AC_HELP_STRING([--with-libexpat=path],
1358 [specify explicit path for libexpat.]),
1340 AC_ARG_WITH(libexpat, AS_HELP_STRING([--with-libexpat=path],[specify explicit path for libexpat.]),
13591341 [ ],[ withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr" ])
13601342 AC_MSG_CHECKING(for libexpat)
13611343 found_libexpat="no"
13721354 fi
13731355 done
13741356 if test x_$found_libexpat != x_yes; then
1375 AC_ERROR([Could not find libexpat, expat.h])
1357 AC_MSG_ERROR([Could not find libexpat, expat.h])
13761358 fi
13771359 AC_CHECK_HEADERS([expat.h],,, [AC_INCLUDES_DEFAULT])
13781360 AC_CHECK_DECLS([XML_StopParser], [], [], [AC_INCLUDES_DEFAULT
13801362 ])
13811363
13821364 # hiredis (redis C client for cachedb)
1383 AC_ARG_WITH(libhiredis, AC_HELP_STRING([--with-libhiredis=path],
1384 [specify explicit path for libhiredis.]),
1365 AC_ARG_WITH(libhiredis, AS_HELP_STRING([--with-libhiredis=path],[specify explicit path for libhiredis.]),
13851366 [ ],[ withval="no" ])
13861367 found_libhiredis="no"
13871368 if test x_$withval = x_yes -o x_$withval != x_no; then
14041385 fi
14051386 done
14061387 if test x_$found_libhiredis != x_yes; then
1407 AC_ERROR([Could not find libhiredis, hiredis.h])
1388 AC_MSG_ERROR([Could not find libhiredis, hiredis.h])
14081389 fi
14091390 AC_CHECK_HEADERS([hiredis/hiredis.h],,, [AC_INCLUDES_DEFAULT])
14101391 AC_CHECK_DECLS([redisConnect], [], [], [AC_INCLUDES_DEFAULT
14131394 fi
14141395
14151396 # nghttp2
1416 AC_ARG_WITH(libnghttp2, AC_HELP_STRING([--with-libnghttp2=path],
1417 [specify explicit path for libnghttp2.]),
1397 AC_ARG_WITH(libnghttp2, AS_HELP_STRING([--with-libnghttp2=path],[specify explicit path for libnghttp2.]),
14181398 [ ],[ withval="no" ])
14191399 found_libnghttp2="no"
14201400 if test x_$withval = x_yes -o x_$withval != x_no; then
14371417 fi
14381418 done
14391419 if test x_$found_libnghttp2 != x_yes; then
1440 AC_ERROR([Could not find libnghttp2, nghttp2.h])
1420 AC_MSG_ERROR([Could not find libnghttp2, nghttp2.h])
14411421 fi
14421422 AC_CHECK_HEADERS([nghttp2/nghttp2.h],,, [AC_INCLUDES_DEFAULT])
14431423 AC_CHECK_DECLS([nghttp2_session_server_new], [], [], [AC_INCLUDES_DEFAULT
14481428 # set static linking for uninstalled libraries if requested
14491429 AC_SUBST(staticexe)
14501430 staticexe=""
1451 AC_ARG_ENABLE(static-exe, AC_HELP_STRING([--enable-static-exe],
1452 [ enable to compile executables statically against (event) uninstalled libs, for debug purposes ]),
1431 AC_ARG_ENABLE(static-exe, AS_HELP_STRING([--enable-static-exe],[ enable to compile executables statically against (event) uninstalled libs, for debug purposes ]),
14531432 , )
14541433 if test x_$enable_static_exe = x_yes; then
14551434 staticexe="-static"
14621441 LIBS="$LIBS -lgdi32"
14631442 fi
14641443 LIBS="$LIBS -lz"
1444 LIBS="$LIBS -l:libssp.a"
14651445 fi
14661446 fi
14671447
14681448 # set full static linking if requested
1469 AC_ARG_ENABLE(fully-static, AC_HELP_STRING([--enable-fully-static],
1470 [ enable to compile fully static ]),
1449 AC_ARG_ENABLE(fully-static, AS_HELP_STRING([--enable-fully-static],[ enable to compile fully static ]),
14711450 , )
14721451 if test x_$enable_fully_static = x_yes; then
14731452 staticexe="-all-static"
14791458 LIBS="$LIBS -lgdi32"
14801459 fi
14811460 LIBS="$LIBS -lz"
1461 LIBS="$LIBS -l:libssp.a"
14821462 fi
14831463 fi
14841464
14851465 # set lock checking if requested
1486 AC_ARG_ENABLE(lock_checks, AC_HELP_STRING([--enable-lock-checks],
1487 [ enable to check lock and unlock calls, for debug purposes ]),
1466 AC_ARG_ENABLE(lock_checks, AS_HELP_STRING([--enable-lock-checks],[ enable to check lock and unlock calls, for debug purposes ]),
14881467 , )
14891468 if test x_$enable_lock_checks = x_yes; then
14901469 AC_DEFINE(ENABLE_LOCK_CHECKS, 1, [Define if you want to use debug lock checking (slow).])
17261705 AC_REPLACE_FUNCS(ctime_r)
17271706 AC_REPLACE_FUNCS(strsep)
17281707
1729 AC_ARG_ENABLE(allsymbols, AC_HELP_STRING([--enable-allsymbols], [export all symbols from libunbound and link binaries to it, smaller install size but libunbound export table is polluted by internal symbols]))
1708 AC_ARG_ENABLE(allsymbols, AS_HELP_STRING([--enable-allsymbols],[export all symbols from libunbound and link binaries to it, smaller install size but libunbound export table is polluted by internal symbols]))
17301709 case "$enable_allsymbols" in
17311710 yes)
17321711 COMMON_OBJ_ALL_SYMBOLS=""
17691748 AC_DEFINE_UNQUOTED(DNSTAP_SOCKET_PATH,
17701749 ["$hdr_dnstap_socket_path"], [default dnstap socket path])
17711750 AC_SUBST(DNSTAP_SOCKET_PATH,["$hdr_dnstap_socket_path"])
1772
1751 AC_SUBST(DNSTAP_SOCKET_TESTBIN,['unbound-dnstap-socket$(EXEEXT)'])
17731752 AC_SUBST([DNSTAP_SRC], ["dnstap/dnstap.c dnstap/dnstap.pb-c.c dnstap/dnstap_fstrm.c dnstap/dtstream.c"])
17741753 AC_SUBST([DNSTAP_OBJ], ["dnstap.lo dnstap.pb-c.lo dnstap_fstrm.lo dtstream.lo"])
17751754 ],
17921771 )
17931772
17941773 # check for cachedb if requested
1795 AC_ARG_ENABLE(cachedb, AC_HELP_STRING([--enable-cachedb], [enable cachedb module that can use external cache storage]))
1774 AC_ARG_ENABLE(cachedb, AS_HELP_STRING([--enable-cachedb],[enable cachedb module that can use external cache storage]))
17961775 # turn on cachedb when hiredis support is enabled.
17971776 if test "$found_libhiredis" = "yes"; then enable_cachedb="yes"; fi
17981777 case "$enable_cachedb" in
18051784 esac
18061785
18071786 # check for ipsecmod if requested
1808 AC_ARG_ENABLE(ipsecmod, AC_HELP_STRING([--enable-ipsecmod], [Enable ipsecmod module that facilitates opportunistic IPsec]))
1787 AC_ARG_ENABLE(ipsecmod, AS_HELP_STRING([--enable-ipsecmod],[Enable ipsecmod module that facilitates opportunistic IPsec]))
18091788 case "$enable_ipsecmod" in
18101789 yes)
18111790 AC_DEFINE([USE_IPSECMOD], [1], [Define to 1 to use ipsecmod support.])
18201799 esac
18211800
18221801 # check for ipset if requested
1823 AC_ARG_ENABLE(ipset, AC_HELP_STRING([--enable-ipset], [enable ipset module]))
1802 AC_ARG_ENABLE(ipset, AS_HELP_STRING([--enable-ipset],[enable ipset module]))
18241803 case "$enable_ipset" in
18251804 yes)
18261805 AC_DEFINE([USE_IPSET], [1], [Define to 1 to use ipset support])
18301809 AC_SUBST(IPSET_OBJ)
18311810
18321811 # mnl
1833 AC_ARG_WITH(libmnl, AC_HELP_STRING([--with-libmnl=path],
1834 [specify explicit path for libmnl.]),
1812 AC_ARG_WITH(libmnl, AS_HELP_STRING([--with-libmnl=path],[specify explicit path for libmnl.]),
18351813 [ ],[ withval="yes" ])
18361814 found_libmnl="no"
18371815 AC_MSG_CHECKING(for libmnl)
18521830 fi
18531831 done
18541832 if test x_$found_libmnl != x_yes; then
1855 AC_ERROR([Could not find libmnl, libmnl.h])
1833 AC_MSG_ERROR([Could not find libmnl, libmnl.h])
18561834 fi
18571835 ;;
18581836 no|*)
18591837 # nothing
18601838 ;;
18611839 esac
1862 AC_ARG_ENABLE(explicit-port-randomisation, AC_HELP_STRING([--disable-explicit-port-randomisation], [disable explicit source port randomisation and rely on the kernel to provide random source ports]))
1840 AC_ARG_ENABLE(explicit-port-randomisation, AS_HELP_STRING([--disable-explicit-port-randomisation],[disable explicit source port randomisation and rely on the kernel to provide random source ports]))
18631841 case "$enable_explicit_port_randomisation" in
18641842 no)
18651843 AC_DEFINE([DISABLE_EXPLICIT_PORT_RANDOMISATION], [1], [Define this to enable kernel based UDP source port randomization.])
19071885 # see if we want to build the library or everything
19081886 ALLTARGET="alltargets"
19091887 INSTALLTARGET="install-all"
1910 AC_ARG_WITH(libunbound-only, AC_HELP_STRING([--with-libunbound-only],
1911 [do not build daemon and tool programs]),
1888 AC_ARG_WITH(libunbound-only, AS_HELP_STRING([--with-libunbound-only],[do not build daemon and tool programs]),
19121889 [
19131890 if test "$withval" = "yes"; then
19141891 ALLTARGET="lib"
19171894 ])
19181895 if test $ALLTARGET = "alltargets"; then
19191896 if test $USE_NSS = "yes"; then
1920 AC_ERROR([--with-nss can only be used in combination with --with-libunbound-only.])
1897 AC_MSG_ERROR([--with-nss can only be used in combination with --with-libunbound-only.])
19211898 fi
19221899 if test $USE_NETTLE = "yes"; then
1923 AC_ERROR([--with-nettle can only be used in combination with --with-libunbound-only.])
1900 AC_MSG_ERROR([--with-nettle can only be used in combination with --with-libunbound-only.])
19241901 fi
19251902 fi
19261903
21972174 AC_SUBST(date, [`date +'%b %e, %Y'`])
21982175
21992176 AC_CONFIG_FILES([Makefile doc/example.conf doc/libunbound.3 doc/unbound.8 doc/unbound-anchor.8 doc/unbound-checkconf.8 doc/unbound.conf.5 doc/unbound-control.8 doc/unbound-host.1 smallapp/unbound-control-setup.sh dnstap/dnstap_config.h dnscrypt/dnscrypt_config.h contrib/libunbound.pc contrib/unbound.socket contrib/unbound.service contrib/unbound_portable.service])
2200 AC_CONFIG_HEADER([config.h])
2177 AC_CONFIG_HEADERS([config.h])
22012178 AC_OUTPUT
28592859 slabhash_traverse(a.infra->client_ip_rates, 0, ip_rate_list, &a);
28602860 }
28612861
2862 /** do the rpz_enable/disable command */
2863 static void
2864 do_rpz_enable_disable(RES* ssl, struct worker* worker, char* arg, int enable) {
2865 size_t nmlen;
2866 int nmlabs;
2867 uint8_t *nm = NULL;
2868 struct auth_zones *az = worker->env.auth_zones;
2869 struct auth_zone *z = NULL;
2870 if (!parse_arg_name(ssl, arg, &nm, &nmlen, &nmlabs))
2871 return;
2872 if (az) {
2873 lock_rw_rdlock(&az->lock);
2874 z = auth_zone_find(az, nm, nmlen, LDNS_RR_CLASS_IN);
2875 if (z) {
2876 lock_rw_wrlock(&z->lock);
2877 }
2878 lock_rw_unlock(&az->lock);
2879 }
2880 free(nm);
2881 if (!z) {
2882 (void) ssl_printf(ssl, "error no auth-zone %s\n", arg);
2883 return;
2884 }
2885 if (!z->rpz) {
2886 (void) ssl_printf(ssl, "error auth-zone %s not RPZ\n", arg);
2887 lock_rw_unlock(&z->lock);
2888 return;
2889 }
2890 if (enable) {
2891 rpz_enable(z->rpz);
2892 } else {
2893 rpz_disable(z->rpz);
2894 }
2895 lock_rw_unlock(&z->lock);
2896 send_ok(ssl);
2897 }
2898
2899 /** do the rpz_enable command */
2900 static void
2901 do_rpz_enable(RES* ssl, struct worker* worker, char* arg)
2902 {
2903 do_rpz_enable_disable(ssl, worker, arg, 1);
2904 }
2905
2906 /** do the rpz_disable command */
2907 static void
2908 do_rpz_disable(RES* ssl, struct worker* worker, char* arg)
2909 {
2910 do_rpz_enable_disable(ssl, worker, arg, 0);
2911 }
2912
28622913 /** tell other processes to execute the command */
28632914 static void
28642915 distribute_cmd(struct daemon_remote* rc, RES* ssl, char* cmd)
30593110 do_flush_bogus(ssl, worker);
30603111 } else if(cmdcmp(p, "flush_negative", 14)) {
30613112 do_flush_negative(ssl, worker);
3113 } else if(cmdcmp(p, "rpz_enable", 10)) {
3114 do_rpz_enable(ssl, worker, skipwhite(p+10));
3115 } else if(cmdcmp(p, "rpz_disable", 11)) {
3116 do_rpz_disable(ssl, worker, skipwhite(p+11));
30623117 } else {
30633118 (void)ssl_printf(ssl, "error unknown command '%s'\n", p);
30643119 }
512512 edns->ext_rcode = 0;
513513 edns->bits &= EDNS_DO;
514514 if(!inplace_cb_reply_servfail_call(&worker->env, qinfo, NULL,
515 msg->rep, LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad))
515 msg->rep, LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad,
516 worker->env.now_tv))
516517 return 0;
517518 error_encode(repinfo->c->buffer, LDNS_RCODE_SERVFAIL,
518519 &msg->qinfo, id, flags, edns);
543544 edns->ext_rcode = 0;
544545 edns->bits &= EDNS_DO;
545546 if(!inplace_cb_reply_cache_call(&worker->env, qinfo, NULL, msg->rep,
546 (int)(flags&LDNS_RCODE_MASK), edns, repinfo, worker->scratchpad))
547 (int)(flags&LDNS_RCODE_MASK), edns, repinfo, worker->scratchpad,
548 worker->env.now_tv))
547549 return 0;
548550 msg->rep->flags |= BIT_QR|BIT_RA;
549551 if(!apply_edns_options(edns, &edns_bak, worker->env.cfg,
552554 repinfo->c->buffer, 0, 1, worker->scratchpad,
553555 udpsize, edns, (int)(edns->bits & EDNS_DO), secure)) {
554556 if(!inplace_cb_reply_servfail_call(&worker->env, qinfo, NULL, NULL,
555 LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad))
557 LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad,
558 worker->env.now_tv))
556559 edns->opt_list = NULL;
557560 error_encode(repinfo->c->buffer, LDNS_RCODE_SERVFAIL,
558561 &msg->qinfo, id, flags, edns);
683686 edns->ext_rcode = 0;
684687 edns->bits &= EDNS_DO;
685688 if(!inplace_cb_reply_servfail_call(&worker->env, qinfo, NULL, rep,
686 LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad))
689 LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad,
690 worker->env.now_tv))
687691 goto bail_out;
688692 error_encode(repinfo->c->buffer, LDNS_RCODE_SERVFAIL,
689693 qinfo, id, flags, edns);
717721 edns->ext_rcode = 0;
718722 edns->bits &= EDNS_DO;
719723 if(!inplace_cb_reply_cache_call(&worker->env, qinfo, NULL, rep,
720 (int)(flags&LDNS_RCODE_MASK), edns, repinfo, worker->scratchpad))
724 (int)(flags&LDNS_RCODE_MASK), edns, repinfo, worker->scratchpad,
725 worker->env.now_tv))
721726 goto bail_out;
722727 *alias_rrset = NULL; /* avoid confusion if caller set it to non-NULL */
723728 if((worker->daemon->use_response_ip || worker->daemon->use_rpz) &&
753758 repinfo->c->buffer, timenow, 1, worker->scratchpad,
754759 udpsize, edns, (int)(edns->bits & EDNS_DO), *is_secure_answer)) {
755760 if(!inplace_cb_reply_servfail_call(&worker->env, qinfo, NULL, NULL,
756 LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad))
761 LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad,
762 worker->env.now_tv))
757763 edns->opt_list = NULL;
758764 error_encode(repinfo->c->buffer, LDNS_RCODE_SERVFAIL,
759765 qinfo, id, flags, edns);
841847 edns->udp_size = EDNS_ADVERTISED_SIZE;
842848 edns->bits &= EDNS_DO;
843849 if(!inplace_cb_reply_local_call(&worker->env, NULL, NULL, NULL,
844 LDNS_RCODE_NOERROR, edns, repinfo, worker->scratchpad))
850 LDNS_RCODE_NOERROR, edns, repinfo, worker->scratchpad,
851 worker->env.now_tv))
845852 edns->opt_list = NULL;
846853 if(sldns_buffer_capacity(pkt) >=
847854 sldns_buffer_limit(pkt)+calc_edns_field_size(edns))
12811288 edns.udp_size = EDNS_ADVERTISED_SIZE;
12821289 edns.bits &= EDNS_DO;
12831290 edns.opt_list = NULL;
1291 edns.padding_block_size = 0;
12841292 verbose(VERB_ALGO, "query with bad edns version.");
12851293 log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
12861294 error_encode(c->buffer, EDNS_RCODE_BADVERS&0xf, &qinfo,
197197 static uint32_t
198198 extract_ipv4(const uint8_t ipv6[], size_t ipv6_len, const int offset)
199199 {
200 uint32_t ipv4;
200 uint32_t ipv4 = 0;
201 int i, pos;
201202 log_assert(ipv6_len == 16); (void)ipv6_len;
202 ipv4 = (uint32_t)ipv6[offset/8+0] << (24 + (offset%8))
203 | (uint32_t)ipv6[offset/8+1] << (16 + (offset%8))
204 | (uint32_t)ipv6[offset/8+2] << ( 8 + (offset%8))
205 | (uint32_t)ipv6[offset/8+3] << ( 0 + (offset%8));
206 if (offset/8+4 < 16)
207 ipv4 |= (uint32_t)ipv6[offset/8+4] >> (8 - offset%8);
203 log_assert(offset == 32 || offset == 40 || offset == 48 || offset == 56 ||
204 offset == 64 || offset == 96);
205 for(i = 0, pos = offset / 8; i < 4; i++, pos++) {
206 if (pos == 8)
207 pos++;
208 ipv4 = ipv4 << 8;
209 ipv4 |= ipv6[pos];
210 }
208211 return ipv4;
209212 }
210213
295298 int prefix_net, const uint8_t a[], size_t a_len, uint8_t aaaa[],
296299 size_t aaaa_len)
297300 {
301 size_t i;
302 int pos;
298303 log_assert(prefix_addr_len == 16 && a_len == 4 && aaaa_len == 16);
304 log_assert(prefix_net == 32 || prefix_net == 40 || prefix_net == 48 ||
305 prefix_net == 56 || prefix_net == 64 || prefix_net == 96);
299306 (void)prefix_addr_len; (void)a_len; (void)aaaa_len;
300307 memcpy(aaaa, prefix_addr, 16);
301 aaaa[prefix_net/8+0] |= a[0] >> (0+prefix_net%8);
302 aaaa[prefix_net/8+1] |= a[0] << (8-prefix_net%8);
303 aaaa[prefix_net/8+1] |= a[1] >> (0+prefix_net%8);
304 aaaa[prefix_net/8+2] |= a[1] << (8-prefix_net%8);
305 aaaa[prefix_net/8+2] |= a[2] >> (0+prefix_net%8);
306 aaaa[prefix_net/8+3] |= a[2] << (8-prefix_net%8);
307 aaaa[prefix_net/8+3] |= a[3] >> (0+prefix_net%8);
308 if (prefix_net/8+4 < 16) /* <-- my beautiful symmetry is destroyed! */
309 aaaa[prefix_net/8+4] |= a[3] << (8-prefix_net%8);
308 for(i = 0, pos = prefix_net / 8; i < a_len; i++, pos++) {
309 if(pos == 8)
310 aaaa[pos++] = 0;
311 aaaa[pos] = a[i];
312 }
310313 }
311314
312315
373376 log_err("dns64_prefix is not IPv6: %s", cfg->dns64_prefix);
374377 return 0;
375378 }
376 if (dns64_env->prefix_net < 0 || dns64_env->prefix_net > 96) {
377 log_err("dns64-prefix length it not between 0 and 96: %s",
379 if (dns64_env->prefix_net != 32 && dns64_env->prefix_net != 40 &&
380 dns64_env->prefix_net != 48 && dns64_env->prefix_net != 56 &&
381 dns64_env->prefix_net != 64 && dns64_env->prefix_net != 96 ) {
382 log_err("dns64-prefix length it not 32, 40, 48, 56, 64 or 96: %s",
378383 cfg->dns64_prefix);
379384 return 0;
380385 }
721726 *dd_out = NULL;
722727 return; /* integer overflow protection in alloc */
723728 }
724 if (!(dd = *dd_out = regional_alloc(region,
729 if (!(dd = *dd_out = regional_alloc_zero(region,
725730 sizeof(struct packed_rrset_data)
726731 + fd->count * (sizeof(size_t) + sizeof(time_t) +
727732 sizeof(uint8_t*) + 2 + 16)))) {
1010 [opt_dnscrypt=$enableval], [opt_dnscrypt=no])
1111
1212 if test "x$opt_dnscrypt" != "xno"; then
13 AC_ARG_WITH([libsodium], AC_HELP_STRING([--with-libsodium=path],
13 AC_ARG_WITH([libsodium], AS_HELP_STRING([--with-libsodium=path],
1414 [Path where libsodium is installed, for dnscrypt]), [
1515 CFLAGS="$CFLAGS -I$withval/include"
1616 LDFLAGS="$LDFLAGS -L$withval/lib"
1919 if test -z "$PROTOC_C"; then
2020 AC_MSG_ERROR([The protoc-c program was not found. Please install protobuf-c!])
2121 fi
22 AC_ARG_WITH([protobuf-c], AC_HELP_STRING([--with-protobuf-c=path],
22 AC_ARG_WITH([protobuf-c], AS_HELP_STRING([--with-protobuf-c=path],
2323 [Path where protobuf-c is installed, for dnstap]), [
2424 # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
2525 if test -f $withval/include/google/protobuf-c/protobuf-c.h; then
726726 }
727727
728728 /** delete the tap structure */
729 void tap_data_free(struct tap_data* data)
729 static void tap_data_free(struct tap_data* data)
730730 {
731731 ub_event_del(data->ev);
732732 ub_event_free(data->ev);
11651165 /** signal handler for user quit */
11661166 static RETSIGTYPE main_sigh(int sig)
11671167 {
1168 verbose(VERB_ALGO, "exit on signal %d\n", sig);
1168 if(!sig_quit)
1169 fprintf(stderr, "exit on signal %d\n", sig);
11691170 if(sig_base) {
11701171 ub_event_base_loopexit(sig_base);
11711172 sig_base = NULL;
13531354 struct tube;
13541355 struct query_info;
13551356 #include "util/data/packed_rrset.h"
1357 #include "daemon/worker.h"
1358 #include "daemon/remote.h"
1359 #include "util/fptr_wlist.h"
1360 #include "libunbound/context.h"
13561361
13571362 void worker_handle_control_cmd(struct tube* ATTR_UNUSED(tube),
13581363 uint8_t* ATTR_UNUSED(buffer), size_t ATTR_UNUSED(len),
0 2 February 2021: Wouter
1 - branch-1.13.1 is created, with release-1.13.1rc1 tag.
2 - Fix dynlibmod link on rhel8 for -ldl inclusion.
3 - Fix windows dependency on libssp.dll because of default stack
4 protector in mingw.
5 - Fix indentation of root anchor for use by windows install script.
6
7 1 February 2021: George
8 - Attempt to fix NULL keys in the reuse_tcp tree; relates to #411.
9
10 29 January 2021: Wouter
11 - Fix for doxygen 1.8.20 compatibility.
12
13 28 January 2021: Wouter
14 - Annotate that we ignore the return value of if_indextoname.
15 - Fix to use correct type for label count in rpz routine.
16 - Fix empty clause warning in config_file nsid parse.
17 - Fix to use correct type for label count in ipdnametoaddr rpz routine.
18 - Fix empty clause warning in edns pass for padding.
19 - Fix fwd ancil test post script when not supported.
20
21 26 January 2021: George
22 - Merge PR #408 from fobser: Prevent a few more yacc clashes.
23 - Merge PR #275 from Roland van Rijswijk-Deij: Add feature to return the
24 original instead of a decrementing TTL ('serve-original-ttl')
25 - Merge PR #355 from noloader: Make ICANN Update CA and DS Trust Anchor
26 static data.
27 - Ignore cache blacklisting when trying to reply with expired data from
28 cache (#394).
29
30 26 January 2021: Wouter
31 - Fix compile of unbound-dnstap-socket without dnstap installed.
32
33 22 January 2021: Willem
34 - Padding of queries and responses with DNS over TLS as specified in
35 RFC7830 and RFC8467.
36
37 22 January 2021: George
38 - Fix TTL of SOA record for negative answers (localzone and
39 authzone data) to be the minimum of the SOA TTL and the SOA.MINIMUM.
40
41 19 January 2021: Willem
42 - Support for RFC5001: DNS Name Server Identifier (NSID) Option
43 with the nsid: option in unbound.conf
44
45 18 January 2021: Wouter
46 - Fix #404: DNS query with small edns bufsize fail.
47 - Fix declaration before statement and signed comparison warning in
48 dns64.
49
50 15 January 2021: Wouter
51 - Merge #402 from fobser: Implement IPv4-Embedded addresses according
52 to RFC6052.
53
54 14 January 2021: Wouter
55 - Fix for #93: dynlibmodule import library is named libunbound.dll.a.
56
57 13 January 2021: Wouter
58 - Merge #399 from xiangbao227: The lock of lruhash table should
59 unlocked after markdel entry.
60 - Fix for #93: dynlibmodule link fix for Windows.
61
62 12 January 2021: Wouter
63 - Fix #397: [Feature request] add new type always_null to local-zone
64 similar to always_nxdomain.
65 - Fix so local zone types always_nodata and always_deny can be used
66 from the config file.
67
68 8 January 2021: Wouter
69 - Merge PR #391 from fhriley: Add start_time to reply callbacks so
70 modules can compute the response time.
71 - For #391: use struct timeval* start_time for callback information.
72 - For #391: fix indentation.
73 - For #391: more double casts in python start time calculation.
74 - Add comment documentation.
75 - Fix clang analysis warning.
76
77 6 January 2021: Wouter
78 - Fix #379: zone loading over HTTP appears to have buffer issues.
79 - Merge PR #395 from mptre: add missing null check.
80 - Fix #387: client-subnet-always-forward seems to effectively bypass
81 any caching?
82
83 5 January 2021: Wouter
84 - Fix #385: autoconf 2.70 impacts unbound build
85 - Merge PR #375 by fhriley: Add rpz_enable and rpz_disable commands
86 to unbound-control.
87
88 4 January 2021: Wouter
89 - For #376: Fix that comm point event is not double removed or double
90 added to event map.
91 - iana portlist updated.
92
93 16 December 2020: George
94 - Fix error cases when udp-connect is set and send() returns an error
95 (modified patch from Xin Li @delphij).
96
97 11 December 2020: Wouter
98 - Fix #371: unbound-control timeout when Unbound is not running.
99 - Fix to squelch permission denied and other errors from remote host,
100 they are logged at higher verbosity but not on low verbosity.
101 - Merge PR #335 from fobser: Sprinkle in some static to prevent
102 missing prototype warnings.
103 - Merge PR #373 from fobser: Warning: arithmetic on a pointer to void
104 is a GNU extension.
105 - Fix missing prototypes in the code.
106
107 3 December 2020: Wouter
108 - make depend.
109 - iana portlist updated.
110
111 2 December 2020: Wouter
112 - Fix #360: for the additionally reported TCP Fast Open makes TCP
113 connections fail, in that case we print a hint that this is
114 happening with the error in the logs.
115 - Fix #356: deadlock when listening tcp.
116 - Fix unbound-dnstap-socket to not use log routine from interrupt
117 handler and not print so frequently when invoked in sequence.
118 - Fix on windows to ignore connection failure on UDP, unless verbose.
119 - Fix for #283: fix stream reuse and tcp fast open.
120 - Fix update, with write event check with streamreuse and fastopen.
121
122 1 December 2020: Wouter
123 - Fix #358: Squelch udp connect 'no route to host' errors on low
124 verbosity.
125
0126 30 November 2020: Wouter
1127 - Fix assertion failure on double callback when iterator loses
2128 interest in query at head of line that then has the tcp stream
3129 not kept for reuse.
4 - tag for the 1.13.0rc4 release.
130 - tag for the 1.13.0rc4 release. This also became the 1.13.0
131 release version on 3 dec 2020 with the streamreuse and fastopen
132 fix from 2 dec 2020. The code repo continues for 1.13.1 in
133 development.
5134
6135 27 November 2020: Wouter
7136 - Fix compile warning for type cast in http2_submit_dns_response.
3838 RFC 4509: SHA256 DS hash.
3939 RFC 4592: wildcards.
4040 RFC 4697: No DNS Resolution Misbehavior.
41 RFC 5001: DNS Name Server Identifier (NSID) Option
4142 RFC 5011: update of trust anchors with timers.
4243 RFC 5155: NSEC3, NSEC3PARAM types
4344 RFC 5358: reflectors-are-evil: access control list for recursive
0 README for Unbound 1.13.0
0 README for Unbound 1.13.1
11 Copyright 2007 NLnet Labs
22 http://unbound.net
33
1313 o windows version, auto update feature, a query to check for the version.
1414 o command the server with TSIG inband. get-config, clearcache,
1515 get stats, get memstats, get ..., reload, clear one zone from cache
16 o NSID rfc 5001 support.
1716 o timers rfc 5011 support.
1817 o Treat YXDOMAIN from a DNAME properly, in iterator (not throwaway), validator.
1918 o make timeout backoffs randomized (a couple percent random) to spread traffic.
00 #
11 # Example configuration file.
22 #
3 # See unbound.conf(5) man page, version 1.13.0.
3 # See unbound.conf(5) man page, version 1.13.1.
44 #
55 # this is a comment.
66
376376 # the version to report. Leave "" or default to return package version.
377377 # version: ""
378378
379 # NSID identity (hex string, or "ascii_somestring"). default disabled.
380 # nsid: "aabbccdd"
381
379382 # the target fetch policy.
380383 # series of integers describing the policy per dependency depth.
381384 # The number of values in the list determines the maximum dependency
387390 # target-fetch-policy: "3 2 1 0 0"
388391
389392 # Harden against very small EDNS buffer sizes.
390 # harden-short-bufsize: no
393 # harden-short-bufsize: yes
391394
392395 # Harden against unseemly large queries.
393396 # harden-large-queries: no
593596 # immediately responding with expired data. 0 disables this behavior.
594597 # A recommended value is 1800.
595598 # serve-expired-client-timeout: 0
599
600 # Return the original TTL as received from the upstream name server rather
601 # than the decrementing TTL as stored in the cache. Enabling this feature
602 # does not impact cache expiry, it only changes the TTL unbound embeds in
603 # responses to queries. Note that enabling this feature implicitly disables
604 # enforcement of the configured minimum and maximum TTL.
605 # serve-original-ttl: no
596606
597607 # Have the validator log failed validations for your diagnosis.
598608 # 0: off. 1: A line per failed user query. 2: With reason and bad IP.
703713 # o inform acts like transparent, but logs client IP address
704714 # o inform_deny drops queries and logs client IP address
705715 # o inform_redirect redirects queries and logs client IP address
706 # o always_transparent, always_refuse, always_nxdomain, resolve in
707 # that way but ignore local data for that name
716 # o always_transparent, always_refuse, always_nxdomain, always_nodata,
717 # always_deny resolve in that way but ignore local data for
718 # that name
719 # o always_null returns 0.0.0.0 or ::0 for any name in the zone.
708720 # o noview breaks out of that view towards global local-zones.
709721 #
710722 # defaults are localhost address, reverse for 127.0.0.1 and ::1
752764 # cipher setting for TLSv1.3
753765 # tls-ciphersuites: "TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_8_SHA256:TLS_AES_128_CCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256"
754766
767 # Pad responses to padded queries received over TLS
768 # pad-responses: yes
769
770 # Padded responses will be padded to the closest multiple of this size.
771 # pad-responses-block-size: 468
772
755773 # Use the SNI extension for TLS connections. Default is yes.
756774 # Changing the value requires a reload.
757775 # tls-use-sni: yes
773791
774792 # Add system certs to the cert bundle, from the Windows Cert Store
775793 # tls-win-cert: no
794
795 # Pad queries over TLS upstreams
796 # pad-queries: yes
797
798 # Padded queries will be padded to the closest multiple of this size.
799 # pad-queries-block-size: 128
776800
777801 # Also serve tls on these port numbers (eg. 443, ...), by listing
778802 # tls-additional-port: portno for each of the port numbers.
0 .TH "libunbound" "3" "Dec 3, 2020" "NLnet Labs" "unbound 1.13.0"
0 .TH "libunbound" "3" "Feb 9, 2021" "NLnet Labs" "unbound 1.13.1"
11 .\"
22 .\" libunbound.3 -- unbound library functions manual
33 .\"
4343 .B ub_ctx_zone_remove,
4444 .B ub_ctx_data_add,
4545 .B ub_ctx_data_remove
46 \- Unbound DNS validating resolver 1.13.0 functions.
46 \- Unbound DNS validating resolver 1.13.1 functions.
4747 .SH "SYNOPSIS"
4848 .B #include <unbound.h>
4949 .LP
0 .TH "unbound-anchor" "8" "Dec 3, 2020" "NLnet Labs" "unbound 1.13.0"
0 .TH "unbound-anchor" "8" "Feb 9, 2021" "NLnet Labs" "unbound 1.13.1"
11 .\"
22 .\" unbound-anchor.8 -- unbound anchor maintenance utility manual
33 .\"
0 .TH "unbound-checkconf" "8" "Dec 3, 2020" "NLnet Labs" "unbound 1.13.0"
0 .TH "unbound-checkconf" "8" "Feb 9, 2021" "NLnet Labs" "unbound 1.13.1"
11 .\"
22 .\" unbound-checkconf.8 -- unbound configuration checker manual
33 .\"
0 .TH "unbound-control" "8" "Dec 3, 2020" "NLnet Labs" "unbound 1.13.0"
0 .TH "unbound-control" "8" "Feb 9, 2021" "NLnet Labs" "unbound 1.13.1"
11 .\"
22 .\" unbound-control.8 -- unbound remote control manual
33 .\"
304304 where the masters are probed to see if they have an updated zone (with the SOA
305305 serial check). And then the zone is transferred for a newer zone version.
306306 .TP
307 .B rpz_enable \fIzone\fR
308 Enable the RPZ zone if it had previously been disabled.
309 .TP
310 .B rpz_enable \fIzone\fR
311 Disable the RPZ zone.
312 .TP
307313 .B view_list_local_zones \fIview\fR
308314 \fIlist_local_zones\fR for given view.
309315 .TP
0 .TH "unbound\-host" "1" "Dec 3, 2020" "NLnet Labs" "unbound 1.13.0"
0 .TH "unbound\-host" "1" "Feb 9, 2021" "NLnet Labs" "unbound 1.13.1"
11 .\"
22 .\" unbound-host.1 -- unbound DNS lookup utility
33 .\"
0 .TH "unbound" "8" "Dec 3, 2020" "NLnet Labs" "unbound 1.13.0"
0 .TH "unbound" "8" "Feb 9, 2021" "NLnet Labs" "unbound 1.13.1"
11 .\"
22 .\" unbound.8 -- unbound manual
33 .\"
88 .\"
99 .SH "NAME"
1010 .B unbound
11 \- Unbound DNS validating resolver 1.13.0.
11 \- Unbound DNS validating resolver 1.13.1.
1212 .SH "SYNOPSIS"
1313 .B unbound
1414 .RB [ \-h ]
0 .TH "unbound.conf" "5" "Dec 3, 2020" "NLnet Labs" "unbound 1.13.0"
0 .TH "unbound.conf" "5" "Feb 9, 2021" "NLnet Labs" "unbound 1.13.1"
11 .\"
22 .\" unbound.conf.5 -- unbound.conf manual
33 .\"
563563 Set the list of ciphersuites to allow when serving TLS. This is for newer
564564 TLS 1.3 connections. Use "" for defaults, and that is the default.
565565 .TP
566 .B pad\-responses: \fI<yes or no>
567 If enabled, TLS serviced queries that contained an EDNS Padding option will
568 cause responses padded to the closest multiple of the size specified in
569 \fBpad\-responses\-block\-size\fR.
570 Default is yes.
571 .TP
572 .B pad\-responses\-block\-size: \fI<number>
573 The block size with which to pad responses serviced over TLS. Only responses
574 to padded queries will be padded.
575 Default is 468.
576 .TP
577 .B pad\-queries: \fI<yes or no>
578 If enabled, all queries sent over TLS upstreams will be padded to the closest
579 multiple of the size specified in \fBpad\-queries\-block\-size\fR.
580 Default is yes.
581 .TP
582 .B pad\-queries\-block\-size: \fI<number>
583 The block size with which to pad queries sent over TLS upstreams.
584 Default is 128.
566585 .B tls\-use\-sni: \fI<yes or no>
567586 Enable or disable sending the SNI extension on TLS connections.
568587 Default is yes.
818837 Set the version to report. If set to "", the default, then the package
819838 version is returned.
820839 .TP
840 .B nsid:\fR <string>
841 Add the specified nsid to the EDNS section of the answer when queried
842 with an NSID EDNS enabled packet. As a sequence of hex characters or
843 with ascii_ prefix and then an ascii string.
844 .TP
821845 .B hide\-trustanchor: \fI<yes or no>
822846 If enabled trustanchor.unbound queries are refused.
823847 .TP
838862 rumoured to be closer to that of BIND 8.
839863 .TP
840864 .B harden\-short\-bufsize: \fI<yes or no>
841 Very small EDNS buffer sizes from queries are ignored. Default is off, since
842 it is legal protocol wise to send these, and unbound tries to give very
843 small answers to these queries, where possible.
865 Very small EDNS buffer sizes from queries are ignored. Default is on, as
866 described in the standard.
844867 .TP
845868 .B harden\-large\-queries: \fI<yes or no>
846869 Very large queries are ignored. Default is off, since it is legal protocol
11621185 RFC 8767 is 1800. Setting this to 0 will disable this
11631186 behavior. Default is 0.
11641187 .TP
1188 .B serve\-original\-ttl: \fI<yes or no>
1189 If enabled, unbound will always return the original TTL as received from
1190 the upstream name server rather than the decrementing TTL as
1191 stored in the cache. This feature may be useful if unbound serves as a
1192 front-end to a hidden authoritative name server. Enabling this feature does
1193 not impact cache expiry, it only changes the TTL unbound embeds in responses to
1194 queries. Note that enabling this feature implicitly disables enforcement of
1195 the configured minimum and maximum TTL, as it is assumed users who enable this
1196 feature do not want unbound to change the TTL obtained from an upstream server.
1197 Thus, the values set using \fBcache\-min\-ttl\fR and \fBcache\-max\-ttl\fR are
1198 ignored.
1199 Default is "no".
1200 .TP
11651201 .B val\-nsec3\-keysize\-iterations: \fI<"list of values">
11661202 List of keysize and iteration count values, separated by spaces, surrounded
11671203 by quotes. Default is "1024 150 2048 500 4096 2500". This determines the
12301266 Configure a local zone. The type determines the answer to give if
12311267 there is no match from local\-data. The types are deny, refuse, static,
12321268 transparent, redirect, nodefault, typetransparent, inform, inform_deny,
1233 inform_redirect, always_transparent, always_refuse, always_nxdomain, noview,
1269 inform_redirect, always_transparent, always_refuse, always_nxdomain, always_null, noview,
12341270 and are explained below. After that the default settings are listed. Use
12351271 local\-data: to enter data into the local zone. Answers for local zones
12361272 are authoritative DNS answers. By default the zones are class IN.
13031339 .TP 10
13041340 \h'5'\fIalways_nxdomain\fR
13051341 Like static, but ignores local data and returns nxdomain for the query.
1342 .TP 10
1343 \h'5'\fIalways_nodata\fR
1344 Like static, but ignores local data and returns nodata for the query.
1345 .TP 10
1346 \h'5'\fIalways_deny\fR
1347 Like deny, but ignores local data and drops the query.
1348 .TP 10
1349 \h'5'\fIalways_null\fR
1350 Always returns 0.0.0.0 or ::0 for every name in the zone. Like redirect
1351 with zero data for A and AAAA. Ignores local data in the zone. Used for
1352 some block lists.
13061353 .TP 10
13071354 \h'5'\fInoview\fR
13081355 Breaks out of that view and moves towards the global local zones for answer
20322079 query contains an ECS record, or only for queries for which the ECS record is
20332080 generated using the querier address (and therefore did not contain ECS data in
20342081 the client query). If enabled, the address check is skipped when the client
2035 query contains an ECS record. Default is no.
2082 query contains an ECS record. And the lookup in the regular cache is skipped.
2083 Default is no.
20362084 .TP
20372085 .B max\-client\-subnet\-ipv6: \fI<number>\fR
20382086 Specifies the maximum prefix length of the client source address we are willing
11421142 # by the printer. Possible values are: a4, a4wide, letter, legal and
11431143 # executive. If left blank a4wide will be used.
11441144
1145 PAPER_TYPE = a4wide
1145 #PAPER_TYPE = a4wide
11461146
11471147 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
11481148 # packages that should be included in the LaTeX output.
14501450 # The PERL_PATH should be the absolute path and name of the perl script
14511451 # interpreter (i.e. the result of `which perl').
14521452
1453 PERL_PATH = /usr/bin/perl
1453 #PERL_PATH = /usr/bin/perl
14541454
14551455 #---------------------------------------------------------------------------
14561456 # Configuration options related to the dot tool
14721472 # the mscgen tool resides. If left empty the tool is assumed to be found in the
14731473 # default search path.
14741474
1475 MSCGEN_PATH =
1475 #MSCGEN_PATH =
14761476
14771477 # If set to YES, the inheritance and collaboration graphs will hide
14781478 # inheritance and usage relations if the target is undocumented
44 * module actions.
55 */
66 #include "config.h"
7 #include "dynlibmod/dynlibmod.h"
78 #include "util/module.h"
89 #include "util/config_file.h"
9 #include "dynlibmod/dynlibmod.h"
1010
1111 #if HAVE_WINDOWS_H
1212 #include <windows.h>
1313 #define __DYNMOD HMODULE
1414 #define __DYNSYM FARPROC
1515 #define __LOADSYM GetProcAddress
16 void log_dlerror() {
16 static void log_dlerror() {
1717 DWORD dwLastError = GetLastError();
1818 LPSTR MessageBuffer;
1919 DWORD dwBufferLength;
3636
3737 }
3838
39 HMODULE open_library(const char* fname) {
39 static HMODULE open_library(const char* fname) {
4040 return LoadLibrary(fname);
4141 }
4242
43 void close_library(const char* fname, __DYNMOD handle) {
43 static void close_library(const char* fname, __DYNMOD handle) {
4444 (void)fname;
4545 (void)handle;
4646 }
4949 #define __DYNMOD void*
5050 #define __DYNSYM void*
5151 #define __LOADSYM dlsym
52 void log_dlerror() {
52 static void log_dlerror() {
5353 log_err("dynlibmod: %s", dlerror());
5454 }
5555
56 void* open_library(const char* fname) {
56 static void* open_library(const char* fname) {
5757 return dlopen(fname, RTLD_LAZY | RTLD_GLOBAL);
5858 }
5959
60 void close_library(const char* fname, __DYNMOD handle) {
60 static void close_library(const char* fname, __DYNMOD handle) {
6161 if(!handle) return;
6262 if(dlclose(handle) != 0) {
6363 log_err("dlclose %s: %s", fname, strerror(errno));
211211 int dynlib_inplace_cb_reply_generic(struct query_info* qinfo,
212212 struct module_qstate* qstate, struct reply_info* rep, int rcode,
213213 struct edns_data* edns, struct edns_option** opt_list_out,
214 struct comm_reply* repinfo, struct regional* region, int id,
215 void* callback) {
214 struct comm_reply* repinfo, struct regional* region,
215 struct timeval* start_time, int id, void* callback) {
216216 struct cb_pair* cb_pair = (struct cb_pair*) callback;
217 return ((inplace_cb_reply_func_type*) cb_pair->cb)(qinfo, qstate, rep, rcode, edns, opt_list_out, repinfo, region, id, cb_pair->cb_arg);
217 return ((inplace_cb_reply_func_type*) cb_pair->cb)(qinfo, qstate, rep, rcode, edns, opt_list_out, repinfo, region, start_time, id, cb_pair->cb_arg);
218218 }
219219
220220 int dynlib_inplace_cb_query_generic(struct query_info* qinfo, uint16_t flags,
6969 int dynlib_inplace_cb_reply_generic(struct query_info* qinfo,
7070 struct module_qstate* qstate, struct reply_info* rep, int rcode,
7171 struct edns_data* edns, struct edns_option** opt_list_out,
72 struct comm_reply* repinfo, struct regional* region, int id,
73 void* callback);
72 struct comm_reply* repinfo, struct regional* region,
73 struct timeval* start_time, int id, void* callback);
7474
7575 int dynlib_inplace_cb_query_generic(struct query_info* qinfo, uint16_t flags,
7676 struct module_qstate* qstate, struct sockaddr_storage* addr,
66 * And to build for windows, first make unbound with the --with-dynlibmod
77 * switch, then use this command:
88 * x86_64-w64-mingw32-gcc -m64 -I../.. -shared -Wall -Werror -fpic
9 * -o helloworld.dll helloworld.c -L../.. -l:libunbound.a
10 * to cross-compile a 64-bit Windows DLL.
9 * -o helloworld.dll helloworld.c -L../.. -l:libunbound.dll.a
10 * to cross-compile a 64-bit Windows DLL. The libunbound.dll.a is produced
11 * by the compile step that makes unbound.exe and allows the dynlib dll to
12 * access definitions in unbound.exe.
1113 */
1214
1315 #include "../../config.h"
2931 int reply_callback(struct query_info* qinfo,
3032 struct module_qstate* qstate, struct reply_info* rep, int rcode,
3133 struct edns_data* edns, struct edns_option** opt_list_out,
32 struct comm_reply* repinfo, struct regional* region, int id,
33 void* callback);
34 struct comm_reply* repinfo, struct regional* region,
35 struct timeval* start_time, int id, void* callback);
3436
3537 /* Init is called when the module is first loaded. It should be used to set up
3638 * the environment for this module and do any other initialisation required. */
115117 int reply_callback(struct query_info* qinfo,
116118 struct module_qstate* qstate, struct reply_info* rep, int rcode,
117119 struct edns_data* edns, struct edns_option** opt_list_out,
118 struct comm_reply* repinfo, struct regional* region, int id,
119 void* callback) {
120 struct comm_reply* repinfo, struct regional* region,
121 struct timeval* start_time, int id, void* callback) {
120122 log_info("dynlib: hello world from callback");
121123 struct dynlibmod_env* env = qstate->env->modinfo[id];
122124 if (env->dyn_env != NULL) {
7272 #include "iterator/iter_hints.h"
7373 #include "sldns/sbuffer.h"
7474 #include "sldns/str2wire.h"
75 #ifdef USE_DNSTAP
76 #include "dnstap/dtstream.h"
77 #endif
7578
7679 #ifdef HAVE_TARGETCONDITIONALS_H
7780 #include <TargetConditionals.h>
573576 edns->edns_version = 0;
574577 edns->bits = EDNS_DO;
575578 edns->opt_list = NULL;
579 edns->padding_block_size = 0;
576580 if(sldns_buffer_capacity(w->back->udp_buff) < 65535)
577581 edns->udp_size = (uint16_t)sldns_buffer_capacity(
578582 w->back->udp_buff);
1919 * called to perform operations on queries.
2020 */
2121 #include <sys/types.h>
22 #include <time.h>
2223 #ifdef HAVE_SYS_SOCKET_H
2324 #include <sys/socket.h>
2425 #endif
695696 /* ************************************************************************************ *
696697 Structure module_env
697698 * ************************************************************************************ */
699 %rename(_now) module_env::now;
700 %rename(_now_tv) module_env::now_tv;
698701 struct module_env {
699702 struct config_file* cfg;
700703 struct slabhash* msg_cache;
737740 struct edns_known_option* edns_known_options;
738741 size_t edns_known_options_num;
739742 };
743
744 %inline %{
745 PyObject* _module_env_now_get(struct module_env* env) {
746 double ts = env->now_tv->tv_sec + env->now_tv->tv_usec / 1e6;
747 return PyFloat_FromDouble(ts);
748 }
749 %}
750 %extend module_env {
751 %pythoncode %{
752 def _now_get(self): return _module_env_now_get(self)
753 now = property(_now_get)
754 %}
755 }
740756
741757 /* ************************************************************************************ *
742758 Structure module_qstate
15241540 int python_inplace_cb_reply_generic(struct query_info* qinfo,
15251541 struct module_qstate* qstate, struct reply_info* rep, int rcode,
15261542 struct edns_data* edns, struct edns_option** opt_list_out,
1527 struct comm_reply* repinfo, struct regional* region, int id,
1528 void* python_callback)
1543 struct comm_reply* repinfo, struct regional* region,
1544 struct timeval* start_time, int id, void* python_callback)
15291545 {
15301546 PyObject *func, *py_edns, *py_qstate, *py_opt_list_out, *py_qinfo;
15311547 PyObject *py_rep, *py_repinfo, *py_region;
15321548 PyObject *py_args, *py_kwargs, *result;
15331549 int res = 0;
1550 double py_start_time = ((double)start_time->tv_sec) + ((double)start_time->tv_usec) / 1.0e6;
15341551
15351552 PyGILState_STATE gstate = PyGILState_Ensure();
15361553 func = (PyObject *) python_callback;
15451562 py_region = SWIG_NewPointerObj((void*) region, SWIGTYPE_p_regional, 0);
15461563 py_args = Py_BuildValue("(OOOiOOO)", py_qinfo, py_qstate, py_rep,
15471564 rcode, py_edns, py_opt_list_out, py_region);
1548 py_kwargs = Py_BuildValue("{s:O}", "repinfo", py_repinfo);
1565 py_kwargs = Py_BuildValue("{s:O,s:d}", "repinfo", py_repinfo, "start_time",
1566 py_start_time);
15491567 result = PyObject_Call(func, py_args, py_kwargs);
15501568 Py_XDECREF(py_edns);
15511569 Py_XDECREF(py_qstate);
7171 int python_inplace_cb_reply_generic(struct query_info* qinfo,
7272 struct module_qstate* qstate, struct reply_info* rep, int rcode,
7373 struct edns_data* edns, struct edns_option** opt_list_out,
74 struct comm_reply* repinfo, struct regional* region, int id,
75 void* python_callback);
74 struct comm_reply* repinfo, struct regional* region,
75 struct timeval* start_time, int id, void* python_callback);
7676
7777 /** Declared here for fptr_wlist access. The definition is in interface.i. */
7878 int python_inplace_cb_query_generic(
3838 * conversions.
3939 */
4040 #include "config.h"
41 #include "pythonmod/pythonmod_utils.h"
4142 #include "util/module.h"
4243 #include "util/netevent.h"
4344 #include "util/net_help.h"
4242
4343 #include "util/module.h"
4444 struct delegpt_addr;
45 struct sldns_buffer;
4546
4647 /**
4748 * Store the reply_info and query_info pair in message cache (qstate->msg_cache)
7677 * @param pkt: a sldns_buffer which contains sldns_packet data
7778 * @return 0 on failure, out of memory or parse error.
7879 */
79 int createResponse(struct module_qstate* qstate, sldns_buffer* pkt);
80 int createResponse(struct module_qstate* qstate, struct sldns_buffer* pkt);
8081
8182 /**
8283 * Convert reply->addr to string
522522 return NULL; /* guard against integer overflow */
523523 dsize += data->rr_len[i];
524524 }
525 d = regional_alloc(region, dsize);
525 d = regional_alloc_zero(region, dsize);
526526 if(!d)
527527 return NULL;
528528 *d = *data;
23302330 az_add_negative_soa(struct auth_zone* z, struct regional* region,
23312331 struct dns_msg* msg)
23322332 {
2333 uint32_t minimum;
2333 time_t minimum;
2334 size_t i;
23342335 struct packed_rrset_data* d;
23352336 struct auth_rrset* soa;
23362337 struct auth_data* apex = az_find_name(z, z->name, z->namelen);
23472348 /* last 4 bytes are minimum ttl in network format */
23482349 if(d->count == 0) return 0;
23492350 if(d->rr_len[0] < 2+4) return 0;
2350 minimum = sldns_read_uint32(d->rr_data[0]+(d->rr_len[0]-4));
2351 d->ttl = (time_t)minimum;
2352 d->rr_ttl[0] = (time_t)minimum;
2351 minimum = (time_t)sldns_read_uint32(d->rr_data[0]+(d->rr_len[0]-4));
2352 minimum = d->ttl<minimum?d->ttl:minimum;
2353 d->ttl = minimum;
2354 for(i=0; i < d->count + d->rrsig_count; i++)
2355 d->rr_ttl[i] = minimum;
23532356 msg->rep->ttl = get_rrset_ttl(msg->rep->rrsets[0]);
23542357 msg->rep->prefetch_ttl = PREFETCH_TTL_CALC(msg->rep->ttl);
23552358 msg->rep->serve_expired_ttl = msg->rep->ttl + SERVE_EXPIRED_TTL;
32853288 edns->bits &= EDNS_DO;
32863289
32873290 if(!inplace_cb_reply_local_call(env, qinfo, NULL, msg->rep,
3288 (int)FLAGS_GET_RCODE(msg->rep->flags), edns, repinfo, temp)
3291 (int)FLAGS_GET_RCODE(msg->rep->flags), edns, repinfo, temp, env->now_tv)
32893292 || !reply_info_answer_encode(qinfo, msg->rep,
32903293 *(uint16_t*)sldns_buffer_begin(buf),
32913294 sldns_buffer_read_u16_at(buf, 2),
33093312 edns->bits &= EDNS_DO;
33103313
33113314 if(!inplace_cb_reply_local_call(env, qinfo, NULL, NULL,
3312 rcode, edns, repinfo, temp))
3315 rcode, edns, repinfo, temp, env->now_tv))
33133316 edns->opt_list = NULL;
33143317 error_encode(buf, rcode|BIT_AA, qinfo,
33153318 *(uint16_t*)sldns_buffer_begin(buf),
51065109 edns.edns_version = 0;
51075110 edns.bits = EDNS_DO;
51085111 edns.opt_list = NULL;
5112 edns.padding_block_size = 0;
51095113 if(sldns_buffer_capacity(buf) < 65535)
51105114 edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
51115115 else edns.udp_size = 65535;
60926096
60936097 /* send udp packet */
60946098 if(!comm_point_send_udp_msg(xfr->task_probe->cp, env->scratch_buffer,
6095 (struct sockaddr*)&addr, addrlen)) {
6099 (struct sockaddr*)&addr, addrlen, 0)) {
60966100 char zname[255+1], as[256];
60976101 dname_str(xfr->name, zname);
60986102 addr_to_str(&addr, addrlen, as, sizeof(as));
62946298 edns.edns_version = 0;
62956299 edns.bits = EDNS_DO;
62966300 edns.opt_list = NULL;
6301 edns.padding_block_size = 0;
62976302 if(sldns_buffer_capacity(buf) < 65535)
62986303 edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
62996304 else edns.udp_size = 65535;
4444 #include "util/config_file.h"
4545 #include "util/data/packed_rrset.h"
4646 #include "util/data/msgreply.h"
47 #include "util/data/msgparse.h"
4748 #include "util/regional.h"
4849 #include "util/alloc.h"
4950 #include "util/net_help.h"
395396 cachedata->ttl = updata->ttl + now;
396397 for(i=0; i<cachedata->count+cachedata->rrsig_count; i++)
397398 cachedata->rr_ttl[i] = updata->rr_ttl[i]+now;
399 cachedata->ttl_add = now;
398400 }
399401 }
400402 lock_rw_unlock(&e->lock);
14551455 log_err("inet_ntop failed");
14561456 return 0;
14571457 }
1458 if_indextoname(in6->sin6_scope_id,
1458 (void)if_indextoname(in6->sin6_scope_id,
14591459 (char *)if_index_name);
14601460 if (strlen(if_index_name) != 0) {
14611461 snprintf(addr_buf, sizeof(addr_buf),
18201820 req->cp->tcp_is_reading = 0;
18211821 comm_point_stop_listening(req->cp);
18221822 comm_point_start_listening(req->cp, -1,
1823 req->cp->tcp_timeout_msec);
1823 adjusted_tcp_timeout(req->cp));
18241824 } else if(rd) {
18251825 req->cp->tcp_is_reading = 1;
18261826 comm_point_stop_listening(req->cp);
18271827 comm_point_start_listening(req->cp, -1,
1828 req->cp->tcp_timeout_msec);
1828 adjusted_tcp_timeout(req->cp));
18291829 /* and also read it (from SSL stack buffers), so
18301830 * no event read event is expected since the remainder of
18311831 * the TLS frame is sitting in the buffers. */
18331833 } else {
18341834 comm_point_stop_listening(req->cp);
18351835 comm_point_start_listening(req->cp, -1,
1836 req->cp->tcp_timeout_msec);
1836 adjusted_tcp_timeout(req->cp));
18371837 comm_point_listen_for_rw(req->cp, 0, 0);
18381838 }
18391839 }
19461946 send_it:
19471947 c->tcp_is_reading = 0;
19481948 comm_point_stop_listening(c);
1949 comm_point_start_listening(c, -1, c->tcp_timeout_msec);
1949 comm_point_start_listening(c, -1, adjusted_tcp_timeout(c));
19501950 return;
19511951 }
19521952 req->in_worker_handle = 0;
20642064 /* switch to listen to write events */
20652065 comm_point_stop_listening(req->cp);
20662066 comm_point_start_listening(req->cp, -1,
2067 req->cp->tcp_timeout_msec);
2067 adjusted_tcp_timeout(req->cp));
20682068 return;
20692069 }
20702070 /* queue up the answer behind the others already pending */
27922792 }
27932793 }
27942794
2795 nghttp2_session_callbacks* http2_req_callbacks_create()
2795 nghttp2_session_callbacks* http2_req_callbacks_create(void)
27962796 {
27972797 nghttp2_session_callbacks *callbacks;
27982798 if(nghttp2_session_callbacks_new(&callbacks) == NGHTTP2_ERR_NOMEM) {
403403 * Create nghttp2 callbacks to handle HTTP2 requests.
404404 * @return malloc'ed struct, NULL on failure
405405 */
406 nghttp2_session_callbacks* http2_req_callbacks_create();
406 nghttp2_session_callbacks* http2_req_callbacks_create(void);
407407
408408 /** Free http2 stream buffers and decrease buffer counters */
409409 void http2_req_stream_clear(struct http2_stream* h2_stream);
462462 return 1;
463463 }
464464
465 /* Mark the SOA record for the zone. This only marks the SOA rrset; the data
466 * for the RR is entered later on local_zone_enter_rr() as with the other
467 * records. An artifical soa_negative record with a modified TTL (minimum of
468 * the TTL and the SOA.MINIMUM) is also created and marked for usage with
469 * negative answers and to avoid allocations during those answers. */
470 static int
471 lz_mark_soa_for_zone(struct local_zone* z, struct ub_packed_rrset_key* soa_rrset,
472 uint8_t* rdata, size_t rdata_len, time_t ttl, const char* rrstr)
473 {
474 struct packed_rrset_data* pd = (struct packed_rrset_data*)
475 regional_alloc_zero(z->region, sizeof(*pd));
476 struct ub_packed_rrset_key* rrset_negative = (struct ub_packed_rrset_key*)
477 regional_alloc_zero(z->region, sizeof(*rrset_negative));
478 time_t minimum;
479 if(!rrset_negative||!pd) {
480 log_err("out of memory");
481 return 0;
482 }
483 /* Mark the original SOA record and then continue with the negative one. */
484 z->soa = soa_rrset;
485 rrset_negative->entry.key = rrset_negative;
486 pd->trust = rrset_trust_prim_noglue;
487 pd->security = sec_status_insecure;
488 rrset_negative->entry.data = pd;
489 rrset_negative->rk.dname = soa_rrset->rk.dname;
490 rrset_negative->rk.dname_len = soa_rrset->rk.dname_len;
491 rrset_negative->rk.type = soa_rrset->rk.type;
492 rrset_negative->rk.rrset_class = soa_rrset->rk.rrset_class;
493 if(!rrset_insert_rr(z->region, pd, rdata, rdata_len, ttl, rrstr))
494 return 0;
495 /* last 4 bytes are minimum ttl in network format */
496 if(pd->count == 0 || pd->rr_len[0] < 2+4)
497 return 0;
498 minimum = (time_t)sldns_read_uint32(pd->rr_data[0]+(pd->rr_len[0]-4));
499 minimum = ttl<minimum?ttl:minimum;
500 pd->ttl = minimum;
501 pd->rr_ttl[0] = minimum;
502
503 z->soa_negative = rrset_negative;
504 return 1;
505 }
506
465507 int
466508 local_zone_enter_rr(struct local_zone* z, uint8_t* nm, size_t nmlen,
467509 int nmlabs, uint16_t rrtype, uint16_t rrclass, time_t ttl,
501543 if(query_dname_compare(node->name, z->name) == 0) {
502544 if(rrtype == LDNS_RR_TYPE_NSEC)
503545 rrset->rrset->rk.flags = PACKED_RRSET_NSEC_AT_APEX;
504 if(rrtype == LDNS_RR_TYPE_SOA)
505 z->soa = rrset->rrset;
546 if(rrtype == LDNS_RR_TYPE_SOA &&
547 !lz_mark_soa_for_zone(z, rrset->rrset, rdata, rdata_len, ttl,
548 rrstr))
549 return 0;
506550 }
507551 }
508552 pd = (struct packed_rrset_data*)rrset->rrset->entry.data;
12141258 edns->ext_rcode = 0;
12151259 edns->bits &= EDNS_DO;
12161260 if(!inplace_cb_reply_local_call(env, qinfo, NULL, &rep, rcode, edns,
1217 repinfo, temp) || !reply_info_answer_encode(qinfo, &rep,
1261 repinfo, temp, env->now_tv) || !reply_info_answer_encode(qinfo, &rep,
12181262 *(uint16_t*)sldns_buffer_begin(buf), sldns_buffer_read_u16_at(buf, 2),
12191263 buf, 0, 0, temp, udpsize, edns, (int)(edns->bits&EDNS_DO), 0)) {
12201264 error_encode(buf, (LDNS_RCODE_SERVFAIL|BIT_AA), qinfo,
12361280 edns->bits &= EDNS_DO;
12371281
12381282 if(!inplace_cb_reply_local_call(env, qinfo, NULL, NULL,
1239 rcode, edns, repinfo, temp))
1283 rcode, edns, repinfo, temp, env->now_tv))
12401284 edns->opt_list = NULL;
12411285 error_encode(buf, r, qinfo, *(uint16_t*)sldns_buffer_begin(buf),
12421286 sldns_buffer_read_u16_at(buf, 2), edns);
15471591 lz_type == local_zone_inform_redirect ||
15481592 lz_type == local_zone_always_nodata)?
15491593 LDNS_RCODE_NOERROR:LDNS_RCODE_NXDOMAIN;
1550 if(z->soa)
1594 if(z->soa && z->soa_negative)
15511595 return local_encode(qinfo, env, edns, repinfo, buf, temp,
1552 z->soa, 0, rcode);
1596 z->soa_negative, 0, rcode);
15531597 local_error_encode(qinfo, env, edns, repinfo, buf, temp, rcode,
15541598 (rcode|BIT_AA));
15551599 return 1;
15571601 || lz_type == local_zone_always_transparent) {
15581602 /* no NODATA or NXDOMAINS for this zone type */
15591603 return 0;
1604 } else if(lz_type == local_zone_always_null) {
1605 /* 0.0.0.0 or ::0 or noerror/nodata for this zone type,
1606 * used for blocklists. */
1607 if(qinfo->qtype == LDNS_RR_TYPE_A ||
1608 qinfo->qtype == LDNS_RR_TYPE_AAAA) {
1609 struct ub_packed_rrset_key lrr;
1610 struct packed_rrset_data d;
1611 time_t rr_ttl = 3600;
1612 size_t rr_len = 0;
1613 uint8_t rr_data[2+16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
1614 uint8_t* rr_datas = rr_data;
1615 memset(&lrr, 0, sizeof(lrr));
1616 memset(&d, 0, sizeof(d));
1617 lrr.entry.data = &d;
1618 lrr.rk.dname = qinfo->qname;
1619 lrr.rk.dname_len = qinfo->qname_len;
1620 lrr.rk.type = htons(qinfo->qtype);
1621 lrr.rk.rrset_class = htons(qinfo->qclass);
1622 if(qinfo->qtype == LDNS_RR_TYPE_A) {
1623 rr_len = 4;
1624 sldns_write_uint16(rr_data, rr_len);
1625 rr_len += 2;
1626 } else {
1627 rr_len = 16;
1628 sldns_write_uint16(rr_data, rr_len);
1629 rr_len += 2;
1630 }
1631 d.ttl = rr_ttl;
1632 d.count = 1;
1633 d.rr_len = &rr_len;
1634 d.rr_data = &rr_datas;
1635 d.rr_ttl = &rr_ttl;
1636 return local_encode(qinfo, env, edns, repinfo, buf, temp,
1637 &lrr, 1, LDNS_RCODE_NOERROR);
1638 } else {
1639 local_error_encode(qinfo, env, edns, repinfo, buf,
1640 temp, LDNS_RCODE_NOERROR,
1641 (LDNS_RCODE_NOERROR|BIT_AA));
1642 }
1643 return 1;
15601644 }
15611645 /* else lz_type == local_zone_transparent */
15621646
15641648 * does not, then we should make this noerror/nodata */
15651649 if(ld && ld->rrsets) {
15661650 int rcode = LDNS_RCODE_NOERROR;
1567 if(z->soa)
1651 if(z->soa && z->soa_negative)
15681652 return local_encode(qinfo, env, edns, repinfo, buf, temp,
1569 z->soa, 0, rcode);
1653 z->soa_negative, 0, rcode);
15701654 local_error_encode(qinfo, env, edns, repinfo, buf, temp, rcode,
15711655 (rcode|BIT_AA));
15721656 return 1;
17611845 case local_zone_always_nxdomain: return "always_nxdomain";
17621846 case local_zone_always_nodata: return "always_nodata";
17631847 case local_zone_always_deny: return "always_deny";
1848 case local_zone_always_null: return "always_null";
17641849 case local_zone_noview: return "noview";
17651850 case local_zone_invalid: return "invalid";
17661851 }
17971882 *t = local_zone_always_nodata;
17981883 else if(strcmp(type, "always_deny") == 0)
17991884 *t = local_zone_always_deny;
1885 else if(strcmp(type, "always_null") == 0)
1886 *t = local_zone_always_null;
18001887 else if(strcmp(type, "noview") == 0)
18011888 *t = local_zone_noview;
18021889 else if(strcmp(type, "nodefault") == 0)
19992086 /* no memory recycling for zone deletions ... */
20002087 d->rrsets = NULL;
20012088 /* did we delete the soa record ? */
2002 if(query_dname_compare(d->name, z->name) == 0)
2089 if(query_dname_compare(d->name, z->name) == 0) {
20032090 z->soa = NULL;
2091 z->soa_negative = NULL;
2092 }
20042093
20052094 /* cleanup the empty nonterminals for this name */
20062095 del_empty_term(z, d, name, len, labs);
9595 local_zone_always_nodata,
9696 /** drop query, even when there is local data */
9797 local_zone_always_deny,
98 /** answer with 0.0.0.0 or ::0 or noerror/nodata, even when there is
99 * local data */
100 local_zone_always_null,
98101 /** answer not from the view, but global or no-answer */
99102 local_zone_noview,
100103 /** Invalid type, cannot be used to generate answer */
154157 rbtree_type data;
155158 /** if data contains zone apex SOA data, this is a ptr to it. */
156159 struct ub_packed_rrset_key* soa;
160 /** if data contains zone apex SOA data, this is a prt to an
161 * artificial negative SOA rrset (TTL is the minimum of the TTL and the
162 * SOA.MINIMUM). */
163 struct ub_packed_rrset_key* soa_negative;
157164 };
158165
159166 /**
497497 if(!s) {
498498 log_err("mesh_state_create: out of memory; SERVFAIL");
499499 if(!inplace_cb_reply_servfail_call(mesh->env, qinfo, NULL, NULL,
500 LDNS_RCODE_SERVFAIL, edns, rep, mesh->env->scratch))
500 LDNS_RCODE_SERVFAIL, edns, rep, mesh->env->scratch, mesh->env->now_tv))
501501 edns->opt_list = NULL;
502502 error_encode(r_buffer, LDNS_RCODE_SERVFAIL,
503503 qinfo, qid, qflags, edns);
513513 if(!s->s.edns_opts_front_in) {
514514 log_err("mesh_state_create: out of memory; SERVFAIL");
515515 if(!inplace_cb_reply_servfail_call(mesh->env, qinfo, NULL,
516 NULL, LDNS_RCODE_SERVFAIL, edns, rep, mesh->env->scratch))
516 NULL, LDNS_RCODE_SERVFAIL, edns, rep, mesh->env->scratch, mesh->env->now_tv))
517517 edns->opt_list = NULL;
518518 error_encode(r_buffer, LDNS_RCODE_SERVFAIL,
519519 qinfo, qid, qflags, edns);
586586
587587 servfail_mem:
588588 if(!inplace_cb_reply_servfail_call(mesh->env, qinfo, &s->s,
589 NULL, LDNS_RCODE_SERVFAIL, edns, rep, mesh->env->scratch))
589 NULL, LDNS_RCODE_SERVFAIL, edns, rep, mesh->env->scratch, mesh->env->now_tv))
590590 edns->opt_list = NULL;
591591 error_encode(r_buffer, LDNS_RCODE_SERVFAIL,
592592 qinfo, qid, qflags, edns);
11111111 * @param rcode: if not 0, error code.
11121112 * @param rep: reply to send (or NULL if rcode is set).
11131113 * @param r: callback entry
1114 * @param start_time: the time to pass to callback functions, it is 0 or
1115 * a value from one of the packets if the mesh state had packets.
11141116 */
11151117 static void
11161118 mesh_do_callback(struct mesh_state* m, int rcode, struct reply_info* rep,
1117 struct mesh_cb* r)
1119 struct mesh_cb* r, struct timeval* start_time)
11181120 {
11191121 int secure;
11201122 char* reason = NULL;
11351137 if(rcode) {
11361138 if(rcode == LDNS_RCODE_SERVFAIL) {
11371139 if(!inplace_cb_reply_servfail_call(m->s.env, &m->s.qinfo, &m->s,
1138 rep, rcode, &r->edns, NULL, m->s.region))
1140 rep, rcode, &r->edns, NULL, m->s.region, start_time))
11391141 r->edns.opt_list = NULL;
11401142 } else {
11411143 if(!inplace_cb_reply_call(m->s.env, &m->s.qinfo, &m->s, rep, rcode,
1142 &r->edns, NULL, m->s.region))
1144 &r->edns, NULL, m->s.region, start_time))
11431145 r->edns.opt_list = NULL;
11441146 }
11451147 fptr_ok(fptr_whitelist_mesh_cb(r->cb));
11541156 r->edns.bits &= EDNS_DO;
11551157
11561158 if(!inplace_cb_reply_call(m->s.env, &m->s.qinfo, &m->s, rep,
1157 LDNS_RCODE_NOERROR, &r->edns, NULL, m->s.region) ||
1159 LDNS_RCODE_NOERROR, &r->edns, NULL, m->s.region, start_time) ||
11581160 !reply_info_answer_encode(&m->s.qinfo, rep, r->qid,
11591161 r->qflags, r->buf, 0, 1,
11601162 m->s.env->scratch, udp_size, &r->edns,
12551257 m->s.qinfo.local_alias = r->local_alias;
12561258 if(rcode == LDNS_RCODE_SERVFAIL) {
12571259 if(!inplace_cb_reply_servfail_call(m->s.env, &m->s.qinfo, &m->s,
1258 rep, rcode, &r->edns, &r->query_reply, m->s.region))
1260 rep, rcode, &r->edns, &r->query_reply, m->s.region, &r->start_time))
12591261 r->edns.opt_list = NULL;
12601262 } else {
12611263 if(!inplace_cb_reply_call(m->s.env, &m->s.qinfo, &m->s, rep, rcode,
1262 &r->edns, &r->query_reply, m->s.region))
1264 &r->edns, &r->query_reply, m->s.region, &r->start_time))
12631265 r->edns.opt_list = NULL;
12641266 }
12651267 error_encode(r_buffer, rcode, &m->s.qinfo, r->qid,
12761278 m->s.qinfo.qname = r->qname;
12771279 m->s.qinfo.local_alias = r->local_alias;
12781280 if(!inplace_cb_reply_call(m->s.env, &m->s.qinfo, &m->s, rep,
1279 LDNS_RCODE_NOERROR, &r->edns, &r->query_reply, m->s.region) ||
1281 LDNS_RCODE_NOERROR, &r->edns, &r->query_reply, m->s.region, &r->start_time) ||
12801282 !apply_edns_options(&r->edns, &edns_bak,
12811283 m->s.env->cfg, r->query_reply.c,
12821284 m->s.region) ||
12861288 secure))
12871289 {
12881290 if(!inplace_cb_reply_servfail_call(m->s.env, &m->s.qinfo, &m->s,
1289 rep, LDNS_RCODE_SERVFAIL, &r->edns, &r->query_reply, m->s.region))
1291 rep, LDNS_RCODE_SERVFAIL, &r->edns, &r->query_reply, m->s.region, &r->start_time))
12901292 r->edns.opt_list = NULL;
12911293 error_encode(r_buffer, LDNS_RCODE_SERVFAIL,
12921294 &m->s.qinfo, r->qid, r->qflags, &r->edns);
13291331 struct mesh_cb* c;
13301332 struct reply_info* rep = (mstate->s.return_msg?
13311333 mstate->s.return_msg->rep:NULL);
1334 struct timeval tv = {0, 0};
13321335 /* No need for the serve expired timer anymore; we are going to reply. */
13331336 if(mstate->s.serve_expired_data) {
13341337 comm_timer_delete(mstate->s.serve_expired_data->timer);
13481351 }
13491352 }
13501353 for(r = mstate->reply_list; r; r = r->next) {
1354 tv = r->start_time;
1355
13511356 /* if a response-ip address block has been stored the
13521357 * information should be logged for each client. */
13531358 if(mstate->s.respip_action_info &&
14201425 if(!mstate->reply_list && !mstate->cb_list &&
14211426 mstate->super_set.count == 0)
14221427 mstate->s.env->mesh->num_detached_states++;
1423 mesh_do_callback(mstate, mstate->s.return_rcode, rep, c);
1428 mesh_do_callback(mstate, mstate->s.return_rcode, rep, c, &tv);
14241429 }
14251430 }
14261431
19161921 struct respip_action_info actinfo;
19171922 struct query_info* lookup_qinfo = &qstate->qinfo;
19181923 struct query_info qinfo_tmp;
1924 struct timeval tv = {0, 0};
19191925 int must_validate = (!(qstate->query_flags&BIT_CD)
19201926 || qstate->env->cfg->ignore_cd) && qstate->env->need_to_validate;
19211927 if(!qstate->serve_expired_data) return;
19221928 verbose(VERB_ALGO, "Serve expired: Trying to reply with expired data");
19231929 comm_timer_delete(qstate->serve_expired_data->timer);
19241930 qstate->serve_expired_data->timer = NULL;
1925 if(qstate->blacklist || qstate->no_cache_lookup || qstate->is_drop) {
1931 /* If is_drop or no_cache_lookup (modules that handle their own cache e.g.,
1932 * subnetmod) ignore stale data from the main cache. */
1933 if(qstate->no_cache_lookup || qstate->is_drop) {
19261934 verbose(VERB_ALGO,
19271935 "Serve expired: Not allowed to look into cache for stale");
19281936 return;
19871995 log_dns_msg("Serve expired lookup", &qstate->qinfo, msg->rep);
19881996
19891997 for(r = mstate->reply_list; r; r = r->next) {
1998 tv = r->start_time;
1999
19902000 /* If address info is returned, it means the action should be an
19912001 * 'inform' variant and the information should be logged. */
19922002 if(actinfo.addrinfo) {
20412051 if(!mstate->reply_list && !mstate->cb_list &&
20422052 mstate->super_set.count == 0)
20432053 qstate->env->mesh->num_detached_states++;
2044 mesh_do_callback(mstate, LDNS_RCODE_NOERROR, msg->rep, c);
2045 }
2046 }
2054 mesh_do_callback(mstate, LDNS_RCODE_NOERROR, msg->rep, c, &tv);
2055 }
2056 }
8989 static void waiting_list_remove(struct outside_network* outnet,
9090 struct waiting_tcp* w);
9191
92 /** remove reused element from tree and lru list */
93 static void reuse_tcp_remove_tree_list(struct outside_network* outnet,
94 struct reuse_tcp* reuse);
95
9296 int
9397 pending_cmp(const void* key1, const void* key2)
9498 {
423427 reuse_tcp_insert(struct outside_network* outnet, struct pending_tcp* pend_tcp)
424428 {
425429 log_reuse_tcp(VERB_CLIENT, "reuse_tcp_insert", &pend_tcp->reuse);
426 if(pend_tcp->reuse.item_on_lru_list)
430 if(pend_tcp->reuse.item_on_lru_list) {
431 if(!pend_tcp->reuse.node.key)
432 log_err("internal error: reuse_tcp_insert: on lru list without key");
427433 return 1;
434 }
428435 pend_tcp->reuse.node.key = &pend_tcp->reuse;
429436 pend_tcp->reuse.pending = pend_tcp;
430437 if(!rbtree_insert(&outnet->tcp_reuse, &pend_tcp->reuse.node)) {
476483 if(outnet->tcp_reuse.root == NULL ||
477484 outnet->tcp_reuse.root == RBTREE_NULL)
478485 return NULL;
479 if(rbtree_find_less_equal(&outnet->tcp_reuse, &key_p.reuse.node,
486 if(rbtree_find_less_equal(&outnet->tcp_reuse, &key_p.reuse,
480487 &result)) {
481488 /* exact match */
482489 /* but the key is on stack, and ptr is compared, impossible */
660667 pend->reuse.cp_more_write_again = 0;
661668 memcpy(&pend->c->repinfo.addr, &w->addr, w->addrlen);
662669 pend->reuse.pending = pend;
670
671 /* Remove from tree in case the is_ssl will be different and causes the
672 * identity of the reuse_tcp to change; could result in nodes not being
673 * deleted from the tree (because the new identity does not match the
674 * previous node) but their ->key would be changed to NULL. */
675 if(pend->reuse.node.key)
676 reuse_tcp_remove_tree_list(w->outnet, &pend->reuse);
677
663678 if(pend->c->ssl)
664679 pend->reuse.is_ssl = 1;
665680 else pend->reuse.is_ssl = 0;
676691 static void
677692 reuse_tcp_lru_touch(struct outside_network* outnet, struct reuse_tcp* reuse)
678693 {
679 if(!reuse->item_on_lru_list)
694 if(!reuse->item_on_lru_list) {
695 log_err("internal error: we need to touch the lru_list but item not in list");
680696 return; /* not on the list, no lru to modify */
697 }
681698 if(!reuse->lru_prev)
682699 return; /* already first in the list */
683700 /* remove at current position */
846863 verbose(VERB_CLIENT, "reuse_tcp_remove_tree_list");
847864 if(reuse->node.key) {
848865 /* delete it from reuse tree */
849 (void)rbtree_delete(&outnet->tcp_reuse, &reuse->node);
866 (void)rbtree_delete(&outnet->tcp_reuse, reuse);
850867 reuse->node.key = NULL;
851868 }
852869 /* delete from reuse list */
17441761 return 1;
17451762 }
17461763
1764 /** return true is UDP connect error needs to be logged */
1765 static int udp_connect_needs_log(int err)
1766 {
1767 switch(err) {
1768 case ECONNREFUSED:
1769 # ifdef ENETUNREACH
1770 case ENETUNREACH:
1771 # endif
1772 # ifdef EHOSTDOWN
1773 case EHOSTDOWN:
1774 # endif
1775 # ifdef EHOSTUNREACH
1776 case EHOSTUNREACH:
1777 # endif
1778 # ifdef ENETDOWN
1779 case ENETDOWN:
1780 # endif
1781 if(verbosity >= VERB_ALGO)
1782 return 1;
1783 return 0;
1784 default:
1785 break;
1786 }
1787 return 1;
1788 }
1789
1790
17471791 /** Select random interface and port */
17481792 static int
17491793 select_ifport(struct outside_network* outnet, struct pending* pend,
18031847 /* connect() to the destination */
18041848 if(connect(fd, (struct sockaddr*)&pend->addr,
18051849 pend->addrlen) < 0) {
1806 log_err_addr("udp connect failed",
1807 strerror(errno), &pend->addr,
1808 pend->addrlen);
1850 if(udp_connect_needs_log(errno)) {
1851 log_err_addr("udp connect failed",
1852 strerror(errno), &pend->addr,
1853 pend->addrlen);
1854 }
18091855 sock_close(fd);
18101856 return 0;
18111857 }
18691915 log_assert(pend->pc && pend->pc->cp);
18701916
18711917 /* send it over the commlink */
1872 if(outnet->udp_connect) {
1873 if(!comm_point_send_udp_msg(pend->pc->cp, packet, NULL, 0)) {
1874 portcomm_loweruse(outnet, pend->pc);
1875 return 0;
1876 }
1877 } else {
1878 if(!comm_point_send_udp_msg(pend->pc->cp, packet,
1879 (struct sockaddr*)&pend->addr, pend->addrlen)) {
1880 portcomm_loweruse(outnet, pend->pc);
1881 return 0;
1882 }
1918 if(!comm_point_send_udp_msg(pend->pc->cp, packet,
1919 (struct sockaddr*)&pend->addr, pend->addrlen, outnet->udp_connect)) {
1920 portcomm_loweruse(outnet, pend->pc);
1921 return 0;
18831922 }
18841923
18851924 /* system calls to set timeout after sending UDP to make roundtrip
22192258 serviced_create(struct outside_network* outnet, sldns_buffer* buff, int dnssec,
22202259 int want_dnssec, int nocaps, int tcp_upstream, int ssl_upstream,
22212260 char* tls_auth_name, struct sockaddr_storage* addr, socklen_t addrlen,
2222 uint8_t* zone, size_t zonelen, int qtype, struct edns_option* opt_list)
2261 uint8_t* zone, size_t zonelen, int qtype, struct edns_option* opt_list,
2262 size_t pad_queries_block_size)
22232263 {
22242264 struct serviced_query* sq = (struct serviced_query*)malloc(sizeof(*sq));
22252265 #ifdef UNBOUND_DEBUG
22772317 sq->status = serviced_initial;
22782318 sq->retry = 0;
22792319 sq->to_be_deleted = 0;
2320 sq->padding_block_size = pad_queries_block_size;
22802321 #ifdef UNBOUND_DEBUG
22812322 ins =
22822323 #else
24582499 if(with_edns) {
24592500 /* add edns section */
24602501 struct edns_data edns;
2502 struct edns_option padding_option;
24612503 edns.edns_present = 1;
24622504 edns.ext_rcode = 0;
24632505 edns.edns_version = EDNS_ADVERTISED_VERSION;
24802522 edns.bits = EDNS_DO;
24812523 if(sq->dnssec & BIT_CD)
24822524 LDNS_CD_SET(sldns_buffer_begin(buff));
2525 if (sq->ssl_upstream && sq->padding_block_size) {
2526 padding_option.opt_code = LDNS_EDNS_PADDING;
2527 padding_option.opt_len = 0;
2528 padding_option.opt_data = NULL;
2529 padding_option.next = edns.opt_list;
2530 edns.opt_list = &padding_option;
2531 edns.padding_block_size = sq->padding_block_size;
2532 }
24832533 attach_edns_record(buff, &edns);
24842534 }
24852535 }
30033053 sq = serviced_create(outnet, buff, dnssec, want_dnssec, nocaps,
30043054 tcp_upstream, ssl_upstream, tls_auth_name, addr,
30053055 addrlen, zone, zonelen, (int)qinfo->qtype,
3006 qstate->edns_opts_back_out);
3056 qstate->edns_opts_back_out,
3057 ( ssl_upstream && env->cfg->pad_queries
3058 ? env->cfg->pad_queries_block_size : 0 ));
30073059 if(!sq) {
30083060 free(cb);
30093061 return NULL;
501501 struct service_callback* cblist;
502502 /** the UDP or TCP query that is pending, see status which */
503503 void* pending;
504 /** block size with which to pad encrypted queries (default: 128) */
505 size_t padding_block_size;
504506 };
505507
506508 /**
667667 int only_exact, int wr, int zones_keep_lock)
668668 {
669669 uint8_t* ce;
670 size_t ce_len, ce_labs;
670 size_t ce_len;
671 int ce_labs;
671672 uint8_t wc[LDNS_MAX_DOMAINLEN+1];
672673 int exact;
673674 struct local_zone* z = NULL;
962963 for(a = az->rpz_first; a; a = a->rpz_az_next) {
963964 lock_rw_rdlock(&a->lock);
964965 r = a->rpz;
965 if(!r->taglist || taglist_intersect(r->taglist,
966 r->taglistlen, taglist, taglen)) {
966 if(!r->disabled && (!r->taglist || taglist_intersect(r->taglist,
967 r->taglistlen, taglist, taglen))) {
967968 z = rpz_find_zone(r, qinfo->qname, qinfo->qname_len,
968969 qinfo->qclass, 0, 0, 0);
969970 if(z && r->action_override == RPZ_DISABLED_ACTION) {
10431044
10441045 return ret;
10451046 }
1047
1048 void rpz_enable(struct rpz* r)
1049 {
1050 if(!r)
1051 return;
1052 r->disabled = 0;
1053 }
1054
1055 void rpz_disable(struct rpz* r)
1056 {
1057 if(!r)
1058 return;
1059 r->disabled = 1;
1060 }
9898 int log;
9999 char* log_name;
100100 struct regional* region;
101 int disabled;
101102 };
102103
103104 /**
197198 enum respip_action
198199 rpz_action_to_respip_action(enum rpz_action a);
199200
201 /**
202 * Enable RPZ
203 * @param r: RPZ struct to enable
204 */
205 void rpz_enable(struct rpz* r);
206
207 /**
208 * Disable RPZ
209 * @param r: RPZ struct to disable
210 */
211 void rpz_disable(struct rpz* r);
212
200213 #endif /* SERVICES_RPZ_H */
154154 char* wsa_strerror(int err);
155155 #endif
156156
157 static const char ICANN_UPDATE_CA[] =
158 /* The ICANN CA fetched at 24 Sep 2010. Valid to 2028 */
159 "-----BEGIN CERTIFICATE-----\n"
160 "MIIDdzCCAl+gAwIBAgIBATANBgkqhkiG9w0BAQsFADBdMQ4wDAYDVQQKEwVJQ0FO\n"
161 "TjEmMCQGA1UECxMdSUNBTk4gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNV\n"
162 "BAMTDUlDQU5OIFJvb3QgQ0ExCzAJBgNVBAYTAlVTMB4XDTA5MTIyMzA0MTkxMloX\n"
163 "DTI5MTIxODA0MTkxMlowXTEOMAwGA1UEChMFSUNBTk4xJjAkBgNVBAsTHUlDQU5O\n"
164 "IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1JQ0FOTiBSb290IENB\n"
165 "MQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKDb\n"
166 "cLhPNNqc1NB+u+oVvOnJESofYS9qub0/PXagmgr37pNublVThIzyLPGCJ8gPms9S\n"
167 "G1TaKNIsMI7d+5IgMy3WyPEOECGIcfqEIktdR1YWfJufXcMReZwU4v/AdKzdOdfg\n"
168 "ONiwc6r70duEr1IiqPbVm5T05l1e6D+HkAvHGnf1LtOPGs4CHQdpIUcy2kauAEy2\n"
169 "paKcOcHASvbTHK7TbbvHGPB+7faAztABLoneErruEcumetcNfPMIjXKdv1V1E3C7\n"
170 "MSJKy+jAqqQJqjZoQGB0necZgUMiUv7JK1IPQRM2CXJllcyJrm9WFxY0c1KjBO29\n"
171 "iIKK69fcglKcBuFShUECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B\n"
172 "Af8EBAMCAf4wHQYDVR0OBBYEFLpS6UmDJIZSL8eZzfyNa2kITcBQMA0GCSqGSIb3\n"
173 "DQEBCwUAA4IBAQAP8emCogqHny2UYFqywEuhLys7R9UKmYY4suzGO4nkbgfPFMfH\n"
174 "6M+Zj6owwxlwueZt1j/IaCayoKU3QsrYYoDRolpILh+FPwx7wseUEV8ZKpWsoDoD\n"
175 "2JFbLg2cfB8u/OlE4RYmcxxFSmXBg0yQ8/IoQt/bxOcEEhhiQ168H2yE5rxJMt9h\n"
176 "15nu5JBSewrCkYqYYmaxyOC3WrVGfHZxVI7MpIFcGdvSb2a1uyuua8l0BKgk3ujF\n"
177 "0/wsHNeP22qNyVO+XVBzrM8fk8BSUFuiT/6tZTYXRtEt5aKQZgXbKU5dUF3jT9qg\n"
178 "j/Br5BZw3X/zd325TvnswzMC1+ljLzHnQGGk\n"
179 "-----END CERTIFICATE-----\n";
180
181 static const char DS_TRUST_ANCHOR[] =
182 /* The anchors must start on a new line with ". IN DS and end with \n"[;]
183 * because the makedist script greps on the source here */
184 /* anchor 20326 is from 2017 */
185 ". IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D\n";
186
157187 /** verbosity for this application */
158188 static int verb = 0;
159189
212242 static const char*
213243 get_builtin_cert(void)
214244 {
215 return
216 /* The ICANN CA fetched at 24 Sep 2010. Valid to 2028 */
217 "-----BEGIN CERTIFICATE-----\n"
218 "MIIDdzCCAl+gAwIBAgIBATANBgkqhkiG9w0BAQsFADBdMQ4wDAYDVQQKEwVJQ0FO\n"
219 "TjEmMCQGA1UECxMdSUNBTk4gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNV\n"
220 "BAMTDUlDQU5OIFJvb3QgQ0ExCzAJBgNVBAYTAlVTMB4XDTA5MTIyMzA0MTkxMloX\n"
221 "DTI5MTIxODA0MTkxMlowXTEOMAwGA1UEChMFSUNBTk4xJjAkBgNVBAsTHUlDQU5O\n"
222 "IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1JQ0FOTiBSb290IENB\n"
223 "MQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKDb\n"
224 "cLhPNNqc1NB+u+oVvOnJESofYS9qub0/PXagmgr37pNublVThIzyLPGCJ8gPms9S\n"
225 "G1TaKNIsMI7d+5IgMy3WyPEOECGIcfqEIktdR1YWfJufXcMReZwU4v/AdKzdOdfg\n"
226 "ONiwc6r70duEr1IiqPbVm5T05l1e6D+HkAvHGnf1LtOPGs4CHQdpIUcy2kauAEy2\n"
227 "paKcOcHASvbTHK7TbbvHGPB+7faAztABLoneErruEcumetcNfPMIjXKdv1V1E3C7\n"
228 "MSJKy+jAqqQJqjZoQGB0necZgUMiUv7JK1IPQRM2CXJllcyJrm9WFxY0c1KjBO29\n"
229 "iIKK69fcglKcBuFShUECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B\n"
230 "Af8EBAMCAf4wHQYDVR0OBBYEFLpS6UmDJIZSL8eZzfyNa2kITcBQMA0GCSqGSIb3\n"
231 "DQEBCwUAA4IBAQAP8emCogqHny2UYFqywEuhLys7R9UKmYY4suzGO4nkbgfPFMfH\n"
232 "6M+Zj6owwxlwueZt1j/IaCayoKU3QsrYYoDRolpILh+FPwx7wseUEV8ZKpWsoDoD\n"
233 "2JFbLg2cfB8u/OlE4RYmcxxFSmXBg0yQ8/IoQt/bxOcEEhhiQ168H2yE5rxJMt9h\n"
234 "15nu5JBSewrCkYqYYmaxyOC3WrVGfHZxVI7MpIFcGdvSb2a1uyuua8l0BKgk3ujF\n"
235 "0/wsHNeP22qNyVO+XVBzrM8fk8BSUFuiT/6tZTYXRtEt5aKQZgXbKU5dUF3jT9qg\n"
236 "j/Br5BZw3X/zd325TvnswzMC1+ljLzHnQGGk\n"
237 "-----END CERTIFICATE-----\n"
238 ;
245 return ICANN_UPDATE_CA;
239246 }
240247
241248 /** return the built in root DS trust anchor */
242249 static const char*
243250 get_builtin_ds(void)
244251 {
245 return
246 /* The anchors must start on a new line with ". IN DS and end with \n"[;]
247 * because the makedist script greps on the source here */
248 /* anchor 20326 is from 2017 */
249 ". IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D\n";
252 return DS_TRUST_ANCHOR;
250253 }
251254
252255 /** print hex data */
253256 static void
254 print_data(const char* msg, const char* data, int len)
255 {
256 int i;
257 print_data(const char* msg, const char* data, size_t len)
258 {
259 size_t i;
257260 printf("%s: ", msg);
258261 for(i=0; i<len; i++) {
259262 printf(" %2.2x", (unsigned char)data[i]);
11091112 data = read_data_chunk(ssl, len);
11101113 }
11111114 if(!data) return NULL;
1112 if(verb >= 4) print_data("read data", data, (int)len);
1115 if(verb >= 4) print_data("read data", data, len);
11131116 m = BIO_new(BIO_s_mem());
11141117 if(!m) {
11151118 if(verb) printf("out of memory\n");
8080 static void usage(void) ATTR_NORETURN;
8181 static void ssl_err(const char* s) ATTR_NORETURN;
8282 static void ssl_path_err(const char* s, const char *path) ATTR_NORETURN;
83
84 /** timeout to wait for connection over stream, in msec */
85 #define UNBOUND_CONTROL_CONNECT_TIMEOUT 5000
8386
8487 /** Give unbound-control usage, and exit (1). */
8588 static void
163166 printf(" view_local_data_remove view name remove local-data in view\n");
164167 printf(" view_local_datas_remove view remove list of local-data from view\n");
165168 printf(" one entry per line read from stdin\n");
169 printf(" rpz_enable zone Enable the RPZ zone if it had previously\n");
170 printf(" been disabled\n");
171 printf(" rpz_disable zone Disable the RPZ zone\n");
166172 printf("Version %s\n", PACKAGE_VERSION);
167173 printf("BSD licensed, see LICENSE in source package for details.\n");
168174 printf("Report bugs to %s\n", PACKAGE_BUGREPORT);
544550 return ctx;
545551 }
546552
553 /** check connect error */
554 static void
555 checkconnecterr(int err, const char* svr, struct sockaddr_storage* addr,
556 socklen_t addrlen, int statuscmd, int useport)
557 {
558 #ifndef USE_WINSOCK
559 if(!useport) log_err("connect: %s for %s", strerror(err), svr);
560 else log_err_addr("connect", strerror(err), addr, addrlen);
561 if(err == ECONNREFUSED && statuscmd) {
562 printf("unbound is stopped\n");
563 exit(3);
564 }
565 #else
566 int wsaerr = err;
567 if(!useport) log_err("connect: %s for %s", wsa_strerror(wsaerr), svr);
568 else log_err_addr("connect", wsa_strerror(wsaerr), addr, addrlen);
569 if(wsaerr == WSAECONNREFUSED && statuscmd) {
570 printf("unbound is stopped\n");
571 exit(3);
572 }
573 #endif
574 exit(1);
575 }
576
547577 /** contact the server with TCP connect */
548578 static int
549579 contact_server(const char* svr, struct config_file* cfg, int statuscmd)
597627 if(fd == -1) {
598628 fatal_exit("socket: %s", sock_strerror(errno));
599629 }
630 fd_set_nonblock(fd);
600631 if(connect(fd, (struct sockaddr*)&addr, addrlen) < 0) {
601632 #ifndef USE_WINSOCK
602 int err = errno;
603 if(!useport) log_err("connect: %s for %s", strerror(err), svr);
604 else log_err_addr("connect", strerror(err), &addr, addrlen);
605 if(err == ECONNREFUSED && statuscmd) {
606 printf("unbound is stopped\n");
607 exit(3);
608 }
633 #ifdef EINPROGRESS
634 if(errno != EINPROGRESS) {
635 checkconnecterr(errno, svr, &addr,
636 addrlen, statuscmd, useport);
637 }
638 #endif
609639 #else
610 int wsaerr = WSAGetLastError();
611 if(!useport) log_err("connect: %s for %s", wsa_strerror(wsaerr), svr);
612 else log_err_addr("connect", wsa_strerror(wsaerr), &addr, addrlen);
613 if(wsaerr == WSAECONNREFUSED && statuscmd) {
614 printf("unbound is stopped\n");
615 exit(3);
616 }
617 #endif
618 exit(1);
619 }
640 if(WSAGetLastError() != WSAEINPROGRESS &&
641 WSAGetLastError() != WSAEWOULDBLOCK) {
642 checkconnecterr(WSAGetLastError(), svr, &addr,
643 addrlen, statuscmd, useport);
644 }
645 #endif
646 }
647 while(1) {
648 fd_set rset, wset, eset;
649 struct timeval tv;
650 FD_ZERO(&rset);
651 FD_SET(FD_SET_T fd, &rset);
652 FD_ZERO(&wset);
653 FD_SET(FD_SET_T fd, &wset);
654 FD_ZERO(&eset);
655 FD_SET(FD_SET_T fd, &eset);
656 tv.tv_sec = UNBOUND_CONTROL_CONNECT_TIMEOUT/1000;
657 tv.tv_usec= (UNBOUND_CONTROL_CONNECT_TIMEOUT%1000)*1000;
658 if(select(fd+1, &rset, &wset, &eset, &tv) == -1) {
659 fatal_exit("select: %s", sock_strerror(errno));
660 }
661 if(!FD_ISSET(fd, &rset) && !FD_ISSET(fd, &wset) &&
662 !FD_ISSET(fd, &eset)) {
663 fatal_exit("timeout: could not connect to server");
664 } else {
665 /* check nonblocking connect error */
666 int error = 0;
667 socklen_t len = (socklen_t)sizeof(error);
668 if(getsockopt(fd, SOL_SOCKET, SO_ERROR, (void*)&error,
669 &len) < 0) {
670 #ifndef USE_WINSOCK
671 error = errno; /* on solaris errno is error */
672 #else
673 error = WSAGetLastError();
674 #endif
675 }
676 if(error != 0) {
677 #ifndef USE_WINSOCK
678 #ifdef EINPROGRESS
679 if(error == EINPROGRESS)
680 continue; /* try again later */
681 #endif
682 #ifdef EWOULDBLOCK
683 if(error == EWOULDBLOCK)
684 continue; /* try again later */
685 #endif
686 #else
687 if(error == WSAEINPROGRESS)
688 continue; /* try again later */
689 if(error == WSAEWOULDBLOCK)
690 continue; /* try again later */
691 #endif
692 checkconnecterr(error, svr, &addr, addrlen,
693 statuscmd, useport);
694 }
695 }
696 break;
697 }
698 fd_set_block(fd);
620699 return fd;
621700 }
622701
4545 #include "util/fptr_wlist.h"
4646 #include "util/log.h"
4747 #include "services/mesh.h"
48 #ifdef USE_DNSTAP
49 #include "dnstap/dtstream.h"
50 #endif
4851
4952 void worker_handle_control_cmd(struct tube* ATTR_UNUSED(tube),
5053 uint8_t* ATTR_UNUSED(buffer), size_t ATTR_UNUSED(len),
6363 #include "sldns/sbuffer.h"
6464 #include "sldns/wire2str.h"
6565 #include "sldns/str2wire.h"
66 #include "daemon/remote.h"
6667 #include <signal.h>
6768 struct worker;
6869 struct daemon_remote;
12271228 edns.bits = 0;
12281229 if(dnssec)
12291230 edns.bits = EDNS_DO;
1231 edns.padding_block_size = 0;
12301232 if((client_string_addr = edns_string_addr_lookup(
12311233 &env->edns_strings->client_strings,
12321234 addr, addrlen))) {
17641766 }
17651767
17661768 int comm_point_send_udp_msg(struct comm_point *c, sldns_buffer* packet,
1767 struct sockaddr* addr, socklen_t addrlen)
1769 struct sockaddr* addr, socklen_t addrlen, int ATTR_UNUSED(is_connected))
17681770 {
17691771 struct fake_commpoint* fc = (struct fake_commpoint*)c;
17701772 struct replay_runtime* runtime = fc->runtime;
4141 #ifdef HAVE_TIME_H
4242 # include <time.h>
4343 #endif
44 #include <ctype.h>
4445 #include "testcode/testpkts.h"
4546 #include "testcode/replay.h"
4647 #include "testcode/fake_event.h"
4748 #include "daemon/remote.h"
49 #include "libunbound/worker.h"
4850 #include "util/config_file.h"
4951 #include "sldns/keyraw.h"
50 #include <ctype.h>
52 #ifdef UB_ON_WINDOWS
53 #include "winrc/win_svc.h"
54 #endif
5155
5256 /** signal that this is a testbound compile */
5357 #define unbound_testbound 1
58 /** renamed main routine */
59 int daemon_main(int argc, char* argv[]);
5460 /**
5561 * include the main program from the unbound daemon.
5662 * rename main to daemon_main to call it
332338 }
333339
334340 /** remove config file at exit */
335 void remove_configfile(void)
341 static void remove_configfile(void)
336342 {
337343 struct config_strlist* p;
338344 for(p=cfgfiles; p; p=p->next)
550556 log_assert(0);
551557 }
552558
559 #ifdef UB_ON_WINDOWS
553560 void wsvc_command_option(const char* ATTR_UNUSED(wopt),
554561 const char* ATTR_UNUSED(cfgfile), int ATTR_UNUSED(v),
555562 int ATTR_UNUSED(c))
556563 {
557564 log_assert(0);
558565 }
559
566 #endif
567
568 #ifdef UB_ON_WINDOWS
560569 void wsvc_setup_worker(struct worker* ATTR_UNUSED(worker))
561570 {
562571 /* do nothing */
563572 }
564
573 #endif
574
575 #ifdef UB_ON_WINDOWS
565576 void wsvc_desetup_worker(struct worker* ATTR_UNUSED(worker))
566577 {
567578 /* do nothing */
568579 }
580 #endif
569581
570582 #ifdef UB_ON_WINDOWS
571583 void worker_win_stop_cb(int ATTR_UNUSED(fd), short ATTR_UNUSED(ev),
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 ; Options for signed zone. The zone is partially copied from val_negcache_nxdomain.rpl
4 trust-anchor: "testzone.nlnetlabs.nl. IN DS 2926 8 2 6f8512d1e82eecbd684fc4a76f39f8c5b411af385494873bdead663ddb78a88b"
5 val-override-date: "20180213111425"
6 qname-minimisation: "no"
7 trust-anchor-signaling: no
8 aggressive-nsec: yes
39
410 auth-zone:
511 name: "example.com."
4046 ns2 3600 IN AAAA ::2
4147 TEMPFILE_END
4248
49 auth-zone:
50 name: "soa.high.com."
51 for-downstream: yes
52 for-upstream: no
53 zonefile:
54 TEMPFILE_NAME soa.high.com
55 TEMPFILE_CONTENTS soa.high.com
56 $ORIGIN high.com.
57 soa 500 IN SOA dns.example.de. hostmaster.dns.example.de. (
58 1379078166 28800 7200 604800 200 )
59 3600 IN NS ns1.example.com.
60 3600 IN NS ns2.example.com.
61 TEMPFILE_END
62
63 auth-zone:
64 name: "soa.low.com."
65 for-downstream: yes
66 for-upstream: no
67 zonefile:
68 TEMPFILE_NAME soa.low.com
69 TEMPFILE_CONTENTS soa.low.com
70 $ORIGIN low.com.
71 soa 200 IN SOA dns.example.de. hostmaster.dns.example.de. (
72 1379078166 28800 7200 604800 500 )
73 3600 IN NS ns1.example.com.
74 3600 IN NS ns2.example.com.
75 TEMPFILE_END
76
77 auth-zone:
78 name: "testzone.nlnetlabs.nl."
79 for-downstream: yes
80 for-upstream: no
81 zonefile:
82 TEMPFILE_NAME testzone.nlnetlabs.nl
83 TEMPFILE_CONTENTS testzone.nlnetlabs.nl
84 $ORIGIN testzone.nlnetlabs.nl.
85 testzone.nlnetlabs.nl. 3600 IN NSEC alligator.testzone.nlnetlabs.nl. NS SOA RRSIG NSEC DNSKEY
86 testzone.nlnetlabs.nl. 3600 IN RRSIG NSEC 8 3 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. gTKn6U1nal9oA79IRxLa/7zexl6A0yJZzeEGBbZ5rh5feyAr2X4LTR9bPCgcHeMVggf4FP+kD1L/sxzj/YLwB1ZKGKlwnzsHtPFTlmvDClaqQ76DRZq5Vejr2ZfnclBUb2vtxaXywTRW8oueaaq9flcShEQ/cQ+KRU8sc344qd0=
87 alligator.testzone.nlnetlabs.nl. 3600 IN NSEC cheetah.testzone.nlnetlabs.nl. TXT RRSIG NSEC
88 alligator.testzone.nlnetlabs.nl. 3600 IN RRSIG NSEC 8 4 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. QAgQ0AsMoYG02+VPfoOctSPlTHdQOkQt5fFkSkzIbVhUzNOqa+dB/Qkc81AwFeJosA+PvYjt6utcVkIWmK2Djy9eXC49gILtVF79vUe4G7ZrybO5NXjqNa5ANoUGM+yew4wkjeNOMVAsvs+1kvFY7S8RAa/0AIYlZHQ8vNBPNaI=
89 testzone.nlnetlabs.nl. 4600 IN SOA ns.nlnetlabs.nl. ralph.nlnetlabs.nl. 1 14400 3600 604800 3600
90 testzone.nlnetlabs.nl. 4600 IN RRSIG SOA 8 3 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. GhmXNFQktZIgaBpGKwj9Q2mfq5+jcbRPK+PPgtRVicUPZga/d/iGEL8PV/8DzGwkaZbM14pamSUMgdJibW4zNhLz/ukjPilbjoj6giH1jtbdZLAQ6iK9pZ/4jKUEq4txviTczZNnDeolgPEEl4xo4NclQmi7zj1XBlQRbjvG0/0=
91 TEMPFILE_END
92
4393 stub-zone:
4494 name: "."
4595 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
4999
50100 ; K.ROOT-SERVERS.NET.
51101 RANGE_BEGIN 0 100
52 ADDRESS 193.0.14.129
102 ADDRESS 193.0.14.129
53103 ENTRY_BEGIN
54104 MATCH opcode qtype qname
55105 ADJUST copy_id
181231 www.example.com. IN A 1.2.3.4
182232 ENTRY_END
183233
234 ; check SOA TTL to be the minimum of the SOA.minimum and the SOA TTL
235 STEP 30 QUERY
236 ENTRY_BEGIN
237 REPLY RD
238 SECTION QUESTION
239 nonexistent.soa.high.com. IN A
240 ENTRY_END
241 STEP 31 CHECK_ANSWER
242 ENTRY_BEGIN
243 MATCH all ttl
244 REPLY QR RD RA AA NXDOMAIN
245 SECTION QUESTION
246 nonexistent.soa.high.com IN A
247 SECTION AUTHORITY
248 soa.high.com. 200 IN SOA dns.example.de. hostmaster.dns.example.de. 1379078166 28800 7200 604800 200
249 ENTRY_END
250 ; check that the original SOA is also returned
251 STEP 32 QUERY
252 ENTRY_BEGIN
253 REPLY RD
254 SECTION QUESTION
255 soa.high.com. IN SOA
256 ENTRY_END
257 STEP 33 CHECK_ANSWER
258 ENTRY_BEGIN
259 MATCH all ttl
260 REPLY QR RD RA AA NOERROR
261 SECTION QUESTION
262 soa.high.com. IN SOA
263 SECTION ANSWER
264 soa.high.com. 500 IN SOA dns.example.de. hostmaster.dns.example.de. 1379078166 28800 7200 604800 200
265 ENTRY_END
266
267 ; check SOA TTL to be the minimum of the SOA.minimum and the SOA TTL
268 STEP 40 QUERY
269 ENTRY_BEGIN
270 REPLY RD
271 SECTION QUESTION
272 nonexistent.soa.low.com. IN A
273 ENTRY_END
274 STEP 41 CHECK_ANSWER
275 ENTRY_BEGIN
276 MATCH all ttl
277 REPLY QR RD RA AA NXDOMAIN
278 SECTION QUESTION
279 nonexistent.soa.low.com. IN A
280 SECTION AUTHORITY
281 soa.low.com. 200 IN SOA dns.example.de. hostmaster.dns.example.de. 1379078166 28800 7200 604800 500
282 ENTRY_END
283 ; check that the original SOA is also returned
284 STEP 42 QUERY
285 ENTRY_BEGIN
286 REPLY RD
287 SECTION QUESTION
288 soa.low.com. IN SOA
289 ENTRY_END
290 STEP 43 CHECK_ANSWER
291 ENTRY_BEGIN
292 MATCH all ttl
293 REPLY QR RD RA AA NOERROR
294 SECTION QUESTION
295 soa.low.com. IN SOA
296 SECTION ANSWER
297 soa.low.com. 200 IN SOA dns.example.de. hostmaster.dns.example.de. 1379078166 28800 7200 604800 500
298 ENTRY_END
299
300 ; check SOA TTL to be minimum of the SOA.minimum and the SOA TTL for DNSSEC
301 STEP 50 QUERY
302 ENTRY_BEGIN
303 REPLY RD DO
304 SECTION QUESTION
305 ant.testzone.nlnetlabs.nl. IN A
306 ENTRY_END
307 STEP 51 CHECK_ANSWER
308 ENTRY_BEGIN
309 MATCH all ttl
310 REPLY QR RD DO RA AA NXDOMAIN
311 SECTION QUESTION
312 ant.testzone.nlnetlabs.nl. IN A
313 SECTION AUTHORITY
314 testzone.nlnetlabs.nl. 3600 IN SOA ns.nlnetlabs.nl. ralph.nlnetlabs.nl. 1 14400 3600 604800 3600
315 testzone.nlnetlabs.nl. 3600 IN RRSIG SOA 8 3 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. GhmXNFQktZIgaBpGKwj9Q2mfq5+jcbRPK+PPgtRVicUPZga/d/iGEL8PV/8DzGwkaZbM14pamSUMgdJibW4zNhLz/ukjPilbjoj6giH1jtbdZLAQ6iK9pZ/4jKUEq4txviTczZNnDeolgPEEl4xo4NclQmi7zj1XBlQRbjvG0/0=
316 alligator.testzone.nlnetlabs.nl. 3600 IN NSEC cheetah.testzone.nlnetlabs.nl. TXT RRSIG NSEC
317 alligator.testzone.nlnetlabs.nl. 3600 IN RRSIG NSEC 8 4 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. QAgQ0AsMoYG02+VPfoOctSPlTHdQOkQt5fFkSkzIbVhUzNOqa+dB/Qkc81AwFeJosA+PvYjt6utcVkIWmK2Djy9eXC49gILtVF79vUe4G7ZrybO5NXjqNa5ANoUGM+yew4wkjeNOMVAsvs+1kvFY7S8RAa/0AIYlZHQ8vNBPNaI=
318 testzone.nlnetlabs.nl. 3600 IN NSEC alligator.testzone.nlnetlabs.nl. NS SOA RRSIG NSEC DNSKEY
319 testzone.nlnetlabs.nl. 3600 IN RRSIG NSEC 8 3 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. gTKn6U1nal9oA79IRxLa/7zexl6A0yJZzeEGBbZ5rh5feyAr2X4LTR9bPCgcHeMVggf4FP+kD1L/sxzj/YLwB1ZKGKlwnzsHtPFTlmvDClaqQ76DRZq5Vejr2ZfnclBUb2vtxaXywTRW8oueaaq9flcShEQ/cQ+KRU8sc344qd0=
320 ENTRY_END
321 ; check that the original SOA is also returned
322 STEP 52 QUERY
323 ENTRY_BEGIN
324 REPLY RD DO
325 SECTION QUESTION
326 testzone.nlnetlabs.nl. IN SOA
327 ENTRY_END
328 STEP 53 CHECK_ANSWER
329 ENTRY_BEGIN
330 MATCH all ttl
331 REPLY QR RD DO RA AA NOERROR
332 SECTION QUESTION
333 testzone.nlnetlabs.nl. IN SOA
334 SECTION ANSWER
335 testzone.nlnetlabs.nl. 4600 IN SOA ns.nlnetlabs.nl. ralph.nlnetlabs.nl. 1 14400 3600 604800 3600
336 testzone.nlnetlabs.nl. 4600 IN RRSIG SOA 8 3 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. GhmXNFQktZIgaBpGKwj9Q2mfq5+jcbRPK+PPgtRVicUPZga/d/iGEL8PV/8DzGwkaZbM14pamSUMgdJibW4zNhLz/ukjPilbjoj6giH1jtbdZLAQ6iK9pZ/4jKUEq4txviTczZNnDeolgPEEl4xo4NclQmi7zj1XBlQRbjvG0/0=
337 ENTRY_END
338
184339 SCENARIO_END
1313 kill_pid $FWD_PID
1414 if fgrep "service stopped" unbound.log; then
1515 exit 0
16 fi
16 fi
17 if fgrep "disable interface-automatic" unbound.log; then
18 echo "skip test"
19 exit 0
20 fi
1721 kill_pid $UNBOUND_PID
3434 local-zone: "redirect.top." redirect
3535 local-data: "redirect.top. A 20.30.40.54"
3636
37 ; null zone
38 local-zone: "null.top." always_null
39
3740 ; create implicit data in the IN domain as well
3841 local-data: "a.a.implicit. A 20.30.41.50"
3942 local-data: "b.a.implicit. A 20.30.42.50"
8487 ENTRY_END
8588 STEP 6 CHECK_ANSWER
8689 ENTRY_BEGIN
87 MATCH all
90 MATCH all ttl
8891 REPLY QR RA AA
8992 SECTION QUESTION
9093 local. IN A
9194 SECTION AUTHORITY
92 local. 3600 IN SOA nobody nobody 1 2 3 4 5
95 local. 5 IN SOA nobody nobody 1 2 3 4 5
9396 ENTRY_END
9497
9598 ; positive SOA
100103 ENTRY_END
101104 STEP 8 CHECK_ANSWER
102105 ENTRY_BEGIN
103 MATCH all
106 MATCH all ttl
104107 REPLY QR RA AA
105108 SECTION QUESTION
106109 local. IN SOA
132135 ENTRY_END
133136 STEP 12 CHECK_ANSWER
134137 ENTRY_BEGIN
135 MATCH all
138 MATCH all ttl
136139 REPLY QR RA AA
137140 SECTION QUESTION
138141 serv.local. IN MX
139142 SECTION AUTHORITY
140 local. 3600 IN SOA nobody nobody 1 2 3 4 5
143 local. 5 IN SOA nobody nobody 1 2 3 4 5
141144 ENTRY_END
142145
143146 ; no such type, empty nonterminal
148151 ENTRY_END
149152 STEP 14 CHECK_ANSWER
150153 ENTRY_BEGIN
151 MATCH all
154 MATCH all ttl
152155 REPLY QR RA AA
153156 SECTION QUESTION
154157 bla.local. IN MX
155158 SECTION AUTHORITY
156 local. 3600 IN SOA nobody nobody 1 2 3 4 5
159 local. 5 IN SOA nobody nobody 1 2 3 4 5
157160 ENTRY_END
158161
159162 ; nxdomain with SOA
164167 ENTRY_END
165168 STEP 16 CHECK_ANSWER
166169 ENTRY_BEGIN
167 MATCH all
170 MATCH all ttl
168171 REPLY QR RA AA NXDOMAIN
169172 SECTION QUESTION
170173 doing.local. IN MX
171174 SECTION AUTHORITY
172 local. 3600 IN SOA nobody nobody 1 2 3 4 5
175 local. 5 IN SOA nobody nobody 1 2 3 4 5
173176 ENTRY_END
174177
175178 ; nxdomain without SOA
354357 www.redirect.top. IN A 20.30.40.54
355358 ENTRY_END
356359
360 ; always_null zone
361 STEP 60 QUERY
362 ENTRY_BEGIN
363 SECTION QUESTION
364 null.top. IN A
365 ENTRY_END
366 STEP 61 CHECK_ANSWER
367 ENTRY_BEGIN
368 MATCH all
369 REPLY QR RA AA NOERROR
370 SECTION QUESTION
371 null.top. IN A
372 SECTION ANSWER
373 null.top. IN A 0.0.0.0
374 ENTRY_END
375
376 ; always_null zone AAAA
377 STEP 62 QUERY
378 ENTRY_BEGIN
379 SECTION QUESTION
380 foo.null.top. IN AAAA
381 ENTRY_END
382 STEP 63 CHECK_ANSWER
383 ENTRY_BEGIN
384 MATCH all
385 REPLY QR RA AA NOERROR
386 SECTION QUESTION
387 foo.null.top. IN AAAA
388 SECTION ANSWER
389 foo.null.top. IN AAAA ::0
390 ENTRY_END
391
357392 SCENARIO_END
0 ; config options
1 server:
2 nsid: "ascii_hopsa kidee"
3
4 stub-zone:
5 name: "example."
6 stub-addr: 192.0.2.1
7 CONFIG_END
8
9 SCENARIO_BEGIN Test EDNS string tag option
10
11 RANGE_BEGIN 0 1000
12 ADDRESS 192.0.2.1
13 ENTRY_BEGIN
14 MATCH opcode qtype qname
15 ADJUST copy_id
16 REPLY QR NOERROR
17 SECTION QUESTION
18 example. IN A
19 SECTION ANSWER
20 example. IN A 198.51.100.1
21 SECTION ADDITIONAL
22 ENTRY_END
23 RANGE_END
24
25 STEP 10 QUERY
26 ENTRY_BEGIN
27 REPLY RD
28 SECTION QUESTION
29 example. IN A
30 SECTION ADDITIONAL
31 HEX_EDNSDATA_BEGIN
32 00 03 ; Opcode NSID (3)
33 00 00 ; Length 0
34 HEX_EDNSDATA_END
35 ENTRY_END
36
37 STEP 30 CHECK_ANSWER
38 ENTRY_BEGIN
39 MATCH all
40 REPLY QR RD RA NOERROR
41 SECTION QUESTION
42 example. IN A
43 SECTION ANSWER
44 example. IN A 198.51.100.1
45 SECTION ADDITIONAL
46 HEX_EDNSDATA_BEGIN
47 00 03 ; Opcode NSID (3)
48 00 0b ; Length 11
49 68 6F 70 73 61 20 ; "hopsa "
50 6B 69 64 65 65 ; "kidee"
51 HEX_EDNSDATA_END
52 ENTRY_END
53 SCENARIO_END
0 ; config options
1 server:
2 nsid: "0123456789abcdef"
3
4 stub-zone:
5 name: "example."
6 stub-addr: 192.0.2.1
7 CONFIG_END
8
9 SCENARIO_BEGIN Test EDNS string tag option
10
11 RANGE_BEGIN 0 1000
12 ADDRESS 192.0.2.1
13 ENTRY_BEGIN
14 MATCH opcode qtype qname
15 ADJUST copy_id
16 REPLY QR NOERROR
17 SECTION QUESTION
18 example. IN A
19 SECTION ANSWER
20 example. IN A 198.51.100.1
21 SECTION ADDITIONAL
22 ENTRY_END
23 RANGE_END
24
25 STEP 10 QUERY
26 ENTRY_BEGIN
27 REPLY RD
28 SECTION QUESTION
29 example. IN A
30 SECTION ADDITIONAL
31 HEX_EDNSDATA_BEGIN
32 00 03 ; Opcode NSID (3)
33 00 00 ; Length 0
34 HEX_EDNSDATA_END
35 ENTRY_END
36
37 STEP 30 CHECK_ANSWER
38 ENTRY_BEGIN
39 MATCH all
40 REPLY QR RD RA NOERROR
41 SECTION QUESTION
42 example. IN A
43 SECTION ANSWER
44 example. IN A 198.51.100.1
45 SECTION ADDITIONAL
46 HEX_EDNSDATA_BEGIN
47 00 03 ; Opcode NSID (3)
48 00 08 ; Length 8
49 01 23 45 67 ;
50 89 ab cd ef ;
51 HEX_EDNSDATA_END
52 ENTRY_END
53 SCENARIO_END
0 ; config options
1 stub-zone:
2 name: "example."
3 stub-addr: 192.0.2.1
4 CONFIG_END
5
6 SCENARIO_BEGIN Test EDNS string tag option
7
8 RANGE_BEGIN 0 1000
9 ADDRESS 192.0.2.1
10 ENTRY_BEGIN
11 MATCH opcode qtype qname
12 ADJUST copy_id
13 REPLY QR NOERROR
14 SECTION QUESTION
15 example. IN A
16 SECTION ANSWER
17 example. IN A 198.51.100.1
18 SECTION ADDITIONAL
19 ENTRY_END
20 RANGE_END
21
22 STEP 10 QUERY
23 ENTRY_BEGIN
24 REPLY RD
25 SECTION QUESTION
26 example. IN A
27 SECTION ADDITIONAL
28 HEX_EDNSDATA_BEGIN
29 00 03 ; Opcode NSID (3)
30 00 00 ; Length 0
31 HEX_EDNSDATA_END
32 ENTRY_END
33
34 STEP 30 CHECK_ANSWER
35 ENTRY_BEGIN
36 MATCH all
37 REPLY QR RD RA NOERROR
38 SECTION QUESTION
39 example. IN A
40 SECTION ANSWER
41 example. IN A 198.51.100.1
42 SECTION ADDITIONAL
43 HEX_EDNSDATA_BEGIN
44 HEX_EDNSDATA_END
45 ENTRY_END
46 SCENARIO_END
0 server:
1 interface: 127.0.0.1
2 port: @PORT@
3 use-syslog: no
4 directory: .
5 pidfile: "unbound.pid"
6 chroot: ""
7 username: ""
8 do-not-query-localhost: no
9
10 tls-cert-bundle: "unbound_server.pem"
11 tls-upstream: yes
12
13 remote-control:
14 control-enable: yes
15 control-interface: 127.0.0.1
16 control-port: @CONTROL_PORT@
17 server-key-file: "unbound_server.key"
18 server-cert-file: "unbound_server.pem"
19 control-key-file: "unbound_control.key"
20 control-cert-file: "unbound_control.pem"
21
22 forward-zone:
23 name: "."
24 forward-addr: "127.0.0.1@@TOPORT@#unbound"
25
26
0 # this is the upstream server that has pipelining and responds to queries.
1 server:
2 verbosity: 1
3 # num-threads: 1
4 interface: 127.0.0.1@@PORT@
5 port: @PORT@
6 use-syslog: no
7 directory: .
8 pidfile: "unbound2.pid"
9 chroot: ""
10 username: ""
11 do-not-query-localhost: no
12 tls-port: @PORT@
13 tls-service-key: "unbound_server.key"
14 tls-service-pem: "unbound_server.pem"
15 tcp-idle-timeout: 10000
16 log-queries: yes
17 log-replies: yes
18 log-identity: "upstream"
19
20 remote-control:
21 control-enable: yes
22 control-interface: 127.0.0.1
23 # control-interface: ::1
24 control-port: @CONTROL_PORT2@
25 server-key-file: "unbound_server.key"
26 server-cert-file: "unbound_server.pem"
27 control-key-file: "unbound_control.key"
28 control-cert-file: "unbound_control.pem"
29
30 forward-zone:
31 name: "."
32 forward-addr: "127.0.0.1@@TOPORT@"
33
34 dnstap:
35 dnstap-enable: yes
36 dnstap-socket-path: "dnstap.socket"
37 dnstap-send-identity: yes
38 dnstap-send-version: yes
39 #dnstap-identity
40 #dnstap-version
41 dnstap-log-resolver-query-messages: no
42 dnstap-log-resolver-response-messages: no
43 dnstap-log-client-query-messages: yes
44 dnstap-log-client-response-messages: yes
45 dnstap-log-forwarder-query-messages: no
46 dnstap-log-forwarder-response-messages: no
0 BaseName: padding
1 Version: 1.0
2 Description: Test EDNS0 padding option (RFC7830 and RFC8467).
3 CreationDate: Sun Jan 24 16:41:42 CET 2021
4 Maintainer: Willem Toorop
5 Category:
6 Component:
7 CmdDepends:
8 Depends:
9 Help:
10 Pre: padding.pre
11 Post: padding.post
12 Test: padding.test
13 AuxFiles:
14 Passed:
15 Failure:
0 ;; MSG SIZE rcvd: 128
1 ;; MSG SIZE rcvd: 468
2 ;; MSG SIZE rcvd: 128
3 ;; MSG SIZE rcvd: 936
4 ;; MSG SIZE rcvd: 128
5 ;; MSG SIZE rcvd: 60
6 ;; MSG SIZE rcvd: 128
7 ;; MSG SIZE rcvd: 502
8 ;; MSG SIZE rcvd: 44
9 ;; MSG SIZE rcvd: 60
10 ;; MSG SIZE rcvd: 44
11 ;; MSG SIZE rcvd: 502
12 ;; MSG SIZE rcvd: 48
13 ;; MSG SIZE rcvd: 64
14 ;; MSG SIZE rcvd: 48
15 ;; MSG SIZE rcvd: 512
16 ;; MSG SIZE rcvd: 48
17 ;; MSG SIZE rcvd: 512
18 ;; MSG SIZE rcvd: 48
19 ;; MSG SIZE rcvd: 512
0 # #-- padding.post --#
1 # source the master var file when it's there
2 [ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
3 # source the test var file when it's there
4 [ -f .tpkg.var.test ] && source .tpkg.var.test
5 #
6 # do your teardown here
7 . ../common.sh
8 PRE="../.."
9 if grep "define USE_DNSTAP 1" $PRE/config.h; then echo test enabled; else echo test skipped; exit 0; fi
10 kill_pid $DNSTAP_SOCKET_PID
11 kill_pid $FWD_PID
12 kill_pid `cat unbound2.pid`
13 if test -f unbound2.log; then
14 echo ">>> upstream log"
15 cat unbound2.log
16 fi
17 #kill_pid $UNBOUND_PID
18 kill_pid `cat unbound.pid`
19 if test -f unbound.log; then
20 echo ">>> unbound log"
21 cat unbound.log
22 fi
0 # #-- padding.pre--#
1 # source the master var file when it's there
2 [ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
3 # use .tpkg.var.test for in test variable passing
4 [ -f .tpkg.var.test ] && source .tpkg.var.test
5
6 PRE="../.."
7 . ../common.sh
8 if grep "define USE_DNSTAP 1" $PRE/config.h; then echo test enabled; else echo test skipped; exit 0; fi
9
10 get_random_port 5
11 UNBOUND_PORT=$RND_PORT
12 UPSTREAM_PORT=$(($RND_PORT + 1))
13 FWD_PORT=$(($RND_PORT + 2))
14 CONTROL_PORT=$(($RND_PORT + 3))
15 CONTROL_PORT2=$(($RND_PORT + 4))
16 echo "UNBOUND_PORT=$UNBOUND_PORT" >> .tpkg.var.test
17 echo "UPSTREAM_PORT=$UPSTREAM_PORT" >> .tpkg.var.test
18 echo "FWD_PORT=$FWD_PORT" >> .tpkg.var.test
19 echo "CONTROL_PORT=$CONTROL_PORT" >> .tpkg.var.test
20 echo "CONTROL_PORT2=$CONTROL_PORT2" >> .tpkg.var.test
21
22 # start ldns-testnd
23 get_ldns_testns
24 $LDNS_TESTNS -p $FWD_PORT padding.testns >fwd.log 2>&1 &
25 FWD_PID=$!
26 echo "FWD_PID=$FWD_PID" >> .tpkg.var.test
27
28 # start the dnstap log server
29 # the -vvvv flag prints protocol and connection information from the
30 # unbound-dnstap-socket server.
31 # the -l flag prints the DNS info in the DNSTAP packet in multiline output.
32 # stderr is the '-vvvv' server logs and errors.
33 # stdout is the one-line packet logs (or with -l, multiline).
34 $PRE/unbound-dnstap-socket -u dnstap.socket -l -vvvv 2>tap.errlog >tap.log &
35 if test $? -ne 0; then
36 echo "could not start unbound-dnstap-socket server"
37 exit 1
38 fi
39 DNSTAP_SOCKET_PID=$!
40 echo "DNSTAP_SOCKET_PID=$DNSTAP_SOCKET_PID" >> .tpkg.var.test
41 # wait for the server to go up and make the dnstap.socket file
42 wait_server_up "tap.errlog" "creating unix socket"
43 if test ! -S dnstap.socket; then
44 echo "the dnstap.socket file does not exist!"
45 fi
46
47 # make config file
48 sed -e 's/@PORT\@/'$UNBOUND_PORT'/' -e 's/@TOPORT\@/'$UPSTREAM_PORT'/' -e 's/@CONTROL_PORT\@/'$CONTROL_PORT'/' < padding.conf > ub.conf
49 # start unbound in the background
50 $PRE/unbound -d -c ub.conf >unbound.log 2>&1 &
51 #$PRE/unbound -d -c ub.conf 2>&1 | tee unbound.log &
52 UNBOUND_PID=$!
53 echo "UNBOUND_PID=$UNBOUND_PID" >> .tpkg.var.test
54
55 # make upstream config file
56 sed -e 's/@PORT\@/'$UPSTREAM_PORT'/' -e 's/@TOPORT\@/'$FWD_PORT'/' -e 's/@CONTROL_PORT2\@/'$CONTROL_PORT2'/' < padding.conf2 > ub2.conf
57 # start upstream unbound in the background
58 $PRE/unbound -d -c ub2.conf >unbound2.log 2>&1 &
59 #$PRE/unbound -d -c ub2.conf 2>&1 | tee unbound2.log &
60 UPSTREAM_PID=$!
61 echo "UPSTREAM_PID=$UPSTREAM_PID" >> .tpkg.var.test
62
63 wait_ldns_testns_up fwd.log
64 wait_unbound_up unbound.log
65 wait_unbound_up unbound2.log
66
67 cat .tpkg.var.test
68
0 echo There we go...
1
2 # #-- padding.test --#
3 # source the master var file when it's there
4 [ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
5 # use .tpkg.var.test for in test variable passing
6 [ -f .tpkg.var.test ] && source .tpkg.var.test
7
8 PRE="../.."
9 . ../common.sh
10 if grep "define USE_DNSTAP 1" $PRE/config.h; then echo test enabled; else echo test skipped; exit 0; fi
11
12 echo "> query www.example.com. A"
13 dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
14 echo "> check answer"
15 if grep "10.20.30.40" outfile; then
16 echo "OK"
17 else
18 echo "> cat logfiles"
19 cat tap.log
20 cat tap.errlog
21 cat fwd.log
22 cat unbound2.log
23 cat unbound.log
24 echo "Not OK"
25 exit 1
26 fi
27
28 echo "> wait for log to happen on timer"
29 sleep 3
30 echo "> check tap.log for dnstap info"
31 # see if it logged the information in tap.log
32 # wait for a moment for filesystem to catch up.
33 if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi
34 if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi
35 if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi
36 if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi
37 if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi
38 if grep "www.example.com" tap.log >/dev/null; then :; else sleep 10; fi
39 if grep "www.example.com" tap.log; then echo "yes it is in tap.log";
40 else
41 echo "information not in tap.log"
42 echo "failed"
43 echo "> cat logfiles"
44 cat tap.log
45 cat tap.errlog
46 cat fwd.log
47 cat unbound.log
48 echo "Not OK"
49 exit 1
50 fi
51
52 echo "> query txt.example.com. TXT"
53 dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile
54 echo "> check answer"
55 if grep "Lorem ipsum" outfile; then
56 echo "OK"
57 else
58 echo "> cat logfiles"
59 cat tap.log
60 cat tap.errlog
61 cat fwd.log
62 cat unbound2.log
63 cat unbound.log
64 echo "Not OK"
65 exit 1
66 fi
67 echo "> check tap.log for dnstap info"
68 # see if it logged the information in tap.log
69 # wait for a moment for filesystem to catch up.
70 if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi
71 if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi
72 if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi
73 if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi
74 if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi
75 if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 10; fi
76 if grep "txt.example.com" tap.log; then echo "yes it is in tap.log";
77 else
78 echo "information not in tap.log"
79 echo "failed"
80 echo "> cat logfiles"
81 cat tap.log
82 cat tap.errlog
83 cat fwd.log
84 cat unbound.log
85 echo "Not OK"
86 exit 1
87 fi
88
89 echo "> flush cache entries."
90 $PRE/unbound-control -c ub.conf flush_type www.example.com A
91 $PRE/unbound-control -c ub.conf flush_type txt.example.com TXT
92 echo "> disable padding of responses."
93 $PRE/unbound-control -c ub2.conf set_option pad-responses: no
94 echo "> query www.example.com. A"
95 dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile
96 echo "> query txt.example.com. TXT"
97 dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile
98 echo "> flush cache entries."
99 $PRE/unbound-control -c ub.conf flush_type www.example.com A
100 $PRE/unbound-control -c ub.conf flush_type txt.example.com TXT
101 echo "> enable padding of responses."
102 $PRE/unbound-control -c ub2.conf set_option pad-responses: yes
103 echo "> set pad responses block size to 64"
104 $PRE/unbound-control -c ub2.conf set_option pad-responses-block-size: 64
105 echo "> disable padding of queries."
106 $PRE/unbound-control -c ub.conf set_option pad-queries: no
107 echo "> query www.example.com. A"
108 dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile
109 echo "> query txt.example.com. TXT"
110 dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile
111 echo "> flush cache entries."
112 $PRE/unbound-control -c ub.conf flush_type www.example.com A
113 $PRE/unbound-control -c ub.conf flush_type txt.example.com TXT
114 echo "> enable padding of queries."
115 $PRE/unbound-control -c ub.conf set_option pad-queries: yes
116 echo "> set pad queries block size to 48"
117 $PRE/unbound-control -c ub.conf set_option pad-queries-block-size: 48
118 echo "> query www.example.com. A"
119 dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile
120 echo "> query txt.example.com. TXT"
121 dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile
122 echo "> flush cache entries."
123 $PRE/unbound-control -c ub.conf flush_type www.example.com A
124 $PRE/unbound-control -c ub.conf flush_type txt.example.com TXT
125 echo "> set pad responses block size to 512"
126 $PRE/unbound-control -c ub2.conf set_option pad-responses-block-size: 512
127 echo "> query www.example.com. A"
128 dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile
129 echo "> query fin.example.com. TXT"
130 dig @127.0.0.1 -p $UNBOUND_PORT fin.example.com. TXT | tee outfile
131 echo "> check tap.log for dnstap info"
132 # see if it logged the information in tap.log
133 # wait for a moment for filesystem to catch up.
134 if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi
135 if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi
136 if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi
137 if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi
138 if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi
139 if grep "fini" tap.log >/dev/null; then :; else sleep 10; fi
140 if grep "fini" tap.log; then echo "yes it is in tap.log";
141 else
142 echo "information not in tap.log"
143 echo "failed"
144 echo "> cat logfiles"
145 cat tap.log
146 cat tap.errlog
147 cat fwd.log
148 cat unbound.log
149 echo "Not OK"
150 exit 1
151 fi
152
153 grep '^;; MSG SIZE rcvd: ' tap.log > message.sizes
154
155 if diff message.sizes padding.msgsizes
156 then
157 echo "OK - Message sizes matched expected sizes"
158 exit 0
159 else
160 echo "unexpected message sizes"
161 echo "failed"
162 echo "> cat logfiles"
163 cat tap.log
164 cat tap.errlog
165 cat fwd.log
166 cat unbound.log
167 echo "Not OK"
168 exit 1
169 fi
0 ; nameserver test file
1 $ORIGIN example.com.
2 $TTL 3600
3
4 ENTRY_BEGIN
5 MATCH opcode qtype qname
6 REPLY QR AA NOERROR
7 ADJUST copy_id
8 SECTION QUESTION
9 www IN A
10 SECTION ANSWER
11 www IN A 10.20.30.40
12 ENTRY_END
13
14 ENTRY_BEGIN
15 MATCH opcode qtype qname
16 REPLY QR AA NOERROR
17 ADJUST copy_id
18 SECTION QUESTION
19 txt IN TXT
20 SECTION ANSWER
21 txt IN TXT "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
22 ENTRY_END
23
24 ENTRY_BEGIN
25 MATCH opcode qtype qname
26 REPLY QR AA NOERROR
27 ADJUST copy_id
28 SECTION QUESTION
29 fin IN TXT
30 SECTION ANSWER
31 fin IN TXT "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." "fini"
32 ENTRY_END
33
0 -----BEGIN RSA PRIVATE KEY-----
1 MIIG4gIBAAKCAYEAstEp+Pyh8XGrtZ77A4FhYjvbeB3dMa7Q2rGWxobzlA9przhA
2 1aChAvUtCOAuM+rB6NTNB8YWfZJbQHawyMNpmC77cg6vXLYCGUQHZyAqidN049RJ
3 F5T7j4N8Vniv17LiRdr0S6swy4PRvEnIPPV43EQHZqC5jVvHsKkhIfmBF/Dj5TXR
4 ypeawWV/m5jeU6/4HRYMfytBZdO1mPXuWLh0lgbQ4SCbgrOUVD3rniMk1yZIbQOm
5 vlDHYqekjDb/vOW2KxUQLG04aZMJ1mWfdbwG0CKQkSjISEDZ1l76vhM6mTM0fwXb
6 IvyFZ9yPPCle1mF5aSlxS2cmGuGVSRQaw8XF9fe3a9ACJJTr33HdSpyaZkKRAUzL
7 cKqLCl323daKv3NwwAT03Tj4iQM416ASMoiyfFa/2GWTKQVjddu8Crar7tGaf5xr
8 lig4DBmrBvdYA3njy72/RD71hLwmlRoCGU7dRuDr9O6KASUm1Ri91ONZ/qdjMvov
9 15l2vj4GV+KXR00dAgMBAAECggGAHepIL1N0dEQkCdpy+/8lH54L9WhpnOo2HqAf
10 LU9eaKK7d4jdr9+TkD8cLaPzltPrZNxVALvu/0sA4SP6J1wpyj/x6P7z73qzly5+
11 Xo5PD4fEwmi9YaiW/UduAblnEZrnp/AddptJKoL/D5T4XtpiQddPtael4zQ7kB57
12 YIexRSQTvEDovA/o3/nvA0TrzOxfgd4ycQP3iOWGN/TMzyLsvjydrUwbOB567iz9
13 whL3Etdgvnwh5Sz2blbFfH+nAR8ctvFFz+osPvuIVR21VMEI6wm7kTpSNnQ6sh/c
14 lrLb/bTADn4g7z/LpIZJ+MrLvyEcoqValrLYeFBhM9CV8woPxvkO2P3pU47HVGax
15 tC7GV6a/kt5RoKFd/TNdiA3OC7NGZtaeXv9VkPf4fVwBtSO9d5ZZXTGEynDD/rUQ
16 U4KFJe6OD23APjse08HiiKqTPhsOneOONU67iqoaTdIkT2R4EdlkVEDpXVtWb+G9
17 Q+IqYzVljlzuyHrhWXLJw/FMa2aBAoHBAOnZbi4gGpH+P6886WDWVgIlTccuXoyc
18 Mg9QQYk9UDeXxL0AizR5bZy49Sduegz9vkHpAiZARQsUnizHjZ8YlRcrmn4t6tx3
19 ahTIKAjdprnxJfYINM580j8CGbXvX5LhIlm3O267D0Op+co3+7Ujy+cjsIuFQrP+
20 1MqMgXSeBjzC1APivmps7HeFE+4w0k2PfN5wSMDNCzLo99PZuUG5XZ93OVOS5dpN
21 b+WskdcD8NOoJy/X/5A08veEI/jYO/DyqQKBwQDDwUQCOWf41ecvJLtBHKmEnHDz
22 ftzHino9DRKG8a9XaN4rmetnoWEaM2vHGX3pf3mwH+dAe8vJdAQueDhBKYeEpm6C
23 TYNOpou1+Zs5s99BilCTNYo8fkMOAyqwRwmz9zgHS6QxXuPwsghKefLJGt6o6RFF
24 tfWVTfLlYJ+I3GQe3ySsk3wjVz4oUTKiyiq5+KzD+HhEkS7u+RQ7Z0ZI2xd2cF8Y
25 aN2hjKDpcOiFf3CDoqka5D1qMNLgIHO52AHww1UCgcA1h7o7AMpURRka6hyaODY0
26 A4oMYEbwdQjYjIyT998W+rzkbu1us6UtzQEBZ760npkgyU/epbOoV63lnkCC/MOU
27 LD0PST+L/CHiY/cWIHb79YG1EifUZKpUFg0Aoq0EGFkepF0MefGCkbRGYA5UZr9U
28 R80wAu9D+L+JJiS0J0BSRF74DL196zUuHt5zFeXuLzxsRtPAnq9DliS08BACRYZy
29 7H3I7cWD9Vn5/0jbKWHFcaaWwyETR6uekTcSzZzbCRECgcBeoE3/xUA9SSk34Mmj
30 7/cB4522Ft0imA3+9RK/qJTZ7Bd5fC4PKjOGNtUiqW/0L2rjeIiQ40bfWvWqgPKw
31 jSK1PL6uvkl6+4cNsFsYyZpiVDoe7wKju2UuoNlB3RUTqa2r2STFuNj2wRjA57I1
32 BIgdnox65jqQsd14g/yaa+75/WP9CE45xzKEyrtvdcqxm0Pod3OrsYK+gikFjiar
33 kT0GQ8u0QPzh2tjt/2ZnIfOBrl+QYERP0MofDZDjhUdq2wECgcB0Lu841+yP5cdR
34 qbJhXO4zJNh7oWNcJlOuQp3ZMNFrA1oHpe9pmLukiROOy01k9WxIMQDzU5GSqRv3
35 VLkYOIcbhJ3kClKAcM3j95SkKbU2H5/RENb3Ck52xtl4pNU1x/3PnVFZfDVuuHO9
36 MZ9YBcIeK98MyP2jr5JtFKnOyPE7xKq0IHIhXadpbc2wjje5FtZ1cUtMyEECCXNa
37 C1TpXebHGyXGpY9WdWXhjdE/1jPvfS+uO5WyuDpYPr339gsdq1g=
38 -----END RSA PRIVATE KEY-----
0 -----BEGIN CERTIFICATE-----
1 MIIDszCCAhsCFGD5193whHQ2bVdzbaQfdf1gc4SkMA0GCSqGSIb3DQEBCwUAMBIx
2 EDAOBgNVBAMMB3VuYm91bmQwHhcNMjAwNzA4MTMzMjMwWhcNNDAwMzI1MTMzMjMw
3 WjAaMRgwFgYDVQQDDA91bmJvdW5kLWNvbnRyb2wwggGiMA0GCSqGSIb3DQEBAQUA
4 A4IBjwAwggGKAoIBgQCy0Sn4/KHxcau1nvsDgWFiO9t4Hd0xrtDasZbGhvOUD2mv
5 OEDVoKEC9S0I4C4z6sHo1M0HxhZ9kltAdrDIw2mYLvtyDq9ctgIZRAdnICqJ03Tj
6 1EkXlPuPg3xWeK/XsuJF2vRLqzDLg9G8Scg89XjcRAdmoLmNW8ewqSEh+YEX8OPl
7 NdHKl5rBZX+bmN5Tr/gdFgx/K0Fl07WY9e5YuHSWBtDhIJuCs5RUPeueIyTXJkht
8 A6a+UMdip6SMNv+85bYrFRAsbThpkwnWZZ91vAbQIpCRKMhIQNnWXvq+EzqZMzR/
9 Bdsi/IVn3I88KV7WYXlpKXFLZyYa4ZVJFBrDxcX197dr0AIklOvfcd1KnJpmQpEB
10 TMtwqosKXfbd1oq/c3DABPTdOPiJAzjXoBIyiLJ8Vr/YZZMpBWN127wKtqvu0Zp/
11 nGuWKDgMGasG91gDeePLvb9EPvWEvCaVGgIZTt1G4Ov07ooBJSbVGL3U41n+p2My
12 +i/XmXa+PgZX4pdHTR0CAwEAATANBgkqhkiG9w0BAQsFAAOCAYEAd++Wen6l8Ifj
13 4h3p/y16PhSsWJWuJ4wdNYy3/GM84S26wGjzlEEwiW76HpH6VJzPOiBAeWnFKE83
14 hFyetEIxgJeIPbcs9ZP/Uoh8GZH9tRISBSN9Hgk2Slr9llo4t1H0g/XTgA5HqMQU
15 9YydlBh43G7Vw3FVwh09OM6poNOGQKNc/tq2/QdKeUMtyBbLWpRmjH5XcCT35fbn
16 ZiVOUldqSHD4kKrFO4nJYXZyipRbcXybsLiX9GP0GLemc3IgIvOXyJ2RPp06o/SJ
17 pzlMlkcAfLJaSuEW57xRakhuNK7m051TKKzJzIEX+NFYOVdafFHS8VwGrYsdrFvD
18 72tMfu+Fu55y3awdWWGc6YlaGogZiuMnJkvQphwgn+5qE/7CGEckoKEsH601rqIZ
19 muaIc85+nEcHJeijd/ZlBN9zeltjFoMuqTUENgmv8+tUAdVm/UMY9Vjme6b43ydP
20 uv6DS02+k9z8toxXworLiPr94BGaiGV1NxgwZKLZigYJt/Fi2Qte
21 -----END CERTIFICATE-----
0 -----BEGIN RSA PRIVATE KEY-----
1 MIIG5AIBAAKCAYEAvjSVSN2QMXudpzukdLCqgg/IOhCX8KYkD0FFFfWcQjgKq5wI
2 0x41iG32a6wbGanre4IX7VxaSPu9kkHfnGgynCk5nwDRedE/FLFhAU78PoT0+Nqq
3 GRS7XVQ24vLmIz9Hqc2Ozx1um1BXBTmIT0UfN2e22I0LWQ6a3seZlEDRj45gnk7Z
4 uh9MDgotaBdm+v1JAbupSf6Zis4VEH3JNdvVGE3O1DHEIeuuz/3BDhpf6WBDH+8K
5 WaBe1ca4TZHr9ThL2gEMEfAQl0wXDwRWRoi3NjNMH+mw0L1rjwThI5GXqNIee7o5
6 FzUReSXZuTdFMyGe3Owcx+XoYnwi6cplSNoGsDBu4B9bKKglR9YleJVw4L4Xi8xP
7 q6O9UPj4+nypHk/DOoC7DIM3ufN0yxPBsFo5TVowxfhdjZXJbbftd2TZv7AH8+XL
8 A5UoZgRzXgzECelXSCTBFlMTnT48LfA9pMLydyjAz2UdPHs5Iv+TK5nnI+aJoeaP
9 7kFZSngxdy1+A/bNAgMBAAECggGBALpTOIqQwVg4CFBylL/a8K1IWJTI/I65sklf
10 XxYL7G7SB2HlEJ//z+E+F0+S4Vlao1vyLQ5QkgE82pAUB8FoMWvY1qF0Y8A5wtm6
11 iZSGk4OLK488ZbT8Ii9i+AGKgPe2XbVxsJwj8N4k7Zooqec9hz73Up8ATEWJkRz7
12 2u7oMGG4z91E0PULA64dOi3l/vOQe5w/Aa+CwVbAWtI05o7kMvQEBMDJn6C7CByo
13 MB5op9wueJMnz7PM7hns+U7Dy6oE4ljuolJUy51bDzFWwoM54cRoQqLFNHd8JVQj
14 WxldCkbfF43iyprlsEcUrTyUjtdA+ZeiG39vg/mtdmgNpGmdupHJZQvSuG8IcVlz
15 O+eMSeQS1QXPD6Ik8UK4SU0h+zOl8xIWtRrsxQuh4fnTN40udm/YUWl/6gOebsBI
16 IrVLlKGqJSfB3tMjpCRqdTzJ0dA9keVpkqm2ugZkxEf1+/efq/rFIQ2pUBLCqNTN
17 qpNqruK8y8FphP30I2uI4Ej2UIB8AQKBwQDd2Yptj2FyDyaXCycsyde0wYkNyzGU
18 dRnzdibfHnMZwjgTjwAwgIUBVIS8H0/z7ZJQKN7osJfddMrtjJtYYUk9g/dCpHXs
19 bNh2QSoWah3FdzNGuWd0iRf9+LFxhjAAMo/FS8zFJAJKrFsBdCGTfFUMdsLC0bjr
20 YjiWBuvV72uKf8XIZX5KIZruKdWBBcWukcb21R1UDyFYyXRBsly5XHaIYKZql3km
21 7pV7MKWO0IYgHbHIqGUqPQlzZ/lkunS1jKECgcEA23wHffD6Ou9/x3okPx2AWpTr
22 gh8rgqbyo6hQkBW5Y90Wz824cqaYebZDaBR/xlVx/YwjKkohv8Bde2lpH/ZxRZ1Z
23 5Sk2s6GJ/vU0L9RsJZgCgj4L6Coal1NMxuZtCXAlnOpiCdxSZgfqbshbTVz30KsG
24 ZJG361Cua1ScdAHxlZBxT52/1Sm0zRC2hnxL7h4qo7Idmtzs40LAJvYOKekR0pPN
25 oWeJfra7vgx/jVNvMFWoOoSLpidVO4g+ot4ery6tAoHAdW3rCic1C2zdnmH28Iw+
26 s50l8Lk3mz+I5wgJd1zkzCO0DxZIoWPGA3g7cmCYr6N3KRsZMs4W9NAXgjpFGDkW
27 zYsG3K21BdpvkdjYcFjnPVjlOXB2RIc0vehf9Jl02wXoeCSxVUDEPcaRvWk9RJYx
28 ZpGOchUU7vNkxHURbIJ4yCzuAi9G8/Jp0dsu+kaV5tufF5SjG5WOrzKjaQsCbdN1
29 oqaWMCHRrTvov/Z2C+xwsptFOdN5CSyZzg6hQiI4GMlBAoHAXyb6KINcOEi0YMp3
30 BFXJ23tMTnEs78tozcKeipigcsbaqORK3omS+NEnj+uzKUzJyl4CsMbKstK2tFYS
31 mSTCHqgE3PBtIpsZtEqhgUraR8IK9GPpzZDTTl9ynZgwFTNlWw3RyuyVXF56J+T8
32 kCGJ3hEHCHqT/ZRQyX85BKIDFhA0z4tYKxWVqIFiYBNq56R0X9tMMmMs36mEnF93
33 7Ht6mowxTZQRa7nU0qOgeKh/P7ki4Zus3y+WJ+T9IqahLtlRAoHBAIhqMrcxSAB8
34 RpB9jukJlAnidw2jCMPgrFE8tP0khhVvGrXMldxAUsMKntDIo8dGCnG1KTcWDI0O
35 jepvSPHSsxVLFugL79h0eVIS5z4huW48i9xgU8VlHdgAcgEPIAOFcOw2BCu/s0Vp
36 O+MM/EyUOdo3NsibB3qc/GJI6iNBYS7AljYEVo6rXo5V/MZvZUF4vClen6Obzsre
37 MTTb+4sJjfqleWuvr1XNMeu2mBfXBQkWGZP1byBK0MvD/aQ2PWq92A==
38 -----END RSA PRIVATE KEY-----
0 -----BEGIN CERTIFICATE-----
1 MIIDqzCCAhMCFBHWXeQ6ZIa9QcQbXLFfC6tj+KA+MA0GCSqGSIb3DQEBCwUAMBIx
2 EDAOBgNVBAMMB3VuYm91bmQwHhcNMjAwNzA4MTMzMjI5WhcNNDAwMzI1MTMzMjI5
3 WjASMRAwDgYDVQQDDAd1bmJvdW5kMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB
4 igKCAYEAvjSVSN2QMXudpzukdLCqgg/IOhCX8KYkD0FFFfWcQjgKq5wI0x41iG32
5 a6wbGanre4IX7VxaSPu9kkHfnGgynCk5nwDRedE/FLFhAU78PoT0+NqqGRS7XVQ2
6 4vLmIz9Hqc2Ozx1um1BXBTmIT0UfN2e22I0LWQ6a3seZlEDRj45gnk7Zuh9MDgot
7 aBdm+v1JAbupSf6Zis4VEH3JNdvVGE3O1DHEIeuuz/3BDhpf6WBDH+8KWaBe1ca4
8 TZHr9ThL2gEMEfAQl0wXDwRWRoi3NjNMH+mw0L1rjwThI5GXqNIee7o5FzUReSXZ
9 uTdFMyGe3Owcx+XoYnwi6cplSNoGsDBu4B9bKKglR9YleJVw4L4Xi8xPq6O9UPj4
10 +nypHk/DOoC7DIM3ufN0yxPBsFo5TVowxfhdjZXJbbftd2TZv7AH8+XLA5UoZgRz
11 XgzECelXSCTBFlMTnT48LfA9pMLydyjAz2UdPHs5Iv+TK5nnI+aJoeaP7kFZSngx
12 dy1+A/bNAgMBAAEwDQYJKoZIhvcNAQELBQADggGBABunf93MKaCUHiZgnoOTinsW
13 84/EgInrgtKzAyH+BhnKkJOhhR0kkIAx5d9BpDlaSiRTACFon9moWCgDIIsK/Ar7
14 JE0Kln9cV//wiiNoFU0O4mnzyGUIMvlaEX6QHMJJQYvL05+w/3AAcf5XmMJtR5ca
15 fJ8FqvGC34b2WxX9lTQoyT52sRt+1KnQikiMEnEyAdKktMG+MwKsFDdOwDXyZhZg
16 XZhRrfX3/NVJolqB6EahjWIGXDeKuSSKZVtCyib6LskyeMzN5lcRfvubKDdlqFVF
17 qlD7rHBsKhQUWK/IO64mGf7y/de+CgHtED5vDvr/p2uj/9sABATfbrOQR3W/Of25
18 sLBj4OEfrJ7lX8hQgFaxkMI3x6VFT3W8dTCp7xnQgb6bgROWB5fNEZ9jk/gjSRmD
19 yIU+r0UbKe5kBk/CmZVFXL2TyJ92V5NYEQh8V4DGy19qZ6u/XKYyNJL4ocs35GGe
20 CA8SBuyrmdhx38h1RHErR2Skzadi1S7MwGf1y431fQ==
21 -----END CERTIFICATE-----
0 ; config options
1 server:
2 access-control: 127.0.0.1 allow_snoop
3 module-config: "validator iterator"
4 qname-minimisation: "no"
5 minimal-responses: no
6 serve-original-ttl: yes
7 cache-max-ttl: 1000
8 cache-min-ttl: 20
9 serve-expired: yes
10 serve-expired-reply-ttl: 123
11
12 stub-zone:
13 name: "example.com"
14 stub-addr: 1.2.3.4
15 CONFIG_END
16
17 SCENARIO_BEGIN Test serve-original-ttl
18 ; Scenario overview:
19 ; - query for example.com. IN A
20 ; - check that we get an answer for example.com. IN A with the correct TTL
21 ; - query again after a couple seconds and check that we get the original TTL
22 ; (next steps are combination with serve-expired)
23 ; - query again after the TTL expired
24 ; - check that we get the expired cached answer with the original TTL
25
26 ; ns.example.com.
27 RANGE_BEGIN 0 100
28 ADDRESS 1.2.3.4
29 ENTRY_BEGIN
30 MATCH opcode qtype qname
31 ADJUST copy_id
32 REPLY QR NOERROR
33 SECTION QUESTION
34 example.com. IN NS
35 SECTION ANSWER
36 example.com. IN NS ns.example.com.
37 SECTION ADDITIONAL
38 ns.example.com. IN A 1.2.3.4
39 ENTRY_END
40
41 ENTRY_BEGIN
42 MATCH opcode qtype qname
43 ADJUST copy_id
44 REPLY QR NOERROR
45 SECTION QUESTION
46 example.com. IN A
47 SECTION ANSWER
48 example.com. 10 IN A 5.6.7.8
49 SECTION AUTHORITY
50 example.com. IN NS ns.example.com.
51 SECTION ADDITIONAL
52 ns.example.com. IN A 1.2.3.4
53 ENTRY_END
54 RANGE_END
55
56 ; Query with RD flag
57 STEP 1 QUERY
58 ENTRY_BEGIN
59 REPLY RD
60 SECTION QUESTION
61 example.com. IN A
62 ENTRY_END
63
64 ; Check that we got the correct answer (should be cached)
65 STEP 10 CHECK_ANSWER
66 ENTRY_BEGIN
67 MATCH all ttl
68 REPLY QR RD RA NOERROR
69 SECTION QUESTION
70 example.com. IN A
71 SECTION ANSWER
72 example.com. 10 IN A 5.6.7.8
73 SECTION AUTHORITY
74 example.com. IN NS ns.example.com.
75 SECTION ADDITIONAL
76 ns.example.com. IN A 1.2.3.4
77 ENTRY_END
78
79 ; Wait a couple of seconds (< 10)
80 STEP 11 TIME_PASSES ELAPSE 5
81
82 ; Query again
83 STEP 20 QUERY
84 ENTRY_BEGIN
85 REPLY
86 SECTION QUESTION
87 example.com. IN A
88 ENTRY_END
89
90 ; Check that we got the cached answer with the original TTL
91 ; (Passively checks that minimum and maximum TTLs are ignored)
92 STEP 30 CHECK_ANSWER
93 ENTRY_BEGIN
94 MATCH all ttl
95 REPLY QR RA NOERROR
96 SECTION QUESTION
97 example.com. IN A
98 SECTION ANSWER
99 example.com. 10 A 5.6.7.8
100 SECTION AUTHORITY
101 example.com. 3600 NS ns.example.com.
102 SECTION ADDITIONAL
103 ns.example.com. 3600 A 1.2.3.4
104 ENTRY_END
105
106 ; Wait for the TTL to expire
107 STEP 31 TIME_PASSES ELAPSE 3601
108
109 ; Query again
110 STEP 40 QUERY
111 ENTRY_BEGIN
112 REPLY
113 SECTION QUESTION
114 example.com. IN A
115 ENTRY_END
116
117 ; Check that we got a stale answer with the original TTL
118 STEP 50 CHECK_ANSWER
119 ENTRY_BEGIN
120 MATCH all ttl
121 REPLY QR RA NOERROR
122 SECTION QUESTION
123 example.com. IN A
124 SECTION ANSWER
125 example.com. 10 A 5.6.7.8
126 SECTION AUTHORITY
127 example.com. NS ns.example.com.
128 SECTION ADDITIONAL
129 ns.example.com. A 1.2.3.4
130 ENTRY_END
131
132 ; Give time for the pending query to get answered
133 STEP 51 TRAFFIC
134
135 SCENARIO_END
219219 cfg->views = NULL;
220220 cfg->acls = NULL;
221221 cfg->tcp_connection_limits = NULL;
222 cfg->harden_short_bufsize = 0;
222 cfg->harden_short_bufsize = 1;
223223 cfg->harden_large_queries = 0;
224224 cfg->harden_glue = 1;
225225 cfg->harden_dnssec_stripped = 1;
236236 cfg->hide_trustanchor = 0;
237237 cfg->identity = NULL;
238238 cfg->version = NULL;
239 cfg->nsid_cfg_str = NULL;
240 cfg->nsid = NULL;
241 cfg->nsid_len = 0;
239242 cfg->auto_trust_anchor_file_list = NULL;
240243 cfg->trust_anchor_file_list = NULL;
241244 cfg->trust_anchor_list = NULL;
257260 cfg->serve_expired_ttl_reset = 0;
258261 cfg->serve_expired_reply_ttl = 30;
259262 cfg->serve_expired_client_timeout = 0;
263 cfg->serve_original_ttl = 0;
260264 cfg->add_holddown = 30*24*3600;
261265 cfg->del_holddown = 30*24*3600;
262266 cfg->keep_missing = 366*24*3600; /* one year plus a little leeway */
334338 cfg->dnscrypt_shared_secret_cache_slabs = 4;
335339 cfg->dnscrypt_nonce_cache_size = 4*1024*1024;
336340 cfg->dnscrypt_nonce_cache_slabs = 4;
341 cfg->pad_responses = 1;
342 cfg->pad_responses_block_size = 468; /* from RFC8467 */
343 cfg->pad_queries = 1;
344 cfg->pad_queries_block_size = 128; /* from RFC8467 */
337345 #ifdef USE_IPSECMOD
338346 cfg->ipsecmod_enabled = 1;
339347 cfg->ipsecmod_ignore_bogus = 0;
387395 cfg->val_log_level = 2; /* to fill why_bogus with */
388396 cfg->val_log_squelch = 1;
389397 cfg->minimal_responses = 0;
398 cfg->harden_short_bufsize = 1;
390399 return cfg;
391400 }
392401
579588 else S_YNO("hide-trustanchor:", hide_trustanchor)
580589 else S_STR("identity:", identity)
581590 else S_STR("version:", version)
591 else if(strcmp(opt, "nsid:") == 0) {
592 free(cfg->nsid_cfg_str);
593 if (!(cfg->nsid_cfg_str = strdup(val)))
594 return 0;
595 /* Empty string is just validly unsetting nsid */
596 if (*val == 0) {
597 free(cfg->nsid);
598 cfg->nsid = NULL;
599 cfg->nsid_len = 0;
600 return 1;
601 }
602 cfg->nsid = cfg_parse_nsid(val, &cfg->nsid_len);
603 return cfg->nsid != NULL;
604 }
582605 else S_STRLIST("root-hints:", root_hints)
583606 else S_STR("target-fetch-policy:", target_fetch_policy)
584607 else S_YNO("harden-glue:", harden_glue)
623646 else if(strcmp(opt, "serve-expired-reply-ttl:") == 0)
624647 { IS_NUMBER_OR_ZERO; cfg->serve_expired_reply_ttl = atoi(val); SERVE_EXPIRED_REPLY_TTL=(time_t)cfg->serve_expired_reply_ttl;}
625648 else S_NUMBER_OR_ZERO("serve-expired-client-timeout:", serve_expired_client_timeout)
649 else S_YNO("serve-original-ttl:", serve_original_ttl)
626650 else S_STR("val-nsec3-keysize-iterations:", val_nsec3_key_iterations)
627651 else S_UNSIGNED_OR_ZERO("add-holddown:", add_holddown)
628652 else S_UNSIGNED_OR_ZERO("del-holddown:", del_holddown)
718742 else S_NUMBER_OR_ZERO("fast-server-permil:", fast_server_permil)
719743 else S_YNO("qname-minimisation:", qname_minimisation)
720744 else S_YNO("qname-minimisation-strict:", qname_minimisation_strict)
745 else S_YNO("pad-responses:", pad_responses)
746 else S_SIZET_NONZERO("pad-responses-block-size:", pad_responses_block_size)
747 else S_YNO("pad-queries:", pad_queries)
748 else S_SIZET_NONZERO("pad-queries-block-size:", pad_queries_block_size)
721749 #ifdef USE_IPSECMOD
722750 else S_YNO("ipsecmod-enabled:", ipsecmod_enabled)
723751 else S_YNO("ipsecmod-ignore-bogus:", ipsecmod_ignore_bogus)
10141042 else O_YNO(opt, "hide-trustanchor", hide_trustanchor)
10151043 else O_STR(opt, "identity", identity)
10161044 else O_STR(opt, "version", version)
1045 else O_STR(opt, "nsid", nsid_cfg_str)
10171046 else O_STR(opt, "target-fetch-policy", target_fetch_policy)
10181047 else O_YNO(opt, "harden-short-bufsize", harden_short_bufsize)
10191048 else O_YNO(opt, "harden-large-queries", harden_large_queries)
10381067 else O_YNO(opt, "serve-expired-ttl-reset", serve_expired_ttl_reset)
10391068 else O_DEC(opt, "serve-expired-reply-ttl", serve_expired_reply_ttl)
10401069 else O_DEC(opt, "serve-expired-client-timeout", serve_expired_client_timeout)
1070 else O_YNO(opt, "serve-original-ttl", serve_original_ttl)
10411071 else O_STR(opt, "val-nsec3-keysize-iterations",val_nsec3_key_iterations)
10421072 else O_UNS(opt, "add-holddown", add_holddown)
10431073 else O_UNS(opt, "del-holddown", del_holddown)
11571187 else O_LS3(opt, "access-control-tag-action", acl_tag_actions)
11581188 else O_LS3(opt, "access-control-tag-data", acl_tag_datas)
11591189 else O_LS2(opt, "access-control-view", acl_view)
1190 else O_YNO(opt, "pad-responses", pad_responses)
1191 else O_DEC(opt, "pad-responses-block-size", pad_responses_block_size)
1192 else O_YNO(opt, "pad-queries", pad_queries)
1193 else O_DEC(opt, "pad-queries-block-size", pad_queries_block_size)
11601194 else O_LS2(opt, "edns-client-strings", edns_client_strings)
11611195 #ifdef USE_IPSECMOD
11621196 else O_YNO(opt, "ipsecmod-enabled", ipsecmod_enabled)
14811515 #endif
14821516 free(cfg->identity);
14831517 free(cfg->version);
1518 free(cfg->nsid_cfg_str);
1519 free(cfg->nsid);
14841520 free(cfg->module_conf);
14851521 free(cfg->outgoing_avail_ports);
14861522 config_delstrlist(cfg->caps_whitelist);
20192055 return taglist;
20202056 }
20212057
2058 uint8_t* cfg_parse_nsid(const char* str, uint16_t* nsid_len)
2059 {
2060 uint8_t* nsid = NULL;
2061
2062 if (strncasecmp(str, "ascii_", 6) == 0) {
2063 if ((nsid = (uint8_t *)strdup(str + 6)))
2064 *nsid_len = strlen(str + 6);
2065
2066 } else if (strlen(str) % 2) {
2067 ; /* hex string has even number of characters */
2068 }
2069
2070 else if (*str && (nsid = calloc(1, strlen(str) / 2))) {
2071 const char *ch;
2072 uint8_t *dp;
2073
2074 for ( ch = str, dp = nsid
2075 ; isxdigit(ch[0]) && isxdigit(ch[1])
2076 ; ch += 2, dp++) {
2077 *dp = (uint8_t)sldns_hexdigit_to_int(ch[0]) * 16;
2078 *dp += (uint8_t)sldns_hexdigit_to_int(ch[1]);
2079 }
2080 if (*ch) {
2081 free(nsid);
2082 nsid = NULL;
2083 } else
2084 *nsid_len = strlen(str) / 2;
2085 }
2086 return nsid;
2087 }
2088
2089
20222090 char* config_taglist2str(struct config_file* cfg, uint8_t* taglist,
20232091 size_t taglen)
20242092 {
20612129 SERVE_EXPIRED = config->serve_expired;
20622130 SERVE_EXPIRED_TTL = (time_t)config->serve_expired_ttl;
20632131 SERVE_EXPIRED_REPLY_TTL = (time_t)config->serve_expired_reply_ttl;
2132 SERVE_ORIGINAL_TTL = config->serve_original_ttl;
20642133 MAX_NEG_TTL = (time_t)config->max_negative_ttl;
20652134 RTT_MIN_TIMEOUT = config->infra_cache_min_rtt;
20662135 EDNS_ADVERTISED_SIZE = (uint16_t)config->edns_buffer_size;
337337 char* identity;
338338 /** version, package version returned if "". */
339339 char* version;
340 /** nsid */
341 char *nsid_cfg_str;
342 uint8_t *nsid;
343 uint16_t nsid_len;
340344
341345 /** the module configuration string */
342346 char* module_conf;
387391 /** serve expired entries only after trying to update the entries and this
388392 * timeout (in milliseconds) is reached */
389393 int serve_expired_client_timeout;
394 /** serve original TTLs rather than decrementing ones */
395 int serve_original_ttl;
390396 /** nsec3 maximum iterations per key size, string */
391397 char* val_nsec3_key_iterations;
392398 /** autotrust add holddown time, in seconds */
595601 size_t dnscrypt_nonce_cache_size;
596602 /** number of slabs for dnscrypt nonces cache */
597603 size_t dnscrypt_nonce_cache_slabs;
604
605 /** EDNS padding according to RFC7830 and RFC8467 */
606 /** true to enable padding of responses (default: on) */
607 int pad_responses;
608 /** block size with which to pad encrypted responses (default: 468) */
609 size_t pad_responses_block_size;
610 /** true to enable padding of queries (default: on) */
611 int pad_queries;
612 /** block size with which to pad encrypted queries (default: 128) */
613 size_t pad_queries_block_size;
614
598615 /** IPsec module */
599616 #ifdef USE_IPSECMOD
600617 /** false to bypass the IPsec module */
10701087 int cfg_parse_memsize(const char* str, size_t* res);
10711088
10721089 /**
1090 * Parse nsid from string into binary nsid. nsid is either a hexidecimal
1091 * string or an ascii string prepended with ascii_ in which case the
1092 * characters after ascii_ are simply copied.
1093 * @param str: the string to parse.
1094 * @param nsid_len: returns length of nsid in bytes.
1095 * @return malloced bytes or NULL on parse error or malloc failure.
1096 */
1097 uint8_t* cfg_parse_nsid(const char* str, uint16_t* nsid_len);
1098
1099 /**
10731100 * Add a tag name to the config. It is added at the end with a new ID value.
10741101 * @param cfg: the config structure.
10751102 * @param tag: string (which is copied) with the name.
353353 (yy_hold_char) = *yy_cp; \
354354 *yy_cp = '\0'; \
355355 (yy_c_buf_p) = yy_cp;
356 #define YY_NUM_RULES 337
357 #define YY_END_OF_BUFFER 338
356 #define YY_NUM_RULES 343
357 #define YY_END_OF_BUFFER 344
358358 /* This struct is not used in this scanner,
359359 but its presence is necessary. */
360360 struct yy_trans_info
362362 flex_int32_t yy_verify;
363363 flex_int32_t yy_nxt;
364364 };
365 static const flex_int16_t yy_accept[3292] =
365 static const flex_int16_t yy_accept[3354] =
366366 { 0,
367 1, 1, 311, 311, 315, 315, 319, 319, 323, 323,
368 1, 1, 327, 327, 331, 331, 338, 335, 1, 309,
369 309, 336, 2, 335, 335, 335, 335, 335, 335, 335,
370 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
371 335, 335, 335, 335, 335, 336, 311, 312, 312, 313,
372 336, 315, 316, 316, 317, 336, 322, 319, 320, 320,
373 321, 336, 323, 324, 324, 325, 336, 334, 310, 2,
374 314, 334, 336, 330, 327, 328, 328, 329, 336, 331,
375 332, 332, 333, 336, 335, 0, 1, 2, 2, 2,
376 2, 335, 335, 335, 335, 335, 335, 335, 335, 335,
377
378 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
379 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
380 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
381 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
382 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
383 335, 335, 335, 335, 335, 335, 335, 311, 0, 315,
384 0, 322, 0, 319, 323, 0, 334, 0, 2, 2,
385 334, 330, 0, 327, 331, 0, 335, 335, 335, 335,
386 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
387 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
388
389 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
390 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
391 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
392 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
393 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
394 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
395 335, 335, 335, 335, 335, 335, 335, 334, 335, 335,
396 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
397 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
398 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
399
400 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
401 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
402 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
403 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
404 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
405 335, 335, 125, 335, 335, 335, 335, 335, 335, 335,
406 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
407 335, 335, 335, 134, 335, 335, 335, 335, 335, 335,
408 335, 334, 335, 335, 335, 335, 335, 335, 335, 335,
409 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
410
411 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
412 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
413 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
414 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
415 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
416 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
417 109, 335, 335, 335, 335, 335, 335, 8, 335, 335,
418 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
419 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
420 335, 335, 335, 335, 335, 335, 335, 126, 335, 335,
421
422 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
423 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
424 335, 335, 335, 335, 335, 335, 335, 335, 139, 335,
425 334, 335, 335, 335, 335, 335, 335, 335, 335, 335,
426 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
427 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
428 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
429 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
430 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
431 335, 335, 335, 335, 335, 335, 335, 335, 302, 335,
432
433 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
434 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
435 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
436 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
437 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
438 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
439 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
440 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
441 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
442 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
443
444 335, 334, 335, 335, 335, 335, 335, 335, 335, 335,
445 335, 335, 335, 335, 64, 335, 335, 335, 335, 335,
446 335, 335, 335, 335, 335, 335, 335, 335, 335, 238,
447 335, 14, 15, 335, 19, 18, 335, 335, 222, 335,
448 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
449 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
450 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
451 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
452 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
453 132, 335, 335, 335, 335, 335, 335, 335, 335, 335,
454
455 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
456 335, 335, 220, 335, 335, 335, 335, 335, 335, 335,
457 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
458 335, 3, 335, 335, 335, 335, 335, 335, 335, 335,
459 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
460 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
461 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
462 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
463 335, 335, 335, 335, 335, 335, 334, 335, 335, 335,
464 335, 335, 335, 335, 296, 335, 335, 295, 335, 335,
465
466 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
467 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
468 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
469 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
470 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
471 335, 335, 335, 335, 335, 318, 335, 335, 335, 335,
472 335, 335, 335, 335, 63, 335, 335, 335, 335, 335,
473 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
474 335, 67, 335, 269, 335, 335, 335, 335, 335, 335,
475 335, 335, 303, 304, 335, 335, 335, 335, 335, 68,
476
477 335, 335, 133, 335, 335, 335, 335, 335, 335, 335,
478 335, 335, 335, 335, 335, 335, 335, 129, 335, 335,
479 335, 335, 335, 335, 335, 335, 209, 335, 335, 335,
480 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
481 335, 335, 335, 335, 335, 335, 335, 21, 335, 335,
482 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
483 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
484 335, 335, 335, 335, 335, 335, 335, 158, 335, 335,
485 334, 318, 335, 335, 335, 335, 335, 335, 335, 335,
486 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
487
488 335, 335, 335, 107, 335, 335, 335, 335, 335, 335,
489 335, 277, 335, 335, 335, 335, 335, 335, 335, 335,
490 335, 335, 335, 335, 335, 335, 335, 335, 335, 181,
491 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
492 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
493 335, 335, 335, 335, 335, 335, 335, 335, 335, 157,
494 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
495 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
496 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
497 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
498
499 335, 335, 106, 335, 335, 335, 335, 335, 335, 335,
500 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
501 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
502 32, 335, 335, 335, 335, 335, 335, 335, 335, 335,
503 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
504 33, 335, 335, 335, 335, 335, 335, 335, 335, 335,
505 335, 335, 335, 335, 335, 335, 65, 335, 335, 335,
506 335, 335, 335, 335, 335, 335, 131, 334, 335, 335,
507 335, 335, 335, 124, 335, 335, 335, 335, 335, 335,
508 335, 335, 335, 335, 335, 335, 335, 335, 335, 66,
509
510 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
511 335, 335, 242, 335, 335, 335, 335, 335, 335, 335,
512 335, 335, 335, 335, 335, 335, 182, 335, 335, 335,
513 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
514 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
515 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
516 335, 335, 335, 335, 54, 335, 335, 335, 335, 335,
517 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
518 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
519 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
520
521 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
522 335, 335, 335, 335, 335, 260, 335, 335, 335, 335,
523 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
524 335, 335, 335, 335, 58, 335, 59, 335, 335, 335,
525 335, 335, 110, 335, 111, 335, 335, 335, 335, 108,
526 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
527 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
528 335, 335, 335, 335, 335, 335, 335, 335, 335, 7,
529 335, 334, 335, 335, 335, 335, 335, 335, 335, 335,
530 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
531
532 231, 335, 335, 335, 335, 160, 335, 335, 335, 335,
533 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
534 335, 335, 243, 335, 335, 335, 335, 335, 335, 335,
535 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
536 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
537 335, 335, 335, 335, 335, 335, 335, 335, 335, 45,
538 335, 335, 335, 335, 335, 335, 335, 335, 335, 55,
539 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
540 335, 335, 335, 335, 201, 335, 200, 335, 335, 335,
541 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
542
543 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
544 335, 335, 335, 16, 17, 335, 335, 335, 335, 335,
545 335, 335, 335, 335, 335, 335, 335, 335, 69, 335,
546 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
547 208, 335, 335, 335, 335, 335, 335, 113, 335, 112,
548 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
549 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
550 335, 335, 192, 335, 335, 335, 335, 335, 335, 335,
551 335, 140, 334, 335, 335, 335, 335, 335, 335, 335,
552 335, 335, 335, 101, 335, 335, 335, 335, 335, 335,
553
554 335, 335, 335, 89, 335, 335, 335, 335, 335, 335,
555 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
556 335, 335, 335, 335, 335, 335, 335, 335, 335, 221,
557 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
558 335, 335, 335, 335, 335, 335, 335, 335, 94, 335,
559 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
560 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
561 62, 335, 335, 335, 335, 335, 335, 335, 335, 335,
562 335, 335, 335, 335, 335, 335, 335, 335, 335, 195,
563 196, 335, 335, 335, 271, 335, 335, 335, 335, 335,
564
565 335, 335, 335, 335, 335, 335, 335, 6, 335, 335,
566 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
567 335, 335, 335, 335, 335, 335, 335, 335, 335, 275,
568 335, 335, 335, 335, 335, 335, 297, 335, 335, 335,
569 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
570 335, 335, 335, 335, 335, 335, 335, 42, 335, 335,
571 335, 335, 44, 335, 335, 335, 90, 335, 335, 335,
572 335, 335, 52, 335, 335, 335, 335, 335, 335, 335,
573 334, 335, 188, 335, 335, 335, 135, 335, 335, 335,
574 335, 335, 335, 335, 335, 335, 335, 213, 335, 189,
575
576 335, 335, 335, 228, 335, 335, 335, 335, 335, 335,
577 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
578 335, 335, 335, 335, 53, 335, 335, 335, 335, 335,
579 335, 335, 335, 335, 335, 137, 118, 335, 119, 335,
580 335, 335, 117, 335, 335, 335, 335, 335, 335, 335,
581 335, 155, 335, 335, 50, 335, 335, 335, 335, 335,
582 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
583 335, 259, 335, 335, 335, 335, 335, 335, 335, 335,
584 335, 190, 335, 335, 335, 335, 335, 193, 335, 199,
585 335, 335, 335, 335, 335, 227, 335, 335, 335, 335,
586
587 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
588 105, 335, 335, 335, 335, 335, 335, 335, 335, 335,
589 335, 335, 335, 335, 335, 335, 335, 335, 335, 130,
590 335, 335, 335, 335, 335, 335, 60, 335, 335, 335,
591 26, 335, 335, 335, 335, 335, 335, 335, 335, 335,
592 20, 335, 335, 335, 335, 335, 335, 27, 36, 335,
593 165, 335, 335, 335, 335, 335, 335, 335, 335, 335,
594 335, 335, 335, 335, 334, 335, 335, 335, 335, 335,
595 335, 77, 79, 335, 335, 335, 335, 335, 335, 335,
596 335, 335, 335, 335, 335, 335, 279, 335, 335, 335,
597
598 335, 239, 335, 335, 335, 335, 335, 335, 335, 335,
599 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
600 335, 335, 335, 335, 120, 335, 335, 335, 335, 335,
601 335, 335, 335, 335, 154, 335, 46, 335, 335, 335,
602 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
603 335, 335, 335, 335, 335, 335, 335, 335, 290, 335,
604 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
605 335, 335, 335, 335, 335, 335, 335, 159, 335, 335,
606 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
607 335, 219, 335, 335, 335, 335, 335, 335, 335, 335,
608
609 335, 300, 335, 335, 335, 335, 335, 335, 335, 335,
610 335, 335, 335, 176, 335, 335, 335, 335, 335, 335,
611 335, 335, 114, 335, 335, 335, 335, 335, 335, 335,
612 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
613 335, 335, 171, 335, 183, 335, 335, 335, 335, 334,
614 335, 143, 335, 335, 335, 335, 335, 100, 335, 335,
615 335, 335, 211, 335, 335, 335, 335, 335, 335, 229,
616 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
617 335, 335, 335, 335, 335, 335, 251, 335, 335, 335,
618 335, 335, 335, 335, 335, 335, 335, 136, 335, 335,
619
620 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
621 335, 335, 175, 335, 335, 335, 335, 335, 335, 80,
622 335, 81, 335, 335, 335, 335, 335, 61, 293, 335,
623 335, 335, 335, 335, 88, 184, 335, 202, 335, 232,
624 335, 335, 194, 272, 335, 335, 335, 335, 335, 73,
625 335, 186, 335, 335, 335, 335, 335, 9, 335, 335,
626 335, 104, 335, 335, 335, 335, 264, 335, 335, 335,
627 335, 210, 335, 335, 335, 335, 335, 335, 335, 335,
628 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
629 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
630
631 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
632 335, 335, 335, 335, 335, 335, 335, 334, 335, 335,
633 335, 335, 174, 335, 335, 335, 335, 335, 335, 335,
634 335, 335, 335, 161, 335, 278, 335, 335, 335, 335,
635 335, 250, 335, 335, 335, 335, 335, 335, 335, 335,
636 335, 335, 335, 223, 335, 335, 335, 335, 335, 270,
637 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
638 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
639 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
640 294, 335, 185, 335, 335, 335, 335, 335, 335, 335,
641
642 72, 74, 335, 335, 335, 335, 335, 335, 335, 103,
643 335, 335, 335, 335, 262, 335, 335, 335, 335, 274,
644 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
645 335, 215, 34, 28, 30, 335, 335, 335, 335, 335,
646 335, 335, 335, 335, 35, 335, 29, 31, 335, 335,
647 335, 335, 335, 335, 335, 335, 99, 335, 335, 335,
648 335, 335, 335, 334, 335, 335, 335, 335, 335, 335,
649 335, 335, 335, 335, 335, 217, 214, 335, 335, 335,
650 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
651 335, 335, 335, 335, 335, 71, 335, 335, 335, 138,
652
653 335, 121, 335, 335, 335, 335, 335, 335, 335, 335,
654 156, 47, 335, 335, 335, 326, 13, 335, 335, 335,
655 335, 335, 335, 335, 335, 335, 335, 288, 335, 291,
656 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
657 12, 335, 335, 22, 335, 335, 335, 268, 335, 335,
658 335, 335, 276, 335, 335, 335, 75, 335, 225, 335,
659 335, 335, 335, 216, 335, 335, 70, 335, 335, 335,
660 335, 23, 335, 43, 335, 335, 335, 335, 335, 335,
661 335, 335, 335, 335, 335, 335, 170, 169, 326, 335,
662 335, 335, 335, 335, 335, 335, 335, 335, 218, 212,
663
664 335, 230, 335, 335, 280, 335, 335, 335, 335, 335,
665 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
666 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
667 335, 335, 335, 335, 335, 335, 335, 82, 335, 335,
668 335, 335, 263, 335, 335, 335, 335, 198, 335, 335,
669 335, 335, 224, 335, 335, 335, 335, 335, 335, 335,
670 335, 335, 298, 299, 167, 335, 335, 76, 335, 335,
671 335, 335, 177, 335, 335, 115, 116, 335, 335, 335,
672 335, 162, 335, 164, 335, 203, 335, 335, 335, 335,
673 168, 335, 335, 233, 335, 335, 335, 335, 335, 335,
674
675 335, 145, 335, 335, 335, 335, 335, 335, 335, 335,
676 335, 335, 335, 335, 241, 335, 335, 335, 335, 335,
677 335, 335, 307, 335, 24, 335, 273, 335, 335, 335,
678 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
679 335, 86, 204, 335, 335, 261, 335, 292, 335, 197,
680 335, 335, 335, 335, 56, 335, 335, 335, 335, 4,
681 335, 335, 335, 335, 128, 144, 335, 335, 335, 335,
682 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
683 335, 335, 335, 335, 236, 37, 38, 335, 335, 335,
684 335, 335, 335, 335, 281, 335, 335, 335, 335, 335,
685
686 335, 335, 249, 335, 335, 335, 335, 335, 335, 335,
687 335, 207, 335, 335, 335, 335, 335, 335, 335, 335,
688 335, 335, 335, 335, 85, 335, 57, 267, 335, 237,
689 335, 335, 335, 335, 11, 335, 335, 335, 335, 335,
690 335, 127, 335, 335, 335, 335, 205, 91, 335, 40,
691 335, 335, 335, 335, 335, 335, 335, 335, 173, 335,
692 335, 335, 335, 335, 147, 335, 335, 335, 335, 240,
693 335, 335, 335, 335, 335, 248, 335, 335, 335, 335,
694 141, 335, 335, 335, 122, 123, 335, 335, 335, 93,
695 97, 92, 335, 335, 335, 335, 83, 335, 335, 335,
696
697 335, 335, 10, 335, 335, 335, 265, 301, 335, 335,
698 335, 335, 306, 39, 335, 335, 335, 335, 335, 172,
699 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
700 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
701 335, 335, 335, 98, 96, 335, 51, 335, 335, 84,
702 289, 335, 335, 335, 335, 335, 335, 335, 191, 335,
703 335, 335, 335, 335, 206, 335, 335, 335, 335, 335,
704 335, 335, 335, 163, 78, 335, 335, 335, 335, 335,
705 282, 335, 335, 335, 335, 335, 335, 335, 245, 335,
706 335, 244, 142, 335, 335, 95, 48, 335, 148, 149,
707
708 152, 153, 150, 151, 87, 335, 266, 335, 335, 335,
709 335, 166, 335, 335, 335, 335, 335, 235, 335, 335,
710 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
711 335, 335, 335, 335, 335, 335, 335, 179, 178, 41,
712 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
713 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
714 335, 335, 335, 335, 335, 335, 102, 335, 234, 335,
715 258, 286, 335, 335, 335, 335, 335, 335, 335, 335,
716 335, 335, 335, 308, 335, 49, 5, 335, 335, 226,
717 335, 335, 287, 335, 335, 335, 335, 335, 335, 335,
718
719 335, 335, 246, 25, 335, 335, 335, 335, 335, 335,
720 335, 335, 335, 335, 335, 335, 247, 335, 335, 335,
721 146, 335, 335, 335, 335, 335, 335, 335, 335, 180,
722 335, 187, 335, 335, 335, 335, 335, 335, 335, 335,
723 335, 283, 335, 335, 335, 335, 335, 335, 335, 335,
724 335, 335, 335, 335, 335, 335, 335, 335, 335, 305,
725 335, 335, 254, 335, 335, 335, 335, 335, 284, 335,
726 335, 335, 335, 335, 335, 285, 335, 335, 335, 252,
727 335, 255, 256, 335, 335, 335, 335, 335, 253, 257,
728 0
729
367 1, 1, 317, 317, 321, 321, 325, 325, 329, 329,
368 1, 1, 333, 333, 337, 337, 344, 341, 1, 315,
369 315, 342, 2, 341, 341, 341, 341, 341, 341, 341,
370 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
371 341, 341, 341, 341, 341, 342, 317, 318, 318, 319,
372 342, 321, 322, 322, 323, 342, 328, 325, 326, 326,
373 327, 342, 329, 330, 330, 331, 342, 340, 316, 2,
374 320, 340, 342, 336, 333, 334, 334, 335, 342, 337,
375 338, 338, 339, 342, 341, 0, 1, 2, 2, 2,
376 2, 341, 341, 341, 341, 341, 341, 341, 341, 341,
377
378 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
379 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
380 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
381 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
382 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
383 341, 341, 341, 341, 341, 341, 341, 341, 341, 317,
384 0, 321, 0, 328, 0, 325, 329, 0, 340, 0,
385 2, 2, 340, 336, 0, 333, 337, 0, 341, 341,
386 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
387 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
388
389 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
390 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
391 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
392 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
393 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
394 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
395 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
396 341, 340, 341, 341, 341, 341, 341, 341, 341, 341,
397 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
398 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
399
400 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
401 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
402 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
403 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
404 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
405 341, 341, 341, 341, 341, 341, 341, 341, 125, 341,
406 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
407 341, 341, 341, 341, 341, 341, 341, 341, 341, 134,
408 341, 341, 341, 341, 341, 341, 341, 340, 341, 341,
409 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
410
411 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
412 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
413 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
414 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
415 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
416 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
417 341, 341, 341, 341, 341, 341, 109, 341, 314, 341,
418 341, 341, 341, 341, 341, 341, 8, 341, 341, 341,
419 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
420 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
421
422 341, 341, 341, 341, 341, 341, 126, 341, 341, 341,
423 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
424 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
425 341, 341, 341, 341, 341, 341, 341, 139, 341, 340,
426 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
427 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
428 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
429 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
430 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
431 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
432
433 341, 341, 341, 341, 341, 341, 341, 307, 341, 341,
434 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
435 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
436 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
437 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
438 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
439 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
440 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
441 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
442 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
443
444 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
445 341, 341, 340, 341, 341, 341, 341, 341, 341, 341,
446 341, 341, 341, 341, 341, 64, 341, 341, 341, 341,
447 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
448 239, 341, 14, 15, 341, 19, 18, 341, 341, 223,
449 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
450 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
451 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
452 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
453 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
454
455 341, 132, 341, 341, 341, 341, 341, 341, 341, 341,
456 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
457 341, 341, 341, 341, 341, 221, 341, 341, 341, 341,
458 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
459 341, 341, 341, 341, 341, 3, 341, 341, 341, 341,
460 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
461 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
462 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
463 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
464 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
465
466 340, 341, 341, 341, 341, 341, 341, 341, 301, 341,
467 341, 300, 341, 341, 341, 341, 341, 341, 341, 341,
468 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
469 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
470 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
471 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
472 341, 341, 341, 341, 341, 341, 341, 341, 341, 324,
473 341, 341, 341, 341, 341, 341, 341, 341, 63, 341,
474 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
475 341, 341, 341, 341, 341, 67, 341, 270, 341, 341,
476
477 341, 341, 341, 341, 341, 341, 308, 309, 341, 341,
478 341, 341, 341, 341, 341, 68, 341, 341, 133, 341,
479 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
480 341, 341, 341, 129, 341, 341, 341, 341, 341, 341,
481 341, 341, 341, 210, 341, 341, 341, 341, 341, 341,
482 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
483 341, 341, 341, 341, 21, 341, 341, 341, 341, 341,
484 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
485 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
486 341, 341, 341, 341, 158, 341, 341, 340, 324, 341,
487
488 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
489 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
490 107, 341, 341, 341, 341, 341, 341, 341, 278, 341,
491 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
492 341, 341, 341, 341, 341, 341, 182, 341, 341, 341,
493 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
494 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
495 341, 341, 341, 341, 341, 341, 157, 341, 341, 341,
496 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
497 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
498
499 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
500 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
501 341, 106, 341, 341, 341, 341, 341, 341, 341, 341,
502 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
503 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
504 32, 341, 341, 341, 341, 341, 341, 341, 341, 341,
505 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
506 33, 341, 341, 341, 341, 341, 341, 341, 341, 341,
507 341, 341, 341, 341, 341, 341, 65, 341, 341, 341,
508 341, 341, 341, 341, 341, 341, 131, 340, 341, 341,
509
510 341, 341, 341, 124, 341, 341, 341, 341, 341, 341,
511 341, 341, 341, 341, 341, 341, 341, 341, 341, 66,
512 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
513 341, 341, 243, 341, 341, 341, 341, 341, 341, 341,
514 341, 341, 341, 341, 341, 341, 183, 341, 341, 341,
515 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
516 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
517 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
518 341, 341, 341, 341, 54, 341, 341, 341, 341, 341,
519 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
520
521 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
522 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
523 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
524 341, 341, 341, 341, 341, 341, 341, 261, 341, 341,
525 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
526 341, 341, 341, 341, 341, 341, 341, 58, 341, 59,
527 341, 341, 341, 341, 341, 110, 341, 111, 341, 341,
528 341, 341, 108, 341, 341, 341, 341, 341, 341, 341,
529 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
530 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
531
532 341, 341, 7, 341, 340, 341, 341, 341, 341, 341,
533 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
534 341, 341, 341, 232, 341, 341, 341, 341, 160, 341,
535 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
536 341, 341, 341, 341, 341, 244, 341, 341, 341, 341,
537 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
538 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
539 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
540 341, 341, 45, 341, 341, 341, 341, 341, 341, 341,
541 341, 341, 55, 341, 341, 341, 341, 341, 341, 341,
542
543 341, 341, 341, 341, 341, 341, 341, 202, 341, 201,
544 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
545 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
546 341, 341, 341, 341, 341, 341, 341, 341, 16, 17,
547 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
548 341, 341, 341, 69, 341, 341, 341, 341, 341, 341,
549 341, 341, 341, 341, 341, 341, 209, 341, 341, 341,
550 341, 341, 341, 113, 341, 112, 341, 341, 341, 341,
551 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
552 341, 341, 341, 341, 341, 341, 341, 341, 193, 341,
553
554 341, 341, 341, 341, 341, 341, 341, 140, 340, 341,
555 341, 341, 341, 341, 341, 341, 341, 341, 341, 101,
556 341, 341, 341, 341, 341, 341, 341, 341, 341, 89,
557 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
558 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
559 341, 341, 341, 341, 341, 222, 341, 341, 341, 341,
560 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
561 341, 341, 341, 341, 94, 341, 341, 341, 341, 341,
562 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
563 341, 341, 341, 341, 341, 341, 62, 341, 341, 341,
564
565 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
566 341, 341, 341, 341, 341, 196, 197, 341, 341, 341,
567 272, 341, 341, 341, 341, 341, 341, 341, 341, 341,
568 341, 341, 341, 6, 341, 341, 341, 341, 341, 341,
569 291, 341, 341, 341, 341, 341, 341, 341, 341, 341,
570 341, 341, 341, 341, 341, 341, 341, 341, 276, 341,
571 341, 341, 341, 341, 341, 302, 341, 341, 341, 341,
572 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
573 341, 341, 341, 341, 341, 341, 341, 42, 341, 341,
574 341, 341, 44, 341, 341, 341, 90, 341, 341, 341,
575
576 341, 341, 52, 341, 341, 341, 341, 341, 341, 341,
577 340, 341, 189, 341, 341, 341, 135, 341, 341, 341,
578 341, 341, 341, 341, 341, 341, 341, 214, 341, 190,
579 341, 341, 341, 229, 341, 341, 341, 341, 341, 341,
580 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
581 341, 341, 341, 341, 53, 341, 341, 341, 341, 341,
582 341, 341, 341, 341, 341, 137, 118, 341, 119, 341,
583 341, 341, 117, 341, 341, 341, 341, 341, 341, 341,
584 341, 155, 341, 341, 50, 341, 341, 341, 341, 341,
585 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
586
587 341, 260, 341, 341, 341, 341, 341, 341, 341, 341,
588 341, 191, 341, 341, 341, 341, 341, 194, 341, 200,
589 341, 341, 341, 341, 341, 228, 341, 341, 341, 341,
590 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
591 341, 341, 105, 341, 341, 341, 341, 341, 341, 341,
592 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
593 341, 130, 341, 341, 341, 341, 341, 341, 341, 60,
594 341, 341, 341, 26, 341, 341, 341, 341, 341, 341,
595 341, 341, 341, 20, 341, 341, 341, 341, 341, 341,
596 27, 36, 341, 165, 341, 341, 341, 341, 341, 341,
597
598 341, 341, 341, 341, 341, 341, 341, 340, 341, 341,
599 341, 341, 341, 341, 77, 79, 341, 341, 341, 341,
600 341, 341, 341, 341, 341, 341, 341, 341, 341, 280,
601 341, 341, 341, 341, 240, 341, 341, 341, 341, 341,
602 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
603 341, 341, 341, 341, 341, 341, 341, 120, 341, 341,
604 341, 341, 341, 341, 341, 341, 341, 154, 341, 46,
605 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
606 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
607 341, 295, 341, 341, 341, 341, 341, 341, 341, 341,
608
609 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
610 159, 341, 341, 341, 341, 341, 341, 341, 341, 341,
611 341, 341, 341, 289, 341, 341, 341, 220, 341, 341,
612 341, 341, 341, 341, 341, 341, 341, 305, 341, 341,
613 341, 341, 341, 341, 341, 341, 341, 341, 341, 176,
614 341, 341, 341, 341, 341, 341, 341, 341, 341, 114,
615 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
616 341, 341, 341, 341, 341, 341, 341, 341, 341, 171,
617 341, 184, 341, 341, 341, 341, 340, 341, 143, 341,
618 341, 341, 341, 341, 100, 341, 341, 341, 341, 212,
619
620 341, 341, 341, 341, 341, 341, 230, 341, 341, 341,
621 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
622 341, 341, 341, 252, 341, 341, 341, 341, 341, 341,
623 341, 341, 341, 341, 136, 341, 341, 341, 341, 341,
624 341, 341, 341, 341, 341, 341, 341, 341, 341, 175,
625 341, 341, 341, 341, 341, 341, 80, 341, 81, 341,
626 341, 341, 341, 341, 61, 298, 341, 341, 341, 341,
627 341, 88, 185, 341, 203, 341, 233, 341, 341, 195,
628 273, 341, 341, 341, 341, 341, 73, 341, 187, 341,
629 341, 341, 341, 341, 9, 341, 341, 341, 341, 341,
630
631 104, 341, 341, 341, 341, 265, 341, 341, 341, 341,
632 211, 341, 341, 341, 341, 341, 341, 341, 341, 341,
633 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
634 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
635 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
636 341, 341, 341, 341, 341, 341, 341, 340, 341, 341,
637 341, 341, 174, 341, 341, 341, 341, 341, 341, 341,
638 341, 341, 341, 161, 341, 279, 341, 341, 341, 341,
639 341, 251, 341, 341, 341, 341, 341, 341, 341, 341,
640 341, 341, 341, 224, 341, 341, 341, 341, 341, 271,
641
642 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
643 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
644 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
645 299, 341, 186, 341, 341, 341, 341, 341, 341, 341,
646 72, 74, 341, 341, 341, 341, 341, 341, 341, 341,
647 341, 103, 341, 341, 341, 341, 263, 341, 341, 341,
648 341, 275, 341, 341, 341, 341, 341, 341, 341, 341,
649 341, 341, 341, 341, 216, 34, 28, 30, 341, 341,
650 341, 341, 341, 341, 341, 341, 341, 35, 341, 29,
651 31, 341, 341, 341, 341, 341, 341, 341, 341, 99,
652
653 341, 341, 341, 341, 341, 341, 340, 341, 341, 341,
654 341, 341, 341, 341, 341, 341, 341, 341, 218, 215,
655 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
656 341, 341, 341, 341, 341, 341, 341, 341, 71, 341,
657 341, 341, 138, 341, 121, 341, 341, 341, 341, 341,
658 341, 341, 341, 156, 47, 341, 341, 341, 332, 13,
659 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
660 293, 341, 296, 341, 341, 341, 341, 341, 341, 341,
661 341, 341, 341, 12, 341, 341, 22, 341, 341, 341,
662 341, 341, 269, 341, 341, 341, 341, 277, 341, 341,
663
664 341, 75, 341, 226, 341, 341, 341, 341, 341, 217,
665 341, 341, 70, 341, 341, 341, 341, 23, 341, 43,
666 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
667 341, 341, 170, 169, 332, 341, 341, 341, 341, 341,
668 341, 341, 341, 341, 219, 213, 341, 231, 341, 341,
669 281, 341, 341, 341, 341, 341, 341, 341, 341, 341,
670 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
671 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
672 341, 341, 341, 82, 341, 341, 341, 341, 264, 341,
673 341, 341, 341, 199, 341, 341, 341, 341, 225, 341,
674
675 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
676 303, 304, 167, 341, 341, 76, 341, 341, 341, 341,
677 177, 341, 341, 341, 115, 116, 341, 341, 341, 341,
678 162, 341, 164, 341, 204, 341, 341, 341, 341, 168,
679 341, 341, 234, 341, 341, 341, 341, 341, 341, 341,
680 145, 341, 341, 341, 341, 341, 341, 341, 341, 341,
681 341, 341, 341, 242, 341, 341, 341, 341, 341, 341,
682 341, 312, 341, 24, 341, 274, 341, 341, 341, 341,
683 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
684 86, 205, 341, 341, 262, 341, 297, 341, 198, 341,
685
686 341, 341, 341, 56, 341, 341, 341, 341, 341, 341,
687 4, 341, 341, 341, 341, 128, 144, 341, 341, 341,
688 181, 341, 341, 341, 341, 341, 341, 341, 341, 341,
689 341, 341, 341, 341, 341, 341, 237, 37, 38, 341,
690 341, 341, 341, 341, 341, 341, 282, 341, 341, 341,
691 341, 341, 341, 341, 250, 341, 341, 341, 341, 341,
692 341, 341, 341, 208, 341, 341, 341, 341, 341, 341,
693 341, 341, 341, 341, 341, 341, 85, 341, 57, 268,
694 341, 238, 341, 341, 341, 341, 11, 341, 341, 341,
695 341, 341, 341, 341, 341, 127, 341, 341, 341, 341,
696
697 206, 91, 341, 40, 341, 341, 341, 341, 341, 341,
698 341, 341, 173, 341, 341, 341, 341, 341, 147, 341,
699 341, 341, 341, 241, 341, 341, 341, 341, 341, 249,
700 341, 341, 341, 341, 141, 341, 341, 341, 122, 123,
701 341, 341, 341, 93, 97, 92, 341, 341, 341, 341,
702 83, 341, 341, 341, 341, 341, 10, 341, 341, 341,
703 341, 341, 266, 306, 341, 341, 341, 341, 311, 39,
704 341, 341, 341, 341, 341, 172, 341, 341, 341, 341,
705 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
706 341, 341, 341, 341, 341, 341, 341, 341, 341, 98,
707
708 96, 341, 51, 341, 341, 84, 294, 341, 341, 341,
709 341, 341, 341, 341, 341, 341, 192, 341, 341, 341,
710 341, 341, 207, 341, 341, 341, 341, 341, 341, 341,
711 341, 163, 78, 341, 341, 341, 341, 341, 283, 341,
712 341, 341, 341, 341, 341, 341, 246, 341, 341, 245,
713 142, 341, 341, 95, 48, 341, 148, 149, 152, 153,
714 150, 151, 87, 292, 341, 341, 267, 341, 341, 341,
715 341, 166, 341, 341, 341, 341, 341, 236, 341, 341,
716 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
717 341, 341, 341, 341, 341, 341, 341, 341, 179, 178,
718
719 41, 341, 341, 341, 341, 341, 341, 341, 341, 341,
720 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
721 341, 341, 341, 290, 341, 341, 341, 341, 102, 341,
722 235, 341, 259, 287, 341, 341, 341, 341, 341, 341,
723 341, 341, 341, 341, 341, 313, 341, 49, 5, 341,
724 341, 227, 341, 341, 288, 341, 341, 341, 341, 341,
725 341, 341, 341, 341, 247, 25, 341, 341, 341, 341,
726 341, 341, 341, 341, 341, 341, 341, 341, 248, 341,
727 341, 341, 146, 341, 341, 341, 341, 341, 341, 341,
728 341, 180, 341, 188, 341, 341, 341, 341, 341, 341,
729
730 341, 341, 341, 284, 341, 341, 341, 341, 341, 341,
731 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
732 341, 310, 341, 341, 255, 341, 341, 341, 341, 341,
733 285, 341, 341, 341, 341, 341, 341, 286, 341, 341,
734 341, 253, 341, 256, 257, 341, 341, 341, 341, 341,
735 254, 258, 0
730736 } ;
731737
732738 static const YY_CHAR yy_ec[256] =
772778 1, 1, 1, 1, 1, 1
773779 } ;
774780
775 static const flex_int16_t yy_base[3310] =
781 static const flex_int16_t yy_base[3372] =
776782 { 0,
777783 0, 0, 64, 67, 70, 72, 78, 84, 89, 92,
778 131, 137, 112, 118, 123, 142, 479, 435, 96, 9388,
779 9388, 9388, 160, 185, 116, 183, 229, 132, 175, 173,
780 232, 50, 66, 120, 263, 275, 151, 319, 134, 371,
781 412, 286, 308, 283, 126, 237, 394, 9388, 9388, 9388,
782 95, 385, 9388, 9388, 9388, 186, 366, 385, 9388, 9388,
783 9388, 258, 340, 9388, 9388, 9388, 104, 338, 9388, 266,
784 9388, 167, 349, 303, 319, 9388, 9388, 9388, 356, 273,
785 9388, 9388, 9388, 146, 268, 368, 177, 0, 388, 0,
786 0, 291, 270, 235, 346, 259, 339, 367, 178, 177,
787
788 226, 395, 373, 384, 377, 368, 410, 411, 309, 429,
789 357, 408, 438, 423, 444, 446, 458, 462, 436, 467,
790 483, 474, 470, 476, 488, 487, 489, 499, 482, 503,
791 514, 510, 526, 516, 523, 520, 552, 363, 533, 515,
792 554, 551, 250, 558, 548, 582, 561, 527, 553, 578,
793 601, 575, 602, 596, 588, 605, 599, 208, 341, 205,
794 236, 194, 628, 225, 180, 438, 158, 652, 656, 0,
795 622, 152, 664, 176, 130, 454, 633, 659, 639, 646,
796 654, 652, 664, 648, 655, 666, 658, 665, 705, 677,
797 682, 707, 256, 716, 760, 710, 691, 693, 717, 718,
798
799 701, 704, 732, 721, 751, 741, 744, 746, 750, 748,
800 767, 771, 808, 790, 759, 784, 290, 796, 807, 325,
801 798, 715, 810, 783, 726, 811, 820, 825, 822, 817,
802 815, 831, 827, 837, 853, 849, 858, 856, 852, 854,
803 846, 874, 877, 857, 864, 876, 892, 881, 901, 885,
804 902, 904, 891, 908, 916, 918, 895, 921, 911, 903,
805 919, 680, 941, 926, 937, 928, 935, 942, 930, 944,
806 938, 955, 947, 966, 968, 967, 975, 978, 962, 974,
807 973, 976, 984, 971, 989, 1003, 1007, 1011, 144, 995,
808 1019, 1023, 994, 999, 1005, 1021, 1018, 1022, 1033, 1015,
809
810 1048, 1042, 1058, 1051, 1056, 1054, 1066, 1068, 1047, 1046,
811 1041, 1052, 1069, 1073, 1080, 1084, 1082, 1086, 1089, 1092,
812 1102, 1094, 1085, 1115, 1096, 1141, 1111, 1109, 1119, 1152,
813 1136, 1135, 1144, 1162, 1172, 1166, 1177, 1163, 1186, 1189,
814 1143, 1176, 1200, 1205, 1187, 1204, 1199, 1188, 1190, 1203,
815 1107, 1238, 9388, 1215, 1242, 1149, 1243, 1244, 1251, 1226,
816 1269, 1237, 1259, 1217, 1252, 1275, 1292, 1340, 1264, 1297,
817 1279, 1283, 1289, 9388, 1320, 1317, 1389, 1293, 1324, 1309,
818 1342, 1325, 1307, 1322, 1345, 1338, 1224, 1353, 1335, 1371,
819 1383, 1388, 1375, 1380, 1382, 1394, 1398, 1262, 1416, 1409,
820
821 1421, 1420, 1266, 1412, 1425, 1418, 1455, 1422, 1430, 1435,
822 1444, 1457, 1463, 1468, 1470, 1475, 1448, 1464, 1461, 1469,
823 1484, 1499, 1544, 1302, 1491, 1502, 1501, 1503, 1347, 1488,
824 1511, 1516, 1510, 1518, 1504, 1532, 1528, 1542, 1547, 1540,
825 1555, 1527, 1559, 1550, 1543, 1567, 1568, 1592, 1569, 1577,
826 1560, 1586, 1599, 1603, 1594, 1608, 1605, 1590, 1613, 1596,
827 9388, 1615, 1623, 1604, 1637, 1627, 1636, 9388, 1631, 1634,
828 1633, 1641, 1632, 1656, 1661, 1657, 1658, 1659, 1663, 1673,
829 1654, 1682, 1671, 1692, 1706, 1688, 1698, 1683, 1686, 1700,
830 1711, 1693, 1712, 1710, 1709, 1727, 1767, 9388, 1722, 1730,
831
832 1719, 1733, 1731, 1757, 1771, 1750, 1758, 1785, 1755, 1794,
833 1782, 1789, 1803, 1788, 1798, 1795, 1792, 1826, 1814, 1822,
834 1820, 1821, 1815, 1831, 1830, 1824, 1844, 1846, 9388, 1841,
835 1851, 1865, 1857, 1860, 1853, 1862, 1866, 1856, 1884, 1877,
836 1883, 1867, 1887, 1721, 1870, 1886, 1905, 1894, 1904, 1902,
837 1908, 1914, 1917, 1921, 1911, 1956, 1915, 1909, 1926, 1944,
838 1945, 1949, 1957, 1963, 1938, 1948, 1958, 1964, 1943, 1965,
839 1971, 1972, 1955, 1975, 1976, 1984, 1989, 1979, 1990, 1996,
840 2007, 1998, 1988, 2014, 2002, 2006, 2017, 2022, 2016, 2039,
841 2034, 2031, 2037, 2040, 2033, 2043, 2049, 2053, 9388, 2044,
842
843 2064, 2059, 2077, 2067, 2082, 2079, 2071, 2070, 2086, 2083,
844 2097, 2098, 2092, 2107, 2108, 2101, 2112, 2110, 2106, 2099,
845 2128, 2142, 2133, 2141, 2120, 2137, 2147, 2145, 2157, 2153,
846 2134, 2161, 2162, 2154, 2158, 2177, 2175, 2160, 2181, 2186,
847 2172, 2194, 2193, 2198, 2180, 2199, 2205, 2234, 2213, 2178,
848 2229, 2217, 2233, 2221, 2224, 2227, 2228, 2226, 2238, 2248,
849 2240, 2244, 2253, 2260, 2258, 2269, 2255, 2262, 2274, 2271,
850 2265, 2272, 2286, 2275, 2287, 2282, 2304, 2297, 2301, 2280,
851 2311, 2315, 2318, 2307, 2314, 2321, 2324, 2320, 2338, 2327,
852 2337, 2350, 2351, 2356, 2363, 2342, 2359, 2364, 2362, 2365,
853
854 2367, 2370, 2369, 2377, 2384, 2396, 2392, 2395, 2389, 2412,
855 2417, 2413, 2415, 2419, 9388, 2402, 2422, 2404, 2423, 2429,
856 2408, 2425, 2435, 2430, 2451, 2445, 2434, 2444, 2490, 9388,
857 2452, 9388, 9388, 2449, 9388, 9388, 2460, 2471, 9388, 2474,
858 2479, 2457, 2493, 2504, 2507, 2500, 2496, 2489, 2498, 2486,
859 2545, 2516, 2523, 2515, 2524, 2529, 2550, 2535, 2539, 2560,
860 2534, 2562, 2583, 2561, 2581, 2578, 2589, 2595, 2598, 2597,
861 2599, 2601, 2605, 2602, 2592, 2608, 2586, 2617, 2610, 2639,
862 2627, 2629, 2645, 2630, 2635, 2628, 2622, 2653, 2651, 2664,
863 9388, 2655, 2657, 2666, 2663, 2670, 2673, 2665, 2675, 2679,
864
865 2681, 2678, 2689, 2691, 2687, 2682, 2688, 2690, 2703, 2704,
866 2717, 2700, 9388, 2713, 2715, 2705, 2720, 2726, 2730, 2731,
867 2723, 2714, 2734, 2732, 2773, 2747, 2740, 2750, 2756, 2752,
868 2775, 9388, 2779, 2771, 2763, 2780, 2766, 2768, 2774, 2777,
869 2789, 2801, 2795, 2793, 2805, 2798, 2824, 2820, 2815, 2811,
870 2819, 2825, 2821, 2834, 2840, 2843, 2832, 2844, 2845, 2849,
871 2851, 2855, 2857, 2848, 2854, 2865, 2860, 2871, 2866, 2870,
872 2888, 2890, 2876, 2887, 2884, 2881, 2904, 2893, 2906, 2892,
873 2911, 2923, 2908, 2925, 2912, 2922, 2945, 2926, 2938, 2943,
874 2934, 2939, 2953, 2948, 9388, 2936, 2950, 9388, 2949, 2954,
875
876 2952, 2999, 2989, 2978, 2969, 2992, 2970, 2994, 2991, 3000,
877 3007, 3009, 3043, 3019, 3018, 3036, 3029, 3046, 3037, 3048,
878 3054, 3039, 3055, 3021, 3056, 3067, 2951, 3059, 3058, 615,
879 3070, 3071, 3065, 3073, 3120, 3078, 3097, 3089, 3092, 3105,
880 3109, 3100, 3096, 3123, 3124, 3122, 3082, 3147, 3132, 3127,
881 3141, 3158, 3074, 3156, 3155, 9388, 3161, 3159, 3171, 3172,
882 3151, 3168, 3187, 3174, 9388, 3185, 3188, 3180, 3186, 3191,
883 3189, 3201, 3202, 3211, 3210, 3214, 3223, 3227, 3228, 3229,
884 3215, 9388, 3224, 9388, 3217, 3242, 3220, 3250, 3247, 3233,
885 3263, 3266, 9388, 9388, 3267, 3261, 3275, 3216, 3269, 9388,
886
887 3284, 3283, 9388, 3303, 3278, 3287, 3259, 3296, 3295, 3302,
888 3305, 3289, 3297, 3292, 3306, 3330, 3311, 9388, 3323, 3316,
889 3331, 3340, 3333, 3341, 3350, 3339, 9388, 3348, 3343, 3363,
890 3361, 3365, 3362, 3356, 3376, 3383, 3367, 3368, 3373, 3377,
891 3378, 3402, 3404, 3403, 3410, 3411, 3407, 9388, 3395, 3397,
892 3414, 3418, 3419, 3412, 3424, 3409, 3428, 3422, 3429, 3442,
893 3452, 3440, 3449, 3443, 3468, 3469, 3450, 3466, 3472, 3454,
894 3464, 3463, 91, 3476, 3474, 3485, 3481, 9388, 3488, 3482,
895 3491, 128, 3499, 3501, 3502, 3492, 3508, 3520, 3503, 3527,
896 3530, 3521, 3531, 3540, 3534, 3518, 3535, 3541, 3538, 3533,
897
898 3544, 3555, 3556, 9388, 3572, 3560, 3559, 3566, 3578, 3565,
899 3601, 9388, 3587, 3594, 3598, 3589, 3600, 3582, 3610, 3605,
900 3608, 3622, 3614, 3629, 3627, 3633, 3636, 3632, 3642, 9388,
901 3645, 3647, 3657, 3644, 3663, 3651, 3658, 3665, 3666, 3677,
902 3671, 3672, 3679, 3685, 3682, 3684, 3698, 3694, 3688, 3699,
903 3702, 3708, 3718, 3712, 3724, 3715, 3713, 3726, 3727, 9388,
904 3561, 3735, 3742, 3740, 3732, 3739, 3759, 3745, 3776, 3751,
905 3766, 3760, 3784, 3812, 3768, 3779, 3795, 3791, 3796, 3800,
906 3799, 3797, 3805, 3815, 3824, 3829, 3850, 3814, 3836, 3837,
907 3839, 3833, 3856, 3849, 3873, 3874, 3866, 3875, 3898, 3877,
908
909 3806, 3881, 9388, 3884, 3894, 3872, 3886, 3896, 3901, 3902,
910 3915, 3913, 3917, 3911, 3929, 3919, 3908, 3931, 3941, 3936,
911 3947, 3951, 3946, 3943, 3937, 3964, 3966, 3956, 3967, 3970,
912 9388, 3977, 3976, 3968, 3975, 3985, 3986, 3990, 3999, 3996,
913 3988, 3989, 4005, 3998, 4016, 4002, 4015, 4012, 4028, 4013,
914 9388, 4032, 4023, 4029, 4027, 4039, 4043, 4047, 4050, 4055,
915 4062, 4059, 4049, 4066, 4068, 4056, 9388, 4078, 4086, 4079,
916 4090, 4083, 4081, 4077, 4097, 4087, 9388, 4094, 4096, 4095,
917 4103, 4106, 4114, 9388, 4108, 4111, 4112, 4117, 4128, 4115,
918 4130, 4145, 4133, 4124, 4136, 4156, 4150, 4139, 4160, 9388,
919
920 4151, 4174, 4164, 4159, 4163, 4179, 4169, 4185, 4194, 4195,
921 4205, 4196, 9388, 4190, 4209, 4197, 4219, 4206, 4189, 4220,
922 4223, 4234, 4226, 4221, 4240, 4229, 9388, 4237, 4236, 4242,
923 4256, 4255, 4252, 4258, 4248, 4261, 4271, 4266, 4247, 4276,
924 4275, 4287, 4288, 4296, 4281, 4297, 4304, 4298, 4300, 4310,
925 4311, 4315, 4316, 4320, 4329, 4335, 4328, 4324, 4343, 4325,
926 4340, 4351, 4349, 4352, 9388, 4354, 4355, 4356, 4342, 4346,
927 4370, 4373, 4367, 4362, 4371, 4385, 4390, 4382, 4380, 4408,
928 4410, 4386, 4401, 4397, 4400, 4405, 4420, 4411, 4422, 4413,
929 4409, 4429, 4418, 4426, 4432, 4433, 4453, 4435, 4436, 4445,
930
931 4446, 4456, 4447, 4452, 4449, 4472, 4473, 4484, 4486, 4482,
932 4489, 4477, 4479, 4483, 4499, 9388, 4480, 4503, 4504, 4502,
933 4511, 4521, 4528, 4529, 4524, 4523, 4532, 4530, 4538, 4520,
934 4525, 4548, 4546, 4544, 9388, 4535, 9388, 4551, 4569, 4557,
935 4581, 4559, 9388, 4577, 9388, 4580, 4582, 4571, 4573, 9388,
936 4585, 4570, 4584, 4591, 4598, 4600, 4603, 4597, 4609, 4604,
937 4617, 4610, 4618, 4614, 4615, 4637, 4620, 4625, 4641, 4636,
938 4654, 4652, 4647, 4657, 4649, 4648, 4665, 4653, 4677, 9388,
939 4687, 4673, 4670, 4676, 4686, 4681, 4666, 4700, 4697, 4692,
940 4703, 4707, 4711, 4716, 4715, 4724, 4731, 4730, 4717, 4745,
941
942 9388, 4727, 4746, 4733, 4743, 9388, 4750, 4732, 4760, 4764,
943 4753, 4748, 4754, 4768, 4773, 4772, 4777, 4758, 4800, 4802,
944 4781, 4804, 9388, 4775, 4805, 4787, 4816, 4809, 4820, 4825,
945 4817, 4827, 4834, 4826, 4833, 4829, 4830, 4832, 4843, 4837,
946 4831, 4846, 4861, 4873, 4849, 4869, 4871, 4875, 4859, 4862,
947 4864, 4865, 4867, 4883, 4885, 4888, 4891, 4912, 4898, 9388,
948 4893, 4904, 4906, 4926, 4907, 4920, 4908, 4915, 4924, 9388,
949 4923, 4932, 4933, 4937, 4947, 4942, 4944, 4943, 4950, 4953,
950 4946, 4959, 4969, 4971, 9388, 4977, 9388, 4974, 4979, 4983,
951 4990, 4988, 4984, 5004, 4991, 5003, 4993, 5008, 5017, 5006,
952
953 5005, 5014, 5009, 5033, 5029, 5051, 5037, 5027, 5040, 5039,
954 5044, 5043, 5049, 9388, 9388, 5048, 5050, 5062, 5065, 5070,
955 5077, 5086, 5084, 5078, 5076, 5091, 5080, 5122, 9388, 5088,
956 5104, 5105, 5111, 5129, 5108, 5130, 5138, 5131, 5139, 5134,
957 9388, 5117, 5128, 5146, 5132, 5159, 5152, 9388, 5143, 9388,
958 5155, 5156, 5163, 5167, 5164, 5172, 5166, 5170, 5160, 5193,
959 5197, 5183, 5200, 5186, 5187, 5190, 5215, 5203, 5223, 5199,
960 5212, 5204, 9388, 5219, 5214, 5225, 5230, 5232, 5233, 5231,
961 5224, 9388, 5241, 5239, 5244, 5250, 5251, 5256, 5245, 5259,
962 5272, 5258, 5264, 9388, 5265, 5262, 5292, 5281, 5277, 5288,
963
964 5298, 5302, 5301, 9388, 5307, 5304, 5315, 5314, 5306, 5321,
965 5324, 5297, 5308, 5319, 5320, 5331, 5344, 5334, 5340, 5341,
966 5348, 5350, 5335, 5361, 5364, 5363, 5360, 5379, 5368, 9388,
967 5365, 5375, 5381, 5383, 5396, 5393, 5400, 5385, 5404, 5395,
968 5413, 5416, 5405, 5408, 5414, 5433, 5423, 5435, 9388, 5424,
969 5421, 5450, 5422, 5443, 5452, 5434, 5453, 5455, 5442, 5451,
970 5462, 5470, 5463, 5464, 5474, 5456, 5478, 5480, 5497, 5482,
971 9388, 5511, 5490, 5495, 5506, 5501, 5503, 5521, 5516, 5499,
972 5513, 5532, 5515, 5535, 5524, 5527, 5546, 5550, 5533, 9388,
973 9388, 5555, 5531, 5548, 9388, 5558, 5543, 5570, 5566, 5551,
974
975 5554, 5579, 5578, 5562, 5589, 5574, 5576, 9388, 5593, 5584,
976 5575, 5597, 5612, 5613, 5609, 5605, 5614, 5601, 5599, 5617,
977 5627, 5615, 5608, 5637, 5648, 5651, 5632, 5640, 5643, 9388,
978 5642, 5631, 5644, 5666, 5654, 5657, 9388, 5658, 5664, 5680,
979 5674, 5687, 5684, 5681, 5694, 5675, 5689, 5679, 5700, 5702,
980 5706, 5714, 5713, 5707, 5717, 5719, 5727, 9388, 5709, 5732,
981 5715, 5737, 9388, 5738, 5756, 5755, 9388, 5757, 5734, 5758,
982 5754, 5762, 9388, 5759, 5764, 5761, 5742, 5777, 5752, 5781,
983 5775, 5784, 9388, 5785, 5786, 5787, 9388, 5800, 5798, 5806,
984 5809, 5790, 5820, 5812, 5811, 5815, 5813, 9388, 5823, 9388,
985
986 5826, 5819, 5833, 9388, 5832, 5839, 5830, 5841, 5843, 5849,
987 5858, 5861, 5865, 5847, 5860, 5855, 5853, 5871, 5878, 5882,
988 5866, 5877, 5879, 5881, 9388, 5900, 5889, 5894, 5898, 5913,
989 5906, 5905, 5899, 5924, 5910, 9388, 9388, 5919, 9388, 5928,
990 5922, 5927, 9388, 5921, 5939, 5940, 5935, 5956, 5958, 5959,
991 5961, 9388, 5964, 5967, 9388, 5948, 5966, 5978, 5970, 5954,
992 5962, 5973, 5981, 5985, 5980, 5998, 5987, 5999, 5989, 6003,
993 6016, 9388, 5993, 6000, 6009, 6024, 6014, 6019, 6025, 6026,
994 6027, 9388, 6029, 6042, 6045, 6052, 6053, 9388, 6055, 9388,
995 6049, 6056, 6058, 6066, 6054, 9388, 6075, 6072, 6078, 6062,
996
997 6091, 6099, 6093, 6102, 6085, 6089, 6111, 6105, 6095, 6106,
998 9388, 6100, 6117, 6121, 6123, 6125, 6122, 6116, 6134, 6143,
999 6129, 6146, 6153, 6148, 6156, 6158, 6155, 6163, 6161, 9388,
1000 6184, 6174, 6144, 6199, 6188, 6186, 9388, 6190, 6173, 6203,
1001 9388, 6191, 6187, 6200, 6210, 6194, 6201, 6206, 6218, 6223,
1002 9388, 6228, 6229, 6224, 6237, 6243, 6245, 9388, 9388, 6247,
1003 9388, 6246, 6234, 6261, 6259, 6233, 6269, 6216, 6273, 6262,
1004 6264, 6286, 6287, 6281, 6275, 6306, 6268, 6303, 6296, 6304,
1005 6291, 9388, 9388, 6307, 6314, 6316, 6320, 6321, 6323, 6309,
1006 6333, 6332, 6343, 6345, 6341, 6356, 9388, 6349, 6338, 6351,
1007
1008 6354, 9388, 6336, 6352, 6363, 6360, 6364, 6371, 6350, 6372,
1009 6390, 6378, 6394, 6393, 6388, 6399, 6380, 6391, 6396, 6410,
1010 6407, 6398, 6414, 6428, 9388, 6434, 6421, 6424, 6422, 6420,
1011 6427, 6431, 6438, 6436, 9388, 6447, 9388, 6451, 6439, 6454,
1012 6466, 6475, 6471, 6479, 6470, 6472, 6477, 6484, 6488, 6492,
1013 6496, 6493, 6487, 6504, 6513, 6501, 6507, 6511, 9388, 6519,
1014 6506, 6509, 6518, 6537, 6539, 6523, 6541, 6536, 6544, 6532,
1015 6543, 6555, 6558, 6546, 6552, 6551, 6553, 9388, 6557, 6567,
1016 6564, 6576, 6559, 6584, 6592, 6596, 6593, 6579, 6586, 6581,
1017 6602, 9388, 6587, 6582, 6603, 6611, 6616, 6614, 6621, 6620,
1018
1019 6622, 9388, 6631, 6624, 6629, 6632, 6634, 6639, 6628, 6649,
1020 6656, 6666, 6667, 9388, 6662, 6664, 6673, 6655, 6659, 6677,
1021 6683, 6676, 9388, 6701, 6703, 6694, 6695, 6690, 6718, 6714,
1022 6715, 6691, 6710, 6721, 6717, 6722, 6725, 6730, 6713, 6737,
1023 6760, 6752, 9388, 6742, 9388, 6750, 6764, 6768, 6766, 6769,
1024 6751, 9388, 6754, 6772, 6640, 6789, 6776, 9388, 6778, 6791,
1025 6793, 6794, 9388, 6810, 6809, 6799, 6811, 6782, 6783, 9388,
1026 6822, 6821, 6820, 6832, 6833, 6830, 6829, 6828, 6843, 6841,
1027 6831, 6835, 6860, 6837, 6849, 6862, 9388, 6869, 6871, 6865,
1028 6870, 6868, 6876, 6859, 6878, 6883, 6880, 9388, 6886, 6888,
1029
1030 6894, 6897, 6895, 6896, 6912, 6924, 6919, 6909, 6910, 6913,
1031 6923, 6921, 9388, 6918, 6931, 6944, 6936, 6926, 6958, 9388,
1032 6953, 9388, 6950, 6965, 6967, 6946, 6974, 9388, 9388, 6977,
1033 6938, 6956, 6978, 6973, 9388, 9388, 6979, 9388, 6980, 9388,
1034 6976, 6994, 9388, 9388, 6991, 6985, 7008, 7009, 6988, 9388,
1035 7016, 9388, 7024, 7019, 7006, 7004, 7023, 9388, 7015, 7017,
1036 7027, 9388, 7021, 7037, 7040, 7044, 9388, 7039, 7042, 7033,
1037 7047, 9388, 7061, 7063, 7068, 7057, 7067, 7072, 7078, 7056,
1038 7079, 7069, 7082, 7071, 7096, 7110, 7111, 7112, 7113, 7103,
1039 7098, 7114, 7120, 7123, 7105, 7122, 7106, 7129, 7127, 7133,
1040
1041 7131, 7135, 7144, 7147, 7150, 7151, 7146, 7160, 7148, 7149,
1042 7164, 7158, 7154, 7177, 7175, 7174, 7185, 7191, 7182, 7196,
1043 7193, 7201, 9388, 7195, 7184, 7194, 7211, 7215, 7222, 7226,
1044 7219, 7234, 7235, 9388, 7238, 9388, 7244, 7230, 7240, 7228,
1045 7237, 9388, 7249, 7232, 7246, 7260, 7261, 7262, 7279, 7263,
1046 7266, 7267, 7290, 9388, 7286, 7278, 7276, 7293, 7299, 9388,
1047 7295, 7300, 7296, 7297, 7294, 7317, 7312, 7316, 7319, 7318,
1048 7333, 7336, 7320, 7331, 7342, 7338, 7350, 7356, 7352, 7339,
1049 7353, 7341, 7366, 7358, 7364, 7368, 7385, 7374, 7386, 7389,
1050 9388, 7375, 9388, 7381, 7377, 7380, 7383, 7401, 7398, 7405,
1051
1052 9388, 9388, 7400, 7419, 7409, 7411, 7413, 7429, 7430, 9388,
1053 7427, 7433, 7435, 7428, 9388, 7444, 7423, 7445, 7439, 9388,
1054 7436, 7458, 7469, 7452, 7455, 7476, 7472, 7471, 7462, 7475,
1055 7481, 9388, 9388, 9388, 9388, 7482, 7466, 7484, 7493, 7499,
1056 7486, 7507, 7490, 7503, 9388, 7497, 9388, 9388, 7514, 7520,
1057 7509, 7522, 7513, 7510, 7526, 7524, 9388, 7540, 7533, 7537,
1058 7543, 7544, 7557, 7561, 7556, 7567, 7548, 7550, 7578, 7569,
1059 7575, 7564, 7581, 7580, 7587, 9388, 9388, 7584, 7589, 7595,
1060 7609, 7605, 7607, 7601, 7622, 7596, 7613, 7611, 7604, 7621,
1061 7614, 7626, 7631, 7625, 7632, 9388, 7636, 7628, 7647, 9388,
1062
1063 7639, 9388, 7649, 7656, 7646, 7652, 7658, 7659, 7671, 7660,
1064 9388, 9388, 7657, 7685, 7676, 9388, 9388, 7670, 7673, 7686,
1065 7690, 7694, 7687, 7695, 7692, 7708, 7691, 9388, 7696, 9388,
1066 7709, 7720, 7715, 7700, 7731, 7735, 7744, 7740, 7733, 7738,
1067 9388, 7736, 7737, 9388, 7742, 7734, 7739, 9388, 7752, 7756,
1068 7749, 7755, 9388, 7757, 7781, 7773, 9388, 7759, 9388, 7767,
1069 7783, 7777, 7795, 9388, 7771, 7792, 9388, 7796, 7797, 7799,
1070 7790, 9388, 7807, 9388, 7786, 7809, 7810, 7821, 7812, 7828,
1071 7818, 7814, 7826, 7847, 7835, 7839, 9388, 9388, 73, 7849,
1072 7823, 7836, 7837, 7845, 7852, 7844, 7861, 7860, 9388, 9388,
1073
1074 7863, 9388, 7867, 7874, 9388, 7855, 7878, 7884, 7882, 7886,
1075 7871, 7883, 7879, 7897, 7901, 7911, 7905, 7898, 7913, 7934,
1076 7936, 7916, 7923, 7932, 7938, 7944, 7946, 7937, 7949, 7931,
1077 7929, 7952, 7948, 7963, 7960, 7950, 7965, 9388, 7983, 7986,
1078 7988, 7971, 9388, 7993, 7992, 8000, 7996, 9388, 8002, 7994,
1079 7995, 7997, 9388, 7987, 8007, 8013, 8016, 8020, 8041, 8024,
1080 8029, 8042, 9388, 9388, 9388, 8034, 8045, 9388, 8048, 8036,
1081 8028, 8031, 9388, 8051, 8047, 9388, 9388, 8054, 8058, 8062,
1082 8075, 9388, 8071, 9388, 8063, 9388, 8086, 8087, 8094, 8088,
1083 9388, 8096, 8099, 9388, 8093, 8104, 8105, 8098, 8109, 8089,
1084
1085 8112, 9388, 8138, 8132, 8135, 8141, 8124, 8131, 8125, 8144,
1086 8127, 8152, 8123, 8153, 9388, 8151, 8156, 8158, 8159, 8147,
1087 8162, 8169, 9388, 8171, 9388, 8181, 9388, 8179, 8182, 8190,
1088 8188, 8183, 8186, 8193, 8198, 8206, 8214, 8209, 8211, 8202,
1089 8212, 9388, 9388, 8216, 8235, 9388, 8219, 9388, 8242, 9388,
1090 8228, 8229, 8232, 8246, 9388, 8247, 8233, 8234, 8249, 9388,
1091 8262, 8238, 8258, 8266, 9388, 9388, 8261, 8275, 8278, 8260,
1092 8286, 8291, 8272, 8296, 8287, 8285, 8280, 8302, 8284, 8289,
1093 8297, 8306, 8319, 8325, 9388, 9388, 9388, 8308, 8311, 8337,
1094 8334, 8333, 8342, 8321, 9388, 8335, 8341, 8338, 8332, 8350,
1095
1096 8354, 8355, 9388, 8361, 8356, 8359, 8362, 8376, 8360, 8364,
1097 8381, 9388, 8385, 8392, 8388, 8382, 8389, 8395, 8397, 8404,
1098 8400, 8399, 8410, 8409, 9388, 8418, 9388, 9388, 8411, 9388,
1099 8406, 8407, 8417, 8431, 9388, 8435, 8433, 8422, 8434, 8446,
1100 8448, 9388, 8455, 8444, 8449, 8458, 9388, 9388, 8451, 9388,
1101 8453, 8460, 8440, 8477, 8467, 8475, 8484, 8481, 9388, 8469,
1102 8473, 8492, 8476, 8495, 9388, 8490, 8480, 8485, 8494, 9388,
1103 8491, 8507, 8512, 8506, 8526, 9388, 8532, 8515, 8543, 8539,
1104 9388, 8520, 8542, 8533, 9388, 9388, 8548, 8549, 8547, 9388,
1105 9388, 9388, 8552, 8550, 8561, 8563, 9388, 8565, 8585, 8587,
1106
1107 8595, 8564, 9388, 8581, 8571, 8582, 9388, 9388, 8577, 8579,
1108 8598, 8600, 9388, 9388, 8586, 8594, 8606, 8593, 8590, 9388,
1109 8613, 8609, 8614, 8619, 8634, 8620, 8638, 8639, 8644, 8654,
1110 8625, 8640, 8632, 8652, 8658, 8637, 8660, 8659, 8662, 8669,
1111 8672, 8661, 8686, 9388, 9388, 8673, 9388, 8674, 8683, 9388,
1112 9388, 8693, 8694, 8697, 8698, 8702, 8704, 8705, 9388, 8699,
1113 8706, 8700, 8695, 8696, 9388, 8711, 8712, 8713, 8724, 8729,
1114 8743, 8727, 8745, 9388, 9388, 8731, 8747, 8720, 8751, 8735,
1115 9388, 8756, 8765, 8734, 8758, 8762, 8764, 8768, 9388, 8760,
1116 8779, 9388, 9388, 8790, 8783, 9388, 9388, 8770, 9388, 9388,
1117
1118 9388, 9388, 9388, 9388, 9388, 8797, 9388, 8786, 8801, 8802,
1119 8803, 9388, 8789, 8795, 8810, 8813, 8791, 9388, 8811, 8808,
1120 8815, 8841, 8821, 8844, 8837, 8830, 8835, 8838, 8831, 8840,
1121 8842, 8847, 8861, 8852, 8870, 8864, 8880, 9388, 9388, 9388,
1122 8876, 8867, 8889, 8883, 8895, 8897, 8896, 8899, 8882, 8886,
1123 8902, 8903, 8910, 8893, 8912, 8909, 8907, 8919, 8933, 8940,
1124 8923, 8941, 8944, 8932, 8930, 8951, 9388, 8937, 9388, 8935,
1125 9388, 9388, 8955, 8960, 8948, 8950, 8968, 8971, 8958, 8973,
1126 8962, 8979, 8990, 9388, 8991, 9388, 9388, 8976, 8974, 9388,
1127 8978, 8989, 9388, 8982, 8999, 8988, 9001, 9009, 9006, 9005,
1128
1129 9018, 9012, 9388, 9388, 9015, 9020, 9021, 9027, 9039, 9048,
1130 9029, 9041, 9050, 9053, 9032, 9065, 9388, 9061, 9059, 9063,
1131 9388, 9066, 9057, 9062, 9060, 9075, 9077, 9080, 9068, 9388,
1132 9073, 9388, 9083, 9100, 9093, 9086, 9092, 9101, 9115, 9113,
1133 9104, 9388, 9096, 9123, 9110, 9132, 9134, 9125, 9139, 9128,
1134 9148, 9149, 9151, 9158, 9156, 9157, 9150, 9160, 9152, 9388,
1135 9167, 9170, 9388, 9177, 9181, 9174, 9176, 9187, 9388, 9172,
1136 9183, 9192, 9199, 9205, 9210, 9388, 9206, 9207, 9214, 9388,
1137 9213, 9388, 9388, 9219, 9204, 9209, 9212, 9225, 9388, 9388,
1138 9388, 9268, 9275, 9282, 9289, 9296, 9303, 9310, 102, 9317,
1139
1140 9324, 9331, 9338, 9345, 9352, 9359, 9366, 9373, 9380
784 131, 137, 112, 118, 123, 142, 429, 383, 96, 9568,
785 9568, 9568, 160, 185, 116, 183, 229, 132, 175, 173,
786 232, 50, 66, 120, 263, 275, 151, 323, 134, 375,
787 416, 286, 308, 283, 126, 237, 374, 9568, 9568, 9568,
788 95, 372, 9568, 9568, 9568, 186, 361, 373, 9568, 9568,
789 9568, 258, 309, 9568, 9568, 9568, 104, 293, 9568, 266,
790 9568, 167, 351, 281, 311, 9568, 9568, 9568, 369, 268,
791 9568, 9568, 9568, 146, 252, 378, 177, 0, 392, 0,
792 0, 303, 270, 235, 317, 362, 344, 384, 178, 177,
793
794 226, 420, 377, 330, 379, 402, 414, 419, 410, 453,
795 319, 367, 440, 429, 447, 454, 463, 459, 458, 489,
796 495, 484, 474, 493, 499, 460, 500, 504, 510, 492,
797 524, 520, 532, 525, 537, 529, 412, 533, 558, 539,
798 531, 548, 565, 559, 250, 505, 587, 575, 574, 584,
799 570, 580, 610, 601, 595, 604, 607, 614, 615, 208,
800 294, 205, 236, 194, 670, 225, 180, 326, 158, 674,
801 678, 0, 623, 152, 682, 176, 130, 653, 650, 680,
802 661, 609, 675, 670, 676, 666, 671, 682, 672, 691,
803 720, 697, 696, 703, 256, 726, 770, 731, 723, 714,
804
805 734, 737, 724, 718, 745, 740, 749, 759, 766, 728,
806 773, 760, 772, 787, 819, 789, 762, 797, 339, 802,
807 827, 378, 808, 443, 832, 805, 699, 829, 725, 838,
808 836, 844, 843, 835, 852, 847, 866, 860, 849, 864,
809 875, 874, 871, 865, 868, 911, 885, 878, 893, 892,
810 894, 907, 908, 902, 913, 781, 909, 920, 921, 935,
811 912, 937, 930, 919, 943, 950, 948, 956, 957, 938,
812 958, 955, 953, 960, 954, 973, 969, 984, 994, 986,
813 993, 1002, 989, 995, 988, 996, 999, 987, 1013, 1014,
814 1022, 1026, 144, 1020, 1029, 1031, 1019, 1028, 1039, 1041,
815
816 1051, 1052, 1053, 1036, 1057, 1062, 1072, 1069, 1070, 1076,
817 1079, 1088, 1055, 1067, 1065, 1082, 1092, 1098, 1087, 1100,
818 1091, 1103, 1115, 1106, 1120, 1099, 1134, 1132, 1127, 1159,
819 1136, 1128, 1148, 1180, 1154, 1147, 1170, 1162, 1193, 1187,
820 1169, 1191, 1198, 1204, 1206, 1207, 1199, 1197, 1218, 1226,
821 1217, 1225, 1224, 1220, 1235, 1241, 1242, 1264, 9568, 1250,
822 1253, 1246, 1266, 1273, 1269, 1261, 1301, 1280, 1259, 1286,
823 1223, 1303, 1306, 1354, 1294, 1331, 1297, 1311, 1296, 9568,
824 1337, 1318, 1403, 1336, 1353, 1365, 1360, 1347, 1367, 1361,
825 1363, 1382, 1323, 1381, 1394, 1371, 1416, 1430, 1404, 1409,
826
827 1410, 1364, 1412, 1421, 1437, 1439, 1428, 1436, 1431, 1443,
828 1263, 1455, 1473, 1449, 1458, 1462, 1461, 1477, 1488, 1480,
829 1493, 1482, 1494, 1499, 1476, 1498, 1509, 1522, 1567, 1466,
830 1518, 1524, 1526, 1519, 1537, 1538, 1541, 1548, 1560, 1556,
831 1546, 1569, 1549, 1533, 1573, 1564, 1591, 1587, 1594, 1586,
832 1582, 1590, 1597, 1614, 1604, 1600, 1608, 1621, 1607, 1628,
833 1624, 1637, 1634, 1619, 1643, 1627, 9568, 1651, 9568, 1635,
834 1650, 1648, 1647, 1664, 1653, 1660, 9568, 1670, 1671, 1666,
835 1667, 1687, 1683, 1706, 1697, 1691, 1696, 1700, 1695, 1710,
836 1711, 1701, 1717, 1731, 1726, 1730, 1719, 1718, 1738, 1745,
837
838 1728, 1746, 1744, 1737, 1748, 1788, 9568, 1754, 1764, 1755,
839 1765, 1782, 1786, 1813, 1770, 1800, 1817, 1801, 1825, 1811,
840 1823, 1816, 1824, 1828, 1841, 1829, 1857, 1844, 1849, 1850,
841 1843, 1845, 1868, 1855, 1860, 1863, 1874, 9568, 1884, 1892,
842 1768, 1871, 1882, 1885, 1888, 1898, 1881, 1910, 1890, 1916,
843 1908, 1919, 1921, 1933, 1922, 1938, 1924, 1939, 1930, 1935,
844 1947, 1953, 1959, 1954, 1958, 1960, 1955, 1964, 1972, 1976,
845 1984, 1977, 1993, 1969, 1980, 1986, 1996, 1979, 2000, 1991,
846 2004, 1987, 2003, 2011, 2017, 2020, 2014, 2021, 2019, 2028,
847 2025, 2018, 2038, 2034, 2037, 2059, 2053, 2048, 2060, 2051,
848
849 2073, 2061, 2065, 2077, 2078, 2080, 2076, 9568, 2098, 2088,
850 2099, 2107, 2108, 2109, 2114, 2100, 2104, 2110, 2115, 2118,
851 2127, 2130, 2139, 2132, 2136, 2144, 2146, 2137, 2150, 2159,
852 2169, 2167, 2160, 2154, 2168, 2171, 2142, 2189, 2185, 2196,
853 2197, 2177, 2188, 2206, 2192, 2194, 2217, 2213, 2199, 2216,
854 2223, 2211, 2229, 2232, 2243, 2215, 2235, 2260, 2253, 2240,
855 2244, 2249, 2258, 2252, 2264, 2266, 2268, 2270, 2263, 2299,
856 2294, 2291, 2288, 2290, 2296, 2293, 2295, 2304, 2306, 2310,
857 2316, 2317, 2321, 2325, 2320, 2326, 2327, 2331, 2341, 2330,
858 2347, 2358, 2362, 2356, 2352, 2353, 2367, 2368, 2374, 2365,
859
860 2369, 2392, 2397, 2396, 2400, 2401, 2386, 2407, 2409, 2398,
861 2411, 2410, 2416, 2432, 2436, 2428, 2437, 2429, 2438, 2430,
862 2272, 2449, 2453, 2455, 2445, 9568, 2447, 2380, 2441, 2471,
863 2472, 2464, 2465, 2383, 2478, 2463, 2476, 2479, 2480, 2530,
864 9568, 2481, 9568, 9568, 2492, 9568, 9568, 2511, 2495, 9568,
865 2518, 2517, 2498, 2529, 2536, 2545, 2543, 2516, 2541, 2538,
866 2553, 2585, 2566, 2557, 2556, 2563, 2564, 2591, 2594, 2581,
867 2602, 2582, 2593, 2633, 2618, 2609, 2620, 2627, 2638, 2636,
868 2637, 2643, 2575, 2644, 2630, 2631, 2645, 2654, 2634, 2670,
869 2655, 2664, 2671, 2683, 2668, 2675, 2666, 2694, 2691, 2690,
870
871 2699, 9568, 2695, 2697, 2708, 2702, 2709, 2713, 2714, 2711,
872 2725, 2728, 2722, 2715, 2726, 2732, 2727, 2721, 2742, 2744,
873 2741, 2743, 2756, 2767, 2746, 9568, 2754, 2766, 2752, 2769,
874 2771, 2779, 2781, 2770, 2760, 2790, 2778, 2800, 2788, 2795,
875 2801, 2805, 2797, 2807, 2827, 9568, 2802, 2819, 2812, 2818,
876 2815, 2824, 2829, 2813, 2839, 2834, 2841, 2851, 2840, 2850,
877 2877, 2865, 2861, 2856, 2866, 2878, 2867, 2882, 2879, 2870,
878 2886, 2883, 2891, 2892, 2893, 2897, 2901, 2928, 2930, 2913,
879 2934, 2917, 2918, 2937, 2939, 2929, 2922, 2947, 2945, 2925,
880 2935, 2942, 2948, 2952, 2958, 2981, 2960, 2982, 2965, 2979,
881
882 2993, 2974, 2986, 2994, 2969, 2985, 2997, 2996, 9568, 2976,
883 3011, 9568, 3001, 2999, 3009, 3055, 3034, 3036, 3028, 3004,
884 3020, 3046, 3038, 3042, 3054, 3061, 3079, 3069, 3070, 3085,
885 3077, 3094, 3083, 3102, 3086, 3087, 3103, 3106, 3112, 3119,
886 3125, 3128, 3131, 381, 3130, 3110, 3121, 3120, 3167, 3137,
887 3145, 3129, 3151, 3152, 3156, 3174, 3157, 3170, 3172, 3169,
888 3165, 3198, 3192, 3188, 3194, 3199, 3205, 3207, 3202, 9568,
889 3212, 3220, 3208, 3219, 3215, 3241, 3235, 3226, 9568, 3234,
890 3239, 3236, 3246, 3247, 3238, 3253, 3244, 3255, 3261, 3265,
891 3251, 3267, 3280, 3272, 3295, 9568, 3282, 9568, 3279, 3285,
892
893 3283, 3287, 3297, 3296, 3312, 3313, 9568, 9568, 3314, 3321,
894 3299, 3326, 3322, 3320, 3323, 9568, 3327, 3356, 9568, 3333,
895 3349, 3341, 3339, 3351, 3347, 3358, 3354, 3377, 3353, 3380,
896 3372, 3379, 3374, 9568, 3386, 3370, 3385, 3397, 3392, 3394,
897 3400, 3404, 3383, 9568, 3414, 3407, 3419, 3431, 3428, 3424,
898 3421, 3434, 3441, 3422, 3426, 3436, 3435, 3430, 3449, 3459,
899 3466, 3468, 3469, 3464, 9568, 3457, 3458, 3482, 3476, 3479,
900 3480, 3483, 3470, 3485, 3484, 3491, 3502, 3512, 3505, 3508,
901 3503, 3529, 3530, 3511, 3528, 3527, 3515, 3531, 3524, 91,
902 3519, 3532, 3543, 3540, 9568, 3547, 3548, 3549, 128, 3557,
903
904 3558, 3567, 3572, 3574, 3578, 3560, 3586, 3587, 3575, 3585,
905 3593, 3592, 3589, 3594, 3604, 3596, 3606, 3619, 3600, 3610,
906 9568, 3628, 3618, 3616, 3624, 3635, 3620, 3644, 9568, 3646,
907 3647, 3652, 3654, 3662, 3651, 3661, 3653, 3668, 3673, 3678,
908 3674, 3685, 3689, 3684, 3691, 3687, 9568, 3703, 3699, 3710,
909 3707, 3712, 3718, 3714, 3713, 3720, 3719, 3724, 3733, 3725,
910 3731, 3734, 3745, 3746, 3750, 3742, 3747, 3751, 3759, 3761,
911 3760, 3769, 3763, 3772, 3774, 3765, 9568, 3805, 3787, 3790,
912 3799, 3791, 3794, 3808, 3803, 3825, 3800, 3809, 3820, 3821,
913 3860, 3826, 3835, 3848, 3827, 3840, 3849, 3862, 3854, 3872,
914
915 3863, 3853, 3881, 3900, 3887, 3866, 3885, 3893, 3892, 3888,
916 3898, 3922, 3923, 3921, 3924, 3947, 3930, 3917, 3932, 3939,
917 3941, 9568, 3942, 3836, 3927, 3955, 3975, 3962, 3954, 3972,
918 3966, 3969, 3968, 3981, 3970, 3990, 3985, 3993, 3992, 4004,
919 3996, 4007, 4008, 4003, 3997, 4013, 4025, 4011, 4029, 4030,
920 9568, 4036, 4041, 4028, 4035, 4050, 4031, 4054, 4059, 4056,
921 4043, 4048, 4065, 4052, 4073, 4062, 4075, 4058, 4088, 4066,
922 9568, 4092, 4083, 4096, 4091, 4099, 4089, 4103, 4109, 4115,
923 4113, 4116, 4111, 4100, 4127, 4124, 9568, 4118, 4149, 4141,
924 4154, 4143, 4131, 4142, 4155, 4139, 9568, 4145, 4147, 4148,
925
926 4162, 4168, 4172, 9568, 4170, 4176, 4164, 4165, 4181, 4174,
927 4182, 4201, 4186, 4189, 4192, 4199, 4207, 4195, 4216, 9568,
928 4205, 4230, 4217, 4227, 4231, 4226, 4223, 4234, 4251, 4233,
929 4244, 4241, 9568, 4269, 4243, 4261, 4280, 4258, 4263, 4266,
930 4276, 4282, 4273, 4274, 4290, 4278, 9568, 4283, 4288, 4301,
931 4311, 4309, 4302, 4304, 4307, 4314, 4308, 4316, 4317, 4322,
932 4329, 4340, 4335, 4346, 4334, 4349, 4354, 4350, 4357, 4343,
933 4359, 4373, 4376, 4369, 4374, 4382, 4364, 4368, 4392, 4399,
934 4403, 4404, 4401, 4405, 9568, 4408, 4407, 4409, 4394, 4410,
935 4400, 4398, 4416, 4419, 4424, 4434, 4443, 4438, 4435, 4458,
936
937 4460, 4436, 4463, 4440, 4447, 4467, 4468, 4453, 4457, 4470,
938 4462, 4487, 4475, 4483, 4479, 4490, 4510, 4489, 4493, 4494,
939 4499, 4495, 4503, 4514, 4506, 4528, 4519, 4523, 4520, 4527,
940 4543, 4539, 4545, 4535, 4551, 4540, 4555, 9568, 4546, 4558,
941 4562, 4559, 4565, 4568, 4578, 4598, 4582, 4586, 4589, 4592,
942 4603, 4591, 4602, 4605, 4595, 4608, 4600, 9568, 4610, 9568,
943 4612, 4626, 4616, 4641, 4625, 9568, 4640, 9568, 4643, 4648,
944 4634, 4635, 9568, 4653, 4637, 4654, 4658, 4661, 4644, 4647,
945 4664, 4668, 4678, 4680, 4681, 4683, 4675, 4667, 4696, 4690,
946 4693, 4707, 4686, 4715, 4714, 4702, 4720, 4708, 4725, 4728,
947
948 4724, 4735, 9568, 4719, 4717, 4738, 4723, 4734, 4744, 4741,
949 4768, 4767, 4755, 4757, 4773, 4765, 4771, 4759, 4785, 4783,
950 4794, 4770, 4796, 9568, 4791, 4807, 4789, 4803, 9568, 4806,
951 4795, 4812, 4823, 4814, 4802, 4810, 4839, 4826, 4830, 4831,
952 4829, 4856, 4836, 4840, 4841, 9568, 4852, 4868, 4853, 4879,
953 4864, 4870, 4886, 4872, 4883, 4889, 4897, 4880, 4881, 4875,
954 4895, 4876, 4912, 4903, 4923, 4920, 4924, 4904, 4921, 4928,
955 4929, 4917, 4913, 4916, 4918, 4943, 4944, 4919, 4940, 4945,
956 4964, 4950, 9568, 4956, 4961, 4962, 4979, 4960, 4970, 4974,
957 4976, 4977, 9568, 4978, 4988, 5004, 4987, 5010, 4997, 5002,
958
959 4995, 5000, 5014, 5005, 5021, 5040, 5017, 9568, 5036, 9568,
960 5032, 5031, 5042, 5053, 5050, 5046, 5063, 5054, 5055, 5067,
961 5060, 5069, 5078, 5072, 5076, 5079, 5095, 5091, 5045, 5075,
962 5089, 5101, 5090, 5096, 5103, 5126, 5106, 5117, 9568, 9568,
963 5115, 5121, 5131, 5127, 5136, 5142, 5149, 5148, 5146, 5134,
964 5141, 5153, 5186, 9568, 5168, 5170, 5161, 5187, 5195, 5175,
965 5194, 5201, 5198, 5190, 5205, 5200, 9568, 5188, 5197, 5210,
966 5213, 5220, 5212, 9568, 5228, 9568, 5215, 5222, 5235, 5237,
967 5231, 5232, 5238, 5240, 5248, 5256, 5262, 5247, 5266, 5257,
968 5258, 5259, 5280, 5275, 5287, 5268, 5281, 5273, 9568, 5292,
969
970 5274, 5295, 5293, 5301, 5304, 5302, 5289, 9568, 5315, 5308,
971 5310, 5313, 5318, 5322, 5334, 5329, 5337, 5335, 5336, 9568,
972 5333, 5326, 5356, 5353, 5340, 5349, 5366, 5369, 5377, 9568,
973 5373, 5375, 5374, 5381, 5376, 5385, 5383, 5370, 5367, 5380,
974 5391, 5401, 5414, 5411, 5410, 5408, 5416, 5417, 5404, 5440,
975 5427, 5415, 5429, 5400, 5413, 9568, 5436, 5441, 5442, 5444,
976 5463, 5459, 5461, 5470, 5474, 5456, 5477, 5479, 5457, 5472,
977 5481, 5490, 5500, 5495, 9568, 5501, 5491, 5515, 5486, 5513,
978 5512, 5499, 5518, 5514, 5517, 5503, 5526, 5528, 5530, 5520,
979 5551, 5534, 5542, 5546, 5553, 5547, 9568, 5576, 5558, 5562,
980
981 5573, 5541, 5568, 5587, 5579, 5578, 5580, 5584, 5582, 5585,
982 5596, 5595, 5618, 5620, 5604, 9568, 9568, 5621, 5602, 5623,
983 9568, 5625, 5609, 5631, 5633, 5628, 5626, 5635, 5629, 5613,
984 5636, 5644, 5651, 9568, 5668, 5677, 5654, 5672, 5680, 5681,
985 9568, 5663, 5685, 5684, 5686, 5678, 5669, 5696, 5690, 5695,
986 5701, 5694, 5723, 5708, 5731, 5707, 5717, 5729, 9568, 5710,
987 5714, 5734, 5738, 5721, 5728, 9568, 5726, 5748, 5761, 5758,
988 5759, 5769, 5767, 5766, 5773, 5753, 5770, 5780, 5776, 5763,
989 5785, 5792, 5787, 5801, 5813, 5814, 5812, 9568, 5808, 5807,
990 5800, 5821, 9568, 5822, 5830, 5797, 9568, 5836, 5811, 5841,
991
992 5839, 5857, 9568, 5842, 5849, 5843, 5831, 5864, 5838, 5866,
993 5862, 5859, 9568, 5863, 5858, 5869, 9568, 5876, 5887, 5872,
994 5892, 5880, 5902, 5889, 5903, 5899, 5901, 9568, 5904, 9568,
995 5914, 5906, 5911, 9568, 5913, 5922, 5915, 5921, 5937, 5938,
996 5945, 5948, 5953, 5935, 5947, 5936, 5939, 5963, 5952, 5964,
997 5942, 5959, 5970, 5962, 9568, 5992, 5978, 5989, 5979, 6000,
998 6002, 5995, 5987, 6005, 6017, 9568, 9568, 6009, 9568, 6015,
999 5997, 6023, 9568, 6006, 6027, 6022, 6026, 6045, 6049, 6047,
1000 6044, 9568, 6055, 6057, 9568, 6033, 6053, 6066, 6060, 6042,
1001 6061, 6062, 6068, 6071, 6084, 6085, 6086, 6087, 6076, 6090,
1002
1003 6103, 9568, 6080, 6083, 6104, 6115, 6107, 6117, 6118, 6130,
1004 6119, 9568, 6133, 6145, 6123, 6146, 6148, 9568, 6131, 9568,
1005 6136, 6144, 6149, 6157, 6150, 9568, 6168, 6165, 6156, 6163,
1006 6180, 6191, 6182, 6194, 6183, 6178, 6196, 6195, 6190, 6192,
1007 6213, 6207, 9568, 6205, 6219, 6202, 6210, 6220, 6216, 6244,
1008 6240, 6239, 6230, 6242, 6249, 6243, 6251, 6253, 6247, 6259,
1009 6266, 9568, 6278, 6271, 6267, 6297, 6277, 6286, 6291, 9568,
1010 6294, 6296, 6302, 9568, 6299, 6300, 6310, 6308, 6313, 6314,
1011 6309, 6324, 6327, 9568, 6333, 6336, 6323, 6339, 6350, 6340,
1012 9568, 9568, 6362, 9568, 6347, 6334, 6358, 6360, 6361, 6370,
1013
1014 6356, 6382, 6390, 6374, 6388, 6389, 6383, 6376, 6404, 6407,
1015 6412, 6408, 6406, 6402, 9568, 9568, 6424, 6427, 6421, 6432,
1016 6435, 6425, 6429, 6417, 6438, 6439, 6445, 6441, 6431, 9568,
1017 6456, 6451, 6457, 6455, 9568, 6452, 6476, 6462, 6478, 6486,
1018 6472, 6479, 6474, 6487, 6488, 6496, 6503, 6482, 6506, 6499,
1019 6509, 6504, 6513, 6523, 6522, 6521, 6529, 9568, 6533, 6526,
1020 6538, 6519, 6520, 6548, 6537, 6549, 6552, 9568, 6536, 9568,
1021 6564, 6556, 6568, 6578, 6581, 6582, 6583, 6576, 6579, 6585,
1022 6591, 6590, 6594, 6599, 6600, 6609, 6601, 6621, 6611, 6624,
1023 6626, 9568, 6627, 6614, 6617, 6623, 6639, 6640, 6628, 6643,
1024
1025 6638, 6645, 6648, 6641, 6652, 6669, 6657, 6667, 6664, 6658,
1026 9568, 6675, 6681, 6668, 6682, 6670, 6683, 6690, 6685, 6692,
1027 6699, 6696, 6698, 9568, 6706, 6703, 6724, 9568, 6709, 6708,
1028 6717, 6730, 6737, 6720, 6735, 6726, 6727, 9568, 6743, 6745,
1029 6748, 6736, 6753, 6756, 6752, 6759, 6764, 6779, 6791, 9568,
1030 6757, 6776, 6780, 6790, 6772, 6783, 6792, 6799, 6763, 9568,
1031 6815, 6822, 6787, 6798, 6807, 6835, 6832, 6834, 6808, 6830,
1032 6838, 6836, 6842, 6844, 6847, 6859, 6849, 6855, 6848, 9568,
1033 6857, 9568, 6858, 6880, 6863, 6886, 6883, 6869, 9568, 6876,
1034 6882, 6893, 6884, 6896, 9568, 6885, 6890, 6912, 6909, 9568,
1035
1036 6925, 6924, 6910, 6919, 6934, 6937, 9568, 6935, 6939, 6936,
1037 6945, 6948, 6940, 6944, 6933, 6952, 6958, 6959, 6962, 6976,
1038 6955, 6964, 6979, 9568, 6983, 6985, 6990, 6989, 6986, 6992,
1039 6982, 7003, 6993, 7005, 9568, 7019, 7006, 7011, 7009, 7021,
1040 7015, 7022, 7042, 7033, 7029, 7036, 7038, 7054, 7040, 9568,
1041 7052, 7056, 7063, 7046, 7062, 7069, 9568, 7066, 9568, 7073,
1042 7076, 7082, 7079, 7091, 9568, 9568, 7090, 7049, 7089, 7080,
1043 7099, 9568, 9568, 7110, 9568, 7093, 9568, 7109, 7097, 9568,
1044 9568, 7117, 7103, 7120, 7126, 7115, 9568, 7127, 9568, 7138,
1045 7133, 7130, 7121, 7136, 9568, 7132, 7142, 7150, 7152, 7139,
1046
1047 9568, 7158, 7160, 7153, 7159, 9568, 7175, 7173, 7163, 7165,
1048 9568, 7180, 7184, 7188, 7177, 7187, 7192, 7203, 7185, 7202,
1049 7194, 7208, 7198, 7207, 7212, 7228, 7231, 7236, 7237, 7226,
1050 7223, 7242, 7245, 7248, 7239, 7240, 7250, 7244, 7256, 7261,
1051 7257, 7259, 7271, 7269, 7278, 7277, 7272, 7286, 7273, 7274,
1052 7290, 7297, 7276, 7295, 7298, 7299, 7300, 7316, 7309, 7321,
1053 7317, 7319, 9568, 7313, 7325, 7312, 7342, 7337, 7344, 7348,
1054 7354, 7356, 7359, 9568, 7362, 9568, 7364, 7350, 7355, 7369,
1055 7352, 9568, 7377, 7380, 7378, 7379, 7375, 7381, 7383, 7389,
1056 7395, 7396, 7402, 9568, 7417, 7404, 7410, 7411, 7419, 9568,
1057
1058 7412, 7433, 7416, 7424, 7428, 7437, 7431, 7436, 7440, 7438,
1059 7450, 7453, 7446, 7460, 7462, 7470, 7471, 7477, 7464, 7459,
1060 7469, 7476, 7480, 7472, 7486, 7489, 7473, 7508, 7509, 7510,
1061 9568, 7495, 9568, 7515, 7499, 7513, 7500, 7523, 7512, 7527,
1062 9568, 9568, 7529, 7531, 7530, 7533, 7526, 7543, 7551, 7550,
1063 7559, 9568, 7552, 7560, 7566, 7555, 9568, 7554, 7577, 7578,
1064 7572, 9568, 7573, 7574, 7576, 7584, 7587, 7588, 7603, 7593,
1065 7600, 7601, 7599, 7609, 9568, 9568, 9568, 9568, 7617, 7610,
1066 7621, 7625, 7626, 7614, 7622, 7634, 7627, 9568, 7647, 9568,
1067 9568, 7646, 7650, 7643, 7658, 7648, 7641, 7653, 7659, 9568,
1068
1069 7649, 7666, 7674, 7673, 7672, 7681, 7692, 7689, 7690, 7684,
1070 7685, 7709, 7700, 7706, 7682, 7708, 7710, 7714, 9568, 9568,
1071 7712, 7718, 7717, 7726, 7723, 7733, 7729, 7736, 7742, 7744,
1072 7739, 7747, 7750, 7730, 7759, 7764, 7756, 7755, 9568, 7765,
1073 7763, 7776, 9568, 7769, 9568, 7775, 7782, 7766, 7785, 7788,
1074 7791, 7803, 7792, 9568, 9568, 7795, 7810, 7811, 9568, 9568,
1075 7802, 7796, 7807, 7820, 7825, 7814, 7827, 7824, 7835, 7823,
1076 9568, 7830, 9568, 7829, 7851, 7846, 7840, 7863, 7866, 7869,
1077 7868, 7862, 7872, 9568, 7871, 7861, 9568, 7876, 7878, 7875,
1078 7873, 7894, 9568, 7883, 7867, 7886, 7891, 9568, 7915, 7912,
1079
1080 7914, 9568, 7917, 9568, 7900, 7918, 7910, 7929, 7913, 9568,
1081 7906, 7927, 9568, 7930, 7931, 7932, 7921, 9568, 7933, 9568,
1082 7943, 7938, 7965, 7964, 7952, 7968, 7956, 7953, 7958, 7978,
1083 7974, 7973, 9568, 9568, 73, 7981, 7959, 7983, 7986, 7991,
1084 7980, 7962, 7984, 8002, 9568, 9568, 8007, 9568, 8008, 8014,
1085 9568, 7994, 8020, 8021, 8009, 8032, 8013, 8005, 8024, 8028,
1086 8042, 8057, 8047, 8043, 8055, 8071, 8072, 8054, 8075, 8076,
1087 8078, 8084, 8090, 8070, 8087, 8074, 8081, 8088, 8097, 8104,
1088 8101, 8102, 8103, 9568, 8125, 8126, 8124, 8114, 9568, 8133,
1089 8128, 8138, 8134, 9568, 8140, 8136, 8137, 8147, 9568, 8130,
1090
1091 8142, 8154, 8159, 8151, 8160, 8161, 8182, 8166, 8175, 8185,
1092 9568, 9568, 9568, 8186, 8180, 9568, 8190, 8178, 8169, 8181,
1093 9568, 8200, 8195, 8198, 9568, 9568, 8203, 8205, 8209, 8206,
1094 9568, 8208, 9568, 8213, 9568, 8218, 8219, 8237, 8230, 9568,
1095 8243, 8258, 9568, 8215, 8244, 8249, 8245, 8233, 8250, 8247,
1096 9568, 8263, 8268, 8277, 8267, 8260, 8271, 8270, 8279, 8274,
1097 8293, 8287, 8299, 9568, 8298, 8303, 8310, 8306, 8294, 8301,
1098 8309, 9568, 8311, 9568, 8317, 9568, 8314, 8319, 8318, 8338,
1099 8334, 8329, 8344, 8355, 8356, 8353, 8345, 8340, 8364, 8349,
1100 9568, 9568, 8369, 8370, 9568, 8365, 9568, 8373, 9568, 8372,
1101
1102 8378, 8382, 8376, 9568, 8385, 8384, 8392, 8328, 8379, 8391,
1103 9568, 8406, 8400, 8397, 8417, 9568, 9568, 8403, 8425, 8421,
1104 9568, 8413, 8422, 8432, 8418, 8436, 8431, 8430, 8427, 8451,
1105 8437, 8448, 8441, 8467, 8468, 8469, 9568, 9568, 9568, 8464,
1106 8452, 8478, 8477, 8481, 8485, 8474, 9568, 8488, 8486, 8495,
1107 8483, 8490, 8489, 8509, 9568, 8511, 8503, 8499, 8501, 8518,
1108 8512, 8516, 8526, 9568, 8525, 8537, 8539, 8528, 8541, 8540,
1109 8547, 8549, 8543, 8534, 8559, 8552, 9568, 8563, 9568, 9568,
1110 8553, 9568, 8555, 8566, 8567, 8564, 9568, 8575, 8569, 8578,
1111 8571, 8580, 8592, 8581, 8603, 9568, 8583, 8586, 8590, 8613,
1112
1113 9568, 9568, 8611, 9568, 8614, 8615, 8607, 8628, 8617, 8623,
1114 8625, 8627, 9568, 8619, 8633, 8630, 8637, 8645, 9568, 8655,
1115 8642, 8647, 8648, 9568, 8652, 8657, 8669, 8644, 8672, 9568,
1116 8676, 8671, 8688, 8680, 9568, 8682, 8690, 8692, 9568, 9568,
1117 8689, 8701, 8706, 9568, 9568, 9568, 8711, 8716, 8703, 8723,
1118 9568, 8724, 4983, 8727, 8736, 8735, 9568, 8726, 8732, 8740,
1119 8728, 8730, 9568, 9568, 8725, 8749, 8751, 8747, 9568, 9568,
1120 8750, 8753, 8757, 8755, 8766, 9568, 8752, 8776, 8788, 8765,
1121 8786, 8779, 8790, 8792, 8805, 8803, 8782, 8784, 8793, 8813,
1122 8819, 8806, 8810, 8828, 8821, 8829, 8835, 8823, 8831, 9568,
1123
1124 9568, 8839, 9568, 8842, 8834, 9568, 9568, 8844, 8847, 8849,
1125 8853, 8857, 8859, 8860, 8864, 8841, 9568, 8863, 8873, 8866,
1126 8865, 8858, 9568, 8862, 8879, 8868, 8869, 8876, 8896, 8886,
1127 8898, 9568, 9568, 8889, 8908, 8891, 8913, 8894, 9568, 8916,
1128 8925, 8915, 8921, 8903, 8909, 8931, 9568, 8939, 8923, 9568,
1129 9568, 8933, 8936, 9568, 9568, 8935, 9568, 9568, 9568, 9568,
1130 9568, 9568, 9568, 9568, 8950, 8954, 9568, 8952, 8967, 8968,
1131 8969, 9568, 8948, 8964, 8966, 8956, 8972, 9568, 8962, 8979,
1132 8975, 8999, 8989, 9007, 8992, 8991, 8993, 8998, 8996, 9000,
1133 9013, 8997, 9024, 9012, 9025, 9043, 9026, 9039, 9568, 9568,
1134
1135 9568, 9031, 9027, 9050, 9052, 9055, 9058, 9062, 9063, 9048,
1136 9049, 9065, 9073, 9075, 9056, 9072, 9070, 9077, 9086, 9079,
1137 9093, 9083, 9101, 9568, 9109, 9097, 9096, 9116, 9568, 9102,
1138 9568, 9104, 9568, 9568, 9119, 9120, 9118, 9108, 9137, 9138,
1139 9136, 9128, 9132, 9129, 9140, 9568, 9152, 9568, 9568, 9139,
1140 9142, 9568, 9143, 9154, 9568, 9153, 9166, 9155, 9159, 9163,
1141 9156, 9183, 9186, 9192, 9568, 9568, 9177, 9178, 9187, 9194,
1142 9190, 9212, 9207, 9204, 9211, 9215, 9210, 9217, 9568, 9225,
1143 9221, 9227, 9568, 9224, 9213, 9223, 9222, 9239, 9250, 9242,
1144 9233, 9568, 9262, 9568, 9264, 9266, 9260, 9252, 9253, 9254,
1145
1146 9269, 9277, 9273, 9568, 9257, 9294, 9284, 9300, 9305, 9302,
1147 9308, 9293, 9314, 9311, 9317, 9318, 9324, 9329, 9321, 9320,
1148 9330, 9568, 9323, 9334, 9568, 9332, 9350, 9335, 9341, 9364,
1149 9568, 9366, 9351, 9352, 9368, 9372, 9367, 9568, 9373, 9375,
1150 9376, 9568, 9379, 9568, 9568, 9380, 9386, 9389, 9388, 9390,
1151 9568, 9568, 9568, 9448, 9455, 9462, 9469, 9476, 9483, 9490,
1152 102, 9497, 9504, 9511, 9518, 9525, 9532, 9539, 9546, 9553,
1153 9560
11411154 } ;
11421155
1143 static const flex_int16_t yy_def[3310] =
1156 static const flex_int16_t yy_def[3372] =
11441157 { 0,
1145 3291, 1, 3292, 3292, 3293, 3293, 3294, 3294, 3295, 3295,
1146 3296, 3296, 3297, 3297, 3298, 3298, 3291, 3299, 3291, 3291,
1147 3291, 3291, 3300, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1148 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1149 3299, 3299, 3299, 3299, 3299, 3299, 3301, 3291, 3291, 3291,
1150 3301, 3302, 3291, 3291, 3291, 3302, 3303, 3291, 3291, 3291,
1151 3291, 3303, 3304, 3291, 3291, 3291, 3304, 3305, 3291, 3306,
1152 3291, 3305, 3305, 3307, 3291, 3291, 3291, 3291, 3307, 3308,
1153 3291, 3291, 3291, 3308, 3299, 3299, 3291, 3309, 3300, 3309,
1154 3300, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1155
1156 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1157 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1158 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1159 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1160 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1161 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3301, 3301, 3302,
1162 3302, 3303, 3303, 3291, 3304, 3304, 3305, 3305, 3306, 3306,
1163 3305, 3307, 3307, 3291, 3308, 3308, 3299, 3299, 3299, 3299,
1164 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1165 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1166
1167 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1168 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1169 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1170 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1171 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1172 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1173 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3305, 3299, 3299,
1174 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1175 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1176 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1177
1178 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1179 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1180 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1181 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1182 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1183 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1184 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1185 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1186 3299, 3305, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1187 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1188
1189 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1190 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1191 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1192 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1193 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1194 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1195 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1196 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1197 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1198 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1199
1200 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1201 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1202 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299,
1203 3305, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1204 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1205 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1206 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1207 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1208 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1209 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299,
1210
1211 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1212 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1213 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1214 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1215 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1216 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1217 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1218 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1219 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1220 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1221
1222 3299, 3305, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1223 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1224 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1225 3299, 3291, 3291, 3299, 3291, 3291, 3299, 3299, 3291, 3299,
1226 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1227 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1228 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1229 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1230 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1231 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1232
1233 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1234 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1235 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1236 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1237 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1238 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1239 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1240 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1241 3299, 3299, 3299, 3299, 3299, 3299, 3305, 3299, 3299, 3299,
1242 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3291, 3299, 3299,
1243
1244 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1245 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1246 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1247 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1248 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1249 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299,
1250 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1251 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1252 3299, 3291, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1253 3299, 3299, 3291, 3291, 3299, 3299, 3299, 3299, 3299, 3291,
1254
1255 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1256 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1257 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1258 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1259 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1260 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1261 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1262 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1263 3305, 3305, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1264 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1265
1266 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1267 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1268 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1269 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1270 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1271 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1272 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1273 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1274 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1275 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1276
1277 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1278 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1279 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1280 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1281 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1282 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1283 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1284 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3305, 3299, 3299,
1285 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1286 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1287
1288 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1289 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1290 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1291 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1292 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1293 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1294 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1295 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1296 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1297 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1298
1299 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1300 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299,
1301 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1302 3299, 3299, 3299, 3299, 3291, 3299, 3291, 3299, 3299, 3299,
1303 3299, 3299, 3291, 3299, 3291, 3299, 3299, 3299, 3299, 3291,
1304 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1305 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1306 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1307 3299, 3305, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1308 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1309
1310 3291, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299,
1311 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1312 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1313 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1314 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1315 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1316 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1317 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1318 3299, 3299, 3299, 3299, 3291, 3299, 3291, 3299, 3299, 3299,
1319 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1320
1321 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1322 3299, 3299, 3299, 3291, 3291, 3299, 3299, 3299, 3299, 3299,
1323 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299,
1324 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1325 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3291,
1326 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1327 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1328 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1329 3299, 3291, 3305, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1330 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1331
1332 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1333 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1334 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1335 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1336 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299,
1337 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1338 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1339 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1340 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1341 3291, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1342
1343 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1344 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1345 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1346 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1347 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1348 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1349 3299, 3299, 3291, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1350 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1351 3305, 3299, 3291, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1352 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3291,
1353
1354 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1355 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1356 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1357 3299, 3299, 3299, 3299, 3299, 3291, 3291, 3299, 3291, 3299,
1358 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1359 3299, 3291, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1360 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1361 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1362 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3291,
1363 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299,
1364
1365 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1366 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1367 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1368 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1369 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1370 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3291, 3299,
1371 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1372 3299, 3299, 3299, 3299, 3305, 3299, 3299, 3299, 3299, 3299,
1373 3299, 3291, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1374 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1375
1376 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1377 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1378 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1379 3299, 3299, 3299, 3299, 3291, 3299, 3291, 3299, 3299, 3299,
1380 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1381 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299,
1382 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1383 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1384 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1385 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1386
1387 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1388 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1389 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1390 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1391 3299, 3299, 3291, 3299, 3291, 3299, 3299, 3299, 3299, 3305,
1392 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1393 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1394 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1395 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1396 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1397
1398 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1399 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1400 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3291, 3291, 3299,
1401 3299, 3299, 3299, 3299, 3291, 3291, 3299, 3291, 3299, 3291,
1402 3299, 3299, 3291, 3291, 3299, 3299, 3299, 3299, 3299, 3291,
1403 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1404 3299, 3291, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1405 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1406 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1407 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1408
1409 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1410 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3305, 3299, 3299,
1411 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1412 3299, 3299, 3299, 3291, 3299, 3291, 3299, 3299, 3299, 3299,
1413 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1414 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3291,
1415 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1416 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1417 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1418 3291, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1419
1420 3291, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1421 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3291,
1422 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1423 3299, 3291, 3291, 3291, 3291, 3299, 3299, 3299, 3299, 3299,
1424 3299, 3299, 3299, 3299, 3291, 3299, 3291, 3291, 3299, 3299,
1425 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1426 3299, 3299, 3299, 3305, 3299, 3299, 3299, 3299, 3299, 3299,
1427 3299, 3299, 3299, 3299, 3299, 3291, 3291, 3299, 3299, 3299,
1428 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1429 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3291,
1430
1431 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1432 3291, 3291, 3299, 3299, 3299, 3291, 3291, 3299, 3299, 3299,
1433 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3291,
1434 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1435 3291, 3299, 3299, 3291, 3299, 3299, 3299, 3291, 3299, 3299,
1436 3299, 3299, 3291, 3299, 3299, 3299, 3291, 3299, 3291, 3299,
1437 3299, 3299, 3299, 3291, 3299, 3299, 3291, 3299, 3299, 3299,
1438 3299, 3291, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1439 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3291, 3305, 3299,
1440 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3291,
1441
1442 3299, 3291, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1443 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1444 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1445 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1446 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1447 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1448 3299, 3299, 3291, 3291, 3291, 3299, 3299, 3291, 3299, 3299,
1449 3299, 3299, 3291, 3299, 3299, 3291, 3291, 3299, 3299, 3299,
1450 3299, 3291, 3299, 3291, 3299, 3291, 3299, 3299, 3299, 3299,
1451 3291, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1452
1453 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1454 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1455 3299, 3299, 3291, 3299, 3291, 3299, 3291, 3299, 3299, 3299,
1456 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1457 3299, 3291, 3291, 3299, 3299, 3291, 3299, 3291, 3299, 3291,
1458 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3291,
1459 3299, 3299, 3299, 3299, 3291, 3291, 3299, 3299, 3299, 3299,
1460 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1461 3299, 3299, 3299, 3299, 3291, 3291, 3291, 3299, 3299, 3299,
1462 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1463
1464 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1465 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1466 3299, 3299, 3299, 3299, 3291, 3299, 3291, 3291, 3299, 3291,
1467 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1468 3299, 3291, 3299, 3299, 3299, 3299, 3291, 3291, 3299, 3291,
1469 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299,
1470 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3291,
1471 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299,
1472 3291, 3299, 3299, 3299, 3291, 3291, 3299, 3299, 3299, 3291,
1473 3291, 3291, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1474
1475 3299, 3299, 3291, 3299, 3299, 3299, 3291, 3291, 3299, 3299,
1476 3299, 3299, 3291, 3291, 3299, 3299, 3299, 3299, 3299, 3291,
1477 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1478 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1479 3299, 3299, 3299, 3291, 3291, 3299, 3291, 3299, 3299, 3291,
1480 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299,
1481 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299,
1482 3299, 3299, 3299, 3291, 3291, 3299, 3299, 3299, 3299, 3299,
1483 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299,
1484 3299, 3291, 3291, 3299, 3299, 3291, 3291, 3299, 3291, 3291,
1485
1486 3291, 3291, 3291, 3291, 3291, 3299, 3291, 3299, 3299, 3299,
1487 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299,
1488 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1489 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3291, 3291,
1490 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1491 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1492 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3291, 3299,
1493 3291, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1494 3299, 3299, 3299, 3291, 3299, 3291, 3291, 3299, 3299, 3291,
1495 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1496
1497 3299, 3299, 3291, 3291, 3299, 3299, 3299, 3299, 3299, 3299,
1498 3299, 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299,
1499 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1500 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1501 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
1502 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3291,
1503 3299, 3299, 3291, 3299, 3299, 3299, 3299, 3299, 3291, 3299,
1504 3299, 3299, 3299, 3299, 3299, 3291, 3299, 3299, 3299, 3291,
1505 3299, 3291, 3291, 3299, 3299, 3299, 3299, 3299, 3291, 3291,
1506 0, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
1507
1508 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291
1158 3353, 1, 3354, 3354, 3355, 3355, 3356, 3356, 3357, 3357,
1159 3358, 3358, 3359, 3359, 3360, 3360, 3353, 3361, 3353, 3353,
1160 3353, 3353, 3362, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1161 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1162 3361, 3361, 3361, 3361, 3361, 3361, 3363, 3353, 3353, 3353,
1163 3363, 3364, 3353, 3353, 3353, 3364, 3365, 3353, 3353, 3353,
1164 3353, 3365, 3366, 3353, 3353, 3353, 3366, 3367, 3353, 3368,
1165 3353, 3367, 3367, 3369, 3353, 3353, 3353, 3353, 3369, 3370,
1166 3353, 3353, 3353, 3370, 3361, 3361, 3353, 3371, 3362, 3371,
1167 3362, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1168
1169 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1170 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1171 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1172 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1173 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1174 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3363,
1175 3363, 3364, 3364, 3365, 3365, 3353, 3366, 3366, 3367, 3367,
1176 3368, 3368, 3367, 3369, 3369, 3353, 3370, 3370, 3361, 3361,
1177 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1178 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1179
1180 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1181 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1182 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1183 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1184 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1185 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1186 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1187 3361, 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1188 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1189 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1190
1191 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1192 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1193 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1194 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1195 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1196 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361,
1197 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1198 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1199 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361,
1200 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1201
1202 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1203 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1204 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1205 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1206 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1207 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1208 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361,
1209 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1210 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1211 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1212
1213 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1214 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1215 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1216 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3367,
1217 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1218 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1219 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1220 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1221 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1222 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1223
1224 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361,
1225 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1226 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1227 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1228 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1229 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1230 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1231 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1232 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1233 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1234
1235 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1236 3361, 3361, 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1237 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1238 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1239 3353, 3361, 3353, 3353, 3361, 3353, 3353, 3361, 3361, 3353,
1240 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1241 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1242 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1243 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1244 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1245
1246 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1247 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1248 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1249 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1250 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1251 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1252 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1253 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1254 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1255 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1256
1257 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361,
1258 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1259 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1260 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1261 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1262 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1263 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1264 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361,
1265 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1266 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361,
1267
1268 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361,
1269 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3353, 3361,
1270 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1271 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1272 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1273 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1274 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1275 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1276 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1277 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3367, 3367, 3361,
1278
1279 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1280 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1281 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361,
1282 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1283 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1284 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1285 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1286 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1287 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1288 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1289
1290 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1291 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1292 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1293 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1294 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1295 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1296 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1297 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1298 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1299 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3367, 3361, 3361,
1300
1301 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1302 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1303 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1304 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1305 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1306 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1307 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1308 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1309 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1310 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1311
1312 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1313 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1314 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1315 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361,
1316 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1317 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353,
1318 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361,
1319 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1320 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1321 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1322
1323 3361, 3361, 3353, 3361, 3367, 3361, 3361, 3361, 3361, 3361,
1324 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1325 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361,
1326 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1327 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1328 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1329 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1330 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1331 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1332 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1333
1334 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353,
1335 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1336 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1337 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353,
1338 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1339 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1340 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1341 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361,
1342 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1343 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361,
1344
1345 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3367, 3361,
1346 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1347 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1348 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1349 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1350 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1351 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1352 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1353 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1354 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1355
1356 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1357 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361,
1358 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1359 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1360 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1361 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361,
1362 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1363 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1364 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361,
1365 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1366
1367 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1368 3367, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1369 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353,
1370 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1371 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1372 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1373 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3353, 3361,
1374 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1375 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1376 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1377
1378 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1379 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353,
1380 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1381 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1382 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1383 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1384 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1385 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1386 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1387 3353, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1388
1389 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361,
1390 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361,
1391 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1392 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1393 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1394 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361,
1395 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353,
1396 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1397 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1398 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1399
1400 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1401 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1402 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361,
1403 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361,
1404 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1405 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1406 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1407 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1408 3361, 3353, 3361, 3361, 3361, 3361, 3367, 3361, 3353, 3361,
1409 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353,
1410
1411 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1412 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1413 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1414 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1415 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1416 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361,
1417 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361,
1418 3361, 3353, 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3353,
1419 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361,
1420 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1421
1422 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1423 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1424 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1425 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1426 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1427 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361,
1428 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1429 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361,
1430 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1431 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353,
1432
1433 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1434 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1435 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1436 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1437 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1438 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1439 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1440 3361, 3361, 3361, 3361, 3353, 3353, 3353, 3353, 3361, 3361,
1441 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353,
1442 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1443
1444 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, 3361,
1445 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353,
1446 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1447 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361,
1448 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1449 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3353, 3353,
1450 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1451 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1452 3361, 3361, 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361,
1453 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361,
1454
1455 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353,
1456 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3353,
1457 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1458 3361, 3361, 3353, 3353, 3367, 3361, 3361, 3361, 3361, 3361,
1459 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3353, 3361, 3361,
1460 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1461 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1462 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1463 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361,
1464 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361,
1465
1466 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1467 3353, 3353, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1468 3353, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361,
1469 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3353,
1470 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1471 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1472 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1473 3361, 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361,
1474 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1475 3353, 3353, 3361, 3361, 3353, 3361, 3353, 3361, 3353, 3361,
1476
1477 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1478 3353, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361,
1479 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1480 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3353, 3361,
1481 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1482 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1483 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1484 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3353,
1485 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1486 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1487
1488 3353, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1489 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361,
1490 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353,
1491 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3353,
1492 3361, 3361, 3361, 3353, 3353, 3353, 3361, 3361, 3361, 3361,
1493 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1494 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3353, 3353,
1495 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361,
1496 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1497 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353,
1498
1499 3353, 3361, 3353, 3361, 3361, 3353, 3353, 3361, 3361, 3361,
1500 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361,
1501 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1502 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361,
1503 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3353,
1504 3353, 3361, 3361, 3353, 3353, 3361, 3353, 3353, 3353, 3353,
1505 3353, 3353, 3353, 3353, 3361, 3361, 3353, 3361, 3361, 3361,
1506 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361,
1507 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1508 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353,
1509
1510 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1511 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1512 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361,
1513 3353, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1514 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3353, 3361,
1515 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1516 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361,
1517 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361,
1518 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1519 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1520
1521 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361,
1522 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361,
1523 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361,
1524 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361,
1525 3361, 3353, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361,
1526 3353, 3353, 0, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
1527 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
1528 3353
15091529 } ;
15101530
1511 static const flex_int16_t yy_nxt[9455] =
1531 static const flex_int16_t yy_nxt[9635] =
15121532 { 0,
15131533 18, 19, 20, 21, 22, 23, 22, 18, 18, 18,
15141534 18, 18, 22, 24, 25, 26, 27, 28, 29, 18,
15191539 43, 44, 18, 18, 18, 45, 48, 49, 50, 48,
15201540 49, 50, 53, 54, 53, 54, 55, 119, 55, 58,
15211541 59, 60, 61, 120, 22, 58, 59, 60, 61, 86,
1522 22, 64, 65, 66, 64, 65, 66, 87, 158, 158,
1523
1524 1271, 88, 85, 51, 119, 86, 51, 165, 165, 56,
1525 120, 56, 168, 75, 76, 77, 78, 62, 22, 75,
1542 22, 64, 65, 66, 64, 65, 66, 87, 160, 160,
1543
1544 1291, 88, 85, 51, 119, 86, 51, 167, 167, 56,
1545 120, 56, 170, 75, 76, 77, 78, 62, 22, 75,
15261546 76, 77, 78, 62, 22, 81, 82, 83, 67, 97,
15271547 86, 67, 19, 20, 21, 69, 70, 71, 19, 20,
1528 21, 69, 70, 71, 81, 82, 83, 121, 108, 175,
1529 175, 79, 72, 157, 403, 86, 97, 79, 72, 86,
1530 135, 90, 84, 90, 90, 86, 90, 168, 109, 176,
1531 73, 86, 90, 86, 121, 108, 73, 174, 87, 72,
1532 157, 84, 88, 86, 129, 72, 112, 135, 110, 160,
1533 86, 173, 160, 171, 113, 109, 98, 168, 186, 91,
1534
1535 92, 93, 111, 99, 94, 114, 168, 100, 185, 95,
1536 101, 129, 86, 112, 86, 110, 86, 86, 96, 166,
1537 171, 113, 86, 98, 86, 186, 164, 92, 93, 111,
1538 99, 94, 114, 163, 100, 185, 95, 101, 85, 160,
1539 85, 85, 160, 85, 161, 96, 102, 159, 115, 85,
1540 103, 116, 187, 104, 179, 105, 106, 248, 117, 162,
1541 118, 162, 162, 288, 162, 86, 107, 90, 86, 90,
1542 90, 86, 90, 102, 86, 115, 122, 103, 116, 187,
1543 104, 179, 105, 106, 123, 117, 178, 118, 126, 86,
1544 124, 181, 127, 107, 125, 86, 154, 324, 86, 146,
1545
1546 155, 147, 86, 122, 156, 170, 177, 86, 128, 86,
1547 148, 123, 176, 178, 86, 126, 149, 124, 181, 127,
1548 174, 125, 86, 154, 150, 86, 146, 155, 147, 86,
1549 86, 156, 328, 177, 151, 128, 130, 148, 152, 153,
1550 131, 199, 173, 149, 158, 158, 132, 86, 86, 133,
1551 167, 150, 167, 167, 182, 167, 134, 172, 86, 172,
1552 172, 151, 172, 130, 86, 152, 153, 131, 199, 85,
1553 180, 85, 85, 132, 85, 195, 133, 168, 86, 166,
1554 85, 182, 183, 134, 136, 86, 164, 203, 137, 90,
1555 241, 90, 90, 196, 90, 184, 86, 180, 138, 139,
1556
1557 90, 140, 86, 191, 192, 163, 86, 86, 194, 183,
1558 86, 136, 86, 188, 203, 137, 86, 241, 193, 189,
1559 196, 190, 184, 86, 161, 138, 139, 91, 140, 141,
1560 191, 192, 142, 159, 86, 194, 197, 198, 204, 143,
1561 188, 165, 165, 144, 145, 193, 189, 86, 190, 86,
1562 86, 86, 200, 201, 205, 206, 141, 175, 175, 142,
1563 202, 207, 86, 197, 198, 204, 143, 215, 86, 213,
1564 144, 145, 208, 209, 86, 86, 210, 86, 3291, 200,
1565 201, 205, 206, 86, 216, 86, 3291, 202, 207, 211,
1566 212, 3291, 224, 214, 215, 3291, 223, 86, 218, 208,
1567
1568 209, 86, 219, 210, 217, 221, 86, 225, 227, 86,
1569 222, 216, 226, 86, 229, 86, 211, 212, 220, 224,
1570 214, 86, 86, 223, 228, 218, 86, 86, 86, 219,
1571 231, 217, 221, 230, 225, 227, 236, 222, 86, 226,
1572 232, 229, 86, 233, 3291, 220, 243, 234, 235, 86,
1573 3291, 228, 237, 86, 86, 86, 3291, 231, 256, 86,
1574 230, 250, 86, 236, 3291, 86, 86, 232, 238, 244,
1575 233, 242, 86, 243, 234, 235, 247, 239, 251, 237,
1576 245, 252, 249, 240, 246, 256, 257, 86, 250, 255,
1577 86, 86, 86, 86, 3291, 238, 244, 86, 242, 262,
1578
1579 86, 253, 3291, 247, 239, 251, 258, 245, 252, 249,
1580 240, 246, 254, 257, 86, 259, 255, 86, 265, 263,
1581 264, 86, 266, 1131, 260, 267, 262, 86, 253, 162,
1582 3291, 162, 162, 258, 162, 86, 261, 268, 86, 254,
1583 86, 86, 259, 3291, 86, 265, 263, 264, 3291, 266,
1584 269, 260, 267, 167, 86, 167, 167, 90, 167, 90,
1585 90, 168, 90, 261, 268, 172, 270, 172, 172, 272,
1586 172, 3291, 86, 273, 274, 276, 3291, 269, 86, 278,
1587 271, 275, 279, 280, 277, 86, 282, 86, 3291, 3291,
1588 281, 86, 374, 86, 86, 170, 272, 86, 86, 286,
1589
1590 273, 274, 276, 86, 86, 86, 278, 271, 275, 279,
1591 280, 277, 283, 282, 285, 298, 86, 281, 284, 86,
1592 287, 86, 330, 297, 299, 302, 286, 289, 3291, 3291,
1593 86, 290, 86, 334, 300, 301, 303, 306, 3291, 304,
1594 86, 285, 298, 86, 86, 284, 86, 287, 291, 86,
1595 297, 299, 302, 3291, 86, 86, 86, 86, 290, 3291,
1596 86, 300, 301, 303, 306, 86, 3291, 305, 307, 308,
1597 309, 86, 3291, 310, 311, 291, 292, 312, 313, 3291,
1598 86, 293, 3291, 86, 314, 86, 294, 86, 315, 86,
1599 86, 322, 295, 296, 305, 307, 308, 309, 86, 86,
1600
1601 310, 311, 3291, 292, 312, 313, 86, 321, 293, 325,
1602 86, 314, 323, 294, 326, 315, 333, 331, 322, 295,
1603 296, 316, 86, 86, 317, 327, 318, 336, 335, 86,
1604 329, 332, 337, 340, 321, 86, 325, 86, 319, 323,
1605 320, 338, 339, 333, 3291, 342, 86, 86, 316, 86,
1606 86, 317, 327, 318, 86, 335, 86, 329, 332, 86,
1607 340, 86, 343, 341, 86, 319, 86, 320, 338, 339,
1608 86, 344, 342, 345, 346, 347, 86, 348, 351, 349,
1609 356, 352, 350, 3291, 3291, 86, 353, 355, 86, 343,
1610 341, 86, 86, 86, 354, 86, 86, 86, 344, 358,
1611
1612 345, 346, 347, 86, 348, 351, 349, 356, 361, 350,
1613 357, 359, 360, 86, 355, 86, 86, 362, 364, 363,
1614 86, 354, 365, 367, 86, 368, 369, 366, 370, 372,
1615 86, 86, 373, 377, 86, 371, 3291, 357, 359, 360,
1616 86, 86, 86, 86, 362, 364, 363, 86, 375, 365,
1617 86, 378, 381, 369, 366, 86, 372, 86, 86, 373,
1618 86, 383, 371, 380, 384, 86, 382, 86, 379, 86,
1619 385, 376, 386, 388, 86, 389, 86, 86, 378, 381,
1620 86, 168, 387, 86, 390, 392, 86, 3291, 383, 393,
1621 380, 384, 391, 382, 86, 379, 399, 385, 376, 386,
1622
1623 394, 86, 396, 395, 397, 86, 86, 86, 398, 387,
1624 86, 390, 86, 86, 86, 86, 393, 86, 400, 391,
1625 409, 401, 407, 86, 402, 404, 408, 394, 86, 396,
1626 395, 397, 405, 86, 86, 398, 406, 410, 86, 411,
1627 413, 414, 86, 412, 86, 400, 86, 409, 401, 407,
1628 86, 402, 404, 408, 86, 415, 416, 86, 86, 405,
1629 86, 86, 86, 406, 410, 417, 411, 418, 414, 420,
1630 412, 421, 86, 422, 427, 423, 426, 428, 3291, 425,
1631 86, 86, 429, 416, 419, 86, 86, 86, 430, 3291,
1632 86, 86, 440, 86, 418, 86, 420, 86, 421, 424,
1633
1634 432, 427, 435, 426, 428, 86, 425, 86, 86, 429,
1635 431, 419, 86, 433, 478, 430, 434, 437, 439, 86,
1636 442, 86, 436, 86, 86, 86, 424, 432, 86, 435,
1637 441, 86, 449, 86, 438, 86, 451, 431, 3291, 450,
1638 433, 86, 3291, 434, 437, 439, 86, 442, 86, 436,
1639 86, 455, 3291, 3291, 86, 468, 484, 441, 86, 449,
1640 456, 438, 443, 451, 3291, 444, 450, 452, 457, 453,
1641 445, 446, 447, 448, 86, 86, 458, 459, 455, 460,
1642 86, 462, 86, 86, 461, 454, 3291, 456, 86, 443,
1643 465, 86, 444, 469, 452, 457, 453, 445, 446, 447,
1644
1645 448, 86, 86, 458, 459, 86, 463, 466, 462, 464,
1646 467, 86, 454, 470, 472, 86, 86, 465, 471, 475,
1647 469, 473, 476, 474, 497, 86, 86, 86, 86, 86,
1648 477, 536, 3291, 463, 466, 3291, 464, 467, 86, 86,
1649 470, 472, 86, 86, 86, 471, 475, 482, 473, 476,
1650 474, 479, 490, 480, 86, 3291, 86, 477, 495, 483,
1651 485, 486, 481, 86, 498, 86, 488, 487, 489, 549,
1652 3291, 3291, 496, 554, 482, 3291, 86, 86, 479, 490,
1653 480, 86, 86, 86, 491, 495, 483, 485, 486, 481,
1654 86, 86, 499, 488, 487, 489, 510, 492, 86, 496,
1655
1656 493, 86, 494, 86, 3291, 86, 513, 500, 86, 585,
1657 514, 491, 511, 501, 86, 515, 528, 502, 86, 499,
1658 526, 529, 86, 510, 492, 503, 3291, 493, 86, 494,
1659 512, 86, 86, 513, 500, 516, 86, 514, 532, 511,
1660 501, 86, 515, 518, 502, 527, 86, 526, 86, 533,
1661 3291, 517, 503, 504, 590, 505, 86, 512, 531, 86,
1662 530, 86, 516, 86, 168, 532, 534, 538, 506, 535,
1663 518, 507, 527, 508, 86, 509, 533, 86, 517, 86,
1664 504, 86, 505, 3291, 86, 531, 86, 530, 3291, 3291,
1665 540, 537, 86, 534, 538, 506, 535, 539, 507, 541,
1666
1667 508, 3291, 509, 519, 520, 542, 3291, 544, 3291, 546,
1668 86, 547, 545, 521, 86, 522, 523, 524, 537, 86,
1669 525, 86, 86, 543, 539, 548, 541, 86, 86, 550,
1670 519, 520, 542, 86, 544, 557, 546, 86, 547, 545,
1671 521, 551, 522, 523, 524, 552, 553, 525, 86, 555,
1672 543, 86, 548, 556, 560, 86, 550, 86, 561, 86,
1673 86, 86, 557, 562, 86, 558, 559, 3291, 551, 86,
1674 563, 564, 552, 553, 86, 3291, 555, 565, 566, 572,
1675 556, 560, 3291, 86, 568, 561, 569, 86, 571, 574,
1676 562, 573, 3291, 3291, 86, 567, 86, 563, 564, 575,
1677
1678 86, 570, 86, 86, 565, 566, 572, 86, 86, 86,
1679 576, 568, 586, 569, 86, 571, 574, 588, 573, 587,
1680 577, 591, 567, 86, 589, 594, 575, 86, 570, 592,
1681 86, 578, 593, 579, 603, 595, 596, 576, 86, 586,
1682 86, 86, 86, 86, 588, 597, 587, 577, 591, 86,
1683 86, 589, 594, 598, 599, 86, 592, 86, 578, 593,
1684 579, 580, 595, 596, 600, 601, 86, 86, 602, 581,
1685 582, 86, 597, 583, 584, 604, 606, 605, 3291, 86,
1686 598, 86, 86, 86, 607, 608, 86, 3291, 580, 86,
1687 613, 600, 601, 611, 86, 602, 581, 582, 86, 86,
1688
1689 583, 584, 604, 606, 605, 609, 86, 86, 86, 612,
1690 614, 607, 608, 610, 615, 3291, 86, 613, 617, 616,
1691 611, 618, 619, 620, 625, 86, 621, 3291, 623, 86,
1692 622, 86, 609, 86, 3291, 86, 612, 614, 86, 634,
1693 610, 615, 86, 86, 86, 617, 616, 86, 618, 619,
1694 620, 625, 86, 621, 86, 623, 624, 622, 626, 627,
1695 628, 629, 86, 630, 631, 632, 86, 633, 636, 3291,
1696 86, 86, 86, 86, 637, 86, 86, 635, 641, 639,
1697 86, 643, 640, 624, 638, 626, 627, 628, 629, 644,
1698 630, 631, 632, 86, 633, 86, 86, 86, 86, 642,
1699
1700 86, 637, 86, 645, 635, 641, 639, 646, 643, 640,
1701 86, 638, 86, 647, 649, 650, 653, 651, 3291, 652,
1702 655, 86, 86, 3291, 3291, 86, 642, 86, 654, 656,
1703 645, 86, 86, 715, 646, 670, 648, 86, 657, 86,
1704 658, 649, 650, 653, 651, 86, 652, 655, 86, 86,
1705 86, 86, 659, 3291, 668, 654, 656, 669, 86, 672,
1706 86, 86, 670, 648, 671, 657, 86, 658, 3291, 86,
1707 86, 3291, 86, 673, 3291, 677, 680, 676, 3291, 659,
1708 660, 668, 3291, 3291, 669, 661, 672, 662, 674, 86,
1709 3291, 671, 675, 663, 86, 664, 86, 86, 665, 666,
1710
1711 673, 681, 677, 680, 676, 667, 86, 660, 688, 683,
1712 86, 682, 661, 678, 662, 674, 679, 684, 685, 675,
1713 663, 86, 664, 686, 86, 665, 666, 86, 86, 689,
1714 687, 86, 667, 86, 86, 688, 683, 86, 682, 690,
1715 678, 691, 86, 679, 684, 685, 692, 693, 696, 695,
1716 686, 697, 694, 86, 86, 698, 689, 687, 3291, 86,
1717 86, 86, 701, 86, 700, 86, 690, 702, 691, 86,
1718 86, 699, 703, 692, 693, 696, 695, 716, 697, 694,
1719 86, 704, 698, 86, 706, 86, 709, 705, 707, 701,
1720 168, 700, 86, 708, 702, 86, 86, 712, 699, 86,
1721
1722 710, 86, 711, 713, 86, 86, 86, 714, 704, 86,
1723 717, 706, 718, 709, 705, 707, 86, 3291, 719, 720,
1724 708, 732, 86, 86, 712, 86, 86, 710, 721, 711,
1725 713, 723, 724, 86, 714, 722, 3291, 717, 733, 728,
1726 731, 86, 725, 86, 86, 719, 720, 86, 86, 726,
1727 86, 734, 727, 86, 86, 721, 86, 735, 723, 724,
1728 86, 736, 722, 729, 737, 86, 728, 731, 730, 725,
1729 738, 740, 741, 742, 744, 739, 726, 86, 3291, 727,
1730 3291, 743, 86, 86, 86, 745, 746, 86, 86, 747,
1731 748, 751, 750, 3291, 86, 86, 86, 86, 740, 741,
1732
1733 742, 744, 86, 86, 86, 752, 749, 754, 743, 753,
1734 86, 86, 745, 746, 86, 86, 747, 748, 86, 750,
1735 756, 758, 755, 86, 762, 757, 3291, 86, 86, 86,
1736 760, 759, 752, 749, 754, 86, 753, 86, 761, 763,
1737 3291, 86, 764, 3291, 770, 86, 86, 756, 758, 755,
1738 773, 777, 757, 86, 765, 86, 86, 760, 759, 766,
1739 774, 86, 767, 768, 769, 761, 763, 771, 772, 764,
1740 86, 770, 86, 86, 779, 775, 86, 773, 86, 86,
1741 776, 765, 86, 86, 782, 778, 766, 774, 86, 767,
1742 768, 769, 86, 780, 771, 772, 784, 783, 86, 785,
1743
1744 786, 779, 775, 86, 791, 787, 86, 776, 788, 86,
1745 86, 782, 778, 797, 789, 781, 86, 798, 86, 3291,
1746 780, 86, 86, 784, 783, 86, 785, 786, 792, 794,
1747 790, 86, 787, 795, 796, 788, 86, 86, 86, 793,
1748 86, 789, 781, 799, 798, 86, 86, 86, 802, 86,
1749 804, 86, 800, 801, 806, 792, 794, 790, 803, 86,
1750 795, 796, 807, 805, 808, 3291, 793, 86, 809, 812,
1751 799, 810, 86, 86, 813, 802, 86, 804, 811, 814,
1752 86, 86, 819, 815, 86, 803, 86, 828, 3291, 807,
1753 805, 820, 86, 86, 816, 809, 86, 86, 810, 86,
1754
1755 86, 86, 821, 822, 823, 811, 814, 824, 817, 818,
1756 815, 86, 825, 826, 86, 834, 86, 86, 820, 86,
1757 86, 816, 830, 829, 3291, 86, 833, 3291, 827, 821,
1758 822, 823, 86, 86, 824, 817, 818, 86, 86, 825,
1759 826, 831, 834, 835, 86, 843, 832, 837, 836, 830,
1760 829, 838, 86, 833, 839, 827, 86, 840, 842, 841,
1761 86, 845, 3291, 86, 844, 86, 86, 86, 86, 852,
1762 835, 846, 86, 86, 837, 836, 3291, 86, 838, 86,
1763 847, 839, 851, 86, 840, 842, 841, 86, 845, 849,
1764 848, 844, 86, 850, 86, 854, 855, 86, 846, 86,
1765
1766 853, 86, 857, 856, 86, 858, 865, 847, 86, 851,
1767 86, 86, 860, 86, 86, 859, 849, 848, 864, 86,
1768 850, 86, 854, 855, 866, 86, 86, 853, 863, 857,
1769 856, 867, 858, 865, 861, 862, 86, 870, 869, 860,
1770 86, 872, 859, 86, 868, 864, 86, 871, 873, 3291,
1771 86, 866, 875, 86, 86, 863, 876, 86, 867, 86,
1772 86, 861, 862, 86, 870, 869, 86, 877, 872, 874,
1773 878, 868, 881, 879, 871, 873, 86, 86, 882, 875,
1774 880, 86, 3291, 876, 888, 883, 885, 887, 884, 86,
1775 86, 886, 3291, 889, 877, 86, 874, 878, 86, 881,
1776
1777 879, 86, 86, 86, 86, 882, 86, 880, 86, 168,
1778 890, 888, 883, 885, 887, 884, 86, 891, 886, 892,
1779 889, 893, 894, 86, 895, 898, 3291, 3291, 86, 902,
1780 896, 86, 899, 901, 86, 86, 903, 890, 897, 904,
1781 900, 86, 908, 86, 891, 906, 892, 86, 893, 894,
1782 909, 86, 86, 905, 86, 907, 86, 896, 86, 899,
1783 901, 86, 86, 903, 86, 897, 904, 900, 86, 86,
1784 910, 912, 906, 86, 86, 911, 913, 909, 922, 921,
1785 905, 923, 907, 86, 86, 927, 3291, 3291, 86, 924,
1786 86, 86, 925, 935, 3291, 3291, 86, 910, 912, 86,
1787
1788 926, 3291, 911, 913, 914, 922, 921, 915, 923, 928,
1789 86, 916, 927, 86, 917, 933, 924, 929, 86, 925,
1790 930, 918, 919, 931, 920, 86, 932, 926, 86, 86,
1791 934, 914, 86, 943, 915, 86, 928, 86, 916, 86,
1792 946, 917, 933, 86, 929, 945, 86, 930, 918, 919,
1793 931, 920, 950, 932, 86, 86, 944, 934, 936, 937,
1794 943, 938, 86, 86, 939, 947, 948, 946, 86, 940,
1795 951, 953, 945, 86, 86, 941, 942, 954, 86, 950,
1796 957, 3291, 949, 944, 86, 936, 937, 952, 938, 86,
1797 955, 939, 947, 948, 958, 956, 940, 951, 953, 86,
1798
1799 86, 86, 941, 942, 954, 959, 960, 957, 961, 949,
1800 3291, 3291, 963, 965, 952, 962, 964, 86, 970, 966,
1801 86, 958, 86, 968, 969, 86, 967, 3291, 86, 980,
1802 972, 86, 959, 960, 86, 961, 86, 86, 86, 963,
1803 86, 86, 962, 964, 86, 970, 966, 86, 971, 86,
1804 968, 969, 973, 967, 974, 975, 86, 972, 976, 978,
1805 977, 86, 979, 982, 986, 3291, 86, 86, 86, 86,
1806 981, 983, 985, 987, 86, 971, 984, 989, 86, 973,
1807 988, 974, 975, 991, 86, 976, 978, 977, 990, 979,
1808 86, 993, 86, 994, 86, 992, 86, 981, 995, 985,
1809
1810 1000, 3291, 86, 86, 86, 86, 998, 988, 997, 86,
1811 991, 1001, 86, 999, 86, 990, 1003, 86, 86, 996,
1812 86, 86, 992, 1002, 1004, 995, 86, 86, 86, 86,
1813 86, 1005, 3291, 998, 1006, 997, 1007, 1009, 1001, 86,
1814 999, 1008, 86, 86, 86, 1011, 996, 1010, 1012, 1013,
1815 1002, 1014, 86, 86, 86, 1015, 86, 1016, 1005, 86,
1816 1019, 1006, 86, 1007, 1009, 86, 3291, 1020, 1008, 86,
1817 86, 86, 1011, 86, 1010, 1012, 1013, 1022, 1014, 86,
1818 1017, 1021, 1015, 1027, 1016, 1018, 86, 1019, 1023, 86,
1819 1024, 86, 3291, 1026, 1020, 86, 1028, 1029, 1025, 1030,
1820
1821 1031, 3291, 86, 3291, 1022, 86, 1032, 86, 1021, 1037,
1822 86, 1033, 86, 86, 86, 1023, 86, 1024, 86, 86,
1823 1026, 1034, 1035, 1028, 1029, 1025, 1030, 1031, 86, 1039,
1824 1036, 1040, 86, 1032, 86, 1038, 1037, 86, 1033, 1042,
1825 86, 1041, 1043, 1045, 86, 1044, 3291, 1046, 1034, 1035,
1826 86, 1047, 1048, 1050, 86, 1057, 1039, 1036, 86, 86,
1827 86, 1058, 1038, 86, 86, 1052, 1042, 1060, 1041, 1043,
1828 1045, 86, 1044, 86, 1046, 1049, 1051, 1063, 1047, 86,
1829 1050, 1053, 86, 86, 86, 1054, 1055, 86, 86, 1056,
1830 86, 1059, 1052, 86, 86, 1064, 86, 1061, 1062, 86,
1831
1832 1072, 1069, 1049, 1051, 86, 86, 1065, 1066, 1053, 86,
1833 86, 1067, 1054, 1055, 1070, 86, 1056, 1071, 1059, 1068,
1834 86, 1073, 1074, 86, 1061, 1062, 86, 86, 1069, 86,
1835 1076, 86, 86, 1065, 1066, 3291, 1075, 1078, 1067, 1080,
1836 1077, 1070, 1079, 86, 1071, 86, 1068, 86, 1073, 1074,
1837 86, 86, 1081, 1083, 1084, 3291, 1085, 1082, 1128, 3291,
1838 3291, 86, 86, 1075, 86, 86, 1080, 1077, 1086, 1079,
1839 1088, 1087, 1090, 86, 1092, 86, 1091, 86, 86, 1089,
1840 1083, 1084, 86, 1085, 168, 1094, 1093, 86, 86, 86,
1841 86, 86, 86, 86, 1102, 1086, 1103, 1088, 1087, 1090,
1842
1843 3291, 1092, 1101, 1091, 1104, 3291, 1089, 1105, 86, 86,
1844 1106, 3291, 1094, 1093, 1095, 3291, 1096, 86, 1107, 3291,
1845 1097, 1102, 1098, 1103, 1109, 3291, 1108, 1099, 86, 1101,
1846 86, 86, 1100, 86, 1105, 1110, 3291, 1106, 86, 86,
1847 1113, 1095, 1125, 1096, 1114, 1107, 86, 1097, 86, 1098,
1848 1111, 1109, 1115, 1108, 1099, 1112, 1117, 86, 86, 1100,
1849 86, 1120, 1110, 1118, 1116, 1121, 1129, 1113, 86, 1125,
1850 1130, 1114, 1123, 1119, 1126, 86, 86, 1132, 86, 1115,
1851 1122, 1124, 86, 1117, 1127, 86, 1160, 86, 1120, 1154,
1852 1118, 1116, 1121, 86, 86, 86, 1134, 86, 86, 1123,
1853
1854 1119, 1126, 1143, 1135, 86, 1133, 86, 1122, 1124, 86,
1855 86, 1127, 86, 86, 1144, 1145, 1146, 86, 1147, 3291,
1856 1149, 86, 1150, 1134, 3291, 3291, 1148, 3291, 86, 1143,
1857 1135, 86, 1133, 1136, 3291, 86, 86, 3291, 1137, 86,
1858 1138, 1144, 1145, 1146, 86, 1147, 1139, 1149, 86, 1150,
1859 1153, 1140, 1141, 1148, 1151, 1152, 1156, 1157, 1142, 86,
1860 1136, 86, 86, 86, 1155, 1137, 86, 1138, 1163, 1158,
1861 3291, 86, 1161, 1139, 1164, 1168, 1167, 1153, 1140, 1141,
1862 86, 1151, 1152, 1156, 1157, 1142, 86, 1162, 1159, 1166,
1863 86, 1155, 3291, 1174, 86, 86, 1158, 86, 86, 1161,
1864
1865 86, 1164, 1165, 1167, 1169, 1170, 1171, 86, 1173, 1172,
1866 86, 86, 1175, 86, 1162, 1159, 1166, 3291, 1177, 86,
1867 1176, 3291, 1186, 1199, 86, 86, 86, 86, 86, 1165,
1868 86, 1169, 1170, 1171, 1178, 1173, 1172, 1179, 1181, 1175,
1869 86, 86, 1180, 1188, 1182, 1177, 1184, 1176, 1183, 86,
1870 86, 1190, 1187, 86, 86, 86, 86, 3291, 1185, 86,
1871 1193, 1178, 86, 86, 1179, 1181, 86, 86, 86, 1180,
1872 1188, 1182, 86, 1184, 1189, 1183, 1191, 1192, 1190, 1187,
1873 1194, 86, 1197, 1195, 1196, 1185, 86, 1193, 1198, 86,
1874 1202, 1208, 3291, 1206, 1200, 1203, 1213, 3291, 86, 1215,
1875
1876 86, 1189, 86, 1191, 1192, 86, 86, 1194, 86, 1197,
1877 1195, 1196, 1201, 1207, 86, 1198, 1204, 86, 1208, 1205,
1878 1206, 1200, 86, 86, 1209, 1210, 86, 1211, 86, 1214,
1879 3291, 86, 1212, 1216, 86, 86, 86, 1218, 1219, 1201,
1880 1207, 86, 86, 1204, 86, 86, 1205, 1217, 1221, 1220,
1881 86, 1209, 1210, 3291, 1211, 86, 1214, 1222, 1224, 1212,
1882 1216, 1223, 86, 1226, 1218, 1219, 1227, 1225, 1230, 86,
1883 86, 1228, 86, 3291, 1217, 1221, 1220, 1231, 86, 86,
1884 86, 1229, 86, 1232, 1222, 1224, 1233, 86, 1223, 86,
1885 1226, 1234, 1239, 1227, 1225, 86, 1235, 1236, 1228, 1237,
1886
1887 86, 86, 86, 1240, 86, 1238, 86, 86, 1229, 1241,
1888 1232, 1242, 86, 1233, 1246, 86, 86, 86, 1234, 1239,
1889 1243, 1249, 86, 1235, 1236, 1247, 1237, 1244, 1245, 1248,
1890 1240, 1251, 1238, 1252, 86, 1250, 86, 1256, 3291, 1254,
1891 3291, 86, 86, 86, 1257, 1253, 86, 1243, 86, 86,
1892 86, 86, 1247, 86, 1244, 1245, 1248, 86, 86, 1255,
1893 1252, 86, 1250, 86, 1256, 1258, 1254, 86, 86, 1259,
1894 1260, 1257, 1253, 1261, 1262, 1263, 1264, 1265, 3291, 86,
1895 3291, 86, 86, 1266, 1267, 1268, 1255, 1270, 86, 86,
1896 1269, 86, 1258, 86, 1277, 1273, 1259, 1260, 3291, 3291,
1897
1898 1261, 1262, 86, 86, 1265, 86, 1272, 86, 86, 1282,
1899 1266, 86, 1268, 86, 1270, 86, 1274, 1269, 1275, 1276,
1900 86, 86, 1273, 1278, 86, 1279, 1281, 86, 1280, 1283,
1901 168, 86, 1284, 1272, 1286, 1285, 1282, 1287, 86, 3291,
1902 86, 86, 86, 1274, 1292, 1275, 1276, 86, 1289, 1288,
1903 1278, 1291, 1279, 1281, 1290, 1280, 1283, 86, 1294, 86,
1904 86, 1293, 1285, 1297, 1296, 1295, 86, 3291, 1356, 86,
1905 86, 1292, 86, 86, 86, 1289, 1288, 86, 1291, 86,
1906 86, 1290, 1298, 86, 1300, 1294, 1301, 1299, 1293, 1302,
1907 1297, 1296, 1295, 1303, 86, 86, 1304, 1305, 86, 86,
1908
1909 86, 1313, 3291, 1310, 86, 86, 3291, 1311, 1315, 1298,
1910 3291, 86, 3291, 1301, 1299, 1312, 1302, 86, 1306, 1314,
1911 1303, 86, 3291, 1304, 1305, 1316, 86, 1307, 86, 1308,
1912 1310, 1320, 1309, 86, 1311, 1315, 1317, 86, 1318, 86,
1913 86, 3291, 1312, 1319, 86, 1306, 1314, 86, 3291, 86,
1914 1323, 1322, 1316, 86, 1307, 1325, 1308, 1327, 1320, 1309,
1915 1321, 86, 1324, 1317, 1328, 1318, 86, 1332, 86, 3291,
1916 1319, 86, 86, 1326, 1329, 86, 1330, 1323, 1322, 1333,
1917 1331, 86, 1325, 86, 86, 3291, 86, 1321, 3291, 1324,
1918 86, 1328, 1334, 1335, 1332, 1337, 86, 86, 1339, 1338,
1919
1920 1326, 1329, 86, 1330, 86, 86, 1333, 1331, 1336, 1340,
1921 86, 86, 1344, 1341, 3291, 1345, 86, 1342, 86, 1334,
1922 1335, 86, 1337, 86, 86, 1339, 1338, 86, 1343, 1348,
1923 3291, 1346, 3291, 86, 1347, 1336, 1340, 86, 86, 1344,
1924 1341, 86, 1345, 1350, 1342, 1349, 1352, 86, 1351, 3291,
1925 1353, 86, 86, 1354, 86, 1343, 1348, 86, 1346, 1355,
1926 1359, 1347, 1357, 86, 1360, 86, 86, 1361, 1358, 1363,
1927 1350, 86, 1349, 1352, 86, 1351, 1362, 1353, 86, 86,
1928 1354, 86, 1366, 1364, 86, 1368, 1355, 1359, 1365, 1357,
1929 86, 1360, 1367, 1377, 1361, 1358, 1363, 1369, 86, 86,
1930
1931 1378, 3291, 1379, 1362, 1380, 86, 1383, 86, 3291, 1366,
1932 3291, 3291, 1368, 1381, 1384, 86, 1408, 1409, 86, 1367,
1933 1377, 1382, 1385, 86, 1369, 1370, 3291, 1378, 1386, 1371,
1934 86, 1380, 1372, 1373, 86, 86, 86, 1374, 86, 86,
1935 1381, 1384, 1388, 1375, 86, 86, 1391, 1376, 1382, 1385,
1936 1395, 86, 1370, 86, 86, 1386, 1371, 1387, 1393, 1372,
1937 1373, 3291, 3291, 86, 1374, 1389, 1392, 1390, 86, 1388,
1938 1375, 1394, 86, 1391, 1376, 86, 86, 1395, 86, 1397,
1939 1398, 1399, 1396, 1400, 1387, 1393, 3291, 3291, 86, 86,
1940 1407, 1401, 1389, 1392, 1390, 86, 3291, 3291, 1394, 3291,
1941
1942 1411, 3291, 1413, 1415, 1410, 86, 1397, 1414, 1416, 1396,
1943 1400, 86, 86, 86, 86, 1425, 86, 1407, 1401, 1402,
1944 86, 1412, 1417, 86, 1403, 86, 1404, 1411, 1405, 1413,
1945 1406, 1410, 1419, 86, 1414, 86, 1418, 86, 1421, 1420,
1946 86, 86, 1422, 3291, 1426, 1424, 1402, 86, 1412, 1417,
1947 86, 1403, 86, 1404, 86, 1405, 86, 1406, 86, 1419,
1948 1423, 1427, 1428, 1418, 1429, 1421, 1420, 1431, 86, 1422,
1949 86, 1426, 1424, 1432, 1433, 86, 86, 1430, 1435, 1437,
1950 86, 1434, 86, 1436, 1438, 86, 86, 1423, 1427, 1428,
1951 86, 1429, 1439, 1440, 1431, 86, 1442, 1443, 3291, 1441,
1952
1953 1432, 1433, 1445, 86, 1430, 86, 86, 86, 1434, 86,
1954 1436, 1438, 1446, 1447, 86, 86, 86, 1450, 1444, 1439,
1955 1440, 1448, 1449, 1442, 86, 86, 1441, 86, 86, 86,
1956 1451, 1452, 1454, 1455, 1453, 86, 3291, 86, 86, 1446,
1957 1447, 86, 1456, 1457, 86, 1444, 1460, 1458, 1448, 1449,
1958 1459, 86, 86, 1461, 86, 86, 1462, 1451, 1452, 1454,
1959 1455, 1453, 86, 1463, 1464, 1465, 86, 86, 86, 1456,
1960 1457, 86, 1466, 1460, 1458, 1467, 1468, 1459, 86, 1469,
1961 1461, 1472, 86, 1462, 1470, 1473, 86, 1471, 86, 86,
1962 1463, 1464, 1465, 1474, 86, 86, 1475, 1476, 86, 1466,
1963
1964 1479, 86, 1467, 1468, 1477, 86, 1469, 86, 1472, 1480,
1965 1485, 1470, 1478, 1486, 1471, 1488, 86, 86, 86, 1481,
1966 86, 1482, 86, 1475, 3291, 86, 86, 1479, 1483, 86,
1967 1484, 1477, 1487, 168, 86, 86, 86, 1489, 3291, 1478,
1968 3291, 1494, 86, 1490, 1491, 86, 1481, 86, 1482, 1492,
1969 86, 86, 1493, 86, 86, 1483, 86, 1484, 1496, 1487,
1970 1495, 1498, 1501, 86, 1489, 1497, 1499, 86, 1494, 86,
1971 1490, 1491, 86, 1500, 1502, 86, 1492, 1503, 86, 1493,
1972 1508, 1505, 1504, 1509, 86, 1496, 1506, 1495, 1498, 86,
1973 86, 3291, 1497, 1499, 1507, 86, 1511, 1519, 86, 86,
1974
1975 1500, 1502, 86, 86, 1503, 1510, 3291, 1508, 86, 1504,
1976 1509, 1514, 1512, 86, 1515, 1513, 1516, 3291, 86, 1517,
1977 1521, 1507, 1518, 1511, 86, 1520, 1522, 1525, 86, 86,
1978 3291, 1523, 1510, 86, 86, 86, 86, 1524, 1514, 1512,
1979 1527, 1515, 1513, 1516, 86, 86, 1517, 1521, 86, 1518,
1980 1526, 1528, 1520, 1530, 1525, 1540, 1529, 1531, 86, 86,
1981 86, 1532, 86, 1533, 1524, 86, 1534, 1527, 86, 1536,
1982 3291, 1537, 1535, 86, 1544, 86, 86, 1526, 1528, 86,
1983 1530, 86, 1538, 1529, 1531, 1541, 86, 86, 1532, 1539,
1984 1533, 86, 1543, 1534, 86, 86, 1536, 86, 1537, 1535,
1985
1986 86, 1544, 1542, 1545, 1547, 86, 1546, 1548, 3291, 1538,
1987 86, 1550, 1541, 1549, 86, 86, 1539, 1552, 1551, 1543,
1988 86, 1554, 1557, 1558, 1556, 1553, 86, 86, 3291, 1542,
1989 1545, 1547, 1565, 1546, 1548, 86, 86, 86, 1550, 86,
1990 1549, 1560, 1555, 86, 1552, 1551, 1559, 1566, 1554, 86,
1991 86, 1556, 1553, 1561, 86, 86, 1562, 1563, 1567, 86,
1992 1564, 3291, 1568, 86, 86, 1569, 1570, 86, 86, 1555,
1993 1574, 1571, 1573, 1559, 86, 1578, 3291, 1572, 3291, 86,
1994 1561, 86, 86, 1562, 1563, 86, 1577, 1564, 86, 1568,
1995 86, 86, 1569, 86, 86, 86, 1575, 1574, 1571, 1573,
1996
1997 1576, 86, 1578, 1579, 1572, 1580, 86, 1581, 1582, 86,
1998 86, 1583, 86, 1577, 1589, 1584, 1597, 1586, 1588, 86,
1999 1585, 86, 1587, 1575, 86, 86, 1592, 1576, 1590, 86,
2000 1579, 1591, 1580, 1600, 1581, 1582, 86, 1593, 1583, 86,
2001 86, 1589, 1594, 1596, 86, 1588, 1598, 86, 86, 86,
2002 86, 1602, 86, 1592, 1595, 1590, 1599, 86, 1591, 86,
2003 1603, 86, 1611, 1601, 1593, 86, 1604, 1605, 86, 1594,
2004 1596, 86, 86, 1598, 86, 86, 1606, 1607, 1602, 1610,
2005 1609, 1595, 1608, 1599, 86, 86, 86, 1612, 86, 1611,
2006 1601, 86, 86, 1604, 1605, 86, 1614, 1613, 1615, 1616,
2007
2008 1619, 3291, 1618, 1606, 1607, 1617, 1610, 1609, 1620, 1608,
2009 1624, 86, 86, 1621, 1612, 3291, 86, 1622, 86, 86,
2010 1625, 86, 86, 86, 1613, 86, 1616, 1619, 86, 1618,
2011 1623, 1626, 1617, 1629, 1627, 1620, 1631, 1624, 86, 1628,
2012 1621, 86, 86, 86, 1622, 1630, 1635, 1625, 1633, 1634,
2013 86, 1632, 1637, 1640, 1636, 1638, 1641, 1623, 1626, 86,
2014 86, 1627, 86, 86, 86, 1642, 1628, 86, 86, 86,
2015 1645, 86, 1630, 1635, 86, 1633, 1634, 86, 1632, 1637,
2016 1639, 1636, 1638, 86, 1643, 86, 1644, 86, 1646, 1648,
2017 86, 1647, 1642, 3291, 1650, 1649, 86, 1645, 86, 1651,
2018
2019 1653, 1652, 1654, 3291, 1656, 1655, 3291, 1639, 86, 86,
2020 86, 1643, 86, 1644, 1660, 3291, 86, 1662, 1647, 86,
2021 86, 86, 1649, 86, 86, 1657, 1651, 1653, 1652, 1654,
2022 86, 1656, 1655, 1658, 1659, 1661, 86, 86, 1663, 86,
2023 1664, 1660, 86, 86, 1662, 1665, 1669, 1667, 86, 86,
2024 1668, 1666, 1657, 86, 86, 1670, 86, 86, 1671, 86,
2025 1658, 1659, 1661, 1672, 86, 1663, 1673, 1664, 1674, 3291,
2026 1676, 1678, 1665, 1669, 1667, 86, 86, 1668, 1666, 1675,
2027 86, 1679, 1670, 1677, 1680, 1671, 86, 86, 86, 3291,
2028 1672, 86, 86, 86, 1681, 1674, 86, 1676, 1678, 1682,
2029
2030 1684, 1683, 1685, 1689, 86, 86, 1675, 1688, 1679, 86,
2031 1677, 1680, 168, 1690, 1691, 86, 86, 1686, 1687, 1694,
2032 86, 1681, 3291, 3291, 1692, 86, 86, 1684, 1683, 1685,
2033 1689, 86, 1695, 1696, 1688, 1693, 86, 1700, 1698, 86,
2034 1690, 1691, 86, 3291, 1686, 1687, 86, 1697, 1699, 1701,
2035 86, 1692, 1702, 1703, 86, 86, 86, 3291, 1704, 1695,
2036 1696, 1706, 1693, 86, 1705, 1698, 86, 1707, 1708, 86,
2037 86, 86, 86, 1709, 1697, 1699, 1701, 1710, 1712, 1711,
2038 1703, 1713, 86, 1714, 86, 86, 1715, 86, 1706, 86,
2039 1718, 1705, 86, 86, 1707, 1708, 1726, 86, 1723, 86,
2040
2041 1709, 1717, 1716, 86, 1710, 1712, 1711, 86, 1713, 1722,
2042 1714, 86, 86, 1715, 86, 1719, 86, 1718, 1720, 1724,
2043 86, 1730, 1727, 1726, 1728, 1723, 86, 1731, 1717, 1716,
2044 1721, 1729, 1732, 1736, 1733, 1725, 3291, 3291, 1743, 86,
2045 1734, 86, 1719, 86, 86, 1720, 1724, 1735, 86, 1727,
2046 1737, 1728, 1742, 1744, 1738, 86, 86, 1721, 1729, 86,
2047 1739, 1733, 1725, 1740, 86, 86, 86, 1734, 86, 86,
2048 86, 86, 86, 86, 1735, 1741, 86, 1737, 1745, 1742,
2049 1746, 1738, 86, 1749, 1747, 86, 1748, 1739, 86, 1751,
2050 1740, 1754, 1750, 1755, 1752, 3291, 1753, 3291, 86, 3291,
2051
2052 86, 86, 1741, 86, 86, 1745, 86, 1759, 86, 1756,
2053 86, 1747, 86, 1748, 86, 1757, 1751, 1762, 1754, 1750,
2054 1755, 1752, 86, 1753, 86, 1758, 1760, 86, 1763, 1761,
2055 86, 1764, 86, 1765, 1759, 1771, 1756, 86, 3291, 1766,
2056 1768, 1769, 1757, 86, 1762, 86, 86, 86, 1767, 3291,
2057 1773, 86, 1758, 1760, 86, 1763, 1761, 1770, 1764, 86,
2058 1775, 1774, 86, 86, 1772, 86, 1766, 1768, 1769, 1776,
2059 1777, 86, 86, 1781, 1780, 1767, 86, 1773, 1782, 1778,
2060 1779, 86, 86, 86, 1770, 86, 86, 1775, 1774, 86,
2061 1783, 1772, 86, 1784, 1789, 1790, 1776, 1777, 86, 1785,
2062
2063 1781, 1780, 1791, 1795, 1786, 1782, 1778, 1779, 86, 1787,
2064 86, 1788, 1792, 86, 1793, 3291, 86, 1783, 86, 1794,
2065 1784, 1789, 86, 86, 1797, 1798, 1785, 86, 1796, 86,
2066 86, 1786, 86, 1801, 1799, 1802, 1787, 1800, 1788, 1792,
2067 1803, 1793, 86, 86, 86, 86, 1794, 86, 86, 1808,
2068 1806, 1797, 1798, 86, 1804, 1796, 86, 1805, 1807, 1809,
2069 1801, 1799, 1802, 3291, 1800, 1810, 86, 1803, 86, 1811,
2070 1812, 1813, 86, 1814, 3291, 1817, 86, 1806, 86, 86,
2071 1816, 1804, 86, 86, 1805, 1815, 1809, 86, 86, 86,
2072 86, 1819, 1810, 1818, 1820, 1825, 1811, 1812, 1813, 1821,
2073
2074 1814, 86, 1817, 3291, 86, 1823, 1826, 1816, 1824, 86,
2075 1828, 3291, 1815, 1822, 1831, 86, 86, 86, 1819, 86,
2076 1818, 1820, 1825, 86, 1827, 86, 1821, 86, 1834, 1829,
2077 86, 1832, 1823, 1826, 1830, 1824, 1835, 1828, 1836, 1833,
2078 1822, 1831, 1837, 86, 86, 1838, 1840, 86, 1839, 1842,
2079 86, 1827, 1841, 1844, 1843, 1834, 86, 1845, 1832, 1848,
2080 3291, 86, 3291, 1849, 3291, 1836, 1833, 86, 86, 86,
2081 86, 86, 1858, 86, 1846, 1839, 1842, 86, 86, 1841,
2082 1847, 1843, 86, 1852, 1845, 86, 1850, 1851, 1853, 1854,
2083 1849, 86, 1856, 1859, 86, 86, 1857, 1855, 86, 86,
2084
2085 1860, 1846, 86, 86, 1861, 86, 86, 1847, 1862, 86,
2086 1852, 86, 1863, 1850, 1851, 1853, 1854, 1865, 1864, 1856,
2087 1859, 1866, 86, 1857, 1855, 86, 86, 1867, 1868, 86,
2088 1869, 1873, 86, 1870, 1872, 1862, 86, 3291, 86, 86,
2089 1871, 1875, 86, 86, 1865, 1864, 1874, 1876, 1866, 1877,
2090 1878, 86, 1879, 86, 86, 1868, 1883, 1887, 86, 1880,
2091 1870, 1872, 86, 86, 86, 1881, 1882, 1871, 1875, 86,
2092 86, 86, 86, 1874, 1876, 1885, 1877, 1878, 86, 1879,
2093 168, 1884, 1890, 86, 86, 1888, 1880, 1886, 1891, 86,
2094 86, 1889, 1881, 1882, 1893, 86, 1892, 86, 86, 1894,
2095
2096 3291, 86, 1885, 86, 86, 1895, 1897, 1896, 1884, 1890,
2097 1898, 86, 1888, 1900, 1886, 1891, 86, 1899, 1889, 3291,
2098 86, 1893, 1903, 1892, 1901, 1902, 1904, 86, 3291, 1908,
2099 1905, 86, 1895, 1897, 1896, 1906, 86, 86, 3291, 1907,
2100 86, 86, 1909, 86, 1899, 86, 86, 86, 1912, 1910,
2101 1911, 1901, 1902, 86, 86, 1914, 1908, 1905, 86, 86,
2102 86, 1913, 1906, 86, 1915, 1917, 1907, 1920, 1916, 1909,
2103 86, 1918, 1925, 86, 86, 1912, 1910, 1911, 1921, 86,
2104 86, 1923, 1914, 86, 1919, 1922, 1926, 86, 1913, 86,
2105 1924, 1915, 1917, 3291, 1920, 1916, 1928, 1936, 1918, 86,
2106
2107 86, 1927, 86, 86, 86, 1921, 1929, 86, 1923, 1930,
2108 1932, 1919, 1922, 1935, 86, 1931, 1937, 1924, 86, 1933,
2109 86, 1934, 86, 1928, 86, 1939, 1943, 1938, 1927, 1940,
2110 1945, 1947, 86, 1929, 86, 86, 1930, 1932, 1941, 86,
2111 1935, 1942, 1931, 86, 86, 3291, 1933, 86, 1934, 1944,
2112 1946, 1948, 86, 86, 1938, 86, 1940, 1949, 1951, 1950,
2113 86, 86, 86, 86, 1952, 1941, 1953, 1955, 1942, 1956,
2114 1954, 1961, 86, 86, 86, 3291, 1944, 1946, 1948, 1958,
2115 1960, 86, 86, 1959, 1957, 1951, 1950, 3291, 1966, 86,
2116 86, 86, 86, 1953, 86, 86, 1956, 1954, 1962, 1963,
2117
2118 1964, 86, 86, 86, 1969, 1965, 1958, 1960, 1967, 86,
2119 1959, 1957, 1968, 86, 1970, 1966, 1973, 86, 1971, 86,
2120 1975, 86, 1974, 1972, 1976, 1962, 1963, 1964, 1978, 86,
2121 1977, 1980, 1965, 3291, 86, 1967, 86, 1979, 86, 1968,
2122 86, 1970, 86, 1973, 1982, 86, 1981, 1975, 1984, 1974,
2123 86, 1976, 86, 1983, 86, 86, 1985, 1977, 1980, 1987,
2124 86, 1986, 1988, 86, 1979, 1989, 86, 1990, 1991, 1992,
2125 86, 86, 86, 1981, 86, 1984, 1994, 1995, 1996, 1993,
2126 1983, 1998, 86, 1985, 1997, 86, 1987, 86, 1986, 86,
2127 86, 2006, 1989, 86, 86, 1991, 1992, 86, 1999, 2000,
2128
2129 2001, 86, 2002, 1994, 2004, 86, 1993, 2007, 1998, 86,
2130 2005, 1997, 2003, 86, 86, 86, 2008, 86, 86, 2009,
2131 2010, 2011, 2012, 86, 3291, 1999, 2000, 2001, 86, 2002,
2132 2015, 2004, 86, 2014, 2007, 2013, 86, 2005, 86, 2003,
2133 86, 2016, 2017, 2008, 86, 2018, 2019, 86, 86, 2012,
2134 2020, 86, 86, 86, 86, 2021, 86, 2015, 2022, 2025,
2135 2014, 2029, 2013, 3291, 2023, 2028, 86, 2024, 2016, 2017,
2136 86, 86, 2018, 2019, 2027, 2026, 86, 2020, 2030, 86,
2137 2034, 86, 86, 86, 2032, 2031, 2025, 86, 2029, 2033,
2138 86, 2023, 2028, 86, 2024, 2036, 86, 86, 2035, 2037,
2139
2140 2038, 2027, 2026, 86, 2039, 86, 2041, 2034, 2042, 2040,
2141 2044, 2032, 2031, 86, 86, 2043, 2033, 2045, 86, 86,
2142 86, 2048, 2036, 86, 2050, 2035, 86, 2038, 86, 2051,
2143 2054, 2039, 2052, 86, 2046, 2042, 2040, 2044, 2047, 86,
2144 2049, 86, 2043, 2053, 2045, 86, 86, 2057, 86, 2058,
2145 2059, 2050, 86, 86, 86, 2055, 86, 2054, 86, 2052,
2146 2056, 2046, 2062, 2060, 2063, 2047, 86, 2049, 2061, 2067,
2147 2053, 86, 2064, 86, 2057, 2065, 86, 86, 2066, 2071,
2148 2069, 86, 2055, 2068, 2072, 2070, 2073, 2056, 2074, 3291,
2149 3291, 86, 2075, 86, 86, 86, 86, 86, 86, 2064,
2150
2151 86, 86, 2065, 86, 2079, 2066, 2071, 2069, 2076, 2077,
2152 2068, 2081, 2070, 2073, 168, 2080, 86, 2078, 2082, 2075,
2153 86, 2083, 2084, 86, 86, 86, 86, 2085, 2087, 86,
2154 2086, 2079, 3291, 2088, 2089, 2076, 2077, 86, 2081, 86,
2155 2090, 2091, 2080, 2092, 2078, 86, 2093, 2096, 86, 2084,
2156 86, 86, 86, 2097, 86, 2087, 2094, 2086, 86, 86,
2157 2088, 2089, 86, 2095, 2098, 86, 2099, 2090, 2091, 86,
2158 2092, 86, 86, 2093, 2096, 2100, 2101, 2102, 86, 2103,
2159 86, 2104, 86, 2094, 2106, 2105, 86, 2107, 86, 2109,
2160 2095, 2098, 86, 2099, 86, 2108, 2110, 86, 2111, 86,
2161
2162 86, 3291, 2100, 2101, 86, 86, 2103, 2113, 2104, 2112,
2163 86, 2106, 2105, 2114, 2107, 2117, 86, 86, 86, 2116,
2164 86, 86, 2108, 2110, 2115, 2111, 2119, 2120, 86, 2121,
2165 2118, 2125, 2122, 86, 2113, 2124, 2112, 86, 86, 86,
2166 2114, 2123, 2117, 2126, 86, 86, 2116, 2131, 2129, 86,
2167 2127, 2115, 86, 2119, 2120, 2128, 2121, 2118, 86, 2122,
2168 86, 86, 2124, 86, 2132, 2130, 86, 86, 2123, 2133,
2169 2126, 2135, 2134, 3291, 86, 2129, 2137, 2127, 86, 86,
2170 2138, 2136, 2128, 2139, 2140, 2141, 2145, 86, 2143, 2142,
2171 3291, 2132, 2130, 86, 2144, 86, 2133, 86, 86, 2134,
2172
2173 86, 86, 2146, 86, 2148, 86, 86, 2138, 2136, 86,
2174 2139, 2140, 86, 2145, 2150, 2143, 2142, 86, 2147, 86,
2175 86, 2144, 2149, 2151, 86, 2156, 86, 2152, 86, 2146,
2176 2153, 2148, 86, 2158, 2154, 2157, 2159, 86, 86, 86,
2177 2162, 2150, 86, 2163, 2160, 2147, 2165, 2155, 86, 2149,
2178 2151, 2161, 2156, 86, 2152, 86, 2166, 2153, 86, 2164,
2179 2158, 2154, 2157, 86, 86, 86, 86, 2162, 86, 2168,
2180 2163, 2160, 2169, 2165, 2155, 2167, 2170, 2172, 2161, 2171,
2181 2174, 86, 2173, 2166, 86, 2175, 2164, 3291, 86, 2176,
2182 2178, 86, 86, 86, 86, 86, 2168, 86, 2177, 2169,
2183
2184 2179, 86, 2167, 2170, 2172, 86, 2171, 2174, 2180, 2173,
2185 2182, 86, 2175, 2181, 86, 2184, 2176, 86, 2186, 2183,
2186 2188, 2185, 2187, 2196, 86, 2177, 2189, 2179, 86, 3291,
2187 86, 2190, 86, 2192, 86, 2180, 2193, 2182, 86, 86,
2188 2181, 86, 2184, 2191, 86, 86, 2183, 2188, 2185, 2187,
2189 86, 2197, 2194, 2189, 2195, 86, 86, 2198, 2190, 2199,
2190 86, 86, 86, 2193, 86, 2202, 2200, 3291, 86, 2204,
2191 2191, 2205, 2203, 86, 2201, 3291, 2206, 2212, 2197, 2194,
2192 2207, 2195, 86, 86, 2198, 86, 2199, 86, 2211, 3291,
2193 2218, 2208, 86, 2200, 86, 86, 2204, 86, 2205, 2203,
2194
2195 86, 2201, 86, 2206, 2212, 2209, 2213, 2207, 2210, 2215,
2196 2216, 2214, 86, 86, 2217, 2211, 2220, 2218, 2208, 2221,
2197 2219, 2222, 2223, 86, 2224, 86, 86, 86, 2243, 86,
2198 86, 2225, 2209, 86, 2226, 2210, 2215, 2216, 86, 86,
2199 86, 2217, 86, 2220, 2227, 86, 2221, 2219, 2222, 86,
2200 2228, 2224, 2229, 2230, 2232, 86, 2231, 86, 2225, 3291,
2201 2233, 2226, 86, 86, 2237, 2235, 2234, 86, 86, 2238,
2202 2241, 2227, 86, 86, 2245, 2253, 86, 2228, 2236, 2229,
2203 2230, 2232, 86, 2231, 86, 86, 86, 2233, 2239, 2240,
2204 2242, 2237, 2235, 2234, 2244, 2246, 2238, 2241, 86, 3291,
2205
2206 86, 86, 2247, 86, 2248, 2236, 2249, 86, 86, 2250,
2207 2254, 2255, 86, 2251, 168, 2239, 2240, 2242, 2252, 2258,
2208 86, 2244, 2246, 2257, 2256, 86, 86, 2259, 3291, 2247,
2209 86, 2248, 2263, 2249, 2264, 86, 2250, 2262, 2255, 2266,
2210 2267, 2260, 86, 86, 3291, 86, 86, 2265, 86, 2268,
2211 2257, 2256, 2261, 86, 2259, 86, 2269, 2270, 2271, 86,
2212 86, 2264, 86, 2272, 2262, 2273, 2266, 2275, 2260, 2278,
2213 2274, 86, 86, 2277, 2265, 86, 2268, 86, 2283, 2261,
2214 86, 2281, 86, 2269, 86, 2271, 2276, 2280, 86, 86,
2215 86, 86, 2273, 86, 2275, 86, 2278, 2274, 2279, 86,
2216
2217 2277, 2282, 86, 86, 2284, 2283, 2287, 2285, 2281, 2288,
2218 86, 86, 2286, 2276, 2280, 2289, 2290, 86, 2291, 86,
2219 2293, 2292, 3291, 2296, 2295, 2279, 3291, 86, 2282, 86,
2220 86, 2284, 86, 86, 2285, 86, 2288, 86, 86, 2286,
2221 2298, 2294, 2289, 2290, 2297, 2291, 86, 2293, 2292, 86,
2222 2296, 2295, 2300, 86, 2299, 2301, 2303, 2302, 2304, 86,
2223 86, 86, 2306, 86, 2305, 2310, 86, 86, 2294, 2307,
2224 86, 2297, 2311, 86, 2308, 86, 2309, 86, 86, 2300,
2225 2312, 2299, 2301, 2303, 2302, 2304, 86, 2313, 2314, 2306,
2226 86, 2305, 2310, 86, 2315, 2316, 2307, 2319, 2317, 2311,
2227
2228 2320, 2308, 2318, 2309, 3291, 86, 2321, 2312, 2322, 86,
2229 86, 86, 2324, 2328, 86, 2314, 86, 2325, 86, 2329,
2230 2323, 2315, 2316, 86, 2319, 2317, 86, 86, 2330, 2318,
2231 3291, 86, 86, 2321, 2326, 86, 2331, 2327, 2332, 2324,
2232 86, 2333, 2334, 86, 2325, 86, 86, 2323, 86, 2335,
2233 86, 2336, 86, 2338, 2337, 2330, 2340, 86, 86, 2341,
2234 2342, 2326, 86, 2331, 2327, 2332, 2339, 2343, 2333, 2334,
2235 2344, 86, 2345, 2346, 2349, 86, 86, 2347, 86, 2350,
2236 86, 2337, 86, 86, 2348, 86, 2341, 2342, 2352, 2353,
2237 86, 86, 86, 2339, 86, 2351, 86, 86, 86, 2345,
2238
2239 2346, 2349, 2354, 86, 2347, 2358, 86, 2355, 3291, 2356,
2240 2359, 2348, 2361, 2360, 2362, 86, 2353, 2364, 86, 2363,
2241 86, 86, 2351, 86, 2357, 86, 86, 2366, 2367, 2354,
2242 2365, 86, 86, 3291, 2355, 86, 2356, 2359, 2369, 2361,
2243 2360, 86, 86, 2372, 2364, 2368, 2363, 2370, 2374, 2371,
2244 86, 2357, 2423, 86, 2366, 86, 2373, 2365, 2375, 86,
2245 86, 86, 2379, 86, 2376, 2369, 2378, 86, 86, 2377,
2246 86, 86, 2368, 86, 2370, 2374, 2371, 2380, 86, 86,
2247 2381, 2386, 2382, 2373, 2389, 2375, 2385, 3291, 86, 2379,
2248 2387, 2376, 2388, 2378, 86, 86, 2377, 2383, 86, 2384,
2249
2250 2391, 86, 2396, 86, 2380, 86, 86, 2381, 2386, 2382,
2251 2390, 2389, 86, 2385, 2392, 86, 86, 2387, 2393, 2388,
2252 2394, 2395, 86, 2397, 2383, 2398, 2384, 2391, 2401, 86,
2253 86, 2399, 2400, 86, 86, 2402, 2403, 2390, 2404, 2408,
2254 86, 2392, 86, 2405, 2409, 2393, 2406, 2394, 2395, 86,
2255 2397, 2407, 86, 86, 86, 2401, 86, 86, 2399, 2400,
2256 86, 86, 2402, 2403, 86, 2404, 2408, 2410, 2411, 86,
2257 2405, 2413, 3291, 2406, 2412, 2415, 86, 2414, 2407, 2416,
2258 3291, 86, 2421, 2419, 3291, 2420, 2418, 2417, 3291, 86,
2259 86, 86, 3291, 86, 2434, 2411, 2435, 2425, 2413, 86,
2260
2261 2422, 2412, 2426, 86, 2414, 86, 2416, 86, 168, 2421,
2262 2419, 86, 2420, 2418, 2417, 86, 2424, 86, 2429, 2427,
2263 2428, 86, 86, 2435, 2425, 2430, 2431, 2422, 86, 2426,
2264 86, 2432, 86, 86, 2436, 2433, 2437, 2438, 86, 2439,
2265 2440, 2442, 3291, 2424, 2449, 2429, 2427, 2428, 86, 86,
2266 86, 2441, 2430, 2431, 2443, 3291, 2444, 2446, 2432, 86,
2267 86, 86, 2433, 2437, 2438, 2445, 2447, 86, 86, 86,
2268 86, 86, 86, 2448, 86, 2450, 86, 2454, 2441, 2451,
2269 86, 2443, 86, 2444, 2446, 2452, 2453, 2455, 86, 2456,
2270 3291, 2458, 2445, 2447, 2459, 2460, 3291, 2457, 86, 86,
2271
2272 2448, 86, 2450, 2462, 86, 2461, 2451, 86, 86, 86,
2273 86, 2466, 2452, 2453, 2455, 86, 2456, 86, 2458, 86,
2274 2463, 2459, 86, 2465, 2457, 86, 2464, 86, 2467, 2468,
2275 2462, 2469, 2461, 86, 86, 86, 86, 2470, 2466, 2471,
2276 2474, 2472, 2476, 2479, 2473, 2489, 2480, 2463, 86, 86,
2277 2465, 86, 86, 2464, 2475, 2467, 2468, 86, 86, 2477,
2278 86, 2478, 86, 86, 2470, 86, 2471, 2474, 2472, 2476,
2279 86, 2473, 2481, 2480, 2482, 86, 2483, 86, 2484, 3291,
2280 2490, 2475, 2485, 86, 2486, 86, 2477, 2487, 2478, 86,
2281 2491, 2493, 86, 2488, 2492, 86, 3291, 86, 3291, 2481,
2282
2283 2501, 2482, 2495, 2483, 86, 2484, 86, 2490, 2497, 2485,
2284 2494, 2486, 86, 86, 2487, 86, 86, 86, 86, 86,
2285 2488, 2492, 2496, 2498, 86, 2499, 2500, 86, 2502, 2495,
2286 86, 2503, 2504, 86, 2505, 2497, 3291, 2494, 2506, 2510,
2287 2507, 2509, 2511, 86, 2512, 86, 2508, 86, 86, 2496,
2288 2498, 2515, 2499, 2500, 86, 86, 86, 2516, 86, 2504,
2289 86, 2505, 86, 86, 2517, 2506, 86, 2507, 2509, 2511,
2290 2513, 2514, 86, 2508, 2519, 2520, 86, 2518, 86, 86,
2291 3291, 86, 2526, 86, 2516, 2521, 86, 2522, 2523, 2524,
2292 3291, 2517, 2525, 2528, 3291, 86, 86, 2513, 2514, 2529,
2293
2294 86, 2519, 86, 2530, 2518, 2527, 86, 86, 86, 2526,
2295 86, 86, 2521, 2531, 2522, 2523, 2524, 86, 86, 2525,
2296 2528, 86, 2532, 2533, 2534, 2535, 2529, 2536, 2537, 2541,
2297 2530, 2538, 2527, 2539, 3291, 86, 2540, 86, 2543, 2545,
2298 2531, 3291, 86, 2547, 86, 86, 2542, 2548, 3291, 86,
2299 86, 86, 86, 86, 2536, 2537, 2541, 2544, 2538, 86,
2300 2539, 86, 86, 2540, 2546, 2543, 86, 2549, 86, 2551,
2301 86, 2550, 86, 2542, 86, 2552, 2557, 2554, 2553, 2558,
2302 2555, 2556, 3291, 86, 2544, 86, 86, 86, 86, 86,
2303 86, 2546, 2559, 86, 2549, 2565, 2551, 86, 2550, 86,
2304
2305 2561, 3291, 2552, 86, 2554, 2553, 2558, 2555, 2556, 2560,
2306 2562, 2563, 3291, 86, 86, 2564, 86, 2566, 2570, 2559,
2307 2567, 86, 2565, 86, 86, 2569, 2572, 2561, 2568, 2571,
2308 168, 2576, 86, 86, 86, 86, 2560, 2562, 2563, 2574,
2309 86, 2573, 2564, 2575, 2566, 2570, 2577, 2567, 2578, 3291,
2310 86, 2579, 2569, 2572, 86, 2568, 2571, 2580, 86, 2583,
2311 2581, 86, 2586, 2582, 2584, 86, 2574, 86, 2573, 86,
2312 2575, 86, 3291, 86, 86, 2578, 86, 86, 2579, 86,
2313 2587, 2585, 2589, 86, 2580, 86, 2583, 2581, 86, 2586,
2314 2582, 2584, 2588, 2591, 2590, 2592, 2593, 2594, 2596, 86,
2315
2316 86, 86, 86, 2595, 2597, 86, 86, 2587, 2585, 2589,
2317 2598, 2600, 2602, 2605, 2599, 86, 2601, 86, 86, 2588,
2318 2591, 2590, 2592, 2593, 2594, 86, 2603, 2604, 3291, 86,
2319 2595, 2597, 86, 86, 86, 86, 86, 2598, 86, 86,
2320 2605, 2599, 2607, 2601, 2606, 2611, 2608, 2609, 2612, 2610,
2321 2616, 86, 2613, 2603, 2604, 86, 86, 86, 86, 86,
2322 2615, 2614, 2617, 2618, 3291, 3291, 2620, 2622, 3291, 2607,
2323 86, 2606, 86, 2608, 2609, 86, 2610, 86, 86, 2613,
2324 86, 86, 2619, 2623, 2621, 2626, 2628, 2615, 2614, 86,
2325 2624, 86, 86, 2620, 2622, 86, 2625, 86, 3291, 2627,
2326
2327 2629, 2630, 2632, 86, 2634, 86, 2631, 86, 2633, 2619,
2328 2623, 2621, 2626, 86, 86, 2635, 86, 2624, 2636, 86,
2329 86, 2641, 86, 2625, 86, 86, 2627, 2629, 86, 2632,
2330 2637, 2634, 2639, 2631, 2640, 2633, 2638, 86, 2642, 86,
2331 86, 2644, 2635, 2643, 86, 2636, 2645, 2648, 86, 2647,
2332 86, 2653, 86, 2649, 2646, 2651, 3291, 2637, 86, 2639,
2333 2654, 2640, 86, 2638, 2657, 2642, 86, 86, 86, 86,
2334 2643, 2650, 86, 2645, 86, 86, 2647, 2652, 86, 2655,
2335 2649, 2646, 2651, 86, 86, 2656, 2658, 2654, 2659, 2660,
2336 2662, 86, 2661, 2664, 86, 2665, 2667, 86, 2650, 2663,
2337
2338 2666, 86, 2672, 3291, 2652, 86, 2655, 2670, 86, 2674,
2339 86, 86, 2656, 2658, 86, 86, 2660, 2662, 2668, 2661,
2340 86, 86, 2665, 86, 2669, 86, 2663, 2666, 2671, 86,
2341 2673, 2675, 86, 2679, 2670, 2677, 86, 2676, 86, 2678,
2342 3291, 2680, 86, 3291, 2682, 2668, 86, 2681, 86, 86,
2343 2684, 2669, 86, 86, 2685, 2671, 2687, 2673, 2675, 86,
2344 2679, 86, 2677, 86, 2676, 86, 2678, 2683, 2680, 2688,
2345 2686, 2682, 86, 2689, 2681, 2690, 86, 2684, 2692, 86,
2346 2693, 2685, 86, 86, 2691, 2694, 2695, 86, 2696, 86,
2347 3291, 2697, 2699, 3291, 2683, 86, 86, 2686, 2698, 2700,
2348
2349 168, 2702, 2690, 86, 3291, 2692, 86, 2693, 86, 2701,
2350 2703, 2691, 2710, 2695, 86, 2696, 2704, 86, 2697, 86,
2351 86, 2705, 2706, 86, 2707, 2698, 86, 2708, 86, 2709,
2352 2711, 2713, 2712, 2716, 86, 86, 2701, 2703, 2717, 2710,
2353 86, 2714, 2718, 86, 86, 2721, 86, 2715, 86, 2706,
2354 86, 2707, 86, 86, 2708, 2720, 2719, 2711, 2713, 2712,
2355 86, 86, 2722, 2723, 86, 86, 2724, 86, 2714, 2718,
2356 86, 86, 2721, 2725, 2715, 86, 2726, 2727, 86, 2728,
2357 2729, 2731, 2720, 2719, 2730, 86, 86, 2732, 86, 2722,
2358 2723, 86, 2733, 2724, 2734, 86, 86, 86, 86, 86,
2359
2360 2725, 2735, 2738, 2726, 2727, 2736, 2728, 2729, 2731, 86,
2361 86, 2730, 86, 2739, 2732, 86, 2741, 2737, 2740, 2742,
2362 2743, 2734, 2744, 2745, 86, 86, 86, 2748, 2735, 86,
2363 86, 86, 2736, 86, 86, 86, 2747, 2749, 2750, 86,
2364 2739, 2746, 2751, 2741, 2737, 2740, 2742, 86, 86, 2744,
2365 2745, 2752, 2753, 2754, 86, 2755, 3291, 2756, 2758, 86,
2366 2759, 2763, 2757, 2747, 2749, 2761, 2760, 2764, 2746, 2765,
2367 86, 2768, 86, 86, 86, 86, 86, 86, 86, 86,
2368 2754, 86, 2755, 86, 2756, 2758, 2762, 2759, 86, 2757,
2369 2767, 86, 2761, 2760, 86, 86, 86, 2766, 86, 2769,
2370
2371 2770, 2771, 2772, 2774, 3291, 2775, 86, 2773, 2776, 2777,
2372 86, 3291, 86, 2762, 2778, 2779, 86, 2767, 2781, 3291,
2373 86, 2782, 86, 2783, 2766, 86, 2769, 2770, 2771, 86,
2374 2774, 86, 2775, 2784, 86, 86, 86, 2780, 86, 2785,
2375 2786, 2778, 2779, 2787, 2788, 2781, 86, 2791, 86, 86,
2376 2783, 86, 2789, 86, 2790, 2792, 2793, 86, 2795, 2799,
2377 86, 2794, 86, 2798, 2780, 86, 2785, 86, 2796, 2797,
2378 2787, 2788, 2802, 3291, 86, 86, 86, 2801, 86, 2789,
2379 2803, 2800, 2792, 86, 86, 2795, 86, 2804, 86, 2805,
2380 2798, 86, 2806, 2807, 86, 2796, 2797, 2808, 3291, 86,
2381
2382 86, 2812, 86, 2811, 2801, 2814, 86, 2803, 2800, 2815,
2383 86, 2809, 2810, 86, 2804, 2813, 2805, 86, 86, 2806,
2384 2807, 86, 86, 86, 2808, 86, 2817, 2816, 2812, 2820,
2385 2811, 2819, 2814, 2821, 2818, 2827, 86, 86, 2809, 2810,
2386 86, 2822, 2813, 2824, 86, 2828, 2823, 2826, 2825, 3291,
2387 86, 2829, 86, 2817, 2816, 86, 2820, 2830, 2819, 2831,
2388 2821, 2818, 86, 2834, 3291, 2832, 2833, 2835, 86, 2836,
2389 86, 86, 2828, 86, 2826, 86, 86, 86, 2829, 2837,
2390 2838, 2839, 2840, 86, 2830, 86, 2831, 86, 86, 86,
2391 2834, 86, 2832, 2833, 2835, 2842, 2836, 2841, 2843, 86,
2392
2393 3291, 2845, 86, 2844, 86, 2846, 2837, 2838, 2839, 2840,
2394 86, 2847, 2848, 2849, 2850, 2851, 2852, 2854, 2853, 2855,
2395 3291, 3291, 86, 3291, 2841, 86, 86, 86, 2845, 2856,
2396 2844, 86, 86, 86, 86, 86, 86, 2857, 2847, 86,
2397 2849, 86, 2851, 2852, 2854, 2853, 86, 2858, 2859, 2861,
2398 2862, 2864, 86, 2860, 3291, 86, 2856, 2865, 2863, 86,
2399 2866, 2869, 2867, 86, 2857, 2868, 3291, 86, 86, 3291,
2400 86, 2871, 2870, 86, 2858, 86, 2861, 2862, 2864, 2873,
2401 86, 86, 2875, 3291, 86, 2863, 86, 86, 2869, 2867,
2402 86, 2872, 2868, 86, 2874, 2876, 2877, 86, 2871, 2870,
2403
2404 3291, 86, 86, 2878, 2879, 2885, 2873, 2880, 3291, 2881,
2405 86, 3291, 2883, 2882, 86, 2884, 2886, 2887, 2872, 2888,
2406 2890, 2874, 2876, 2877, 3291, 86, 86, 86, 86, 2891,
2407 2878, 2879, 86, 86, 2880, 86, 2881, 86, 86, 2883,
2408 2882, 2889, 2884, 86, 86, 2892, 2888, 2890, 86, 2893,
2409 3291, 86, 2894, 2895, 2896, 2897, 2891, 2900, 2898, 2901,
2410 2902, 2899, 86, 86, 86, 2903, 86, 2904, 2889, 3291,
2411 86, 86, 2907, 2905, 86, 2906, 2893, 86, 2908, 2894,
2412 86, 2896, 2897, 86, 2900, 2898, 86, 2902, 2899, 2909,
2413 86, 86, 86, 2912, 2904, 86, 2910, 86, 86, 2907,
2414
2415 2905, 86, 2906, 2911, 2913, 2908, 2915, 2914, 86, 2916,
2416 86, 2917, 3291, 2919, 2925, 2920, 2909, 2918, 86, 2921,
2417 86, 86, 86, 2910, 3291, 86, 3291, 86, 2927, 86,
2418 2911, 2913, 86, 2915, 2914, 2922, 2916, 86, 2917, 2923,
2419 2919, 86, 2920, 2926, 2918, 86, 2921, 2928, 86, 2924,
2420 86, 86, 2929, 86, 2930, 86, 2931, 2932, 86, 2935,
2421 2933, 3291, 2922, 2934, 2940, 2936, 2923, 86, 86, 2937,
2422 2926, 86, 86, 86, 86, 2939, 2924, 86, 2942, 2929,
2423 2938, 86, 2944, 2931, 2932, 86, 86, 2933, 86, 2941,
2424 2934, 2940, 2936, 2943, 2946, 2945, 2937, 86, 2947, 86,
2425
2426 86, 86, 2939, 2948, 2949, 86, 2953, 2938, 2950, 2955,
2427 2952, 86, 2954, 2957, 86, 2956, 2941, 86, 2959, 86,
2428 2943, 2946, 2945, 86, 86, 86, 86, 2951, 86, 2958,
2429 86, 2949, 2962, 2953, 2960, 86, 86, 2952, 2961, 2954,
2430 2957, 86, 2956, 2963, 2964, 86, 2965, 86, 2966, 2967,
2431 86, 2968, 2969, 2970, 2951, 2971, 2958, 2973, 86, 2962,
2432 86, 2960, 3291, 2972, 86, 2961, 3291, 2976, 3291, 3291,
2433 2963, 86, 86, 86, 86, 2966, 86, 86, 2968, 2969,
2434 86, 86, 2971, 2974, 2975, 2977, 2978, 2980, 2981, 86,
2435 2972, 2982, 2983, 86, 86, 86, 2979, 2985, 86, 86,
2436
2437 86, 86, 2984, 86, 2986, 2987, 2989, 2990, 2988, 2991,
2438 2974, 2975, 2977, 2978, 2980, 86, 2992, 2995, 2982, 2983,
2439 86, 86, 3291, 2979, 86, 2993, 2996, 86, 86, 2984,
2440 2997, 86, 2987, 2989, 86, 2988, 86, 2994, 86, 86,
2441 2999, 3000, 2998, 86, 3002, 86, 86, 3003, 86, 86,
2442 86, 3001, 2993, 2996, 3005, 3006, 86, 86, 3007, 3004,
2443 3008, 86, 3009, 3013, 2994, 3014, 3016, 2999, 3000, 2998,
2444 86, 3002, 86, 86, 86, 3012, 3010, 3015, 3001, 86,
2445 3011, 3005, 3006, 86, 3017, 86, 3004, 86, 86, 3291,
2446 86, 3018, 86, 3016, 86, 3019, 3020, 86, 3021, 86,
2447
2448 3025, 3022, 3012, 3010, 3015, 3023, 86, 3011, 86, 3024,
2449 3027, 3028, 86, 3026, 86, 86, 86, 3029, 3018, 86,
2450 86, 3031, 3019, 86, 86, 3021, 3030, 3025, 3022, 86,
2451 86, 86, 3023, 86, 86, 3032, 3024, 3027, 3028, 3035,
2452 3026, 3033, 3034, 3036, 3029, 86, 86, 3038, 3031, 3037,
2453 3039, 86, 3041, 3030, 86, 3291, 3040, 3042, 3043, 86,
2454 3044, 3045, 3032, 3046, 3047, 86, 3035, 3048, 3033, 3034,
2455 3036, 86, 86, 3291, 3038, 3050, 3037, 3051, 86, 3041,
2456 3058, 86, 86, 3040, 3042, 3043, 86, 86, 86, 86,
2457 3046, 86, 3049, 3059, 3048, 3052, 3053, 3054, 3055, 3291,
2458
2459 86, 3060, 86, 86, 86, 3056, 3057, 3058, 3061, 3062,
2460 86, 3063, 3065, 3067, 3069, 3064, 86, 3070, 86, 3049,
2461 86, 86, 3068, 3066, 86, 86, 86, 3073, 3060, 86,
2462 3072, 3074, 86, 86, 86, 3061, 3062, 86, 3063, 86,
2463 3067, 3069, 3064, 3071, 3070, 86, 3075, 3076, 86, 3068,
2464 3066, 3080, 86, 86, 3073, 3077, 3081, 3072, 86, 86,
2465 3078, 3082, 3083, 3079, 86, 3085, 3090, 3084, 3088, 3086,
2466 3071, 86, 3089, 86, 3076, 3087, 86, 86, 86, 86,
2467 3091, 3092, 3077, 86, 3093, 3096, 3097, 3078, 3094, 3083,
2468 3079, 86, 3085, 86, 3084, 3088, 3086, 86, 86, 86,
2469
2470 86, 86, 3087, 3095, 3098, 3099, 3100, 3091, 86, 3101,
2471 3102, 86, 86, 86, 3103, 3094, 3104, 3105, 3107, 3109,
2472 3106, 3108, 86, 3291, 3112, 86, 3291, 3291, 3110, 3291,
2473 3095, 3098, 86, 86, 86, 86, 86, 86, 86, 86,
2474 3113, 86, 3111, 86, 86, 86, 3109, 3106, 3108, 3114,
2475 86, 86, 86, 3115, 3117, 3110, 3116, 3118, 3121, 86,
2476 3126, 3119, 3120, 86, 3122, 3123, 86, 3113, 86, 3111,
2477 86, 3124, 3125, 86, 86, 3127, 3114, 3291, 3131, 3291,
2478 3115, 3117, 86, 3116, 86, 3121, 86, 3126, 3119, 3120,
2479 86, 3122, 3123, 3128, 3129, 86, 3130, 86, 3124, 86,
2480
2481 3132, 86, 3127, 86, 86, 3131, 3133, 86, 3135, 86,
2482 3134, 3137, 3136, 3138, 3139, 3140, 3142, 3145, 86, 3291,
2483 3128, 3129, 86, 3130, 3141, 86, 3143, 3132, 86, 86,
2484 86, 3147, 3148, 3133, 86, 3135, 86, 3134, 3137, 3136,
2485 86, 86, 86, 3142, 3145, 3144, 3146, 86, 3150, 86,
2486 86, 3141, 86, 3143, 86, 3149, 3291, 3151, 3147, 3148,
2487 86, 3153, 3152, 3158, 3291, 3154, 3155, 3157, 3156, 86,
2488 86, 3159, 3144, 3146, 86, 3150, 86, 86, 3160, 86,
2489 86, 86, 3149, 86, 3151, 3161, 86, 3162, 3153, 3152,
2490 3158, 86, 3154, 3155, 3157, 3156, 3163, 3164, 3159, 3166,
2491
2492 86, 3167, 3165, 86, 3168, 3160, 86, 3169, 3171, 86,
2493 3170, 3172, 3161, 3173, 3162, 86, 3180, 3175, 3174, 86,
2494 3176, 86, 86, 3163, 3164, 86, 3166, 3177, 86, 3165,
2495 3178, 3168, 86, 3181, 86, 86, 86, 3170, 86, 3179,
2496 3173, 86, 86, 3182, 3175, 3174, 86, 3176, 86, 86,
2497 3183, 86, 3184, 3186, 3177, 3185, 3187, 3178, 86, 3188,
2498 3181, 3189, 86, 3190, 3191, 3192, 3179, 3193, 3195, 86,
2499 3182, 86, 86, 3194, 86, 3197, 86, 3183, 3198, 86,
2500 86, 3196, 3185, 86, 3199, 3291, 3188, 86, 3189, 86,
2501 86, 3191, 3192, 3201, 86, 3195, 3202, 86, 3200, 86,
2502
2503 3194, 86, 3203, 3204, 3207, 3208, 3206, 86, 3196, 3205,
2504 86, 3199, 86, 86, 3209, 86, 3210, 86, 86, 3211,
2505 3201, 86, 3215, 3202, 3217, 3200, 3212, 86, 86, 86,
2506 86, 3207, 3208, 3206, 3213, 3216, 3205, 3214, 86, 3221,
2507 86, 3209, 3224, 3210, 86, 86, 3211, 3218, 86, 3215,
2508 3219, 86, 3220, 3212, 86, 3223, 3222, 86, 3225, 86,
2509 86, 3213, 3216, 3228, 3214, 3291, 86, 3226, 86, 3224,
2510 3227, 86, 3229, 3230, 3218, 3232, 3231, 3219, 86, 3220,
2511 86, 3235, 3233, 3222, 3238, 3225, 3241, 86, 3234, 86,
2512 3228, 3236, 86, 3240, 3226, 3242, 86, 3227, 86, 86,
2513
2514 86, 86, 86, 3231, 86, 86, 3237, 86, 3235, 3233,
2515 3245, 3239, 86, 3241, 86, 3234, 86, 3246, 3236, 86,
2516 3240, 3243, 86, 3247, 3244, 86, 3248, 3291, 3249, 3251,
2517 3250, 86, 86, 3237, 3252, 86, 3253, 3245, 3239, 86,
2518 86, 3254, 3257, 86, 3246, 3255, 3291, 3256, 3243, 86,
2519 3247, 3244, 86, 3248, 86, 3249, 3251, 3250, 3258, 3259,
2520 3260, 3252, 86, 3253, 86, 3262, 3261, 86, 3254, 3257,
2521 3263, 86, 3255, 86, 3256, 3264, 3265, 3267, 86, 3269,
2522 3291, 3266, 3291, 3268, 3276, 3258, 3259, 86, 86, 86,
2523 86, 86, 3262, 3261, 3271, 86, 86, 86, 3272, 86,
2524
2525 3275, 3270, 3264, 3265, 3267, 3273, 86, 3274, 3266, 86,
2526 3268, 86, 3279, 86, 3277, 86, 86, 3280, 3282, 3283,
2527 86, 3271, 86, 3278, 3289, 3272, 86, 3275, 3270, 3281,
2528 3285, 86, 3273, 3284, 3274, 3287, 3286, 3290, 86, 3279,
2529 3288, 3277, 3291, 86, 86, 86, 86, 3291, 86, 86,
2530 3278, 86, 86, 86, 3291, 3291, 3281, 3285, 86, 3291,
2531 3284, 3291, 3287, 3286, 86, 3291, 3291, 3288, 47, 47,
1548 21, 69, 70, 71, 81, 82, 83, 121, 108, 177,
1549 177, 79, 72, 159, 409, 86, 97, 79, 72, 86,
1550 137, 90, 84, 90, 90, 86, 90, 170, 109, 178,
1551 73, 86, 90, 86, 121, 108, 73, 176, 87, 72,
1552 159, 84, 88, 86, 130, 72, 112, 137, 110, 162,
1553 86, 175, 162, 173, 113, 109, 98, 170, 188, 91,
1554
1555 92, 93, 111, 99, 94, 114, 170, 100, 187, 95,
1556 101, 130, 86, 112, 86, 110, 86, 86, 96, 168,
1557 173, 113, 86, 98, 86, 188, 166, 92, 93, 111,
1558 99, 94, 114, 165, 100, 187, 95, 101, 85, 162,
1559 85, 85, 162, 85, 163, 96, 102, 161, 115, 85,
1560 103, 116, 189, 104, 181, 105, 106, 252, 117, 164,
1561 118, 164, 164, 292, 164, 86, 107, 90, 86, 90,
1562 90, 86, 90, 102, 86, 115, 122, 103, 116, 189,
1563 104, 181, 105, 106, 123, 117, 180, 118, 126, 86,
1564 124, 86, 127, 107, 125, 86, 156, 160, 160, 148,
1565
1566 157, 149, 86, 122, 158, 172, 128, 178, 129, 86,
1567 150, 123, 176, 180, 86, 126, 151, 124, 179, 127,
1568 175, 125, 86, 156, 152, 86, 148, 157, 149, 167,
1569 167, 158, 170, 128, 153, 129, 131, 150, 154, 155,
1570 132, 182, 86, 151, 133, 179, 328, 86, 168, 205,
1571 134, 152, 169, 135, 169, 169, 86, 169, 86, 184,
1572 136, 153, 86, 131, 195, 154, 155, 132, 182, 86,
1573 174, 133, 174, 174, 166, 174, 205, 134, 86, 85,
1574 135, 85, 85, 86, 85, 332, 184, 136, 138, 1148,
1575 85, 195, 139, 90, 183, 90, 90, 206, 90, 185,
1576
1577 165, 86, 140, 141, 90, 142, 86, 193, 194, 197,
1578 196, 163, 186, 161, 86, 138, 86, 86, 86, 139,
1579 86, 183, 86, 86, 206, 240, 185, 198, 3353, 140,
1580 141, 91, 142, 143, 193, 194, 144, 196, 190, 186,
1581 199, 86, 201, 145, 191, 200, 192, 146, 147, 86,
1582 334, 86, 240, 86, 198, 86, 207, 3353, 86, 86,
1583 143, 208, 3353, 144, 209, 190, 215, 199, 86, 201,
1584 145, 191, 200, 192, 146, 147, 202, 203, 211, 86,
1585 210, 212, 86, 207, 204, 228, 86, 3353, 208, 217,
1586 216, 209, 86, 86, 213, 214, 3353, 86, 86, 86,
1587
1588 225, 3353, 86, 202, 203, 211, 218, 210, 212, 226,
1589 220, 204, 228, 86, 221, 223, 217, 216, 227, 229,
1590 224, 213, 214, 86, 232, 230, 219, 225, 86, 253,
1591 222, 86, 86, 218, 86, 231, 226, 220, 86, 86,
1592 233, 221, 223, 86, 86, 227, 229, 224, 235, 86,
1593 234, 232, 230, 219, 237, 236, 253, 222, 238, 86,
1594 3353, 239, 231, 86, 86, 241, 245, 233, 86, 246,
1595 86, 86, 86, 3353, 242, 235, 86, 234, 86, 247,
1596 248, 237, 236, 243, 251, 238, 3353, 86, 239, 244,
1597 3353, 249, 241, 245, 257, 250, 246, 86, 86, 3353,
1598
1599 254, 242, 259, 261, 86, 258, 247, 248, 262, 86,
1600 243, 251, 267, 86, 86, 260, 244, 255, 249, 86,
1601 256, 257, 250, 86, 263, 266, 86, 254, 268, 259,
1602 261, 270, 258, 264, 86, 262, 277, 269, 272, 267,
1603 86, 271, 260, 86, 255, 265, 86, 256, 86, 86,
1604 3353, 263, 266, 86, 86, 268, 177, 177, 270, 3353,
1605 264, 3353, 170, 277, 269, 272, 3353, 273, 271, 3353,
1606 3353, 164, 265, 164, 164, 169, 164, 169, 169, 90,
1607 169, 90, 90, 174, 90, 174, 174, 274, 174, 86,
1608 3353, 276, 3353, 280, 273, 278, 281, 282, 283, 284,
1609
1610 86, 275, 279, 3353, 285, 86, 338, 3353, 3353, 86,
1611 86, 86, 286, 290, 86, 86, 291, 172, 276, 86,
1612 280, 86, 278, 281, 282, 283, 284, 287, 275, 279,
1613 86, 285, 340, 288, 289, 86, 86, 293, 86, 286,
1614 290, 294, 86, 291, 301, 303, 3353, 302, 306, 3353,
1615 307, 304, 308, 86, 305, 314, 310, 86, 295, 86,
1616 288, 289, 86, 86, 86, 86, 311, 86, 294, 3353,
1617 86, 301, 303, 86, 302, 306, 86, 307, 304, 86,
1618 309, 305, 314, 310, 86, 295, 296, 312, 86, 318,
1619 317, 297, 313, 311, 326, 370, 298, 315, 86, 86,
1620
1621 316, 86, 299, 300, 319, 86, 325, 309, 3353, 86,
1622 3353, 86, 86, 296, 312, 329, 318, 317, 297, 313,
1623 86, 326, 370, 298, 315, 327, 86, 316, 86, 299,
1624 300, 319, 320, 325, 330, 321, 86, 322, 337, 335,
1625 333, 86, 329, 342, 86, 331, 339, 86, 3353, 323,
1626 344, 324, 327, 336, 341, 3353, 3353, 3353, 86, 320,
1627 345, 3353, 321, 343, 322, 337, 86, 333, 86, 351,
1628 346, 86, 331, 339, 86, 86, 323, 86, 324, 347,
1629 336, 341, 86, 86, 348, 349, 86, 345, 86, 352,
1630 343, 86, 353, 356, 350, 354, 351, 346, 355, 86,
1631
1632 357, 364, 360, 86, 86, 86, 347, 86, 361, 362,
1633 86, 348, 349, 86, 86, 367, 352, 86, 358, 353,
1634 356, 350, 354, 359, 86, 355, 363, 357, 373, 360,
1635 369, 86, 86, 86, 368, 361, 362, 365, 366, 372,
1636 371, 86, 374, 375, 376, 378, 86, 86, 86, 3353,
1637 86, 86, 86, 363, 377, 381, 379, 369, 86, 86,
1638 86, 368, 380, 383, 365, 366, 372, 371, 3353, 86,
1639 375, 384, 378, 386, 86, 387, 86, 86, 382, 388,
1640 390, 377, 86, 379, 389, 3353, 391, 86, 385, 86,
1641 392, 394, 86, 86, 170, 86, 86, 86, 384, 86,
1642
1643 386, 395, 387, 396, 393, 382, 388, 390, 86, 398,
1644 397, 389, 86, 391, 3353, 385, 399, 392, 401, 403,
1645 405, 400, 402, 86, 404, 86, 86, 86, 86, 406,
1646 396, 393, 86, 86, 86, 86, 407, 397, 86, 408,
1647 3353, 86, 411, 399, 412, 401, 403, 413, 400, 402,
1648 410, 404, 86, 86, 415, 414, 406, 416, 86, 86,
1649 419, 86, 420, 407, 421, 86, 408, 86, 86, 411,
1650 86, 412, 417, 418, 413, 86, 422, 410, 86, 423,
1651 86, 415, 414, 426, 416, 424, 428, 431, 3353, 420,
1652 86, 86, 86, 427, 86, 429, 86, 432, 433, 417,
1653
1654 418, 86, 425, 422, 86, 435, 86, 434, 86, 86,
1655 426, 86, 424, 436, 431, 86, 438, 437, 86, 430,
1656 427, 86, 439, 445, 432, 433, 86, 86, 441, 425,
1657 86, 86, 435, 440, 434, 443, 442, 86, 86, 86,
1658 436, 446, 86, 438, 437, 86, 430, 447, 3353, 439,
1659 445, 448, 444, 3353, 86, 441, 3353, 455, 456, 86,
1660 440, 3353, 443, 442, 3353, 457, 86, 86, 3353, 461,
1661 3353, 86, 462, 86, 447, 86, 464, 465, 448, 444,
1662 449, 469, 3353, 450, 455, 456, 86, 86, 451, 452,
1663 453, 454, 457, 86, 463, 458, 461, 459, 86, 462,
1664
1665 466, 86, 468, 464, 465, 467, 3353, 449, 86, 86,
1666 450, 477, 3353, 460, 478, 451, 452, 453, 454, 86,
1667 470, 463, 458, 471, 459, 472, 86, 475, 476, 468,
1668 86, 479, 86, 473, 474, 507, 86, 86, 86, 480,
1669 460, 478, 482, 86, 481, 86, 86, 470, 483, 487,
1670 471, 484, 472, 493, 475, 476, 86, 86, 479, 86,
1671 473, 474, 86, 86, 86, 86, 480, 485, 486, 482,
1672 492, 481, 505, 3353, 86, 483, 3353, 488, 484, 489,
1673 86, 86, 491, 494, 497, 86, 498, 499, 490, 86,
1674 495, 565, 86, 506, 485, 486, 496, 492, 86, 505,
1675
1676 86, 504, 86, 86, 488, 86, 489, 3353, 86, 491,
1677 494, 497, 86, 498, 499, 490, 500, 495, 565, 86,
1678 508, 509, 524, 496, 522, 86, 519, 510, 504, 501,
1679 545, 511, 502, 86, 503, 86, 86, 3353, 523, 512,
1680 86, 3353, 86, 500, 527, 86, 520, 508, 509, 524,
1681 86, 522, 525, 519, 510, 3353, 501, 86, 511, 502,
1682 3353, 503, 86, 535, 521, 523, 512, 513, 526, 514,
1683 86, 527, 537, 520, 536, 86, 86, 538, 539, 525,
1684 540, 556, 515, 3353, 543, 516, 170, 517, 542, 518,
1685 535, 521, 86, 86, 513, 526, 514, 548, 541, 86,
1686
1687 86, 536, 86, 86, 86, 539, 86, 540, 556, 515,
1688 86, 543, 516, 544, 517, 542, 518, 528, 529, 546,
1689 86, 86, 3353, 549, 548, 541, 547, 530, 558, 531,
1690 532, 533, 550, 86, 534, 3353, 553, 555, 563, 557,
1691 544, 554, 86, 86, 528, 529, 546, 551, 86, 86,
1692 559, 86, 561, 547, 530, 86, 531, 532, 533, 550,
1693 86, 534, 562, 553, 555, 552, 557, 86, 554, 86,
1694 86, 560, 566, 594, 551, 86, 86, 559, 86, 561,
1695 564, 569, 86, 567, 568, 3353, 570, 572, 86, 562,
1696 571, 573, 552, 3353, 86, 580, 577, 86, 560, 566,
1697
1698 86, 86, 574, 575, 583, 86, 3353, 564, 569, 578,
1699 3353, 3353, 86, 570, 572, 86, 86, 571, 573, 86,
1700 576, 86, 580, 577, 579, 581, 582, 86, 584, 574,
1701 575, 583, 86, 86, 3353, 585, 578, 86, 86, 595,
1702 598, 596, 597, 586, 599, 608, 3353, 576, 86, 3353,
1703 3353, 579, 581, 582, 587, 584, 588, 86, 86, 601,
1704 3353, 86, 585, 86, 602, 86, 595, 598, 596, 597,
1705 586, 600, 86, 604, 607, 603, 86, 86, 605, 3353,
1706 86, 587, 606, 588, 589, 86, 601, 86, 86, 610,
1707 609, 602, 590, 591, 612, 86, 592, 593, 600, 86,
1708
1709 604, 607, 603, 86, 611, 605, 86, 616, 86, 606,
1710 613, 589, 86, 614, 617, 615, 610, 609, 3353, 590,
1711 591, 86, 624, 592, 593, 86, 86, 618, 620, 86,
1712 86, 611, 621, 86, 616, 619, 86, 613, 622, 86,
1713 614, 617, 615, 86, 625, 623, 86, 86, 626, 624,
1714 627, 628, 629, 86, 618, 620, 630, 3353, 86, 621,
1715 86, 631, 619, 86, 632, 622, 86, 86, 633, 635,
1716 634, 625, 623, 86, 86, 626, 86, 627, 628, 629,
1717 636, 637, 86, 630, 639, 638, 86, 86, 631, 86,
1718 86, 632, 86, 644, 645, 633, 635, 634, 643, 86,
1719
1720 640, 642, 641, 86, 646, 86, 86, 636, 637, 86,
1721 86, 639, 638, 647, 648, 652, 650, 649, 655, 651,
1722 644, 653, 86, 3353, 3353, 643, 86, 640, 642, 641,
1723 86, 646, 657, 656, 86, 86, 86, 654, 658, 86,
1724 86, 648, 652, 650, 649, 86, 651, 661, 653, 86,
1725 86, 663, 660, 662, 664, 666, 86, 86, 86, 657,
1726 656, 659, 665, 667, 654, 86, 3353, 86, 669, 86,
1727 86, 681, 668, 670, 661, 714, 86, 86, 663, 660,
1728 662, 664, 666, 86, 86, 86, 679, 86, 659, 665,
1729 667, 680, 3353, 86, 86, 669, 682, 687, 681, 668,
1730
1731 670, 671, 684, 86, 86, 3353, 672, 86, 673, 86,
1732 683, 3353, 3353, 679, 674, 3353, 675, 688, 680, 676,
1733 677, 86, 691, 682, 687, 86, 678, 86, 671, 684,
1734 685, 696, 692, 672, 686, 673, 3353, 683, 694, 86,
1735 86, 674, 693, 675, 688, 689, 676, 677, 690, 691,
1736 86, 695, 86, 678, 699, 86, 86, 685, 696, 697,
1737 698, 686, 86, 86, 86, 694, 700, 86, 86, 693,
1738 701, 702, 689, 703, 705, 690, 708, 704, 695, 706,
1739 86, 699, 86, 86, 86, 707, 697, 698, 86, 86,
1740 710, 709, 711, 700, 86, 715, 86, 701, 702, 86,
1741
1742 703, 705, 86, 708, 704, 712, 706, 86, 713, 716,
1743 86, 720, 707, 86, 718, 722, 717, 710, 709, 711,
1744 86, 86, 715, 86, 86, 719, 721, 86, 3353, 86,
1745 723, 170, 712, 726, 3353, 713, 716, 86, 720, 725,
1746 727, 718, 722, 717, 724, 729, 728, 86, 730, 86,
1747 3353, 3353, 719, 721, 731, 86, 732, 723, 86, 3353,
1748 86, 86, 733, 86, 734, 740, 725, 743, 735, 86,
1749 741, 724, 86, 728, 86, 730, 744, 86, 86, 745,
1750 736, 731, 739, 732, 748, 742, 86, 737, 746, 733,
1751 738, 734, 86, 86, 86, 735, 747, 86, 86, 86,
1752
1753 749, 753, 751, 86, 752, 750, 757, 736, 86, 739,
1754 755, 86, 742, 754, 737, 86, 86, 738, 86, 86,
1755 756, 758, 759, 86, 762, 86, 86, 761, 753, 751,
1756 86, 752, 86, 757, 760, 86, 763, 755, 765, 86,
1757 754, 767, 86, 86, 764, 766, 3353, 756, 758, 759,
1758 86, 769, 768, 86, 761, 770, 86, 86, 86, 86,
1759 86, 760, 771, 763, 86, 765, 773, 86, 767, 772,
1760 774, 764, 766, 86, 775, 776, 86, 86, 769, 768,
1761 777, 780, 770, 778, 779, 3353, 781, 86, 3353, 771,
1762 86, 782, 86, 783, 784, 785, 772, 774, 86, 86,
1763
1764 86, 775, 776, 787, 86, 788, 786, 777, 780, 789,
1765 778, 779, 86, 781, 790, 86, 86, 86, 782, 86,
1766 783, 784, 785, 791, 794, 793, 3353, 86, 796, 798,
1767 787, 795, 3353, 786, 797, 800, 789, 86, 86, 86,
1768 799, 790, 802, 86, 808, 792, 86, 86, 86, 86,
1769 791, 794, 793, 86, 86, 796, 798, 86, 795, 801,
1770 803, 797, 800, 804, 805, 806, 86, 799, 809, 86,
1771 807, 86, 792, 818, 810, 86, 86, 814, 86, 811,
1772 812, 86, 813, 86, 815, 86, 801, 803, 817, 86,
1773 804, 805, 806, 86, 816, 809, 819, 807, 86, 86,
1774
1775 818, 810, 820, 821, 814, 824, 86, 86, 86, 813,
1776 86, 815, 822, 825, 823, 817, 86, 827, 826, 828,
1777 832, 816, 841, 3353, 86, 3353, 3353, 86, 86, 820,
1778 833, 86, 824, 86, 829, 86, 86, 834, 86, 822,
1779 835, 823, 837, 836, 827, 86, 828, 3353, 830, 831,
1780 86, 838, 86, 847, 86, 86, 86, 833, 839, 842,
1781 845, 829, 86, 849, 834, 846, 851, 835, 86, 837,
1782 836, 86, 3353, 840, 86, 830, 831, 843, 838, 86,
1783 847, 848, 86, 86, 909, 839, 842, 844, 86, 850,
1784 849, 86, 86, 851, 852, 856, 853, 86, 854, 86,
1785
1786 840, 855, 86, 86, 843, 86, 857, 86, 848, 86,
1787 858, 86, 859, 866, 844, 860, 850, 861, 3353, 864,
1788 3353, 852, 856, 853, 863, 854, 862, 86, 855, 86,
1789 86, 865, 86, 86, 86, 86, 867, 858, 86, 859,
1790 868, 871, 860, 86, 861, 86, 864, 878, 869, 86,
1791 872, 863, 870, 862, 873, 86, 86, 874, 865, 86,
1792 86, 875, 876, 867, 86, 86, 86, 868, 871, 86,
1793 86, 880, 877, 879, 878, 869, 884, 872, 881, 870,
1794 86, 873, 882, 883, 874, 886, 86, 916, 875, 876,
1795 922, 86, 86, 885, 889, 86, 888, 86, 880, 877,
1796
1797 879, 86, 887, 884, 86, 881, 86, 86, 86, 882,
1798 883, 890, 886, 86, 891, 892, 895, 893, 894, 86,
1799 885, 889, 86, 888, 898, 86, 896, 3353, 3353, 887,
1800 897, 86, 899, 901, 900, 86, 86, 86, 890, 86,
1801 86, 891, 892, 895, 893, 894, 86, 902, 86, 86,
1802 86, 898, 903, 896, 904, 170, 906, 897, 905, 899,
1803 901, 900, 910, 908, 907, 912, 914, 86, 86, 86,
1804 911, 86, 913, 917, 902, 86, 86, 86, 915, 903,
1805 86, 904, 924, 906, 86, 905, 86, 918, 86, 910,
1806 908, 907, 86, 914, 86, 921, 919, 911, 923, 913,
1807
1808 917, 920, 86, 86, 86, 915, 925, 3353, 935, 924,
1809 86, 86, 927, 938, 918, 86, 926, 86, 86, 86,
1810 86, 936, 921, 919, 3353, 923, 941, 3353, 920, 3353,
1811 3353, 86, 937, 925, 86, 935, 939, 86, 940, 927,
1812 938, 3353, 3353, 926, 928, 942, 946, 929, 936, 943,
1813 86, 930, 3353, 941, 931, 86, 86, 86, 944, 937,
1814 949, 932, 933, 939, 934, 940, 945, 947, 86, 86,
1815 948, 928, 942, 946, 929, 86, 943, 86, 930, 960,
1816 86, 931, 86, 957, 86, 944, 959, 979, 932, 933,
1817 958, 934, 86, 945, 947, 86, 86, 948, 950, 951,
1818
1819 961, 952, 86, 86, 953, 86, 960, 962, 968, 954,
1820 957, 964, 965, 959, 86, 955, 956, 958, 3353, 967,
1821 86, 86, 972, 963, 86, 950, 951, 961, 952, 966,
1822 86, 953, 86, 86, 962, 968, 954, 971, 964, 965,
1823 969, 86, 955, 956, 974, 970, 967, 973, 86, 972,
1824 963, 975, 977, 976, 981, 3353, 966, 86, 980, 86,
1825 978, 983, 982, 3353, 971, 985, 86, 3353, 987, 86,
1826 86, 974, 86, 86, 973, 86, 86, 86, 975, 977,
1827 976, 981, 86, 86, 86, 980, 984, 978, 983, 982,
1828 986, 988, 985, 86, 86, 987, 990, 989, 991, 992,
1829
1830 993, 994, 996, 86, 1000, 86, 997, 86, 995, 86,
1831 86, 998, 999, 984, 86, 1001, 1003, 986, 988, 1002,
1832 3353, 3353, 86, 990, 989, 991, 992, 993, 1004, 86,
1833 86, 1006, 1005, 86, 86, 995, 86, 1007, 86, 999,
1834 1008, 86, 1009, 1011, 3353, 1010, 1002, 86, 86, 1014,
1835 86, 1012, 86, 86, 86, 1004, 1016, 1013, 1006, 1005,
1836 86, 86, 1017, 1018, 86, 86, 86, 86, 1019, 1009,
1837 1011, 86, 1010, 1015, 1020, 1022, 1014, 1021, 1012, 3353,
1838 86, 86, 86, 86, 1013, 86, 1025, 1023, 1024, 1017,
1839 1018, 86, 1026, 86, 1027, 86, 1029, 1030, 1028, 86,
1840
1841 1015, 1035, 1022, 1032, 1021, 86, 86, 1033, 86, 86,
1842 86, 1031, 1034, 1025, 1023, 1024, 1043, 86, 86, 1026,
1843 86, 1027, 1036, 1029, 1030, 1028, 1038, 86, 1035, 86,
1844 1032, 1044, 1037, 1039, 86, 1046, 86, 1040, 1031, 86,
1845 86, 86, 1041, 1043, 86, 1045, 86, 1050, 1047, 1036,
1846 1042, 86, 86, 1038, 86, 1052, 1048, 86, 86, 1037,
1847 1039, 1049, 1046, 86, 1040, 3353, 86, 1054, 86, 1041,
1848 1055, 1051, 1045, 86, 1050, 1047, 1053, 1042, 86, 86,
1849 86, 1056, 1052, 1048, 1057, 1059, 1058, 1060, 1049, 86,
1850 86, 1065, 1061, 1063, 1054, 86, 1062, 1055, 1051, 1064,
1851
1852 86, 3353, 1066, 1053, 86, 86, 86, 1067, 1056, 86,
1853 3353, 1069, 1059, 1058, 1060, 1068, 86, 86, 86, 1061,
1854 1063, 86, 86, 1062, 1070, 86, 1064, 1071, 1072, 1066,
1855 86, 86, 86, 1073, 1067, 1074, 86, 1075, 1069, 1076,
1856 86, 1077, 1068, 1078, 1080, 1082, 1081, 3353, 1088, 1089,
1857 1079, 1070, 86, 1083, 1071, 1072, 86, 86, 1087, 3353,
1858 1073, 86, 1086, 1090, 86, 3353, 1076, 86, 86, 86,
1859 1078, 1084, 1082, 86, 86, 1088, 86, 1079, 86, 1085,
1860 1083, 86, 1091, 1092, 86, 1087, 86, 86, 1093, 1086,
1861 1090, 86, 1094, 3353, 1095, 1096, 1097, 86, 1084, 86,
1862
1863 1098, 1100, 1101, 1103, 86, 1099, 1085, 1102, 86, 1091,
1864 1092, 3353, 1107, 86, 1105, 86, 1121, 1104, 86, 1094,
1865 86, 86, 1096, 1097, 86, 86, 1109, 1106, 1100, 1101,
1866 1103, 1110, 170, 86, 1102, 86, 86, 1108, 86, 1107,
1867 86, 1105, 1111, 86, 1104, 3353, 3353, 1118, 86, 3353,
1868 86, 3353, 1119, 1109, 1106, 1120, 3353, 1122, 1110, 86,
1869 3353, 3353, 1123, 3353, 1108, 1124, 3353, 86, 1125, 1111,
1870 1112, 1126, 1113, 86, 1118, 86, 1114, 86, 1115, 1119,
1871 3353, 86, 1120, 1116, 1122, 86, 1128, 1127, 1117, 1123,
1872 1130, 1129, 1124, 86, 86, 1125, 1131, 1112, 1126, 1113,
1873
1874 86, 1132, 3353, 1114, 1134, 1115, 3353, 1137, 86, 86,
1875 1116, 1135, 1139, 1133, 1127, 1117, 86, 1130, 86, 1138,
1876 1140, 1136, 86, 1131, 86, 86, 86, 1142, 1132, 1141,
1877 1143, 1134, 1145, 86, 1137, 1146, 1144, 1149, 1135, 1139,
1878 1133, 86, 86, 1147, 1150, 86, 1138, 1140, 1136, 86,
1879 1152, 86, 1151, 3353, 1142, 1162, 1141, 1143, 86, 86,
1880 86, 1160, 1161, 1144, 86, 1164, 3353, 86, 86, 86,
1881 86, 1150, 1171, 1165, 3353, 1163, 86, 1152, 3353, 1151,
1882 1153, 3353, 1162, 1167, 86, 1154, 3353, 1155, 1160, 1161,
1883 86, 86, 1164, 1156, 1166, 86, 86, 1170, 1157, 1158,
1884
1885 1165, 1168, 1163, 1169, 86, 1159, 86, 1153, 86, 86,
1886 1167, 86, 1154, 86, 1155, 1172, 1173, 1177, 1174, 1180,
1887 1156, 1166, 1175, 1178, 1170, 1157, 1158, 86, 1168, 1176,
1888 1169, 86, 1159, 86, 1179, 1181, 1183, 86, 86, 1182,
1889 1184, 86, 1172, 1173, 86, 1174, 86, 86, 1185, 1175,
1890 1178, 86, 1186, 1191, 86, 1188, 1176, 1187, 86, 86,
1891 1189, 1179, 1181, 1183, 1190, 86, 1182, 1184, 1192, 1193,
1892 1194, 3353, 1199, 86, 86, 86, 1195, 86, 86, 1186,
1893 86, 1196, 1188, 86, 1187, 86, 86, 1189, 1200, 1198,
1894 86, 1190, 86, 1197, 86, 1192, 1193, 1194, 1201, 1199,
1895
1896 86, 1202, 1203, 1195, 86, 1205, 86, 3353, 1196, 3353,
1897 1204, 86, 1215, 1208, 1207, 1200, 1198, 1206, 86, 86,
1898 1197, 86, 86, 1210, 86, 1201, 86, 1209, 1202, 1211,
1899 1212, 1213, 1205, 1216, 86, 86, 86, 1204, 86, 1215,
1900 1208, 1207, 1214, 1217, 1206, 3353, 1223, 1218, 1219, 1224,
1901 1210, 86, 86, 86, 1209, 1220, 1211, 1212, 1213, 86,
1902 86, 86, 86, 1221, 1225, 86, 86, 1226, 1222, 1214,
1903 1217, 1227, 86, 1223, 1218, 1219, 1224, 1229, 86, 1228,
1904 86, 1231, 1220, 1230, 1232, 1233, 86, 1234, 86, 3353,
1905 86, 1225, 86, 86, 1226, 86, 1236, 86, 1227, 1235,
1906
1907 1237, 1238, 1240, 1239, 1229, 3353, 1228, 1246, 1231, 86,
1908 1230, 86, 1233, 86, 1241, 1243, 86, 1244, 86, 86,
1909 1242, 1245, 86, 1236, 86, 86, 1235, 1237, 1238, 1240,
1910 1239, 86, 1247, 86, 1246, 1248, 86, 1249, 1250, 86,
1911 1251, 1241, 1243, 86, 1244, 1252, 86, 1242, 1245, 1254,
1912 1259, 1253, 1256, 86, 1255, 1260, 1261, 1257, 86, 1247,
1913 86, 86, 1248, 86, 1249, 86, 1262, 86, 1258, 86,
1914 86, 1266, 1252, 86, 86, 86, 1254, 1259, 1253, 1256,
1915 86, 1255, 1260, 1263, 1257, 1264, 1265, 1267, 86, 1269,
1916 1268, 1271, 3353, 1270, 3353, 1258, 86, 86, 86, 1276,
1917
1918 1274, 1272, 3353, 86, 1273, 86, 1277, 86, 86, 86,
1919 1263, 3353, 1264, 1265, 1267, 86, 1275, 1268, 86, 86,
1920 1270, 86, 86, 86, 86, 1278, 1276, 1274, 1272, 1279,
1921 86, 1273, 1281, 1277, 1282, 1280, 1283, 1284, 1285, 1287,
1922 3353, 86, 86, 1275, 86, 1286, 1288, 86, 1290, 1292,
1923 86, 86, 1278, 1293, 86, 3353, 1279, 1289, 86, 1281,
1924 1297, 1282, 1280, 86, 3353, 1285, 86, 86, 86, 86,
1925 86, 86, 1286, 1288, 1294, 1290, 1292, 1295, 1296, 86,
1926 1293, 1298, 86, 1299, 1289, 1300, 86, 86, 170, 1302,
1927 1304, 1301, 1305, 1306, 1307, 1303, 86, 86, 3353, 86,
1928
1929 3353, 1294, 1309, 1308, 1295, 1296, 86, 1310, 1298, 1311,
1930 1299, 86, 1300, 86, 86, 1312, 1302, 86, 1301, 1305,
1931 1313, 1314, 1303, 1315, 86, 86, 86, 1318, 86, 1309,
1932 1308, 86, 86, 86, 1310, 86, 1311, 1316, 1317, 86,
1933 1320, 1319, 1312, 86, 1321, 86, 1322, 1313, 1314, 86,
1934 1315, 1323, 1325, 1324, 1318, 86, 3353, 86, 86, 86,
1935 1331, 1326, 1330, 86, 1316, 1317, 1333, 86, 1319, 1332,
1936 1327, 1321, 1328, 1322, 86, 1329, 1336, 1335, 1323, 1325,
1937 1324, 1334, 3353, 86, 1337, 86, 86, 1331, 1326, 1330,
1938 86, 86, 86, 86, 1339, 1340, 1332, 1327, 1338, 1328,
1939
1940 86, 86, 1329, 1336, 1335, 1341, 1343, 86, 1334, 1342,
1941 1344, 1337, 86, 86, 1345, 1347, 1348, 86, 1346, 3353,
1942 3353, 1339, 1340, 86, 86, 1338, 86, 1349, 86, 1351,
1943 86, 3353, 1341, 1343, 1352, 1353, 1342, 1344, 86, 1350,
1944 1354, 1345, 86, 1348, 1359, 1346, 86, 1355, 1357, 86,
1945 1356, 86, 86, 86, 1349, 1360, 1351, 86, 86, 86,
1946 1358, 1352, 1353, 86, 86, 1361, 1350, 1354, 1364, 1365,
1947 86, 1359, 86, 86, 1355, 1357, 1363, 1356, 1362, 1366,
1948 1368, 86, 1360, 1367, 86, 86, 86, 1358, 1369, 86,
1949 86, 1370, 1361, 1371, 1372, 1364, 1365, 1375, 86, 86,
1950
1951 86, 1374, 86, 1363, 86, 1362, 1366, 1368, 86, 1373,
1952 1367, 86, 1376, 86, 1377, 1369, 1378, 3353, 1370, 1379,
1953 1371, 1372, 1381, 1380, 1375, 1382, 86, 1383, 1374, 86,
1954 86, 1386, 1384, 86, 1389, 1387, 1373, 1385, 86, 86,
1955 1400, 1377, 86, 1378, 86, 1388, 1379, 86, 86, 1381,
1956 1380, 1397, 1382, 3353, 1383, 1399, 1398, 1401, 1386, 86,
1957 86, 1389, 1387, 1434, 86, 86, 86, 1400, 3353, 1403,
1958 1402, 1404, 1388, 1390, 86, 86, 1406, 1391, 1397, 86,
1959 1392, 1393, 3353, 1398, 1401, 1394, 1407, 86, 86, 1405,
1960 1434, 1395, 86, 86, 1408, 1396, 1412, 1402, 1404, 86,
1961
1962 1390, 86, 86, 1406, 1391, 86, 1413, 1392, 1393, 1415,
1963 3353, 86, 1394, 1407, 1416, 1409, 1405, 1410, 1395, 1411,
1964 86, 1408, 1396, 1412, 86, 1414, 86, 86, 1417, 1418,
1965 1419, 86, 86, 1413, 3353, 3353, 1415, 86, 1420, 86,
1966 1421, 1416, 1409, 1428, 1410, 1429, 1411, 1427, 3353, 1430,
1967 1431, 3353, 1414, 3353, 3353, 1417, 86, 1435, 1433, 3353,
1968 86, 86, 86, 86, 1432, 1420, 86, 1421, 1422, 86,
1969 1428, 86, 1429, 1423, 1427, 1424, 1436, 1425, 86, 1426,
1970 86, 86, 1437, 1439, 1435, 1433, 86, 1438, 1440, 1441,
1971 1443, 1432, 1442, 86, 86, 1422, 1446, 1447, 1448, 1444,
1972
1973 1423, 86, 1424, 1436, 1425, 86, 1426, 86, 86, 86,
1974 1439, 86, 1445, 1449, 86, 1440, 1441, 1443, 1450, 1442,
1975 86, 1451, 1452, 1446, 86, 1448, 1444, 1454, 1453, 86,
1976 1457, 86, 86, 1455, 1456, 86, 86, 1458, 1459, 1445,
1977 1449, 1460, 86, 86, 1461, 1450, 86, 86, 1451, 1452,
1978 86, 1462, 86, 3353, 1454, 1453, 1465, 1457, 1463, 1464,
1979 1455, 1456, 1466, 1467, 86, 1459, 1468, 86, 86, 86,
1980 86, 1461, 1469, 1470, 86, 86, 1471, 1473, 1462, 1478,
1981 86, 1472, 86, 1465, 1474, 1463, 1464, 86, 1475, 86,
1982 1467, 86, 1477, 86, 1476, 86, 1480, 86, 86, 1469,
1983
1984 1470, 86, 1479, 1471, 86, 86, 1478, 1481, 1472, 1486,
1985 1482, 1474, 86, 1483, 86, 1475, 1485, 1484, 1493, 1477,
1986 1487, 1476, 86, 1480, 1488, 1496, 1490, 86, 86, 1479,
1987 86, 86, 1489, 1491, 1481, 86, 1486, 1482, 86, 86,
1988 1483, 1492, 86, 1485, 1484, 1493, 1494, 1487, 86, 1495,
1989 86, 1488, 86, 1490, 86, 86, 1497, 86, 1498, 1489,
1990 1491, 1499, 1501, 86, 1500, 1502, 86, 1503, 1492, 1508,
1991 86, 1504, 1505, 1494, 3353, 1509, 1495, 1511, 86, 1506,
1992 86, 86, 86, 1507, 170, 1498, 86, 86, 86, 1501,
1993 1510, 1500, 1502, 86, 86, 3353, 1514, 1515, 1504, 1505,
1994
1995 1517, 86, 1512, 86, 86, 1516, 1506, 86, 1513, 86,
1996 1507, 86, 1518, 86, 1519, 86, 1523, 1510, 1520, 1524,
1997 86, 86, 1522, 1514, 1515, 86, 1521, 1517, 86, 1512,
1998 1525, 86, 1516, 1526, 86, 1513, 1527, 1528, 86, 1518,
1999 86, 1519, 1529, 1523, 86, 1520, 86, 1530, 1531, 1522,
2000 1534, 1532, 1533, 1521, 1539, 86, 86, 1525, 1540, 1543,
2001 1526, 1535, 86, 1527, 1536, 86, 86, 1541, 1537, 86,
2002 86, 1538, 86, 86, 1530, 1531, 1542, 1534, 1532, 1533,
2003 86, 1539, 86, 86, 1544, 1540, 1543, 1545, 1535, 1547,
2004 86, 1536, 1546, 1550, 1541, 1537, 1549, 86, 1538, 1551,
2005
2006 86, 1548, 86, 1552, 3353, 86, 1553, 1554, 86, 1556,
2007 1555, 1544, 86, 86, 1563, 86, 1547, 86, 1557, 86,
2008 1550, 86, 86, 1549, 1559, 1560, 1551, 86, 1548, 86,
2009 1552, 1558, 1561, 1553, 1554, 1562, 1556, 1555, 1564, 1565,
2010 86, 86, 1566, 86, 1567, 1557, 86, 86, 86, 1568,
2011 86, 1559, 1560, 86, 1571, 86, 86, 1570, 1558, 1561,
2012 1569, 86, 1562, 1572, 1573, 1564, 1565, 1575, 86, 1566,
2013 1574, 1567, 1579, 86, 86, 1578, 1568, 1576, 1577, 86,
2014 1580, 1571, 86, 1581, 1570, 86, 1583, 1569, 86, 86,
2015 1572, 1573, 1585, 86, 1575, 1582, 86, 1574, 86, 1579,
2016
2017 1584, 1586, 1578, 86, 1576, 1577, 1588, 86, 86, 1587,
2018 1589, 1590, 86, 86, 1591, 86, 3353, 3353, 1592, 1585,
2019 1593, 86, 1582, 1594, 1596, 1599, 1598, 1584, 1586, 3353,
2020 1595, 86, 1601, 86, 1597, 1600, 1587, 86, 86, 86,
2021 86, 1591, 86, 86, 86, 1592, 86, 86, 86, 86,
2022 1594, 1596, 1599, 1598, 1603, 86, 1602, 1595, 86, 1601,
2023 1604, 1597, 1600, 86, 1605, 1607, 1606, 1609, 1611, 1620,
2024 1608, 1613, 1610, 86, 86, 86, 1612, 86, 1614, 86,
2025 3353, 1603, 86, 1602, 1617, 1616, 86, 1604, 1615, 1618,
2026 1623, 1605, 86, 1606, 3353, 1611, 86, 86, 1613, 86,
2027
2028 1619, 86, 86, 1612, 1621, 1614, 86, 86, 1625, 86,
2029 1624, 1617, 1616, 1622, 86, 1615, 1618, 1626, 86, 1634,
2030 1627, 1631, 86, 3353, 1628, 1629, 86, 1619, 86, 86,
2031 1630, 1621, 86, 86, 86, 1625, 1632, 1624, 86, 1639,
2032 1622, 1633, 86, 1635, 1638, 86, 1634, 1627, 1631, 86,
2033 1636, 1628, 1629, 86, 1637, 1640, 1641, 1630, 86, 86,
2034 1643, 1642, 86, 1632, 3353, 1645, 86, 86, 1633, 1646,
2035 1635, 1638, 1644, 1647, 86, 1650, 1649, 1636, 86, 86,
2036 1654, 1637, 86, 1641, 86, 86, 1648, 1643, 1642, 1651,
2037 86, 1652, 1645, 1653, 86, 1655, 1646, 86, 86, 1644,
2038
2039 1647, 86, 1650, 1649, 86, 1656, 1659, 86, 1660, 1657,
2040 3353, 1658, 1667, 1648, 3353, 1666, 1651, 86, 1652, 1661,
2041 1653, 86, 1655, 1662, 3353, 86, 1664, 1665, 86, 1671,
2042 86, 86, 1663, 1659, 86, 1660, 1657, 86, 1658, 86,
2043 1668, 86, 86, 1670, 86, 1669, 1661, 86, 1672, 86,
2044 1662, 86, 1674, 1664, 1665, 86, 1671, 1673, 1675, 1663,
2045 1676, 3353, 1677, 1678, 86, 86, 3353, 1668, 1679, 1680,
2046 1670, 1682, 1669, 86, 86, 1681, 86, 1684, 1685, 86,
2047 86, 1686, 86, 86, 1673, 1675, 86, 86, 1683, 1677,
2048 1678, 1688, 86, 86, 1687, 1679, 1680, 86, 1682, 1693,
2049
2050 86, 1689, 1681, 86, 1684, 1685, 86, 86, 1686, 1694,
2051 1691, 1690, 1692, 1698, 86, 1683, 1695, 86, 1688, 86,
2052 86, 1687, 86, 1696, 1697, 86, 1693, 1699, 1689, 86,
2053 1700, 1708, 86, 1702, 1701, 86, 1694, 1691, 1690, 1692,
2054 1698, 86, 1703, 1695, 1705, 1709, 86, 86, 1704, 1711,
2055 1696, 1697, 1707, 86, 86, 1706, 170, 1700, 86, 86,
2056 1702, 1701, 86, 86, 86, 1712, 1713, 86, 1710, 1703,
2057 1714, 1705, 1709, 86, 86, 1704, 1711, 86, 1715, 1707,
2058 86, 1716, 1706, 86, 1717, 1720, 1721, 1718, 1722, 1719,
2059 3353, 1723, 1712, 1713, 86, 1710, 86, 1714, 86, 1724,
2060
2061 1725, 1726, 1727, 1728, 86, 1715, 86, 86, 1716, 86,
2062 86, 1717, 86, 1721, 1718, 1722, 1719, 1729, 1723, 1730,
2063 1731, 1732, 86, 1733, 86, 1735, 1724, 1725, 86, 1727,
2064 86, 1734, 1738, 86, 86, 86, 1736, 1739, 3353, 1741,
2065 1737, 86, 86, 1748, 1729, 86, 86, 1731, 1732, 86,
2066 1733, 86, 1735, 86, 1740, 1743, 1750, 1749, 1734, 1738,
2067 1742, 1744, 86, 1736, 1739, 86, 1741, 1737, 86, 86,
2068 86, 1745, 1751, 1752, 1746, 86, 1756, 1757, 86, 86,
2069 86, 1740, 1743, 1750, 1749, 1753, 1747, 1742, 1744, 1759,
2070 1754, 86, 86, 1758, 1755, 86, 1760, 1763, 1745, 1751,
2071
2072 1752, 1746, 1761, 86, 1762, 1765, 1764, 86, 1767, 86,
2073 1769, 86, 1753, 1747, 86, 86, 1759, 1754, 86, 86,
2074 86, 1755, 86, 1760, 1763, 86, 1766, 1768, 86, 1761,
2075 1770, 1772, 1765, 1764, 86, 1767, 86, 1771, 1774, 1773,
2076 1775, 3353, 86, 86, 1780, 1778, 1776, 1777, 1779, 1783,
2077 3353, 86, 86, 1766, 1768, 86, 86, 86, 86, 86,
2078 86, 1785, 86, 86, 1771, 1774, 1773, 86, 86, 1781,
2079 1782, 1780, 1778, 1776, 1777, 1779, 1783, 1784, 1786, 86,
2080 1788, 1787, 86, 86, 86, 1789, 1791, 1790, 1785, 86,
2081 1797, 3353, 1792, 3108, 3109, 86, 1781, 1782, 1793, 86,
2082
2083 86, 86, 1795, 86, 1784, 1786, 1794, 1788, 1787, 86,
2084 1796, 1800, 1789, 86, 1790, 86, 86, 86, 86, 1792,
2085 1798, 1799, 86, 1801, 1802, 1793, 86, 86, 1803, 1795,
2086 1805, 1804, 1807, 1794, 86, 1806, 86, 1796, 1800, 86,
2087 1808, 86, 3353, 86, 86, 1811, 1815, 1798, 1799, 86,
2088 1801, 1802, 1833, 86, 1816, 1803, 86, 1805, 1804, 1807,
2089 86, 1809, 1806, 1812, 1810, 1817, 1821, 1808, 1813, 1814,
2090 86, 86, 1811, 1815, 1818, 86, 1819, 1824, 1820, 86,
2091 1822, 86, 3353, 3353, 86, 86, 1825, 1834, 1809, 86,
2092 1812, 1810, 86, 86, 86, 1813, 1814, 1828, 1823, 86,
2093
2094 1827, 1818, 86, 1819, 1824, 1820, 86, 1822, 86, 1826,
2095 1829, 86, 1832, 1825, 86, 86, 1830, 86, 86, 1831,
2096 1837, 1835, 1838, 1842, 1828, 1823, 1836, 1827, 86, 86,
2097 86, 1839, 3353, 1840, 86, 86, 1826, 1829, 1841, 1832,
2098 86, 1843, 86, 1830, 1846, 86, 1831, 1837, 1835, 1838,
2099 1842, 1845, 1844, 1836, 86, 1847, 86, 1848, 1839, 1849,
2100 86, 3353, 1850, 1854, 1855, 86, 86, 3353, 1843, 1852,
2101 86, 1846, 1853, 86, 1856, 86, 1851, 3353, 1845, 1844,
2102 86, 86, 1847, 1857, 1848, 86, 1849, 86, 86, 1850,
2103 1854, 1855, 86, 1858, 1860, 1862, 1852, 1861, 1859, 1853,
2104
2105 86, 1856, 1864, 1851, 1863, 1865, 1866, 86, 1867, 86,
2106 1857, 3353, 1870, 3353, 86, 1868, 1869, 1874, 1871, 1878,
2107 1872, 1860, 1862, 1873, 1861, 86, 86, 86, 3353, 86,
2108 3353, 1863, 1865, 86, 86, 1876, 86, 86, 1875, 86,
2109 86, 1877, 1868, 1869, 86, 1871, 1880, 1872, 1879, 86,
2110 1873, 86, 86, 1881, 86, 1882, 1884, 1885, 1883, 86,
2111 1888, 86, 1876, 1890, 1886, 1875, 1887, 86, 1877, 1891,
2112 86, 86, 1892, 1880, 86, 1879, 86, 86, 1893, 86,
2113 1881, 1889, 1882, 1884, 1885, 1883, 86, 86, 1895, 1894,
2114 1896, 1886, 1897, 1887, 1899, 86, 86, 86, 86, 1892,
2115
2116 1898, 86, 1900, 1902, 1903, 86, 1904, 86, 1889, 1901,
2117 1906, 1905, 86, 86, 86, 1895, 1894, 1896, 1907, 86,
2118 86, 1908, 1913, 1909, 1910, 3353, 86, 1898, 86, 1900,
2119 1902, 86, 86, 1904, 86, 1912, 1901, 1906, 1905, 1911,
2120 86, 86, 1915, 86, 1914, 1907, 1917, 86, 1908, 86,
2121 1909, 1910, 86, 1916, 170, 1918, 1919, 86, 1923, 1920,
2122 1921, 86, 1912, 1924, 1922, 86, 1911, 1927, 86, 1915,
2123 1926, 1914, 86, 86, 86, 86, 86, 1925, 1928, 86,
2124 1916, 1933, 1918, 1919, 1929, 1923, 1920, 1921, 86, 1930,
2125 1931, 1922, 86, 1934, 1927, 86, 1932, 1926, 1937, 1936,
2126
2127 1935, 1939, 1938, 3353, 1925, 86, 86, 1956, 86, 86,
2128 1940, 1929, 86, 86, 86, 86, 86, 1931, 1942, 86,
2129 86, 1941, 86, 1932, 86, 1937, 1936, 1935, 1939, 1938,
2130 86, 1943, 1944, 1947, 1945, 1946, 1950, 1940, 1948, 86,
2131 86, 1955, 1954, 86, 1953, 1942, 1957, 86, 1941, 86,
2132 86, 1949, 86, 86, 86, 86, 86, 1951, 1943, 1944,
2133 1947, 1945, 1946, 1950, 1952, 1948, 86, 1958, 86, 1954,
2134 1960, 1953, 1959, 1957, 1965, 86, 1961, 1962, 1949, 86,
2135 86, 86, 1966, 86, 1951, 1963, 1967, 1964, 1968, 1969,
2136 1971, 1952, 1970, 1973, 1958, 86, 86, 1960, 86, 1959,
2137
2138 86, 1965, 86, 1961, 1962, 1972, 1974, 1975, 1977, 86,
2139 1976, 86, 1963, 86, 1964, 1968, 86, 1971, 86, 1970,
2140 86, 1978, 1979, 1980, 1982, 86, 1985, 1991, 1981, 86,
2141 86, 1983, 1972, 1974, 86, 1984, 1987, 1976, 86, 86,
2142 86, 1989, 86, 1988, 1986, 3353, 3353, 1990, 1978, 3353,
2143 1980, 86, 86, 86, 86, 1981, 86, 86, 1983, 86,
2144 1999, 3353, 1984, 1987, 2006, 86, 1996, 86, 1989, 86,
2145 1988, 1986, 1997, 86, 1990, 1992, 1993, 1994, 1998, 2000,
2146 86, 86, 1995, 2001, 2003, 86, 86, 2005, 2002, 2004,
2147 86, 2006, 86, 1996, 2008, 2007, 2012, 86, 2014, 1997,
2148
2149 2009, 86, 1992, 1993, 1994, 1998, 2000, 86, 3353, 1995,
2150 2010, 2003, 86, 2011, 2005, 86, 2004, 86, 86, 86,
2151 2013, 86, 2007, 86, 86, 2014, 86, 2009, 2015, 2016,
2152 3353, 2017, 2018, 2020, 86, 86, 2019, 2010, 2025, 2021,
2153 2011, 86, 2024, 86, 2022, 2026, 2023, 2013, 86, 2032,
2154 2030, 2031, 86, 2028, 2029, 2015, 2016, 86, 2017, 86,
2155 86, 2027, 86, 2019, 86, 86, 2021, 86, 86, 2024,
2156 86, 2022, 86, 2023, 86, 86, 2032, 2030, 2031, 2034,
2157 2028, 2029, 2033, 86, 2036, 2035, 2037, 2039, 2027, 3353,
2158 86, 2038, 2042, 86, 2041, 2040, 2043, 3353, 3353, 2045,
2159
2160 3353, 2046, 86, 2044, 3353, 3353, 2034, 86, 86, 2033,
2161 2049, 86, 2035, 2037, 2048, 2053, 86, 86, 2038, 86,
2162 86, 2041, 2040, 86, 86, 86, 2045, 2047, 2046, 86,
2163 2044, 2050, 2051, 86, 86, 86, 2052, 2049, 2054, 2055,
2164 86, 2048, 2059, 3353, 2056, 2057, 86, 86, 2060, 86,
2165 2062, 2061, 2063, 86, 2047, 2064, 86, 2065, 2050, 2051,
2166 86, 2058, 86, 2052, 2066, 86, 2055, 86, 86, 2059,
2167 86, 2056, 2057, 86, 2067, 2060, 2068, 86, 2061, 2063,
2168 2069, 2070, 2064, 2071, 2065, 2074, 2075, 86, 2058, 2072,
2169 3353, 2066, 86, 2078, 2073, 2079, 2076, 86, 86, 2081,
2170
2171 86, 2067, 86, 2068, 2095, 86, 86, 2069, 86, 86,
2172 2071, 2077, 86, 2075, 2082, 86, 2072, 2080, 2083, 86,
2173 2078, 2073, 2079, 2076, 86, 2084, 86, 2085, 2086, 2087,
2174 2088, 86, 2090, 2091, 2092, 2089, 86, 2093, 2077, 86,
2175 86, 2082, 2094, 2096, 2080, 2083, 86, 86, 3353, 2097,
2176 86, 86, 86, 86, 2085, 2086, 2087, 2088, 2098, 2090,
2177 86, 86, 2089, 2099, 2100, 2102, 2101, 2103, 2104, 86,
2178 86, 2105, 2106, 2107, 3353, 86, 2097, 86, 86, 2108,
2179 86, 86, 86, 2109, 2115, 2098, 2112, 2110, 86, 2111,
2180 2099, 2113, 2102, 2101, 2103, 2104, 86, 86, 86, 2106,
2181
2182 2114, 170, 86, 86, 2116, 86, 2108, 2119, 86, 2118,
2183 2109, 86, 2117, 2112, 2110, 86, 2111, 2121, 2113, 86,
2184 2120, 2123, 2122, 3353, 2126, 3353, 86, 2114, 86, 2124,
2185 2125, 86, 2129, 2130, 2119, 3353, 3353, 2127, 86, 2117,
2186 86, 86, 86, 86, 2121, 86, 2128, 2120, 2123, 2122,
2187 86, 2126, 86, 86, 86, 2132, 2124, 2125, 2131, 2129,
2188 86, 86, 2133, 2134, 2127, 2135, 2138, 2136, 2137, 2141,
2189 2139, 2142, 2143, 2128, 86, 86, 86, 86, 86, 2140,
2190 2144, 86, 2132, 3353, 86, 2131, 86, 86, 2146, 2133,
2191 2134, 86, 86, 2138, 2136, 2137, 2141, 2139, 86, 2143,
2192
2193 2145, 86, 86, 86, 3353, 2147, 2140, 2144, 2149, 86,
2194 2150, 2151, 3353, 2152, 3353, 2146, 2148, 86, 86, 2154,
2195 2155, 2158, 2156, 2153, 3353, 2160, 86, 2145, 86, 2164,
2196 2159, 86, 2147, 2162, 86, 2149, 86, 2150, 2151, 86,
2197 2152, 86, 2157, 2148, 86, 86, 2154, 2155, 86, 2156,
2198 2153, 2161, 2160, 2163, 86, 2165, 86, 2159, 2166, 2168,
2199 2162, 86, 86, 2167, 2169, 86, 86, 2170, 2172, 2157,
2200 2171, 2173, 86, 2174, 3353, 2178, 2176, 3353, 2161, 2175,
2201 2163, 86, 2165, 86, 86, 2166, 86, 3353, 86, 2179,
2202 2167, 2169, 86, 2177, 86, 2172, 86, 2171, 2173, 86,
2203
2204 86, 86, 2178, 2176, 2180, 86, 2175, 86, 2181, 2182,
2205 86, 2184, 2189, 2183, 2185, 86, 2179, 2186, 2190, 86,
2206 2177, 2187, 86, 86, 86, 86, 86, 2192, 2191, 86,
2207 3353, 2180, 3353, 2195, 2188, 2181, 2182, 2193, 2184, 2189,
2208 2183, 2185, 86, 86, 2186, 2190, 86, 2196, 2187, 2194,
2209 2198, 2197, 2203, 2200, 86, 2191, 86, 86, 86, 2199,
2210 2195, 2188, 86, 2201, 2193, 2205, 2204, 2202, 2211, 86,
2211 86, 2207, 86, 2206, 2196, 86, 2194, 2198, 2197, 2203,
2212 2200, 2208, 2209, 86, 86, 86, 2199, 86, 86, 86,
2213 2201, 2210, 2205, 2204, 2202, 86, 86, 2213, 2207, 2215,
2214
2215 2206, 2212, 86, 2219, 86, 2214, 3353, 86, 2208, 2209,
2216 2218, 2216, 2220, 2217, 2228, 2221, 2222, 86, 2210, 86,
2217 2223, 86, 86, 2229, 2213, 2224, 2215, 2225, 2212, 86,
2218 86, 86, 2214, 86, 86, 86, 2226, 2218, 2216, 2220,
2219 2217, 86, 2221, 2222, 86, 2227, 86, 2230, 2231, 86,
2220 2229, 2232, 86, 2234, 2225, 86, 3353, 2233, 86, 86,
2221 2235, 2238, 2236, 2226, 2240, 3353, 2241, 2239, 2242, 86,
2222 2237, 3353, 2227, 3353, 2230, 2231, 2243, 3353, 86, 86,
2223 2234, 86, 86, 86, 2233, 2247, 86, 2235, 86, 2236,
2224 86, 2240, 86, 2241, 2239, 2242, 2244, 2237, 86, 2245,
2225
2226 2248, 2251, 2246, 2243, 2249, 86, 86, 2252, 3353, 2250,
2227 86, 3353, 2247, 2255, 3353, 2253, 86, 86, 2254, 2256,
2228 2260, 3353, 3353, 2244, 2257, 86, 2245, 2248, 2251, 2246,
2229 86, 2259, 2258, 86, 2252, 86, 86, 2263, 86, 86,
2230 2255, 86, 2253, 2261, 2262, 2254, 2256, 86, 86, 86,
2231 2264, 2257, 86, 86, 2265, 2268, 2269, 2266, 2259, 2258,
2232 2267, 2271, 86, 86, 2263, 2274, 86, 2270, 2280, 2275,
2233 2261, 2262, 86, 86, 3353, 86, 3353, 2264, 86, 86,
2234 2272, 2265, 2268, 2269, 2266, 2276, 86, 2267, 2271, 86,
2235 2277, 2279, 2274, 2273, 2270, 86, 2275, 86, 2278, 86,
2236
2237 86, 86, 2282, 2281, 2284, 2283, 2285, 2272, 2286, 86,
2238 2287, 2288, 2276, 86, 2290, 170, 2289, 2277, 2279, 2291,
2239 2273, 86, 86, 2292, 2304, 2278, 2293, 86, 86, 86,
2240 2281, 2284, 2283, 2285, 2294, 2286, 2295, 2287, 2309, 3353,
2241 2296, 86, 2299, 86, 2300, 86, 86, 86, 2301, 2302,
2242 2292, 86, 2306, 2293, 2297, 2305, 86, 2307, 2308, 2303,
2243 86, 2294, 3353, 86, 86, 2298, 86, 2296, 86, 2299,
2244 86, 86, 2310, 2312, 86, 2301, 2302, 86, 86, 2306,
2245 86, 2297, 2305, 2311, 86, 2308, 2303, 2313, 3353, 2314,
2246 86, 86, 2298, 2315, 86, 86, 86, 2316, 3353, 2310,
2247
2248 2312, 86, 2319, 2318, 2322, 2317, 2321, 2320, 2324, 2326,
2249 2311, 86, 3353, 86, 2313, 86, 2314, 86, 86, 2325,
2250 2315, 86, 2323, 2327, 2316, 86, 86, 86, 2330, 2319,
2251 2318, 2322, 2317, 2321, 2320, 86, 2326, 2328, 86, 2329,
2252 2332, 2335, 86, 86, 2331, 86, 2325, 2333, 86, 2323,
2253 2327, 2334, 86, 2336, 2339, 2330, 2340, 2337, 86, 86,
2254 86, 86, 86, 2345, 2328, 86, 2329, 2332, 86, 2338,
2255 2342, 2331, 86, 2343, 2333, 86, 86, 86, 2334, 2341,
2256 2336, 2339, 2347, 2340, 2337, 2344, 2348, 86, 86, 2346,
2257 2345, 86, 2349, 2350, 3353, 86, 2338, 2342, 2352, 2351,
2258
2259 2343, 2353, 2357, 86, 2356, 2354, 2341, 86, 2358, 2347,
2260 2355, 2359, 2344, 2348, 2362, 86, 2346, 86, 86, 2349,
2261 86, 86, 86, 2365, 86, 2352, 2351, 2360, 2353, 86,
2262 86, 2356, 2354, 86, 2361, 2358, 2366, 2355, 86, 86,
2263 86, 2362, 2363, 2367, 2368, 2364, 2369, 2371, 86, 2370,
2264 86, 2372, 2373, 86, 2360, 2375, 86, 2377, 2379, 2374,
2265 86, 2361, 86, 86, 2380, 86, 86, 86, 2376, 2363,
2266 2367, 2368, 2364, 2369, 2371, 2378, 2370, 86, 86, 86,
2267 86, 2381, 86, 2382, 86, 2379, 2374, 86, 2383, 2385,
2268 2384, 86, 2386, 2387, 2389, 2376, 86, 86, 2393, 2388,
2269
2270 2390, 2391, 2378, 86, 2395, 2392, 86, 86, 86, 86,
2271 2382, 3353, 2398, 2394, 86, 2383, 2385, 2384, 3353, 2386,
2272 86, 86, 86, 2397, 86, 2393, 2388, 2390, 2391, 86,
2273 2396, 86, 2392, 2399, 2400, 86, 2401, 86, 86, 2398,
2274 2394, 2402, 86, 2403, 2404, 86, 2405, 86, 86, 2406,
2275 2397, 2407, 2408, 2409, 2410, 2411, 86, 2396, 3353, 86,
2276 2399, 2400, 2414, 86, 2424, 86, 86, 2413, 2402, 86,
2277 2403, 2404, 2418, 2405, 86, 86, 86, 2412, 2407, 2408,
2278 2409, 2410, 86, 2415, 86, 2419, 2416, 86, 3353, 2414,
2279 2417, 86, 86, 2420, 2413, 86, 86, 2426, 86, 2418,
2280
2281 2425, 2432, 86, 86, 2412, 2436, 2421, 2427, 2429, 2428,
2282 2415, 86, 2419, 2416, 2435, 86, 2431, 2417, 86, 86,
2283 2420, 2422, 86, 2423, 2426, 2430, 86, 2425, 2432, 86,
2284 86, 86, 2433, 2421, 2427, 2429, 2428, 86, 86, 2434,
2285 2437, 2435, 2438, 2431, 3353, 2441, 86, 86, 2422, 2439,
2286 2423, 2440, 2430, 2443, 86, 2442, 2449, 2444, 3353, 2433,
2287 3353, 86, 2450, 2445, 2451, 2446, 2434, 2437, 2447, 86,
2288 2455, 86, 2441, 86, 86, 86, 2439, 86, 2440, 2453,
2289 2443, 86, 2442, 86, 2444, 2448, 86, 86, 86, 2452,
2290 2445, 2451, 2446, 2454, 86, 2447, 86, 86, 86, 2456,
2291
2292 2458, 2459, 86, 2460, 2461, 2463, 2453, 2457, 86, 2466,
2293 2462, 2464, 2448, 3353, 3353, 86, 2452, 2465, 2467, 86,
2294 2454, 86, 170, 86, 86, 86, 2456, 2458, 2459, 86,
2295 2460, 2461, 86, 2469, 2457, 86, 2466, 2462, 2464, 2468,
2296 2470, 2471, 2472, 2473, 2465, 2467, 2474, 2476, 86, 86,
2297 2475, 86, 2479, 2478, 2477, 2480, 2482, 3353, 86, 2483,
2298 2469, 2481, 2489, 86, 86, 2484, 2468, 2470, 2471, 2472,
2299 2473, 3353, 86, 86, 86, 86, 86, 2475, 86, 86,
2300 2478, 2477, 2485, 86, 86, 2486, 2483, 86, 2481, 2488,
2301 2490, 86, 2484, 2487, 86, 3353, 2491, 86, 86, 2492,
2302
2303 2493, 86, 2494, 86, 3353, 2500, 2495, 2496, 3353, 2485,
2304 3353, 3353, 2486, 2497, 2498, 86, 2488, 2490, 86, 2499,
2305 2487, 86, 86, 2491, 86, 86, 2492, 2493, 86, 86,
2306 2501, 86, 86, 2495, 2496, 2505, 2502, 2506, 2503, 2508,
2307 2497, 2498, 86, 2504, 86, 86, 2499, 2507, 86, 2509,
2308 86, 2510, 3353, 2519, 86, 3353, 2529, 2501, 86, 2511,
2309 86, 86, 2505, 2502, 2506, 2503, 2508, 2512, 86, 2513,
2310 2504, 2514, 86, 2515, 2507, 86, 2516, 86, 2510, 86,
2311 2518, 86, 2520, 2521, 2517, 86, 2511, 2522, 86, 2524,
2312 3353, 86, 2531, 86, 2512, 86, 2513, 2525, 2514, 2523,
2313
2314 2515, 86, 86, 2516, 2527, 86, 2528, 2518, 86, 2520,
2315 2521, 2517, 86, 2530, 2522, 86, 2524, 2526, 86, 86,
2316 2532, 86, 2533, 2534, 2525, 2536, 2523, 2541, 86, 86,
2317 86, 2527, 86, 2528, 2537, 2535, 86, 2539, 86, 2542,
2318 2530, 2538, 86, 2540, 2526, 2543, 2544, 2532, 86, 86,
2319 2534, 2552, 2536, 2547, 86, 2546, 86, 2549, 2545, 86,
2320 86, 2537, 2535, 2548, 2539, 86, 86, 2554, 2538, 86,
2321 2540, 86, 86, 2544, 2550, 86, 2551, 86, 86, 2553,
2322 2547, 86, 2546, 2555, 2549, 2545, 2556, 2557, 2558, 86,
2323 2548, 86, 86, 2561, 2559, 2560, 2562, 86, 86, 86,
2324
2325 3353, 2550, 86, 2551, 86, 2563, 2553, 2564, 2565, 2566,
2326 2555, 2568, 86, 2556, 86, 2558, 86, 2567, 2570, 86,
2327 2561, 2559, 2560, 86, 86, 2571, 86, 86, 2569, 2574,
2328 2572, 86, 2563, 86, 2564, 2565, 2566, 86, 2568, 2573,
2329 2575, 86, 86, 2576, 2567, 2570, 86, 86, 2577, 2578,
2330 2579, 86, 2571, 2580, 3353, 2569, 2574, 2572, 2582, 2581,
2331 3353, 2583, 86, 2584, 2585, 86, 2573, 86, 2588, 2590,
2332 86, 2591, 2587, 3353, 3353, 86, 86, 2579, 86, 86,
2333 2580, 86, 2586, 86, 86, 2582, 2581, 86, 2583, 86,
2334 2584, 2585, 2589, 2593, 2592, 86, 86, 2594, 86, 2587,
2335
2336 86, 2595, 2600, 2597, 2596, 2598, 2599, 3353, 86, 2586,
2337 86, 86, 86, 86, 2602, 86, 86, 86, 2601, 2589,
2338 2593, 2592, 2608, 2604, 2594, 86, 2606, 2603, 2595, 86,
2339 2597, 2596, 2598, 2599, 86, 2605, 86, 86, 86, 86,
2340 2607, 2602, 2609, 2612, 2610, 2601, 2611, 2614, 86, 2608,
2341 2604, 86, 86, 2606, 2603, 170, 86, 2615, 86, 2613,
2342 86, 2617, 2605, 2616, 86, 2618, 2619, 2607, 2620, 2609,
2343 2612, 2610, 2621, 2611, 2614, 2622, 86, 2623, 2625, 2627,
2344 2624, 86, 3353, 86, 2615, 3353, 2613, 86, 2617, 86,
2345 2616, 86, 2618, 86, 86, 86, 2632, 2634, 86, 2621,
2346
2347 2626, 86, 2622, 86, 2623, 2625, 2627, 2624, 86, 2628,
2348 2629, 2631, 2630, 2633, 86, 2638, 86, 86, 86, 86,
2349 86, 2635, 86, 2632, 2634, 2636, 2637, 2626, 86, 2639,
2350 2640, 2643, 2642, 2644, 86, 86, 2628, 2629, 2631, 2630,
2351 2633, 86, 2638, 86, 2641, 2645, 2646, 2648, 2635, 86,
2352 86, 86, 2636, 2637, 2647, 86, 86, 2640, 86, 2642,
2353 2644, 2650, 2654, 86, 2649, 2655, 2651, 86, 2652, 2653,
2354 86, 2641, 86, 2646, 2648, 86, 86, 86, 2656, 86,
2355 2658, 2647, 2659, 2660, 2661, 86, 2663, 2670, 2650, 86,
2356 2657, 2649, 86, 2651, 2662, 2652, 2653, 2666, 86, 86,
2357
2358 2664, 86, 2665, 86, 2667, 2656, 2669, 2658, 86, 86,
2359 86, 86, 86, 2663, 2670, 86, 86, 2657, 2668, 86,
2360 2671, 2662, 2673, 2672, 2666, 86, 2674, 2664, 86, 2665,
2361 2676, 2667, 2678, 2669, 86, 3353, 2675, 2677, 86, 86,
2362 2679, 3353, 2684, 3353, 2680, 2668, 2683, 86, 86, 86,
2363 2672, 86, 86, 2674, 86, 2687, 2686, 2676, 2681, 2678,
2364 2685, 2682, 86, 2675, 2677, 86, 86, 2679, 86, 86,
2365 86, 2680, 86, 2683, 2688, 2690, 2692, 2689, 2693, 2691,
2366 2694, 2695, 86, 2686, 2698, 2681, 3353, 2685, 2682, 86,
2367 86, 86, 2701, 86, 86, 2700, 2702, 2699, 86, 86,
2368
2369 2704, 2688, 2690, 2692, 2689, 86, 2691, 2694, 2695, 2696,
2370 2697, 86, 86, 86, 2706, 86, 86, 86, 2703, 2701,
2371 2705, 2710, 2700, 86, 2699, 2708, 86, 86, 2707, 3353,
2372 2711, 2709, 86, 2713, 3353, 2716, 2696, 2697, 86, 86,
2373 86, 2706, 86, 2717, 2712, 2703, 2718, 2705, 86, 86,
2374 2714, 2715, 2708, 86, 2719, 2707, 86, 2711, 2709, 2720,
2375 86, 86, 2716, 2721, 86, 86, 86, 2722, 2725, 2723,
2376 2717, 2712, 2726, 86, 2727, 2724, 2729, 2714, 2715, 2728,
2377 86, 2719, 86, 2730, 2733, 86, 86, 86, 86, 86,
2378 2721, 2731, 86, 2734, 2722, 2725, 2723, 86, 86, 2726,
2379
2380 2732, 2727, 2724, 2729, 2735, 86, 2728, 2737, 2736, 2743,
2381 2730, 86, 86, 86, 2738, 2739, 2740, 2741, 2731, 2742,
2382 86, 86, 2745, 86, 86, 2744, 2746, 2732, 86, 86,
2383 2748, 170, 2749, 2750, 2737, 2736, 2743, 2747, 2751, 86,
2384 2752, 2738, 2739, 2755, 2741, 86, 2742, 86, 86, 86,
2385 2753, 86, 2744, 86, 3353, 2754, 86, 86, 2756, 2749,
2386 2758, 2757, 86, 2761, 2747, 86, 2762, 2752, 86, 86,
2387 2760, 2763, 86, 2764, 2759, 86, 3353, 2753, 86, 2765,
2388 2767, 86, 2754, 86, 2766, 2756, 86, 2758, 2757, 86,
2389 2761, 2768, 2770, 2769, 86, 86, 2772, 2760, 86, 2771,
2390
2391 2764, 2759, 86, 86, 86, 86, 2765, 2767, 86, 2774,
2392 2773, 2766, 2775, 2777, 86, 86, 2776, 2779, 2768, 2770,
2393 2769, 86, 3353, 2772, 86, 2778, 2771, 86, 2782, 2780,
2394 86, 86, 2784, 2781, 86, 86, 2774, 2773, 2783, 2775,
2395 2777, 86, 86, 2776, 2785, 2786, 86, 2789, 2787, 86,
2396 86, 2788, 2778, 86, 2790, 2782, 2780, 2791, 2794, 86,
2397 2781, 2792, 86, 86, 86, 2783, 86, 2793, 86, 86,
2398 2796, 2785, 2786, 2797, 86, 2787, 2798, 2795, 2788, 86,
2399 2799, 2790, 2800, 2804, 2791, 86, 2803, 3353, 2792, 2801,
2400 86, 2806, 2802, 2805, 2793, 3353, 2809, 2810, 2811, 2807,
2401
2402 86, 86, 86, 2812, 2795, 86, 86, 86, 86, 2800,
2403 86, 86, 86, 2803, 86, 86, 2801, 86, 2806, 2802,
2404 2805, 2808, 86, 2809, 2810, 86, 2807, 2813, 2814, 2816,
2405 86, 2815, 2817, 86, 2819, 2818, 2820, 2822, 2823, 86,
2406 2824, 2821, 2825, 2826, 3353, 86, 2828, 2827, 2808, 86,
2407 2831, 86, 86, 86, 86, 2814, 86, 86, 2815, 2817,
2408 86, 2819, 2818, 2829, 2822, 2823, 86, 2824, 86, 86,
2409 86, 86, 86, 2828, 2827, 2830, 2833, 86, 2832, 2834,
2410 2835, 2836, 86, 2837, 2838, 2839, 2840, 2848, 2842, 2841,
2411 2829, 86, 86, 2843, 2844, 86, 3353, 86, 86, 2849,
2412
2413 2850, 86, 2830, 86, 86, 2832, 2834, 86, 2836, 2847,
2414 2837, 2838, 86, 86, 2851, 2845, 2841, 86, 2846, 86,
2415 86, 2844, 86, 86, 2852, 86, 2849, 2850, 2853, 2854,
2416 86, 2855, 3353, 86, 2857, 2856, 2847, 2862, 2858, 2859,
2417 2864, 86, 2845, 2861, 86, 2846, 86, 86, 86, 2860,
2418 2863, 2852, 86, 86, 3353, 2853, 2854, 3353, 2855, 86,
2419 86, 2857, 2856, 86, 2862, 2858, 2859, 86, 2865, 3353,
2420 2861, 86, 2866, 2868, 2869, 2870, 2860, 2863, 2871, 2873,
2421 2867, 86, 86, 2872, 2874, 2875, 86, 2876, 3353, 2877,
2422 3353, 2878, 3353, 86, 86, 2865, 86, 2879, 2881, 2866,
2423
2424 2868, 2869, 2870, 2880, 2882, 2885, 2883, 2867, 3353, 86,
2425 86, 86, 2875, 86, 86, 86, 2877, 86, 2878, 2884,
2426 86, 2887, 2888, 86, 2879, 2881, 86, 86, 2886, 86,
2427 2880, 2882, 2885, 2883, 2889, 2890, 86, 2891, 2892, 2893,
2428 86, 86, 86, 86, 2894, 2895, 2884, 2896, 2887, 2888,
2429 2897, 2898, 2899, 86, 2904, 2886, 3353, 2900, 2901, 3353,
2430 2903, 2889, 2890, 86, 86, 86, 2893, 86, 2902, 86,
2431 2905, 2894, 86, 86, 2896, 86, 86, 86, 2898, 86,
2432 2906, 86, 2907, 2908, 2900, 2901, 86, 2903, 2909, 2910,
2433 86, 2912, 2916, 86, 2911, 2902, 2913, 2905, 86, 86,
2434
2435 86, 2914, 2917, 2915, 2918, 86, 2919, 2906, 86, 2907,
2436 2908, 2920, 2921, 2927, 86, 2909, 2922, 86, 2912, 86,
2437 86, 86, 2923, 2913, 86, 86, 2925, 2937, 2914, 86,
2438 2915, 2918, 2928, 2919, 86, 2930, 2931, 86, 2920, 86,
2439 2924, 2926, 86, 2922, 86, 86, 2929, 86, 86, 2923,
2440 2932, 2933, 86, 2925, 86, 3353, 2938, 86, 86, 2928,
2441 2934, 2939, 2930, 2931, 2943, 2941, 2940, 2924, 2926, 86,
2442 2944, 2935, 86, 2929, 2936, 3353, 86, 2932, 2933, 2947,
2443 3353, 2942, 86, 86, 86, 2945, 86, 2934, 86, 86,
2444 2948, 2943, 2941, 2940, 2946, 2949, 2951, 86, 2935, 86,
2445
2446 2953, 2936, 86, 2950, 2952, 3353, 86, 86, 2942, 86,
2447 86, 2955, 2945, 86, 2956, 3353, 86, 2948, 86, 2959,
2448 2957, 2946, 2949, 2951, 2954, 2960, 86, 2958, 2961, 2964,
2449 2950, 2952, 86, 86, 2967, 2990, 2962, 86, 86, 2965,
2450 86, 2956, 86, 2963, 2966, 86, 2959, 2957, 86, 86,
2451 86, 2954, 2960, 86, 2958, 2961, 86, 86, 86, 2968,
2452 2970, 2967, 2969, 2962, 2971, 3353, 2965, 86, 86, 2973,
2453 2963, 2966, 2972, 86, 2974, 2975, 2977, 86, 2976, 86,
2454 2978, 2979, 2980, 86, 86, 2982, 2968, 2970, 86, 2969,
2455 3353, 2971, 86, 2986, 86, 86, 2973, 2987, 2981, 2972,
2456
2457 2983, 2974, 2975, 86, 86, 2976, 2984, 2978, 86, 86,
2458 2985, 86, 86, 2989, 2991, 86, 2988, 86, 86, 2993,
2459 2986, 86, 2992, 86, 86, 2981, 2994, 2983, 2995, 2996,
2460 86, 86, 2998, 2984, 3001, 2997, 86, 2985, 2999, 86,
2461 2989, 2991, 86, 2988, 3002, 86, 2993, 3000, 3004, 2992,
2462 3003, 3007, 86, 2994, 3006, 2995, 86, 86, 3009, 3008,
2463 86, 86, 2997, 3353, 86, 2999, 86, 3005, 3010, 86,
2464 86, 86, 3011, 3012, 3000, 86, 86, 3003, 3007, 3013,
2465 86, 3006, 3015, 3014, 3017, 3018, 3008, 86, 3016, 3019,
2466 86, 86, 3021, 3353, 3005, 3010, 3020, 3027, 3024, 3011,
2467
2468 3012, 3353, 3353, 86, 3022, 3023, 86, 86, 86, 3015,
2469 3014, 3017, 3025, 86, 3026, 3016, 86, 86, 3028, 3029,
2470 86, 3030, 86, 3020, 86, 86, 3034, 86, 86, 86,
2471 3035, 3022, 3023, 3032, 86, 3031, 3033, 3039, 86, 3025,
2472 86, 3026, 86, 3036, 3037, 3028, 3029, 3038, 86, 3040,
2473 86, 86, 3044, 3034, 3042, 86, 3041, 86, 3043, 3045,
2474 3032, 3046, 3031, 3033, 86, 86, 3049, 86, 3047, 3050,
2475 3036, 3037, 3048, 86, 3038, 3051, 86, 3056, 86, 86,
2476 86, 3042, 86, 3041, 3052, 3043, 86, 3057, 86, 3053,
2477 3065, 86, 86, 3063, 86, 3047, 3050, 3060, 86, 3048,
2478
2479 3054, 3055, 86, 86, 3056, 86, 86, 3058, 86, 3059,
2480 86, 3052, 3061, 3062, 86, 3064, 3053, 86, 3066, 86,
2481 86, 3067, 86, 3069, 3060, 86, 3070, 3054, 3055, 86,
2482 3068, 86, 3071, 3072, 3058, 3073, 3059, 3076, 3353, 3061,
2483 3062, 3074, 86, 3075, 3077, 3066, 86, 3080, 3067, 3353,
2484 86, 3078, 86, 86, 86, 3353, 86, 3068, 86, 3071,
2485 3072, 3081, 86, 3082, 86, 3079, 86, 86, 3074, 86,
2486 3075, 3077, 86, 3084, 3080, 3083, 86, 3091, 3078, 3085,
2487 3086, 86, 3087, 86, 86, 3088, 86, 86, 3081, 3092,
2488 3082, 86, 3079, 3093, 86, 3095, 86, 3096, 3089, 3090,
2489
2490 3084, 3100, 3083, 3094, 3091, 3098, 3085, 3086, 86, 3087,
2491 86, 86, 3088, 3101, 3097, 86, 3092, 3099, 3353, 86,
2492 3093, 86, 3102, 3103, 3096, 3089, 3090, 86, 86, 86,
2493 3094, 86, 3098, 3104, 3105, 3106, 3107, 3110, 3111, 3353,
2494 86, 3097, 86, 3115, 3099, 86, 3112, 3113, 3353, 3102,
2495 86, 3114, 3117, 3116, 3353, 86, 3119, 3120, 3118, 3123,
2496 3104, 3105, 86, 86, 86, 86, 86, 86, 3122, 86,
2497 3115, 86, 3125, 3126, 86, 86, 3127, 3132, 3114, 86,
2498 3116, 3121, 3129, 3119, 3120, 3118, 86, 3124, 86, 86,
2499 86, 86, 86, 3128, 86, 3122, 86, 3130, 3133, 3125,
2500
2501 3126, 3131, 3353, 3127, 86, 86, 3134, 3135, 3121, 3129,
2502 3140, 3142, 3138, 3136, 3124, 86, 3137, 3139, 86, 3141,
2503 3128, 86, 3147, 86, 3130, 86, 3143, 86, 3131, 86,
2504 3144, 86, 86, 3134, 3135, 3148, 3145, 3146, 3142, 3149,
2505 3136, 3150, 86, 3137, 86, 86, 3141, 3151, 3153, 86,
2506 3152, 3154, 86, 3143, 3155, 3156, 3157, 3144, 86, 3158,
2507 86, 3159, 86, 3145, 3146, 3160, 3149, 86, 86, 3161,
2508 86, 3162, 3163, 86, 86, 3153, 3164, 3152, 86, 3165,
2509 86, 86, 3156, 86, 3166, 3167, 86, 3168, 86, 3169,
2510 3170, 3172, 86, 3171, 3174, 3173, 86, 86, 86, 86,
2511
2512 3175, 86, 86, 86, 86, 86, 3165, 86, 86, 3176,
2513 3178, 3166, 86, 3177, 3168, 86, 3169, 3170, 86, 3179,
2514 3171, 3174, 3173, 3180, 3183, 86, 3182, 3175, 86, 3181,
2515 86, 3184, 3185, 86, 3188, 86, 3176, 86, 3187, 3189,
2516 3177, 3186, 86, 3353, 3192, 3353, 3179, 86, 86, 3193,
2517 3180, 3183, 86, 3182, 86, 86, 3181, 3191, 3184, 3190,
2518 86, 3188, 86, 3194, 86, 3187, 3189, 3196, 3186, 3197,
2519 86, 3192, 86, 3195, 86, 86, 3193, 3198, 86, 3199,
2520 3200, 3201, 3204, 3202, 3191, 3203, 3190, 86, 3205, 86,
2521 3194, 86, 3209, 86, 3196, 86, 3197, 3207, 3206, 3353,
2522
2523 3195, 86, 3208, 86, 3198, 86, 86, 86, 86, 3204,
2524 3202, 86, 3203, 3210, 86, 3205, 3211, 3213, 86, 3209,
2525 3212, 3220, 3214, 3215, 3207, 3206, 3216, 3218, 86, 3208,
2526 86, 86, 86, 3217, 3219, 86, 86, 86, 86, 86,
2527 3210, 3221, 3223, 3211, 3213, 3222, 86, 3212, 3220, 3214,
2528 3215, 86, 86, 3216, 3218, 3224, 3226, 3227, 3225, 3228,
2529 3217, 3219, 3229, 86, 86, 86, 86, 3231, 3221, 3223,
2530 86, 3232, 3222, 3230, 3233, 3234, 3353, 3242, 86, 3235,
2531 3237, 3236, 86, 3226, 3227, 3225, 3228, 86, 86, 86,
2532 3238, 86, 3239, 3240, 86, 86, 3245, 86, 3232, 3241,
2533
2534 3230, 86, 86, 3243, 86, 3246, 3235, 3237, 3236, 86,
2535 3244, 86, 86, 3248, 86, 3247, 86, 3238, 86, 3239,
2536 3240, 3249, 86, 3245, 3250, 86, 3241, 3251, 3252, 3253,
2537 3243, 3255, 86, 3256, 3254, 86, 86, 3244, 3257, 3258,
2538 86, 86, 3247, 86, 3259, 3260, 3264, 86, 86, 3353,
2539 3353, 3250, 3265, 3262, 3251, 86, 3253, 86, 86, 86,
2540 3256, 3254, 3261, 3263, 3266, 3257, 3258, 86, 86, 3269,
2541 3270, 86, 3267, 3264, 3268, 86, 86, 86, 86, 86,
2542 3262, 86, 86, 3272, 3274, 3271, 3273, 3276, 3275, 3261,
2543 3263, 86, 86, 86, 86, 86, 3269, 3270, 86, 3267,
2544
2545 3277, 3268, 86, 3278, 3279, 86, 3283, 3284, 3281, 3280,
2546 3272, 3274, 3271, 3273, 3276, 3275, 86, 86, 3282, 3285,
2547 3286, 3287, 86, 3353, 3291, 86, 86, 3277, 3288, 86,
2548 3278, 86, 3289, 86, 3284, 3281, 3280, 3292, 3293, 3294,
2549 3295, 3290, 3297, 86, 3296, 3282, 86, 3286, 3287, 86,
2550 86, 86, 86, 3298, 86, 3288, 86, 3300, 3302, 3289,
2551 86, 86, 86, 86, 86, 3293, 86, 3295, 3290, 3297,
2552 3299, 3296, 86, 3301, 3353, 3303, 3304, 3307, 86, 3310,
2553 3298, 86, 3311, 3308, 3309, 3302, 3353, 3305, 3353, 86,
2554 3306, 86, 86, 86, 3312, 3314, 86, 3299, 3313, 86,
2555
2556 3301, 86, 3303, 86, 3307, 86, 3310, 3315, 86, 3311,
2557 3308, 3309, 86, 3317, 3305, 3316, 86, 3306, 3318, 3319,
2558 3353, 3312, 3314, 86, 3321, 3313, 3322, 3320, 3323, 3353,
2559 3325, 3324, 86, 86, 3315, 3331, 3353, 3329, 3353, 86,
2560 3317, 86, 3316, 3326, 86, 3318, 3319, 86, 3327, 3333,
2561 86, 3321, 3328, 86, 3320, 3323, 86, 86, 3324, 86,
2562 86, 3330, 86, 86, 3329, 3332, 3335, 3334, 86, 86,
2563 3326, 86, 3336, 86, 86, 3327, 3333, 3337, 3338, 3328,
2564 86, 3341, 3339, 3340, 3342, 3344, 3343, 3345, 3330, 86,
2565 86, 86, 3332, 3335, 3334, 3346, 3347, 3348, 3353, 3336,
2566
2567 3351, 3353, 3352, 86, 3337, 86, 86, 86, 3341, 3339,
2568 3340, 86, 86, 3343, 86, 86, 3353, 3349, 86, 86,
2569 3350, 3353, 3346, 3347, 3348, 86, 3353, 86, 86, 86,
2570 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
2571 3353, 3353, 3353, 3353, 3349, 3353, 3353, 3350, 47, 47,
25322572 47, 47, 47, 47, 47, 52, 52, 52, 52, 52,
25332573 52, 52, 57, 57, 57, 57, 57, 57, 57, 63,
25342574 63, 63, 63, 63, 63, 63, 68, 68, 68, 68,
2535
25362575 68, 68, 68, 74, 74, 74, 74, 74, 74, 74,
2537 80, 80, 80, 80, 80, 80, 80, 89, 89, 3291,
2538 89, 89, 89, 89, 158, 158, 3291, 3291, 3291, 158,
2539 158, 160, 160, 3291, 3291, 160, 3291, 160, 162, 3291,
2540 3291, 3291, 3291, 3291, 162, 165, 165, 3291, 3291, 3291,
2541 165, 165, 167, 3291, 3291, 3291, 3291, 3291, 167, 169,
2542 169, 3291, 169, 169, 169, 169, 172, 3291, 3291, 3291,
2543 3291, 3291, 172, 175, 175, 3291, 3291, 3291, 175, 175,
2544 90, 90, 3291, 90, 90, 90, 90, 17, 3291, 3291,
2545 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
2546
2547 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
2548 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
2549 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
2550 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
2551 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
2552 3291, 3291, 3291, 3291
2576 80, 80, 80, 80, 80, 80, 80, 89, 89, 3353,
2577
2578 89, 89, 89, 89, 160, 160, 3353, 3353, 3353, 160,
2579 160, 162, 162, 3353, 3353, 162, 3353, 162, 164, 3353,
2580 3353, 3353, 3353, 3353, 164, 167, 167, 3353, 3353, 3353,
2581 167, 167, 169, 3353, 3353, 3353, 3353, 3353, 169, 171,
2582 171, 3353, 171, 171, 171, 171, 174, 3353, 3353, 3353,
2583 3353, 3353, 174, 177, 177, 3353, 3353, 3353, 177, 177,
2584 90, 90, 3353, 90, 90, 90, 90, 17, 3353, 3353,
2585 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
2586 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
2587 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
2588
2589 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
2590 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
2591 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
2592 3353, 3353, 3353, 3353
25532593 } ;
25542594
2555 static const flex_int16_t yy_chk[9455] =
2595 static const flex_int16_t yy_chk[9635] =
25562596 { 0,
25572597 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25582598 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25652605 7, 7, 7, 33, 7, 8, 8, 8, 8, 32,
25662606 8, 9, 9, 9, 10, 10, 10, 19, 51, 51,
25672607
2568 1073, 19, 3299, 3, 32, 33, 4, 67, 67, 5,
2569 33, 6, 2689, 13, 13, 13, 13, 7, 13, 14,
2608 1090, 19, 3361, 3, 32, 33, 4, 67, 67, 5,
2609 33, 6, 2735, 13, 13, 13, 13, 7, 13, 14,
25702610 14, 14, 14, 8, 14, 15, 15, 15, 9, 25,
2571 1073, 10, 11, 11, 11, 11, 11, 11, 12, 12,
2611 1090, 10, 11, 11, 11, 11, 11, 11, 12, 12,
25722612 12, 12, 12, 12, 16, 16, 16, 34, 28, 84,
2573 84, 13, 11, 45, 289, 25, 25, 14, 12, 34,
2574 39, 23, 15, 23, 23, 45, 23, 1082, 28, 175,
2575 11, 28, 23, 39, 34, 28, 12, 174, 87, 11,
2576 45, 16, 87, 289, 37, 12, 30, 39, 29, 56,
2577 37, 172, 56, 72, 30, 28, 26, 167, 100, 23,
2613 84, 13, 11, 45, 293, 25, 25, 14, 12, 34,
2614 39, 23, 15, 23, 23, 45, 23, 1099, 28, 177,
2615 11, 28, 23, 39, 34, 28, 12, 176, 87, 11,
2616 45, 16, 87, 293, 37, 12, 30, 39, 29, 56,
2617 37, 174, 56, 72, 30, 28, 26, 169, 100, 23,
25782618
25792619 24, 24, 29, 26, 24, 30, 72, 26, 99, 24,
2580 26, 37, 30, 30, 29, 29, 100, 99, 24, 165,
2581 72, 30, 26, 26, 24, 100, 164, 24, 24, 29,
2582 26, 24, 30, 162, 26, 99, 24, 26, 46, 161,
2583 46, 46, 161, 46, 160, 24, 27, 158, 31, 46,
2584 27, 31, 101, 27, 94, 27, 27, 143, 31, 62,
2585 31, 62, 62, 193, 62, 101, 27, 70, 27, 70,
2620 26, 37, 30, 30, 29, 29, 100, 99, 24, 167,
2621 72, 30, 26, 26, 24, 100, 166, 24, 24, 29,
2622 26, 24, 30, 164, 26, 99, 24, 26, 46, 163,
2623 46, 46, 163, 46, 162, 24, 27, 160, 31, 46,
2624 27, 31, 101, 27, 94, 27, 27, 145, 31, 62,
2625 31, 62, 62, 195, 62, 101, 27, 70, 27, 70,
25862626 70, 31, 70, 27, 94, 31, 35, 27, 31, 101,
2587 27, 94, 27, 27, 35, 31, 93, 31, 36, 143,
2588 35, 96, 36, 27, 35, 193, 44, 217, 96, 42,
2589
2590 44, 42, 35, 35, 44, 70, 92, 85, 36, 93,
2591 42, 35, 80, 93, 36, 36, 42, 35, 96, 36,
2592 75, 35, 44, 44, 43, 42, 42, 44, 42, 217,
2593 92, 44, 220, 92, 43, 36, 38, 42, 43, 43,
2594 38, 109, 74, 42, 159, 159, 38, 43, 109, 38,
2595 73, 43, 73, 73, 97, 73, 38, 79, 38, 79,
2596 79, 43, 79, 38, 220, 43, 43, 38, 109, 86,
2597 95, 86, 86, 38, 86, 106, 38, 68, 97, 63,
2598 86, 97, 98, 38, 40, 95, 58, 111, 40, 89,
2599 138, 89, 89, 106, 89, 98, 111, 95, 40, 40,
2600
2601 89, 40, 138, 103, 103, 57, 98, 106, 105, 98,
2602 40, 40, 103, 102, 111, 40, 105, 138, 104, 102,
2603 106, 102, 98, 104, 52, 40, 40, 89, 40, 41,
2604 103, 103, 41, 47, 102, 105, 107, 108, 112, 41,
2605 102, 166, 166, 41, 41, 104, 102, 112, 102, 107,
2606 108, 41, 110, 110, 113, 114, 41, 176, 176, 41,
2607 110, 115, 114, 107, 108, 112, 41, 119, 110, 118,
2608 41, 41, 116, 117, 18, 119, 117, 113, 17, 110,
2609 110, 113, 114, 115, 120, 116, 0, 110, 115, 117,
2610 117, 0, 124, 118, 119, 0, 123, 117, 121, 116,
2611
2612 117, 118, 121, 117, 120, 122, 120, 125, 127, 123,
2613 122, 120, 126, 122, 129, 124, 117, 117, 121, 124,
2614 118, 129, 121, 123, 128, 121, 126, 125, 127, 121,
2615 131, 120, 122, 130, 125, 127, 135, 122, 128, 126,
2616 132, 129, 130, 133, 0, 121, 140, 133, 134, 132,
2617 0, 128, 136, 131, 140, 134, 0, 131, 148, 136,
2618 130, 145, 135, 135, 0, 133, 148, 132, 137, 141,
2619 133, 139, 139, 140, 133, 134, 142, 137, 145, 136,
2620 141, 145, 144, 137, 141, 148, 149, 145, 145, 147,
2621 142, 137, 149, 141, 0, 137, 141, 144, 139, 152,
2622
2623 147, 146, 0, 142, 137, 145, 150, 141, 145, 144,
2624 137, 141, 146, 149, 152, 151, 147, 150, 155, 153,
2625 154, 146, 156, 930, 151, 157, 152, 155, 146, 163,
2626 0, 163, 163, 150, 163, 154, 151, 171, 157, 146,
2627 151, 153, 151, 0, 156, 155, 153, 154, 0, 156,
2628 177, 151, 157, 168, 930, 168, 168, 169, 168, 169,
2629 169, 171, 169, 151, 171, 173, 178, 173, 173, 179,
2630 173, 0, 177, 180, 181, 182, 0, 177, 179, 184,
2631 178, 181, 185, 186, 183, 180, 188, 184, 0, 0,
2632 187, 182, 262, 181, 185, 169, 179, 187, 178, 191,
2633
2634 180, 181, 182, 183, 188, 186, 184, 178, 181, 185,
2635 186, 183, 189, 188, 190, 197, 190, 187, 189, 262,
2636 192, 191, 222, 196, 198, 201, 191, 194, 0, 0,
2637 197, 194, 198, 225, 199, 200, 202, 204, 0, 203,
2638 201, 190, 197, 202, 189, 189, 192, 192, 194, 196,
2639 196, 198, 201, 0, 222, 194, 199, 200, 194, 0,
2640 204, 199, 200, 202, 204, 225, 0, 203, 205, 206,
2641 207, 203, 0, 208, 209, 194, 195, 209, 210, 0,
2642 206, 195, 0, 207, 211, 208, 195, 210, 212, 209,
2643 205, 215, 195, 195, 203, 205, 206, 207, 215, 195,
2644
2645 208, 209, 0, 195, 209, 210, 211, 214, 195, 218,
2646 212, 211, 216, 195, 219, 212, 224, 223, 215, 195,
2647 195, 213, 224, 216, 213, 219, 213, 227, 226, 214,
2648 221, 223, 228, 231, 214, 218, 218, 221, 213, 216,
2649 213, 229, 230, 224, 0, 233, 219, 213, 213, 223,
2650 226, 213, 219, 213, 231, 226, 230, 221, 223, 227,
2651 231, 229, 234, 232, 228, 213, 233, 213, 229, 230,
2652 232, 234, 233, 235, 236, 237, 234, 238, 241, 239,
2653 245, 242, 240, 0, 0, 241, 242, 244, 236, 234,
2654 232, 239, 235, 240, 243, 238, 244, 237, 234, 247,
2655
2656 235, 236, 237, 245, 238, 241, 239, 245, 249, 240,
2657 246, 248, 248, 242, 244, 246, 243, 250, 252, 251,
2658 248, 243, 253, 255, 250, 256, 257, 254, 258, 260,
2659 253, 247, 261, 264, 257, 259, 0, 246, 248, 248,
2660 249, 251, 260, 252, 250, 252, 251, 254, 263, 253,
2661 259, 265, 267, 257, 254, 255, 260, 256, 261, 261,
2662 258, 269, 259, 266, 270, 264, 268, 266, 265, 269,
2663 271, 263, 272, 274, 267, 275, 265, 271, 265, 267,
2664 263, 268, 273, 270, 276, 278, 273, 0, 269, 279,
2665 266, 270, 277, 268, 272, 265, 285, 271, 263, 272,
2666
2667 280, 279, 282, 281, 283, 274, 276, 275, 284, 273,
2668 284, 276, 281, 280, 277, 282, 279, 278, 286, 277,
2669 295, 287, 293, 283, 288, 290, 294, 280, 285, 282,
2670 281, 283, 291, 293, 290, 284, 292, 296, 294, 297,
2671 299, 300, 286, 298, 295, 286, 287, 295, 287, 293,
2672 288, 288, 290, 294, 300, 301, 302, 297, 291, 291,
2673 296, 298, 292, 292, 296, 303, 297, 304, 300, 305,
2674 298, 306, 299, 307, 311, 308, 310, 312, 0, 309,
2675 311, 302, 313, 302, 304, 310, 309, 301, 314, 0,
2676 304, 312, 323, 306, 304, 305, 305, 303, 306, 308,
2677
2678 316, 311, 319, 310, 312, 307, 309, 308, 313, 313,
2679 315, 304, 314, 317, 351, 314, 318, 321, 322, 315,
2680 325, 317, 320, 316, 323, 318, 308, 316, 319, 319,
2681 324, 320, 327, 322, 321, 325, 329, 315, 0, 328,
2682 317, 321, 0, 318, 321, 322, 351, 325, 328, 320,
2683 327, 331, 0, 0, 324, 341, 356, 324, 329, 327,
2684 332, 321, 326, 329, 0, 326, 328, 330, 333, 330,
2685 326, 326, 326, 326, 332, 331, 334, 334, 331, 335,
2686 326, 336, 341, 333, 335, 330, 0, 332, 356, 326,
2687 338, 330, 326, 342, 330, 333, 330, 326, 326, 326,
2688
2689 326, 334, 338, 334, 334, 336, 337, 339, 336, 337,
2690 340, 335, 330, 343, 345, 342, 337, 338, 344, 348,
2691 342, 346, 349, 347, 364, 339, 345, 348, 340, 349,
2692 350, 387, 0, 337, 339, 0, 337, 340, 347, 343,
2693 343, 345, 350, 346, 344, 344, 348, 354, 346, 349,
2694 347, 352, 360, 352, 354, 0, 364, 350, 362, 355,
2695 357, 358, 352, 387, 365, 360, 359, 358, 359, 398,
2696 0, 0, 363, 403, 354, 0, 362, 352, 352, 360,
2697 352, 355, 357, 358, 361, 362, 355, 357, 358, 352,
2698 359, 365, 366, 359, 358, 359, 369, 361, 363, 363,
2699
2700 361, 398, 361, 369, 0, 403, 371, 367, 361, 424,
2701 372, 361, 370, 367, 366, 373, 380, 367, 371, 366,
2702 378, 380, 372, 369, 361, 367, 0, 361, 373, 361,
2703 370, 367, 378, 371, 367, 375, 370, 372, 383, 370,
2704 367, 424, 373, 376, 367, 379, 383, 378, 380, 384,
2705 0, 375, 367, 368, 429, 368, 376, 370, 382, 375,
2706 381, 384, 375, 379, 382, 383, 385, 389, 368, 386,
2707 376, 368, 379, 368, 389, 368, 384, 386, 375, 368,
2708 368, 381, 368, 0, 385, 382, 429, 381, 0, 0,
2709 391, 388, 388, 385, 389, 368, 386, 390, 368, 391,
2710
2711 368, 0, 368, 377, 377, 392, 0, 393, 0, 395,
2712 390, 396, 394, 377, 393, 377, 377, 377, 388, 394,
2713 377, 395, 391, 392, 390, 397, 391, 392, 377, 399,
2714 377, 377, 392, 396, 393, 406, 395, 397, 396, 394,
2715 377, 400, 377, 377, 377, 401, 402, 377, 400, 404,
2716 392, 404, 397, 405, 408, 399, 399, 406, 409, 402,
2717 401, 408, 406, 410, 405, 407, 407, 0, 400, 409,
2718 411, 412, 401, 402, 410, 0, 404, 413, 413, 417,
2719 405, 408, 0, 411, 414, 409, 415, 417, 416, 419,
2720 410, 418, 0, 0, 407, 413, 412, 411, 412, 420,
2721
2722 419, 415, 413, 418, 413, 413, 417, 414, 420, 415,
2723 421, 414, 425, 415, 416, 416, 419, 427, 418, 426,
2724 422, 430, 413, 421, 428, 433, 420, 430, 415, 431,
2725 425, 422, 432, 422, 442, 434, 435, 421, 422, 425,
2726 427, 426, 428, 435, 427, 436, 426, 422, 430, 433,
2727 431, 428, 433, 437, 438, 432, 431, 434, 422, 432,
2728 422, 423, 434, 435, 439, 440, 442, 437, 441, 423,
2729 423, 436, 436, 423, 423, 443, 445, 444, 0, 440,
2730 437, 438, 445, 423, 446, 447, 439, 0, 423, 444,
2731 451, 439, 440, 449, 441, 441, 423, 423, 443, 451,
2732
2733 423, 423, 443, 445, 444, 448, 446, 447, 449, 450,
2734 452, 446, 447, 448, 453, 0, 450, 451, 455, 454,
2735 449, 456, 457, 458, 464, 452, 459, 0, 462, 458,
2736 460, 448, 448, 455, 0, 460, 450, 452, 453, 473,
2737 448, 453, 454, 464, 457, 455, 454, 456, 456, 457,
2738 458, 464, 459, 459, 462, 462, 463, 460, 465, 466,
2739 467, 469, 463, 469, 470, 471, 466, 472, 475, 0,
2740 469, 473, 471, 470, 476, 467, 465, 474, 479, 478,
2741 472, 481, 478, 463, 477, 465, 466, 467, 469, 482,
2742 469, 470, 471, 481, 472, 474, 476, 477, 478, 480,
2743
2744 475, 476, 479, 483, 474, 479, 478, 484, 481, 478,
2745 483, 477, 480, 485, 486, 487, 490, 488, 0, 489,
2746 492, 482, 488, 0, 0, 489, 480, 486, 491, 493,
2747 483, 484, 492, 544, 484, 501, 485, 487, 494, 490,
2748 495, 486, 487, 490, 488, 485, 489, 492, 495, 494,
2749 491, 493, 496, 0, 499, 491, 493, 500, 501, 503,
2750 544, 499, 501, 485, 502, 494, 496, 495, 0, 500,
2751 503, 0, 502, 504, 0, 507, 509, 506, 0, 496,
2752 497, 499, 0, 0, 500, 497, 503, 497, 505, 506,
2753 0, 502, 505, 497, 509, 497, 504, 507, 497, 497,
2754
2755 504, 510, 507, 509, 506, 497, 497, 497, 516, 511,
2756 505, 510, 497, 508, 497, 505, 508, 512, 513, 505,
2757 497, 511, 497, 514, 508, 497, 497, 514, 512, 517,
2758 515, 517, 497, 510, 516, 516, 511, 515, 510, 518,
2759 508, 519, 513, 508, 512, 513, 520, 521, 524, 523,
2760 514, 525, 522, 519, 523, 526, 517, 515, 0, 521,
2761 522, 520, 530, 526, 528, 518, 518, 531, 519, 525,
2762 524, 527, 532, 520, 521, 524, 523, 545, 525, 522,
2763 530, 533, 526, 527, 535, 528, 538, 534, 536, 530,
2764 531, 528, 535, 537, 531, 538, 533, 541, 527, 534,
2765
2766 539, 536, 540, 542, 532, 537, 542, 543, 533, 545,
2767 546, 535, 547, 538, 534, 536, 540, 0, 548, 549,
2768 537, 558, 541, 539, 541, 546, 543, 539, 550, 540,
2769 542, 552, 553, 548, 543, 551, 0, 546, 559, 555,
2770 557, 550, 554, 549, 547, 548, 549, 551, 558, 554,
2771 555, 560, 554, 552, 557, 550, 553, 561, 552, 553,
2772 554, 562, 551, 556, 563, 559, 555, 557, 556, 554,
2773 564, 565, 566, 567, 569, 564, 554, 565, 0, 554,
2774 0, 568, 569, 560, 561, 570, 571, 566, 562, 572,
2775 573, 576, 575, 0, 573, 556, 563, 567, 565, 566,
2776
2777 567, 569, 564, 568, 570, 577, 574, 579, 568, 578,
2778 571, 572, 570, 571, 574, 575, 572, 573, 578, 575,
2779 581, 583, 580, 576, 587, 582, 0, 583, 577, 579,
2780 585, 584, 577, 574, 579, 580, 578, 582, 586, 588,
2781 0, 585, 589, 0, 592, 586, 581, 581, 583, 580,
2782 595, 600, 582, 584, 590, 589, 587, 585, 584, 590,
2783 596, 588, 590, 590, 591, 586, 588, 593, 594, 589,
2784 592, 592, 595, 591, 602, 597, 593, 595, 590, 594,
2785 598, 590, 596, 600, 604, 601, 590, 596, 597, 590,
2786 590, 591, 598, 603, 593, 594, 606, 605, 602, 607,
2787
2788 608, 602, 597, 601, 613, 609, 604, 598, 610, 608,
2789 607, 604, 601, 619, 611, 603, 603, 620, 606, 0,
2790 603, 605, 610, 606, 605, 609, 607, 608, 614, 616,
2791 612, 613, 609, 617, 618, 610, 611, 612, 620, 615,
2792 616, 611, 603, 621, 620, 619, 614, 615, 623, 618,
2793 625, 617, 622, 622, 627, 614, 616, 612, 624, 625,
2794 617, 618, 628, 626, 629, 0, 615, 621, 630, 633,
2795 621, 631, 623, 631, 633, 623, 626, 625, 632, 634,
2796 624, 622, 637, 635, 628, 624, 627, 645, 0, 628,
2797 626, 638, 630, 634, 636, 630, 629, 635, 631, 638,
2798
2799 632, 633, 639, 640, 641, 632, 634, 642, 636, 636,
2800 635, 641, 643, 644, 637, 650, 636, 650, 638, 645,
2801 639, 636, 647, 646, 0, 640, 649, 0, 644, 639,
2802 640, 641, 643, 642, 642, 636, 636, 644, 646, 643,
2803 644, 648, 650, 651, 647, 659, 648, 653, 652, 647,
2804 646, 654, 649, 649, 655, 644, 652, 656, 658, 657,
2805 654, 661, 0, 655, 660, 658, 656, 657, 651, 668,
2806 651, 662, 653, 648, 653, 652, 0, 659, 654, 661,
2807 663, 655, 667, 662, 656, 658, 657, 660, 661, 665,
2808 664, 660, 663, 666, 667, 670, 671, 665, 662, 664,
2809
2810 669, 668, 673, 672, 671, 674, 680, 663, 666, 667,
2811 670, 672, 676, 669, 674, 675, 665, 664, 679, 680,
2812 666, 676, 670, 671, 681, 673, 675, 669, 678, 673,
2813 672, 682, 674, 680, 677, 677, 678, 685, 684, 676,
2814 679, 687, 675, 677, 683, 679, 684, 686, 688, 0,
2815 681, 681, 690, 685, 682, 678, 691, 683, 682, 688,
2816 686, 677, 677, 687, 685, 684, 690, 692, 687, 689,
2817 693, 683, 696, 694, 686, 688, 691, 689, 697, 690,
2818 695, 696, 0, 691, 703, 698, 700, 702, 699, 692,
2819 693, 701, 0, 704, 692, 694, 689, 693, 697, 696,
2820
2821 694, 699, 695, 698, 700, 697, 701, 695, 703, 702,
2822 705, 703, 698, 700, 702, 699, 704, 706, 701, 707,
2823 704, 708, 709, 705, 710, 712, 0, 0, 709, 717,
2824 711, 707, 713, 716, 708, 706, 718, 705, 711, 719,
2825 714, 716, 723, 718, 706, 721, 707, 721, 708, 709,
2826 724, 710, 712, 720, 713, 722, 711, 711, 714, 713,
2827 716, 717, 719, 718, 722, 711, 719, 714, 720, 724,
2828 725, 727, 721, 727, 723, 726, 728, 724, 734, 731,
2829 720, 737, 722, 728, 726, 742, 0, 0, 734, 738,
2830 725, 731, 740, 750, 0, 0, 742, 725, 727, 737,
2831
2832 741, 0, 726, 728, 729, 734, 731, 729, 737, 743,
2833 738, 729, 742, 740, 729, 748, 738, 744, 741, 740,
2834 745, 729, 729, 746, 729, 750, 747, 741, 748, 729,
2835 749, 729, 743, 752, 729, 747, 743, 749, 729, 746,
2836 755, 729, 748, 744, 744, 754, 745, 745, 729, 729,
2837 746, 729, 758, 747, 754, 752, 753, 749, 751, 751,
2838 752, 751, 753, 755, 751, 756, 757, 755, 756, 751,
2839 759, 761, 754, 761, 758, 751, 751, 762, 759, 758,
2840 764, 0, 757, 753, 751, 751, 751, 760, 751, 757,
2841 763, 751, 756, 757, 765, 763, 751, 759, 761, 760,
2842
2843 764, 762, 751, 751, 762, 766, 767, 764, 768, 757,
2844 0, 0, 770, 772, 760, 769, 771, 766, 777, 773,
2845 765, 765, 763, 775, 776, 777, 774, 0, 767, 787,
2846 779, 775, 766, 767, 768, 768, 770, 769, 771, 770,
2847 772, 774, 769, 771, 773, 777, 773, 776, 778, 779,
2848 775, 776, 780, 774, 781, 782, 778, 779, 783, 785,
2849 784, 787, 786, 789, 793, 0, 781, 786, 782, 784,
2850 788, 790, 792, 794, 785, 778, 790, 796, 780, 780,
2851 795, 781, 782, 798, 783, 783, 785, 784, 797, 786,
2852 789, 800, 788, 801, 792, 799, 793, 788, 802, 792,
2853
2854 807, 0, 795, 790, 798, 794, 805, 795, 804, 796,
2855 798, 808, 797, 806, 799, 797, 810, 802, 800, 803,
2856 801, 806, 799, 809, 811, 802, 805, 807, 803, 808,
2857 804, 812, 0, 805, 814, 804, 815, 817, 808, 812,
2858 806, 816, 809, 810, 816, 819, 803, 818, 820, 821,
2859 809, 822, 814, 822, 815, 823, 811, 824, 812, 817,
2860 826, 814, 821, 815, 817, 818, 0, 827, 816, 819,
2861 820, 824, 819, 823, 818, 820, 821, 829, 822, 827,
2862 825, 828, 823, 834, 824, 825, 826, 826, 830, 828,
2863 831, 830, 0, 833, 827, 829, 835, 836, 831, 837,
2864
2865 838, 0, 835, 0, 829, 837, 839, 838, 828, 844,
2866 834, 840, 825, 839, 831, 830, 840, 831, 833, 836,
2867 833, 841, 842, 835, 836, 831, 837, 838, 841, 846,
2868 843, 847, 844, 839, 843, 845, 844, 846, 840, 849,
2869 842, 848, 850, 852, 845, 851, 0, 853, 841, 842,
2870 850, 854, 855, 857, 849, 864, 846, 843, 851, 848,
2871 853, 865, 845, 847, 852, 859, 849, 867, 848, 850,
2872 852, 857, 851, 854, 853, 856, 858, 870, 854, 855,
2873 857, 860, 856, 858, 859, 861, 862, 864, 860, 863,
2874 861, 866, 859, 865, 862, 871, 863, 868, 869, 867,
2875
2876 878, 875, 856, 858, 866, 869, 872, 873, 860, 870,
2877 868, 874, 861, 862, 876, 873, 863, 877, 866, 874,
2878 876, 879, 880, 875, 868, 869, 874, 871, 875, 872,
2879 882, 880, 878, 872, 873, 0, 881, 884, 874, 886,
2880 883, 876, 885, 877, 877, 879, 874, 883, 879, 880,
2881 881, 885, 887, 888, 889, 0, 890, 887, 927, 0,
2882 0, 886, 882, 881, 884, 888, 886, 883, 891, 885,
2883 893, 892, 896, 891, 899, 896, 897, 889, 892, 894,
2884 888, 889, 890, 890, 887, 901, 900, 894, 899, 897,
2885 927, 901, 893, 900, 904, 891, 905, 893, 892, 896,
2886
2887 0, 899, 903, 897, 906, 0, 894, 907, 905, 907,
2888 908, 0, 901, 900, 902, 0, 902, 904, 909, 0,
2889 902, 904, 902, 905, 911, 0, 910, 902, 903, 903,
2890 909, 906, 902, 908, 907, 912, 0, 908, 902, 910,
2891 914, 902, 924, 902, 915, 909, 911, 902, 912, 902,
2892 913, 911, 916, 910, 902, 913, 917, 915, 914, 902,
2893 924, 919, 912, 918, 916, 920, 928, 914, 917, 924,
2894 929, 915, 922, 918, 925, 916, 919, 931, 922, 916,
2895 921, 923, 913, 917, 926, 918, 953, 920, 919, 947,
2896 918, 916, 920, 921, 923, 925, 933, 929, 928, 922,
2897
2898 918, 925, 936, 934, 933, 932, 926, 921, 923, 931,
2899 932, 926, 934, 953, 937, 938, 939, 936, 940, 0,
2900 942, 947, 943, 933, 0, 0, 941, 0, 938, 936,
2901 934, 939, 932, 935, 0, 943, 937, 0, 935, 942,
2902 935, 937, 938, 939, 940, 940, 935, 942, 941, 943,
2903 946, 935, 935, 941, 944, 945, 949, 950, 935, 935,
2904 935, 946, 944, 945, 948, 935, 950, 935, 957, 951,
2905 0, 949, 954, 935, 958, 962, 961, 946, 935, 935,
2906 951, 944, 945, 949, 950, 935, 948, 955, 952, 960,
2907 961, 948, 0, 969, 955, 954, 951, 952, 958, 954,
2908
2909 957, 958, 959, 961, 963, 964, 966, 962, 968, 967,
2910 959, 960, 970, 964, 955, 952, 960, 0, 972, 968,
2911 971, 0, 981, 998, 966, 969, 963, 967, 971, 959,
2912 970, 963, 964, 966, 973, 968, 967, 974, 976, 970,
2913 972, 973, 975, 985, 977, 972, 979, 971, 978, 975,
2914 974, 987, 983, 976, 981, 998, 985, 0, 980, 987,
2915 990, 973, 977, 983, 974, 976, 978, 979, 980, 975,
2916 985, 977, 990, 979, 986, 978, 988, 989, 987, 983,
2917 991, 986, 996, 992, 995, 980, 989, 990, 997, 988,
2918 1002, 1007, 0, 1005, 999, 1002, 1012, 0, 1007, 1014,
2919
2920 996, 986, 991, 988, 989, 992, 995, 991, 999, 996,
2921 992, 995, 1001, 1006, 997, 997, 1004, 1005, 1007, 1004,
2922 1005, 999, 1002, 1001, 1008, 1009, 1006, 1010, 1012, 1013,
2923 0, 1014, 1011, 1015, 1009, 1008, 1013, 1017, 1019, 1001,
2924 1006, 1010, 1004, 1004, 1011, 1015, 1004, 1016, 1021, 1020,
2925 1017, 1008, 1009, 0, 1010, 1020, 1013, 1022, 1024, 1011,
2926 1015, 1023, 1019, 1026, 1017, 1019, 1028, 1025, 1031, 1016,
2927 1021, 1029, 1023, 0, 1016, 1021, 1020, 1032, 1026, 1022,
2928 1024, 1030, 1029, 1033, 1022, 1024, 1034, 1028, 1023, 1025,
2929 1026, 1035, 1040, 1028, 1025, 1034, 1036, 1037, 1029, 1038,
2930
2931 1031, 1033, 1030, 1041, 1032, 1039, 1037, 1038, 1030, 1042,
2932 1033, 1043, 1039, 1034, 1047, 1035, 1040, 1041, 1035, 1040,
2933 1044, 1051, 1036, 1036, 1037, 1049, 1038, 1045, 1046, 1050,
2934 1041, 1053, 1039, 1054, 1049, 1052, 1050, 1058, 0, 1056,
2935 0, 1042, 1044, 1043, 1059, 1055, 1047, 1044, 1056, 1045,
2936 1046, 1054, 1049, 1051, 1045, 1046, 1050, 1052, 1053, 1057,
2937 1054, 1058, 1052, 1055, 1058, 1060, 1056, 1057, 1059, 1061,
2938 1062, 1059, 1055, 1063, 1064, 1065, 1066, 1067, 0, 1062,
2939 0, 1060, 1064, 1068, 1069, 1070, 1057, 1072, 1063, 1067,
2940 1071, 1061, 1060, 1070, 1080, 1075, 1061, 1062, 0, 0,
2941
2942 1063, 1064, 1072, 1071, 1067, 1068, 1074, 1065, 1066, 1086,
2943 1068, 1069, 1070, 1075, 1072, 1074, 1076, 1071, 1077, 1079,
2944 1077, 1080, 1075, 1081, 1076, 1083, 1085, 1079, 1084, 1087,
2945 1081, 1086, 1088, 1074, 1090, 1089, 1086, 1091, 1083, 0,
2946 1084, 1085, 1089, 1076, 1096, 1077, 1079, 1087, 1093, 1092,
2947 1081, 1095, 1083, 1085, 1094, 1084, 1087, 1096, 1098, 1088,
2948 1092, 1097, 1089, 1101, 1100, 1099, 1090, 0, 1161, 1091,
2949 1093, 1096, 1100, 1095, 1097, 1093, 1092, 1099, 1095, 1094,
2950 1098, 1094, 1102, 1101, 1105, 1098, 1106, 1103, 1097, 1107,
2951 1101, 1100, 1099, 1108, 1102, 1103, 1109, 1110, 1107, 1106,
2952
2953 1161, 1116, 0, 1113, 1110, 1108, 0, 1114, 1118, 1102,
2954 0, 1105, 0, 1106, 1103, 1115, 1107, 1109, 1111, 1117,
2955 1108, 1118, 0, 1109, 1110, 1119, 1113, 1111, 1116, 1111,
2956 1113, 1123, 1111, 1114, 1114, 1118, 1120, 1115, 1121, 1117,
2957 1111, 0, 1115, 1122, 1120, 1111, 1117, 1121, 0, 1119,
2958 1126, 1125, 1119, 1123, 1111, 1128, 1111, 1131, 1123, 1111,
2959 1124, 1122, 1127, 1120, 1132, 1121, 1125, 1136, 1124, 0,
2960 1122, 1128, 1126, 1129, 1133, 1127, 1134, 1126, 1125, 1137,
2961 1135, 1129, 1128, 1134, 1131, 0, 1132, 1124, 0, 1127,
2962 1136, 1132, 1138, 1139, 1136, 1141, 1133, 1137, 1143, 1142,
2963
2964 1129, 1133, 1135, 1134, 1138, 1139, 1137, 1135, 1140, 1144,
2965 1141, 1142, 1148, 1145, 0, 1149, 1140, 1146, 1143, 1138,
2966 1139, 1145, 1141, 1146, 1144, 1143, 1142, 1149, 1147, 1152,
2967 0, 1150, 0, 1148, 1151, 1140, 1144, 1147, 1150, 1148,
2968 1145, 1151, 1149, 1154, 1146, 1153, 1156, 1152, 1155, 0,
2969 1157, 1154, 1157, 1158, 1156, 1147, 1152, 1153, 1150, 1159,
2970 1164, 1151, 1162, 1155, 1165, 1158, 1159, 1166, 1163, 1168,
2971 1154, 1165, 1153, 1156, 1162, 1155, 1167, 1157, 1166, 1164,
2972 1158, 1163, 1170, 1169, 1168, 1172, 1159, 1164, 1169, 1162,
2973 1170, 1165, 1171, 1175, 1166, 1163, 1168, 1173, 1167, 1172,
2974
2975 1176, 0, 1177, 1167, 1178, 1171, 1181, 1175, 0, 1170,
2976 0, 0, 1172, 1179, 1182, 1169, 1201, 1201, 1176, 1171,
2977 1175, 1180, 1183, 1173, 1173, 1174, 0, 1176, 1184, 1174,
2978 1178, 1178, 1174, 1174, 1177, 1179, 1182, 1174, 1181, 1180,
2979 1179, 1182, 1186, 1174, 1183, 1201, 1188, 1174, 1180, 1183,
2980 1192, 1174, 1174, 1188, 1184, 1184, 1174, 1185, 1190, 1174,
2981 1174, 0, 0, 1185, 1174, 1187, 1189, 1187, 1186, 1186,
2982 1174, 1191, 1192, 1188, 1174, 1189, 1190, 1192, 1191, 1194,
2983 1195, 1196, 1193, 1197, 1185, 1190, 0, 0, 1194, 1187,
2984 1200, 1198, 1187, 1189, 1187, 1193, 0, 0, 1191, 0,
2985
2986 1204, 0, 1206, 1208, 1202, 1197, 1194, 1207, 1208, 1193,
2987 1197, 1206, 1195, 1196, 1198, 1217, 1200, 1200, 1198, 1199,
2988 1202, 1205, 1209, 1204, 1199, 1207, 1199, 1204, 1199, 1206,
2989 1199, 1202, 1211, 1205, 1207, 1208, 1210, 1199, 1213, 1212,
2990 1209, 1210, 1214, 0, 1218, 1216, 1199, 1217, 1205, 1209,
2991 1214, 1199, 1212, 1199, 1211, 1199, 1213, 1199, 1216, 1211,
2992 1215, 1219, 1220, 1210, 1221, 1213, 1212, 1223, 1215, 1214,
2993 1218, 1218, 1216, 1224, 1225, 1220, 1225, 1222, 1227, 1229,
2994 1219, 1226, 1224, 1228, 1230, 1223, 1221, 1215, 1219, 1220,
2995 1222, 1221, 1232, 1233, 1223, 1228, 1235, 1236, 0, 1234,
2996
2997 1224, 1225, 1238, 1226, 1222, 1227, 1229, 1234, 1226, 1230,
2998 1228, 1230, 1239, 1240, 1235, 1233, 1232, 1243, 1237, 1232,
2999 1233, 1241, 1242, 1235, 1236, 1237, 1234, 1241, 1242, 1238,
3000 1244, 1245, 1247, 1248, 1246, 1240, 0, 1244, 1239, 1239,
3001 1240, 1246, 1249, 1250, 1243, 1237, 1254, 1252, 1241, 1242,
3002 1253, 1248, 1250, 1255, 1247, 1245, 1256, 1244, 1245, 1247,
3003 1248, 1246, 1253, 1257, 1258, 1259, 1255, 1249, 1254, 1249,
3004 1250, 1252, 1260, 1254, 1252, 1261, 1262, 1253, 1256, 1263,
3005 1255, 1266, 1257, 1256, 1264, 1268, 1258, 1265, 1263, 1259,
3006 1257, 1258, 1259, 1269, 1260, 1266, 1270, 1271, 1262, 1260,
3007
3008 1274, 1261, 1261, 1262, 1272, 1264, 1263, 1265, 1266, 1275,
3009 1281, 1264, 1273, 1282, 1265, 1285, 1274, 1268, 1270, 1276,
3010 1273, 1278, 1272, 1270, 0, 1269, 1276, 1274, 1279, 1271,
3011 1280, 1272, 1283, 1278, 1280, 1279, 1275, 1286, 0, 1273,
3012 0, 1290, 1281, 1286, 1287, 1282, 1276, 1285, 1278, 1288,
3013 1286, 1287, 1289, 1283, 1290, 1279, 1288, 1280, 1292, 1283,
3014 1291, 1294, 1297, 1294, 1286, 1293, 1295, 1289, 1290, 1291,
3015 1286, 1287, 1293, 1296, 1298, 1295, 1288, 1299, 1298, 1289,
3016 1304, 1302, 1301, 1305, 1292, 1292, 1302, 1291, 1294, 1297,
3017 1301, 0, 1293, 1295, 1303, 1296, 1307, 1314, 1304, 1299,
3018
3019 1296, 1298, 1305, 1303, 1299, 1306, 0, 1304, 1307, 1301,
3020 1305, 1309, 1308, 1302, 1309, 1308, 1310, 0, 1306, 1311,
3021 1316, 1303, 1312, 1307, 1308, 1315, 1317, 1319, 1319, 1314,
3022 0, 1317, 1306, 1309, 1310, 1312, 1316, 1318, 1309, 1308,
3023 1321, 1309, 1308, 1310, 1311, 1318, 1311, 1316, 1315, 1312,
3024 1320, 1322, 1315, 1324, 1319, 1335, 1323, 1325, 1317, 1320,
3025 1324, 1326, 1321, 1328, 1318, 1323, 1329, 1321, 1326, 1331,
3026 0, 1332, 1330, 1322, 1339, 1329, 1328, 1320, 1322, 1325,
3027 1324, 1330, 1333, 1323, 1325, 1336, 1339, 1335, 1326, 1334,
3028 1328, 1333, 1338, 1329, 1332, 1331, 1331, 1334, 1332, 1330,
3029
3030 1336, 1339, 1337, 1340, 1342, 1338, 1341, 1343, 0, 1333,
3031 1337, 1345, 1336, 1344, 1341, 1340, 1334, 1347, 1346, 1338,
3032 1345, 1349, 1352, 1353, 1351, 1348, 1342, 1343, 0, 1337,
3033 1340, 1342, 1360, 1341, 1343, 1344, 1346, 1348, 1345, 1349,
3034 1344, 1355, 1350, 1347, 1347, 1346, 1354, 1361, 1349, 1350,
3035 1351, 1351, 1348, 1356, 1352, 1353, 1357, 1358, 1362, 1354,
3036 1359, 0, 1363, 1358, 1360, 1364, 1366, 1357, 1355, 1350,
3037 1370, 1367, 1369, 1354, 1356, 1374, 0, 1368, 0, 1361,
3038 1356, 1369, 1359, 1357, 1358, 1370, 1373, 1359, 1363, 1363,
3039 1362, 1364, 1364, 1366, 1367, 1368, 1371, 1370, 1367, 1369,
3040
3041 1372, 1374, 1374, 1375, 1368, 1376, 1373, 1377, 1378, 1371,
3042 1375, 1379, 1372, 1373, 1383, 1380, 1391, 1381, 1382, 1379,
3043 1380, 1378, 1381, 1371, 1376, 1382, 1386, 1372, 1384, 1377,
3044 1375, 1385, 1376, 1394, 1377, 1378, 1384, 1387, 1379, 1385,
3045 1383, 1383, 1388, 1390, 1386, 1382, 1392, 1380, 1391, 1381,
3046 1388, 1396, 1390, 1386, 1389, 1384, 1393, 1393, 1385, 1387,
3047 1397, 1389, 1405, 1395, 1387, 1394, 1398, 1399, 1392, 1388,
3048 1390, 1395, 1396, 1392, 1398, 1399, 1400, 1401, 1396, 1404,
3049 1403, 1389, 1402, 1393, 1400, 1401, 1403, 1406, 1405, 1405,
3050 1395, 1404, 1397, 1398, 1399, 1402, 1408, 1407, 1409, 1410,
3051
3052 1413, 0, 1412, 1400, 1401, 1411, 1404, 1403, 1414, 1402,
3053 1417, 1406, 1407, 1415, 1406, 0, 1412, 1415, 1413, 1417,
3054 1418, 1410, 1414, 1408, 1407, 1409, 1410, 1413, 1411, 1412,
3055 1415, 1419, 1411, 1422, 1420, 1414, 1424, 1417, 1415, 1421,
3056 1415, 1420, 1418, 1419, 1415, 1423, 1428, 1418, 1426, 1427,
3057 1421, 1425, 1430, 1433, 1429, 1431, 1434, 1415, 1419, 1430,
3058 1422, 1420, 1426, 1425, 1431, 1436, 1421, 1423, 1424, 1428,
3059 1440, 1427, 1423, 1428, 1436, 1426, 1427, 1429, 1425, 1430,
3060 1432, 1429, 1431, 1434, 1438, 1433, 1439, 1432, 1441, 1444,
3061 1438, 1442, 1436, 0, 1447, 1446, 1440, 1440, 1442, 1448,
3062
3063 1451, 1449, 1452, 0, 1454, 1453, 0, 1432, 1439, 1452,
3064 1448, 1438, 1449, 1439, 1458, 0, 1444, 1460, 1442, 1446,
3065 1441, 1447, 1446, 1453, 1451, 1455, 1448, 1451, 1449, 1452,
3066 1454, 1454, 1453, 1456, 1457, 1459, 1458, 1455, 1461, 1456,
3067 1462, 1458, 1457, 1460, 1460, 1463, 1467, 1465, 1459, 1462,
3068 1466, 1464, 1455, 1464, 1465, 1468, 1461, 1463, 1469, 1467,
3069 1456, 1457, 1459, 1470, 1468, 1461, 1471, 1462, 1472, 0,
3070 1474, 1476, 1463, 1467, 1465, 1470, 1466, 1466, 1464, 1473,
3071 1469, 1477, 1468, 1475, 1478, 1469, 1473, 1476, 1475, 0,
3072 1470, 1472, 1478, 1471, 1479, 1472, 1474, 1474, 1476, 1481,
3073
3074 1483, 1482, 1484, 1487, 1477, 1487, 1473, 1486, 1477, 1483,
3075 1475, 1478, 1482, 1488, 1489, 1484, 1479, 1485, 1485, 1492,
3076 1486, 1479, 0, 0, 1490, 1485, 1481, 1483, 1482, 1484,
3077 1487, 1490, 1493, 1494, 1486, 1491, 1489, 1498, 1496, 1488,
3078 1488, 1489, 1491, 0, 1485, 1485, 1492, 1495, 1497, 1499,
3079 1493, 1490, 1500, 1502, 1495, 1494, 1499, 0, 1503, 1493,
3080 1494, 1505, 1491, 1496, 1504, 1496, 1502, 1507, 1508, 1498,
3081 1497, 1508, 1504, 1509, 1495, 1497, 1499, 1510, 1512, 1511,
3082 1502, 1513, 1505, 1514, 1500, 1503, 1515, 1512, 1505, 1507,
3083 1518, 1504, 1511, 1513, 1507, 1508, 1524, 1518, 1521, 1509,
3084
3085 1509, 1517, 1516, 1510, 1510, 1512, 1511, 1514, 1513, 1520,
3086 1514, 1516, 1515, 1515, 1524, 1519, 1517, 1518, 1519, 1522,
3087 1521, 1528, 1525, 1524, 1526, 1521, 1526, 1529, 1517, 1516,
3088 1519, 1527, 1530, 1534, 1531, 1522, 0, 0, 1541, 1519,
3089 1532, 1520, 1519, 1522, 1525, 1519, 1522, 1533, 1528, 1525,
3090 1535, 1526, 1540, 1542, 1536, 1527, 1531, 1519, 1527, 1529,
3091 1537, 1531, 1522, 1538, 1530, 1534, 1532, 1532, 1536, 1537,
3092 1541, 1538, 1535, 1533, 1533, 1539, 1540, 1535, 1543, 1540,
3093 1544, 1536, 1539, 1547, 1545, 1542, 1546, 1537, 1545, 1549,
3094 1538, 1552, 1548, 1553, 1550, 0, 1551, 0, 1549, 0,
3095
3096 1543, 1550, 1539, 1551, 1552, 1543, 1553, 1557, 1546, 1554,
3097 1547, 1545, 1544, 1546, 1548, 1555, 1549, 1561, 1552, 1548,
3098 1553, 1550, 1554, 1551, 1555, 1556, 1558, 1556, 1562, 1559,
3099 1557, 1563, 1561, 1564, 1557, 1571, 1554, 1559, 0, 1565,
3100 1567, 1568, 1555, 1562, 1561, 1563, 1565, 1567, 1566, 0,
3101 1573, 1558, 1556, 1558, 1568, 1562, 1559, 1569, 1563, 1566,
3102 1575, 1574, 1571, 1569, 1572, 1564, 1565, 1567, 1568, 1576,
3103 1577, 1572, 1573, 1581, 1580, 1566, 1574, 1573, 1582, 1578,
3104 1579, 1576, 1578, 1577, 1569, 1581, 1575, 1575, 1574, 1579,
3105 1583, 1572, 1580, 1583, 1589, 1590, 1576, 1577, 1582, 1584,
3106
3107 1581, 1580, 1591, 1595, 1586, 1582, 1578, 1579, 1583, 1586,
3108 1584, 1588, 1592, 1588, 1593, 0, 1586, 1583, 1589, 1594,
3109 1583, 1589, 1590, 1593, 1597, 1598, 1584, 1592, 1596, 1591,
3110 1595, 1586, 1597, 1601, 1599, 1602, 1586, 1600, 1588, 1592,
3111 1603, 1593, 1596, 1594, 1601, 1600, 1594, 1598, 1603, 1607,
3112 1605, 1597, 1598, 1602, 1604, 1596, 1599, 1604, 1606, 1608,
3113 1601, 1599, 1602, 0, 1600, 1609, 1608, 1603, 1605, 1610,
3114 1611, 1612, 1604, 1613, 0, 1618, 1607, 1605, 1610, 1609,
3115 1617, 1604, 1612, 1611, 1604, 1616, 1608, 1616, 1613, 1617,
3116 1606, 1620, 1609, 1619, 1621, 1624, 1610, 1611, 1612, 1622,
3117
3118 1613, 1618, 1618, 0, 1619, 1623, 1625, 1617, 1623, 1620,
3119 1627, 0, 1616, 1622, 1630, 1625, 1621, 1624, 1620, 1627,
3120 1619, 1621, 1624, 1623, 1626, 1622, 1622, 1630, 1633, 1628,
3121 1626, 1631, 1623, 1625, 1628, 1623, 1634, 1627, 1635, 1632,
3122 1622, 1630, 1636, 1631, 1632, 1637, 1639, 1635, 1638, 1642,
3123 1633, 1626, 1640, 1644, 1643, 1633, 1642, 1645, 1631, 1647,
3124 0, 1628, 0, 1649, 0, 1635, 1632, 1643, 1634, 1636,
3125 1638, 1645, 1659, 1640, 1646, 1638, 1642, 1637, 1639, 1640,
3126 1646, 1643, 1649, 1653, 1645, 1644, 1651, 1652, 1654, 1655,
3127 1649, 1647, 1657, 1659, 1651, 1652, 1658, 1656, 1646, 1659,
3128
3129 1660, 1646, 1653, 1655, 1661, 1657, 1654, 1646, 1662, 1658,
3130 1653, 1656, 1663, 1651, 1652, 1654, 1655, 1665, 1664, 1657,
3131 1659, 1666, 1662, 1658, 1656, 1664, 1665, 1667, 1668, 1666,
3132 1669, 1674, 1660, 1670, 1672, 1662, 1661, 0, 1670, 1663,
3133 1671, 1676, 1668, 1672, 1665, 1664, 1675, 1677, 1666, 1678,
3134 1679, 1671, 1680, 1675, 1667, 1668, 1685, 1689, 1674, 1681,
3135 1670, 1672, 1669, 1681, 1676, 1683, 1684, 1671, 1676, 1677,
3136 1680, 1678, 1679, 1675, 1677, 1687, 1678, 1679, 1684, 1680,
3137 1683, 1686, 1692, 1685, 1689, 1690, 1681, 1688, 1693, 1686,
3138 1687, 1691, 1683, 1684, 1696, 1688, 1695, 1692, 1690, 1697,
3139
3140 0, 1696, 1687, 1693, 1695, 1698, 1700, 1699, 1686, 1692,
3141 1701, 1691, 1690, 1703, 1688, 1693, 1699, 1702, 1691, 0,
3142 1698, 1696, 1707, 1695, 1705, 1706, 1708, 1700, 0, 1712,
3143 1709, 1697, 1698, 1700, 1699, 1710, 1712, 1701, 0, 1711,
3144 1703, 1702, 1713, 1706, 1702, 1709, 1705, 1713, 1716, 1714,
3145 1715, 1705, 1706, 1708, 1707, 1718, 1712, 1709, 1714, 1715,
3146 1710, 1717, 1710, 1711, 1719, 1721, 1711, 1723, 1720, 1713,
3147 1716, 1722, 1727, 1718, 1723, 1716, 1714, 1715, 1724, 1719,
3148 1720, 1725, 1718, 1717, 1722, 1724, 1728, 1721, 1717, 1722,
3149 1726, 1719, 1721, 0, 1723, 1720, 1731, 1738, 1722, 1727,
3150
3151 1724, 1729, 1726, 1725, 1731, 1724, 1732, 1729, 1725, 1733,
3152 1735, 1722, 1724, 1737, 1732, 1734, 1739, 1726, 1728, 1736,
3153 1733, 1736, 1734, 1731, 1738, 1741, 1745, 1740, 1729, 1742,
3154 1747, 1750, 1736, 1732, 1740, 1735, 1733, 1735, 1743, 1737,
3155 1737, 1744, 1734, 1739, 1743, 0, 1736, 1744, 1736, 1746,
3156 1748, 1751, 1741, 1745, 1740, 1742, 1742, 1752, 1754, 1753,
3157 1751, 1753, 1747, 1750, 1755, 1743, 1756, 1758, 1744, 1759,
3158 1757, 1764, 1746, 1756, 1748, 0, 1746, 1748, 1751, 1761,
3159 1763, 1759, 1754, 1762, 1760, 1754, 1753, 0, 1766, 1752,
3160 1760, 1755, 1757, 1756, 1758, 1766, 1759, 1757, 1765, 1765,
3161
3162 1765, 1761, 1763, 1764, 1769, 1765, 1761, 1763, 1767, 1762,
3163 1762, 1760, 1768, 1765, 1770, 1766, 1773, 1767, 1772, 1768,
3164 1775, 1770, 1774, 1772, 1776, 1765, 1765, 1765, 1778, 1773,
3165 1777, 1780, 1765, 0, 1774, 1767, 1769, 1779, 1780, 1768,
3166 1776, 1770, 1777, 1773, 1782, 1775, 1781, 1775, 1784, 1774,
3167 1772, 1776, 1781, 1783, 1783, 1779, 1785, 1777, 1780, 1787,
3168 1778, 1786, 1788, 1785, 1779, 1789, 1786, 1792, 1793, 1794,
3169 1793, 1782, 1789, 1781, 1784, 1784, 1797, 1798, 1799, 1796,
3170 1783, 1801, 1797, 1785, 1800, 1787, 1787, 1794, 1786, 1788,
3171 1800, 1810, 1789, 1801, 1792, 1793, 1794, 1796, 1802, 1803,
3172
3173 1804, 1804, 1805, 1797, 1807, 1799, 1796, 1811, 1801, 1798,
3174 1809, 1800, 1806, 1806, 1811, 1807, 1812, 1803, 1802, 1813,
3175 1814, 1815, 1816, 1810, 0, 1802, 1803, 1804, 1805, 1805,
3176 1819, 1807, 1809, 1818, 1811, 1817, 1812, 1809, 1819, 1806,
3177 1818, 1820, 1821, 1812, 1816, 1822, 1823, 1823, 1815, 1816,
3178 1824, 1813, 1814, 1817, 1822, 1825, 1820, 1819, 1826, 1829,
3179 1818, 1833, 1817, 0, 1827, 1832, 1821, 1828, 1820, 1821,
3180 1832, 1827, 1822, 1823, 1831, 1829, 1824, 1824, 1834, 1828,
3181 1839, 1831, 1829, 1833, 1836, 1835, 1829, 1825, 1833, 1838,
3182 1826, 1827, 1832, 1835, 1828, 1841, 1836, 1838, 1840, 1842,
3183
3184 1843, 1831, 1829, 1839, 1844, 1834, 1845, 1839, 1846, 1844,
3185 1848, 1836, 1835, 1841, 1846, 1847, 1838, 1849, 1848, 1840,
3186 1844, 1852, 1841, 1843, 1854, 1840, 1842, 1843, 1847, 1855,
3187 1859, 1844, 1856, 1845, 1850, 1846, 1844, 1848, 1851, 1849,
3188 1853, 1850, 1847, 1857, 1849, 1851, 1854, 1861, 1859, 1862,
3189 1864, 1854, 1853, 1852, 1861, 1860, 1855, 1859, 1856, 1856,
3190 1860, 1850, 1866, 1865, 1868, 1851, 1857, 1853, 1865, 1872,
3191 1857, 1860, 1869, 1869, 1861, 1870, 1862, 1864, 1871, 1877,
3192 1875, 1877, 1860, 1874, 1878, 1876, 1879, 1860, 1880, 0,
3193 0, 1879, 1881, 1871, 1866, 1865, 1868, 1870, 1874, 1869,
3194
3195 1876, 1872, 1870, 1875, 1886, 1871, 1877, 1875, 1882, 1884,
3196 1874, 1889, 1876, 1879, 1881, 1888, 1878, 1885, 1890, 1881,
3197 1880, 1891, 1892, 1882, 1884, 1885, 1886, 1893, 1895, 1892,
3198 1894, 1886, 0, 1896, 1897, 1882, 1884, 1889, 1889, 1888,
3199 1899, 1901, 1888, 1902, 1885, 1890, 1903, 1907, 1891, 1892,
3200 1895, 1894, 1897, 1908, 1896, 1895, 1905, 1894, 1902, 1893,
3201 1896, 1897, 1899, 1906, 1909, 1901, 1910, 1899, 1901, 1907,
3202 1902, 1905, 1903, 1903, 1907, 1911, 1912, 1913, 1906, 1914,
3203 1908, 1915, 1909, 1905, 1917, 1916, 1914, 1918, 1910, 1920,
3204 1906, 1909, 1917, 1910, 1916, 1919, 1921, 1911, 1922, 1915,
3205
3206 1912, 0, 1911, 1912, 1913, 1921, 1914, 1924, 1915, 1923,
3207 1918, 1917, 1916, 1926, 1918, 1928, 1922, 1919, 1923, 1927,
3208 1924, 1920, 1919, 1921, 1926, 1922, 1930, 1931, 1927, 1932,
3209 1929, 1938, 1933, 1928, 1924, 1935, 1923, 1929, 1933, 1926,
3210 1926, 1934, 1928, 1940, 1932, 1931, 1927, 1946, 1944, 1935,
3211 1941, 1926, 1930, 1930, 1931, 1942, 1932, 1929, 1938, 1933,
3212 1944, 1941, 1935, 1934, 1947, 1945, 1942, 1940, 1934, 1948,
3213 1940, 1950, 1949, 0, 1947, 1944, 1953, 1941, 1945, 1946,
3214 1954, 1951, 1942, 1956, 1957, 1958, 1962, 1956, 1960, 1959,
3215 0, 1947, 1945, 1960, 1961, 1948, 1948, 1949, 1950, 1949,
3216
3217 1951, 1961, 1963, 1953, 1965, 1957, 1954, 1954, 1951, 1959,
3218 1956, 1957, 1962, 1962, 1967, 1960, 1959, 1958, 1964, 1965,
3219 1963, 1961, 1966, 1968, 1964, 1973, 1967, 1969, 1969, 1963,
3220 1970, 1965, 1973, 1975, 1971, 1974, 1976, 1966, 1968, 1974,
3221 1979, 1967, 1970, 1980, 1977, 1964, 1983, 1971, 1975, 1966,
3222 1968, 1978, 1973, 1977, 1969, 1971, 1984, 1970, 1978, 1981,
3223 1975, 1971, 1974, 1976, 1979, 1980, 1981, 1979, 1983, 1986,
3224 1980, 1977, 1987, 1983, 1971, 1985, 1989, 1992, 1978, 1991,
3225 1994, 1984, 1993, 1984, 1985, 1995, 1981, 0, 1991, 1997,
3226 1999, 1986, 1987, 1995, 1989, 1992, 1986, 1993, 1998, 1987,
3227
3228 2000, 2000, 1985, 1989, 1992, 1994, 1991, 1994, 2001, 1993,
3229 2003, 1998, 1995, 2002, 1997, 2005, 1997, 1999, 2007, 2004,
3230 2009, 2006, 2008, 2018, 2005, 1998, 2010, 2000, 2006, 0,
3231 2001, 2012, 2003, 2014, 2009, 2001, 2015, 2003, 2002, 2012,
3232 2002, 2004, 2005, 2013, 2008, 2010, 2004, 2009, 2006, 2008,
3233 2007, 2019, 2016, 2010, 2017, 2018, 2013, 2020, 2012, 2021,
3234 2014, 2017, 2015, 2015, 2016, 2023, 2022, 0, 2021, 2025,
3235 2013, 2026, 2024, 2019, 2022, 0, 2027, 2033, 2019, 2016,
3236 2028, 2017, 2020, 2033, 2020, 2022, 2021, 2024, 2032, 0,
3237 2039, 2029, 2023, 2022, 2027, 2025, 2025, 2026, 2026, 2024,
3238
3239 2029, 2022, 2028, 2027, 2033, 2031, 2034, 2028, 2031, 2035,
3240 2036, 2034, 2039, 2032, 2038, 2032, 2042, 2039, 2029, 2043,
3241 2040, 2044, 2045, 2031, 2046, 2036, 2043, 2035, 2068, 2038,
3242 2042, 2047, 2031, 2046, 2048, 2031, 2035, 2036, 2034, 2044,
3243 2047, 2038, 2040, 2042, 2049, 2048, 2043, 2040, 2044, 2045,
3244 2050, 2046, 2052, 2053, 2055, 2068, 2054, 2049, 2047, 0,
3245 2056, 2048, 2050, 2054, 2062, 2060, 2057, 2052, 2053, 2063,
3246 2066, 2049, 2066, 2063, 2070, 2077, 2055, 2050, 2060, 2052,
3247 2053, 2055, 2056, 2054, 2057, 2062, 2060, 2056, 2064, 2065,
3248 2067, 2062, 2060, 2057, 2069, 2071, 2063, 2066, 2065, 0,
3249
3250 2064, 2070, 2072, 2071, 2073, 2060, 2074, 2077, 2067, 2075,
3251 2078, 2079, 2069, 2076, 2075, 2064, 2065, 2067, 2076, 2084,
3252 2074, 2069, 2071, 2081, 2080, 2072, 2073, 2085, 0, 2072,
3253 2081, 2073, 2087, 2074, 2088, 2079, 2075, 2086, 2079, 2090,
3254 2091, 2085, 2078, 2080, 0, 2076, 2084, 2089, 2090, 2092,
3255 2081, 2080, 2085, 2085, 2085, 2086, 2093, 2094, 2095, 2087,
3256 2088, 2088, 2089, 2096, 2086, 2098, 2090, 2100, 2085, 2104,
3257 2099, 2092, 2091, 2103, 2089, 2103, 2092, 2099, 2109, 2085,
3258 2095, 2107, 2093, 2093, 2094, 2095, 2101, 2106, 2098, 2109,
3259 2100, 2104, 2098, 2101, 2100, 2096, 2104, 2099, 2105, 2106,
3260
3261 2103, 2108, 2105, 2107, 2110, 2109, 2113, 2111, 2107, 2114,
3262 2108, 2110, 2112, 2101, 2106, 2115, 2116, 2112, 2117, 2117,
3263 2119, 2118, 0, 2122, 2121, 2105, 0, 2115, 2108, 2111,
3264 2118, 2110, 2114, 2113, 2111, 2119, 2114, 2122, 2116, 2112,
3265 2124, 2120, 2115, 2116, 2123, 2117, 2121, 2119, 2118, 2120,
3266 2122, 2121, 2127, 2123, 2126, 2128, 2130, 2129, 2131, 2130,
3267 2127, 2129, 2133, 2128, 2132, 2139, 2131, 2124, 2120, 2134,
3268 2132, 2123, 2140, 2126, 2136, 2134, 2138, 2133, 2139, 2127,
3269 2141, 2126, 2128, 2130, 2129, 2131, 2136, 2142, 2143, 2133,
3270 2138, 2132, 2139, 2140, 2144, 2145, 2134, 2148, 2146, 2140,
3271
3272 2149, 2136, 2147, 2138, 0, 2141, 2150, 2141, 2151, 2145,
3273 2143, 2146, 2153, 2156, 2142, 2143, 2147, 2154, 2144, 2157,
3274 2152, 2144, 2145, 2148, 2148, 2146, 2153, 2149, 2158, 2147,
3275 0, 2150, 2152, 2150, 2155, 2151, 2160, 2155, 2161, 2153,
3276 2156, 2162, 2163, 2154, 2154, 2161, 2157, 2152, 2162, 2164,
3277 2158, 2165, 2155, 2167, 2166, 2158, 2169, 2163, 2160, 2170,
3278 2171, 2155, 2166, 2160, 2155, 2161, 2168, 2172, 2162, 2163,
3279 2173, 2170, 2174, 2175, 2179, 2168, 2164, 2176, 2165, 2180,
3280 2167, 2166, 2171, 2169, 2177, 2174, 2170, 2171, 2182, 2183,
3281 2176, 2175, 2177, 2168, 2172, 2181, 2179, 2173, 2183, 2174,
3282
3283 2175, 2179, 2184, 2181, 2176, 2187, 2180, 2185, 0, 2186,
3284 2188, 2177, 2190, 2189, 2191, 2182, 2183, 2194, 2188, 2193,
3285 2190, 2194, 2181, 2184, 2186, 2189, 2193, 2196, 2197, 2184,
3286 2195, 2185, 2187, 0, 2185, 2186, 2186, 2188, 2199, 2190,
3287 2189, 2191, 2195, 2203, 2194, 2198, 2193, 2200, 2205, 2201,
3288 2196, 2186, 2255, 2198, 2196, 2197, 2204, 2195, 2206, 2200,
3289 2199, 2201, 2210, 2204, 2207, 2199, 2209, 2209, 2205, 2208,
3290 2203, 2206, 2198, 2207, 2200, 2205, 2201, 2211, 2208, 2255,
3291 2212, 2216, 2213, 2204, 2219, 2206, 2215, 0, 2210, 2210,
3292 2217, 2207, 2218, 2209, 2218, 2211, 2208, 2213, 2219, 2213,
3293
3294 2221, 2215, 2227, 2216, 2211, 2212, 2213, 2212, 2216, 2213,
3295 2220, 2219, 2217, 2215, 2222, 2222, 2220, 2217, 2224, 2218,
3296 2225, 2226, 2221, 2228, 2213, 2229, 2213, 2221, 2232, 2228,
3297 2232, 2230, 2231, 2226, 2227, 2233, 2234, 2220, 2235, 2239,
3298 2224, 2222, 2225, 2236, 2240, 2224, 2237, 2225, 2226, 2233,
3299 2228, 2238, 2239, 2230, 2231, 2232, 2235, 2229, 2230, 2231,
3300 2234, 2236, 2233, 2234, 2237, 2235, 2239, 2241, 2242, 2238,
3301 2236, 2246, 0, 2237, 2244, 2248, 2240, 2247, 2238, 2249,
3302 0, 2244, 2253, 2251, 0, 2251, 2250, 2249, 0, 2246,
3303 2251, 2242, 0, 2253, 2268, 2242, 2269, 2257, 2246, 2241,
3304
3305 2254, 2244, 2259, 2247, 2247, 2249, 2249, 2248, 2250, 2253,
3306 2251, 2254, 2251, 2250, 2249, 2257, 2256, 2259, 2262, 2260,
3307 2261, 2268, 2269, 2269, 2257, 2264, 2265, 2254, 2256, 2259,
3308 2260, 2266, 2261, 2262, 2271, 2267, 2272, 2273, 2266, 2274,
3309 2275, 2277, 0, 2256, 2284, 2262, 2260, 2261, 2265, 2264,
3310 2267, 2276, 2264, 2265, 2278, 0, 2279, 2281, 2266, 2273,
3311 2272, 2271, 2267, 2272, 2273, 2280, 2282, 2278, 2277, 2276,
3312 2281, 2274, 2275, 2283, 2282, 2285, 2284, 2290, 2276, 2286,
3313 2280, 2278, 2279, 2279, 2281, 2288, 2289, 2291, 2285, 2292,
3314 0, 2294, 2280, 2282, 2295, 2296, 0, 2293, 2294, 2283,
3315
3316 2283, 2286, 2285, 2299, 2290, 2297, 2286, 2292, 2288, 2291,
3317 2289, 2303, 2288, 2289, 2291, 2293, 2292, 2295, 2294, 2297,
3318 2300, 2295, 2296, 2302, 2293, 2299, 2301, 2300, 2304, 2305,
3319 2299, 2306, 2297, 2301, 2303, 2304, 2302, 2307, 2303, 2308,
3320 2311, 2309, 2314, 2317, 2310, 2331, 2318, 2300, 2308, 2309,
3321 2302, 2305, 2310, 2301, 2312, 2304, 2305, 2314, 2307, 2315,
3322 2312, 2316, 2311, 2306, 2307, 2318, 2308, 2311, 2309, 2314,
3323 2315, 2310, 2319, 2318, 2321, 2317, 2323, 2331, 2324, 0,
3324 2332, 2312, 2325, 2316, 2326, 2326, 2315, 2327, 2316, 2323,
3325 2333, 2337, 2321, 2330, 2334, 2332, 0, 2319, 0, 2319,
3326
3327 2349, 2321, 2341, 2323, 2324, 2324, 2325, 2332, 2345, 2325,
3328 2339, 2326, 2334, 2327, 2327, 2341, 2330, 2333, 2337, 2339,
3329 2330, 2334, 2342, 2346, 2346, 2347, 2348, 2349, 2351, 2341,
3330 2345, 2353, 2354, 2342, 2355, 2345, 0, 2339, 2356, 2361,
3331 2357, 2360, 2363, 2356, 2364, 2355, 2359, 2347, 2348, 2342,
3332 2346, 2368, 2347, 2348, 2359, 2351, 2360, 2369, 2354, 2354,
3333 2363, 2355, 2357, 2353, 2370, 2356, 2361, 2357, 2360, 2363,
3334 2365, 2366, 2370, 2359, 2373, 2374, 2364, 2371, 2368, 2365,
3335 0, 2369, 2380, 2366, 2369, 2375, 2371, 2376, 2377, 2378,
3336 0, 2370, 2379, 2382, 0, 2380, 2376, 2365, 2366, 2383,
3337
3338 2373, 2373, 2374, 2384, 2371, 2381, 2377, 2375, 2382, 2380,
3339 2384, 2378, 2375, 2385, 2376, 2377, 2378, 2379, 2381, 2379,
3340 2382, 2383, 2386, 2387, 2388, 2389, 2383, 2390, 2391, 2395,
3341 2384, 2392, 2381, 2393, 0, 2385, 2394, 2391, 2397, 2399,
3342 2385, 0, 2390, 2401, 2395, 2397, 2396, 2402, 0, 2386,
3343 2387, 2388, 2389, 2392, 2390, 2391, 2395, 2398, 2392, 2393,
3344 2393, 2396, 2394, 2394, 2400, 2397, 2399, 2403, 2398, 2405,
3345 2401, 2404, 2400, 2396, 2402, 2406, 2411, 2408, 2407, 2412,
3346 2409, 2410, 0, 2403, 2398, 2407, 2404, 2409, 2410, 2405,
3347 2406, 2400, 2413, 2413, 2403, 2419, 2405, 2412, 2404, 2408,
3348
3349 2415, 0, 2406, 2411, 2408, 2407, 2412, 2409, 2410, 2414,
3350 2416, 2417, 0, 2416, 2415, 2418, 2414, 2420, 2425, 2413,
3351 2421, 2419, 2419, 2425, 2417, 2424, 2427, 2415, 2422, 2426,
3352 2418, 2431, 2421, 2426, 2424, 2420, 2414, 2416, 2417, 2429,
3353 2422, 2428, 2418, 2430, 2420, 2425, 2432, 2421, 2433, 0,
3354 2427, 2435, 2424, 2427, 2428, 2422, 2426, 2437, 2431, 2440,
3355 2438, 2429, 2444, 2439, 2441, 2430, 2429, 2440, 2428, 2438,
3356 2430, 2444, 0, 2432, 2433, 2433, 2441, 2435, 2435, 2439,
3357 2445, 2443, 2447, 2437, 2437, 2445, 2440, 2438, 2443, 2444,
3358 2439, 2441, 2446, 2449, 2448, 2450, 2451, 2452, 2455, 2446,
3359
3360 2447, 2448, 2450, 2453, 2456, 2451, 2452, 2445, 2443, 2447,
3361 2457, 2459, 2462, 2465, 2458, 2457, 2461, 2456, 2449, 2446,
3362 2449, 2448, 2450, 2451, 2452, 2455, 2463, 2464, 0, 2453,
3363 2453, 2456, 2458, 2465, 2461, 2463, 2464, 2457, 2459, 2462,
3364 2465, 2458, 2467, 2461, 2466, 2471, 2468, 2469, 2472, 2470,
3365 2476, 2467, 2473, 2463, 2464, 2468, 2466, 2470, 2469, 2473,
3366 2475, 2474, 2477, 2478, 0, 0, 2480, 2482, 0, 2467,
3367 2474, 2466, 2471, 2468, 2469, 2472, 2470, 2476, 2480, 2473,
3368 2482, 2475, 2479, 2483, 2481, 2486, 2488, 2475, 2474, 2477,
3369 2484, 2479, 2481, 2480, 2482, 2478, 2485, 2484, 0, 2487,
3370
3371 2489, 2490, 2494, 2485, 2496, 2483, 2492, 2486, 2495, 2479,
3372 2483, 2481, 2486, 2488, 2492, 2497, 2495, 2484, 2498, 2496,
3373 2494, 2505, 2497, 2485, 2487, 2489, 2487, 2489, 2490, 2494,
3374 2499, 2496, 2503, 2492, 2504, 2495, 2500, 2499, 2506, 2503,
3375 2498, 2508, 2497, 2507, 2500, 2498, 2509, 2513, 2505, 2512,
3376 2506, 2519, 2507, 2514, 2511, 2517, 0, 2499, 2504, 2503,
3377 2521, 2504, 2517, 2500, 2524, 2506, 2511, 2514, 2508, 2509,
3378 2507, 2516, 2512, 2509, 2513, 2521, 2512, 2518, 2519, 2522,
3379 2514, 2511, 2517, 2516, 2518, 2523, 2525, 2521, 2526, 2527,
3380 2529, 2524, 2528, 2531, 2525, 2536, 2538, 2522, 2516, 2530,
3381
3382 2537, 2529, 2543, 0, 2518, 2537, 2522, 2541, 2523, 2546,
3383 2528, 2527, 2523, 2525, 2530, 2526, 2527, 2529, 2539, 2528,
3384 2531, 2536, 2536, 2538, 2540, 2541, 2530, 2537, 2542, 2543,
3385 2544, 2549, 2539, 2553, 2541, 2551, 2546, 2550, 2540, 2552,
3386 0, 2554, 2544, 0, 2556, 2539, 2542, 2555, 2551, 2554,
3387 2559, 2540, 2553, 2549, 2560, 2542, 2562, 2544, 2549, 2550,
3388 2553, 2552, 2551, 2556, 2550, 2555, 2552, 2558, 2554, 2563,
3389 2561, 2556, 2559, 2564, 2555, 2565, 2560, 2559, 2567, 2558,
3390 2568, 2560, 2561, 2562, 2566, 2569, 2570, 2567, 2571, 2568,
3391 0, 2572, 2574, 0, 2558, 2565, 2563, 2561, 2573, 2575,
3392
3393 2564, 2579, 2565, 2572, 0, 2567, 2566, 2568, 2570, 2578,
3394 2580, 2566, 2586, 2570, 2571, 2571, 2581, 2569, 2572, 2574,
3395 2573, 2581, 2582, 2578, 2583, 2573, 2575, 2584, 2579, 2585,
3396 2587, 2589, 2588, 2592, 2580, 2586, 2578, 2580, 2593, 2586,
3397 2584, 2590, 2594, 2589, 2582, 2598, 2583, 2591, 2581, 2582,
3398 2588, 2583, 2587, 2591, 2584, 2597, 2595, 2587, 2589, 2588,
3399 2590, 2585, 2599, 2601, 2594, 2592, 2603, 2598, 2590, 2594,
3400 2593, 2595, 2598, 2604, 2591, 2597, 2605, 2606, 2601, 2607,
3401 2608, 2610, 2597, 2595, 2609, 2605, 2599, 2613, 2603, 2599,
3402 2601, 2606, 2614, 2603, 2615, 2604, 2613, 2607, 2608, 2610,
3403
3404 2604, 2618, 2621, 2605, 2606, 2619, 2607, 2608, 2610, 2618,
3405 2609, 2609, 2619, 2622, 2613, 2615, 2624, 2620, 2623, 2625,
3406 2626, 2615, 2627, 2629, 2614, 2620, 2623, 2633, 2618, 2621,
3407 2627, 2625, 2619, 2622, 2624, 2629, 2632, 2634, 2635, 2634,
3408 2622, 2631, 2636, 2624, 2620, 2623, 2625, 2626, 2631, 2627,
3409 2629, 2637, 2638, 2639, 2633, 2640, 0, 2642, 2645, 2632,
3410 2646, 2651, 2643, 2632, 2634, 2649, 2647, 2652, 2631, 2654,
3411 2635, 2658, 2639, 2646, 2636, 2642, 2643, 2640, 2647, 2638,
3412 2639, 2645, 2640, 2637, 2642, 2645, 2650, 2646, 2651, 2643,
3413 2656, 2649, 2649, 2647, 2652, 2650, 2654, 2655, 2658, 2660,
3414
3415 2661, 2662, 2663, 2665, 0, 2666, 2660, 2663, 2668, 2669,
3416 2665, 0, 2656, 2650, 2670, 2671, 2662, 2656, 2675, 0,
3417 2655, 2676, 2661, 2677, 2655, 2675, 2660, 2661, 2662, 2671,
3418 2665, 2666, 2666, 2678, 2663, 2668, 2669, 2673, 2670, 2679,
3419 2680, 2670, 2671, 2681, 2682, 2675, 2673, 2685, 2676, 2677,
3420 2677, 2679, 2683, 2682, 2684, 2686, 2690, 2681, 2691, 2695,
3421 2678, 2690, 2691, 2694, 2673, 2683, 2679, 2680, 2692, 2693,
3422 2681, 2682, 2698, 0, 2685, 2692, 2693, 2697, 2686, 2683,
3423 2701, 2696, 2686, 2696, 2694, 2691, 2684, 2703, 2690, 2704,
3424 2694, 2695, 2706, 2707, 2706, 2692, 2693, 2708, 0, 2698,
3425
3426 2697, 2711, 2701, 2710, 2697, 2713, 2703, 2701, 2696, 2714,
3427 2711, 2709, 2709, 2704, 2703, 2712, 2704, 2707, 2713, 2706,
3428 2707, 2709, 2712, 2708, 2708, 2710, 2716, 2715, 2711, 2718,
3429 2710, 2717, 2713, 2719, 2716, 2723, 2714, 2718, 2709, 2709,
3430 2715, 2720, 2712, 2721, 2717, 2724, 2720, 2722, 2721, 0,
3431 2716, 2725, 2719, 2716, 2715, 2722, 2718, 2726, 2717, 2727,
3432 2719, 2716, 2723, 2730, 0, 2728, 2729, 2731, 2731, 2732,
3433 2730, 2724, 2724, 2720, 2722, 2721, 2728, 2725, 2725, 2733,
3434 2734, 2735, 2736, 2726, 2726, 2727, 2727, 2733, 2729, 2736,
3435 2730, 2732, 2728, 2729, 2731, 2739, 2732, 2737, 2740, 2735,
3436
3437 0, 2742, 2734, 2741, 2737, 2744, 2733, 2734, 2735, 2736,
3438 2742, 2745, 2746, 2747, 2749, 2750, 2751, 2754, 2752, 2755,
3439 0, 0, 2739, 0, 2737, 2740, 2754, 2741, 2742, 2756,
3440 2741, 2745, 2744, 2750, 2751, 2747, 2752, 2757, 2745, 2746,
3441 2747, 2749, 2750, 2751, 2754, 2752, 2755, 2758, 2759, 2760,
3442 2761, 2766, 2756, 2759, 0, 2757, 2756, 2767, 2762, 2758,
3443 2769, 2772, 2770, 2760, 2757, 2771, 0, 2771, 2761, 0,
3444 2772, 2775, 2774, 2766, 2758, 2770, 2760, 2761, 2766, 2779,
3445 2759, 2762, 2781, 0, 2767, 2762, 2775, 2769, 2772, 2770,
3446 2774, 2778, 2771, 2778, 2780, 2783, 2785, 2779, 2775, 2774,
3447
3448 0, 2780, 2785, 2787, 2788, 2795, 2779, 2789, 0, 2790,
3449 2783, 0, 2793, 2792, 2781, 2793, 2796, 2797, 2778, 2798,
3450 2800, 2780, 2783, 2785, 0, 2787, 2788, 2790, 2800, 2801,
3451 2787, 2788, 2795, 2789, 2789, 2792, 2790, 2798, 2793, 2793,
3452 2792, 2799, 2793, 2796, 2797, 2803, 2798, 2800, 2799, 2804,
3453 0, 2801, 2805, 2806, 2807, 2808, 2801, 2811, 2809, 2812,
3454 2813, 2810, 2813, 2807, 2809, 2814, 2811, 2816, 2799, 0,
3455 2808, 2804, 2819, 2817, 2805, 2818, 2804, 2803, 2820, 2805,
3456 2806, 2807, 2808, 2810, 2811, 2809, 2820, 2813, 2810, 2821,
3457 2816, 2812, 2814, 2826, 2816, 2817, 2822, 2818, 2819, 2819,
3458
3459 2817, 2821, 2818, 2824, 2828, 2820, 2830, 2829, 2822, 2831,
3460 2824, 2832, 0, 2834, 2840, 2835, 2821, 2833, 2828, 2836,
3461 2826, 2829, 2832, 2822, 0, 2833, 0, 2831, 2844, 2830,
3462 2824, 2828, 2834, 2830, 2829, 2837, 2831, 2835, 2832, 2838,
3463 2834, 2840, 2835, 2841, 2833, 2836, 2836, 2845, 2838, 2839,
3464 2839, 2841, 2847, 2837, 2849, 2844, 2851, 2852, 2847, 2856,
3465 2853, 0, 2837, 2854, 2862, 2857, 2838, 2851, 2852, 2858,
3466 2841, 2853, 2857, 2858, 2845, 2861, 2839, 2862, 2864, 2847,
3467 2859, 2849, 2868, 2851, 2852, 2854, 2856, 2853, 2859, 2863,
3468 2854, 2862, 2857, 2867, 2870, 2869, 2858, 2863, 2871, 2870,
3469
3470 2867, 2861, 2861, 2872, 2873, 2864, 2876, 2859, 2874, 2878,
3471 2875, 2873, 2877, 2880, 2868, 2879, 2863, 2869, 2882, 2877,
3472 2867, 2870, 2869, 2879, 2876, 2871, 2875, 2874, 2880, 2881,
3473 2872, 2873, 2888, 2876, 2883, 2874, 2881, 2875, 2884, 2877,
3474 2880, 2878, 2879, 2889, 2890, 2882, 2891, 2888, 2892, 2893,
3475 2889, 2894, 2896, 2897, 2874, 2898, 2881, 2900, 2883, 2888,
3476 2894, 2883, 0, 2899, 2884, 2884, 0, 2902, 0, 0,
3477 2889, 2899, 2892, 2891, 2896, 2892, 2890, 2898, 2894, 2896,
3478 2897, 2893, 2898, 2901, 2901, 2904, 2905, 2907, 2908, 2900,
3479 2899, 2909, 2910, 2901, 2902, 2905, 2906, 2913, 2906, 2909,
3480
3481 2904, 2907, 2911, 2910, 2914, 2915, 2917, 2918, 2916, 2919,
3482 2901, 2901, 2904, 2905, 2907, 2908, 2920, 2923, 2909, 2910,
3483 2911, 2916, 0, 2906, 2913, 2921, 2924, 2915, 2917, 2911,
3484 2926, 2914, 2915, 2917, 2918, 2916, 2919, 2922, 2922, 2921,
3485 2931, 2932, 2929, 2920, 2934, 2931, 2932, 2936, 2924, 2923,
3486 2929, 2933, 2921, 2924, 2938, 2939, 2933, 2926, 2940, 2937,
3487 2941, 2938, 2943, 2949, 2922, 2951, 2953, 2931, 2932, 2929,
3488 2934, 2934, 2937, 2939, 2936, 2946, 2944, 2952, 2933, 2953,
3489 2945, 2938, 2939, 2944, 2954, 2940, 2937, 2941, 2945, 0,
3490 2949, 2955, 2951, 2953, 2943, 2956, 2957, 2946, 2958, 2952,
3491
3492 2963, 2960, 2946, 2944, 2952, 2961, 2955, 2945, 2960, 2962,
3493 2966, 2967, 2961, 2964, 2956, 2963, 2954, 2968, 2955, 2967,
3494 2958, 2971, 2956, 2957, 2968, 2958, 2969, 2963, 2960, 2966,
3495 2971, 2962, 2961, 2969, 2964, 2972, 2962, 2966, 2967, 2974,
3496 2964, 2973, 2973, 2975, 2968, 2974, 2972, 2978, 2971, 2977,
3497 2979, 2973, 2982, 2969, 2978, 0, 2980, 2983, 2984, 2982,
3498 2987, 2988, 2972, 2989, 2993, 2975, 2974, 2994, 2973, 2973,
3499 2975, 2977, 2984, 0, 2978, 2996, 2977, 2998, 2980, 2982,
3500 3002, 2983, 2979, 2980, 2983, 2984, 2989, 2987, 2988, 2994,
3501 2989, 2993, 2995, 3004, 2994, 2999, 2999, 3000, 3000, 0,
3502
3503 2995, 3005, 2996, 3002, 2998, 3001, 3001, 3002, 3006, 3009,
3504 3005, 3010, 3012, 3016, 3018, 3011, 3009, 3019, 3010, 2995,
3505 3004, 3006, 3017, 3015, 2999, 3015, 3000, 3023, 3005, 3019,
3506 3022, 3024, 3018, 3016, 3001, 3006, 3009, 3011, 3010, 3012,
3507 3016, 3018, 3011, 3021, 3019, 3017, 3025, 3026, 3022, 3017,
3508 3015, 3029, 3021, 3023, 3023, 3027, 3029, 3022, 3024, 3026,
3509 3028, 3030, 3031, 3028, 3031, 3033, 3038, 3032, 3036, 3034,
3510 3021, 3033, 3037, 3025, 3026, 3035, 3036, 3027, 3028, 3032,
3511 3039, 3040, 3027, 3029, 3041, 3046, 3048, 3028, 3042, 3031,
3512 3028, 3034, 3033, 3030, 3032, 3036, 3034, 3035, 3038, 3037,
3513
3514 3042, 3039, 3035, 3043, 3049, 3052, 3053, 3039, 3040, 3054,
3515 3055, 3041, 3046, 3048, 3056, 3042, 3057, 3058, 3061, 3063,
3516 3060, 3062, 3049, 0, 3067, 3043, 0, 0, 3064, 0,
3517 3043, 3049, 3052, 3053, 3063, 3064, 3054, 3055, 3060, 3062,
3518 3068, 3056, 3066, 3057, 3058, 3061, 3063, 3060, 3062, 3069,
3519 3066, 3067, 3068, 3070, 3072, 3064, 3071, 3073, 3078, 3078,
3520 3084, 3076, 3077, 3069, 3079, 3080, 3072, 3068, 3070, 3066,
3521 3076, 3082, 3083, 3084, 3080, 3085, 3069, 0, 3090, 0,
3522 3070, 3072, 3071, 3071, 3073, 3078, 3077, 3084, 3076, 3077,
3523 3079, 3079, 3080, 3086, 3087, 3082, 3088, 3085, 3082, 3090,
3524
3525 3091, 3086, 3085, 3087, 3083, 3090, 3094, 3088, 3098, 3098,
3526 3095, 3108, 3106, 3109, 3110, 3111, 3114, 3117, 3091, 0,
3527 3086, 3087, 3095, 3088, 3113, 3108, 3115, 3091, 3113, 3094,
3528 3117, 3120, 3121, 3094, 3114, 3098, 3106, 3095, 3108, 3106,
3529 3109, 3110, 3111, 3114, 3117, 3116, 3119, 3120, 3123, 3115,
3530 3119, 3113, 3116, 3115, 3121, 3122, 0, 3124, 3120, 3121,
3531 3123, 3126, 3125, 3131, 0, 3127, 3128, 3130, 3129, 3126,
3532 3129, 3132, 3116, 3119, 3127, 3123, 3125, 3128, 3133, 3130,
3533 3122, 3131, 3122, 3124, 3124, 3134, 3132, 3135, 3126, 3125,
3534 3131, 3134, 3127, 3128, 3130, 3129, 3136, 3137, 3132, 3142,
3535
3536 3133, 3143, 3141, 3136, 3144, 3133, 3142, 3145, 3147, 3135,
3537 3146, 3148, 3134, 3149, 3135, 3141, 3156, 3151, 3150, 3137,
3538 3152, 3149, 3144, 3136, 3137, 3150, 3142, 3153, 3143, 3141,
3539 3154, 3144, 3154, 3157, 3145, 3147, 3146, 3146, 3148, 3155,
3540 3149, 3151, 3152, 3158, 3151, 3150, 3157, 3152, 3156, 3153,
3541 3159, 3155, 3160, 3162, 3153, 3161, 3163, 3154, 3158, 3164,
3542 3157, 3165, 3161, 3166, 3168, 3170, 3155, 3173, 3175, 3165,
3543 3158, 3164, 3159, 3174, 3170, 3177, 3168, 3159, 3178, 3160,
3544 3162, 3176, 3161, 3163, 3179, 0, 3164, 3175, 3165, 3176,
3545 3166, 3168, 3170, 3181, 3173, 3175, 3182, 3179, 3180, 3174,
3546
3547 3174, 3181, 3183, 3185, 3191, 3192, 3189, 3177, 3176, 3188,
3548 3178, 3179, 3180, 3189, 3194, 3188, 3195, 3191, 3182, 3196,
3549 3181, 3194, 3200, 3182, 3202, 3180, 3197, 3196, 3192, 3183,
3550 3185, 3191, 3192, 3189, 3198, 3201, 3188, 3199, 3195, 3208,
3551 3197, 3194, 3211, 3195, 3200, 3199, 3196, 3205, 3198, 3200,
3552 3206, 3202, 3207, 3197, 3205, 3210, 3209, 3201, 3212, 3206,
3553 3207, 3198, 3201, 3215, 3199, 0, 3208, 3213, 3211, 3211,
3554 3214, 3215, 3216, 3218, 3205, 3220, 3219, 3206, 3209, 3207,
3555 3212, 3224, 3222, 3209, 3227, 3212, 3231, 3210, 3223, 3213,
3556 3215, 3225, 3214, 3229, 3213, 3233, 3223, 3214, 3219, 3225,
3557
3558 3218, 3224, 3220, 3219, 3216, 3222, 3226, 3229, 3224, 3222,
3559 3235, 3228, 3231, 3231, 3226, 3223, 3227, 3236, 3225, 3228,
3560 3229, 3234, 3233, 3237, 3234, 3236, 3238, 0, 3239, 3241,
3561 3240, 3237, 3235, 3226, 3243, 3243, 3244, 3235, 3228, 3234,
3562 3238, 3245, 3248, 3241, 3236, 3246, 0, 3247, 3234, 3245,
3563 3237, 3234, 3240, 3238, 3239, 3239, 3241, 3240, 3249, 3250,
3564 3251, 3243, 3244, 3244, 3248, 3253, 3252, 3250, 3245, 3248,
3565 3254, 3246, 3246, 3247, 3247, 3255, 3256, 3258, 3249, 3261,
3566 0, 3257, 0, 3259, 3270, 3249, 3250, 3251, 3252, 3257,
3567 3253, 3259, 3253, 3252, 3264, 3255, 3256, 3254, 3265, 3258,
3568
3569 3268, 3262, 3255, 3256, 3258, 3266, 3261, 3267, 3257, 3262,
3570 3259, 3270, 3273, 3266, 3271, 3267, 3264, 3274, 3277, 3278,
3571 3265, 3264, 3271, 3272, 3287, 3265, 3268, 3268, 3262, 3275,
3572 3281, 3272, 3266, 3279, 3267, 3285, 3284, 3288, 3273, 3273,
3573 3286, 3271, 0, 3285, 3274, 3277, 3278, 0, 3286, 3275,
3574 3272, 3287, 3281, 3279, 0, 0, 3275, 3281, 3284, 0,
3575 3279, 0, 3285, 3284, 3288, 0, 0, 3286, 3292, 3292,
3576 3292, 3292, 3292, 3292, 3292, 3293, 3293, 3293, 3293, 3293,
3577 3293, 3293, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3295,
3578 3295, 3295, 3295, 3295, 3295, 3295, 3296, 3296, 3296, 3296,
3579
3580 3296, 3296, 3296, 3297, 3297, 3297, 3297, 3297, 3297, 3297,
3581 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3300, 3300, 0,
3582 3300, 3300, 3300, 3300, 3301, 3301, 0, 0, 0, 3301,
3583 3301, 3302, 3302, 0, 0, 3302, 0, 3302, 3303, 0,
3584 0, 0, 0, 0, 3303, 3304, 3304, 0, 0, 0,
3585 3304, 3304, 3305, 0, 0, 0, 0, 0, 3305, 3306,
3586 3306, 0, 3306, 3306, 3306, 3306, 3307, 0, 0, 0,
3587 0, 0, 3307, 3308, 3308, 0, 0, 0, 3308, 3308,
3588 3309, 3309, 0, 3309, 3309, 3309, 3309, 3291, 3291, 3291,
3589 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
3590
3591 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
3592 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
3593 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
3594 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
3595 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
3596 3291, 3291, 3291, 3291
2627 27, 94, 27, 27, 35, 31, 93, 31, 36, 145,
2628 35, 85, 36, 27, 35, 195, 44, 161, 161, 42,
2629
2630 44, 42, 35, 35, 44, 70, 36, 80, 36, 93,
2631 42, 35, 75, 93, 36, 36, 42, 35, 92, 36,
2632 74, 35, 44, 44, 43, 42, 42, 44, 42, 168,
2633 168, 44, 68, 36, 43, 36, 38, 42, 43, 43,
2634 38, 95, 92, 42, 38, 92, 219, 43, 63, 111,
2635 38, 43, 73, 38, 73, 73, 95, 73, 111, 97,
2636 38, 43, 38, 38, 104, 43, 43, 38, 95, 104,
2637 79, 38, 79, 79, 58, 79, 111, 38, 219, 86,
2638 38, 86, 86, 97, 86, 222, 97, 38, 40, 944,
2639 86, 104, 40, 89, 96, 89, 89, 112, 89, 98,
2640
2641 57, 96, 40, 40, 89, 40, 112, 103, 103, 106,
2642 105, 52, 98, 47, 40, 40, 103, 222, 105, 40,
2643 944, 96, 18, 98, 112, 137, 98, 106, 17, 40,
2644 40, 89, 40, 41, 103, 103, 41, 105, 102, 98,
2645 107, 106, 109, 41, 102, 108, 102, 41, 41, 109,
2646 224, 137, 137, 107, 106, 41, 113, 0, 108, 102,
2647 41, 114, 0, 41, 115, 102, 118, 107, 114, 109,
2648 41, 102, 108, 102, 41, 41, 110, 110, 117, 113,
2649 116, 117, 224, 113, 110, 126, 115, 0, 114, 119,
2650 118, 115, 110, 116, 117, 117, 0, 119, 118, 126,
2651
2652 123, 0, 117, 110, 110, 117, 120, 116, 117, 124,
2653 121, 110, 126, 123, 121, 122, 119, 118, 125, 127,
2654 122, 117, 117, 122, 130, 128, 120, 123, 120, 146,
2655 121, 130, 124, 120, 121, 129, 124, 121, 125, 127,
2656 131, 121, 122, 128, 146, 125, 127, 122, 133, 129,
2657 132, 130, 128, 120, 135, 134, 146, 121, 135, 132,
2658 0, 136, 129, 131, 134, 138, 140, 131, 136, 141,
2659 141, 133, 138, 0, 139, 133, 135, 132, 140, 142,
2660 143, 135, 134, 139, 144, 135, 0, 142, 136, 139,
2661 0, 143, 138, 140, 148, 143, 141, 139, 144, 0,
2662
2663 147, 139, 149, 151, 143, 148, 142, 143, 152, 151,
2664 139, 144, 155, 149, 148, 150, 139, 147, 143, 152,
2665 147, 148, 143, 150, 153, 154, 147, 147, 156, 149,
2666 151, 158, 148, 153, 155, 152, 182, 157, 173, 155,
2667 154, 159, 150, 156, 147, 153, 157, 147, 182, 153,
2668 0, 153, 154, 158, 159, 156, 178, 178, 158, 0,
2669 153, 0, 173, 182, 157, 173, 0, 179, 159, 0,
2670 0, 165, 153, 165, 165, 170, 165, 170, 170, 171,
2671 170, 171, 171, 175, 171, 175, 175, 180, 175, 179,
2672 0, 181, 0, 184, 179, 183, 185, 186, 187, 188,
2673
2674 181, 180, 183, 0, 189, 186, 227, 0, 0, 184,
2675 187, 189, 190, 193, 183, 185, 194, 171, 181, 180,
2676 184, 188, 183, 185, 186, 187, 188, 191, 180, 183,
2677 190, 189, 229, 191, 192, 193, 192, 196, 227, 190,
2678 193, 196, 194, 194, 198, 200, 0, 199, 203, 0,
2679 204, 201, 205, 200, 202, 210, 206, 204, 196, 191,
2680 191, 192, 199, 203, 229, 196, 207, 210, 196, 0,
2681 198, 198, 200, 201, 199, 203, 202, 204, 201, 206,
2682 205, 202, 210, 206, 205, 196, 197, 208, 207, 213,
2683 212, 197, 209, 207, 217, 256, 197, 211, 208, 212,
2684
2685 211, 217, 197, 197, 214, 209, 216, 205, 0, 197,
2686 0, 213, 211, 197, 208, 220, 213, 212, 197, 209,
2687 256, 217, 256, 197, 211, 218, 214, 211, 216, 197,
2688 197, 214, 215, 216, 221, 215, 218, 215, 226, 225,
2689 223, 220, 220, 231, 226, 221, 228, 223, 0, 215,
2690 233, 215, 218, 225, 230, 0, 0, 0, 215, 215,
2691 234, 0, 215, 232, 215, 226, 221, 223, 228, 239,
2692 235, 225, 221, 228, 234, 231, 215, 230, 215, 236,
2693 225, 230, 233, 232, 237, 238, 236, 234, 239, 240,
2694 232, 235, 241, 244, 238, 242, 239, 235, 243, 238,
2695
2696 245, 251, 247, 240, 244, 237, 236, 245, 248, 249,
2697 243, 237, 238, 242, 241, 253, 240, 248, 246, 241,
2698 244, 238, 242, 246, 247, 243, 250, 245, 259, 247,
2699 255, 250, 249, 251, 254, 248, 249, 252, 252, 258,
2700 257, 254, 260, 261, 262, 264, 252, 253, 257, 0,
2701 246, 261, 255, 250, 263, 267, 265, 255, 264, 258,
2702 259, 254, 266, 268, 252, 252, 258, 257, 0, 263,
2703 261, 269, 264, 270, 260, 271, 262, 270, 267, 272,
2704 274, 263, 265, 265, 273, 0, 275, 267, 269, 266,
2705 276, 278, 273, 275, 272, 268, 269, 271, 269, 274,
2706
2707 270, 279, 271, 280, 277, 267, 272, 274, 277, 282,
2708 281, 273, 276, 275, 0, 269, 283, 276, 285, 287,
2709 289, 284, 286, 278, 288, 280, 288, 285, 283, 290,
2710 280, 277, 281, 279, 284, 286, 291, 281, 287, 292,
2711 0, 282, 295, 283, 296, 285, 287, 297, 284, 286,
2712 294, 288, 289, 290, 299, 298, 290, 300, 297, 294,
2713 303, 291, 304, 291, 305, 292, 292, 298, 295, 295,
2714 296, 296, 301, 302, 297, 304, 306, 294, 299, 307,
2715 300, 299, 298, 309, 300, 308, 311, 313, 0, 304,
2716 301, 302, 303, 310, 313, 312, 305, 314, 315, 301,
2717
2718 302, 306, 308, 306, 315, 317, 314, 316, 308, 309,
2719 309, 307, 308, 318, 313, 310, 320, 319, 311, 312,
2720 310, 316, 321, 326, 314, 315, 319, 312, 323, 308,
2721 321, 317, 317, 322, 316, 325, 324, 318, 326, 320,
2722 318, 327, 322, 320, 319, 324, 312, 328, 0, 321,
2723 326, 329, 325, 0, 323, 323, 0, 331, 332, 325,
2724 322, 0, 325, 324, 0, 333, 329, 332, 0, 335,
2725 0, 328, 336, 327, 328, 331, 338, 338, 329, 325,
2726 330, 341, 0, 330, 331, 332, 336, 333, 330, 330,
2727 330, 330, 333, 335, 337, 334, 335, 334, 330, 336,
2728
2729 339, 338, 340, 338, 338, 339, 0, 330, 341, 337,
2730 330, 347, 0, 334, 348, 330, 330, 330, 330, 334,
2731 342, 337, 334, 342, 334, 343, 340, 345, 346, 340,
2732 342, 349, 339, 344, 344, 371, 348, 343, 347, 350,
2733 334, 348, 352, 344, 351, 345, 346, 342, 353, 357,
2734 342, 354, 343, 362, 345, 346, 351, 349, 349, 354,
2735 344, 344, 371, 353, 352, 350, 350, 355, 356, 352,
2736 361, 351, 369, 0, 355, 353, 0, 358, 354, 358,
2737 356, 357, 360, 363, 365, 362, 365, 366, 358, 360,
2738 364, 411, 361, 370, 355, 356, 364, 361, 369, 369,
2739
2740 366, 368, 411, 358, 358, 363, 358, 0, 365, 360,
2741 363, 365, 364, 365, 366, 358, 367, 364, 411, 368,
2742 372, 373, 379, 364, 377, 370, 375, 373, 368, 367,
2743 393, 373, 367, 375, 367, 379, 377, 0, 378, 373,
2744 367, 0, 372, 367, 382, 373, 376, 372, 373, 379,
2745 378, 377, 381, 375, 373, 0, 367, 382, 373, 367,
2746 0, 367, 393, 384, 376, 378, 373, 374, 381, 374,
2747 376, 382, 386, 376, 385, 384, 381, 386, 387, 381,
2748 388, 402, 374, 0, 391, 374, 388, 374, 390, 374,
2749 384, 376, 385, 374, 374, 381, 374, 396, 389, 387,
2750
2751 390, 385, 391, 402, 386, 387, 389, 388, 402, 374,
2752 396, 391, 374, 392, 374, 390, 374, 383, 383, 394,
2753 394, 392, 0, 397, 396, 389, 395, 383, 404, 383,
2754 383, 383, 397, 395, 383, 0, 399, 401, 409, 403,
2755 392, 400, 383, 399, 383, 383, 394, 398, 400, 401,
2756 405, 403, 407, 395, 383, 397, 383, 383, 383, 397,
2757 404, 383, 408, 399, 401, 398, 403, 407, 400, 398,
2758 409, 406, 412, 430, 398, 408, 405, 405, 406, 407,
2759 410, 414, 410, 413, 413, 0, 415, 417, 414, 408,
2760 416, 418, 398, 0, 412, 422, 420, 415, 406, 412,
2761
2762 417, 416, 419, 419, 425, 430, 0, 410, 414, 421,
2763 0, 0, 413, 415, 417, 425, 418, 416, 418, 420,
2764 419, 422, 422, 420, 421, 423, 424, 419, 426, 419,
2765 419, 425, 421, 423, 0, 427, 421, 426, 424, 431,
2766 434, 432, 433, 428, 435, 444, 0, 419, 427, 0,
2767 0, 421, 423, 424, 428, 426, 428, 431, 434, 437,
2768 0, 428, 427, 432, 438, 433, 431, 434, 432, 433,
2769 428, 436, 444, 440, 443, 439, 435, 436, 441, 0,
2770 437, 428, 442, 428, 429, 441, 437, 438, 443, 446,
2771 445, 438, 429, 429, 448, 440, 429, 429, 436, 439,
2772
2773 440, 443, 439, 446, 447, 441, 429, 452, 442, 442,
2774 449, 429, 445, 450, 453, 451, 446, 445, 0, 429,
2775 429, 451, 459, 429, 429, 450, 448, 454, 455, 452,
2776 447, 447, 456, 449, 452, 454, 453, 449, 457, 456,
2777 450, 453, 451, 455, 460, 458, 459, 457, 461, 459,
2778 462, 463, 464, 454, 454, 455, 465, 0, 464, 456,
2779 458, 466, 454, 461, 468, 457, 466, 460, 470, 472,
2780 471, 460, 458, 463, 470, 461, 462, 462, 463, 464,
2781 473, 474, 465, 465, 476, 475, 473, 472, 466, 471,
2782 468, 468, 475, 481, 482, 470, 472, 471, 480, 476,
2783
2784 478, 479, 478, 474, 483, 480, 481, 473, 474, 478,
2785 479, 476, 475, 484, 485, 488, 487, 486, 491, 487,
2786 481, 489, 483, 0, 0, 480, 482, 478, 479, 478,
2787 486, 483, 493, 492, 489, 487, 485, 490, 494, 488,
2788 492, 485, 488, 487, 486, 484, 487, 496, 489, 490,
2789 491, 498, 495, 497, 499, 501, 493, 498, 497, 493,
2790 492, 494, 500, 502, 490, 495, 0, 501, 504, 496,
2791 494, 510, 503, 505, 496, 541, 504, 499, 498, 495,
2792 497, 499, 501, 503, 500, 502, 508, 505, 494, 500,
2793 502, 509, 0, 508, 510, 504, 511, 515, 510, 503,
2794
2795 505, 506, 513, 509, 511, 0, 506, 541, 506, 515,
2796 512, 0, 0, 508, 506, 0, 506, 516, 509, 506,
2797 506, 512, 518, 511, 515, 513, 506, 506, 506, 513,
2798 514, 522, 519, 506, 514, 506, 0, 512, 520, 516,
2799 518, 506, 519, 506, 516, 517, 506, 506, 517, 518,
2800 520, 521, 514, 506, 525, 522, 517, 514, 522, 523,
2801 524, 514, 521, 523, 519, 520, 526, 524, 526, 519,
2802 527, 528, 517, 529, 531, 517, 534, 530, 521, 532,
2803 525, 525, 531, 528, 532, 533, 523, 524, 529, 530,
2804 536, 535, 537, 526, 534, 542, 527, 527, 528, 535,
2805
2806 529, 531, 536, 534, 530, 539, 532, 533, 540, 543,
2807 542, 547, 533, 537, 545, 549, 544, 536, 535, 537,
2808 547, 543, 542, 539, 544, 546, 548, 545, 0, 549,
2809 550, 540, 539, 553, 0, 540, 543, 546, 547, 552,
2810 554, 545, 549, 544, 551, 556, 555, 551, 557, 548,
2811 0, 0, 546, 548, 558, 550, 559, 550, 552, 0,
2812 553, 555, 560, 557, 561, 565, 552, 567, 562, 559,
2813 565, 551, 554, 555, 560, 557, 568, 556, 558, 569,
2814 563, 558, 564, 559, 572, 566, 561, 563, 570, 560,
2815 563, 561, 562, 564, 567, 562, 571, 565, 563, 566,
2816
2817 573, 576, 574, 568, 575, 573, 580, 563, 574, 564,
2818 578, 569, 566, 577, 563, 570, 572, 563, 578, 575,
2819 579, 581, 582, 571, 585, 576, 582, 584, 576, 574,
2820 580, 575, 573, 580, 583, 577, 586, 578, 588, 579,
2821 577, 590, 583, 581, 587, 589, 0, 579, 581, 582,
2822 584, 592, 591, 587, 584, 593, 585, 592, 589, 586,
2823 588, 583, 594, 586, 591, 588, 596, 590, 590, 595,
2824 597, 587, 589, 594, 598, 599, 595, 593, 592, 591,
2825 599, 600, 593, 599, 599, 0, 601, 598, 0, 594,
2826 600, 602, 597, 603, 604, 605, 595, 597, 596, 599,
2827
2828 602, 598, 599, 607, 603, 609, 606, 599, 600, 610,
2829 599, 599, 601, 601, 611, 607, 604, 605, 602, 606,
2830 603, 604, 605, 612, 614, 613, 0, 610, 616, 618,
2831 607, 615, 0, 606, 617, 620, 610, 609, 611, 616,
2832 619, 611, 622, 617, 628, 612, 612, 613, 614, 618,
2833 612, 614, 613, 615, 619, 616, 618, 620, 615, 621,
2834 623, 617, 620, 624, 625, 626, 621, 619, 629, 622,
2835 627, 624, 612, 637, 630, 625, 628, 633, 623, 631,
2836 631, 637, 632, 626, 634, 627, 621, 623, 636, 629,
2837 624, 625, 626, 634, 635, 629, 638, 627, 630, 633,
2838
2839 637, 630, 639, 640, 633, 643, 632, 635, 631, 632,
2840 636, 634, 641, 644, 642, 636, 642, 645, 644, 646,
2841 648, 635, 656, 0, 639, 0, 0, 643, 638, 639,
2842 649, 645, 643, 646, 647, 640, 641, 650, 649, 641,
2843 651, 642, 653, 652, 645, 644, 646, 0, 647, 647,
2844 652, 654, 648, 660, 656, 650, 647, 649, 655, 657,
2845 659, 647, 651, 662, 650, 659, 664, 651, 653, 653,
2846 652, 654, 0, 655, 657, 647, 647, 658, 654, 660,
2847 660, 661, 655, 661, 721, 655, 657, 658, 662, 663,
2848 662, 664, 659, 664, 665, 669, 666, 663, 667, 658,
2849
2850 655, 668, 669, 665, 658, 666, 670, 667, 661, 668,
2851 671, 721, 672, 679, 658, 673, 663, 674, 0, 677,
2852 0, 665, 669, 666, 676, 667, 675, 673, 668, 674,
2853 672, 678, 676, 671, 677, 675, 680, 671, 670, 672,
2854 681, 684, 673, 678, 674, 679, 677, 690, 682, 680,
2855 685, 676, 683, 675, 686, 681, 682, 687, 678, 685,
2856 683, 688, 688, 680, 684, 686, 687, 681, 684, 690,
2857 688, 692, 689, 691, 690, 682, 696, 685, 693, 683,
2858 689, 686, 694, 695, 687, 698, 691, 728, 688, 688,
2859 734, 695, 696, 697, 701, 694, 700, 692, 692, 689,
2860
2861 691, 693, 699, 696, 700, 693, 697, 698, 701, 694,
2862 695, 702, 698, 699, 703, 704, 707, 705, 706, 728,
2863 697, 701, 734, 700, 710, 707, 708, 0, 0, 699,
2864 709, 702, 711, 713, 712, 704, 703, 710, 702, 705,
2865 706, 703, 704, 707, 705, 706, 708, 714, 709, 712,
2866 711, 710, 715, 708, 716, 713, 718, 709, 717, 711,
2867 713, 712, 722, 720, 719, 723, 725, 716, 718, 720,
2868 722, 714, 724, 729, 714, 715, 717, 719, 727, 715,
2869 729, 716, 736, 718, 725, 717, 727, 730, 722, 722,
2870 720, 719, 723, 725, 724, 733, 731, 722, 735, 724,
2871
2872 729, 732, 736, 732, 733, 727, 737, 0, 742, 736,
2873 730, 731, 739, 749, 730, 737, 738, 735, 738, 739,
2874 742, 745, 733, 731, 0, 735, 753, 0, 732, 0,
2875 0, 745, 748, 737, 749, 742, 751, 753, 752, 739,
2876 749, 0, 0, 738, 740, 754, 758, 740, 745, 755,
2877 748, 740, 0, 753, 740, 758, 752, 751, 756, 748,
2878 761, 740, 740, 751, 740, 752, 757, 759, 754, 740,
2879 760, 740, 754, 758, 740, 755, 755, 760, 740, 766,
2880 759, 740, 757, 763, 756, 756, 765, 783, 740, 740,
2881 764, 740, 761, 757, 759, 765, 764, 760, 762, 762,
2882
2883 767, 762, 766, 767, 762, 763, 766, 768, 773, 762,
2884 763, 769, 770, 765, 783, 762, 762, 764, 0, 772,
2885 770, 772, 776, 768, 762, 762, 762, 767, 762, 771,
2886 768, 762, 773, 769, 768, 773, 762, 775, 769, 770,
2887 774, 771, 762, 762, 778, 774, 772, 777, 776, 776,
2888 768, 779, 781, 780, 785, 0, 771, 775, 784, 777,
2889 782, 787, 786, 0, 775, 789, 778, 0, 791, 785,
2890 786, 778, 774, 789, 777, 780, 781, 779, 779, 781,
2891 780, 785, 782, 784, 787, 784, 788, 782, 787, 786,
2892 790, 792, 789, 788, 791, 791, 794, 793, 795, 796,
2893
2894 797, 798, 800, 792, 804, 797, 801, 795, 799, 790,
2895 793, 801, 803, 788, 796, 805, 807, 790, 792, 806,
2896 0, 0, 794, 794, 793, 795, 796, 797, 808, 800,
2897 799, 810, 809, 798, 803, 799, 804, 811, 801, 803,
2898 812, 806, 813, 815, 0, 814, 806, 805, 807, 818,
2899 810, 816, 808, 809, 814, 808, 820, 817, 810, 809,
2900 818, 813, 821, 822, 811, 815, 817, 812, 823, 813,
2901 815, 816, 814, 819, 824, 827, 818, 825, 816, 0,
2902 821, 819, 822, 820, 817, 825, 830, 828, 829, 821,
2903 822, 829, 831, 827, 832, 823, 834, 835, 833, 835,
2904
2905 819, 839, 827, 837, 825, 828, 824, 838, 830, 834,
2906 831, 836, 838, 830, 828, 829, 847, 837, 832, 831,
2907 833, 832, 840, 834, 835, 833, 842, 839, 839, 836,
2908 837, 848, 841, 843, 840, 850, 843, 844, 836, 838,
2909 841, 847, 845, 847, 842, 849, 844, 854, 851, 840,
2910 845, 849, 854, 842, 851, 856, 852, 850, 848, 841,
2911 843, 853, 850, 852, 844, 0, 845, 858, 853, 845,
2912 859, 855, 849, 856, 854, 851, 857, 845, 855, 859,
2913 857, 860, 856, 852, 861, 863, 862, 864, 853, 860,
2914 858, 869, 865, 867, 858, 864, 866, 859, 855, 868,
2915
2916 863, 0, 870, 857, 862, 865, 867, 871, 860, 870,
2917 0, 873, 863, 862, 864, 872, 861, 866, 869, 865,
2918 867, 868, 872, 866, 874, 871, 868, 875, 876, 870,
2919 873, 874, 875, 877, 871, 878, 876, 879, 873, 880,
2920 877, 881, 872, 882, 884, 886, 885, 0, 891, 892,
2921 883, 874, 880, 887, 875, 876, 882, 883, 890, 0,
2922 877, 887, 889, 893, 890, 0, 880, 878, 886, 879,
2923 882, 888, 886, 881, 891, 891, 884, 883, 885, 888,
2924 887, 892, 894, 895, 889, 890, 888, 893, 896, 889,
2925 893, 894, 897, 0, 898, 899, 900, 895, 888, 897,
2926
2927 901, 902, 903, 905, 899, 901, 888, 904, 905, 894,
2928 895, 0, 910, 902, 907, 910, 920, 906, 900, 897,
2929 896, 898, 899, 900, 906, 903, 913, 908, 902, 903,
2930 905, 914, 901, 904, 904, 908, 907, 911, 914, 910,
2931 913, 907, 915, 920, 906, 0, 0, 917, 915, 0,
2932 911, 0, 918, 913, 908, 919, 0, 921, 914, 921,
2933 0, 0, 922, 0, 911, 923, 0, 919, 924, 915,
2934 916, 925, 916, 917, 917, 918, 916, 923, 916, 918,
2935 0, 924, 919, 916, 921, 922, 927, 926, 916, 922,
2936 928, 927, 923, 925, 916, 924, 929, 916, 925, 916,
2937
2938 926, 930, 0, 916, 931, 916, 0, 933, 928, 929,
2939 916, 932, 935, 930, 926, 916, 931, 928, 927, 934,
2940 936, 932, 933, 929, 930, 935, 936, 938, 930, 937,
2941 939, 931, 941, 932, 933, 942, 940, 945, 932, 935,
2942 930, 934, 937, 943, 946, 938, 934, 936, 932, 946,
2943 948, 939, 947, 0, 938, 952, 937, 939, 940, 948,
2944 947, 950, 951, 940, 941, 954, 0, 942, 952, 945,
2945 943, 946, 961, 955, 0, 953, 950, 948, 0, 947,
2946 949, 0, 952, 957, 951, 949, 0, 949, 950, 951,
2947 953, 954, 954, 949, 956, 955, 957, 960, 949, 949,
2948
2949 955, 958, 953, 959, 961, 949, 949, 949, 960, 958,
2950 957, 959, 949, 956, 949, 962, 963, 967, 964, 971,
2951 949, 956, 965, 968, 960, 949, 949, 964, 958, 966,
2952 959, 963, 949, 965, 969, 972, 974, 962, 966, 973,
2953 975, 969, 962, 963, 967, 964, 968, 973, 976, 965,
2954 968, 971, 977, 983, 975, 980, 966, 978, 974, 972,
2955 981, 969, 972, 974, 982, 978, 973, 975, 984, 985,
2956 986, 0, 991, 980, 977, 982, 987, 985, 981, 977,
2957 976, 988, 980, 987, 978, 983, 984, 981, 992, 990,
2958 991, 982, 986, 989, 988, 984, 985, 986, 993, 991,
2959
2960 989, 994, 995, 987, 990, 999, 992, 0, 988, 0,
2961 997, 994, 1011, 1002, 1001, 992, 990, 1000, 999, 993,
2962 989, 997, 1001, 1004, 1000, 993, 1002, 1003, 994, 1005,
2963 1006, 1009, 999, 1012, 995, 1004, 1003, 997, 1011, 1011,
2964 1002, 1001, 1010, 1013, 1000, 0, 1020, 1014, 1015, 1020,
2965 1004, 1005, 1006, 1009, 1003, 1017, 1005, 1006, 1009, 1014,
2966 1010, 1013, 1015, 1018, 1021, 1012, 1017, 1022, 1018, 1010,
2967 1013, 1023, 1020, 1020, 1014, 1015, 1020, 1025, 1023, 1024,
2968 1022, 1027, 1017, 1026, 1028, 1029, 1025, 1030, 1021, 0,
2969 1024, 1021, 1029, 1027, 1022, 1018, 1032, 1026, 1023, 1031,
2970
2971 1033, 1035, 1037, 1036, 1025, 0, 1024, 1043, 1027, 1036,
2972 1026, 1031, 1029, 1033, 1038, 1040, 1028, 1041, 1032, 1030,
2973 1039, 1042, 1043, 1032, 1037, 1035, 1031, 1033, 1035, 1037,
2974 1036, 1039, 1045, 1040, 1043, 1046, 1038, 1047, 1048, 1041,
2975 1049, 1038, 1040, 1042, 1041, 1050, 1046, 1039, 1042, 1052,
2976 1057, 1051, 1054, 1045, 1053, 1058, 1059, 1055, 1047, 1045,
2977 1051, 1054, 1046, 1050, 1047, 1055, 1060, 1049, 1056, 1058,
2978 1048, 1064, 1050, 1052, 1057, 1056, 1052, 1057, 1051, 1054,
2979 1053, 1053, 1058, 1061, 1055, 1062, 1063, 1066, 1059, 1068,
2980 1067, 1070, 0, 1069, 0, 1056, 1066, 1067, 1060, 1075,
2981
2982 1073, 1071, 0, 1064, 1072, 1061, 1076, 1062, 1063, 1073,
2983 1061, 0, 1062, 1063, 1066, 1069, 1074, 1067, 1070, 1071,
2984 1069, 1068, 1072, 1075, 1074, 1077, 1075, 1073, 1071, 1078,
2985 1076, 1072, 1080, 1076, 1081, 1079, 1082, 1083, 1084, 1086,
2986 0, 1077, 1081, 1074, 1079, 1085, 1087, 1080, 1089, 1091,
2987 1084, 1078, 1077, 1092, 1087, 0, 1078, 1088, 1091, 1080,
2988 1097, 1081, 1079, 1089, 0, 1084, 1086, 1085, 1082, 1083,
2989 1088, 1092, 1085, 1087, 1093, 1089, 1091, 1094, 1096, 1094,
2990 1092, 1098, 1093, 1100, 1088, 1101, 1096, 1097, 1098, 1103,
2991 1105, 1102, 1106, 1107, 1108, 1104, 1100, 1101, 0, 1106,
2992
2993 0, 1093, 1110, 1109, 1094, 1096, 1102, 1111, 1098, 1112,
2994 1100, 1103, 1101, 1104, 1109, 1113, 1103, 1105, 1102, 1106,
2995 1114, 1115, 1104, 1116, 1110, 1107, 1108, 1119, 1113, 1110,
2996 1109, 1112, 1111, 1114, 1111, 1116, 1112, 1117, 1118, 1119,
2997 1122, 1120, 1113, 1115, 1123, 1117, 1124, 1114, 1115, 1120,
2998 1116, 1125, 1127, 1126, 1119, 1124, 0, 1123, 1118, 1127,
2999 1131, 1128, 1130, 1125, 1117, 1118, 1133, 1122, 1120, 1132,
3000 1128, 1123, 1128, 1124, 1126, 1128, 1136, 1135, 1125, 1127,
3001 1126, 1134, 0, 1128, 1137, 1130, 1131, 1131, 1128, 1130,
3002 1135, 1132, 1137, 1133, 1139, 1140, 1132, 1128, 1138, 1128,
3003
3004 1136, 1134, 1128, 1136, 1135, 1141, 1143, 1138, 1134, 1142,
3005 1144, 1137, 1139, 1141, 1145, 1148, 1149, 1140, 1146, 0,
3006 0, 1139, 1140, 1144, 1142, 1138, 1146, 1150, 1143, 1152,
3007 1145, 0, 1141, 1143, 1153, 1154, 1142, 1144, 1149, 1151,
3008 1155, 1145, 1148, 1149, 1160, 1146, 1151, 1156, 1158, 1150,
3009 1157, 1152, 1155, 1154, 1150, 1161, 1152, 1153, 1157, 1156,
3010 1159, 1153, 1154, 1158, 1160, 1162, 1151, 1155, 1165, 1166,
3011 1161, 1160, 1159, 1162, 1156, 1158, 1164, 1157, 1163, 1167,
3012 1169, 1166, 1161, 1168, 1163, 1164, 1167, 1159, 1170, 1165,
3013 1168, 1171, 1162, 1172, 1173, 1165, 1166, 1176, 1169, 1171,
3014
3015 1170, 1175, 1173, 1164, 1176, 1163, 1167, 1169, 1172, 1174,
3016 1168, 1174, 1178, 1175, 1179, 1170, 1180, 0, 1171, 1181,
3017 1172, 1173, 1183, 1182, 1176, 1184, 1179, 1185, 1175, 1180,
3018 1182, 1187, 1186, 1183, 1190, 1188, 1174, 1186, 1181, 1187,
3019 1195, 1179, 1185, 1180, 1178, 1189, 1181, 1184, 1188, 1183,
3020 1182, 1192, 1184, 0, 1185, 1194, 1193, 1196, 1187, 1189,
3021 1190, 1190, 1188, 1224, 1186, 1192, 1195, 1195, 0, 1198,
3022 1197, 1199, 1189, 1191, 1193, 1224, 1201, 1191, 1192, 1196,
3023 1191, 1191, 0, 1193, 1196, 1191, 1202, 1194, 1197, 1200,
3024 1224, 1191, 1202, 1199, 1203, 1191, 1206, 1197, 1199, 1191,
3025
3026 1191, 1198, 1201, 1201, 1191, 1206, 1207, 1191, 1191, 1209,
3027 0, 1200, 1191, 1202, 1210, 1204, 1200, 1204, 1191, 1205,
3028 1203, 1203, 1191, 1206, 1207, 1208, 1205, 1210, 1211, 1212,
3029 1213, 1209, 1208, 1207, 0, 0, 1209, 1211, 1214, 1204,
3030 1215, 1210, 1204, 1218, 1204, 1219, 1205, 1217, 0, 1220,
3031 1220, 0, 1208, 0, 0, 1211, 1218, 1225, 1223, 0,
3032 1214, 1212, 1213, 1215, 1221, 1214, 1225, 1215, 1216, 1217,
3033 1218, 1219, 1219, 1216, 1217, 1216, 1226, 1216, 1220, 1216,
3034 1221, 1223, 1227, 1228, 1225, 1223, 1216, 1227, 1229, 1230,
3035 1232, 1221, 1231, 1229, 1226, 1216, 1235, 1236, 1237, 1233,
3036
3037 1216, 1228, 1216, 1226, 1216, 1231, 1216, 1233, 1232, 1235,
3038 1228, 1230, 1234, 1238, 1227, 1229, 1230, 1232, 1239, 1231,
3039 1234, 1240, 1241, 1235, 1237, 1237, 1233, 1243, 1242, 1236,
3040 1246, 1239, 1238, 1244, 1245, 1241, 1245, 1247, 1248, 1234,
3041 1238, 1249, 1244, 1240, 1250, 1239, 1242, 1243, 1240, 1241,
3042 1248, 1252, 1246, 0, 1243, 1242, 1255, 1246, 1253, 1254,
3043 1244, 1245, 1256, 1257, 1247, 1248, 1258, 1254, 1249, 1250,
3044 1257, 1250, 1259, 1260, 1255, 1252, 1261, 1263, 1252, 1268,
3045 1253, 1262, 1261, 1255, 1264, 1253, 1254, 1262, 1265, 1256,
3046 1257, 1264, 1267, 1258, 1266, 1260, 1270, 1268, 1259, 1259,
3047
3048 1260, 1266, 1269, 1261, 1263, 1270, 1268, 1272, 1262, 1277,
3049 1273, 1264, 1265, 1274, 1267, 1265, 1276, 1275, 1284, 1267,
3050 1278, 1266, 1273, 1270, 1279, 1288, 1281, 1269, 1277, 1269,
3051 1275, 1272, 1280, 1282, 1272, 1274, 1277, 1273, 1276, 1284,
3052 1274, 1283, 1278, 1276, 1275, 1284, 1285, 1278, 1279, 1286,
3053 1283, 1279, 1281, 1281, 1280, 1282, 1289, 1288, 1290, 1280,
3054 1282, 1291, 1293, 1286, 1292, 1294, 1285, 1295, 1283, 1301,
3055 1293, 1296, 1298, 1285, 0, 1302, 1286, 1305, 1296, 1299,
3056 1290, 1294, 1292, 1300, 1298, 1290, 1299, 1300, 1289, 1293,
3057 1303, 1292, 1294, 1291, 1295, 0, 1307, 1308, 1296, 1298,
3058
3059 1310, 1301, 1306, 1307, 1308, 1309, 1299, 1302, 1306, 1305,
3060 1300, 1303, 1311, 1310, 1312, 1306, 1316, 1303, 1313, 1317,
3061 1309, 1311, 1315, 1307, 1308, 1313, 1314, 1310, 1314, 1306,
3062 1318, 1315, 1309, 1319, 1318, 1306, 1321, 1322, 1316, 1311,
3063 1312, 1312, 1322, 1316, 1321, 1313, 1317, 1323, 1324, 1315,
3064 1327, 1325, 1326, 1314, 1330, 1319, 1323, 1318, 1331, 1335,
3065 1319, 1328, 1327, 1321, 1328, 1326, 1324, 1332, 1329, 1322,
3066 1325, 1329, 1330, 1328, 1323, 1324, 1334, 1327, 1325, 1326,
3067 1332, 1330, 1335, 1331, 1336, 1331, 1335, 1337, 1328, 1338,
3068 1329, 1328, 1337, 1341, 1332, 1329, 1340, 1338, 1329, 1342,
3069
3070 1336, 1339, 1339, 1343, 0, 1340, 1344, 1345, 1334, 1348,
3071 1346, 1336, 1343, 1344, 1355, 1341, 1338, 1346, 1349, 1337,
3072 1341, 1342, 1348, 1340, 1351, 1352, 1342, 1349, 1339, 1345,
3073 1343, 1350, 1353, 1344, 1345, 1354, 1348, 1346, 1356, 1357,
3074 1350, 1353, 1358, 1354, 1359, 1349, 1355, 1357, 1352, 1360,
3075 1351, 1351, 1352, 1356, 1363, 1358, 1359, 1362, 1350, 1353,
3076 1361, 1360, 1354, 1364, 1365, 1356, 1357, 1367, 1361, 1358,
3077 1366, 1359, 1371, 1365, 1363, 1370, 1360, 1368, 1369, 1362,
3078 1372, 1363, 1370, 1373, 1362, 1364, 1375, 1361, 1366, 1368,
3079 1364, 1365, 1377, 1367, 1367, 1374, 1369, 1366, 1371, 1371,
3080
3081 1376, 1378, 1370, 1377, 1368, 1369, 1380, 1378, 1374, 1379,
3082 1381, 1382, 1372, 1375, 1383, 1373, 0, 0, 1384, 1377,
3083 1386, 1376, 1374, 1387, 1389, 1392, 1391, 1376, 1378, 0,
3084 1388, 1379, 1394, 1389, 1390, 1393, 1379, 1392, 1380, 1391,
3085 1383, 1383, 1381, 1382, 1384, 1384, 1387, 1386, 1388, 1390,
3086 1387, 1389, 1392, 1391, 1396, 1393, 1395, 1388, 1394, 1394,
3087 1397, 1390, 1393, 1395, 1398, 1400, 1399, 1401, 1402, 1411,
3088 1400, 1404, 1401, 1396, 1399, 1402, 1403, 1398, 1405, 1404,
3089 0, 1396, 1397, 1395, 1408, 1407, 1405, 1397, 1406, 1409,
3090 1414, 1398, 1408, 1399, 0, 1402, 1409, 1400, 1404, 1401,
3091
3092 1410, 1411, 1403, 1403, 1412, 1405, 1406, 1407, 1416, 1410,
3093 1415, 1408, 1407, 1413, 1413, 1406, 1409, 1417, 1415, 1425,
3094 1418, 1422, 1414, 0, 1419, 1420, 1412, 1410, 1418, 1416,
3095 1421, 1412, 1419, 1420, 1422, 1416, 1423, 1415, 1421, 1430,
3096 1413, 1424, 1423, 1426, 1429, 1425, 1425, 1418, 1422, 1417,
3097 1427, 1419, 1420, 1424, 1428, 1431, 1432, 1421, 1427, 1429,
3098 1434, 1433, 1428, 1423, 0, 1436, 1430, 1426, 1424, 1437,
3099 1426, 1429, 1435, 1437, 1434, 1440, 1439, 1427, 1432, 1436,
3100 1444, 1428, 1431, 1432, 1433, 1439, 1437, 1434, 1433, 1441,
3101 1435, 1442, 1436, 1443, 1437, 1445, 1437, 1440, 1442, 1435,
3102
3103 1437, 1441, 1440, 1439, 1443, 1446, 1449, 1444, 1450, 1447,
3104 0, 1448, 1457, 1437, 0, 1456, 1441, 1445, 1442, 1451,
3105 1443, 1447, 1445, 1452, 0, 1448, 1454, 1455, 1449, 1463,
3106 1452, 1450, 1453, 1449, 1455, 1450, 1447, 1446, 1448, 1457,
3107 1459, 1453, 1451, 1462, 1454, 1461, 1451, 1456, 1464, 1459,
3108 1452, 1461, 1467, 1454, 1455, 1463, 1463, 1465, 1469, 1453,
3109 1470, 0, 1471, 1472, 1465, 1462, 0, 1459, 1474, 1475,
3110 1462, 1477, 1461, 1471, 1472, 1476, 1475, 1479, 1480, 1467,
3111 1464, 1481, 1469, 1479, 1465, 1469, 1480, 1470, 1478, 1471,
3112 1472, 1483, 1474, 1476, 1482, 1474, 1475, 1477, 1477, 1488,
3113
3114 1478, 1484, 1476, 1481, 1479, 1480, 1488, 1482, 1481, 1489,
3115 1486, 1485, 1487, 1493, 1487, 1478, 1490, 1483, 1483, 1484,
3116 1485, 1482, 1486, 1491, 1492, 1493, 1488, 1494, 1484, 1490,
3117 1495, 1504, 1491, 1497, 1496, 1489, 1489, 1486, 1485, 1487,
3118 1493, 1496, 1498, 1490, 1500, 1505, 1492, 1498, 1499, 1507,
3119 1491, 1492, 1502, 1495, 1494, 1501, 1505, 1495, 1504, 1497,
3120 1497, 1496, 1507, 1501, 1499, 1508, 1508, 1500, 1506, 1498,
3121 1509, 1500, 1505, 1508, 1502, 1499, 1507, 1506, 1510, 1502,
3122 1510, 1511, 1501, 1509, 1512, 1515, 1516, 1513, 1517, 1514,
3123 0, 1518, 1508, 1508, 1513, 1506, 1514, 1509, 1518, 1519,
3124
3125 1520, 1521, 1522, 1523, 1516, 1510, 1512, 1511, 1511, 1522,
3126 1517, 1512, 1515, 1516, 1513, 1517, 1514, 1525, 1518, 1526,
3127 1527, 1528, 1520, 1530, 1519, 1532, 1519, 1520, 1527, 1522,
3128 1525, 1531, 1535, 1521, 1531, 1523, 1533, 1536, 0, 1538,
3129 1534, 1535, 1528, 1543, 1525, 1530, 1526, 1527, 1528, 1536,
3130 1530, 1532, 1532, 1534, 1537, 1540, 1545, 1544, 1531, 1535,
3131 1539, 1541, 1533, 1533, 1536, 1538, 1538, 1534, 1541, 1539,
3132 1540, 1542, 1545, 1547, 1542, 1543, 1551, 1552, 1537, 1544,
3133 1545, 1537, 1540, 1545, 1544, 1548, 1542, 1539, 1541, 1554,
3134 1549, 1547, 1549, 1553, 1550, 1542, 1555, 1558, 1542, 1545,
3135
3136 1547, 1542, 1556, 1551, 1557, 1560, 1559, 1548, 1562, 1552,
3137 1564, 1554, 1548, 1542, 1560, 1562, 1554, 1549, 1550, 1558,
3138 1559, 1550, 1555, 1555, 1558, 1553, 1561, 1563, 1556, 1556,
3139 1565, 1567, 1560, 1559, 1561, 1562, 1557, 1566, 1569, 1568,
3140 1570, 0, 1564, 1568, 1575, 1573, 1571, 1572, 1574, 1578,
3141 0, 1563, 1573, 1561, 1563, 1574, 1572, 1575, 1578, 1566,
3142 1569, 1580, 1565, 1567, 1566, 1569, 1568, 1570, 1571, 1576,
3143 1577, 1575, 1573, 1571, 1572, 1574, 1578, 1579, 1581, 1579,
3144 1584, 1582, 1576, 1577, 1580, 1585, 1587, 1586, 1580, 1582,
3145 1594, 0, 1588, 3053, 3053, 1584, 1576, 1577, 1589, 1588,
3146
3147 1585, 1586, 1591, 1581, 1579, 1581, 1590, 1584, 1582, 1589,
3148 1592, 1597, 1585, 1590, 1586, 1591, 1592, 1594, 1587, 1588,
3149 1595, 1596, 3053, 1598, 1599, 1589, 1597, 1595, 1600, 1591,
3150 1602, 1601, 1604, 1590, 1601, 1603, 1599, 1592, 1597, 1602,
3151 1605, 1600, 0, 1596, 1604, 1607, 1612, 1595, 1596, 1598,
3152 1598, 1599, 1629, 1603, 1613, 1600, 1607, 1602, 1601, 1604,
3153 1605, 1606, 1603, 1609, 1606, 1614, 1618, 1605, 1609, 1611,
3154 1612, 1611, 1607, 1612, 1615, 1609, 1616, 1621, 1617, 1606,
3155 1619, 1613, 0, 0, 1629, 1616, 1622, 1630, 1606, 1615,
3156 1609, 1606, 1614, 1618, 1619, 1609, 1611, 1625, 1620, 1621,
3157
3158 1624, 1615, 1617, 1616, 1621, 1617, 1620, 1619, 1622, 1623,
3159 1626, 1624, 1628, 1622, 1630, 1625, 1627, 1623, 1626, 1627,
3160 1633, 1631, 1634, 1637, 1625, 1620, 1632, 1624, 1631, 1633,
3161 1628, 1635, 0, 1636, 1627, 1634, 1623, 1626, 1636, 1628,
3162 1632, 1638, 1635, 1627, 1643, 1637, 1627, 1633, 1631, 1634,
3163 1637, 1642, 1641, 1632, 1641, 1644, 1638, 1645, 1635, 1646,
3164 1642, 0, 1647, 1649, 1650, 1636, 1644, 0, 1638, 1648,
3165 1643, 1643, 1648, 1650, 1651, 1645, 1647, 0, 1642, 1641,
3166 1651, 1646, 1644, 1652, 1645, 1649, 1646, 1648, 1647, 1647,
3167 1649, 1650, 1652, 1653, 1655, 1657, 1648, 1656, 1653, 1648,
3168
3169 1657, 1651, 1659, 1647, 1658, 1660, 1661, 1655, 1662, 1656,
3170 1652, 0, 1665, 0, 1660, 1663, 1664, 1670, 1666, 1673,
3171 1668, 1655, 1657, 1669, 1656, 1653, 1658, 1668, 0, 1664,
3172 0, 1658, 1660, 1661, 1659, 1672, 1669, 1663, 1671, 1666,
3173 1662, 1672, 1663, 1664, 1665, 1666, 1677, 1668, 1675, 1670,
3174 1669, 1673, 1671, 1678, 1677, 1679, 1681, 1682, 1680, 1672,
3175 1685, 1678, 1672, 1686, 1683, 1671, 1684, 1675, 1672, 1687,
3176 1681, 1682, 1688, 1677, 1679, 1675, 1680, 1683, 1689, 1684,
3177 1678, 1685, 1679, 1681, 1682, 1680, 1688, 1685, 1691, 1690,
3178 1692, 1683, 1693, 1684, 1695, 1686, 1690, 1691, 1692, 1688,
3179
3180 1694, 1687, 1696, 1698, 1700, 1689, 1701, 1696, 1685, 1697,
3181 1703, 1702, 1698, 1701, 1694, 1691, 1690, 1692, 1704, 1693,
3182 1697, 1705, 1711, 1706, 1707, 0, 1695, 1694, 1707, 1696,
3183 1698, 1700, 1703, 1701, 1702, 1710, 1697, 1703, 1702, 1709,
3184 1704, 1706, 1713, 1705, 1712, 1704, 1715, 1710, 1705, 1711,
3185 1706, 1707, 1712, 1714, 1709, 1716, 1717, 1713, 1722, 1718,
3186 1719, 1714, 1710, 1723, 1721, 1722, 1709, 1726, 1716, 1713,
3187 1725, 1712, 1721, 1715, 1718, 1719, 1717, 1724, 1727, 1725,
3188 1714, 1733, 1716, 1717, 1728, 1722, 1718, 1719, 1726, 1729,
3189 1731, 1721, 1724, 1734, 1726, 1723, 1732, 1725, 1737, 1736,
3190
3191 1735, 1739, 1738, 0, 1724, 1727, 1739, 1754, 1728, 1738,
3192 1740, 1728, 1731, 1733, 1732, 1735, 1729, 1731, 1742, 1740,
3193 1734, 1741, 1737, 1732, 1736, 1737, 1736, 1735, 1739, 1738,
3194 1741, 1743, 1744, 1747, 1745, 1746, 1749, 1740, 1748, 1754,
3195 1742, 1753, 1752, 1749, 1751, 1742, 1755, 1746, 1741, 1745,
3196 1744, 1748, 1755, 1743, 1752, 1747, 1748, 1750, 1743, 1744,
3197 1747, 1745, 1746, 1749, 1750, 1748, 1751, 1757, 1753, 1752,
3198 1759, 1751, 1758, 1755, 1763, 1757, 1760, 1761, 1748, 1750,
3199 1758, 1759, 1764, 1760, 1750, 1762, 1765, 1762, 1766, 1767,
3200 1769, 1750, 1768, 1771, 1757, 1766, 1769, 1759, 1762, 1758,
3201
3202 1763, 1763, 1761, 1760, 1761, 1770, 1772, 1773, 1776, 1764,
3203 1774, 1770, 1762, 1765, 1762, 1766, 1767, 1769, 1768, 1768,
3204 1771, 1777, 1778, 1779, 1781, 1779, 1784, 1790, 1780, 1772,
3205 1777, 1782, 1770, 1772, 1774, 1783, 1786, 1774, 1782, 1773,
3206 1776, 1788, 1786, 1787, 1785, 0, 0, 1789, 1777, 0,
3207 1779, 1781, 1780, 1784, 1778, 1780, 1785, 1783, 1782, 1790,
3208 1795, 0, 1783, 1786, 1802, 1787, 1792, 1788, 1788, 1789,
3209 1787, 1785, 1793, 1792, 1789, 1791, 1791, 1791, 1794, 1796,
3210 1802, 1793, 1791, 1798, 1799, 1794, 1796, 1801, 1798, 1800,
3211 1791, 1802, 1795, 1792, 1804, 1803, 1808, 1799, 1810, 1793,
3212
3213 1805, 1800, 1791, 1791, 1791, 1794, 1796, 1803, 0, 1791,
3214 1806, 1799, 1801, 1807, 1801, 1798, 1800, 1806, 1805, 1807,
3215 1809, 1809, 1803, 1808, 1810, 1810, 1804, 1805, 1811, 1812,
3216 0, 1813, 1814, 1818, 1812, 1811, 1815, 1806, 1824, 1819,
3217 1807, 1819, 1823, 1815, 1820, 1825, 1822, 1809, 1823, 1831,
3218 1829, 1830, 1830, 1827, 1828, 1811, 1812, 1813, 1813, 1814,
3219 1818, 1826, 1820, 1815, 1822, 1827, 1819, 1826, 1829, 1823,
3220 1824, 1820, 1825, 1822, 1828, 1831, 1831, 1829, 1830, 1833,
3221 1827, 1828, 1832, 1832, 1836, 1835, 1837, 1839, 1826, 0,
3222 1833, 1838, 1843, 1837, 1842, 1840, 1844, 0, 0, 1846,
3223
3224 0, 1847, 1842, 1845, 0, 0, 1833, 1835, 1847, 1832,
3225 1850, 1838, 1835, 1837, 1849, 1854, 1836, 1846, 1838, 1839,
3226 1840, 1842, 1840, 1844, 1843, 1845, 1846, 1848, 1847, 1849,
3227 1845, 1851, 1852, 1852, 1850, 1848, 1853, 1850, 1855, 1856,
3228 1851, 1849, 1860, 0, 1857, 1858, 1856, 1854, 1861, 1860,
3229 1863, 1862, 1864, 1861, 1848, 1865, 1857, 1867, 1851, 1852,
3230 1864, 1858, 1853, 1853, 1868, 1867, 1856, 1865, 1858, 1860,
3231 1855, 1857, 1858, 1862, 1869, 1861, 1870, 1863, 1862, 1864,
3232 1871, 1872, 1865, 1873, 1867, 1875, 1876, 1868, 1858, 1874,
3233 0, 1868, 1876, 1879, 1874, 1880, 1877, 1870, 1871, 1882,
3234
3235 1869, 1869, 1880, 1870, 1896, 1874, 1873, 1871, 1872, 1877,
3236 1873, 1878, 1875, 1876, 1883, 1879, 1874, 1881, 1884, 1878,
3237 1879, 1874, 1880, 1877, 1881, 1885, 1883, 1886, 1887, 1889,
3238 1890, 1882, 1891, 1892, 1894, 1890, 1896, 1895, 1878, 1891,
3239 1884, 1883, 1895, 1898, 1881, 1884, 1890, 1889, 0, 1899,
3240 1899, 1887, 1885, 1886, 1886, 1887, 1889, 1890, 1900, 1891,
3241 1892, 1894, 1890, 1901, 1902, 1905, 1904, 1906, 1907, 1895,
3242 1907, 1908, 1909, 1910, 0, 1898, 1899, 1909, 1901, 1911,
3243 1900, 1904, 1906, 1912, 1920, 1900, 1916, 1914, 1905, 1915,
3244 1901, 1918, 1905, 1904, 1906, 1907, 1902, 1915, 1912, 1909,
3245
3246 1919, 1911, 1914, 1908, 1921, 1910, 1911, 1924, 1916, 1923,
3247 1912, 1920, 1922, 1916, 1914, 1918, 1915, 1926, 1918, 1922,
3248 1925, 1929, 1927, 0, 1933, 0, 1919, 1919, 1924, 1931,
3249 1932, 1921, 1937, 1938, 1924, 0, 0, 1935, 1926, 1922,
3250 1927, 1923, 1925, 1929, 1926, 1932, 1936, 1925, 1929, 1927,
3251 1933, 1933, 1935, 1931, 1937, 1940, 1931, 1932, 1939, 1937,
3252 1938, 1936, 1941, 1942, 1935, 1943, 1946, 1944, 1945, 1949,
3253 1947, 1950, 1951, 1936, 1944, 1946, 1939, 1940, 1947, 1948,
3254 1952, 1951, 1940, 0, 1941, 1939, 1945, 1942, 1954, 1941,
3255 1942, 1949, 1943, 1946, 1944, 1945, 1949, 1947, 1952, 1951,
3256
3257 1953, 1954, 1948, 1950, 0, 1956, 1948, 1952, 1957, 1953,
3258 1958, 1959, 0, 1960, 0, 1954, 1956, 1957, 1959, 1962,
3259 1963, 1968, 1964, 1961, 0, 1971, 1963, 1953, 1958, 1976,
3260 1970, 1956, 1956, 1974, 1962, 1957, 1971, 1958, 1959, 1960,
3261 1960, 1961, 1965, 1956, 1964, 1974, 1962, 1963, 1968, 1964,
3262 1961, 1972, 1971, 1975, 1970, 1977, 1965, 1970, 1978, 1980,
3263 1974, 1976, 1972, 1979, 1981, 1977, 1975, 1983, 1986, 1965,
3264 1984, 1987, 1986, 1988, 0, 1992, 1990, 0, 1972, 1989,
3265 1975, 1990, 1977, 1981, 1978, 1978, 1980, 0, 1979, 1993,
3266 1979, 1981, 1987, 1991, 1983, 1986, 1984, 1984, 1987, 1989,
3267
3268 1991, 1992, 1992, 1990, 1994, 1988, 1989, 1993, 1995, 1996,
3269 1994, 1998, 2003, 1997, 1999, 1999, 1993, 2000, 2004, 2003,
3270 1991, 2001, 2004, 1995, 1996, 1997, 1998, 2006, 2005, 2000,
3271 0, 1994, 0, 2009, 2001, 1995, 1996, 2007, 1998, 2003,
3272 1997, 1999, 2001, 2005, 2000, 2004, 2007, 2010, 2001, 2008,
3273 2013, 2011, 2019, 2015, 2006, 2005, 2008, 2009, 2011, 2014,
3274 2009, 2001, 2015, 2016, 2007, 2022, 2021, 2017, 2029, 2010,
3275 2019, 2024, 2013, 2023, 2010, 2021, 2008, 2013, 2011, 2019,
3276 2015, 2025, 2027, 2022, 2014, 2016, 2014, 2017, 2023, 2025,
3277 2016, 2028, 2022, 2021, 2017, 2029, 2024, 2031, 2024, 2033,
3278
3279 2023, 2030, 2030, 2037, 2028, 2032, 0, 2027, 2025, 2027,
3280 2036, 2034, 2038, 2035, 2046, 2039, 2040, 2036, 2028, 2031,
3281 2041, 2033, 2035, 2047, 2031, 2041, 2033, 2042, 2030, 2039,
3282 2032, 2040, 2032, 2034, 2038, 2037, 2044, 2036, 2034, 2038,
3283 2035, 2046, 2039, 2040, 2044, 2045, 2042, 2048, 2049, 2047,
3284 2047, 2050, 2041, 2052, 2042, 2049, 0, 2051, 2045, 2048,
3285 2053, 2055, 2054, 2044, 2057, 0, 2058, 2056, 2059, 2053,
3286 2054, 0, 2045, 0, 2048, 2049, 2060, 0, 2052, 2051,
3287 2052, 2054, 2056, 2050, 2051, 2064, 2059, 2053, 2055, 2054,
3288 2057, 2057, 2058, 2058, 2056, 2059, 2061, 2054, 2060, 2063,
3289
3290 2065, 2067, 2063, 2060, 2066, 2061, 2065, 2068, 0, 2066,
3291 2064, 0, 2064, 2072, 0, 2069, 2067, 2063, 2071, 2073,
3292 2078, 0, 0, 2061, 2075, 2068, 2063, 2065, 2067, 2063,
3293 2069, 2077, 2076, 2071, 2068, 2072, 2066, 2081, 2075, 2076,
3294 2072, 2073, 2069, 2079, 2080, 2071, 2073, 2078, 2081, 2077,
3295 2082, 2075, 2079, 2080, 2083, 2087, 2088, 2085, 2077, 2076,
3296 2086, 2090, 2087, 2082, 2081, 2095, 2083, 2089, 2101, 2096,
3297 2079, 2080, 2085, 2096, 0, 2086, 0, 2082, 2088, 2090,
3298 2093, 2083, 2087, 2088, 2085, 2097, 2095, 2086, 2090, 2089,
3299 2098, 2100, 2095, 2093, 2089, 2101, 2096, 2097, 2099, 2098,
3300
3301 2099, 2093, 2103, 2102, 2105, 2104, 2106, 2093, 2107, 2100,
3302 2108, 2109, 2097, 2104, 2110, 2108, 2109, 2098, 2100, 2111,
3303 2093, 2102, 2107, 2112, 2124, 2099, 2113, 2105, 2106, 2103,
3304 2102, 2105, 2104, 2106, 2114, 2107, 2117, 2108, 2129, 0,
3305 2118, 2114, 2119, 2109, 2120, 2113, 2110, 2112, 2121, 2122,
3306 2112, 2111, 2126, 2113, 2118, 2125, 2124, 2127, 2128, 2123,
3307 2119, 2114, 0, 2117, 2122, 2118, 2118, 2118, 2123, 2119,
3308 2129, 2120, 2131, 2133, 2121, 2121, 2122, 2125, 2126, 2126,
3309 2128, 2118, 2125, 2132, 2127, 2128, 2123, 2134, 0, 2136,
3310 2132, 2136, 2118, 2137, 2134, 2131, 2133, 2138, 0, 2131,
3311
3312 2133, 2138, 2141, 2140, 2144, 2139, 2143, 2142, 2146, 2148,
3313 2132, 2141, 0, 2143, 2134, 2137, 2136, 2139, 2142, 2147,
3314 2137, 2148, 2145, 2149, 2138, 2140, 2144, 2145, 2152, 2141,
3315 2140, 2144, 2139, 2143, 2142, 2146, 2148, 2150, 2150, 2151,
3316 2154, 2157, 2147, 2152, 2153, 2149, 2147, 2155, 2151, 2145,
3317 2149, 2156, 2153, 2159, 2162, 2152, 2163, 2160, 2162, 2163,
3318 2156, 2155, 2154, 2169, 2150, 2160, 2151, 2154, 2157, 2161,
3319 2165, 2153, 2159, 2166, 2155, 2169, 2165, 2161, 2156, 2164,
3320 2159, 2162, 2172, 2163, 2160, 2167, 2173, 2164, 2166, 2171,
3321 2169, 2167, 2174, 2175, 0, 2172, 2161, 2165, 2177, 2176,
3322
3323 2166, 2178, 2182, 2171, 2181, 2179, 2164, 2173, 2183, 2172,
3324 2180, 2184, 2167, 2173, 2187, 2178, 2171, 2174, 2179, 2174,
3325 2175, 2176, 2177, 2189, 2180, 2177, 2176, 2185, 2178, 2182,
3326 2181, 2181, 2179, 2183, 2186, 2183, 2190, 2180, 2184, 2185,
3327 2187, 2187, 2188, 2191, 2193, 2188, 2194, 2196, 2186, 2195,
3328 2189, 2197, 2198, 2194, 2185, 2200, 2195, 2202, 2204, 2199,
3329 2188, 2186, 2196, 2190, 2205, 2191, 2193, 2199, 2201, 2188,
3330 2191, 2193, 2188, 2194, 2196, 2203, 2195, 2201, 2197, 2198,
3331 2204, 2206, 2200, 2207, 2202, 2204, 2199, 2203, 2208, 2210,
3332 2209, 2205, 2212, 2213, 2215, 2201, 2207, 2210, 2219, 2214,
3333
3334 2216, 2217, 2203, 2209, 2220, 2218, 2208, 2214, 2206, 2216,
3335 2207, 0, 2223, 2219, 2212, 2208, 2210, 2209, 0, 2212,
3336 2213, 2215, 2217, 2222, 2219, 2219, 2214, 2216, 2217, 2218,
3337 2221, 2220, 2218, 2225, 2226, 2222, 2227, 2223, 2221, 2223,
3338 2219, 2229, 2226, 2230, 2231, 2225, 2232, 2230, 2229, 2233,
3339 2222, 2234, 2235, 2236, 2237, 2239, 2231, 2221, 0, 2234,
3340 2225, 2226, 2242, 2227, 2251, 2236, 2237, 2241, 2229, 2232,
3341 2230, 2231, 2246, 2232, 2235, 2242, 2233, 2240, 2234, 2235,
3342 2236, 2237, 2239, 2243, 2240, 2247, 2244, 2241, 0, 2242,
3343 2245, 2245, 2243, 2248, 2241, 2244, 2251, 2253, 2246, 2246,
3344
3345 2252, 2259, 2259, 2247, 2240, 2264, 2249, 2254, 2256, 2255,
3346 2243, 2255, 2247, 2244, 2263, 2252, 2258, 2245, 2248, 2253,
3347 2248, 2249, 2256, 2249, 2253, 2257, 2263, 2252, 2259, 2254,
3348 2249, 2257, 2261, 2249, 2254, 2256, 2255, 2264, 2258, 2262,
3349 2265, 2263, 2266, 2258, 0, 2269, 2265, 2269, 2249, 2267,
3350 2249, 2268, 2257, 2271, 2261, 2270, 2277, 2272, 0, 2261,
3351 0, 2262, 2278, 2273, 2279, 2274, 2262, 2265, 2275, 2270,
3352 2285, 2267, 2269, 2268, 2266, 2272, 2267, 2271, 2268, 2283,
3353 2271, 2273, 2270, 2274, 2272, 2276, 2275, 2279, 2277, 2281,
3354 2273, 2279, 2274, 2284, 2278, 2275, 2281, 2283, 2276, 2286,
3355
3356 2287, 2288, 2285, 2288, 2290, 2292, 2283, 2286, 2288, 2296,
3357 2291, 2293, 2276, 0, 0, 2290, 2281, 2294, 2297, 2284,
3358 2284, 2291, 2287, 2293, 2296, 2286, 2286, 2287, 2288, 2297,
3359 2288, 2290, 2292, 2299, 2286, 2294, 2296, 2291, 2293, 2298,
3360 2301, 2302, 2303, 2304, 2294, 2297, 2305, 2308, 2299, 2303,
3361 2306, 2298, 2311, 2310, 2309, 2312, 2314, 0, 2304, 2315,
3362 2299, 2313, 2321, 2302, 2301, 2316, 2298, 2301, 2302, 2303,
3363 2304, 0, 2315, 2305, 2308, 2310, 2306, 2306, 2309, 2313,
3364 2310, 2309, 2317, 2314, 2311, 2318, 2315, 2312, 2313, 2320,
3365 2322, 2316, 2316, 2319, 2321, 0, 2323, 2317, 2318, 2325,
3366
3367 2326, 2319, 2327, 2322, 0, 2333, 2328, 2329, 0, 2317,
3368 0, 0, 2318, 2330, 2331, 2320, 2320, 2322, 2323, 2332,
3369 2319, 2331, 2325, 2323, 2326, 2329, 2325, 2326, 2328, 2327,
3370 2334, 2330, 2333, 2328, 2329, 2339, 2336, 2340, 2337, 2342,
3371 2330, 2331, 2332, 2338, 2334, 2337, 2332, 2341, 2339, 2343,
3372 2338, 2344, 0, 2354, 2341, 0, 2368, 2334, 2336, 2345,
3373 2340, 2342, 2339, 2336, 2340, 2337, 2342, 2346, 2345, 2347,
3374 2338, 2348, 2344, 2349, 2341, 2346, 2351, 2347, 2344, 2349,
3375 2353, 2343, 2355, 2356, 2352, 2354, 2345, 2358, 2368, 2361,
3376 0, 2351, 2370, 2348, 2346, 2352, 2347, 2362, 2348, 2360,
3377
3378 2349, 2355, 2353, 2351, 2364, 2358, 2367, 2353, 2356, 2355,
3379 2356, 2352, 2360, 2369, 2358, 2361, 2361, 2363, 2363, 2370,
3380 2371, 2362, 2374, 2376, 2362, 2379, 2360, 2386, 2369, 2367,
3381 2364, 2364, 2376, 2367, 2382, 2378, 2379, 2384, 2371, 2388,
3382 2369, 2383, 2383, 2385, 2363, 2390, 2391, 2371, 2378, 2374,
3383 2376, 2400, 2379, 2394, 2386, 2393, 2382, 2397, 2392, 2384,
3384 2393, 2382, 2378, 2396, 2384, 2385, 2388, 2403, 2383, 2392,
3385 2385, 2396, 2391, 2391, 2398, 2394, 2399, 2390, 2400, 2402,
3386 2394, 2397, 2393, 2404, 2397, 2392, 2405, 2407, 2408, 2398,
3387 2396, 2399, 2404, 2412, 2409, 2410, 2413, 2402, 2405, 2403,
3388
3389 0, 2398, 2409, 2399, 2410, 2414, 2402, 2415, 2416, 2417,
3390 2404, 2419, 2408, 2405, 2407, 2408, 2415, 2418, 2421, 2412,
3391 2412, 2409, 2410, 2413, 2419, 2422, 2416, 2414, 2420, 2425,
3392 2423, 2417, 2414, 2421, 2415, 2416, 2417, 2423, 2419, 2424,
3393 2426, 2420, 2418, 2427, 2418, 2421, 2424, 2422, 2428, 2429,
3394 2430, 2425, 2422, 2431, 0, 2420, 2425, 2423, 2433, 2432,
3395 0, 2434, 2431, 2435, 2436, 2430, 2424, 2426, 2439, 2441,
3396 2427, 2442, 2438, 0, 0, 2428, 2429, 2430, 2435, 2436,
3397 2431, 2432, 2437, 2438, 2433, 2433, 2432, 2434, 2434, 2437,
3398 2435, 2436, 2440, 2444, 2443, 2439, 2441, 2445, 2442, 2438,
3399
3400 2440, 2446, 2451, 2448, 2447, 2449, 2450, 0, 2444, 2437,
3401 2443, 2447, 2449, 2450, 2453, 2453, 2446, 2445, 2452, 2440,
3402 2444, 2443, 2459, 2455, 2445, 2448, 2457, 2454, 2446, 2451,
3403 2448, 2447, 2449, 2450, 2454, 2456, 2452, 2455, 2456, 2457,
3404 2458, 2453, 2460, 2464, 2461, 2452, 2462, 2466, 2459, 2459,
3405 2455, 2466, 2464, 2457, 2454, 2458, 2461, 2467, 2462, 2465,
3406 2460, 2469, 2456, 2468, 2465, 2470, 2471, 2458, 2472, 2460,
3407 2464, 2461, 2473, 2462, 2466, 2475, 2468, 2477, 2479, 2481,
3408 2478, 2467, 0, 2469, 2467, 0, 2465, 2470, 2469, 2478,
3409 2468, 2481, 2470, 2471, 2479, 2472, 2487, 2489, 2473, 2473,
3410
3411 2480, 2475, 2475, 2477, 2477, 2479, 2481, 2478, 2480, 2483,
3412 2484, 2486, 2485, 2488, 2487, 2493, 2483, 2485, 2486, 2484,
3413 2488, 2490, 2489, 2487, 2489, 2491, 2492, 2480, 2490, 2495,
3414 2496, 2499, 2498, 2501, 2491, 2492, 2483, 2484, 2486, 2485,
3415 2488, 2493, 2493, 2496, 2497, 2502, 2503, 2505, 2490, 2497,
3416 2498, 2501, 2491, 2492, 2504, 2503, 2495, 2496, 2499, 2498,
3417 2501, 2507, 2511, 2504, 2506, 2512, 2508, 2505, 2509, 2510,
3418 2507, 2497, 2502, 2503, 2505, 2508, 2506, 2510, 2513, 2509,
3419 2515, 2504, 2516, 2517, 2518, 2513, 2520, 2527, 2507, 2511,
3420 2514, 2506, 2512, 2508, 2519, 2509, 2510, 2523, 2520, 2514,
3421
3422 2521, 2515, 2522, 2519, 2524, 2513, 2526, 2515, 2521, 2516,
3423 2517, 2524, 2527, 2520, 2527, 2522, 2518, 2514, 2525, 2523,
3424 2528, 2519, 2530, 2529, 2523, 2525, 2532, 2521, 2526, 2522,
3425 2535, 2524, 2537, 2526, 2532, 0, 2534, 2536, 2535, 2537,
3426 2538, 0, 2545, 0, 2539, 2525, 2544, 2528, 2529, 2530,
3427 2529, 2539, 2536, 2532, 2534, 2548, 2547, 2535, 2540, 2537,
3428 2546, 2543, 2538, 2534, 2536, 2547, 2540, 2538, 2543, 2545,
3429 2544, 2539, 2546, 2544, 2549, 2551, 2554, 2550, 2555, 2553,
3430 2556, 2558, 2548, 2547, 2561, 2540, 0, 2546, 2543, 2550,
3431 2549, 2553, 2565, 2558, 2556, 2564, 2566, 2563, 2551, 2554,
3432
3433 2568, 2549, 2551, 2554, 2550, 2555, 2553, 2556, 2558, 2559,
3434 2560, 2561, 2563, 2564, 2570, 2565, 2559, 2560, 2567, 2565,
3435 2569, 2574, 2564, 2566, 2563, 2572, 2567, 2568, 2571, 0,
3436 2579, 2573, 2570, 2581, 0, 2584, 2559, 2560, 2573, 2571,
3437 2572, 2570, 2569, 2585, 2580, 2567, 2586, 2569, 2574, 2580,
3438 2582, 2583, 2572, 2584, 2587, 2571, 2579, 2579, 2573, 2589,
3439 2581, 2585, 2584, 2592, 2582, 2583, 2587, 2593, 2596, 2594,
3440 2585, 2580, 2597, 2586, 2598, 2595, 2601, 2582, 2583, 2599,
3441 2597, 2587, 2594, 2602, 2605, 2592, 2589, 2596, 2601, 2593,
3442 2592, 2603, 2598, 2606, 2593, 2596, 2594, 2595, 2599, 2597,
3443
3444 2604, 2598, 2595, 2601, 2607, 2602, 2599, 2609, 2608, 2615,
3445 2602, 2605, 2604, 2603, 2610, 2611, 2612, 2613, 2603, 2614,
3446 2606, 2615, 2617, 2610, 2611, 2616, 2618, 2604, 2608, 2609,
3447 2622, 2607, 2623, 2624, 2609, 2608, 2615, 2621, 2624, 2613,
3448 2625, 2610, 2611, 2628, 2613, 2614, 2614, 2616, 2612, 2617,
3449 2626, 2621, 2616, 2618, 0, 2627, 2623, 2622, 2629, 2623,
3450 2631, 2630, 2625, 2634, 2621, 2624, 2635, 2625, 2627, 2634,
3451 2633, 2636, 2626, 2637, 2632, 2628, 0, 2626, 2631, 2638,
3452 2641, 2629, 2627, 2630, 2640, 2629, 2632, 2631, 2630, 2633,
3453 2634, 2642, 2646, 2644, 2638, 2637, 2648, 2633, 2635, 2647,
3454
3455 2637, 2632, 2641, 2636, 2640, 2648, 2638, 2641, 2644, 2650,
3456 2649, 2640, 2651, 2653, 2646, 2642, 2652, 2657, 2642, 2646,
3457 2644, 2647, 0, 2648, 2649, 2656, 2647, 2650, 2662, 2658,
3458 2651, 2653, 2664, 2661, 2656, 2662, 2650, 2649, 2663, 2651,
3459 2653, 2661, 2652, 2652, 2665, 2666, 2663, 2669, 2667, 2657,
3460 2658, 2668, 2656, 2666, 2670, 2662, 2658, 2672, 2676, 2664,
3461 2661, 2674, 2670, 2668, 2665, 2663, 2667, 2675, 2674, 2672,
3462 2678, 2665, 2666, 2679, 2669, 2667, 2680, 2677, 2668, 2677,
3463 2681, 2670, 2682, 2688, 2672, 2676, 2686, 0, 2674, 2683,
3464 2675, 2690, 2685, 2689, 2675, 0, 2694, 2695, 2696, 2691,
3465
3466 2686, 2682, 2678, 2697, 2677, 2679, 2695, 2681, 2680, 2682,
3467 2685, 2683, 2691, 2686, 2690, 2688, 2683, 2689, 2690, 2685,
3468 2689, 2692, 2694, 2694, 2695, 2696, 2691, 2699, 2700, 2703,
3469 2697, 2701, 2705, 2692, 2707, 2706, 2708, 2709, 2711, 2705,
3470 2712, 2708, 2714, 2715, 0, 2711, 2717, 2716, 2692, 2707,
3471 2722, 2700, 2709, 2701, 2699, 2700, 2703, 2706, 2701, 2705,
3472 2717, 2707, 2706, 2719, 2709, 2711, 2712, 2712, 2708, 2714,
3473 2715, 2716, 2719, 2717, 2716, 2721, 2724, 2722, 2723, 2725,
3474 2726, 2727, 2721, 2728, 2729, 2730, 2731, 2741, 2736, 2732,
3475 2719, 2725, 2728, 2736, 2737, 2727, 0, 2729, 2737, 2742,
3476
3477 2743, 2742, 2721, 2724, 2723, 2723, 2725, 2726, 2727, 2740,
3478 2728, 2729, 2732, 2731, 2744, 2738, 2732, 2730, 2739, 2741,
3479 2736, 2737, 2738, 2743, 2747, 2739, 2742, 2743, 2749, 2750,
3480 2740, 2752, 0, 2752, 2754, 2753, 2740, 2758, 2755, 2755,
3481 2760, 2744, 2738, 2757, 2758, 2739, 2747, 2749, 2755, 2756,
3482 2759, 2747, 2757, 2750, 0, 2749, 2750, 0, 2752, 2753,
3483 2754, 2754, 2753, 2759, 2758, 2755, 2755, 2760, 2761, 0,
3484 2757, 2756, 2762, 2763, 2764, 2765, 2756, 2759, 2766, 2767,
3485 2762, 2761, 2764, 2766, 2767, 2768, 2763, 2769, 0, 2770,
3486 0, 2771, 0, 2768, 2765, 2761, 2762, 2772, 2774, 2762,
3487
3488 2763, 2764, 2765, 2773, 2775, 2778, 2776, 2762, 0, 2774,
3489 2766, 2767, 2768, 2776, 2769, 2770, 2770, 2771, 2771, 2777,
3490 2777, 2780, 2781, 2772, 2772, 2774, 2775, 2778, 2779, 2773,
3491 2773, 2775, 2778, 2776, 2782, 2783, 2779, 2785, 2786, 2787,
3492 2781, 2782, 2783, 2780, 2788, 2790, 2777, 2791, 2780, 2781,
3493 2792, 2793, 2795, 2788, 2801, 2779, 0, 2796, 2797, 0,
3494 2800, 2782, 2783, 2787, 2785, 2786, 2787, 2791, 2798, 2800,
3495 2802, 2788, 2790, 2793, 2791, 2796, 2797, 2792, 2793, 2795,
3496 2803, 2801, 2804, 2805, 2796, 2797, 2798, 2800, 2806, 2807,
3497 2804, 2808, 2815, 2802, 2807, 2798, 2809, 2802, 2803, 2805,
3498
3499 2806, 2810, 2817, 2814, 2818, 2808, 2819, 2803, 2819, 2804,
3500 2805, 2820, 2822, 2830, 2809, 2806, 2823, 2818, 2808, 2815,
3501 2820, 2807, 2824, 2809, 2810, 2814, 2828, 2844, 2810, 2817,
3502 2814, 2818, 2832, 2819, 2823, 2836, 2837, 2824, 2820, 2822,
3503 2827, 2829, 2827, 2823, 2828, 2830, 2834, 2832, 2829, 2824,
3504 2838, 2839, 2834, 2828, 2844, 0, 2845, 2836, 2837, 2832,
3505 2841, 2846, 2836, 2837, 2850, 2848, 2847, 2827, 2829, 2839,
3506 2852, 2842, 2848, 2834, 2842, 0, 2838, 2838, 2839, 2855,
3507 0, 2849, 2841, 2845, 2847, 2853, 2850, 2841, 2846, 2849,
3508 2856, 2850, 2848, 2847, 2854, 2857, 2859, 2842, 2842, 2856,
3509
3510 2861, 2842, 2852, 2858, 2860, 0, 2855, 2853, 2849, 2858,
3511 2857, 2863, 2853, 2860, 2865, 0, 2854, 2856, 2859, 2868,
3512 2866, 2854, 2857, 2859, 2862, 2869, 2862, 2867, 2870, 2875,
3513 2858, 2860, 2861, 2869, 2879, 2908, 2871, 2865, 2863, 2877,
3514 2870, 2865, 2866, 2873, 2878, 2868, 2868, 2866, 2871, 2867,
3515 2873, 2862, 2869, 2877, 2867, 2870, 2875, 2879, 2878, 2880,
3516 2882, 2879, 2881, 2871, 2883, 0, 2877, 2908, 2882, 2885,
3517 2873, 2878, 2884, 2881, 2886, 2887, 2889, 2880, 2888, 2888,
3518 2890, 2893, 2894, 2883, 2887, 2898, 2880, 2882, 2890, 2881,
3519 0, 2883, 2886, 2903, 2884, 2885, 2885, 2905, 2896, 2884,
3520
3521 2900, 2886, 2887, 2889, 2896, 2888, 2901, 2890, 2893, 2894,
3522 2902, 2900, 2898, 2907, 2909, 2903, 2906, 2901, 2909, 2912,
3523 2903, 2902, 2910, 2906, 2905, 2896, 2913, 2900, 2914, 2915,
3524 2910, 2907, 2919, 2901, 2923, 2918, 2914, 2902, 2920, 2913,
3525 2907, 2909, 2918, 2906, 2924, 2912, 2912, 2922, 2926, 2910,
3526 2925, 2928, 2922, 2913, 2927, 2914, 2915, 2925, 2930, 2929,
3527 2920, 2923, 2918, 0, 2919, 2920, 2929, 2926, 2931, 2928,
3528 2927, 2924, 2932, 2933, 2922, 2926, 2931, 2925, 2928, 2934,
3529 2933, 2927, 2936, 2935, 2941, 2942, 2929, 2932, 2940, 2943,
3530 2930, 2941, 2945, 0, 2926, 2931, 2944, 2952, 2949, 2932,
3531
3532 2933, 0, 0, 2940, 2946, 2948, 2934, 2935, 2936, 2936,
3533 2935, 2941, 2950, 2946, 2951, 2940, 2943, 2942, 2953, 2953,
3534 2944, 2954, 2951, 2944, 2945, 2949, 2959, 2948, 2953, 2952,
3535 2960, 2946, 2948, 2957, 2950, 2956, 2958, 2965, 2958, 2950,
3536 2959, 2951, 2957, 2961, 2962, 2953, 2953, 2963, 2954, 2966,
3537 2956, 2961, 2970, 2959, 2968, 2962, 2967, 2960, 2969, 2971,
3538 2957, 2972, 2956, 2958, 2965, 2963, 2975, 2968, 2973, 2976,
3539 2961, 2962, 2974, 2974, 2963, 2978, 2966, 2986, 2967, 2970,
3540 2969, 2968, 2973, 2967, 2981, 2969, 2971, 2988, 2972, 2983,
3541 2997, 2976, 2981, 2994, 2983, 2973, 2976, 2991, 2975, 2974,
3542
3543 2984, 2985, 2978, 2986, 2986, 2984, 2985, 2989, 2989, 2990,
3544 2991, 2981, 2992, 2993, 2988, 2995, 2983, 2990, 2998, 2992,
3545 2994, 2999, 2997, 3003, 2991, 2998, 3005, 2984, 2985, 2999,
3546 3000, 2993, 3006, 3007, 2989, 3008, 2990, 3011, 0, 2992,
3547 2993, 3009, 2995, 3010, 3012, 2998, 3007, 3016, 2999, 0,
3548 3003, 3014, 3000, 3005, 3006, 0, 3009, 3000, 3014, 3006,
3549 3007, 3017, 3010, 3018, 3011, 3015, 3012, 3008, 3009, 3016,
3550 3010, 3012, 3015, 3021, 3016, 3020, 3017, 3028, 3014, 3022,
3551 3023, 3021, 3025, 3028, 3018, 3026, 3022, 3023, 3017, 3029,
3552 3018, 3025, 3015, 3031, 3020, 3033, 3026, 3034, 3027, 3027,
3553
3554 3021, 3041, 3020, 3032, 3028, 3037, 3022, 3023, 3027, 3025,
3555 3032, 3029, 3026, 3042, 3036, 3031, 3029, 3038, 0, 3034,
3556 3031, 3036, 3043, 3047, 3034, 3027, 3027, 3033, 3041, 3037,
3557 3032, 3038, 3037, 3048, 3049, 3050, 3052, 3054, 3054, 0,
3558 3042, 3036, 3049, 3058, 3038, 3043, 3055, 3055, 0, 3043,
3559 3047, 3056, 3060, 3059, 0, 3048, 3062, 3065, 3061, 3068,
3560 3048, 3049, 3050, 3052, 3065, 3058, 3054, 3061, 3067, 3062,
3561 3058, 3059, 3072, 3073, 3056, 3055, 3074, 3080, 3056, 3060,
3562 3059, 3066, 3077, 3062, 3065, 3061, 3068, 3071, 3066, 3071,
3563 3067, 3077, 3072, 3075, 3074, 3067, 3073, 3078, 3081, 3072,
3564
3565 3073, 3079, 0, 3074, 3080, 3075, 3082, 3083, 3066, 3077,
3566 3086, 3088, 3085, 3084, 3071, 3078, 3084, 3085, 3082, 3087,
3567 3075, 3087, 3093, 3088, 3078, 3081, 3089, 3079, 3079, 3083,
3568 3090, 3084, 3089, 3082, 3083, 3094, 3091, 3092, 3088, 3095,
3569 3084, 3096, 3086, 3084, 3085, 3092, 3087, 3097, 3099, 3093,
3570 3098, 3102, 3090, 3089, 3104, 3105, 3108, 3090, 3091, 3109,
3571 3095, 3110, 3098, 3091, 3092, 3111, 3095, 3094, 3096, 3112,
3572 3099, 3113, 3114, 3105, 3097, 3099, 3115, 3098, 3102, 3116,
3573 3116, 3104, 3105, 3108, 3118, 3119, 3109, 3120, 3110, 3121,
3574 3122, 3125, 3111, 3124, 3127, 3126, 3112, 3122, 3113, 3114,
3575
3576 3128, 3124, 3118, 3115, 3121, 3120, 3116, 3126, 3127, 3129,
3577 3131, 3118, 3119, 3130, 3120, 3128, 3121, 3122, 3125, 3134,
3578 3124, 3127, 3126, 3135, 3138, 3130, 3137, 3128, 3134, 3136,
3579 3136, 3140, 3141, 3138, 3144, 3129, 3129, 3131, 3143, 3145,
3580 3130, 3142, 3144, 0, 3149, 0, 3134, 3135, 3145, 3152,
3581 3135, 3138, 3137, 3137, 3142, 3140, 3136, 3148, 3140, 3146,
3582 3143, 3144, 3149, 3153, 3141, 3143, 3145, 3165, 3142, 3166,
3583 3146, 3149, 3152, 3156, 3156, 3153, 3152, 3168, 3148, 3169,
3584 3170, 3171, 3175, 3173, 3148, 3174, 3146, 3173, 3176, 3165,
3585 3153, 3168, 3181, 3166, 3165, 3176, 3166, 3179, 3177, 0,
3586
3587 3156, 3179, 3180, 3174, 3168, 3175, 3169, 3170, 3171, 3175,
3588 3173, 3177, 3174, 3182, 3181, 3176, 3183, 3185, 3180, 3181,
3589 3184, 3192, 3186, 3187, 3179, 3177, 3188, 3190, 3183, 3180,
3590 3186, 3185, 3187, 3189, 3191, 3189, 3192, 3188, 3182, 3190,
3591 3182, 3193, 3195, 3183, 3185, 3194, 3184, 3184, 3192, 3186,
3592 3187, 3194, 3191, 3188, 3190, 3196, 3198, 3202, 3197, 3203,
3593 3189, 3191, 3204, 3193, 3195, 3197, 3203, 3206, 3193, 3195,
3594 3202, 3207, 3194, 3205, 3208, 3209, 0, 3217, 3198, 3210,
3595 3212, 3211, 3196, 3198, 3202, 3197, 3203, 3210, 3211, 3204,
3596 3213, 3205, 3214, 3215, 3206, 3215, 3220, 3207, 3207, 3216,
3597
3598 3205, 3208, 3209, 3218, 3212, 3221, 3210, 3212, 3211, 3217,
3599 3219, 3216, 3213, 3223, 3214, 3222, 3218, 3213, 3220, 3214,
3600 3215, 3225, 3222, 3220, 3226, 3219, 3216, 3227, 3228, 3230,
3601 3218, 3235, 3221, 3236, 3232, 3227, 3226, 3219, 3237, 3238,
3602 3223, 3230, 3222, 3232, 3239, 3240, 3244, 3238, 3225, 0,
3603 0, 3226, 3245, 3242, 3227, 3228, 3230, 3237, 3235, 3236,
3604 3236, 3232, 3241, 3243, 3247, 3237, 3238, 3242, 3244, 3253,
3605 3254, 3243, 3250, 3244, 3251, 3241, 3239, 3240, 3250, 3245,
3606 3242, 3251, 3253, 3257, 3259, 3256, 3258, 3261, 3260, 3241,
3607 3243, 3247, 3256, 3254, 3258, 3261, 3253, 3254, 3259, 3250,
3608
3609 3262, 3251, 3260, 3263, 3264, 3257, 3270, 3271, 3268, 3267,
3610 3257, 3259, 3256, 3258, 3261, 3260, 3267, 3268, 3269, 3272,
3611 3273, 3274, 3262, 0, 3278, 3263, 3269, 3262, 3275, 3271,
3612 3263, 3264, 3276, 3270, 3271, 3268, 3267, 3280, 3281, 3282,
3613 3284, 3277, 3286, 3274, 3285, 3269, 3273, 3273, 3274, 3277,
3614 3275, 3272, 3285, 3287, 3276, 3275, 3278, 3289, 3291, 3276,
3615 3281, 3287, 3286, 3284, 3280, 3281, 3282, 3284, 3277, 3286,
3616 3288, 3285, 3291, 3290, 0, 3293, 3295, 3297, 3288, 3300,
3617 3287, 3290, 3301, 3298, 3299, 3291, 0, 3296, 0, 3289,
3618 3296, 3298, 3299, 3300, 3302, 3305, 3305, 3288, 3303, 3297,
3619
3620 3290, 3293, 3293, 3295, 3297, 3296, 3300, 3306, 3301, 3301,
3621 3298, 3299, 3303, 3308, 3296, 3307, 3302, 3296, 3309, 3310,
3622 0, 3302, 3305, 3307, 3312, 3303, 3313, 3311, 3314, 0,
3623 3316, 3315, 3312, 3306, 3306, 3323, 0, 3320, 0, 3308,
3624 3308, 3310, 3307, 3317, 3309, 3309, 3310, 3311, 3318, 3326,
3625 3314, 3312, 3319, 3313, 3311, 3314, 3315, 3316, 3315, 3320,
3626 3319, 3321, 3323, 3317, 3320, 3324, 3328, 3327, 3318, 3321,
3627 3317, 3326, 3329, 3324, 3328, 3318, 3326, 3330, 3332, 3319,
3628 3329, 3335, 3333, 3334, 3336, 3339, 3337, 3340, 3321, 3327,
3629 3333, 3334, 3324, 3328, 3327, 3341, 3343, 3346, 0, 3329,
3630
3631 3349, 0, 3350, 3330, 3330, 3332, 3337, 3335, 3335, 3333,
3632 3334, 3336, 3339, 3337, 3340, 3341, 0, 3347, 3343, 3346,
3633 3348, 0, 3341, 3343, 3346, 3347, 0, 3349, 3348, 3350,
3634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3635 0, 0, 0, 0, 3347, 0, 0, 3348, 3354, 3354,
3636 3354, 3354, 3354, 3354, 3354, 3355, 3355, 3355, 3355, 3355,
3637 3355, 3355, 3356, 3356, 3356, 3356, 3356, 3356, 3356, 3357,
3638 3357, 3357, 3357, 3357, 3357, 3357, 3358, 3358, 3358, 3358,
3639 3358, 3358, 3358, 3359, 3359, 3359, 3359, 3359, 3359, 3359,
3640 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3362, 3362, 0,
3641
3642 3362, 3362, 3362, 3362, 3363, 3363, 0, 0, 0, 3363,
3643 3363, 3364, 3364, 0, 0, 3364, 0, 3364, 3365, 0,
3644 0, 0, 0, 0, 3365, 3366, 3366, 0, 0, 0,
3645 3366, 3366, 3367, 0, 0, 0, 0, 0, 3367, 3368,
3646 3368, 0, 3368, 3368, 3368, 3368, 3369, 0, 0, 0,
3647 0, 0, 3369, 3370, 3370, 0, 0, 0, 3370, 3370,
3648 3371, 3371, 0, 3371, 3371, 3371, 3371, 3353, 3353, 3353,
3649 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
3650 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
3651 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
3652
3653 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
3654 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
3655 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
3656 3353, 3353, 3353, 3353
35973657 } ;
35983658
35993659 static yy_state_type yy_last_accepting_state;
37993859 }
38003860 #endif
38013861
3802 #line 3801 "<stdout>"
3862 #line 3861 "<stdout>"
38033863 #define YY_NO_INPUT 1
38043864 #line 191 "util/configlexer.lex"
38053865 #ifndef YY_NO_UNPUT
38083868 #ifndef YY_NO_INPUT
38093869 #define YY_NO_INPUT 1
38103870 #endif
3811 #line 3810 "<stdout>"
3812
3813 #line 3812 "<stdout>"
3871 #line 3870 "<stdout>"
3872
3873 #line 3872 "<stdout>"
38143874
38153875 #define INITIAL 0
38163876 #define quotedstring 1
40344094 {
40354095 #line 211 "util/configlexer.lex"
40364096
4037 #line 4036 "<stdout>"
4097 #line 4096 "<stdout>"
40384098
40394099 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
40404100 {
40674127 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
40684128 {
40694129 yy_current_state = (int) yy_def[yy_current_state];
4070 if ( yy_current_state >= 3292 )
4130 if ( yy_current_state >= 3354 )
40714131 yy_c = yy_meta[yy_c];
40724132 }
40734133 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
40744134 ++yy_cp;
40754135 }
4076 while ( yy_base[yy_current_state] != 9388 );
4136 while ( yy_base[yy_current_state] != 9568 );
40774137
40784138 yy_find_action:
40794139 yy_act = yy_accept[yy_current_state];
50035063 case 181:
50045064 YY_RULE_SETUP
50055065 #line 395 "util/configlexer.lex"
5066 { YDVAR(1, VAR_SERVE_ORIGINAL_TTL) }
5067 YY_BREAK
5068 case 182:
5069 YY_RULE_SETUP
5070 #line 396 "util/configlexer.lex"
50065071 { YDVAR(1, VAR_FAKE_DSA) }
50075072 YY_BREAK
5008 case 182:
5009 YY_RULE_SETUP
5010 #line 396 "util/configlexer.lex"
5073 case 183:
5074 YY_RULE_SETUP
5075 #line 397 "util/configlexer.lex"
50115076 { YDVAR(1, VAR_FAKE_SHA1) }
50125077 YY_BREAK
5013 case 183:
5014 YY_RULE_SETUP
5015 #line 397 "util/configlexer.lex"
5078 case 184:
5079 YY_RULE_SETUP
5080 #line 398 "util/configlexer.lex"
50165081 { YDVAR(1, VAR_VAL_LOG_LEVEL) }
50175082 YY_BREAK
5018 case 184:
5019 YY_RULE_SETUP
5020 #line 398 "util/configlexer.lex"
5083 case 185:
5084 YY_RULE_SETUP
5085 #line 399 "util/configlexer.lex"
50215086 { YDVAR(1, VAR_KEY_CACHE_SIZE) }
50225087 YY_BREAK
5023 case 185:
5024 YY_RULE_SETUP
5025 #line 399 "util/configlexer.lex"
5088 case 186:
5089 YY_RULE_SETUP
5090 #line 400 "util/configlexer.lex"
50265091 { YDVAR(1, VAR_KEY_CACHE_SLABS) }
50275092 YY_BREAK
5028 case 186:
5029 YY_RULE_SETUP
5030 #line 400 "util/configlexer.lex"
5093 case 187:
5094 YY_RULE_SETUP
5095 #line 401 "util/configlexer.lex"
50315096 { YDVAR(1, VAR_NEG_CACHE_SIZE) }
50325097 YY_BREAK
5033 case 187:
5034 YY_RULE_SETUP
5035 #line 401 "util/configlexer.lex"
5098 case 188:
5099 YY_RULE_SETUP
5100 #line 402 "util/configlexer.lex"
50365101 {
50375102 YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
50385103 YY_BREAK
5039 case 188:
5040 YY_RULE_SETUP
5041 #line 403 "util/configlexer.lex"
5104 case 189:
5105 YY_RULE_SETUP
5106 #line 404 "util/configlexer.lex"
50425107 { YDVAR(1, VAR_ADD_HOLDDOWN) }
50435108 YY_BREAK
5044 case 189:
5045 YY_RULE_SETUP
5046 #line 404 "util/configlexer.lex"
5109 case 190:
5110 YY_RULE_SETUP
5111 #line 405 "util/configlexer.lex"
50475112 { YDVAR(1, VAR_DEL_HOLDDOWN) }
50485113 YY_BREAK
5049 case 190:
5050 YY_RULE_SETUP
5051 #line 405 "util/configlexer.lex"
5114 case 191:
5115 YY_RULE_SETUP
5116 #line 406 "util/configlexer.lex"
50525117 { YDVAR(1, VAR_KEEP_MISSING) }
50535118 YY_BREAK
5054 case 191:
5055 YY_RULE_SETUP
5056 #line 406 "util/configlexer.lex"
5119 case 192:
5120 YY_RULE_SETUP
5121 #line 407 "util/configlexer.lex"
50575122 { YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
50585123 YY_BREAK
5059 case 192:
5060 YY_RULE_SETUP
5061 #line 407 "util/configlexer.lex"
5124 case 193:
5125 YY_RULE_SETUP
5126 #line 408 "util/configlexer.lex"
50625127 { YDVAR(1, VAR_USE_SYSLOG) }
50635128 YY_BREAK
5064 case 193:
5065 YY_RULE_SETUP
5066 #line 408 "util/configlexer.lex"
5129 case 194:
5130 YY_RULE_SETUP
5131 #line 409 "util/configlexer.lex"
50675132 { YDVAR(1, VAR_LOG_IDENTITY) }
50685133 YY_BREAK
5069 case 194:
5070 YY_RULE_SETUP
5071 #line 409 "util/configlexer.lex"
5134 case 195:
5135 YY_RULE_SETUP
5136 #line 410 "util/configlexer.lex"
50725137 { YDVAR(1, VAR_LOG_TIME_ASCII) }
50735138 YY_BREAK
5074 case 195:
5075 YY_RULE_SETUP
5076 #line 410 "util/configlexer.lex"
5139 case 196:
5140 YY_RULE_SETUP
5141 #line 411 "util/configlexer.lex"
50775142 { YDVAR(1, VAR_LOG_QUERIES) }
50785143 YY_BREAK
5079 case 196:
5080 YY_RULE_SETUP
5081 #line 411 "util/configlexer.lex"
5144 case 197:
5145 YY_RULE_SETUP
5146 #line 412 "util/configlexer.lex"
50825147 { YDVAR(1, VAR_LOG_REPLIES) }
50835148 YY_BREAK
5084 case 197:
5085 YY_RULE_SETUP
5086 #line 412 "util/configlexer.lex"
5149 case 198:
5150 YY_RULE_SETUP
5151 #line 413 "util/configlexer.lex"
50875152 { YDVAR(1, VAR_LOG_TAG_QUERYREPLY) }
50885153 YY_BREAK
5089 case 198:
5090 YY_RULE_SETUP
5091 #line 413 "util/configlexer.lex"
5154 case 199:
5155 YY_RULE_SETUP
5156 #line 414 "util/configlexer.lex"
50925157 { YDVAR(1, VAR_LOG_LOCAL_ACTIONS) }
50935158 YY_BREAK
5094 case 199:
5095 YY_RULE_SETUP
5096 #line 414 "util/configlexer.lex"
5159 case 200:
5160 YY_RULE_SETUP
5161 #line 415 "util/configlexer.lex"
50975162 { YDVAR(1, VAR_LOG_SERVFAIL) }
50985163 YY_BREAK
5099 case 200:
5100 YY_RULE_SETUP
5101 #line 415 "util/configlexer.lex"
5164 case 201:
5165 YY_RULE_SETUP
5166 #line 416 "util/configlexer.lex"
51025167 { YDVAR(2, VAR_LOCAL_ZONE) }
51035168 YY_BREAK
5104 case 201:
5105 YY_RULE_SETUP
5106 #line 416 "util/configlexer.lex"
5169 case 202:
5170 YY_RULE_SETUP
5171 #line 417 "util/configlexer.lex"
51075172 { YDVAR(1, VAR_LOCAL_DATA) }
51085173 YY_BREAK
5109 case 202:
5110 YY_RULE_SETUP
5111 #line 417 "util/configlexer.lex"
5174 case 203:
5175 YY_RULE_SETUP
5176 #line 418 "util/configlexer.lex"
51125177 { YDVAR(1, VAR_LOCAL_DATA_PTR) }
51135178 YY_BREAK
5114 case 203:
5115 YY_RULE_SETUP
5116 #line 418 "util/configlexer.lex"
5179 case 204:
5180 YY_RULE_SETUP
5181 #line 419 "util/configlexer.lex"
51175182 { YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
51185183 YY_BREAK
5119 case 204:
5120 YY_RULE_SETUP
5121 #line 419 "util/configlexer.lex"
5184 case 205:
5185 YY_RULE_SETUP
5186 #line 420 "util/configlexer.lex"
51225187 { YDVAR(1, VAR_INSECURE_LAN_ZONES) }
51235188 YY_BREAK
5124 case 205:
5125 YY_RULE_SETUP
5126 #line 420 "util/configlexer.lex"
5189 case 206:
5190 YY_RULE_SETUP
5191 #line 421 "util/configlexer.lex"
51275192 { YDVAR(1, VAR_STATISTICS_INTERVAL) }
51285193 YY_BREAK
5129 case 206:
5130 YY_RULE_SETUP
5131 #line 421 "util/configlexer.lex"
5194 case 207:
5195 YY_RULE_SETUP
5196 #line 422 "util/configlexer.lex"
51325197 { YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
51335198 YY_BREAK
5134 case 207:
5135 YY_RULE_SETUP
5136 #line 422 "util/configlexer.lex"
5199 case 208:
5200 YY_RULE_SETUP
5201 #line 423 "util/configlexer.lex"
51375202 { YDVAR(1, VAR_EXTENDED_STATISTICS) }
51385203 YY_BREAK
5139 case 208:
5140 YY_RULE_SETUP
5141 #line 423 "util/configlexer.lex"
5204 case 209:
5205 YY_RULE_SETUP
5206 #line 424 "util/configlexer.lex"
51425207 { YDVAR(1, VAR_SHM_ENABLE) }
51435208 YY_BREAK
5144 case 209:
5145 YY_RULE_SETUP
5146 #line 424 "util/configlexer.lex"
5209 case 210:
5210 YY_RULE_SETUP
5211 #line 425 "util/configlexer.lex"
51475212 { YDVAR(1, VAR_SHM_KEY) }
51485213 YY_BREAK
5149 case 210:
5150 YY_RULE_SETUP
5151 #line 425 "util/configlexer.lex"
5214 case 211:
5215 YY_RULE_SETUP
5216 #line 426 "util/configlexer.lex"
51525217 { YDVAR(0, VAR_REMOTE_CONTROL) }
51535218 YY_BREAK
5154 case 211:
5155 YY_RULE_SETUP
5156 #line 426 "util/configlexer.lex"
5219 case 212:
5220 YY_RULE_SETUP
5221 #line 427 "util/configlexer.lex"
51575222 { YDVAR(1, VAR_CONTROL_ENABLE) }
51585223 YY_BREAK
5159 case 212:
5160 YY_RULE_SETUP
5161 #line 427 "util/configlexer.lex"
5224 case 213:
5225 YY_RULE_SETUP
5226 #line 428 "util/configlexer.lex"
51625227 { YDVAR(1, VAR_CONTROL_INTERFACE) }
51635228 YY_BREAK
5164 case 213:
5165 YY_RULE_SETUP
5166 #line 428 "util/configlexer.lex"
5229 case 214:
5230 YY_RULE_SETUP
5231 #line 429 "util/configlexer.lex"
51675232 { YDVAR(1, VAR_CONTROL_PORT) }
51685233 YY_BREAK
5169 case 214:
5170 YY_RULE_SETUP
5171 #line 429 "util/configlexer.lex"
5234 case 215:
5235 YY_RULE_SETUP
5236 #line 430 "util/configlexer.lex"
51725237 { YDVAR(1, VAR_CONTROL_USE_CERT) }
51735238 YY_BREAK
5174 case 215:
5175 YY_RULE_SETUP
5176 #line 430 "util/configlexer.lex"
5239 case 216:
5240 YY_RULE_SETUP
5241 #line 431 "util/configlexer.lex"
51775242 { YDVAR(1, VAR_SERVER_KEY_FILE) }
51785243 YY_BREAK
5179 case 216:
5180 YY_RULE_SETUP
5181 #line 431 "util/configlexer.lex"
5244 case 217:
5245 YY_RULE_SETUP
5246 #line 432 "util/configlexer.lex"
51825247 { YDVAR(1, VAR_SERVER_CERT_FILE) }
51835248 YY_BREAK
5184 case 217:
5185 YY_RULE_SETUP
5186 #line 432 "util/configlexer.lex"
5249 case 218:
5250 YY_RULE_SETUP
5251 #line 433 "util/configlexer.lex"
51875252 { YDVAR(1, VAR_CONTROL_KEY_FILE) }
51885253 YY_BREAK
5189 case 218:
5190 YY_RULE_SETUP
5191 #line 433 "util/configlexer.lex"
5254 case 219:
5255 YY_RULE_SETUP
5256 #line 434 "util/configlexer.lex"
51925257 { YDVAR(1, VAR_CONTROL_CERT_FILE) }
51935258 YY_BREAK
5194 case 219:
5195 YY_RULE_SETUP
5196 #line 434 "util/configlexer.lex"
5259 case 220:
5260 YY_RULE_SETUP
5261 #line 435 "util/configlexer.lex"
51975262 { YDVAR(1, VAR_PYTHON_SCRIPT) }
51985263 YY_BREAK
5199 case 220:
5200 YY_RULE_SETUP
5201 #line 435 "util/configlexer.lex"
5264 case 221:
5265 YY_RULE_SETUP
5266 #line 436 "util/configlexer.lex"
52025267 { YDVAR(0, VAR_PYTHON) }
52035268 YY_BREAK
5204 case 221:
5205 YY_RULE_SETUP
5206 #line 436 "util/configlexer.lex"
5269 case 222:
5270 YY_RULE_SETUP
5271 #line 437 "util/configlexer.lex"
52075272 { YDVAR(1, VAR_DYNLIB_FILE) }
52085273 YY_BREAK
5209 case 222:
5210 YY_RULE_SETUP
5211 #line 437 "util/configlexer.lex"
5274 case 223:
5275 YY_RULE_SETUP
5276 #line 438 "util/configlexer.lex"
52125277 { YDVAR(0, VAR_DYNLIB) }
52135278 YY_BREAK
5214 case 223:
5215 YY_RULE_SETUP
5216 #line 438 "util/configlexer.lex"
5279 case 224:
5280 YY_RULE_SETUP
5281 #line 439 "util/configlexer.lex"
52175282 { YDVAR(1, VAR_DOMAIN_INSECURE) }
52185283 YY_BREAK
5219 case 224:
5220 YY_RULE_SETUP
5221 #line 439 "util/configlexer.lex"
5284 case 225:
5285 YY_RULE_SETUP
5286 #line 440 "util/configlexer.lex"
52225287 { YDVAR(1, VAR_MINIMAL_RESPONSES) }
52235288 YY_BREAK
5224 case 225:
5225 YY_RULE_SETUP
5226 #line 440 "util/configlexer.lex"
5289 case 226:
5290 YY_RULE_SETUP
5291 #line 441 "util/configlexer.lex"
52275292 { YDVAR(1, VAR_RRSET_ROUNDROBIN) }
52285293 YY_BREAK
5229 case 226:
5230 YY_RULE_SETUP
5231 #line 441 "util/configlexer.lex"
5294 case 227:
5295 YY_RULE_SETUP
5296 #line 442 "util/configlexer.lex"
52325297 { YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) }
52335298 YY_BREAK
5234 case 227:
5235 YY_RULE_SETUP
5236 #line 442 "util/configlexer.lex"
5299 case 228:
5300 YY_RULE_SETUP
5301 #line 443 "util/configlexer.lex"
52375302 { YDVAR(1, VAR_MAX_UDP_SIZE) }
52385303 YY_BREAK
5239 case 228:
5240 YY_RULE_SETUP
5241 #line 443 "util/configlexer.lex"
5304 case 229:
5305 YY_RULE_SETUP
5306 #line 444 "util/configlexer.lex"
52425307 { YDVAR(1, VAR_DNS64_PREFIX) }
52435308 YY_BREAK
5244 case 229:
5245 YY_RULE_SETUP
5246 #line 444 "util/configlexer.lex"
5309 case 230:
5310 YY_RULE_SETUP
5311 #line 445 "util/configlexer.lex"
52475312 { YDVAR(1, VAR_DNS64_SYNTHALL) }
52485313 YY_BREAK
5249 case 230:
5250 YY_RULE_SETUP
5251 #line 445 "util/configlexer.lex"
5314 case 231:
5315 YY_RULE_SETUP
5316 #line 446 "util/configlexer.lex"
52525317 { YDVAR(1, VAR_DNS64_IGNORE_AAAA) }
52535318 YY_BREAK
5254 case 231:
5255 YY_RULE_SETUP
5256 #line 446 "util/configlexer.lex"
5319 case 232:
5320 YY_RULE_SETUP
5321 #line 447 "util/configlexer.lex"
52575322 { YDVAR(1, VAR_DEFINE_TAG) }
52585323 YY_BREAK
5259 case 232:
5260 YY_RULE_SETUP
5261 #line 447 "util/configlexer.lex"
5324 case 233:
5325 YY_RULE_SETUP
5326 #line 448 "util/configlexer.lex"
52625327 { YDVAR(2, VAR_LOCAL_ZONE_TAG) }
52635328 YY_BREAK
5264 case 233:
5265 YY_RULE_SETUP
5266 #line 448 "util/configlexer.lex"
5329 case 234:
5330 YY_RULE_SETUP
5331 #line 449 "util/configlexer.lex"
52675332 { YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
52685333 YY_BREAK
5269 case 234:
5270 YY_RULE_SETUP
5271 #line 449 "util/configlexer.lex"
5334 case 235:
5335 YY_RULE_SETUP
5336 #line 450 "util/configlexer.lex"
52725337 { YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
52735338 YY_BREAK
5274 case 235:
5275 YY_RULE_SETUP
5276 #line 450 "util/configlexer.lex"
5339 case 236:
5340 YY_RULE_SETUP
5341 #line 451 "util/configlexer.lex"
52775342 { YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
52785343 YY_BREAK
5279 case 236:
5280 YY_RULE_SETUP
5281 #line 451 "util/configlexer.lex"
5344 case 237:
5345 YY_RULE_SETUP
5346 #line 452 "util/configlexer.lex"
52825347 { YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
52835348 YY_BREAK
5284 case 237:
5285 YY_RULE_SETUP
5286 #line 452 "util/configlexer.lex"
5349 case 238:
5350 YY_RULE_SETUP
5351 #line 453 "util/configlexer.lex"
52875352 { YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
52885353 YY_BREAK
5289 case 238:
5290 YY_RULE_SETUP
5291 #line 453 "util/configlexer.lex"
5354 case 239:
5355 YY_RULE_SETUP
5356 #line 454 "util/configlexer.lex"
52925357 { YDVAR(0, VAR_DNSTAP) }
52935358 YY_BREAK
5294 case 239:
5295 YY_RULE_SETUP
5296 #line 454 "util/configlexer.lex"
5359 case 240:
5360 YY_RULE_SETUP
5361 #line 455 "util/configlexer.lex"
52975362 { YDVAR(1, VAR_DNSTAP_ENABLE) }
52985363 YY_BREAK
5299 case 240:
5300 YY_RULE_SETUP
5301 #line 455 "util/configlexer.lex"
5364 case 241:
5365 YY_RULE_SETUP
5366 #line 456 "util/configlexer.lex"
53025367 { YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) }
53035368 YY_BREAK
5304 case 241:
5305 YY_RULE_SETUP
5306 #line 456 "util/configlexer.lex"
5369 case 242:
5370 YY_RULE_SETUP
5371 #line 457 "util/configlexer.lex"
53075372 { YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
53085373 YY_BREAK
5309 case 242:
5310 YY_RULE_SETUP
5311 #line 457 "util/configlexer.lex"
5374 case 243:
5375 YY_RULE_SETUP
5376 #line 458 "util/configlexer.lex"
53125377 { YDVAR(1, VAR_DNSTAP_IP) }
53135378 YY_BREAK
5314 case 243:
5315 YY_RULE_SETUP
5316 #line 458 "util/configlexer.lex"
5379 case 244:
5380 YY_RULE_SETUP
5381 #line 459 "util/configlexer.lex"
53175382 { YDVAR(1, VAR_DNSTAP_TLS) }
53185383 YY_BREAK
5319 case 244:
5320 YY_RULE_SETUP
5321 #line 459 "util/configlexer.lex"
5384 case 245:
5385 YY_RULE_SETUP
5386 #line 460 "util/configlexer.lex"
53225387 { YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) }
53235388 YY_BREAK
5324 case 245:
5325 YY_RULE_SETUP
5326 #line 460 "util/configlexer.lex"
5389 case 246:
5390 YY_RULE_SETUP
5391 #line 461 "util/configlexer.lex"
53275392 { YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) }
53285393 YY_BREAK
5329 case 246:
5330 YY_RULE_SETUP
5331 #line 461 "util/configlexer.lex"
5394 case 247:
5395 YY_RULE_SETUP
5396 #line 462 "util/configlexer.lex"
53325397 {
53335398 YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) }
53345399 YY_BREAK
5335 case 247:
5336 YY_RULE_SETUP
5337 #line 463 "util/configlexer.lex"
5400 case 248:
5401 YY_RULE_SETUP
5402 #line 464 "util/configlexer.lex"
53385403 {
53395404 YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) }
53405405 YY_BREAK
5341 case 248:
5342 YY_RULE_SETUP
5343 #line 465 "util/configlexer.lex"
5406 case 249:
5407 YY_RULE_SETUP
5408 #line 466 "util/configlexer.lex"
53445409 { YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
53455410 YY_BREAK
5346 case 249:
5347 YY_RULE_SETUP
5348 #line 466 "util/configlexer.lex"
5411 case 250:
5412 YY_RULE_SETUP
5413 #line 467 "util/configlexer.lex"
53495414 { YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
53505415 YY_BREAK
5351 case 250:
5352 YY_RULE_SETUP
5353 #line 467 "util/configlexer.lex"
5416 case 251:
5417 YY_RULE_SETUP
5418 #line 468 "util/configlexer.lex"
53545419 { YDVAR(1, VAR_DNSTAP_IDENTITY) }
53555420 YY_BREAK
5356 case 251:
5357 YY_RULE_SETUP
5358 #line 468 "util/configlexer.lex"
5421 case 252:
5422 YY_RULE_SETUP
5423 #line 469 "util/configlexer.lex"
53595424 { YDVAR(1, VAR_DNSTAP_VERSION) }
53605425 YY_BREAK
5361 case 252:
5362 YY_RULE_SETUP
5363 #line 469 "util/configlexer.lex"
5426 case 253:
5427 YY_RULE_SETUP
5428 #line 470 "util/configlexer.lex"
53645429 {
53655430 YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
53665431 YY_BREAK
5367 case 253:
5368 YY_RULE_SETUP
5369 #line 471 "util/configlexer.lex"
5432 case 254:
5433 YY_RULE_SETUP
5434 #line 472 "util/configlexer.lex"
53705435 {
53715436 YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
53725437 YY_BREAK
5373 case 254:
5374 YY_RULE_SETUP
5375 #line 473 "util/configlexer.lex"
5438 case 255:
5439 YY_RULE_SETUP
5440 #line 474 "util/configlexer.lex"
53765441 {
53775442 YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
53785443 YY_BREAK
5379 case 255:
5380 YY_RULE_SETUP
5381 #line 475 "util/configlexer.lex"
5444 case 256:
5445 YY_RULE_SETUP
5446 #line 476 "util/configlexer.lex"
53825447 {
53835448 YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
53845449 YY_BREAK
5385 case 256:
5386 YY_RULE_SETUP
5387 #line 477 "util/configlexer.lex"
5450 case 257:
5451 YY_RULE_SETUP
5452 #line 478 "util/configlexer.lex"
53885453 {
53895454 YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
53905455 YY_BREAK
5391 case 257:
5392 YY_RULE_SETUP
5393 #line 479 "util/configlexer.lex"
5456 case 258:
5457 YY_RULE_SETUP
5458 #line 480 "util/configlexer.lex"
53945459 {
53955460 YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
53965461 YY_BREAK
5397 case 258:
5398 YY_RULE_SETUP
5399 #line 481 "util/configlexer.lex"
5462 case 259:
5463 YY_RULE_SETUP
5464 #line 482 "util/configlexer.lex"
54005465 { YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
54015466 YY_BREAK
5402 case 259:
5403 YY_RULE_SETUP
5404 #line 482 "util/configlexer.lex"
5467 case 260:
5468 YY_RULE_SETUP
5469 #line 483 "util/configlexer.lex"
54055470 { YDVAR(1, VAR_IP_RATELIMIT) }
54065471 YY_BREAK
5407 case 260:
5408 YY_RULE_SETUP
5409 #line 483 "util/configlexer.lex"
5472 case 261:
5473 YY_RULE_SETUP
5474 #line 484 "util/configlexer.lex"
54105475 { YDVAR(1, VAR_RATELIMIT) }
54115476 YY_BREAK
5412 case 261:
5413 YY_RULE_SETUP
5414 #line 484 "util/configlexer.lex"
5477 case 262:
5478 YY_RULE_SETUP
5479 #line 485 "util/configlexer.lex"
54155480 { YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
54165481 YY_BREAK
5417 case 262:
5418 YY_RULE_SETUP
5419 #line 485 "util/configlexer.lex"
5482 case 263:
5483 YY_RULE_SETUP
5484 #line 486 "util/configlexer.lex"
54205485 { YDVAR(1, VAR_RATELIMIT_SLABS) }
54215486 YY_BREAK
5422 case 263:
5423 YY_RULE_SETUP
5424 #line 486 "util/configlexer.lex"
5487 case 264:
5488 YY_RULE_SETUP
5489 #line 487 "util/configlexer.lex"
54255490 { YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
54265491 YY_BREAK
5427 case 264:
5428 YY_RULE_SETUP
5429 #line 487 "util/configlexer.lex"
5492 case 265:
5493 YY_RULE_SETUP
5494 #line 488 "util/configlexer.lex"
54305495 { YDVAR(1, VAR_RATELIMIT_SIZE) }
54315496 YY_BREAK
5432 case 265:
5433 YY_RULE_SETUP
5434 #line 488 "util/configlexer.lex"
5497 case 266:
5498 YY_RULE_SETUP
5499 #line 489 "util/configlexer.lex"
54355500 { YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
54365501 YY_BREAK
5437 case 266:
5438 YY_RULE_SETUP
5439 #line 489 "util/configlexer.lex"
5502 case 267:
5503 YY_RULE_SETUP
5504 #line 490 "util/configlexer.lex"
54405505 { YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
54415506 YY_BREAK
5442 case 267:
5443 YY_RULE_SETUP
5444 #line 490 "util/configlexer.lex"
5507 case 268:
5508 YY_RULE_SETUP
5509 #line 491 "util/configlexer.lex"
54455510 { YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
54465511 YY_BREAK
5447 case 268:
5448 YY_RULE_SETUP
5449 #line 491 "util/configlexer.lex"
5512 case 269:
5513 YY_RULE_SETUP
5514 #line 492 "util/configlexer.lex"
54505515 { YDVAR(1, VAR_RATELIMIT_FACTOR) }
54515516 YY_BREAK
5452 case 269:
5453 YY_RULE_SETUP
5454 #line 492 "util/configlexer.lex"
5517 case 270:
5518 YY_RULE_SETUP
5519 #line 493 "util/configlexer.lex"
54555520 { YDVAR(1, VAR_LOW_RTT) }
54565521 YY_BREAK
5457 case 270:
5458 YY_RULE_SETUP
5459 #line 493 "util/configlexer.lex"
5522 case 271:
5523 YY_RULE_SETUP
5524 #line 494 "util/configlexer.lex"
54605525 { YDVAR(1, VAR_FAST_SERVER_NUM) }
5461 YY_BREAK
5462 case 271:
5463 YY_RULE_SETUP
5464 #line 494 "util/configlexer.lex"
5465 { YDVAR(1, VAR_FAST_SERVER_PERMIL) }
54665526 YY_BREAK
54675527 case 272:
54685528 YY_RULE_SETUP
54775537 case 274:
54785538 YY_RULE_SETUP
54795539 #line 497 "util/configlexer.lex"
5540 { YDVAR(1, VAR_FAST_SERVER_PERMIL) }
5541 YY_BREAK
5542 case 275:
5543 YY_RULE_SETUP
5544 #line 498 "util/configlexer.lex"
54805545 { YDVAR(2, VAR_RESPONSE_IP_TAG) }
54815546 YY_BREAK
5482 case 275:
5483 YY_RULE_SETUP
5484 #line 498 "util/configlexer.lex"
5547 case 276:
5548 YY_RULE_SETUP
5549 #line 499 "util/configlexer.lex"
54855550 { YDVAR(2, VAR_RESPONSE_IP) }
54865551 YY_BREAK
5487 case 276:
5488 YY_RULE_SETUP
5489 #line 499 "util/configlexer.lex"
5552 case 277:
5553 YY_RULE_SETUP
5554 #line 500 "util/configlexer.lex"
54905555 { YDVAR(2, VAR_RESPONSE_IP_DATA) }
54915556 YY_BREAK
5492 case 277:
5493 YY_RULE_SETUP
5494 #line 500 "util/configlexer.lex"
5557 case 278:
5558 YY_RULE_SETUP
5559 #line 501 "util/configlexer.lex"
54955560 { YDVAR(0, VAR_DNSCRYPT) }
54965561 YY_BREAK
5497 case 278:
5498 YY_RULE_SETUP
5499 #line 501 "util/configlexer.lex"
5562 case 279:
5563 YY_RULE_SETUP
5564 #line 502 "util/configlexer.lex"
55005565 { YDVAR(1, VAR_DNSCRYPT_ENABLE) }
55015566 YY_BREAK
5502 case 279:
5503 YY_RULE_SETUP
5504 #line 502 "util/configlexer.lex"
5567 case 280:
5568 YY_RULE_SETUP
5569 #line 503 "util/configlexer.lex"
55055570 { YDVAR(1, VAR_DNSCRYPT_PORT) }
55065571 YY_BREAK
5507 case 280:
5508 YY_RULE_SETUP
5509 #line 503 "util/configlexer.lex"
5572 case 281:
5573 YY_RULE_SETUP
5574 #line 504 "util/configlexer.lex"
55105575 { YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
55115576 YY_BREAK
5512 case 281:
5513 YY_RULE_SETUP
5514 #line 504 "util/configlexer.lex"
5577 case 282:
5578 YY_RULE_SETUP
5579 #line 505 "util/configlexer.lex"
55155580 { YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
55165581 YY_BREAK
5517 case 282:
5518 YY_RULE_SETUP
5519 #line 505 "util/configlexer.lex"
5582 case 283:
5583 YY_RULE_SETUP
5584 #line 506 "util/configlexer.lex"
55205585 { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
55215586 YY_BREAK
5522 case 283:
5523 YY_RULE_SETUP
5524 #line 506 "util/configlexer.lex"
5587 case 284:
5588 YY_RULE_SETUP
5589 #line 507 "util/configlexer.lex"
55255590 { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
55265591 YY_BREAK
5527 case 284:
5528 YY_RULE_SETUP
5529 #line 507 "util/configlexer.lex"
5592 case 285:
5593 YY_RULE_SETUP
5594 #line 508 "util/configlexer.lex"
55305595 {
55315596 YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
55325597 YY_BREAK
5533 case 285:
5534 YY_RULE_SETUP
5535 #line 509 "util/configlexer.lex"
5598 case 286:
5599 YY_RULE_SETUP
5600 #line 510 "util/configlexer.lex"
55365601 {
55375602 YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
55385603 YY_BREAK
5539 case 286:
5540 YY_RULE_SETUP
5541 #line 511 "util/configlexer.lex"
5604 case 287:
5605 YY_RULE_SETUP
5606 #line 512 "util/configlexer.lex"
55425607 { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
55435608 YY_BREAK
5544 case 287:
5545 YY_RULE_SETUP
5546 #line 512 "util/configlexer.lex"
5609 case 288:
5610 YY_RULE_SETUP
5611 #line 513 "util/configlexer.lex"
55475612 { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
55485613 YY_BREAK
5549 case 288:
5550 YY_RULE_SETUP
5551 #line 513 "util/configlexer.lex"
5614 case 289:
5615 YY_RULE_SETUP
5616 #line 514 "util/configlexer.lex"
5617 { YDVAR(1, VAR_PAD_RESPONSES) }
5618 YY_BREAK
5619 case 290:
5620 YY_RULE_SETUP
5621 #line 515 "util/configlexer.lex"
5622 { YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) }
5623 YY_BREAK
5624 case 291:
5625 YY_RULE_SETUP
5626 #line 516 "util/configlexer.lex"
5627 { YDVAR(1, VAR_PAD_QUERIES) }
5628 YY_BREAK
5629 case 292:
5630 YY_RULE_SETUP
5631 #line 517 "util/configlexer.lex"
5632 { YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) }
5633 YY_BREAK
5634 case 293:
5635 YY_RULE_SETUP
5636 #line 518 "util/configlexer.lex"
55525637 { YDVAR(1, VAR_IPSECMOD_ENABLED) }
55535638 YY_BREAK
5554 case 289:
5555 YY_RULE_SETUP
5556 #line 514 "util/configlexer.lex"
5639 case 294:
5640 YY_RULE_SETUP
5641 #line 519 "util/configlexer.lex"
55575642 { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
55585643 YY_BREAK
5559 case 290:
5560 YY_RULE_SETUP
5561 #line 515 "util/configlexer.lex"
5644 case 295:
5645 YY_RULE_SETUP
5646 #line 520 "util/configlexer.lex"
55625647 { YDVAR(1, VAR_IPSECMOD_HOOK) }
55635648 YY_BREAK
5564 case 291:
5565 YY_RULE_SETUP
5566 #line 516 "util/configlexer.lex"
5649 case 296:
5650 YY_RULE_SETUP
5651 #line 521 "util/configlexer.lex"
55675652 { YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
55685653 YY_BREAK
5569 case 292:
5570 YY_RULE_SETUP
5571 #line 517 "util/configlexer.lex"
5654 case 297:
5655 YY_RULE_SETUP
5656 #line 522 "util/configlexer.lex"
55725657 { YDVAR(1, VAR_IPSECMOD_WHITELIST) }
55735658 YY_BREAK
5574 case 293:
5575 YY_RULE_SETUP
5576 #line 518 "util/configlexer.lex"
5659 case 298:
5660 YY_RULE_SETUP
5661 #line 523 "util/configlexer.lex"
55775662 { YDVAR(1, VAR_IPSECMOD_WHITELIST) }
55785663 YY_BREAK
5579 case 294:
5580 YY_RULE_SETUP
5581 #line 519 "util/configlexer.lex"
5664 case 299:
5665 YY_RULE_SETUP
5666 #line 524 "util/configlexer.lex"
55825667 { YDVAR(1, VAR_IPSECMOD_STRICT) }
55835668 YY_BREAK
5584 case 295:
5585 YY_RULE_SETUP
5586 #line 520 "util/configlexer.lex"
5669 case 300:
5670 YY_RULE_SETUP
5671 #line 525 "util/configlexer.lex"
55875672 { YDVAR(0, VAR_CACHEDB) }
55885673 YY_BREAK
5589 case 296:
5590 YY_RULE_SETUP
5591 #line 521 "util/configlexer.lex"
5674 case 301:
5675 YY_RULE_SETUP
5676 #line 526 "util/configlexer.lex"
55925677 { YDVAR(1, VAR_CACHEDB_BACKEND) }
55935678 YY_BREAK
5594 case 297:
5595 YY_RULE_SETUP
5596 #line 522 "util/configlexer.lex"
5679 case 302:
5680 YY_RULE_SETUP
5681 #line 527 "util/configlexer.lex"
55975682 { YDVAR(1, VAR_CACHEDB_SECRETSEED) }
55985683 YY_BREAK
5599 case 298:
5600 YY_RULE_SETUP
5601 #line 523 "util/configlexer.lex"
5684 case 303:
5685 YY_RULE_SETUP
5686 #line 528 "util/configlexer.lex"
56025687 { YDVAR(1, VAR_CACHEDB_REDISHOST) }
56035688 YY_BREAK
5604 case 299:
5605 YY_RULE_SETUP
5606 #line 524 "util/configlexer.lex"
5689 case 304:
5690 YY_RULE_SETUP
5691 #line 529 "util/configlexer.lex"
56075692 { YDVAR(1, VAR_CACHEDB_REDISPORT) }
56085693 YY_BREAK
5609 case 300:
5610 YY_RULE_SETUP
5611 #line 525 "util/configlexer.lex"
5694 case 305:
5695 YY_RULE_SETUP
5696 #line 530 "util/configlexer.lex"
56125697 { YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
56135698 YY_BREAK
5614 case 301:
5615 YY_RULE_SETUP
5616 #line 526 "util/configlexer.lex"
5699 case 306:
5700 YY_RULE_SETUP
5701 #line 531 "util/configlexer.lex"
56175702 { YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) }
56185703 YY_BREAK
5619 case 302:
5620 YY_RULE_SETUP
5621 #line 527 "util/configlexer.lex"
5704 case 307:
5705 YY_RULE_SETUP
5706 #line 532 "util/configlexer.lex"
56225707 { YDVAR(0, VAR_IPSET) }
56235708 YY_BREAK
5624 case 303:
5625 YY_RULE_SETUP
5626 #line 528 "util/configlexer.lex"
5709 case 308:
5710 YY_RULE_SETUP
5711 #line 533 "util/configlexer.lex"
56275712 { YDVAR(1, VAR_IPSET_NAME_V4) }
56285713 YY_BREAK
5629 case 304:
5630 YY_RULE_SETUP
5631 #line 529 "util/configlexer.lex"
5714 case 309:
5715 YY_RULE_SETUP
5716 #line 534 "util/configlexer.lex"
56325717 { YDVAR(1, VAR_IPSET_NAME_V6) }
56335718 YY_BREAK
5634 case 305:
5635 YY_RULE_SETUP
5636 #line 530 "util/configlexer.lex"
5719 case 310:
5720 YY_RULE_SETUP
5721 #line 535 "util/configlexer.lex"
56375722 { YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
56385723 YY_BREAK
5639 case 306:
5640 YY_RULE_SETUP
5641 #line 531 "util/configlexer.lex"
5724 case 311:
5725 YY_RULE_SETUP
5726 #line 536 "util/configlexer.lex"
56425727 { YDVAR(2, VAR_TCP_CONNECTION_LIMIT) }
56435728 YY_BREAK
5644 case 307:
5645 YY_RULE_SETUP
5646 #line 532 "util/configlexer.lex"
5729 case 312:
5730 YY_RULE_SETUP
5731 #line 537 "util/configlexer.lex"
56475732 { YDVAR(2, VAR_EDNS_CLIENT_STRING) }
56485733 YY_BREAK
5649 case 308:
5650 YY_RULE_SETUP
5651 #line 533 "util/configlexer.lex"
5734 case 313:
5735 YY_RULE_SETUP
5736 #line 538 "util/configlexer.lex"
56525737 { YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) }
56535738 YY_BREAK
5654 case 309:
5655 /* rule 309 can match eol */
5656 YY_RULE_SETUP
5657 #line 534 "util/configlexer.lex"
5739 case 314:
5740 YY_RULE_SETUP
5741 #line 539 "util/configlexer.lex"
5742 { YDVAR(1, VAR_NSID ) }
5743 YY_BREAK
5744 case 315:
5745 /* rule 315 can match eol */
5746 YY_RULE_SETUP
5747 #line 540 "util/configlexer.lex"
56585748 { LEXOUT(("NL\n")); cfg_parser->line++; }
56595749 YY_BREAK
56605750 /* Quoted strings. Strip leading and ending quotes */
5661 case 310:
5662 YY_RULE_SETUP
5663 #line 537 "util/configlexer.lex"
5751 case 316:
5752 YY_RULE_SETUP
5753 #line 543 "util/configlexer.lex"
56645754 { BEGIN(quotedstring); LEXOUT(("QS ")); }
56655755 YY_BREAK
56665756 case YY_STATE_EOF(quotedstring):
5667 #line 538 "util/configlexer.lex"
5757 #line 544 "util/configlexer.lex"
56685758 {
56695759 yyerror("EOF inside quoted string");
56705760 if(--num_args == 0) { BEGIN(INITIAL); }
56715761 else { BEGIN(val); }
56725762 }
56735763 YY_BREAK
5674 case 311:
5675 YY_RULE_SETUP
5676 #line 543 "util/configlexer.lex"
5764 case 317:
5765 YY_RULE_SETUP
5766 #line 549 "util/configlexer.lex"
56775767 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
56785768 YY_BREAK
5679 case 312:
5680 /* rule 312 can match eol */
5681 YY_RULE_SETUP
5682 #line 544 "util/configlexer.lex"
5769 case 318:
5770 /* rule 318 can match eol */
5771 YY_RULE_SETUP
5772 #line 550 "util/configlexer.lex"
56835773 { yyerror("newline inside quoted string, no end \"");
56845774 cfg_parser->line++; BEGIN(INITIAL); }
56855775 YY_BREAK
5686 case 313:
5687 YY_RULE_SETUP
5688 #line 546 "util/configlexer.lex"
5776 case 319:
5777 YY_RULE_SETUP
5778 #line 552 "util/configlexer.lex"
56895779 {
56905780 LEXOUT(("QE "));
56915781 if(--num_args == 0) { BEGIN(INITIAL); }
56985788 }
56995789 YY_BREAK
57005790 /* Single Quoted strings. Strip leading and ending quotes */
5701 case 314:
5702 YY_RULE_SETUP
5703 #line 558 "util/configlexer.lex"
5791 case 320:
5792 YY_RULE_SETUP
5793 #line 564 "util/configlexer.lex"
57045794 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
57055795 YY_BREAK
57065796 case YY_STATE_EOF(singlequotedstr):
5707 #line 559 "util/configlexer.lex"
5797 #line 565 "util/configlexer.lex"
57085798 {
57095799 yyerror("EOF inside quoted string");
57105800 if(--num_args == 0) { BEGIN(INITIAL); }
57115801 else { BEGIN(val); }
57125802 }
57135803 YY_BREAK
5714 case 315:
5715 YY_RULE_SETUP
5716 #line 564 "util/configlexer.lex"
5804 case 321:
5805 YY_RULE_SETUP
5806 #line 570 "util/configlexer.lex"
57175807 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
57185808 YY_BREAK
5719 case 316:
5720 /* rule 316 can match eol */
5721 YY_RULE_SETUP
5722 #line 565 "util/configlexer.lex"
5809 case 322:
5810 /* rule 322 can match eol */
5811 YY_RULE_SETUP
5812 #line 571 "util/configlexer.lex"
57235813 { yyerror("newline inside quoted string, no end '");
57245814 cfg_parser->line++; BEGIN(INITIAL); }
57255815 YY_BREAK
5726 case 317:
5727 YY_RULE_SETUP
5728 #line 567 "util/configlexer.lex"
5816 case 323:
5817 YY_RULE_SETUP
5818 #line 573 "util/configlexer.lex"
57295819 {
57305820 LEXOUT(("SQE "));
57315821 if(--num_args == 0) { BEGIN(INITIAL); }
57385828 }
57395829 YY_BREAK
57405830 /* include: directive */
5741 case 318:
5742 YY_RULE_SETUP
5743 #line 579 "util/configlexer.lex"
5831 case 324:
5832 YY_RULE_SETUP
5833 #line 585 "util/configlexer.lex"
57445834 {
57455835 LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
57465836 YY_BREAK
57475837 case YY_STATE_EOF(include):
5748 #line 581 "util/configlexer.lex"
5838 #line 587 "util/configlexer.lex"
57495839 {
57505840 yyerror("EOF inside include directive");
57515841 BEGIN(inc_prev);
57525842 }
57535843 YY_BREAK
5754 case 319:
5755 YY_RULE_SETUP
5756 #line 585 "util/configlexer.lex"
5844 case 325:
5845 YY_RULE_SETUP
5846 #line 591 "util/configlexer.lex"
57575847 { LEXOUT(("ISP ")); /* ignore */ }
57585848 YY_BREAK
5759 case 320:
5760 /* rule 320 can match eol */
5761 YY_RULE_SETUP
5762 #line 586 "util/configlexer.lex"
5849 case 326:
5850 /* rule 326 can match eol */
5851 YY_RULE_SETUP
5852 #line 592 "util/configlexer.lex"
57635853 { LEXOUT(("NL\n")); cfg_parser->line++;}
57645854 YY_BREAK
5765 case 321:
5766 YY_RULE_SETUP
5767 #line 587 "util/configlexer.lex"
5855 case 327:
5856 YY_RULE_SETUP
5857 #line 593 "util/configlexer.lex"
57685858 { LEXOUT(("IQS ")); BEGIN(include_quoted); }
57695859 YY_BREAK
5770 case 322:
5771 YY_RULE_SETUP
5772 #line 588 "util/configlexer.lex"
5860 case 328:
5861 YY_RULE_SETUP
5862 #line 594 "util/configlexer.lex"
57735863 {
57745864 LEXOUT(("Iunquotedstr(%s) ", yytext));
57755865 config_start_include_glob(yytext, 0);
57775867 }
57785868 YY_BREAK
57795869 case YY_STATE_EOF(include_quoted):
5780 #line 593 "util/configlexer.lex"
5870 #line 599 "util/configlexer.lex"
57815871 {
57825872 yyerror("EOF inside quoted string");
57835873 BEGIN(inc_prev);
57845874 }
57855875 YY_BREAK
5786 case 323:
5787 YY_RULE_SETUP
5788 #line 597 "util/configlexer.lex"
5876 case 329:
5877 YY_RULE_SETUP
5878 #line 603 "util/configlexer.lex"
57895879 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
57905880 YY_BREAK
5791 case 324:
5792 /* rule 324 can match eol */
5793 YY_RULE_SETUP
5794 #line 598 "util/configlexer.lex"
5881 case 330:
5882 /* rule 330 can match eol */
5883 YY_RULE_SETUP
5884 #line 604 "util/configlexer.lex"
57955885 { yyerror("newline before \" in include name");
57965886 cfg_parser->line++; BEGIN(inc_prev); }
57975887 YY_BREAK
5798 case 325:
5799 YY_RULE_SETUP
5800 #line 600 "util/configlexer.lex"
5888 case 331:
5889 YY_RULE_SETUP
5890 #line 606 "util/configlexer.lex"
58015891 {
58025892 LEXOUT(("IQE "));
58035893 yytext[yyleng - 1] = '\0';
58075897 YY_BREAK
58085898 case YY_STATE_EOF(INITIAL):
58095899 case YY_STATE_EOF(val):
5810 #line 606 "util/configlexer.lex"
5900 #line 612 "util/configlexer.lex"
58115901 {
58125902 LEXOUT(("LEXEOF "));
58135903 yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
58225912 }
58235913 YY_BREAK
58245914 /* include-toplevel: directive */
5825 case 326:
5826 YY_RULE_SETUP
5827 #line 620 "util/configlexer.lex"
5915 case 332:
5916 YY_RULE_SETUP
5917 #line 626 "util/configlexer.lex"
58285918 {
58295919 LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel);
58305920 }
58315921 YY_BREAK
58325922 case YY_STATE_EOF(include_toplevel):
5833 #line 623 "util/configlexer.lex"
5923 #line 629 "util/configlexer.lex"
58345924 {
58355925 yyerror("EOF inside include_toplevel directive");
58365926 BEGIN(inc_prev);
58375927 }
58385928 YY_BREAK
5839 case 327:
5840 YY_RULE_SETUP
5841 #line 627 "util/configlexer.lex"
5929 case 333:
5930 YY_RULE_SETUP
5931 #line 633 "util/configlexer.lex"
58425932 { LEXOUT(("ITSP ")); /* ignore */ }
58435933 YY_BREAK
5844 case 328:
5845 /* rule 328 can match eol */
5846 YY_RULE_SETUP
5847 #line 628 "util/configlexer.lex"
5934 case 334:
5935 /* rule 334 can match eol */
5936 YY_RULE_SETUP
5937 #line 634 "util/configlexer.lex"
58485938 { LEXOUT(("NL\n")); cfg_parser->line++; }
58495939 YY_BREAK
5850 case 329:
5851 YY_RULE_SETUP
5852 #line 629 "util/configlexer.lex"
5940 case 335:
5941 YY_RULE_SETUP
5942 #line 635 "util/configlexer.lex"
58535943 { LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); }
58545944 YY_BREAK
5855 case 330:
5856 YY_RULE_SETUP
5857 #line 630 "util/configlexer.lex"
5945 case 336:
5946 YY_RULE_SETUP
5947 #line 636 "util/configlexer.lex"
58585948 {
58595949 LEXOUT(("ITunquotedstr(%s) ", yytext));
58605950 config_start_include_glob(yytext, 1);
58635953 }
58645954 YY_BREAK
58655955 case YY_STATE_EOF(include_toplevel_quoted):
5866 #line 636 "util/configlexer.lex"
5956 #line 642 "util/configlexer.lex"
58675957 {
58685958 yyerror("EOF inside quoted string");
58695959 BEGIN(inc_prev);
58705960 }
58715961 YY_BREAK
5872 case 331:
5873 YY_RULE_SETUP
5874 #line 640 "util/configlexer.lex"
5962 case 337:
5963 YY_RULE_SETUP
5964 #line 646 "util/configlexer.lex"
58755965 { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); }
58765966 YY_BREAK
5877 case 332:
5878 /* rule 332 can match eol */
5879 YY_RULE_SETUP
5880 #line 641 "util/configlexer.lex"
5967 case 338:
5968 /* rule 338 can match eol */
5969 YY_RULE_SETUP
5970 #line 647 "util/configlexer.lex"
58815971 {
58825972 yyerror("newline before \" in include name");
58835973 cfg_parser->line++; BEGIN(inc_prev);
58845974 }
58855975 YY_BREAK
5886 case 333:
5887 YY_RULE_SETUP
5888 #line 645 "util/configlexer.lex"
5976 case 339:
5977 YY_RULE_SETUP
5978 #line 651 "util/configlexer.lex"
58895979 {
58905980 LEXOUT(("ITQE "));
58915981 yytext[yyleng - 1] = '\0';
58945984 return (VAR_FORCE_TOPLEVEL);
58955985 }
58965986 YY_BREAK
5897 case 334:
5898 YY_RULE_SETUP
5899 #line 653 "util/configlexer.lex"
5987 case 340:
5988 YY_RULE_SETUP
5989 #line 659 "util/configlexer.lex"
59005990 { LEXOUT(("unquotedstr(%s) ", yytext));
59015991 if(--num_args == 0) { BEGIN(INITIAL); }
59025992 yylval.str = strdup(yytext); return STRING_ARG; }
59035993 YY_BREAK
5904 case 335:
5905 YY_RULE_SETUP
5906 #line 657 "util/configlexer.lex"
5994 case 341:
5995 YY_RULE_SETUP
5996 #line 663 "util/configlexer.lex"
59075997 {
59085998 ub_c_error_msg("unknown keyword '%s'", yytext);
59095999 }
59106000 YY_BREAK
5911 case 336:
5912 YY_RULE_SETUP
5913 #line 661 "util/configlexer.lex"
6001 case 342:
6002 YY_RULE_SETUP
6003 #line 667 "util/configlexer.lex"
59146004 {
59156005 ub_c_error_msg("stray '%s'", yytext);
59166006 }
59176007 YY_BREAK
5918 case 337:
5919 YY_RULE_SETUP
5920 #line 665 "util/configlexer.lex"
6008 case 343:
6009 YY_RULE_SETUP
6010 #line 671 "util/configlexer.lex"
59216011 ECHO;
59226012 YY_BREAK
5923 #line 5922 "<stdout>"
6013 #line 6012 "<stdout>"
59246014
59256015 case YY_END_OF_BUFFER:
59266016 {
62156305 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
62166306 {
62176307 yy_current_state = (int) yy_def[yy_current_state];
6218 if ( yy_current_state >= 3292 )
6308 if ( yy_current_state >= 3354 )
62196309 yy_c = yy_meta[yy_c];
62206310 }
62216311 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
62436333 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
62446334 {
62456335 yy_current_state = (int) yy_def[yy_current_state];
6246 if ( yy_current_state >= 3292 )
6336 if ( yy_current_state >= 3354 )
62476337 yy_c = yy_meta[yy_c];
62486338 }
62496339 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6250 yy_is_jam = (yy_current_state == 3291);
6340 yy_is_jam = (yy_current_state == 3353);
62516341
62526342 return yy_is_jam ? 0 : yy_current_state;
62536343 }
68866976
68876977 #define YYTABLES_NAME "yytables"
68886978
6889 #line 665 "util/configlexer.lex"
6890
6891
6979 #line 671 "util/configlexer.lex"
6980
6981
391391 serve-expired-ttl-reset{COLON} { YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) }
392392 serve-expired-reply-ttl{COLON} { YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) }
393393 serve-expired-client-timeout{COLON} { YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) }
394 serve-original-ttl{COLON} { YDVAR(1, VAR_SERVE_ORIGINAL_TTL) }
394395 fake-dsa{COLON} { YDVAR(1, VAR_FAKE_DSA) }
395396 fake-sha1{COLON} { YDVAR(1, VAR_FAKE_SHA1) }
396397 val-log-level{COLON} { YDVAR(1, VAR_VAL_LOG_LEVEL) }
509510 YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
510511 dnscrypt-nonce-cache-size{COLON} { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
511512 dnscrypt-nonce-cache-slabs{COLON} { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
513 pad-responses{COLON} { YDVAR(1, VAR_PAD_RESPONSES) }
514 pad-responses-block-size{COLON} { YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) }
515 pad-queries{COLON} { YDVAR(1, VAR_PAD_QUERIES) }
516 pad-queries-block-size{COLON} { YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) }
512517 ipsecmod-enabled{COLON} { YDVAR(1, VAR_IPSECMOD_ENABLED) }
513518 ipsecmod-ignore-bogus{COLON} { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
514519 ipsecmod-hook{COLON} { YDVAR(1, VAR_IPSECMOD_HOOK) }
530535 tcp-connection-limit{COLON} { YDVAR(2, VAR_TCP_CONNECTION_LIMIT) }
531536 edns-client-string{COLON} { YDVAR(2, VAR_EDNS_CLIENT_STRING) }
532537 edns-client-string-opcode{COLON} { YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) }
538 nsid{COLON} { YDVAR(1, VAR_NSID ) }
533539 <INITIAL,val>{NEWLINE} { LEXOUT(("NL\n")); cfg_parser->line++; }
534540
535541 /* Quoted strings. Strip leading and ending quotes */
0 /* A Bison parser, made by GNU Bison 3.4.1. */
0 /* A Bison parser, made by GNU Bison 3.6.4. */
11
22 /* Bison implementation for Yacc-like parsers in C
33
4 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
4 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
55 Inc.
66
77 This program is free software: you can redistribute it and/or modify
3333 /* C LALR(1) parser skeleton written by Richard Stallman, by
3434 simplifying the original so-called "semantic" parser. */
3535
36 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
37 especially those whose name start with YY_ or yy_. They are
38 private implementation details that can be changed or removed. */
39
3640 /* All symbols defined below should begin with yy or YY, to avoid
3741 infringing on user name space. This should be done even for local
3842 variables, as they might otherwise be expanded by user macros.
4044 define necessary library symbols; they are noted "INFRINGES ON
4145 USER NAME SPACE" below. */
4246
43 /* Undocumented macros, especially those whose name start with YY_,
44 are private implementation details. Do not rely on them. */
45
4647 /* Identify Bison output. */
4748 #define YYBISON 1
4849
4950 /* Bison version. */
50 #define YYBISON_VERSION "3.4.1"
51 #define YYBISON_VERSION "3.6.4"
5152
5253 /* Skeleton name. */
5354 #define YYSKELETON_NAME "yacc.c"
9495 #endif
9596
9697
97 #line 99 "util/configparser.c"
98
98 #line 100 "util/configparser.c"
99
100 # ifndef YY_CAST
101 # ifdef __cplusplus
102 # define YY_CAST(Type, Val) static_cast<Type> (Val)
103 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
104 # else
105 # define YY_CAST(Type, Val) ((Type) (Val))
106 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
107 # endif
108 # endif
99109 # ifndef YY_NULLPTR
100110 # if defined __cplusplus
101111 # if 201103L <= __cplusplus
108118 # endif
109119 # endif
110120
111 /* Enabling verbose error messages. */
112 #ifdef YYERROR_VERBOSE
113 # undef YYERROR_VERBOSE
114 # define YYERROR_VERBOSE 1
115 #else
116 # define YYERROR_VERBOSE 0
117 #endif
118
119121 /* Use api.header.include to #include this header
120122 instead of duplicating it here. */
121123 #ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED
128130 extern int yydebug;
129131 #endif
130132
131 /* Token type. */
133 /* Token kinds. */
132134 #ifndef YYTOKENTYPE
133135 # define YYTOKENTYPE
134136 enum yytokentype
135137 {
136 SPACE = 258,
137 LETTER = 259,
138 NEWLINE = 260,
139 COMMENT = 261,
140 COLON = 262,
141 ANY = 263,
142 ZONESTR = 264,
143 STRING_ARG = 265,
144 VAR_FORCE_TOPLEVEL = 266,
145 VAR_SERVER = 267,
146 VAR_VERBOSITY = 268,
147 VAR_NUM_THREADS = 269,
148 VAR_PORT = 270,
149 VAR_OUTGOING_RANGE = 271,
150 VAR_INTERFACE = 272,
151 VAR_PREFER_IP4 = 273,
152 VAR_DO_IP4 = 274,
153 VAR_DO_IP6 = 275,
154 VAR_PREFER_IP6 = 276,
155 VAR_DO_UDP = 277,
156 VAR_DO_TCP = 278,
157 VAR_TCP_MSS = 279,
158 VAR_OUTGOING_TCP_MSS = 280,
159 VAR_TCP_IDLE_TIMEOUT = 281,
160 VAR_EDNS_TCP_KEEPALIVE = 282,
161 VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283,
162 VAR_CHROOT = 284,
163 VAR_USERNAME = 285,
164 VAR_DIRECTORY = 286,
165 VAR_LOGFILE = 287,
166 VAR_PIDFILE = 288,
167 VAR_MSG_CACHE_SIZE = 289,
168 VAR_MSG_CACHE_SLABS = 290,
169 VAR_NUM_QUERIES_PER_THREAD = 291,
170 VAR_RRSET_CACHE_SIZE = 292,
171 VAR_RRSET_CACHE_SLABS = 293,
172 VAR_OUTGOING_NUM_TCP = 294,
173 VAR_INFRA_HOST_TTL = 295,
174 VAR_INFRA_LAME_TTL = 296,
175 VAR_INFRA_CACHE_SLABS = 297,
176 VAR_INFRA_CACHE_NUMHOSTS = 298,
177 VAR_INFRA_CACHE_LAME_SIZE = 299,
178 VAR_NAME = 300,
179 VAR_STUB_ZONE = 301,
180 VAR_STUB_HOST = 302,
181 VAR_STUB_ADDR = 303,
182 VAR_TARGET_FETCH_POLICY = 304,
183 VAR_HARDEN_SHORT_BUFSIZE = 305,
184 VAR_HARDEN_LARGE_QUERIES = 306,
185 VAR_FORWARD_ZONE = 307,
186 VAR_FORWARD_HOST = 308,
187 VAR_FORWARD_ADDR = 309,
188 VAR_DO_NOT_QUERY_ADDRESS = 310,
189 VAR_HIDE_IDENTITY = 311,
190 VAR_HIDE_VERSION = 312,
191 VAR_IDENTITY = 313,
192 VAR_VERSION = 314,
193 VAR_HARDEN_GLUE = 315,
194 VAR_MODULE_CONF = 316,
195 VAR_TRUST_ANCHOR_FILE = 317,
196 VAR_TRUST_ANCHOR = 318,
197 VAR_VAL_OVERRIDE_DATE = 319,
198 VAR_BOGUS_TTL = 320,
199 VAR_VAL_CLEAN_ADDITIONAL = 321,
200 VAR_VAL_PERMISSIVE_MODE = 322,
201 VAR_INCOMING_NUM_TCP = 323,
202 VAR_MSG_BUFFER_SIZE = 324,
203 VAR_KEY_CACHE_SIZE = 325,
204 VAR_KEY_CACHE_SLABS = 326,
205 VAR_TRUSTED_KEYS_FILE = 327,
206 VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328,
207 VAR_USE_SYSLOG = 329,
208 VAR_OUTGOING_INTERFACE = 330,
209 VAR_ROOT_HINTS = 331,
210 VAR_DO_NOT_QUERY_LOCALHOST = 332,
211 VAR_CACHE_MAX_TTL = 333,
212 VAR_HARDEN_DNSSEC_STRIPPED = 334,
213 VAR_ACCESS_CONTROL = 335,
214 VAR_LOCAL_ZONE = 336,
215 VAR_LOCAL_DATA = 337,
216 VAR_INTERFACE_AUTOMATIC = 338,
217 VAR_STATISTICS_INTERVAL = 339,
218 VAR_DO_DAEMONIZE = 340,
219 VAR_USE_CAPS_FOR_ID = 341,
220 VAR_STATISTICS_CUMULATIVE = 342,
221 VAR_OUTGOING_PORT_PERMIT = 343,
222 VAR_OUTGOING_PORT_AVOID = 344,
223 VAR_DLV_ANCHOR_FILE = 345,
224 VAR_DLV_ANCHOR = 346,
225 VAR_NEG_CACHE_SIZE = 347,
226 VAR_HARDEN_REFERRAL_PATH = 348,
227 VAR_PRIVATE_ADDRESS = 349,
228 VAR_PRIVATE_DOMAIN = 350,
229 VAR_REMOTE_CONTROL = 351,
230 VAR_CONTROL_ENABLE = 352,
231 VAR_CONTROL_INTERFACE = 353,
232 VAR_CONTROL_PORT = 354,
233 VAR_SERVER_KEY_FILE = 355,
234 VAR_SERVER_CERT_FILE = 356,
235 VAR_CONTROL_KEY_FILE = 357,
236 VAR_CONTROL_CERT_FILE = 358,
237 VAR_CONTROL_USE_CERT = 359,
238 VAR_EXTENDED_STATISTICS = 360,
239 VAR_LOCAL_DATA_PTR = 361,
240 VAR_JOSTLE_TIMEOUT = 362,
241 VAR_STUB_PRIME = 363,
242 VAR_UNWANTED_REPLY_THRESHOLD = 364,
243 VAR_LOG_TIME_ASCII = 365,
244 VAR_DOMAIN_INSECURE = 366,
245 VAR_PYTHON = 367,
246 VAR_PYTHON_SCRIPT = 368,
247 VAR_VAL_SIG_SKEW_MIN = 369,
248 VAR_VAL_SIG_SKEW_MAX = 370,
249 VAR_CACHE_MIN_TTL = 371,
250 VAR_VAL_LOG_LEVEL = 372,
251 VAR_AUTO_TRUST_ANCHOR_FILE = 373,
252 VAR_KEEP_MISSING = 374,
253 VAR_ADD_HOLDDOWN = 375,
254 VAR_DEL_HOLDDOWN = 376,
255 VAR_SO_RCVBUF = 377,
256 VAR_EDNS_BUFFER_SIZE = 378,
257 VAR_PREFETCH = 379,
258 VAR_PREFETCH_KEY = 380,
259 VAR_SO_SNDBUF = 381,
260 VAR_SO_REUSEPORT = 382,
261 VAR_HARDEN_BELOW_NXDOMAIN = 383,
262 VAR_IGNORE_CD_FLAG = 384,
263 VAR_LOG_QUERIES = 385,
264 VAR_LOG_REPLIES = 386,
265 VAR_LOG_LOCAL_ACTIONS = 387,
266 VAR_TCP_UPSTREAM = 388,
267 VAR_SSL_UPSTREAM = 389,
268 VAR_SSL_SERVICE_KEY = 390,
269 VAR_SSL_SERVICE_PEM = 391,
270 VAR_SSL_PORT = 392,
271 VAR_FORWARD_FIRST = 393,
272 VAR_STUB_SSL_UPSTREAM = 394,
273 VAR_FORWARD_SSL_UPSTREAM = 395,
274 VAR_TLS_CERT_BUNDLE = 396,
275 VAR_HTTPS_PORT = 397,
276 VAR_HTTP_ENDPOINT = 398,
277 VAR_HTTP_MAX_STREAMS = 399,
278 VAR_HTTP_QUERY_BUFFER_SIZE = 400,
279 VAR_HTTP_RESPONSE_BUFFER_SIZE = 401,
280 VAR_HTTP_NODELAY = 402,
281 VAR_HTTP_NOTLS_DOWNSTREAM = 403,
282 VAR_STUB_FIRST = 404,
283 VAR_MINIMAL_RESPONSES = 405,
284 VAR_RRSET_ROUNDROBIN = 406,
285 VAR_MAX_UDP_SIZE = 407,
286 VAR_DELAY_CLOSE = 408,
287 VAR_UDP_CONNECT = 409,
288 VAR_UNBLOCK_LAN_ZONES = 410,
289 VAR_INSECURE_LAN_ZONES = 411,
290 VAR_INFRA_CACHE_MIN_RTT = 412,
291 VAR_INFRA_KEEP_PROBING = 413,
292 VAR_DNS64_PREFIX = 414,
293 VAR_DNS64_SYNTHALL = 415,
294 VAR_DNS64_IGNORE_AAAA = 416,
295 VAR_DNSTAP = 417,
296 VAR_DNSTAP_ENABLE = 418,
297 VAR_DNSTAP_SOCKET_PATH = 419,
298 VAR_DNSTAP_IP = 420,
299 VAR_DNSTAP_TLS = 421,
300 VAR_DNSTAP_TLS_SERVER_NAME = 422,
301 VAR_DNSTAP_TLS_CERT_BUNDLE = 423,
302 VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 424,
303 VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 425,
304 VAR_DNSTAP_SEND_IDENTITY = 426,
305 VAR_DNSTAP_SEND_VERSION = 427,
306 VAR_DNSTAP_BIDIRECTIONAL = 428,
307 VAR_DNSTAP_IDENTITY = 429,
308 VAR_DNSTAP_VERSION = 430,
309 VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 431,
310 VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 432,
311 VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 433,
312 VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 434,
313 VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 435,
314 VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 436,
315 VAR_RESPONSE_IP_TAG = 437,
316 VAR_RESPONSE_IP = 438,
317 VAR_RESPONSE_IP_DATA = 439,
318 VAR_HARDEN_ALGO_DOWNGRADE = 440,
319 VAR_IP_TRANSPARENT = 441,
320 VAR_IP_DSCP = 442,
321 VAR_DISABLE_DNSSEC_LAME_CHECK = 443,
322 VAR_IP_RATELIMIT = 444,
323 VAR_IP_RATELIMIT_SLABS = 445,
324 VAR_IP_RATELIMIT_SIZE = 446,
325 VAR_RATELIMIT = 447,
326 VAR_RATELIMIT_SLABS = 448,
327 VAR_RATELIMIT_SIZE = 449,
328 VAR_RATELIMIT_FOR_DOMAIN = 450,
329 VAR_RATELIMIT_BELOW_DOMAIN = 451,
330 VAR_IP_RATELIMIT_FACTOR = 452,
331 VAR_RATELIMIT_FACTOR = 453,
332 VAR_SEND_CLIENT_SUBNET = 454,
333 VAR_CLIENT_SUBNET_ZONE = 455,
334 VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 456,
335 VAR_CLIENT_SUBNET_OPCODE = 457,
336 VAR_MAX_CLIENT_SUBNET_IPV4 = 458,
337 VAR_MAX_CLIENT_SUBNET_IPV6 = 459,
338 VAR_MIN_CLIENT_SUBNET_IPV4 = 460,
339 VAR_MIN_CLIENT_SUBNET_IPV6 = 461,
340 VAR_MAX_ECS_TREE_SIZE_IPV4 = 462,
341 VAR_MAX_ECS_TREE_SIZE_IPV6 = 463,
342 VAR_CAPS_WHITELIST = 464,
343 VAR_CACHE_MAX_NEGATIVE_TTL = 465,
344 VAR_PERMIT_SMALL_HOLDDOWN = 466,
345 VAR_QNAME_MINIMISATION = 467,
346 VAR_QNAME_MINIMISATION_STRICT = 468,
347 VAR_IP_FREEBIND = 469,
348 VAR_DEFINE_TAG = 470,
349 VAR_LOCAL_ZONE_TAG = 471,
350 VAR_ACCESS_CONTROL_TAG = 472,
351 VAR_LOCAL_ZONE_OVERRIDE = 473,
352 VAR_ACCESS_CONTROL_TAG_ACTION = 474,
353 VAR_ACCESS_CONTROL_TAG_DATA = 475,
354 VAR_VIEW = 476,
355 VAR_ACCESS_CONTROL_VIEW = 477,
356 VAR_VIEW_FIRST = 478,
357 VAR_SERVE_EXPIRED = 479,
358 VAR_SERVE_EXPIRED_TTL = 480,
359 VAR_SERVE_EXPIRED_TTL_RESET = 481,
360 VAR_SERVE_EXPIRED_REPLY_TTL = 482,
361 VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483,
362 VAR_FAKE_DSA = 484,
363 VAR_FAKE_SHA1 = 485,
364 VAR_LOG_IDENTITY = 486,
365 VAR_HIDE_TRUSTANCHOR = 487,
366 VAR_TRUST_ANCHOR_SIGNALING = 488,
367 VAR_AGGRESSIVE_NSEC = 489,
368 VAR_USE_SYSTEMD = 490,
369 VAR_SHM_ENABLE = 491,
370 VAR_SHM_KEY = 492,
371 VAR_ROOT_KEY_SENTINEL = 493,
372 VAR_DNSCRYPT = 494,
373 VAR_DNSCRYPT_ENABLE = 495,
374 VAR_DNSCRYPT_PORT = 496,
375 VAR_DNSCRYPT_PROVIDER = 497,
376 VAR_DNSCRYPT_SECRET_KEY = 498,
377 VAR_DNSCRYPT_PROVIDER_CERT = 499,
378 VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 500,
379 VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 501,
380 VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 502,
381 VAR_DNSCRYPT_NONCE_CACHE_SIZE = 503,
382 VAR_DNSCRYPT_NONCE_CACHE_SLABS = 504,
383 VAR_IPSECMOD_ENABLED = 505,
384 VAR_IPSECMOD_HOOK = 506,
385 VAR_IPSECMOD_IGNORE_BOGUS = 507,
386 VAR_IPSECMOD_MAX_TTL = 508,
387 VAR_IPSECMOD_WHITELIST = 509,
388 VAR_IPSECMOD_STRICT = 510,
389 VAR_CACHEDB = 511,
390 VAR_CACHEDB_BACKEND = 512,
391 VAR_CACHEDB_SECRETSEED = 513,
392 VAR_CACHEDB_REDISHOST = 514,
393 VAR_CACHEDB_REDISPORT = 515,
394 VAR_CACHEDB_REDISTIMEOUT = 516,
395 VAR_CACHEDB_REDISEXPIRERECORDS = 517,
396 VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 518,
397 VAR_FOR_UPSTREAM = 519,
398 VAR_AUTH_ZONE = 520,
399 VAR_ZONEFILE = 521,
400 VAR_MASTER = 522,
401 VAR_URL = 523,
402 VAR_FOR_DOWNSTREAM = 524,
403 VAR_FALLBACK_ENABLED = 525,
404 VAR_TLS_ADDITIONAL_PORT = 526,
405 VAR_LOW_RTT = 527,
406 VAR_LOW_RTT_PERMIL = 528,
407 VAR_FAST_SERVER_PERMIL = 529,
408 VAR_FAST_SERVER_NUM = 530,
409 VAR_ALLOW_NOTIFY = 531,
410 VAR_TLS_WIN_CERT = 532,
411 VAR_TCP_CONNECTION_LIMIT = 533,
412 VAR_FORWARD_NO_CACHE = 534,
413 VAR_STUB_NO_CACHE = 535,
414 VAR_LOG_SERVFAIL = 536,
415 VAR_DENY_ANY = 537,
416 VAR_UNKNOWN_SERVER_TIME_LIMIT = 538,
417 VAR_LOG_TAG_QUERYREPLY = 539,
418 VAR_STREAM_WAIT_SIZE = 540,
419 VAR_TLS_CIPHERS = 541,
420 VAR_TLS_CIPHERSUITES = 542,
421 VAR_TLS_USE_SNI = 543,
422 VAR_IPSET = 544,
423 VAR_IPSET_NAME_V4 = 545,
424 VAR_IPSET_NAME_V6 = 546,
425 VAR_TLS_SESSION_TICKET_KEYS = 547,
426 VAR_RPZ = 548,
427 VAR_TAGS = 549,
428 VAR_RPZ_ACTION_OVERRIDE = 550,
429 VAR_RPZ_CNAME_OVERRIDE = 551,
430 VAR_RPZ_LOG = 552,
431 VAR_RPZ_LOG_NAME = 553,
432 VAR_DYNLIB = 554,
433 VAR_DYNLIB_FILE = 555,
434 VAR_EDNS_CLIENT_STRING = 556,
435 VAR_EDNS_CLIENT_STRING_OPCODE = 557
138 YYEMPTY = -2,
139 YYEOF = 0, /* "end of file" */
140 YYerror = 256, /* error */
141 YYUNDEF = 257, /* "invalid token" */
142 SPACE = 258, /* SPACE */
143 LETTER = 259, /* LETTER */
144 NEWLINE = 260, /* NEWLINE */
145 COMMENT = 261, /* COMMENT */
146 COLON = 262, /* COLON */
147 ANY = 263, /* ANY */
148 ZONESTR = 264, /* ZONESTR */
149 STRING_ARG = 265, /* STRING_ARG */
150 VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */
151 VAR_SERVER = 267, /* VAR_SERVER */
152 VAR_VERBOSITY = 268, /* VAR_VERBOSITY */
153 VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */
154 VAR_PORT = 270, /* VAR_PORT */
155 VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */
156 VAR_INTERFACE = 272, /* VAR_INTERFACE */
157 VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */
158 VAR_DO_IP4 = 274, /* VAR_DO_IP4 */
159 VAR_DO_IP6 = 275, /* VAR_DO_IP6 */
160 VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */
161 VAR_DO_UDP = 277, /* VAR_DO_UDP */
162 VAR_DO_TCP = 278, /* VAR_DO_TCP */
163 VAR_TCP_MSS = 279, /* VAR_TCP_MSS */
164 VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */
165 VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */
166 VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */
167 VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */
168 VAR_CHROOT = 284, /* VAR_CHROOT */
169 VAR_USERNAME = 285, /* VAR_USERNAME */
170 VAR_DIRECTORY = 286, /* VAR_DIRECTORY */
171 VAR_LOGFILE = 287, /* VAR_LOGFILE */
172 VAR_PIDFILE = 288, /* VAR_PIDFILE */
173 VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */
174 VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */
175 VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */
176 VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */
177 VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */
178 VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */
179 VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */
180 VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */
181 VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */
182 VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */
183 VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */
184 VAR_NAME = 300, /* VAR_NAME */
185 VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */
186 VAR_STUB_HOST = 302, /* VAR_STUB_HOST */
187 VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */
188 VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */
189 VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */
190 VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */
191 VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */
192 VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */
193 VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */
194 VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */
195 VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */
196 VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */
197 VAR_IDENTITY = 313, /* VAR_IDENTITY */
198 VAR_VERSION = 314, /* VAR_VERSION */
199 VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */
200 VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */
201 VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */
202 VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */
203 VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */
204 VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */
205 VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */
206 VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */
207 VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */
208 VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */
209 VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */
210 VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */
211 VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */
212 VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */
213 VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */
214 VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */
215 VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */
216 VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */
217 VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */
218 VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */
219 VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */
220 VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */
221 VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */
222 VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */
223 VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */
224 VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */
225 VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */
226 VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */
227 VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */
228 VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */
229 VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */
230 VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */
231 VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */
232 VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */
233 VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */
234 VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */
235 VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */
236 VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */
237 VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */
238 VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */
239 VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */
240 VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */
241 VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */
242 VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */
243 VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */
244 VAR_EXTENDED_STATISTICS = 360, /* VAR_EXTENDED_STATISTICS */
245 VAR_LOCAL_DATA_PTR = 361, /* VAR_LOCAL_DATA_PTR */
246 VAR_JOSTLE_TIMEOUT = 362, /* VAR_JOSTLE_TIMEOUT */
247 VAR_STUB_PRIME = 363, /* VAR_STUB_PRIME */
248 VAR_UNWANTED_REPLY_THRESHOLD = 364, /* VAR_UNWANTED_REPLY_THRESHOLD */
249 VAR_LOG_TIME_ASCII = 365, /* VAR_LOG_TIME_ASCII */
250 VAR_DOMAIN_INSECURE = 366, /* VAR_DOMAIN_INSECURE */
251 VAR_PYTHON = 367, /* VAR_PYTHON */
252 VAR_PYTHON_SCRIPT = 368, /* VAR_PYTHON_SCRIPT */
253 VAR_VAL_SIG_SKEW_MIN = 369, /* VAR_VAL_SIG_SKEW_MIN */
254 VAR_VAL_SIG_SKEW_MAX = 370, /* VAR_VAL_SIG_SKEW_MAX */
255 VAR_CACHE_MIN_TTL = 371, /* VAR_CACHE_MIN_TTL */
256 VAR_VAL_LOG_LEVEL = 372, /* VAR_VAL_LOG_LEVEL */
257 VAR_AUTO_TRUST_ANCHOR_FILE = 373, /* VAR_AUTO_TRUST_ANCHOR_FILE */
258 VAR_KEEP_MISSING = 374, /* VAR_KEEP_MISSING */
259 VAR_ADD_HOLDDOWN = 375, /* VAR_ADD_HOLDDOWN */
260 VAR_DEL_HOLDDOWN = 376, /* VAR_DEL_HOLDDOWN */
261 VAR_SO_RCVBUF = 377, /* VAR_SO_RCVBUF */
262 VAR_EDNS_BUFFER_SIZE = 378, /* VAR_EDNS_BUFFER_SIZE */
263 VAR_PREFETCH = 379, /* VAR_PREFETCH */
264 VAR_PREFETCH_KEY = 380, /* VAR_PREFETCH_KEY */
265 VAR_SO_SNDBUF = 381, /* VAR_SO_SNDBUF */
266 VAR_SO_REUSEPORT = 382, /* VAR_SO_REUSEPORT */
267 VAR_HARDEN_BELOW_NXDOMAIN = 383, /* VAR_HARDEN_BELOW_NXDOMAIN */
268 VAR_IGNORE_CD_FLAG = 384, /* VAR_IGNORE_CD_FLAG */
269 VAR_LOG_QUERIES = 385, /* VAR_LOG_QUERIES */
270 VAR_LOG_REPLIES = 386, /* VAR_LOG_REPLIES */
271 VAR_LOG_LOCAL_ACTIONS = 387, /* VAR_LOG_LOCAL_ACTIONS */
272 VAR_TCP_UPSTREAM = 388, /* VAR_TCP_UPSTREAM */
273 VAR_SSL_UPSTREAM = 389, /* VAR_SSL_UPSTREAM */
274 VAR_SSL_SERVICE_KEY = 390, /* VAR_SSL_SERVICE_KEY */
275 VAR_SSL_SERVICE_PEM = 391, /* VAR_SSL_SERVICE_PEM */
276 VAR_SSL_PORT = 392, /* VAR_SSL_PORT */
277 VAR_FORWARD_FIRST = 393, /* VAR_FORWARD_FIRST */
278 VAR_STUB_SSL_UPSTREAM = 394, /* VAR_STUB_SSL_UPSTREAM */
279 VAR_FORWARD_SSL_UPSTREAM = 395, /* VAR_FORWARD_SSL_UPSTREAM */
280 VAR_TLS_CERT_BUNDLE = 396, /* VAR_TLS_CERT_BUNDLE */
281 VAR_HTTPS_PORT = 397, /* VAR_HTTPS_PORT */
282 VAR_HTTP_ENDPOINT = 398, /* VAR_HTTP_ENDPOINT */
283 VAR_HTTP_MAX_STREAMS = 399, /* VAR_HTTP_MAX_STREAMS */
284 VAR_HTTP_QUERY_BUFFER_SIZE = 400, /* VAR_HTTP_QUERY_BUFFER_SIZE */
285 VAR_HTTP_RESPONSE_BUFFER_SIZE = 401, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */
286 VAR_HTTP_NODELAY = 402, /* VAR_HTTP_NODELAY */
287 VAR_HTTP_NOTLS_DOWNSTREAM = 403, /* VAR_HTTP_NOTLS_DOWNSTREAM */
288 VAR_STUB_FIRST = 404, /* VAR_STUB_FIRST */
289 VAR_MINIMAL_RESPONSES = 405, /* VAR_MINIMAL_RESPONSES */
290 VAR_RRSET_ROUNDROBIN = 406, /* VAR_RRSET_ROUNDROBIN */
291 VAR_MAX_UDP_SIZE = 407, /* VAR_MAX_UDP_SIZE */
292 VAR_DELAY_CLOSE = 408, /* VAR_DELAY_CLOSE */
293 VAR_UDP_CONNECT = 409, /* VAR_UDP_CONNECT */
294 VAR_UNBLOCK_LAN_ZONES = 410, /* VAR_UNBLOCK_LAN_ZONES */
295 VAR_INSECURE_LAN_ZONES = 411, /* VAR_INSECURE_LAN_ZONES */
296 VAR_INFRA_CACHE_MIN_RTT = 412, /* VAR_INFRA_CACHE_MIN_RTT */
297 VAR_INFRA_KEEP_PROBING = 413, /* VAR_INFRA_KEEP_PROBING */
298 VAR_DNS64_PREFIX = 414, /* VAR_DNS64_PREFIX */
299 VAR_DNS64_SYNTHALL = 415, /* VAR_DNS64_SYNTHALL */
300 VAR_DNS64_IGNORE_AAAA = 416, /* VAR_DNS64_IGNORE_AAAA */
301 VAR_DNSTAP = 417, /* VAR_DNSTAP */
302 VAR_DNSTAP_ENABLE = 418, /* VAR_DNSTAP_ENABLE */
303 VAR_DNSTAP_SOCKET_PATH = 419, /* VAR_DNSTAP_SOCKET_PATH */
304 VAR_DNSTAP_IP = 420, /* VAR_DNSTAP_IP */
305 VAR_DNSTAP_TLS = 421, /* VAR_DNSTAP_TLS */
306 VAR_DNSTAP_TLS_SERVER_NAME = 422, /* VAR_DNSTAP_TLS_SERVER_NAME */
307 VAR_DNSTAP_TLS_CERT_BUNDLE = 423, /* VAR_DNSTAP_TLS_CERT_BUNDLE */
308 VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 424, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */
309 VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 425, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */
310 VAR_DNSTAP_SEND_IDENTITY = 426, /* VAR_DNSTAP_SEND_IDENTITY */
311 VAR_DNSTAP_SEND_VERSION = 427, /* VAR_DNSTAP_SEND_VERSION */
312 VAR_DNSTAP_BIDIRECTIONAL = 428, /* VAR_DNSTAP_BIDIRECTIONAL */
313 VAR_DNSTAP_IDENTITY = 429, /* VAR_DNSTAP_IDENTITY */
314 VAR_DNSTAP_VERSION = 430, /* VAR_DNSTAP_VERSION */
315 VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 431, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */
316 VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 432, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */
317 VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */
318 VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */
319 VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */
320 VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */
321 VAR_RESPONSE_IP_TAG = 437, /* VAR_RESPONSE_IP_TAG */
322 VAR_RESPONSE_IP = 438, /* VAR_RESPONSE_IP */
323 VAR_RESPONSE_IP_DATA = 439, /* VAR_RESPONSE_IP_DATA */
324 VAR_HARDEN_ALGO_DOWNGRADE = 440, /* VAR_HARDEN_ALGO_DOWNGRADE */
325 VAR_IP_TRANSPARENT = 441, /* VAR_IP_TRANSPARENT */
326 VAR_IP_DSCP = 442, /* VAR_IP_DSCP */
327 VAR_DISABLE_DNSSEC_LAME_CHECK = 443, /* VAR_DISABLE_DNSSEC_LAME_CHECK */
328 VAR_IP_RATELIMIT = 444, /* VAR_IP_RATELIMIT */
329 VAR_IP_RATELIMIT_SLABS = 445, /* VAR_IP_RATELIMIT_SLABS */
330 VAR_IP_RATELIMIT_SIZE = 446, /* VAR_IP_RATELIMIT_SIZE */
331 VAR_RATELIMIT = 447, /* VAR_RATELIMIT */
332 VAR_RATELIMIT_SLABS = 448, /* VAR_RATELIMIT_SLABS */
333 VAR_RATELIMIT_SIZE = 449, /* VAR_RATELIMIT_SIZE */
334 VAR_RATELIMIT_FOR_DOMAIN = 450, /* VAR_RATELIMIT_FOR_DOMAIN */
335 VAR_RATELIMIT_BELOW_DOMAIN = 451, /* VAR_RATELIMIT_BELOW_DOMAIN */
336 VAR_IP_RATELIMIT_FACTOR = 452, /* VAR_IP_RATELIMIT_FACTOR */
337 VAR_RATELIMIT_FACTOR = 453, /* VAR_RATELIMIT_FACTOR */
338 VAR_SEND_CLIENT_SUBNET = 454, /* VAR_SEND_CLIENT_SUBNET */
339 VAR_CLIENT_SUBNET_ZONE = 455, /* VAR_CLIENT_SUBNET_ZONE */
340 VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 456, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */
341 VAR_CLIENT_SUBNET_OPCODE = 457, /* VAR_CLIENT_SUBNET_OPCODE */
342 VAR_MAX_CLIENT_SUBNET_IPV4 = 458, /* VAR_MAX_CLIENT_SUBNET_IPV4 */
343 VAR_MAX_CLIENT_SUBNET_IPV6 = 459, /* VAR_MAX_CLIENT_SUBNET_IPV6 */
344 VAR_MIN_CLIENT_SUBNET_IPV4 = 460, /* VAR_MIN_CLIENT_SUBNET_IPV4 */
345 VAR_MIN_CLIENT_SUBNET_IPV6 = 461, /* VAR_MIN_CLIENT_SUBNET_IPV6 */
346 VAR_MAX_ECS_TREE_SIZE_IPV4 = 462, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */
347 VAR_MAX_ECS_TREE_SIZE_IPV6 = 463, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */
348 VAR_CAPS_WHITELIST = 464, /* VAR_CAPS_WHITELIST */
349 VAR_CACHE_MAX_NEGATIVE_TTL = 465, /* VAR_CACHE_MAX_NEGATIVE_TTL */
350 VAR_PERMIT_SMALL_HOLDDOWN = 466, /* VAR_PERMIT_SMALL_HOLDDOWN */
351 VAR_QNAME_MINIMISATION = 467, /* VAR_QNAME_MINIMISATION */
352 VAR_QNAME_MINIMISATION_STRICT = 468, /* VAR_QNAME_MINIMISATION_STRICT */
353 VAR_IP_FREEBIND = 469, /* VAR_IP_FREEBIND */
354 VAR_DEFINE_TAG = 470, /* VAR_DEFINE_TAG */
355 VAR_LOCAL_ZONE_TAG = 471, /* VAR_LOCAL_ZONE_TAG */
356 VAR_ACCESS_CONTROL_TAG = 472, /* VAR_ACCESS_CONTROL_TAG */
357 VAR_LOCAL_ZONE_OVERRIDE = 473, /* VAR_LOCAL_ZONE_OVERRIDE */
358 VAR_ACCESS_CONTROL_TAG_ACTION = 474, /* VAR_ACCESS_CONTROL_TAG_ACTION */
359 VAR_ACCESS_CONTROL_TAG_DATA = 475, /* VAR_ACCESS_CONTROL_TAG_DATA */
360 VAR_VIEW = 476, /* VAR_VIEW */
361 VAR_ACCESS_CONTROL_VIEW = 477, /* VAR_ACCESS_CONTROL_VIEW */
362 VAR_VIEW_FIRST = 478, /* VAR_VIEW_FIRST */
363 VAR_SERVE_EXPIRED = 479, /* VAR_SERVE_EXPIRED */
364 VAR_SERVE_EXPIRED_TTL = 480, /* VAR_SERVE_EXPIRED_TTL */
365 VAR_SERVE_EXPIRED_TTL_RESET = 481, /* VAR_SERVE_EXPIRED_TTL_RESET */
366 VAR_SERVE_EXPIRED_REPLY_TTL = 482, /* VAR_SERVE_EXPIRED_REPLY_TTL */
367 VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */
368 VAR_SERVE_ORIGINAL_TTL = 484, /* VAR_SERVE_ORIGINAL_TTL */
369 VAR_FAKE_DSA = 485, /* VAR_FAKE_DSA */
370 VAR_FAKE_SHA1 = 486, /* VAR_FAKE_SHA1 */
371 VAR_LOG_IDENTITY = 487, /* VAR_LOG_IDENTITY */
372 VAR_HIDE_TRUSTANCHOR = 488, /* VAR_HIDE_TRUSTANCHOR */
373 VAR_TRUST_ANCHOR_SIGNALING = 489, /* VAR_TRUST_ANCHOR_SIGNALING */
374 VAR_AGGRESSIVE_NSEC = 490, /* VAR_AGGRESSIVE_NSEC */
375 VAR_USE_SYSTEMD = 491, /* VAR_USE_SYSTEMD */
376 VAR_SHM_ENABLE = 492, /* VAR_SHM_ENABLE */
377 VAR_SHM_KEY = 493, /* VAR_SHM_KEY */
378 VAR_ROOT_KEY_SENTINEL = 494, /* VAR_ROOT_KEY_SENTINEL */
379 VAR_DNSCRYPT = 495, /* VAR_DNSCRYPT */
380 VAR_DNSCRYPT_ENABLE = 496, /* VAR_DNSCRYPT_ENABLE */
381 VAR_DNSCRYPT_PORT = 497, /* VAR_DNSCRYPT_PORT */
382 VAR_DNSCRYPT_PROVIDER = 498, /* VAR_DNSCRYPT_PROVIDER */
383 VAR_DNSCRYPT_SECRET_KEY = 499, /* VAR_DNSCRYPT_SECRET_KEY */
384 VAR_DNSCRYPT_PROVIDER_CERT = 500, /* VAR_DNSCRYPT_PROVIDER_CERT */
385 VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 501, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */
386 VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 502, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */
387 VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 503, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */
388 VAR_DNSCRYPT_NONCE_CACHE_SIZE = 504, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */
389 VAR_DNSCRYPT_NONCE_CACHE_SLABS = 505, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */
390 VAR_PAD_RESPONSES = 506, /* VAR_PAD_RESPONSES */
391 VAR_PAD_RESPONSES_BLOCK_SIZE = 507, /* VAR_PAD_RESPONSES_BLOCK_SIZE */
392 VAR_PAD_QUERIES = 508, /* VAR_PAD_QUERIES */
393 VAR_PAD_QUERIES_BLOCK_SIZE = 509, /* VAR_PAD_QUERIES_BLOCK_SIZE */
394 VAR_IPSECMOD_ENABLED = 510, /* VAR_IPSECMOD_ENABLED */
395 VAR_IPSECMOD_HOOK = 511, /* VAR_IPSECMOD_HOOK */
396 VAR_IPSECMOD_IGNORE_BOGUS = 512, /* VAR_IPSECMOD_IGNORE_BOGUS */
397 VAR_IPSECMOD_MAX_TTL = 513, /* VAR_IPSECMOD_MAX_TTL */
398 VAR_IPSECMOD_WHITELIST = 514, /* VAR_IPSECMOD_WHITELIST */
399 VAR_IPSECMOD_STRICT = 515, /* VAR_IPSECMOD_STRICT */
400 VAR_CACHEDB = 516, /* VAR_CACHEDB */
401 VAR_CACHEDB_BACKEND = 517, /* VAR_CACHEDB_BACKEND */
402 VAR_CACHEDB_SECRETSEED = 518, /* VAR_CACHEDB_SECRETSEED */
403 VAR_CACHEDB_REDISHOST = 519, /* VAR_CACHEDB_REDISHOST */
404 VAR_CACHEDB_REDISPORT = 520, /* VAR_CACHEDB_REDISPORT */
405 VAR_CACHEDB_REDISTIMEOUT = 521, /* VAR_CACHEDB_REDISTIMEOUT */
406 VAR_CACHEDB_REDISEXPIRERECORDS = 522, /* VAR_CACHEDB_REDISEXPIRERECORDS */
407 VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 523, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */
408 VAR_FOR_UPSTREAM = 524, /* VAR_FOR_UPSTREAM */
409 VAR_AUTH_ZONE = 525, /* VAR_AUTH_ZONE */
410 VAR_ZONEFILE = 526, /* VAR_ZONEFILE */
411 VAR_MASTER = 527, /* VAR_MASTER */
412 VAR_URL = 528, /* VAR_URL */
413 VAR_FOR_DOWNSTREAM = 529, /* VAR_FOR_DOWNSTREAM */
414 VAR_FALLBACK_ENABLED = 530, /* VAR_FALLBACK_ENABLED */
415 VAR_TLS_ADDITIONAL_PORT = 531, /* VAR_TLS_ADDITIONAL_PORT */
416 VAR_LOW_RTT = 532, /* VAR_LOW_RTT */
417 VAR_LOW_RTT_PERMIL = 533, /* VAR_LOW_RTT_PERMIL */
418 VAR_FAST_SERVER_PERMIL = 534, /* VAR_FAST_SERVER_PERMIL */
419 VAR_FAST_SERVER_NUM = 535, /* VAR_FAST_SERVER_NUM */
420 VAR_ALLOW_NOTIFY = 536, /* VAR_ALLOW_NOTIFY */
421 VAR_TLS_WIN_CERT = 537, /* VAR_TLS_WIN_CERT */
422 VAR_TCP_CONNECTION_LIMIT = 538, /* VAR_TCP_CONNECTION_LIMIT */
423 VAR_FORWARD_NO_CACHE = 539, /* VAR_FORWARD_NO_CACHE */
424 VAR_STUB_NO_CACHE = 540, /* VAR_STUB_NO_CACHE */
425 VAR_LOG_SERVFAIL = 541, /* VAR_LOG_SERVFAIL */
426 VAR_DENY_ANY = 542, /* VAR_DENY_ANY */
427 VAR_UNKNOWN_SERVER_TIME_LIMIT = 543, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */
428 VAR_LOG_TAG_QUERYREPLY = 544, /* VAR_LOG_TAG_QUERYREPLY */
429 VAR_STREAM_WAIT_SIZE = 545, /* VAR_STREAM_WAIT_SIZE */
430 VAR_TLS_CIPHERS = 546, /* VAR_TLS_CIPHERS */
431 VAR_TLS_CIPHERSUITES = 547, /* VAR_TLS_CIPHERSUITES */
432 VAR_TLS_USE_SNI = 548, /* VAR_TLS_USE_SNI */
433 VAR_IPSET = 549, /* VAR_IPSET */
434 VAR_IPSET_NAME_V4 = 550, /* VAR_IPSET_NAME_V4 */
435 VAR_IPSET_NAME_V6 = 551, /* VAR_IPSET_NAME_V6 */
436 VAR_TLS_SESSION_TICKET_KEYS = 552, /* VAR_TLS_SESSION_TICKET_KEYS */
437 VAR_RPZ = 553, /* VAR_RPZ */
438 VAR_TAGS = 554, /* VAR_TAGS */
439 VAR_RPZ_ACTION_OVERRIDE = 555, /* VAR_RPZ_ACTION_OVERRIDE */
440 VAR_RPZ_CNAME_OVERRIDE = 556, /* VAR_RPZ_CNAME_OVERRIDE */
441 VAR_RPZ_LOG = 557, /* VAR_RPZ_LOG */
442 VAR_RPZ_LOG_NAME = 558, /* VAR_RPZ_LOG_NAME */
443 VAR_DYNLIB = 559, /* VAR_DYNLIB */
444 VAR_DYNLIB_FILE = 560, /* VAR_DYNLIB_FILE */
445 VAR_EDNS_CLIENT_STRING = 561, /* VAR_EDNS_CLIENT_STRING */
446 VAR_EDNS_CLIENT_STRING_OPCODE = 562, /* VAR_EDNS_CLIENT_STRING_OPCODE */
447 VAR_NSID = 563 /* VAR_NSID */
436448 };
449 typedef enum yytokentype yytoken_kind_t;
437450 #endif
438 /* Tokens. */
451 /* Token kinds. */
452 #define YYEOF 0
453 #define YYerror 256
454 #define YYUNDEF 257
439455 #define SPACE 258
440456 #define LETTER 259
441457 #define NEWLINE 260
662678 #define VAR_SERVE_EXPIRED_TTL_RESET 481
663679 #define VAR_SERVE_EXPIRED_REPLY_TTL 482
664680 #define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 483
665 #define VAR_FAKE_DSA 484
666 #define VAR_FAKE_SHA1 485
667 #define VAR_LOG_IDENTITY 486
668 #define VAR_HIDE_TRUSTANCHOR 487
669 #define VAR_TRUST_ANCHOR_SIGNALING 488
670 #define VAR_AGGRESSIVE_NSEC 489
671 #define VAR_USE_SYSTEMD 490
672 #define VAR_SHM_ENABLE 491
673 #define VAR_SHM_KEY 492
674 #define VAR_ROOT_KEY_SENTINEL 493
675 #define VAR_DNSCRYPT 494
676 #define VAR_DNSCRYPT_ENABLE 495
677 #define VAR_DNSCRYPT_PORT 496
678 #define VAR_DNSCRYPT_PROVIDER 497
679 #define VAR_DNSCRYPT_SECRET_KEY 498
680 #define VAR_DNSCRYPT_PROVIDER_CERT 499
681 #define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 500
682 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 501
683 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 502
684 #define VAR_DNSCRYPT_NONCE_CACHE_SIZE 503
685 #define VAR_DNSCRYPT_NONCE_CACHE_SLABS 504
686 #define VAR_IPSECMOD_ENABLED 505
687 #define VAR_IPSECMOD_HOOK 506
688 #define VAR_IPSECMOD_IGNORE_BOGUS 507
689 #define VAR_IPSECMOD_MAX_TTL 508
690 #define VAR_IPSECMOD_WHITELIST 509
691 #define VAR_IPSECMOD_STRICT 510
692 #define VAR_CACHEDB 511
693 #define VAR_CACHEDB_BACKEND 512
694 #define VAR_CACHEDB_SECRETSEED 513
695 #define VAR_CACHEDB_REDISHOST 514
696 #define VAR_CACHEDB_REDISPORT 515
697 #define VAR_CACHEDB_REDISTIMEOUT 516
698 #define VAR_CACHEDB_REDISEXPIRERECORDS 517
699 #define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 518
700 #define VAR_FOR_UPSTREAM 519
701 #define VAR_AUTH_ZONE 520
702 #define VAR_ZONEFILE 521
703 #define VAR_MASTER 522
704 #define VAR_URL 523
705 #define VAR_FOR_DOWNSTREAM 524
706 #define VAR_FALLBACK_ENABLED 525
707 #define VAR_TLS_ADDITIONAL_PORT 526
708 #define VAR_LOW_RTT 527
709 #define VAR_LOW_RTT_PERMIL 528
710 #define VAR_FAST_SERVER_PERMIL 529
711 #define VAR_FAST_SERVER_NUM 530
712 #define VAR_ALLOW_NOTIFY 531
713 #define VAR_TLS_WIN_CERT 532
714 #define VAR_TCP_CONNECTION_LIMIT 533
715 #define VAR_FORWARD_NO_CACHE 534
716 #define VAR_STUB_NO_CACHE 535
717 #define VAR_LOG_SERVFAIL 536
718 #define VAR_DENY_ANY 537
719 #define VAR_UNKNOWN_SERVER_TIME_LIMIT 538
720 #define VAR_LOG_TAG_QUERYREPLY 539
721 #define VAR_STREAM_WAIT_SIZE 540
722 #define VAR_TLS_CIPHERS 541
723 #define VAR_TLS_CIPHERSUITES 542
724 #define VAR_TLS_USE_SNI 543
725 #define VAR_IPSET 544
726 #define VAR_IPSET_NAME_V4 545
727 #define VAR_IPSET_NAME_V6 546
728 #define VAR_TLS_SESSION_TICKET_KEYS 547
729 #define VAR_RPZ 548
730 #define VAR_TAGS 549
731 #define VAR_RPZ_ACTION_OVERRIDE 550
732 #define VAR_RPZ_CNAME_OVERRIDE 551
733 #define VAR_RPZ_LOG 552
734 #define VAR_RPZ_LOG_NAME 553
735 #define VAR_DYNLIB 554
736 #define VAR_DYNLIB_FILE 555
737 #define VAR_EDNS_CLIENT_STRING 556
738 #define VAR_EDNS_CLIENT_STRING_OPCODE 557
681 #define VAR_SERVE_ORIGINAL_TTL 484
682 #define VAR_FAKE_DSA 485
683 #define VAR_FAKE_SHA1 486
684 #define VAR_LOG_IDENTITY 487
685 #define VAR_HIDE_TRUSTANCHOR 488
686 #define VAR_TRUST_ANCHOR_SIGNALING 489
687 #define VAR_AGGRESSIVE_NSEC 490
688 #define VAR_USE_SYSTEMD 491
689 #define VAR_SHM_ENABLE 492
690 #define VAR_SHM_KEY 493
691 #define VAR_ROOT_KEY_SENTINEL 494
692 #define VAR_DNSCRYPT 495
693 #define VAR_DNSCRYPT_ENABLE 496
694 #define VAR_DNSCRYPT_PORT 497
695 #define VAR_DNSCRYPT_PROVIDER 498
696 #define VAR_DNSCRYPT_SECRET_KEY 499
697 #define VAR_DNSCRYPT_PROVIDER_CERT 500
698 #define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 501
699 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 502
700 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 503
701 #define VAR_DNSCRYPT_NONCE_CACHE_SIZE 504
702 #define VAR_DNSCRYPT_NONCE_CACHE_SLABS 505
703 #define VAR_PAD_RESPONSES 506
704 #define VAR_PAD_RESPONSES_BLOCK_SIZE 507
705 #define VAR_PAD_QUERIES 508
706 #define VAR_PAD_QUERIES_BLOCK_SIZE 509
707 #define VAR_IPSECMOD_ENABLED 510
708 #define VAR_IPSECMOD_HOOK 511
709 #define VAR_IPSECMOD_IGNORE_BOGUS 512
710 #define VAR_IPSECMOD_MAX_TTL 513
711 #define VAR_IPSECMOD_WHITELIST 514
712 #define VAR_IPSECMOD_STRICT 515
713 #define VAR_CACHEDB 516
714 #define VAR_CACHEDB_BACKEND 517
715 #define VAR_CACHEDB_SECRETSEED 518
716 #define VAR_CACHEDB_REDISHOST 519
717 #define VAR_CACHEDB_REDISPORT 520
718 #define VAR_CACHEDB_REDISTIMEOUT 521
719 #define VAR_CACHEDB_REDISEXPIRERECORDS 522
720 #define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 523
721 #define VAR_FOR_UPSTREAM 524
722 #define VAR_AUTH_ZONE 525
723 #define VAR_ZONEFILE 526
724 #define VAR_MASTER 527
725 #define VAR_URL 528
726 #define VAR_FOR_DOWNSTREAM 529
727 #define VAR_FALLBACK_ENABLED 530
728 #define VAR_TLS_ADDITIONAL_PORT 531
729 #define VAR_LOW_RTT 532
730 #define VAR_LOW_RTT_PERMIL 533
731 #define VAR_FAST_SERVER_PERMIL 534
732 #define VAR_FAST_SERVER_NUM 535
733 #define VAR_ALLOW_NOTIFY 536
734 #define VAR_TLS_WIN_CERT 537
735 #define VAR_TCP_CONNECTION_LIMIT 538
736 #define VAR_FORWARD_NO_CACHE 539
737 #define VAR_STUB_NO_CACHE 540
738 #define VAR_LOG_SERVFAIL 541
739 #define VAR_DENY_ANY 542
740 #define VAR_UNKNOWN_SERVER_TIME_LIMIT 543
741 #define VAR_LOG_TAG_QUERYREPLY 544
742 #define VAR_STREAM_WAIT_SIZE 545
743 #define VAR_TLS_CIPHERS 546
744 #define VAR_TLS_CIPHERSUITES 547
745 #define VAR_TLS_USE_SNI 548
746 #define VAR_IPSET 549
747 #define VAR_IPSET_NAME_V4 550
748 #define VAR_IPSET_NAME_V6 551
749 #define VAR_TLS_SESSION_TICKET_KEYS 552
750 #define VAR_RPZ 553
751 #define VAR_TAGS 554
752 #define VAR_RPZ_ACTION_OVERRIDE 555
753 #define VAR_RPZ_CNAME_OVERRIDE 556
754 #define VAR_RPZ_LOG 557
755 #define VAR_RPZ_LOG_NAME 558
756 #define VAR_DYNLIB 559
757 #define VAR_DYNLIB_FILE 560
758 #define VAR_EDNS_CLIENT_STRING 561
759 #define VAR_EDNS_CLIENT_STRING_OPCODE 562
760 #define VAR_NSID 563
739761
740762 /* Value type. */
741763 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
745767
746768 char* str;
747769
748 #line 750 "util/configparser.c"
770 #line 772 "util/configparser.c"
749771
750772 };
751773 typedef union YYSTYPE YYSTYPE;
759781 int yyparse (void);
760782
761783 #endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */
784 /* Symbol kind. */
785 enum yysymbol_kind_t
786 {
787 YYSYMBOL_YYEMPTY = -2,
788 YYSYMBOL_YYEOF = 0, /* "end of file" */
789 YYSYMBOL_YYerror = 1, /* error */
790 YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
791 YYSYMBOL_SPACE = 3, /* SPACE */
792 YYSYMBOL_LETTER = 4, /* LETTER */
793 YYSYMBOL_NEWLINE = 5, /* NEWLINE */
794 YYSYMBOL_COMMENT = 6, /* COMMENT */
795 YYSYMBOL_COLON = 7, /* COLON */
796 YYSYMBOL_ANY = 8, /* ANY */
797 YYSYMBOL_ZONESTR = 9, /* ZONESTR */
798 YYSYMBOL_STRING_ARG = 10, /* STRING_ARG */
799 YYSYMBOL_VAR_FORCE_TOPLEVEL = 11, /* VAR_FORCE_TOPLEVEL */
800 YYSYMBOL_VAR_SERVER = 12, /* VAR_SERVER */
801 YYSYMBOL_VAR_VERBOSITY = 13, /* VAR_VERBOSITY */
802 YYSYMBOL_VAR_NUM_THREADS = 14, /* VAR_NUM_THREADS */
803 YYSYMBOL_VAR_PORT = 15, /* VAR_PORT */
804 YYSYMBOL_VAR_OUTGOING_RANGE = 16, /* VAR_OUTGOING_RANGE */
805 YYSYMBOL_VAR_INTERFACE = 17, /* VAR_INTERFACE */
806 YYSYMBOL_VAR_PREFER_IP4 = 18, /* VAR_PREFER_IP4 */
807 YYSYMBOL_VAR_DO_IP4 = 19, /* VAR_DO_IP4 */
808 YYSYMBOL_VAR_DO_IP6 = 20, /* VAR_DO_IP6 */
809 YYSYMBOL_VAR_PREFER_IP6 = 21, /* VAR_PREFER_IP6 */
810 YYSYMBOL_VAR_DO_UDP = 22, /* VAR_DO_UDP */
811 YYSYMBOL_VAR_DO_TCP = 23, /* VAR_DO_TCP */
812 YYSYMBOL_VAR_TCP_MSS = 24, /* VAR_TCP_MSS */
813 YYSYMBOL_VAR_OUTGOING_TCP_MSS = 25, /* VAR_OUTGOING_TCP_MSS */
814 YYSYMBOL_VAR_TCP_IDLE_TIMEOUT = 26, /* VAR_TCP_IDLE_TIMEOUT */
815 YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE = 27, /* VAR_EDNS_TCP_KEEPALIVE */
816 YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 28, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */
817 YYSYMBOL_VAR_CHROOT = 29, /* VAR_CHROOT */
818 YYSYMBOL_VAR_USERNAME = 30, /* VAR_USERNAME */
819 YYSYMBOL_VAR_DIRECTORY = 31, /* VAR_DIRECTORY */
820 YYSYMBOL_VAR_LOGFILE = 32, /* VAR_LOGFILE */
821 YYSYMBOL_VAR_PIDFILE = 33, /* VAR_PIDFILE */
822 YYSYMBOL_VAR_MSG_CACHE_SIZE = 34, /* VAR_MSG_CACHE_SIZE */
823 YYSYMBOL_VAR_MSG_CACHE_SLABS = 35, /* VAR_MSG_CACHE_SLABS */
824 YYSYMBOL_VAR_NUM_QUERIES_PER_THREAD = 36, /* VAR_NUM_QUERIES_PER_THREAD */
825 YYSYMBOL_VAR_RRSET_CACHE_SIZE = 37, /* VAR_RRSET_CACHE_SIZE */
826 YYSYMBOL_VAR_RRSET_CACHE_SLABS = 38, /* VAR_RRSET_CACHE_SLABS */
827 YYSYMBOL_VAR_OUTGOING_NUM_TCP = 39, /* VAR_OUTGOING_NUM_TCP */
828 YYSYMBOL_VAR_INFRA_HOST_TTL = 40, /* VAR_INFRA_HOST_TTL */
829 YYSYMBOL_VAR_INFRA_LAME_TTL = 41, /* VAR_INFRA_LAME_TTL */
830 YYSYMBOL_VAR_INFRA_CACHE_SLABS = 42, /* VAR_INFRA_CACHE_SLABS */
831 YYSYMBOL_VAR_INFRA_CACHE_NUMHOSTS = 43, /* VAR_INFRA_CACHE_NUMHOSTS */
832 YYSYMBOL_VAR_INFRA_CACHE_LAME_SIZE = 44, /* VAR_INFRA_CACHE_LAME_SIZE */
833 YYSYMBOL_VAR_NAME = 45, /* VAR_NAME */
834 YYSYMBOL_VAR_STUB_ZONE = 46, /* VAR_STUB_ZONE */
835 YYSYMBOL_VAR_STUB_HOST = 47, /* VAR_STUB_HOST */
836 YYSYMBOL_VAR_STUB_ADDR = 48, /* VAR_STUB_ADDR */
837 YYSYMBOL_VAR_TARGET_FETCH_POLICY = 49, /* VAR_TARGET_FETCH_POLICY */
838 YYSYMBOL_VAR_HARDEN_SHORT_BUFSIZE = 50, /* VAR_HARDEN_SHORT_BUFSIZE */
839 YYSYMBOL_VAR_HARDEN_LARGE_QUERIES = 51, /* VAR_HARDEN_LARGE_QUERIES */
840 YYSYMBOL_VAR_FORWARD_ZONE = 52, /* VAR_FORWARD_ZONE */
841 YYSYMBOL_VAR_FORWARD_HOST = 53, /* VAR_FORWARD_HOST */
842 YYSYMBOL_VAR_FORWARD_ADDR = 54, /* VAR_FORWARD_ADDR */
843 YYSYMBOL_VAR_DO_NOT_QUERY_ADDRESS = 55, /* VAR_DO_NOT_QUERY_ADDRESS */
844 YYSYMBOL_VAR_HIDE_IDENTITY = 56, /* VAR_HIDE_IDENTITY */
845 YYSYMBOL_VAR_HIDE_VERSION = 57, /* VAR_HIDE_VERSION */
846 YYSYMBOL_VAR_IDENTITY = 58, /* VAR_IDENTITY */
847 YYSYMBOL_VAR_VERSION = 59, /* VAR_VERSION */
848 YYSYMBOL_VAR_HARDEN_GLUE = 60, /* VAR_HARDEN_GLUE */
849 YYSYMBOL_VAR_MODULE_CONF = 61, /* VAR_MODULE_CONF */
850 YYSYMBOL_VAR_TRUST_ANCHOR_FILE = 62, /* VAR_TRUST_ANCHOR_FILE */
851 YYSYMBOL_VAR_TRUST_ANCHOR = 63, /* VAR_TRUST_ANCHOR */
852 YYSYMBOL_VAR_VAL_OVERRIDE_DATE = 64, /* VAR_VAL_OVERRIDE_DATE */
853 YYSYMBOL_VAR_BOGUS_TTL = 65, /* VAR_BOGUS_TTL */
854 YYSYMBOL_VAR_VAL_CLEAN_ADDITIONAL = 66, /* VAR_VAL_CLEAN_ADDITIONAL */
855 YYSYMBOL_VAR_VAL_PERMISSIVE_MODE = 67, /* VAR_VAL_PERMISSIVE_MODE */
856 YYSYMBOL_VAR_INCOMING_NUM_TCP = 68, /* VAR_INCOMING_NUM_TCP */
857 YYSYMBOL_VAR_MSG_BUFFER_SIZE = 69, /* VAR_MSG_BUFFER_SIZE */
858 YYSYMBOL_VAR_KEY_CACHE_SIZE = 70, /* VAR_KEY_CACHE_SIZE */
859 YYSYMBOL_VAR_KEY_CACHE_SLABS = 71, /* VAR_KEY_CACHE_SLABS */
860 YYSYMBOL_VAR_TRUSTED_KEYS_FILE = 72, /* VAR_TRUSTED_KEYS_FILE */
861 YYSYMBOL_VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 73, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */
862 YYSYMBOL_VAR_USE_SYSLOG = 74, /* VAR_USE_SYSLOG */
863 YYSYMBOL_VAR_OUTGOING_INTERFACE = 75, /* VAR_OUTGOING_INTERFACE */
864 YYSYMBOL_VAR_ROOT_HINTS = 76, /* VAR_ROOT_HINTS */
865 YYSYMBOL_VAR_DO_NOT_QUERY_LOCALHOST = 77, /* VAR_DO_NOT_QUERY_LOCALHOST */
866 YYSYMBOL_VAR_CACHE_MAX_TTL = 78, /* VAR_CACHE_MAX_TTL */
867 YYSYMBOL_VAR_HARDEN_DNSSEC_STRIPPED = 79, /* VAR_HARDEN_DNSSEC_STRIPPED */
868 YYSYMBOL_VAR_ACCESS_CONTROL = 80, /* VAR_ACCESS_CONTROL */
869 YYSYMBOL_VAR_LOCAL_ZONE = 81, /* VAR_LOCAL_ZONE */
870 YYSYMBOL_VAR_LOCAL_DATA = 82, /* VAR_LOCAL_DATA */
871 YYSYMBOL_VAR_INTERFACE_AUTOMATIC = 83, /* VAR_INTERFACE_AUTOMATIC */
872 YYSYMBOL_VAR_STATISTICS_INTERVAL = 84, /* VAR_STATISTICS_INTERVAL */
873 YYSYMBOL_VAR_DO_DAEMONIZE = 85, /* VAR_DO_DAEMONIZE */
874 YYSYMBOL_VAR_USE_CAPS_FOR_ID = 86, /* VAR_USE_CAPS_FOR_ID */
875 YYSYMBOL_VAR_STATISTICS_CUMULATIVE = 87, /* VAR_STATISTICS_CUMULATIVE */
876 YYSYMBOL_VAR_OUTGOING_PORT_PERMIT = 88, /* VAR_OUTGOING_PORT_PERMIT */
877 YYSYMBOL_VAR_OUTGOING_PORT_AVOID = 89, /* VAR_OUTGOING_PORT_AVOID */
878 YYSYMBOL_VAR_DLV_ANCHOR_FILE = 90, /* VAR_DLV_ANCHOR_FILE */
879 YYSYMBOL_VAR_DLV_ANCHOR = 91, /* VAR_DLV_ANCHOR */
880 YYSYMBOL_VAR_NEG_CACHE_SIZE = 92, /* VAR_NEG_CACHE_SIZE */
881 YYSYMBOL_VAR_HARDEN_REFERRAL_PATH = 93, /* VAR_HARDEN_REFERRAL_PATH */
882 YYSYMBOL_VAR_PRIVATE_ADDRESS = 94, /* VAR_PRIVATE_ADDRESS */
883 YYSYMBOL_VAR_PRIVATE_DOMAIN = 95, /* VAR_PRIVATE_DOMAIN */
884 YYSYMBOL_VAR_REMOTE_CONTROL = 96, /* VAR_REMOTE_CONTROL */
885 YYSYMBOL_VAR_CONTROL_ENABLE = 97, /* VAR_CONTROL_ENABLE */
886 YYSYMBOL_VAR_CONTROL_INTERFACE = 98, /* VAR_CONTROL_INTERFACE */
887 YYSYMBOL_VAR_CONTROL_PORT = 99, /* VAR_CONTROL_PORT */
888 YYSYMBOL_VAR_SERVER_KEY_FILE = 100, /* VAR_SERVER_KEY_FILE */
889 YYSYMBOL_VAR_SERVER_CERT_FILE = 101, /* VAR_SERVER_CERT_FILE */
890 YYSYMBOL_VAR_CONTROL_KEY_FILE = 102, /* VAR_CONTROL_KEY_FILE */
891 YYSYMBOL_VAR_CONTROL_CERT_FILE = 103, /* VAR_CONTROL_CERT_FILE */
892 YYSYMBOL_VAR_CONTROL_USE_CERT = 104, /* VAR_CONTROL_USE_CERT */
893 YYSYMBOL_VAR_EXTENDED_STATISTICS = 105, /* VAR_EXTENDED_STATISTICS */
894 YYSYMBOL_VAR_LOCAL_DATA_PTR = 106, /* VAR_LOCAL_DATA_PTR */
895 YYSYMBOL_VAR_JOSTLE_TIMEOUT = 107, /* VAR_JOSTLE_TIMEOUT */
896 YYSYMBOL_VAR_STUB_PRIME = 108, /* VAR_STUB_PRIME */
897 YYSYMBOL_VAR_UNWANTED_REPLY_THRESHOLD = 109, /* VAR_UNWANTED_REPLY_THRESHOLD */
898 YYSYMBOL_VAR_LOG_TIME_ASCII = 110, /* VAR_LOG_TIME_ASCII */
899 YYSYMBOL_VAR_DOMAIN_INSECURE = 111, /* VAR_DOMAIN_INSECURE */
900 YYSYMBOL_VAR_PYTHON = 112, /* VAR_PYTHON */
901 YYSYMBOL_VAR_PYTHON_SCRIPT = 113, /* VAR_PYTHON_SCRIPT */
902 YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 114, /* VAR_VAL_SIG_SKEW_MIN */
903 YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 115, /* VAR_VAL_SIG_SKEW_MAX */
904 YYSYMBOL_VAR_CACHE_MIN_TTL = 116, /* VAR_CACHE_MIN_TTL */
905 YYSYMBOL_VAR_VAL_LOG_LEVEL = 117, /* VAR_VAL_LOG_LEVEL */
906 YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 118, /* VAR_AUTO_TRUST_ANCHOR_FILE */
907 YYSYMBOL_VAR_KEEP_MISSING = 119, /* VAR_KEEP_MISSING */
908 YYSYMBOL_VAR_ADD_HOLDDOWN = 120, /* VAR_ADD_HOLDDOWN */
909 YYSYMBOL_VAR_DEL_HOLDDOWN = 121, /* VAR_DEL_HOLDDOWN */
910 YYSYMBOL_VAR_SO_RCVBUF = 122, /* VAR_SO_RCVBUF */
911 YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 123, /* VAR_EDNS_BUFFER_SIZE */
912 YYSYMBOL_VAR_PREFETCH = 124, /* VAR_PREFETCH */
913 YYSYMBOL_VAR_PREFETCH_KEY = 125, /* VAR_PREFETCH_KEY */
914 YYSYMBOL_VAR_SO_SNDBUF = 126, /* VAR_SO_SNDBUF */
915 YYSYMBOL_VAR_SO_REUSEPORT = 127, /* VAR_SO_REUSEPORT */
916 YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 128, /* VAR_HARDEN_BELOW_NXDOMAIN */
917 YYSYMBOL_VAR_IGNORE_CD_FLAG = 129, /* VAR_IGNORE_CD_FLAG */
918 YYSYMBOL_VAR_LOG_QUERIES = 130, /* VAR_LOG_QUERIES */
919 YYSYMBOL_VAR_LOG_REPLIES = 131, /* VAR_LOG_REPLIES */
920 YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 132, /* VAR_LOG_LOCAL_ACTIONS */
921 YYSYMBOL_VAR_TCP_UPSTREAM = 133, /* VAR_TCP_UPSTREAM */
922 YYSYMBOL_VAR_SSL_UPSTREAM = 134, /* VAR_SSL_UPSTREAM */
923 YYSYMBOL_VAR_SSL_SERVICE_KEY = 135, /* VAR_SSL_SERVICE_KEY */
924 YYSYMBOL_VAR_SSL_SERVICE_PEM = 136, /* VAR_SSL_SERVICE_PEM */
925 YYSYMBOL_VAR_SSL_PORT = 137, /* VAR_SSL_PORT */
926 YYSYMBOL_VAR_FORWARD_FIRST = 138, /* VAR_FORWARD_FIRST */
927 YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 139, /* VAR_STUB_SSL_UPSTREAM */
928 YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 140, /* VAR_FORWARD_SSL_UPSTREAM */
929 YYSYMBOL_VAR_TLS_CERT_BUNDLE = 141, /* VAR_TLS_CERT_BUNDLE */
930 YYSYMBOL_VAR_HTTPS_PORT = 142, /* VAR_HTTPS_PORT */
931 YYSYMBOL_VAR_HTTP_ENDPOINT = 143, /* VAR_HTTP_ENDPOINT */
932 YYSYMBOL_VAR_HTTP_MAX_STREAMS = 144, /* VAR_HTTP_MAX_STREAMS */
933 YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 145, /* VAR_HTTP_QUERY_BUFFER_SIZE */
934 YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 146, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */
935 YYSYMBOL_VAR_HTTP_NODELAY = 147, /* VAR_HTTP_NODELAY */
936 YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 148, /* VAR_HTTP_NOTLS_DOWNSTREAM */
937 YYSYMBOL_VAR_STUB_FIRST = 149, /* VAR_STUB_FIRST */
938 YYSYMBOL_VAR_MINIMAL_RESPONSES = 150, /* VAR_MINIMAL_RESPONSES */
939 YYSYMBOL_VAR_RRSET_ROUNDROBIN = 151, /* VAR_RRSET_ROUNDROBIN */
940 YYSYMBOL_VAR_MAX_UDP_SIZE = 152, /* VAR_MAX_UDP_SIZE */
941 YYSYMBOL_VAR_DELAY_CLOSE = 153, /* VAR_DELAY_CLOSE */
942 YYSYMBOL_VAR_UDP_CONNECT = 154, /* VAR_UDP_CONNECT */
943 YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 155, /* VAR_UNBLOCK_LAN_ZONES */
944 YYSYMBOL_VAR_INSECURE_LAN_ZONES = 156, /* VAR_INSECURE_LAN_ZONES */
945 YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 157, /* VAR_INFRA_CACHE_MIN_RTT */
946 YYSYMBOL_VAR_INFRA_KEEP_PROBING = 158, /* VAR_INFRA_KEEP_PROBING */
947 YYSYMBOL_VAR_DNS64_PREFIX = 159, /* VAR_DNS64_PREFIX */
948 YYSYMBOL_VAR_DNS64_SYNTHALL = 160, /* VAR_DNS64_SYNTHALL */
949 YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 161, /* VAR_DNS64_IGNORE_AAAA */
950 YYSYMBOL_VAR_DNSTAP = 162, /* VAR_DNSTAP */
951 YYSYMBOL_VAR_DNSTAP_ENABLE = 163, /* VAR_DNSTAP_ENABLE */
952 YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 164, /* VAR_DNSTAP_SOCKET_PATH */
953 YYSYMBOL_VAR_DNSTAP_IP = 165, /* VAR_DNSTAP_IP */
954 YYSYMBOL_VAR_DNSTAP_TLS = 166, /* VAR_DNSTAP_TLS */
955 YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 167, /* VAR_DNSTAP_TLS_SERVER_NAME */
956 YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 168, /* VAR_DNSTAP_TLS_CERT_BUNDLE */
957 YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 169, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */
958 YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 170, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */
959 YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 171, /* VAR_DNSTAP_SEND_IDENTITY */
960 YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 172, /* VAR_DNSTAP_SEND_VERSION */
961 YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 173, /* VAR_DNSTAP_BIDIRECTIONAL */
962 YYSYMBOL_VAR_DNSTAP_IDENTITY = 174, /* VAR_DNSTAP_IDENTITY */
963 YYSYMBOL_VAR_DNSTAP_VERSION = 175, /* VAR_DNSTAP_VERSION */
964 YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 176, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */
965 YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 177, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */
966 YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 178, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */
967 YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 179, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */
968 YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 180, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */
969 YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 181, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */
970 YYSYMBOL_VAR_RESPONSE_IP_TAG = 182, /* VAR_RESPONSE_IP_TAG */
971 YYSYMBOL_VAR_RESPONSE_IP = 183, /* VAR_RESPONSE_IP */
972 YYSYMBOL_VAR_RESPONSE_IP_DATA = 184, /* VAR_RESPONSE_IP_DATA */
973 YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 185, /* VAR_HARDEN_ALGO_DOWNGRADE */
974 YYSYMBOL_VAR_IP_TRANSPARENT = 186, /* VAR_IP_TRANSPARENT */
975 YYSYMBOL_VAR_IP_DSCP = 187, /* VAR_IP_DSCP */
976 YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 188, /* VAR_DISABLE_DNSSEC_LAME_CHECK */
977 YYSYMBOL_VAR_IP_RATELIMIT = 189, /* VAR_IP_RATELIMIT */
978 YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 190, /* VAR_IP_RATELIMIT_SLABS */
979 YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 191, /* VAR_IP_RATELIMIT_SIZE */
980 YYSYMBOL_VAR_RATELIMIT = 192, /* VAR_RATELIMIT */
981 YYSYMBOL_VAR_RATELIMIT_SLABS = 193, /* VAR_RATELIMIT_SLABS */
982 YYSYMBOL_VAR_RATELIMIT_SIZE = 194, /* VAR_RATELIMIT_SIZE */
983 YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 195, /* VAR_RATELIMIT_FOR_DOMAIN */
984 YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 196, /* VAR_RATELIMIT_BELOW_DOMAIN */
985 YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 197, /* VAR_IP_RATELIMIT_FACTOR */
986 YYSYMBOL_VAR_RATELIMIT_FACTOR = 198, /* VAR_RATELIMIT_FACTOR */
987 YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 199, /* VAR_SEND_CLIENT_SUBNET */
988 YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 200, /* VAR_CLIENT_SUBNET_ZONE */
989 YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 201, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */
990 YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 202, /* VAR_CLIENT_SUBNET_OPCODE */
991 YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 203, /* VAR_MAX_CLIENT_SUBNET_IPV4 */
992 YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 204, /* VAR_MAX_CLIENT_SUBNET_IPV6 */
993 YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 205, /* VAR_MIN_CLIENT_SUBNET_IPV4 */
994 YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 206, /* VAR_MIN_CLIENT_SUBNET_IPV6 */
995 YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 207, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */
996 YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 208, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */
997 YYSYMBOL_VAR_CAPS_WHITELIST = 209, /* VAR_CAPS_WHITELIST */
998 YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 210, /* VAR_CACHE_MAX_NEGATIVE_TTL */
999 YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 211, /* VAR_PERMIT_SMALL_HOLDDOWN */
1000 YYSYMBOL_VAR_QNAME_MINIMISATION = 212, /* VAR_QNAME_MINIMISATION */
1001 YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 213, /* VAR_QNAME_MINIMISATION_STRICT */
1002 YYSYMBOL_VAR_IP_FREEBIND = 214, /* VAR_IP_FREEBIND */
1003 YYSYMBOL_VAR_DEFINE_TAG = 215, /* VAR_DEFINE_TAG */
1004 YYSYMBOL_VAR_LOCAL_ZONE_TAG = 216, /* VAR_LOCAL_ZONE_TAG */
1005 YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 217, /* VAR_ACCESS_CONTROL_TAG */
1006 YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 218, /* VAR_LOCAL_ZONE_OVERRIDE */
1007 YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 219, /* VAR_ACCESS_CONTROL_TAG_ACTION */
1008 YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 220, /* VAR_ACCESS_CONTROL_TAG_DATA */
1009 YYSYMBOL_VAR_VIEW = 221, /* VAR_VIEW */
1010 YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 222, /* VAR_ACCESS_CONTROL_VIEW */
1011 YYSYMBOL_VAR_VIEW_FIRST = 223, /* VAR_VIEW_FIRST */
1012 YYSYMBOL_VAR_SERVE_EXPIRED = 224, /* VAR_SERVE_EXPIRED */
1013 YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 225, /* VAR_SERVE_EXPIRED_TTL */
1014 YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 226, /* VAR_SERVE_EXPIRED_TTL_RESET */
1015 YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 227, /* VAR_SERVE_EXPIRED_REPLY_TTL */
1016 YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 228, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */
1017 YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 229, /* VAR_SERVE_ORIGINAL_TTL */
1018 YYSYMBOL_VAR_FAKE_DSA = 230, /* VAR_FAKE_DSA */
1019 YYSYMBOL_VAR_FAKE_SHA1 = 231, /* VAR_FAKE_SHA1 */
1020 YYSYMBOL_VAR_LOG_IDENTITY = 232, /* VAR_LOG_IDENTITY */
1021 YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 233, /* VAR_HIDE_TRUSTANCHOR */
1022 YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 234, /* VAR_TRUST_ANCHOR_SIGNALING */
1023 YYSYMBOL_VAR_AGGRESSIVE_NSEC = 235, /* VAR_AGGRESSIVE_NSEC */
1024 YYSYMBOL_VAR_USE_SYSTEMD = 236, /* VAR_USE_SYSTEMD */
1025 YYSYMBOL_VAR_SHM_ENABLE = 237, /* VAR_SHM_ENABLE */
1026 YYSYMBOL_VAR_SHM_KEY = 238, /* VAR_SHM_KEY */
1027 YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 239, /* VAR_ROOT_KEY_SENTINEL */
1028 YYSYMBOL_VAR_DNSCRYPT = 240, /* VAR_DNSCRYPT */
1029 YYSYMBOL_VAR_DNSCRYPT_ENABLE = 241, /* VAR_DNSCRYPT_ENABLE */
1030 YYSYMBOL_VAR_DNSCRYPT_PORT = 242, /* VAR_DNSCRYPT_PORT */
1031 YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 243, /* VAR_DNSCRYPT_PROVIDER */
1032 YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 244, /* VAR_DNSCRYPT_SECRET_KEY */
1033 YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 245, /* VAR_DNSCRYPT_PROVIDER_CERT */
1034 YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 246, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */
1035 YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 247, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */
1036 YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 248, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */
1037 YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 249, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */
1038 YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 250, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */
1039 YYSYMBOL_VAR_PAD_RESPONSES = 251, /* VAR_PAD_RESPONSES */
1040 YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 252, /* VAR_PAD_RESPONSES_BLOCK_SIZE */
1041 YYSYMBOL_VAR_PAD_QUERIES = 253, /* VAR_PAD_QUERIES */
1042 YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 254, /* VAR_PAD_QUERIES_BLOCK_SIZE */
1043 YYSYMBOL_VAR_IPSECMOD_ENABLED = 255, /* VAR_IPSECMOD_ENABLED */
1044 YYSYMBOL_VAR_IPSECMOD_HOOK = 256, /* VAR_IPSECMOD_HOOK */
1045 YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 257, /* VAR_IPSECMOD_IGNORE_BOGUS */
1046 YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 258, /* VAR_IPSECMOD_MAX_TTL */
1047 YYSYMBOL_VAR_IPSECMOD_WHITELIST = 259, /* VAR_IPSECMOD_WHITELIST */
1048 YYSYMBOL_VAR_IPSECMOD_STRICT = 260, /* VAR_IPSECMOD_STRICT */
1049 YYSYMBOL_VAR_CACHEDB = 261, /* VAR_CACHEDB */
1050 YYSYMBOL_VAR_CACHEDB_BACKEND = 262, /* VAR_CACHEDB_BACKEND */
1051 YYSYMBOL_VAR_CACHEDB_SECRETSEED = 263, /* VAR_CACHEDB_SECRETSEED */
1052 YYSYMBOL_VAR_CACHEDB_REDISHOST = 264, /* VAR_CACHEDB_REDISHOST */
1053 YYSYMBOL_VAR_CACHEDB_REDISPORT = 265, /* VAR_CACHEDB_REDISPORT */
1054 YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 266, /* VAR_CACHEDB_REDISTIMEOUT */
1055 YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 267, /* VAR_CACHEDB_REDISEXPIRERECORDS */
1056 YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 268, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */
1057 YYSYMBOL_VAR_FOR_UPSTREAM = 269, /* VAR_FOR_UPSTREAM */
1058 YYSYMBOL_VAR_AUTH_ZONE = 270, /* VAR_AUTH_ZONE */
1059 YYSYMBOL_VAR_ZONEFILE = 271, /* VAR_ZONEFILE */
1060 YYSYMBOL_VAR_MASTER = 272, /* VAR_MASTER */
1061 YYSYMBOL_VAR_URL = 273, /* VAR_URL */
1062 YYSYMBOL_VAR_FOR_DOWNSTREAM = 274, /* VAR_FOR_DOWNSTREAM */
1063 YYSYMBOL_VAR_FALLBACK_ENABLED = 275, /* VAR_FALLBACK_ENABLED */
1064 YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 276, /* VAR_TLS_ADDITIONAL_PORT */
1065 YYSYMBOL_VAR_LOW_RTT = 277, /* VAR_LOW_RTT */
1066 YYSYMBOL_VAR_LOW_RTT_PERMIL = 278, /* VAR_LOW_RTT_PERMIL */
1067 YYSYMBOL_VAR_FAST_SERVER_PERMIL = 279, /* VAR_FAST_SERVER_PERMIL */
1068 YYSYMBOL_VAR_FAST_SERVER_NUM = 280, /* VAR_FAST_SERVER_NUM */
1069 YYSYMBOL_VAR_ALLOW_NOTIFY = 281, /* VAR_ALLOW_NOTIFY */
1070 YYSYMBOL_VAR_TLS_WIN_CERT = 282, /* VAR_TLS_WIN_CERT */
1071 YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 283, /* VAR_TCP_CONNECTION_LIMIT */
1072 YYSYMBOL_VAR_FORWARD_NO_CACHE = 284, /* VAR_FORWARD_NO_CACHE */
1073 YYSYMBOL_VAR_STUB_NO_CACHE = 285, /* VAR_STUB_NO_CACHE */
1074 YYSYMBOL_VAR_LOG_SERVFAIL = 286, /* VAR_LOG_SERVFAIL */
1075 YYSYMBOL_VAR_DENY_ANY = 287, /* VAR_DENY_ANY */
1076 YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 288, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */
1077 YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 289, /* VAR_LOG_TAG_QUERYREPLY */
1078 YYSYMBOL_VAR_STREAM_WAIT_SIZE = 290, /* VAR_STREAM_WAIT_SIZE */
1079 YYSYMBOL_VAR_TLS_CIPHERS = 291, /* VAR_TLS_CIPHERS */
1080 YYSYMBOL_VAR_TLS_CIPHERSUITES = 292, /* VAR_TLS_CIPHERSUITES */
1081 YYSYMBOL_VAR_TLS_USE_SNI = 293, /* VAR_TLS_USE_SNI */
1082 YYSYMBOL_VAR_IPSET = 294, /* VAR_IPSET */
1083 YYSYMBOL_VAR_IPSET_NAME_V4 = 295, /* VAR_IPSET_NAME_V4 */
1084 YYSYMBOL_VAR_IPSET_NAME_V6 = 296, /* VAR_IPSET_NAME_V6 */
1085 YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 297, /* VAR_TLS_SESSION_TICKET_KEYS */
1086 YYSYMBOL_VAR_RPZ = 298, /* VAR_RPZ */
1087 YYSYMBOL_VAR_TAGS = 299, /* VAR_TAGS */
1088 YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 300, /* VAR_RPZ_ACTION_OVERRIDE */
1089 YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 301, /* VAR_RPZ_CNAME_OVERRIDE */
1090 YYSYMBOL_VAR_RPZ_LOG = 302, /* VAR_RPZ_LOG */
1091 YYSYMBOL_VAR_RPZ_LOG_NAME = 303, /* VAR_RPZ_LOG_NAME */
1092 YYSYMBOL_VAR_DYNLIB = 304, /* VAR_DYNLIB */
1093 YYSYMBOL_VAR_DYNLIB_FILE = 305, /* VAR_DYNLIB_FILE */
1094 YYSYMBOL_VAR_EDNS_CLIENT_STRING = 306, /* VAR_EDNS_CLIENT_STRING */
1095 YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 307, /* VAR_EDNS_CLIENT_STRING_OPCODE */
1096 YYSYMBOL_VAR_NSID = 308, /* VAR_NSID */
1097 YYSYMBOL_YYACCEPT = 309, /* $accept */
1098 YYSYMBOL_toplevelvars = 310, /* toplevelvars */
1099 YYSYMBOL_toplevelvar = 311, /* toplevelvar */
1100 YYSYMBOL_force_toplevel = 312, /* force_toplevel */
1101 YYSYMBOL_serverstart = 313, /* serverstart */
1102 YYSYMBOL_contents_server = 314, /* contents_server */
1103 YYSYMBOL_content_server = 315, /* content_server */
1104 YYSYMBOL_stubstart = 316, /* stubstart */
1105 YYSYMBOL_contents_stub = 317, /* contents_stub */
1106 YYSYMBOL_content_stub = 318, /* content_stub */
1107 YYSYMBOL_forwardstart = 319, /* forwardstart */
1108 YYSYMBOL_contents_forward = 320, /* contents_forward */
1109 YYSYMBOL_content_forward = 321, /* content_forward */
1110 YYSYMBOL_viewstart = 322, /* viewstart */
1111 YYSYMBOL_contents_view = 323, /* contents_view */
1112 YYSYMBOL_content_view = 324, /* content_view */
1113 YYSYMBOL_authstart = 325, /* authstart */
1114 YYSYMBOL_contents_auth = 326, /* contents_auth */
1115 YYSYMBOL_content_auth = 327, /* content_auth */
1116 YYSYMBOL_rpz_tag = 328, /* rpz_tag */
1117 YYSYMBOL_rpz_action_override = 329, /* rpz_action_override */
1118 YYSYMBOL_rpz_cname_override = 330, /* rpz_cname_override */
1119 YYSYMBOL_rpz_log = 331, /* rpz_log */
1120 YYSYMBOL_rpz_log_name = 332, /* rpz_log_name */
1121 YYSYMBOL_rpzstart = 333, /* rpzstart */
1122 YYSYMBOL_contents_rpz = 334, /* contents_rpz */
1123 YYSYMBOL_content_rpz = 335, /* content_rpz */
1124 YYSYMBOL_server_num_threads = 336, /* server_num_threads */
1125 YYSYMBOL_server_verbosity = 337, /* server_verbosity */
1126 YYSYMBOL_server_statistics_interval = 338, /* server_statistics_interval */
1127 YYSYMBOL_server_statistics_cumulative = 339, /* server_statistics_cumulative */
1128 YYSYMBOL_server_extended_statistics = 340, /* server_extended_statistics */
1129 YYSYMBOL_server_shm_enable = 341, /* server_shm_enable */
1130 YYSYMBOL_server_shm_key = 342, /* server_shm_key */
1131 YYSYMBOL_server_port = 343, /* server_port */
1132 YYSYMBOL_server_send_client_subnet = 344, /* server_send_client_subnet */
1133 YYSYMBOL_server_client_subnet_zone = 345, /* server_client_subnet_zone */
1134 YYSYMBOL_server_client_subnet_always_forward = 346, /* server_client_subnet_always_forward */
1135 YYSYMBOL_server_client_subnet_opcode = 347, /* server_client_subnet_opcode */
1136 YYSYMBOL_server_max_client_subnet_ipv4 = 348, /* server_max_client_subnet_ipv4 */
1137 YYSYMBOL_server_max_client_subnet_ipv6 = 349, /* server_max_client_subnet_ipv6 */
1138 YYSYMBOL_server_min_client_subnet_ipv4 = 350, /* server_min_client_subnet_ipv4 */
1139 YYSYMBOL_server_min_client_subnet_ipv6 = 351, /* server_min_client_subnet_ipv6 */
1140 YYSYMBOL_server_max_ecs_tree_size_ipv4 = 352, /* server_max_ecs_tree_size_ipv4 */
1141 YYSYMBOL_server_max_ecs_tree_size_ipv6 = 353, /* server_max_ecs_tree_size_ipv6 */
1142 YYSYMBOL_server_interface = 354, /* server_interface */
1143 YYSYMBOL_server_outgoing_interface = 355, /* server_outgoing_interface */
1144 YYSYMBOL_server_outgoing_range = 356, /* server_outgoing_range */
1145 YYSYMBOL_server_outgoing_port_permit = 357, /* server_outgoing_port_permit */
1146 YYSYMBOL_server_outgoing_port_avoid = 358, /* server_outgoing_port_avoid */
1147 YYSYMBOL_server_outgoing_num_tcp = 359, /* server_outgoing_num_tcp */
1148 YYSYMBOL_server_incoming_num_tcp = 360, /* server_incoming_num_tcp */
1149 YYSYMBOL_server_interface_automatic = 361, /* server_interface_automatic */
1150 YYSYMBOL_server_do_ip4 = 362, /* server_do_ip4 */
1151 YYSYMBOL_server_do_ip6 = 363, /* server_do_ip6 */
1152 YYSYMBOL_server_do_udp = 364, /* server_do_udp */
1153 YYSYMBOL_server_do_tcp = 365, /* server_do_tcp */
1154 YYSYMBOL_server_prefer_ip4 = 366, /* server_prefer_ip4 */
1155 YYSYMBOL_server_prefer_ip6 = 367, /* server_prefer_ip6 */
1156 YYSYMBOL_server_tcp_mss = 368, /* server_tcp_mss */
1157 YYSYMBOL_server_outgoing_tcp_mss = 369, /* server_outgoing_tcp_mss */
1158 YYSYMBOL_server_tcp_idle_timeout = 370, /* server_tcp_idle_timeout */
1159 YYSYMBOL_server_tcp_keepalive = 371, /* server_tcp_keepalive */
1160 YYSYMBOL_server_tcp_keepalive_timeout = 372, /* server_tcp_keepalive_timeout */
1161 YYSYMBOL_server_tcp_upstream = 373, /* server_tcp_upstream */
1162 YYSYMBOL_server_udp_upstream_without_downstream = 374, /* server_udp_upstream_without_downstream */
1163 YYSYMBOL_server_ssl_upstream = 375, /* server_ssl_upstream */
1164 YYSYMBOL_server_ssl_service_key = 376, /* server_ssl_service_key */
1165 YYSYMBOL_server_ssl_service_pem = 377, /* server_ssl_service_pem */
1166 YYSYMBOL_server_ssl_port = 378, /* server_ssl_port */
1167 YYSYMBOL_server_tls_cert_bundle = 379, /* server_tls_cert_bundle */
1168 YYSYMBOL_server_tls_win_cert = 380, /* server_tls_win_cert */
1169 YYSYMBOL_server_tls_additional_port = 381, /* server_tls_additional_port */
1170 YYSYMBOL_server_tls_ciphers = 382, /* server_tls_ciphers */
1171 YYSYMBOL_server_tls_ciphersuites = 383, /* server_tls_ciphersuites */
1172 YYSYMBOL_server_tls_session_ticket_keys = 384, /* server_tls_session_ticket_keys */
1173 YYSYMBOL_server_tls_use_sni = 385, /* server_tls_use_sni */
1174 YYSYMBOL_server_https_port = 386, /* server_https_port */
1175 YYSYMBOL_server_http_endpoint = 387, /* server_http_endpoint */
1176 YYSYMBOL_server_http_max_streams = 388, /* server_http_max_streams */
1177 YYSYMBOL_server_http_query_buffer_size = 389, /* server_http_query_buffer_size */
1178 YYSYMBOL_server_http_response_buffer_size = 390, /* server_http_response_buffer_size */
1179 YYSYMBOL_server_http_nodelay = 391, /* server_http_nodelay */
1180 YYSYMBOL_server_http_notls_downstream = 392, /* server_http_notls_downstream */
1181 YYSYMBOL_server_use_systemd = 393, /* server_use_systemd */
1182 YYSYMBOL_server_do_daemonize = 394, /* server_do_daemonize */
1183 YYSYMBOL_server_use_syslog = 395, /* server_use_syslog */
1184 YYSYMBOL_server_log_time_ascii = 396, /* server_log_time_ascii */
1185 YYSYMBOL_server_log_queries = 397, /* server_log_queries */
1186 YYSYMBOL_server_log_replies = 398, /* server_log_replies */
1187 YYSYMBOL_server_log_tag_queryreply = 399, /* server_log_tag_queryreply */
1188 YYSYMBOL_server_log_servfail = 400, /* server_log_servfail */
1189 YYSYMBOL_server_log_local_actions = 401, /* server_log_local_actions */
1190 YYSYMBOL_server_chroot = 402, /* server_chroot */
1191 YYSYMBOL_server_username = 403, /* server_username */
1192 YYSYMBOL_server_directory = 404, /* server_directory */
1193 YYSYMBOL_server_logfile = 405, /* server_logfile */
1194 YYSYMBOL_server_pidfile = 406, /* server_pidfile */
1195 YYSYMBOL_server_root_hints = 407, /* server_root_hints */
1196 YYSYMBOL_server_dlv_anchor_file = 408, /* server_dlv_anchor_file */
1197 YYSYMBOL_server_dlv_anchor = 409, /* server_dlv_anchor */
1198 YYSYMBOL_server_auto_trust_anchor_file = 410, /* server_auto_trust_anchor_file */
1199 YYSYMBOL_server_trust_anchor_file = 411, /* server_trust_anchor_file */
1200 YYSYMBOL_server_trusted_keys_file = 412, /* server_trusted_keys_file */
1201 YYSYMBOL_server_trust_anchor = 413, /* server_trust_anchor */
1202 YYSYMBOL_server_trust_anchor_signaling = 414, /* server_trust_anchor_signaling */
1203 YYSYMBOL_server_root_key_sentinel = 415, /* server_root_key_sentinel */
1204 YYSYMBOL_server_domain_insecure = 416, /* server_domain_insecure */
1205 YYSYMBOL_server_hide_identity = 417, /* server_hide_identity */
1206 YYSYMBOL_server_hide_version = 418, /* server_hide_version */
1207 YYSYMBOL_server_hide_trustanchor = 419, /* server_hide_trustanchor */
1208 YYSYMBOL_server_identity = 420, /* server_identity */
1209 YYSYMBOL_server_version = 421, /* server_version */
1210 YYSYMBOL_server_nsid = 422, /* server_nsid */
1211 YYSYMBOL_server_so_rcvbuf = 423, /* server_so_rcvbuf */
1212 YYSYMBOL_server_so_sndbuf = 424, /* server_so_sndbuf */
1213 YYSYMBOL_server_so_reuseport = 425, /* server_so_reuseport */
1214 YYSYMBOL_server_ip_transparent = 426, /* server_ip_transparent */
1215 YYSYMBOL_server_ip_freebind = 427, /* server_ip_freebind */
1216 YYSYMBOL_server_ip_dscp = 428, /* server_ip_dscp */
1217 YYSYMBOL_server_stream_wait_size = 429, /* server_stream_wait_size */
1218 YYSYMBOL_server_edns_buffer_size = 430, /* server_edns_buffer_size */
1219 YYSYMBOL_server_msg_buffer_size = 431, /* server_msg_buffer_size */
1220 YYSYMBOL_server_msg_cache_size = 432, /* server_msg_cache_size */
1221 YYSYMBOL_server_msg_cache_slabs = 433, /* server_msg_cache_slabs */
1222 YYSYMBOL_server_num_queries_per_thread = 434, /* server_num_queries_per_thread */
1223 YYSYMBOL_server_jostle_timeout = 435, /* server_jostle_timeout */
1224 YYSYMBOL_server_delay_close = 436, /* server_delay_close */
1225 YYSYMBOL_server_udp_connect = 437, /* server_udp_connect */
1226 YYSYMBOL_server_unblock_lan_zones = 438, /* server_unblock_lan_zones */
1227 YYSYMBOL_server_insecure_lan_zones = 439, /* server_insecure_lan_zones */
1228 YYSYMBOL_server_rrset_cache_size = 440, /* server_rrset_cache_size */
1229 YYSYMBOL_server_rrset_cache_slabs = 441, /* server_rrset_cache_slabs */
1230 YYSYMBOL_server_infra_host_ttl = 442, /* server_infra_host_ttl */
1231 YYSYMBOL_server_infra_lame_ttl = 443, /* server_infra_lame_ttl */
1232 YYSYMBOL_server_infra_cache_numhosts = 444, /* server_infra_cache_numhosts */
1233 YYSYMBOL_server_infra_cache_lame_size = 445, /* server_infra_cache_lame_size */
1234 YYSYMBOL_server_infra_cache_slabs = 446, /* server_infra_cache_slabs */
1235 YYSYMBOL_server_infra_cache_min_rtt = 447, /* server_infra_cache_min_rtt */
1236 YYSYMBOL_server_infra_keep_probing = 448, /* server_infra_keep_probing */
1237 YYSYMBOL_server_target_fetch_policy = 449, /* server_target_fetch_policy */
1238 YYSYMBOL_server_harden_short_bufsize = 450, /* server_harden_short_bufsize */
1239 YYSYMBOL_server_harden_large_queries = 451, /* server_harden_large_queries */
1240 YYSYMBOL_server_harden_glue = 452, /* server_harden_glue */
1241 YYSYMBOL_server_harden_dnssec_stripped = 453, /* server_harden_dnssec_stripped */
1242 YYSYMBOL_server_harden_below_nxdomain = 454, /* server_harden_below_nxdomain */
1243 YYSYMBOL_server_harden_referral_path = 455, /* server_harden_referral_path */
1244 YYSYMBOL_server_harden_algo_downgrade = 456, /* server_harden_algo_downgrade */
1245 YYSYMBOL_server_use_caps_for_id = 457, /* server_use_caps_for_id */
1246 YYSYMBOL_server_caps_whitelist = 458, /* server_caps_whitelist */
1247 YYSYMBOL_server_private_address = 459, /* server_private_address */
1248 YYSYMBOL_server_private_domain = 460, /* server_private_domain */
1249 YYSYMBOL_server_prefetch = 461, /* server_prefetch */
1250 YYSYMBOL_server_prefetch_key = 462, /* server_prefetch_key */
1251 YYSYMBOL_server_deny_any = 463, /* server_deny_any */
1252 YYSYMBOL_server_unwanted_reply_threshold = 464, /* server_unwanted_reply_threshold */
1253 YYSYMBOL_server_do_not_query_address = 465, /* server_do_not_query_address */
1254 YYSYMBOL_server_do_not_query_localhost = 466, /* server_do_not_query_localhost */
1255 YYSYMBOL_server_access_control = 467, /* server_access_control */
1256 YYSYMBOL_server_module_conf = 468, /* server_module_conf */
1257 YYSYMBOL_server_val_override_date = 469, /* server_val_override_date */
1258 YYSYMBOL_server_val_sig_skew_min = 470, /* server_val_sig_skew_min */
1259 YYSYMBOL_server_val_sig_skew_max = 471, /* server_val_sig_skew_max */
1260 YYSYMBOL_server_cache_max_ttl = 472, /* server_cache_max_ttl */
1261 YYSYMBOL_server_cache_max_negative_ttl = 473, /* server_cache_max_negative_ttl */
1262 YYSYMBOL_server_cache_min_ttl = 474, /* server_cache_min_ttl */
1263 YYSYMBOL_server_bogus_ttl = 475, /* server_bogus_ttl */
1264 YYSYMBOL_server_val_clean_additional = 476, /* server_val_clean_additional */
1265 YYSYMBOL_server_val_permissive_mode = 477, /* server_val_permissive_mode */
1266 YYSYMBOL_server_aggressive_nsec = 478, /* server_aggressive_nsec */
1267 YYSYMBOL_server_ignore_cd_flag = 479, /* server_ignore_cd_flag */
1268 YYSYMBOL_server_serve_expired = 480, /* server_serve_expired */
1269 YYSYMBOL_server_serve_expired_ttl = 481, /* server_serve_expired_ttl */
1270 YYSYMBOL_server_serve_expired_ttl_reset = 482, /* server_serve_expired_ttl_reset */
1271 YYSYMBOL_server_serve_expired_reply_ttl = 483, /* server_serve_expired_reply_ttl */
1272 YYSYMBOL_server_serve_expired_client_timeout = 484, /* server_serve_expired_client_timeout */
1273 YYSYMBOL_server_serve_original_ttl = 485, /* server_serve_original_ttl */
1274 YYSYMBOL_server_fake_dsa = 486, /* server_fake_dsa */
1275 YYSYMBOL_server_fake_sha1 = 487, /* server_fake_sha1 */
1276 YYSYMBOL_server_val_log_level = 488, /* server_val_log_level */
1277 YYSYMBOL_server_val_nsec3_keysize_iterations = 489, /* server_val_nsec3_keysize_iterations */
1278 YYSYMBOL_server_add_holddown = 490, /* server_add_holddown */
1279 YYSYMBOL_server_del_holddown = 491, /* server_del_holddown */
1280 YYSYMBOL_server_keep_missing = 492, /* server_keep_missing */
1281 YYSYMBOL_server_permit_small_holddown = 493, /* server_permit_small_holddown */
1282 YYSYMBOL_server_key_cache_size = 494, /* server_key_cache_size */
1283 YYSYMBOL_server_key_cache_slabs = 495, /* server_key_cache_slabs */
1284 YYSYMBOL_server_neg_cache_size = 496, /* server_neg_cache_size */
1285 YYSYMBOL_server_local_zone = 497, /* server_local_zone */
1286 YYSYMBOL_server_local_data = 498, /* server_local_data */
1287 YYSYMBOL_server_local_data_ptr = 499, /* server_local_data_ptr */
1288 YYSYMBOL_server_minimal_responses = 500, /* server_minimal_responses */
1289 YYSYMBOL_server_rrset_roundrobin = 501, /* server_rrset_roundrobin */
1290 YYSYMBOL_server_unknown_server_time_limit = 502, /* server_unknown_server_time_limit */
1291 YYSYMBOL_server_max_udp_size = 503, /* server_max_udp_size */
1292 YYSYMBOL_server_dns64_prefix = 504, /* server_dns64_prefix */
1293 YYSYMBOL_server_dns64_synthall = 505, /* server_dns64_synthall */
1294 YYSYMBOL_server_dns64_ignore_aaaa = 506, /* server_dns64_ignore_aaaa */
1295 YYSYMBOL_server_define_tag = 507, /* server_define_tag */
1296 YYSYMBOL_server_local_zone_tag = 508, /* server_local_zone_tag */
1297 YYSYMBOL_server_access_control_tag = 509, /* server_access_control_tag */
1298 YYSYMBOL_server_access_control_tag_action = 510, /* server_access_control_tag_action */
1299 YYSYMBOL_server_access_control_tag_data = 511, /* server_access_control_tag_data */
1300 YYSYMBOL_server_local_zone_override = 512, /* server_local_zone_override */
1301 YYSYMBOL_server_access_control_view = 513, /* server_access_control_view */
1302 YYSYMBOL_server_response_ip_tag = 514, /* server_response_ip_tag */
1303 YYSYMBOL_server_ip_ratelimit = 515, /* server_ip_ratelimit */
1304 YYSYMBOL_server_ratelimit = 516, /* server_ratelimit */
1305 YYSYMBOL_server_ip_ratelimit_size = 517, /* server_ip_ratelimit_size */
1306 YYSYMBOL_server_ratelimit_size = 518, /* server_ratelimit_size */
1307 YYSYMBOL_server_ip_ratelimit_slabs = 519, /* server_ip_ratelimit_slabs */
1308 YYSYMBOL_server_ratelimit_slabs = 520, /* server_ratelimit_slabs */
1309 YYSYMBOL_server_ratelimit_for_domain = 521, /* server_ratelimit_for_domain */
1310 YYSYMBOL_server_ratelimit_below_domain = 522, /* server_ratelimit_below_domain */
1311 YYSYMBOL_server_ip_ratelimit_factor = 523, /* server_ip_ratelimit_factor */
1312 YYSYMBOL_server_ratelimit_factor = 524, /* server_ratelimit_factor */
1313 YYSYMBOL_server_low_rtt = 525, /* server_low_rtt */
1314 YYSYMBOL_server_fast_server_num = 526, /* server_fast_server_num */
1315 YYSYMBOL_server_fast_server_permil = 527, /* server_fast_server_permil */
1316 YYSYMBOL_server_qname_minimisation = 528, /* server_qname_minimisation */
1317 YYSYMBOL_server_qname_minimisation_strict = 529, /* server_qname_minimisation_strict */
1318 YYSYMBOL_server_pad_responses = 530, /* server_pad_responses */
1319 YYSYMBOL_server_pad_responses_block_size = 531, /* server_pad_responses_block_size */
1320 YYSYMBOL_server_pad_queries = 532, /* server_pad_queries */
1321 YYSYMBOL_server_pad_queries_block_size = 533, /* server_pad_queries_block_size */
1322 YYSYMBOL_server_ipsecmod_enabled = 534, /* server_ipsecmod_enabled */
1323 YYSYMBOL_server_ipsecmod_ignore_bogus = 535, /* server_ipsecmod_ignore_bogus */
1324 YYSYMBOL_server_ipsecmod_hook = 536, /* server_ipsecmod_hook */
1325 YYSYMBOL_server_ipsecmod_max_ttl = 537, /* server_ipsecmod_max_ttl */
1326 YYSYMBOL_server_ipsecmod_whitelist = 538, /* server_ipsecmod_whitelist */
1327 YYSYMBOL_server_ipsecmod_strict = 539, /* server_ipsecmod_strict */
1328 YYSYMBOL_server_edns_client_string = 540, /* server_edns_client_string */
1329 YYSYMBOL_server_edns_client_string_opcode = 541, /* server_edns_client_string_opcode */
1330 YYSYMBOL_stub_name = 542, /* stub_name */
1331 YYSYMBOL_stub_host = 543, /* stub_host */
1332 YYSYMBOL_stub_addr = 544, /* stub_addr */
1333 YYSYMBOL_stub_first = 545, /* stub_first */
1334 YYSYMBOL_stub_no_cache = 546, /* stub_no_cache */
1335 YYSYMBOL_stub_ssl_upstream = 547, /* stub_ssl_upstream */
1336 YYSYMBOL_stub_prime = 548, /* stub_prime */
1337 YYSYMBOL_forward_name = 549, /* forward_name */
1338 YYSYMBOL_forward_host = 550, /* forward_host */
1339 YYSYMBOL_forward_addr = 551, /* forward_addr */
1340 YYSYMBOL_forward_first = 552, /* forward_first */
1341 YYSYMBOL_forward_no_cache = 553, /* forward_no_cache */
1342 YYSYMBOL_forward_ssl_upstream = 554, /* forward_ssl_upstream */
1343 YYSYMBOL_auth_name = 555, /* auth_name */
1344 YYSYMBOL_auth_zonefile = 556, /* auth_zonefile */
1345 YYSYMBOL_auth_master = 557, /* auth_master */
1346 YYSYMBOL_auth_url = 558, /* auth_url */
1347 YYSYMBOL_auth_allow_notify = 559, /* auth_allow_notify */
1348 YYSYMBOL_auth_for_downstream = 560, /* auth_for_downstream */
1349 YYSYMBOL_auth_for_upstream = 561, /* auth_for_upstream */
1350 YYSYMBOL_auth_fallback_enabled = 562, /* auth_fallback_enabled */
1351 YYSYMBOL_view_name = 563, /* view_name */
1352 YYSYMBOL_view_local_zone = 564, /* view_local_zone */
1353 YYSYMBOL_view_response_ip = 565, /* view_response_ip */
1354 YYSYMBOL_view_response_ip_data = 566, /* view_response_ip_data */
1355 YYSYMBOL_view_local_data = 567, /* view_local_data */
1356 YYSYMBOL_view_local_data_ptr = 568, /* view_local_data_ptr */
1357 YYSYMBOL_view_first = 569, /* view_first */
1358 YYSYMBOL_rcstart = 570, /* rcstart */
1359 YYSYMBOL_contents_rc = 571, /* contents_rc */
1360 YYSYMBOL_content_rc = 572, /* content_rc */
1361 YYSYMBOL_rc_control_enable = 573, /* rc_control_enable */
1362 YYSYMBOL_rc_control_port = 574, /* rc_control_port */
1363 YYSYMBOL_rc_control_interface = 575, /* rc_control_interface */
1364 YYSYMBOL_rc_control_use_cert = 576, /* rc_control_use_cert */
1365 YYSYMBOL_rc_server_key_file = 577, /* rc_server_key_file */
1366 YYSYMBOL_rc_server_cert_file = 578, /* rc_server_cert_file */
1367 YYSYMBOL_rc_control_key_file = 579, /* rc_control_key_file */
1368 YYSYMBOL_rc_control_cert_file = 580, /* rc_control_cert_file */
1369 YYSYMBOL_dtstart = 581, /* dtstart */
1370 YYSYMBOL_contents_dt = 582, /* contents_dt */
1371 YYSYMBOL_content_dt = 583, /* content_dt */
1372 YYSYMBOL_dt_dnstap_enable = 584, /* dt_dnstap_enable */
1373 YYSYMBOL_dt_dnstap_bidirectional = 585, /* dt_dnstap_bidirectional */
1374 YYSYMBOL_dt_dnstap_socket_path = 586, /* dt_dnstap_socket_path */
1375 YYSYMBOL_dt_dnstap_ip = 587, /* dt_dnstap_ip */
1376 YYSYMBOL_dt_dnstap_tls = 588, /* dt_dnstap_tls */
1377 YYSYMBOL_dt_dnstap_tls_server_name = 589, /* dt_dnstap_tls_server_name */
1378 YYSYMBOL_dt_dnstap_tls_cert_bundle = 590, /* dt_dnstap_tls_cert_bundle */
1379 YYSYMBOL_dt_dnstap_tls_client_key_file = 591, /* dt_dnstap_tls_client_key_file */
1380 YYSYMBOL_dt_dnstap_tls_client_cert_file = 592, /* dt_dnstap_tls_client_cert_file */
1381 YYSYMBOL_dt_dnstap_send_identity = 593, /* dt_dnstap_send_identity */
1382 YYSYMBOL_dt_dnstap_send_version = 594, /* dt_dnstap_send_version */
1383 YYSYMBOL_dt_dnstap_identity = 595, /* dt_dnstap_identity */
1384 YYSYMBOL_dt_dnstap_version = 596, /* dt_dnstap_version */
1385 YYSYMBOL_dt_dnstap_log_resolver_query_messages = 597, /* dt_dnstap_log_resolver_query_messages */
1386 YYSYMBOL_dt_dnstap_log_resolver_response_messages = 598, /* dt_dnstap_log_resolver_response_messages */
1387 YYSYMBOL_dt_dnstap_log_client_query_messages = 599, /* dt_dnstap_log_client_query_messages */
1388 YYSYMBOL_dt_dnstap_log_client_response_messages = 600, /* dt_dnstap_log_client_response_messages */
1389 YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 601, /* dt_dnstap_log_forwarder_query_messages */
1390 YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 602, /* dt_dnstap_log_forwarder_response_messages */
1391 YYSYMBOL_pythonstart = 603, /* pythonstart */
1392 YYSYMBOL_contents_py = 604, /* contents_py */
1393 YYSYMBOL_content_py = 605, /* content_py */
1394 YYSYMBOL_py_script = 606, /* py_script */
1395 YYSYMBOL_dynlibstart = 607, /* dynlibstart */
1396 YYSYMBOL_contents_dl = 608, /* contents_dl */
1397 YYSYMBOL_content_dl = 609, /* content_dl */
1398 YYSYMBOL_dl_file = 610, /* dl_file */
1399 YYSYMBOL_server_disable_dnssec_lame_check = 611, /* server_disable_dnssec_lame_check */
1400 YYSYMBOL_server_log_identity = 612, /* server_log_identity */
1401 YYSYMBOL_server_response_ip = 613, /* server_response_ip */
1402 YYSYMBOL_server_response_ip_data = 614, /* server_response_ip_data */
1403 YYSYMBOL_dnscstart = 615, /* dnscstart */
1404 YYSYMBOL_contents_dnsc = 616, /* contents_dnsc */
1405 YYSYMBOL_content_dnsc = 617, /* content_dnsc */
1406 YYSYMBOL_dnsc_dnscrypt_enable = 618, /* dnsc_dnscrypt_enable */
1407 YYSYMBOL_dnsc_dnscrypt_port = 619, /* dnsc_dnscrypt_port */
1408 YYSYMBOL_dnsc_dnscrypt_provider = 620, /* dnsc_dnscrypt_provider */
1409 YYSYMBOL_dnsc_dnscrypt_provider_cert = 621, /* dnsc_dnscrypt_provider_cert */
1410 YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 622, /* dnsc_dnscrypt_provider_cert_rotated */
1411 YYSYMBOL_dnsc_dnscrypt_secret_key = 623, /* dnsc_dnscrypt_secret_key */
1412 YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 624, /* dnsc_dnscrypt_shared_secret_cache_size */
1413 YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 625, /* dnsc_dnscrypt_shared_secret_cache_slabs */
1414 YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 626, /* dnsc_dnscrypt_nonce_cache_size */
1415 YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 627, /* dnsc_dnscrypt_nonce_cache_slabs */
1416 YYSYMBOL_cachedbstart = 628, /* cachedbstart */
1417 YYSYMBOL_contents_cachedb = 629, /* contents_cachedb */
1418 YYSYMBOL_content_cachedb = 630, /* content_cachedb */
1419 YYSYMBOL_cachedb_backend_name = 631, /* cachedb_backend_name */
1420 YYSYMBOL_cachedb_secret_seed = 632, /* cachedb_secret_seed */
1421 YYSYMBOL_redis_server_host = 633, /* redis_server_host */
1422 YYSYMBOL_redis_server_port = 634, /* redis_server_port */
1423 YYSYMBOL_redis_timeout = 635, /* redis_timeout */
1424 YYSYMBOL_redis_expire_records = 636, /* redis_expire_records */
1425 YYSYMBOL_server_tcp_connection_limit = 637, /* server_tcp_connection_limit */
1426 YYSYMBOL_ipsetstart = 638, /* ipsetstart */
1427 YYSYMBOL_contents_ipset = 639, /* contents_ipset */
1428 YYSYMBOL_content_ipset = 640, /* content_ipset */
1429 YYSYMBOL_ipset_name_v4 = 641, /* ipset_name_v4 */
1430 YYSYMBOL_ipset_name_v6 = 642 /* ipset_name_v6 */
1431 };
1432 typedef enum yysymbol_kind_t yysymbol_kind_t;
1433
7621434
7631435
7641436
7661438 # undef short
7671439 #endif
7681440
769 #ifdef YYTYPE_UINT8
770 typedef YYTYPE_UINT8 yytype_uint8;
771 #else
772 typedef unsigned char yytype_uint8;
1441 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
1442 <limits.h> and (if available) <stdint.h> are included
1443 so that the code can choose integer types of a good width. */
1444
1445 #ifndef __PTRDIFF_MAX__
1446 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
1447 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1448 # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
1449 # define YY_STDINT_H
1450 # endif
7731451 #endif
7741452
775 #ifdef YYTYPE_INT8
776 typedef YYTYPE_INT8 yytype_int8;
1453 /* Narrow types that promote to a signed type and that can represent a
1454 signed or unsigned integer of at least N bits. In tables they can
1455 save space and decrease cache pressure. Promoting to a signed type
1456 helps avoid bugs in integer arithmetic. */
1457
1458 #ifdef __INT_LEAST8_MAX__
1459 typedef __INT_LEAST8_TYPE__ yytype_int8;
1460 #elif defined YY_STDINT_H
1461 typedef int_least8_t yytype_int8;
7771462 #else
7781463 typedef signed char yytype_int8;
7791464 #endif
7801465
781 #ifdef YYTYPE_UINT16
782 typedef YYTYPE_UINT16 yytype_uint16;
783 #else
784 typedef unsigned short yytype_uint16;
785 #endif
786
787 #ifdef YYTYPE_INT16
788 typedef YYTYPE_INT16 yytype_int16;
1466 #ifdef __INT_LEAST16_MAX__
1467 typedef __INT_LEAST16_TYPE__ yytype_int16;
1468 #elif defined YY_STDINT_H
1469 typedef int_least16_t yytype_int16;
7891470 #else
7901471 typedef short yytype_int16;
1472 #endif
1473
1474 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
1475 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
1476 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
1477 && UINT_LEAST8_MAX <= INT_MAX)
1478 typedef uint_least8_t yytype_uint8;
1479 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
1480 typedef unsigned char yytype_uint8;
1481 #else
1482 typedef short yytype_uint8;
1483 #endif
1484
1485 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
1486 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
1487 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
1488 && UINT_LEAST16_MAX <= INT_MAX)
1489 typedef uint_least16_t yytype_uint16;
1490 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
1491 typedef unsigned short yytype_uint16;
1492 #else
1493 typedef int yytype_uint16;
1494 #endif
1495
1496 #ifndef YYPTRDIFF_T
1497 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
1498 # define YYPTRDIFF_T __PTRDIFF_TYPE__
1499 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
1500 # elif defined PTRDIFF_MAX
1501 # ifndef ptrdiff_t
1502 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1503 # endif
1504 # define YYPTRDIFF_T ptrdiff_t
1505 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
1506 # else
1507 # define YYPTRDIFF_T long
1508 # define YYPTRDIFF_MAXIMUM LONG_MAX
1509 # endif
7911510 #endif
7921511
7931512 #ifndef YYSIZE_T
7951514 # define YYSIZE_T __SIZE_TYPE__
7961515 # elif defined size_t
7971516 # define YYSIZE_T size_t
798 # elif ! defined YYSIZE_T
1517 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
7991518 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
8001519 # define YYSIZE_T size_t
8011520 # else
8031522 # endif
8041523 #endif
8051524
806 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1525 #define YYSIZE_MAXIMUM \
1526 YY_CAST (YYPTRDIFF_T, \
1527 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
1528 ? YYPTRDIFF_MAXIMUM \
1529 : YY_CAST (YYSIZE_T, -1)))
1530
1531 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
1532
1533
1534 /* Stored state numbers (used for stacks). */
1535 typedef yytype_int16 yy_state_t;
1536
1537 /* State numbers in computations. */
1538 typedef int yy_state_fast_t;
8071539
8081540 #ifndef YY_
8091541 # if defined YYENABLE_NLS && YYENABLE_NLS
8171549 # endif
8181550 #endif
8191551
820 #ifndef YY_ATTRIBUTE
821 # if (defined __GNUC__ \
822 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
823 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
824 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
1552
1553 #ifndef YY_ATTRIBUTE_PURE
1554 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
1555 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
8251556 # else
826 # define YY_ATTRIBUTE(Spec) /* empty */
1557 # define YY_ATTRIBUTE_PURE
8271558 # endif
8281559 #endif
8291560
830 #ifndef YY_ATTRIBUTE_PURE
831 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
832 #endif
833
8341561 #ifndef YY_ATTRIBUTE_UNUSED
835 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
1562 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
1563 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
1564 # else
1565 # define YY_ATTRIBUTE_UNUSED
1566 # endif
8361567 #endif
8371568
8381569 /* Suppress unused-variable warnings by "using" E. */
8441575
8451576 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
8461577 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
847 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
848 _Pragma ("GCC diagnostic push") \
849 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
1578 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1579 _Pragma ("GCC diagnostic push") \
1580 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
8501581 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
851 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1582 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
8521583 _Pragma ("GCC diagnostic pop")
8531584 #else
8541585 # define YY_INITIAL_VALUE(Value) Value
8611592 # define YY_INITIAL_VALUE(Value) /* Nothing. */
8621593 #endif
8631594
1595 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
1596 # define YY_IGNORE_USELESS_CAST_BEGIN \
1597 _Pragma ("GCC diagnostic push") \
1598 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
1599 # define YY_IGNORE_USELESS_CAST_END \
1600 _Pragma ("GCC diagnostic pop")
1601 #endif
1602 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
1603 # define YY_IGNORE_USELESS_CAST_BEGIN
1604 # define YY_IGNORE_USELESS_CAST_END
1605 #endif
1606
8641607
8651608 #define YY_ASSERT(E) ((void) (0 && (E)))
8661609
867 #if ! defined yyoverflow || YYERROR_VERBOSE
1610 #if !defined yyoverflow
8681611
8691612 /* The parser invokes alloca or malloc; define the necessary symbols. */
8701613
9291672 # endif
9301673 # endif
9311674 # endif
932 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
933
1675 #endif /* !defined yyoverflow */
9341676
9351677 #if (! defined yyoverflow \
9361678 && (! defined __cplusplus \
9391681 /* A type that is properly aligned for any stack member. */
9401682 union yyalloc
9411683 {
942 yytype_int16 yyss_alloc;
1684 yy_state_t yyss_alloc;
9431685 YYSTYPE yyvs_alloc;
9441686 };
9451687
9461688 /* The size of the maximum gap between one aligned stack and the next. */
947 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1689 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
9481690
9491691 /* The size of an array large to enough to hold all stacks, each with
9501692 N elements. */
9511693 # define YYSTACK_BYTES(N) \
952 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1694 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
9531695 + YYSTACK_GAP_MAXIMUM)
9541696
9551697 # define YYCOPY_NEEDED 1
9621704 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
9631705 do \
9641706 { \
965 YYSIZE_T yynewbytes; \
1707 YYPTRDIFF_T yynewbytes; \
9661708 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
9671709 Stack = &yyptr->Stack_alloc; \
968 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
969 yyptr += yynewbytes / sizeof (*yyptr); \
1710 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1711 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
9701712 } \
9711713 while (0)
9721714
9781720 # ifndef YYCOPY
9791721 # if defined __GNUC__ && 1 < __GNUC__
9801722 # define YYCOPY(Dst, Src, Count) \
981 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
1723 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
9821724 # else
9831725 # define YYCOPY(Dst, Src, Count) \
9841726 do \
9851727 { \
986 YYSIZE_T yyi; \
1728 YYPTRDIFF_T yyi; \
9871729 for (yyi = 0; yyi < (Count); yyi++) \
9881730 (Dst)[yyi] = (Src)[yyi]; \
9891731 } \
9951737 /* YYFINAL -- State number of the termination state. */
9961738 #define YYFINAL 2
9971739 /* YYLAST -- Last index in YYTABLE. */
998 #define YYLAST 641
1740 #define YYLAST 652
9991741
10001742 /* YYNTOKENS -- Number of terminals. */
1001 #define YYNTOKENS 303
1743 #define YYNTOKENS 309
10021744 /* YYNNTS -- Number of nonterminals. */
1003 #define YYNNTS 328
1745 #define YYNNTS 334
10041746 /* YYNRULES -- Number of rules. */
1005 #define YYNRULES 632
1747 #define YYNRULES 644
10061748 /* YYNSTATES -- Number of states. */
1007 #define YYNSTATES 939
1008
1009 #define YYUNDEFTOK 2
1010 #define YYMAXUTOK 557
1749 #define YYNSTATES 957
1750
1751 #define YYMAXUTOK 563
1752
10111753
10121754 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
10131755 as returned by yylex, with out-of-bounds checking. */
1014 #define YYTRANSLATE(YYX) \
1015 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1756 #define YYTRANSLATE(YYX) \
1757 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
1758 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1759 : YYSYMBOL_YYUNDEF)
10161760
10171761 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
10181762 as returned by yylex. */
1019 static const yytype_uint16 yytranslate[] =
1763 static const yytype_int16 yytranslate[] =
10201764 {
10211765 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
10221766 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
10731817 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
10741818 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
10751819 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1076 295, 296, 297, 298, 299, 300, 301, 302
1820 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1821 305, 306, 307, 308
10771822 };
10781823
10791824 #if YYDEBUG
10801825 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
1081 static const yytype_uint16 yyrline[] =
1826 static const yytype_int16 yyrline[] =
10821827 {
1083 0, 185, 185, 185, 186, 186, 187, 187, 188, 188,
1084 188, 189, 189, 190, 190, 191, 191, 192, 194, 200,
1085 205, 206, 207, 207, 207, 208, 208, 209, 209, 209,
1086 210, 210, 211, 211, 211, 212, 212, 213, 213, 213,
1087 214, 214, 214, 215, 215, 216, 216, 217, 217, 218,
1088 218, 219, 219, 220, 220, 221, 221, 222, 222, 223,
1089 223, 223, 224, 224, 224, 225, 225, 225, 226, 226,
1090 227, 227, 228, 228, 229, 229, 230, 230, 230, 231,
1091 231, 232, 232, 233, 233, 233, 234, 234, 235, 235,
1092 236, 236, 237, 237, 237, 238, 238, 239, 239, 240,
1093 240, 241, 241, 242, 242, 243, 243, 243, 244, 244,
1094 245, 245, 245, 246, 246, 246, 247, 247, 247, 248,
1095 248, 248, 248, 249, 250, 250, 250, 251, 251, 251,
1096 252, 252, 253, 253, 254, 254, 254, 255, 255, 255,
1097 256, 256, 257, 257, 257, 258, 258, 259, 259, 259,
1098 260, 260, 261, 261, 262, 262, 263, 264, 264, 265,
1099 265, 266, 266, 267, 268, 268, 269, 269, 270, 270,
1100 271, 271, 272, 272, 273, 273, 273, 274, 274, 275,
1101 275, 276, 276, 277, 277, 278, 278, 279, 279, 280,
1102 280, 280, 281, 281, 281, 282, 282, 282, 283, 283,
1103 284, 285, 285, 286, 286, 287, 287, 288, 288, 289,
1104 289, 289, 290, 290, 290, 291, 291, 291, 292, 292,
1105 293, 293, 294, 294, 295, 295, 296, 298, 310, 311,
1106 312, 312, 312, 312, 312, 313, 313, 315, 327, 328,
1107 329, 329, 329, 329, 330, 330, 332, 346, 347, 348,
1108 348, 348, 348, 349, 349, 349, 351, 368, 369, 370,
1109 370, 370, 370, 371, 371, 371, 372, 375, 394, 411,
1110 419, 429, 437, 454, 455, 456, 456, 456, 456, 456,
1111 457, 457, 457, 458, 458, 460, 469, 478, 489, 498,
1112 507, 516, 527, 536, 548, 562, 577, 588, 605, 622,
1113 639, 656, 671, 686, 699, 714, 723, 732, 741, 750,
1114 759, 768, 777, 786, 795, 804, 813, 822, 831, 840,
1115 853, 862, 875, 884, 893, 902, 909, 916, 925, 932,
1116 941, 949, 956, 963, 971, 980, 988, 1004, 1012, 1020,
1117 1028, 1036, 1044, 1053, 1062, 1076, 1085, 1094, 1103, 1112,
1118 1121, 1130, 1137, 1144, 1170, 1178, 1185, 1192, 1199, 1206,
1119 1214, 1222, 1230, 1237, 1248, 1259, 1266, 1275, 1284, 1293,
1120 1300, 1307, 1315, 1323, 1333, 1343, 1353, 1367, 1375, 1388,
1121 1399, 1407, 1420, 1429, 1438, 1447, 1456, 1466, 1476, 1484,
1122 1497, 1506, 1514, 1523, 1531, 1544, 1553, 1563, 1570, 1580,
1123 1590, 1600, 1610, 1620, 1630, 1640, 1650, 1657, 1664, 1671,
1124 1680, 1689, 1698, 1707, 1714, 1724, 1744, 1751, 1769, 1782,
1125 1795, 1804, 1813, 1822, 1831, 1841, 1851, 1862, 1871, 1880,
1126 1889, 1898, 1907, 1916, 1929, 1942, 1951, 1958, 1967, 1976,
1127 1985, 1994, 2002, 2015, 2023, 2064, 2071, 2086, 2096, 2106,
1128 2113, 2120, 2127, 2136, 2144, 2158, 2179, 2200, 2212, 2224,
1129 2236, 2245, 2266, 2276, 2285, 2293, 2301, 2314, 2327, 2342,
1130 2357, 2366, 2375, 2381, 2390, 2399, 2409, 2419, 2432, 2445,
1131 2457, 2471, 2483, 2497, 2506, 2518, 2528, 2535, 2542, 2551,
1132 2560, 2570, 2580, 2590, 2597, 2604, 2613, 2622, 2632, 2642,
1133 2649, 2656, 2663, 2671, 2681, 2691, 2701, 2711, 2750, 2760,
1134 2768, 2776, 2791, 2800, 2805, 2806, 2807, 2807, 2807, 2808,
1135 2808, 2808, 2809, 2809, 2811, 2821, 2830, 2837, 2844, 2851,
1136 2858, 2865, 2872, 2877, 2878, 2879, 2879, 2879, 2880, 2880,
1137 2880, 2881, 2882, 2882, 2883, 2883, 2884, 2884, 2885, 2886,
1138 2887, 2888, 2889, 2890, 2892, 2901, 2911, 2918, 2925, 2934,
1139 2941, 2948, 2955, 2962, 2971, 2980, 2987, 2994, 3004, 3014,
1140 3024, 3034, 3044, 3054, 3059, 3060, 3061, 3063, 3069, 3074,
1141 3075, 3076, 3078, 3084, 3094, 3101, 3110, 3118, 3123, 3124,
1142 3126, 3126, 3126, 3127, 3127, 3128, 3129, 3130, 3131, 3132,
1143 3134, 3144, 3153, 3160, 3169, 3176, 3185, 3193, 3206, 3214,
1144 3227, 3232, 3233, 3234, 3234, 3235, 3235, 3235, 3236, 3238,
1145 3250, 3262, 3274, 3289, 3302, 3315, 3326, 3331, 3332, 3333,
1146 3333, 3335, 3350
1828 0, 187, 187, 187, 188, 188, 189, 189, 190, 190,
1829 190, 191, 191, 192, 192, 193, 193, 194, 196, 202,
1830 207, 208, 209, 209, 209, 210, 210, 211, 211, 211,
1831 212, 212, 213, 213, 213, 214, 214, 215, 215, 215,
1832 216, 216, 216, 217, 217, 218, 218, 219, 219, 220,
1833 220, 221, 221, 222, 222, 223, 223, 224, 224, 225,
1834 225, 225, 226, 226, 226, 227, 227, 227, 228, 228,
1835 229, 229, 230, 230, 231, 231, 232, 232, 232, 233,
1836 233, 234, 234, 235, 235, 235, 236, 236, 237, 237,
1837 238, 238, 239, 239, 239, 240, 240, 241, 241, 242,
1838 242, 243, 243, 244, 244, 245, 245, 245, 246, 246,
1839 247, 247, 247, 248, 248, 248, 249, 249, 249, 250,
1840 250, 250, 250, 251, 252, 252, 252, 253, 253, 253,
1841 254, 254, 255, 255, 256, 256, 256, 257, 257, 257,
1842 258, 258, 259, 259, 259, 260, 260, 261, 261, 261,
1843 262, 262, 263, 263, 264, 264, 265, 266, 266, 267,
1844 267, 268, 268, 269, 270, 270, 271, 271, 272, 272,
1845 273, 273, 274, 274, 275, 275, 275, 276, 276, 277,
1846 277, 278, 278, 279, 280, 280, 281, 281, 282, 283,
1847 283, 284, 284, 285, 285, 286, 286, 287, 287, 287,
1848 288, 288, 288, 289, 289, 290, 291, 291, 292, 292,
1849 293, 293, 294, 294, 295, 295, 295, 296, 296, 296,
1850 297, 297, 297, 298, 298, 299, 299, 300, 300, 301,
1851 301, 302, 302, 304, 316, 317, 318, 318, 318, 318,
1852 318, 319, 319, 321, 333, 334, 335, 335, 335, 335,
1853 336, 336, 338, 352, 353, 354, 354, 354, 354, 355,
1854 355, 355, 357, 374, 375, 376, 376, 376, 376, 377,
1855 377, 377, 378, 381, 400, 417, 425, 435, 443, 460,
1856 461, 462, 462, 462, 462, 462, 463, 463, 463, 464,
1857 464, 466, 475, 484, 495, 504, 513, 522, 533, 542,
1858 554, 568, 583, 594, 611, 628, 645, 662, 677, 692,
1859 705, 720, 729, 738, 747, 756, 765, 774, 783, 792,
1860 801, 810, 819, 828, 837, 846, 859, 868, 881, 890,
1861 899, 908, 915, 922, 931, 938, 947, 955, 962, 969,
1862 977, 986, 994, 1010, 1018, 1026, 1034, 1042, 1050, 1059,
1863 1068, 1082, 1091, 1100, 1109, 1118, 1127, 1136, 1143, 1150,
1864 1176, 1184, 1191, 1198, 1205, 1212, 1220, 1228, 1236, 1243,
1865 1254, 1265, 1272, 1281, 1290, 1299, 1306, 1313, 1329, 1337,
1866 1345, 1355, 1365, 1375, 1389, 1397, 1410, 1421, 1429, 1442,
1867 1451, 1460, 1469, 1478, 1488, 1498, 1506, 1519, 1528, 1536,
1868 1545, 1553, 1566, 1575, 1585, 1592, 1602, 1612, 1622, 1632,
1869 1642, 1652, 1662, 1672, 1679, 1686, 1693, 1702, 1711, 1720,
1870 1729, 1736, 1746, 1766, 1773, 1791, 1804, 1817, 1826, 1835,
1871 1844, 1853, 1863, 1873, 1884, 1893, 1902, 1911, 1920, 1929,
1872 1938, 1947, 1960, 1973, 1982, 1989, 1998, 2007, 2016, 2025,
1873 2033, 2046, 2054, 2099, 2106, 2121, 2131, 2141, 2148, 2155,
1874 2162, 2171, 2179, 2193, 2214, 2235, 2247, 2259, 2271, 2280,
1875 2301, 2311, 2320, 2328, 2336, 2349, 2362, 2377, 2392, 2401,
1876 2410, 2416, 2425, 2434, 2444, 2454, 2464, 2473, 2483, 2492,
1877 2505, 2518, 2530, 2544, 2556, 2570, 2579, 2591, 2601, 2608,
1878 2615, 2624, 2633, 2643, 2653, 2663, 2670, 2677, 2686, 2695,
1879 2705, 2715, 2722, 2729, 2736, 2744, 2754, 2764, 2774, 2784,
1880 2823, 2833, 2841, 2849, 2864, 2873, 2878, 2879, 2880, 2880,
1881 2880, 2881, 2881, 2881, 2882, 2882, 2884, 2894, 2903, 2910,
1882 2917, 2924, 2931, 2938, 2945, 2950, 2951, 2952, 2952, 2952,
1883 2953, 2953, 2953, 2954, 2955, 2955, 2956, 2956, 2957, 2957,
1884 2958, 2959, 2960, 2961, 2962, 2963, 2965, 2974, 2984, 2991,
1885 2998, 3007, 3014, 3021, 3028, 3035, 3044, 3053, 3060, 3067,
1886 3077, 3087, 3097, 3107, 3117, 3127, 3132, 3133, 3134, 3136,
1887 3142, 3147, 3148, 3149, 3151, 3157, 3167, 3174, 3183, 3191,
1888 3196, 3197, 3199, 3199, 3199, 3200, 3200, 3201, 3202, 3203,
1889 3204, 3205, 3207, 3217, 3226, 3233, 3242, 3249, 3258, 3266,
1890 3279, 3287, 3300, 3305, 3306, 3307, 3307, 3308, 3308, 3308,
1891 3309, 3311, 3323, 3335, 3347, 3362, 3375, 3388, 3399, 3404,
1892 3405, 3406, 3406, 3408, 3423
11471893 };
11481894 #endif
11491895
1150 #if YYDEBUG || YYERROR_VERBOSE || 0
1896 /** Accessing symbol of state STATE. */
1897 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1898
1899 #if YYDEBUG || 0
1900 /* The user-facing name of the symbol whose (internal) number is
1901 YYSYMBOL. No bounds checking. */
1902 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1903
11511904 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
11521905 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
11531906 static const char *const yytname[] =
11541907 {
1155 "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT",
1156 "COLON", "ANY", "ZONESTR", "STRING_ARG", "VAR_FORCE_TOPLEVEL",
1157 "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS", "VAR_PORT",
1158 "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4", "VAR_DO_IP4",
1159 "VAR_DO_IP6", "VAR_PREFER_IP6", "VAR_DO_UDP", "VAR_DO_TCP",
1908 "\"end of file\"", "error", "\"invalid token\"", "SPACE", "LETTER",
1909 "NEWLINE", "COMMENT", "COLON", "ANY", "ZONESTR", "STRING_ARG",
1910 "VAR_FORCE_TOPLEVEL", "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS",
1911 "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4",
1912 "VAR_DO_IP4", "VAR_DO_IP6", "VAR_PREFER_IP6", "VAR_DO_UDP", "VAR_DO_TCP",
11601913 "VAR_TCP_MSS", "VAR_OUTGOING_TCP_MSS", "VAR_TCP_IDLE_TIMEOUT",
11611914 "VAR_EDNS_TCP_KEEPALIVE", "VAR_EDNS_TCP_KEEPALIVE_TIMEOUT", "VAR_CHROOT",
11621915 "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE",
12361989 "VAR_ACCESS_CONTROL_TAG_DATA", "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW",
12371990 "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "VAR_SERVE_EXPIRED_TTL",
12381991 "VAR_SERVE_EXPIRED_TTL_RESET", "VAR_SERVE_EXPIRED_REPLY_TTL",
1239 "VAR_SERVE_EXPIRED_CLIENT_TIMEOUT", "VAR_FAKE_DSA", "VAR_FAKE_SHA1",
1240 "VAR_LOG_IDENTITY", "VAR_HIDE_TRUSTANCHOR", "VAR_TRUST_ANCHOR_SIGNALING",
1992 "VAR_SERVE_EXPIRED_CLIENT_TIMEOUT", "VAR_SERVE_ORIGINAL_TTL",
1993 "VAR_FAKE_DSA", "VAR_FAKE_SHA1", "VAR_LOG_IDENTITY",
1994 "VAR_HIDE_TRUSTANCHOR", "VAR_TRUST_ANCHOR_SIGNALING",
12411995 "VAR_AGGRESSIVE_NSEC", "VAR_USE_SYSTEMD", "VAR_SHM_ENABLE",
12421996 "VAR_SHM_KEY", "VAR_ROOT_KEY_SENTINEL", "VAR_DNSCRYPT",
12431997 "VAR_DNSCRYPT_ENABLE", "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER",
12462000 "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE",
12472001 "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS",
12482002 "VAR_DNSCRYPT_NONCE_CACHE_SIZE", "VAR_DNSCRYPT_NONCE_CACHE_SLABS",
1249 "VAR_IPSECMOD_ENABLED", "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS",
1250 "VAR_IPSECMOD_MAX_TTL", "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT",
1251 "VAR_CACHEDB", "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED",
1252 "VAR_CACHEDB_REDISHOST", "VAR_CACHEDB_REDISPORT",
1253 "VAR_CACHEDB_REDISTIMEOUT", "VAR_CACHEDB_REDISEXPIRERECORDS",
1254 "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM", "VAR_FOR_UPSTREAM",
1255 "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER", "VAR_URL",
1256 "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED", "VAR_TLS_ADDITIONAL_PORT",
1257 "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL", "VAR_FAST_SERVER_PERMIL",
1258 "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT",
1259 "VAR_TCP_CONNECTION_LIMIT", "VAR_FORWARD_NO_CACHE", "VAR_STUB_NO_CACHE",
1260 "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", "VAR_UNKNOWN_SERVER_TIME_LIMIT",
1261 "VAR_LOG_TAG_QUERYREPLY", "VAR_STREAM_WAIT_SIZE", "VAR_TLS_CIPHERS",
1262 "VAR_TLS_CIPHERSUITES", "VAR_TLS_USE_SNI", "VAR_IPSET",
1263 "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6", "VAR_TLS_SESSION_TICKET_KEYS",
1264 "VAR_RPZ", "VAR_TAGS", "VAR_RPZ_ACTION_OVERRIDE",
1265 "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", "VAR_RPZ_LOG_NAME",
1266 "VAR_DYNLIB", "VAR_DYNLIB_FILE", "VAR_EDNS_CLIENT_STRING",
1267 "VAR_EDNS_CLIENT_STRING_OPCODE", "$accept", "toplevelvars",
1268 "toplevelvar", "force_toplevel", "serverstart", "contents_server",
1269 "content_server", "stubstart", "contents_stub", "content_stub",
1270 "forwardstart", "contents_forward", "content_forward", "viewstart",
1271 "contents_view", "content_view", "authstart", "contents_auth",
1272 "content_auth", "rpz_tag", "rpz_action_override", "rpz_cname_override",
1273 "rpz_log", "rpz_log_name", "rpzstart", "contents_rpz", "content_rpz",
1274 "server_num_threads", "server_verbosity", "server_statistics_interval",
2003 "VAR_PAD_RESPONSES", "VAR_PAD_RESPONSES_BLOCK_SIZE", "VAR_PAD_QUERIES",
2004 "VAR_PAD_QUERIES_BLOCK_SIZE", "VAR_IPSECMOD_ENABLED",
2005 "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", "VAR_IPSECMOD_MAX_TTL",
2006 "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", "VAR_CACHEDB",
2007 "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED", "VAR_CACHEDB_REDISHOST",
2008 "VAR_CACHEDB_REDISPORT", "VAR_CACHEDB_REDISTIMEOUT",
2009 "VAR_CACHEDB_REDISEXPIRERECORDS", "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM",
2010 "VAR_FOR_UPSTREAM", "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER",
2011 "VAR_URL", "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED",
2012 "VAR_TLS_ADDITIONAL_PORT", "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL",
2013 "VAR_FAST_SERVER_PERMIL", "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY",
2014 "VAR_TLS_WIN_CERT", "VAR_TCP_CONNECTION_LIMIT", "VAR_FORWARD_NO_CACHE",
2015 "VAR_STUB_NO_CACHE", "VAR_LOG_SERVFAIL", "VAR_DENY_ANY",
2016 "VAR_UNKNOWN_SERVER_TIME_LIMIT", "VAR_LOG_TAG_QUERYREPLY",
2017 "VAR_STREAM_WAIT_SIZE", "VAR_TLS_CIPHERS", "VAR_TLS_CIPHERSUITES",
2018 "VAR_TLS_USE_SNI", "VAR_IPSET", "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6",
2019 "VAR_TLS_SESSION_TICKET_KEYS", "VAR_RPZ", "VAR_TAGS",
2020 "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG",
2021 "VAR_RPZ_LOG_NAME", "VAR_DYNLIB", "VAR_DYNLIB_FILE",
2022 "VAR_EDNS_CLIENT_STRING", "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID",
2023 "$accept", "toplevelvars", "toplevelvar", "force_toplevel",
2024 "serverstart", "contents_server", "content_server", "stubstart",
2025 "contents_stub", "content_stub", "forwardstart", "contents_forward",
2026 "content_forward", "viewstart", "contents_view", "content_view",
2027 "authstart", "contents_auth", "content_auth", "rpz_tag",
2028 "rpz_action_override", "rpz_cname_override", "rpz_log", "rpz_log_name",
2029 "rpzstart", "contents_rpz", "content_rpz", "server_num_threads",
2030 "server_verbosity", "server_statistics_interval",
12752031 "server_statistics_cumulative", "server_extended_statistics",
12762032 "server_shm_enable", "server_shm_key", "server_port",
12772033 "server_send_client_subnet", "server_client_subnet_zone",
13062062 "server_trust_anchor", "server_trust_anchor_signaling",
13072063 "server_root_key_sentinel", "server_domain_insecure",
13082064 "server_hide_identity", "server_hide_version", "server_hide_trustanchor",
1309 "server_identity", "server_version", "server_so_rcvbuf",
2065 "server_identity", "server_version", "server_nsid", "server_so_rcvbuf",
13102066 "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent",
13112067 "server_ip_freebind", "server_ip_dscp", "server_stream_wait_size",
13122068 "server_edns_buffer_size", "server_msg_buffer_size",
13352091 "server_aggressive_nsec", "server_ignore_cd_flag",
13362092 "server_serve_expired", "server_serve_expired_ttl",
13372093 "server_serve_expired_ttl_reset", "server_serve_expired_reply_ttl",
1338 "server_serve_expired_client_timeout", "server_fake_dsa",
1339 "server_fake_sha1", "server_val_log_level",
2094 "server_serve_expired_client_timeout", "server_serve_original_ttl",
2095 "server_fake_dsa", "server_fake_sha1", "server_val_log_level",
13402096 "server_val_nsec3_keysize_iterations", "server_add_holddown",
13412097 "server_del_holddown", "server_keep_missing",
13422098 "server_permit_small_holddown", "server_key_cache_size",
13542110 "server_ratelimit_below_domain", "server_ip_ratelimit_factor",
13552111 "server_ratelimit_factor", "server_low_rtt", "server_fast_server_num",
13562112 "server_fast_server_permil", "server_qname_minimisation",
1357 "server_qname_minimisation_strict", "server_ipsecmod_enabled",
2113 "server_qname_minimisation_strict", "server_pad_responses",
2114 "server_pad_responses_block_size", "server_pad_queries",
2115 "server_pad_queries_block_size", "server_ipsecmod_enabled",
13582116 "server_ipsecmod_ignore_bogus", "server_ipsecmod_hook",
13592117 "server_ipsecmod_max_ttl", "server_ipsecmod_whitelist",
13602118 "server_ipsecmod_strict", "server_edns_client_string",
13972155 "server_tcp_connection_limit", "ipsetstart", "contents_ipset",
13982156 "content_ipset", "ipset_name_v4", "ipset_name_v6", YY_NULLPTR
13992157 };
2158
2159 static const char *
2160 yysymbol_name (yysymbol_kind_t yysymbol)
2161 {
2162 return yytname[yysymbol];
2163 }
14002164 #endif
14012165
1402 # ifdef YYPRINT
2166 #ifdef YYPRINT
14032167 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
14042168 (internal) symbol number NUM (which must be that of a token). */
1405 static const yytype_uint16 yytoknum[] =
2169 static const yytype_int16 yytoknum[] =
14062170 {
14072171 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
14082172 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
14342198 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
14352199 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
14362200 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1437 555, 556, 557
2201 555, 556, 557, 558, 559, 560, 561, 562, 563
14382202 };
1439 # endif
1440
1441 #define YYPACT_NINF -291
1442
1443 #define yypact_value_is_default(Yystate) \
1444 (!!((Yystate) == (-291)))
1445
1446 #define YYTABLE_NINF -1
1447
1448 #define yytable_value_is_error(Yytable_value) \
2203 #endif
2204
2205 #define YYPACT_NINF (-296)
2206
2207 #define yypact_value_is_default(Yyn) \
2208 ((Yyn) == YYPACT_NINF)
2209
2210 #define YYTABLE_NINF (-1)
2211
2212 #define yytable_value_is_error(Yyn) \
14492213 0
14502214
14512215 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
14522216 STATE-NUM. */
14532217 static const yytype_int16 yypact[] =
14542218 {
1455 -291, 0, -291, -291, -291, -291, -291, -291, -291, -291,
1456 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1457 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1458 -291, -291, 287, -42, -38, -43, -21, -44, -11, -96,
1459 -109, -290, -215, -240, -282, 3, 4, 13, 25, 26,
2219 -296, 0, -296, -296, -296, -296, -296, -296, -296, -296,
2220 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2221 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2222 -296, -296, 292, -42, -38, -43, -21, -44, -11, -96,
2223 -109, -295, -216, -245, -287, 3, 4, 13, 25, 26,
14602224 27, 30, 31, 32, 33, 34, 35, 37, 38, 39,
14612225 40, 41, 43, 44, 45, 46, 47, 48, 49, 50,
14622226 51, 52, 54, 55, 84, 85, 88, 89, 91, 93,
14712235 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
14722236 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
14732237 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
1474 210, 215, 216, 217, 218, 219, 220, 221, 223, 224,
1475 225, 226, 227, 230, 232, 234, 247, 248, 249, 250,
1476 251, 252, 253, 254, 256, 257, 258, 259, 260, 261,
2238 210, 212, 213, 214, 215, 216, 220, 221, 222, 223,
2239 224, 225, 226, 228, 229, 231, 232, 234, 235, 237,
2240 239, 252, 253, 254, 255, 256, 257, 258, 259, 261,
14772241 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1478 272, 273, 274, 275, 276, 277, 278, 280, 281, 282,
1479 284, 285, 286, 288, 322, 323, 324, 325, 329, 330,
1480 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1481 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1482 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1483 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1484 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1485 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1486 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1487 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1488 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1489 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1490 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1491 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1492 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1493 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1494 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1495 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1496 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1497 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1498 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1499 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1500 -291, -291, -291, -291, -291, -291, 331, 373, 374, 375,
1501 376, 377, 378, -291, -291, -291, -291, -291, -291, -291,
1502 -291, 379, 380, 381, 385, 389, 390, -291, -291, -291,
1503 -291, -291, -291, -291, 415, 416, 417, 426, 439, 440,
1504 441, -291, -291, -291, -291, -291, -291, -291, -291, 442,
1505 443, 444, 445, 446, 447, 448, 449, -291, -291, -291,
1506 -291, -291, -291, -291, -291, -291, 450, 451, 452, 453,
1507 454, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1508 -291, -291, 455, 456, 457, 458, 498, 500, 516, 517,
1509 -291, -291, -291, -291, -291, -291, -291, -291, -291, 518,
1510 519, 520, 521, 522, 523, 524, 525, 526, 533, 534,
1511 535, 536, 537, 538, 539, 541, 542, 543, -291, -291,
1512 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1513 -291, -291, -291, -291, -291, -291, -291, -291, 544, -291,
1514 -291, 545, -291, -291, 546, 547, 550, 553, 556, 557,
1515 566, 567, 568, 570, -291, -291, -291, -291, -291, -291,
1516 -291, -291, -291, -291, -291, 571, 572, 573, 574, 575,
1517 576, -291, -291, -291, -291, -291, -291, -291, 577, 580,
1518 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1519 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1520 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1521 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1522 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1523 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1524 -291, -291, -291, 581, 582, -291, -291, -291, -291, -291,
1525 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1526 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1527 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1528 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1529 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1530 -291, -291, -291, -291, -291, -291, -291, -291, -291, 583,
1531 584, 585, -291, -291, -291, -291, -291, -291, -291, -291,
1532 -291, -291, 586, 587, -291, -291, -291, -291, -291, -291,
1533 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1534 -291, -291, -291, 588, 589, 590, 591, 592, 593, -291,
1535 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1536 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1537 -291, -291, -291, -291, -291, -291, 594, -291, -291, -291,
1538 -291, -291, -291, -291, -291, -291, 595, -291, -291, -291,
1539 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1540 -291, -291, 596, -291, -291, 597, 598, -291, -291, -291,
1541 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1542 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1543 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1544 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1545 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1546 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1547 -291, -291, -291, -291, -291, -291, -291, 599, 600, 601,
1548 -291, -291, -291, -291, -291, -291, -291, -291, -291
2242 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2243 282, 283, 285, 286, 287, 289, 290, 291, 293, 327,
2244 328, 329, 330, 334, 335, 336, -296, -296, -296, -296,
2245 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2246 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2247 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2248 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2249 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2250 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2251 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2252 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2253 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2254 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2255 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2256 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2257 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2258 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2259 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2260 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2261 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2262 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2263 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2264 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2265 -296, -296, -296, -296, -296, -296, -296, -296, 378, 379,
2266 380, 381, 382, 383, 384, -296, -296, -296, -296, -296,
2267 -296, -296, -296, 385, 386, 390, 394, 395, 420, -296,
2268 -296, -296, -296, -296, -296, -296, 421, 422, 431, 444,
2269 445, 446, 447, -296, -296, -296, -296, -296, -296, -296,
2270 -296, 448, 449, 450, 451, 452, 453, 454, 455, -296,
2271 -296, -296, -296, -296, -296, -296, -296, -296, 456, 457,
2272 458, 459, 460, -296, -296, -296, -296, -296, -296, -296,
2273 -296, -296, -296, -296, 461, 462, 463, 503, 505, 522,
2274 523, 524, -296, -296, -296, -296, -296, -296, -296, -296,
2275 -296, 525, 526, 527, 528, 529, 530, 531, 532, 543,
2276 544, 545, 546, 547, 548, 549, 551, 552, 553, 554,
2277 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2278 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2279 555, -296, -296, 556, -296, -296, 557, 560, 563, 566,
2280 567, 576, 577, 578, 580, 581, -296, -296, -296, -296,
2281 -296, -296, -296, -296, -296, -296, -296, 582, 583, 584,
2282 585, 586, 587, -296, -296, -296, -296, -296, -296, -296,
2283 591, 592, -296, -296, -296, -296, -296, -296, -296, -296,
2284 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2285 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2286 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2287 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2288 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2289 -296, -296, -296, -296, -296, 593, 594, -296, -296, -296,
2290 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2291 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2292 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2293 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2294 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2295 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2296 -296, 595, 596, 597, -296, -296, -296, -296, -296, -296,
2297 -296, -296, -296, -296, 598, 599, -296, -296, -296, -296,
2298 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2299 -296, -296, -296, -296, -296, 600, 601, 602, 603, 604,
2300 605, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2301 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2302 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2303 -296, -296, -296, 606, -296, -296, -296, -296, -296, -296,
2304 -296, -296, -296, 607, -296, -296, -296, -296, -296, -296,
2305 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2306 608, -296, -296, 609, 610, -296, -296, -296, -296, -296,
2307 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2308 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2309 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2310 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2311 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2312 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2313 -296, -296, -296, -296, -296, 611, 612, 613, -296, -296,
2314 -296, -296, -296, -296, -296, -296, -296
15492315 };
15502316
15512317 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
15522318 Performed when YYTABLE does not specify something else to do. Zero
15532319 means the default is an error. */
1554 static const yytype_uint16 yydefact[] =
2320 static const yytype_int16 yydefact[] =
15552321 {
1556 2, 0, 1, 18, 19, 227, 237, 513, 573, 532,
1557 246, 587, 610, 256, 626, 272, 578, 3, 17, 21,
1558 229, 239, 248, 258, 274, 515, 534, 575, 580, 589,
1559 612, 628, 4, 5, 6, 10, 14, 15, 8, 9,
2322 2, 0, 1, 18, 19, 233, 243, 525, 585, 544,
2323 252, 599, 622, 262, 638, 278, 590, 3, 17, 21,
2324 235, 245, 254, 264, 280, 527, 546, 587, 592, 601,
2325 624, 640, 4, 5, 6, 10, 14, 15, 8, 9,
15602326 7, 16, 11, 12, 13, 0, 0, 0, 0, 0,
15612327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15622328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15782344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15792345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15802346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 20, 22, 23, 86, 89, 98, 195, 196, 24, 160,
1582 161, 162, 163, 164, 165, 166, 167, 168, 169, 37,
1583 77, 25, 90, 91, 48, 70, 85, 26, 27, 30,
1584 31, 28, 29, 32, 33, 34, 35, 36, 121, 207,
1585 122, 124, 125, 126, 209, 214, 210, 221, 222, 223,
1586 224, 127, 128, 129, 130, 131, 132, 133, 191, 87,
1587 76, 102, 119, 120, 219, 216, 123, 38, 39, 40,
1588 41, 42, 78, 92, 93, 108, 64, 74, 65, 199,
1589 200, 103, 58, 59, 198, 60, 61, 112, 116, 137,
1590 147, 174, 150, 220, 113, 71, 43, 44, 45, 100,
1591 138, 139, 140, 141, 46, 47, 49, 50, 52, 53,
1592 51, 145, 151, 54, 55, 56, 62, 81, 117, 95,
1593 146, 88, 170, 96, 97, 114, 115, 217, 101, 57,
1594 79, 82, 63, 66, 104, 105, 80, 171, 106, 67,
1595 68, 69, 208, 118, 184, 185, 186, 187, 188, 189,
1596 197, 107, 75, 109, 110, 111, 172, 72, 73, 94,
1597 83, 84, 99, 134, 135, 218, 136, 142, 143, 144,
1598 175, 176, 178, 180, 181, 179, 182, 192, 148, 149,
1599 154, 155, 152, 153, 156, 157, 159, 158, 211, 213,
1600 212, 173, 183, 201, 203, 202, 204, 205, 206, 225,
1601 226, 177, 190, 193, 194, 215, 0, 0, 0, 0,
1602 0, 0, 0, 228, 230, 231, 232, 234, 235, 236,
1603 233, 0, 0, 0, 0, 0, 0, 238, 240, 241,
1604 242, 243, 244, 245, 0, 0, 0, 0, 0, 0,
1605 0, 247, 249, 250, 253, 254, 251, 255, 252, 0,
1606 0, 0, 0, 0, 0, 0, 0, 257, 259, 260,
1607 261, 262, 266, 263, 264, 265, 0, 0, 0, 0,
1608 0, 277, 281, 282, 283, 284, 273, 275, 276, 278,
1609 279, 280, 0, 0, 0, 0, 0, 0, 0, 0,
1610 514, 516, 518, 517, 523, 519, 520, 521, 522, 0,
2347 0, 0, 0, 0, 0, 0, 20, 22, 23, 86,
2348 89, 98, 200, 201, 24, 160, 161, 162, 163, 164,
2349 165, 166, 167, 168, 169, 37, 77, 25, 90, 91,
2350 48, 70, 85, 26, 27, 30, 31, 28, 29, 32,
2351 33, 34, 35, 36, 121, 212, 122, 124, 125, 126,
2352 214, 219, 215, 226, 227, 228, 229, 127, 128, 129,
2353 130, 131, 132, 133, 196, 87, 76, 102, 119, 120,
2354 224, 221, 123, 38, 39, 40, 41, 42, 78, 92,
2355 93, 108, 64, 74, 65, 204, 205, 103, 58, 59,
2356 203, 60, 61, 232, 112, 116, 137, 147, 174, 150,
2357 225, 113, 71, 43, 44, 45, 100, 138, 139, 140,
2358 141, 46, 47, 49, 50, 52, 53, 51, 145, 151,
2359 54, 55, 56, 62, 81, 117, 95, 146, 88, 170,
2360 96, 97, 114, 115, 222, 101, 57, 79, 82, 63,
2361 66, 104, 105, 80, 171, 106, 67, 68, 69, 213,
2362 118, 188, 189, 190, 191, 192, 193, 194, 202, 107,
2363 75, 109, 110, 111, 172, 72, 73, 94, 83, 84,
2364 99, 134, 135, 223, 136, 142, 143, 144, 175, 176,
2365 178, 180, 181, 179, 182, 197, 148, 149, 154, 155,
2366 152, 153, 156, 157, 159, 158, 216, 218, 217, 173,
2367 183, 184, 185, 186, 187, 206, 208, 207, 209, 210,
2368 211, 230, 231, 177, 195, 198, 199, 220, 0, 0,
2369 0, 0, 0, 0, 0, 234, 236, 237, 238, 240,
2370 241, 242, 239, 0, 0, 0, 0, 0, 0, 244,
2371 246, 247, 248, 249, 250, 251, 0, 0, 0, 0,
2372 0, 0, 0, 253, 255, 256, 259, 260, 257, 261,
2373 258, 0, 0, 0, 0, 0, 0, 0, 0, 263,
2374 265, 266, 267, 268, 272, 269, 270, 271, 0, 0,
2375 0, 0, 0, 283, 287, 288, 289, 290, 279, 281,
2376 282, 284, 285, 286, 0, 0, 0, 0, 0, 0,
2377 0, 0, 526, 528, 530, 529, 535, 531, 532, 533,
2378 534, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16112379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, 533, 535,
1613 537, 536, 538, 539, 540, 541, 542, 543, 544, 545,
1614 546, 547, 548, 549, 550, 551, 552, 553, 0, 574,
1615 576, 0, 579, 581, 0, 0, 0, 0, 0, 0,
1616 0, 0, 0, 0, 588, 590, 591, 592, 594, 595,
1617 593, 596, 597, 598, 599, 0, 0, 0, 0, 0,
1618 0, 611, 613, 614, 615, 616, 617, 618, 0, 0,
1619 627, 629, 630, 286, 285, 292, 305, 303, 315, 311,
1620 312, 316, 313, 314, 317, 318, 319, 320, 321, 351,
1621 352, 353, 354, 355, 380, 381, 382, 388, 389, 308,
1622 390, 391, 394, 392, 393, 397, 398, 399, 413, 366,
1623 367, 369, 370, 400, 416, 360, 362, 417, 423, 424,
1624 425, 309, 379, 441, 442, 361, 436, 344, 304, 356,
1625 414, 420, 401, 0, 0, 445, 310, 287, 343, 405,
1626 288, 306, 307, 357, 358, 443, 403, 407, 408, 289,
1627 446, 383, 412, 345, 365, 418, 419, 422, 435, 359,
1628 439, 437, 438, 371, 378, 409, 410, 372, 373, 402,
1629 427, 346, 347, 350, 322, 324, 325, 326, 327, 328,
1630 335, 336, 337, 338, 339, 340, 341, 447, 448, 450,
1631 384, 385, 386, 387, 395, 396, 451, 452, 453, 0,
1632 0, 0, 404, 374, 376, 583, 462, 466, 464, 463,
1633 467, 465, 0, 0, 470, 471, 293, 294, 295, 296,
1634 297, 298, 299, 300, 301, 302, 406, 421, 440, 475,
1635 476, 375, 454, 0, 0, 0, 0, 0, 0, 428,
1636 429, 430, 431, 432, 433, 434, 584, 368, 363, 426,
1637 342, 290, 291, 364, 477, 479, 478, 480, 481, 482,
1638 323, 330, 472, 474, 473, 329, 0, 349, 411, 449,
1639 348, 377, 331, 332, 334, 333, 0, 484, 485, 486,
1640 487, 491, 490, 488, 489, 492, 493, 494, 495, 497,
1641 496, 506, 0, 510, 511, 0, 0, 512, 498, 504,
1642 499, 500, 501, 503, 505, 502, 267, 268, 269, 270,
1643 271, 524, 526, 525, 528, 529, 530, 531, 527, 554,
1644 556, 557, 558, 559, 560, 561, 562, 563, 564, 555,
1645 565, 566, 567, 568, 569, 570, 571, 572, 577, 582,
1646 600, 601, 602, 605, 603, 604, 606, 607, 608, 609,
1647 619, 620, 621, 622, 623, 624, 631, 632, 415, 444,
1648 461, 585, 586, 468, 469, 455, 456, 0, 0, 0,
1649 460, 625, 483, 507, 508, 509, 459, 457, 458
2380 545, 547, 549, 548, 550, 551, 552, 553, 554, 555,
2381 556, 557, 558, 559, 560, 561, 562, 563, 564, 565,
2382 0, 586, 588, 0, 591, 593, 0, 0, 0, 0,
2383 0, 0, 0, 0, 0, 0, 600, 602, 603, 604,
2384 606, 607, 605, 608, 609, 610, 611, 0, 0, 0,
2385 0, 0, 0, 623, 625, 626, 627, 628, 629, 630,
2386 0, 0, 639, 641, 642, 292, 291, 298, 311, 309,
2387 321, 317, 318, 322, 319, 320, 323, 324, 325, 326,
2388 327, 357, 358, 359, 360, 361, 387, 388, 389, 395,
2389 396, 314, 397, 398, 401, 399, 400, 404, 405, 406,
2390 420, 372, 373, 375, 376, 407, 423, 366, 368, 424,
2391 430, 431, 432, 315, 386, 449, 450, 367, 444, 350,
2392 310, 362, 421, 427, 408, 0, 0, 453, 316, 293,
2393 349, 412, 294, 312, 313, 363, 364, 451, 410, 414,
2394 415, 295, 454, 390, 419, 351, 371, 425, 426, 429,
2395 443, 365, 447, 445, 446, 378, 385, 416, 417, 379,
2396 380, 409, 434, 352, 353, 356, 328, 330, 331, 332,
2397 333, 334, 341, 342, 343, 344, 345, 346, 347, 455,
2398 456, 458, 391, 392, 393, 394, 402, 403, 459, 460,
2399 461, 0, 0, 0, 411, 381, 383, 595, 470, 474,
2400 472, 471, 475, 473, 0, 0, 478, 479, 299, 300,
2401 301, 302, 303, 304, 305, 306, 307, 308, 413, 428,
2402 448, 483, 484, 382, 462, 0, 0, 0, 0, 0,
2403 0, 435, 436, 437, 438, 439, 440, 441, 442, 596,
2404 374, 369, 433, 348, 296, 297, 370, 485, 486, 487,
2405 488, 489, 491, 490, 492, 493, 494, 329, 336, 480,
2406 482, 481, 335, 0, 355, 418, 457, 354, 384, 337,
2407 338, 340, 339, 0, 496, 377, 497, 498, 499, 503,
2408 502, 500, 501, 504, 505, 506, 507, 509, 508, 518,
2409 0, 522, 523, 0, 0, 524, 510, 516, 511, 512,
2410 513, 515, 517, 514, 273, 274, 275, 276, 277, 536,
2411 538, 537, 540, 541, 542, 543, 539, 566, 568, 569,
2412 570, 571, 572, 573, 574, 575, 576, 567, 577, 578,
2413 579, 580, 581, 582, 583, 584, 589, 594, 612, 613,
2414 614, 617, 615, 616, 618, 619, 620, 621, 631, 632,
2415 633, 634, 635, 636, 643, 644, 422, 452, 469, 597,
2416 598, 476, 477, 463, 464, 0, 0, 0, 468, 637,
2417 495, 519, 520, 521, 467, 465, 466
16502418 };
16512419
16522420 /* YYPGOTO[NTERM-NUM]. */
16532421 static const yytype_int16 yypgoto[] =
16542422 {
1655 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1656 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1657 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1658 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1659 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1660 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1661 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1662 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1663 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1664 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1665 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1666 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1667 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1668 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1669 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1670 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1671 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1672 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1673 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1674 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1675 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1676 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1677 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1678 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1679 578, 579, 602, 603, 604, -291, -291, -291, -291, -291,
1680 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1681 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1682 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1683 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1684 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1685 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1686 -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
1687 -291, -291, -291, -291, -291, -291, -291, -291
2423 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2424 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2425 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2426 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2427 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2428 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2429 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2430 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2431 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2432 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2433 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2434 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2435 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2436 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2437 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2438 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2439 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2440 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2441 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2442 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2443 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2444 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2445 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2446 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2447 -296, -296, -296, -296, -296, -296, 588, 589, 590, 614,
2448 615, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2449 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2450 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2451 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2452 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2453 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2454 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2455 -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
2456 -296, -296, -296, -296
16882457 };
16892458
16902459 /* YYDEFGOTO[NTERM-NUM]. */
16912460 static const yytype_int16 yydefgoto[] =
16922461 {
1693 -1, 1, 17, 18, 19, 32, 250, 20, 33, 463,
1694 21, 34, 477, 22, 35, 491, 23, 36, 507, 521,
1695 522, 523, 524, 525, 24, 37, 526, 251, 252, 253,
1696 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1697 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
1698 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1699 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
1700 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
1701 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1702 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
1703 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
1704 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
1705 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
1706 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
1707 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
1708 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
1709 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
1710 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
1711 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
1712 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
1713 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
1714 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
1715 444, 445, 446, 447, 448, 449, 450, 464, 465, 466,
1716 467, 468, 469, 470, 478, 479, 480, 481, 482, 483,
1717 508, 509, 510, 511, 512, 513, 514, 515, 492, 493,
1718 494, 495, 496, 497, 498, 25, 38, 540, 541, 542,
1719 543, 544, 545, 546, 547, 548, 26, 39, 568, 569,
1720 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
1721 580, 581, 582, 583, 584, 585, 586, 587, 27, 40,
1722 589, 590, 28, 41, 592, 593, 451, 452, 453, 454,
1723 29, 42, 604, 605, 606, 607, 608, 609, 610, 611,
1724 612, 613, 614, 30, 43, 621, 622, 623, 624, 625,
1725 626, 627, 455, 31, 44, 630, 631, 632
2462 -1, 1, 17, 18, 19, 32, 256, 20, 33, 475,
2463 21, 34, 489, 22, 35, 503, 23, 36, 519, 533,
2464 534, 535, 536, 537, 24, 37, 538, 257, 258, 259,
2465 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2466 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
2467 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
2468 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2469 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
2470 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
2471 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
2472 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
2473 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
2474 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
2475 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
2476 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
2477 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
2478 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
2479 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
2480 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
2481 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
2482 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
2483 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
2484 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
2485 460, 461, 462, 476, 477, 478, 479, 480, 481, 482,
2486 490, 491, 492, 493, 494, 495, 520, 521, 522, 523,
2487 524, 525, 526, 527, 504, 505, 506, 507, 508, 509,
2488 510, 25, 38, 552, 553, 554, 555, 556, 557, 558,
2489 559, 560, 26, 39, 580, 581, 582, 583, 584, 585,
2490 586, 587, 588, 589, 590, 591, 592, 593, 594, 595,
2491 596, 597, 598, 599, 27, 40, 601, 602, 28, 41,
2492 604, 605, 463, 464, 465, 466, 29, 42, 616, 617,
2493 618, 619, 620, 621, 622, 623, 624, 625, 626, 30,
2494 43, 633, 634, 635, 636, 637, 638, 639, 467, 31,
2495 44, 642, 643, 644
17262496 };
17272497
17282498 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
17292499 positive, shift that token. If negative, reduce the rule whose
17302500 number is the opposite. If YYTABLE_NINF, syntax error. */
1731 static const yytype_uint16 yytable[] =
2501 static const yytype_int16 yytable[] =
17322502 {
1733 2, 499, 484, 456, 588, 457, 458, 471, 628, 629,
1734 591, 3, 4, 633, 634, 472, 473, 615, 616, 617,
1735 618, 619, 620, 635, 499, 594, 595, 596, 597, 598,
1736 599, 600, 601, 602, 603, 636, 637, 638, 485, 486,
1737 639, 640, 641, 642, 643, 644, 5, 645, 646, 647,
1738 648, 649, 6, 650, 651, 652, 653, 654, 655, 656,
1739 657, 658, 659, 487, 660, 661, 459, 549, 550, 551,
1740 552, 553, 554, 555, 556, 557, 558, 559, 560, 561,
1741 562, 563, 564, 565, 566, 567, 532, 533, 534, 535,
1742 536, 537, 538, 539, 662, 663, 7, 460, 664, 665,
1743 474, 666, 475, 667, 668, 669, 670, 461, 671, 672,
1744 673, 674, 8, 675, 676, 677, 678, 679, 680, 681,
1745 682, 683, 684, 685, 686, 687, 688, 689, 690, 691,
1746 692, 693, 694, 695, 696, 697, 698, 699, 700, 701,
1747 488, 489, 702, 703, 704, 705, 706, 707, 708, 709,
1748 710, 711, 712, 713, 714, 715, 716, 717, 718, 719,
1749 720, 721, 9, 722, 723, 724, 725, 726, 727, 728,
1750 729, 730, 731, 732, 733, 734, 735, 736, 737, 738,
1751 490, 739, 740, 741, 742, 743, 744, 745, 746, 747,
1752 748, 749, 750, 751, 752, 753, 754, 755, 756, 757,
1753 758, 759, 760, 761, 762, 763, 764, 765, 766, 767,
1754 768, 769, 770, 771, 772, 773, 774, 775, 776, 777,
1755 778, 10, 501, 502, 503, 779, 780, 781, 782, 783,
1756 784, 785, 506, 786, 787, 788, 789, 790, 462, 11,
1757 791, 476, 792, 500, 793, 501, 502, 503, 504, 505,
1758 516, 517, 518, 519, 520, 506, 12, 794, 795, 796,
1759 797, 798, 799, 800, 801, 13, 802, 803, 804, 805,
1760 806, 807, 808, 809, 810, 811, 812, 813, 814, 815,
1761 816, 817, 818, 819, 820, 821, 822, 823, 824, 14,
1762 825, 826, 827, 15, 828, 829, 830, 0, 831, 16,
1763 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1764 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1765 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1766 75, 76, 832, 833, 834, 835, 77, 78, 79, 836,
1767 837, 838, 80, 81, 82, 83, 84, 85, 86, 87,
1768 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1769 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1770 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1771 118, 119, 120, 839, 840, 841, 842, 843, 844, 845,
1772 846, 847, 121, 122, 123, 848, 124, 125, 126, 849,
1773 850, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1774 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1775 146, 147, 148, 149, 150, 851, 852, 853, 151, 152,
1776 153, 154, 155, 156, 157, 158, 854, 159, 160, 161,
1777 162, 163, 164, 165, 166, 167, 168, 169, 170, 855,
1778 856, 857, 858, 859, 860, 861, 862, 863, 864, 865,
1779 866, 867, 868, 869, 870, 871, 872, 873, 874, 171,
1780 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1781 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1782 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1783 202, 203, 204, 205, 206, 207, 208, 209, 875, 210,
1784 876, 211, 212, 213, 214, 215, 216, 217, 218, 219,
1785 220, 221, 222, 223, 224, 225, 877, 878, 879, 880,
1786 881, 882, 883, 884, 885, 886, 887, 226, 227, 228,
1787 229, 230, 231, 888, 889, 890, 891, 892, 893, 894,
1788 232, 895, 896, 897, 898, 899, 900, 901, 233, 234,
1789 902, 235, 236, 903, 237, 238, 904, 905, 239, 240,
1790 241, 242, 243, 244, 245, 246, 906, 907, 908, 247,
1791 909, 910, 911, 912, 913, 914, 915, 916, 248, 249,
1792 917, 918, 919, 920, 921, 922, 923, 924, 925, 926,
1793 927, 928, 929, 930, 931, 932, 933, 934, 935, 936,
1794 937, 938, 0, 0, 0, 527, 528, 0, 0, 0,
2503 2, 511, 496, 468, 600, 469, 470, 483, 640, 641,
2504 603, 3, 4, 645, 646, 484, 485, 627, 628, 629,
2505 630, 631, 632, 647, 511, 606, 607, 608, 609, 610,
2506 611, 612, 613, 614, 615, 648, 649, 650, 497, 498,
2507 651, 652, 653, 654, 655, 656, 5, 657, 658, 659,
2508 660, 661, 6, 662, 663, 664, 665, 666, 667, 668,
2509 669, 670, 671, 499, 672, 673, 471, 561, 562, 563,
2510 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
2511 574, 575, 576, 577, 578, 579, 544, 545, 546, 547,
2512 548, 549, 550, 551, 674, 675, 7, 472, 676, 677,
2513 486, 678, 487, 679, 680, 681, 682, 473, 683, 684,
2514 685, 686, 8, 687, 688, 689, 690, 691, 692, 693,
2515 694, 695, 696, 697, 698, 699, 700, 701, 702, 703,
2516 704, 705, 706, 707, 708, 709, 710, 711, 712, 713,
2517 500, 501, 714, 715, 716, 717, 718, 719, 720, 721,
2518 722, 723, 724, 725, 726, 727, 728, 729, 730, 731,
2519 732, 733, 9, 734, 735, 736, 737, 738, 739, 740,
2520 741, 742, 743, 744, 745, 746, 747, 748, 749, 750,
2521 502, 751, 752, 753, 754, 755, 756, 757, 758, 759,
2522 760, 761, 762, 763, 764, 765, 766, 767, 768, 769,
2523 770, 771, 772, 773, 774, 775, 776, 777, 778, 779,
2524 780, 781, 782, 783, 784, 785, 786, 787, 788, 789,
2525 790, 10, 791, 792, 793, 794, 795, 513, 514, 515,
2526 796, 797, 798, 799, 800, 801, 802, 518, 803, 804,
2527 11, 805, 806, 474, 807, 808, 488, 809, 512, 810,
2528 513, 514, 515, 516, 517, 528, 529, 530, 531, 532,
2529 518, 12, 811, 812, 813, 814, 815, 816, 817, 818,
2530 13, 819, 820, 821, 822, 823, 824, 825, 826, 827,
2531 828, 829, 830, 831, 832, 833, 834, 835, 836, 837,
2532 838, 839, 840, 841, 14, 842, 843, 844, 15, 845,
2533 846, 847, 0, 848, 16, 45, 46, 47, 48, 49,
2534 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2535 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2536 70, 71, 72, 73, 74, 75, 76, 849, 850, 851,
2537 852, 77, 78, 79, 853, 854, 855, 80, 81, 82,
2538 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2539 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2540 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2541 113, 114, 115, 116, 117, 118, 119, 120, 856, 857,
2542 858, 859, 860, 861, 862, 863, 864, 121, 122, 123,
2543 865, 124, 125, 126, 866, 867, 127, 128, 129, 130,
2544 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2545 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2546 868, 869, 870, 151, 152, 153, 154, 155, 156, 157,
2547 158, 871, 159, 160, 161, 162, 163, 164, 165, 166,
2548 167, 168, 169, 170, 872, 873, 874, 875, 876, 877,
2549 878, 879, 880, 881, 882, 883, 884, 885, 886, 887,
2550 888, 889, 890, 891, 171, 172, 173, 174, 175, 176,
2551 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
2552 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
2553 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2554 207, 208, 209, 892, 210, 893, 211, 212, 213, 214,
2555 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
2556 225, 226, 894, 895, 896, 897, 898, 899, 900, 901,
2557 902, 903, 904, 227, 228, 229, 230, 231, 232, 233,
2558 234, 235, 236, 905, 906, 907, 908, 909, 910, 911,
2559 237, 912, 913, 914, 915, 916, 917, 918, 238, 239,
2560 919, 240, 241, 920, 242, 243, 921, 922, 244, 245,
2561 246, 247, 248, 249, 250, 251, 923, 924, 925, 252,
2562 926, 927, 928, 929, 930, 931, 932, 933, 253, 254,
2563 255, 934, 935, 936, 937, 938, 939, 940, 941, 942,
2564 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
2565 953, 954, 955, 956, 0, 539, 540, 541, 0, 0,
17952566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 529,
1797 530, 531
2567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2568 0, 542, 543
17982569 };
17992570
18002571 static const yytype_int16 yycheck[] =
18012572 {
1802 0, 45, 45, 45, 113, 47, 48, 45, 290, 291,
1803 300, 11, 12, 10, 10, 53, 54, 257, 258, 259,
1804 260, 261, 262, 10, 45, 240, 241, 242, 243, 244,
1805 245, 246, 247, 248, 249, 10, 10, 10, 81, 82,
2573 0, 45, 45, 45, 113, 47, 48, 45, 295, 296,
2574 305, 11, 12, 10, 10, 53, 54, 262, 263, 264,
2575 265, 266, 267, 10, 45, 241, 242, 243, 244, 245,
2576 246, 247, 248, 249, 250, 10, 10, 10, 81, 82,
18062577 10, 10, 10, 10, 10, 10, 46, 10, 10, 10,
18072578 10, 10, 52, 10, 10, 10, 10, 10, 10, 10,
18082579 10, 10, 10, 106, 10, 10, 108, 163, 164, 165,
18212592 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
18222593 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
18232594 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1824 10, 221, 266, 267, 268, 10, 10, 10, 10, 10,
1825 10, 10, 276, 10, 10, 10, 10, 10, 280, 239,
1826 10, 279, 10, 264, 10, 266, 267, 268, 269, 270,
1827 294, 295, 296, 297, 298, 276, 256, 10, 10, 10,
1828 10, 10, 10, 10, 10, 265, 10, 10, 10, 10,
2595 10, 221, 10, 10, 10, 10, 10, 271, 272, 273,
2596 10, 10, 10, 10, 10, 10, 10, 281, 10, 10,
2597 240, 10, 10, 285, 10, 10, 284, 10, 269, 10,
2598 271, 272, 273, 274, 275, 299, 300, 301, 302, 303,
2599 281, 261, 10, 10, 10, 10, 10, 10, 10, 10,
2600 270, 10, 10, 10, 10, 10, 10, 10, 10, 10,
18292601 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1830 10, 10, 10, 10, 10, 10, 10, 10, 10, 289,
1831 10, 10, 10, 293, 10, 10, 10, -1, 10, 299,
1832 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1833 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1834 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1835 43, 44, 10, 10, 10, 10, 49, 50, 51, 10,
1836 10, 10, 55, 56, 57, 58, 59, 60, 61, 62,
1837 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1838 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1839 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1840 93, 94, 95, 10, 10, 10, 10, 10, 10, 10,
1841 10, 10, 105, 106, 107, 10, 109, 110, 111, 10,
1842 10, 114, 115, 116, 117, 118, 119, 120, 121, 122,
1843 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1844 133, 134, 135, 136, 137, 10, 10, 10, 141, 142,
1845 143, 144, 145, 146, 147, 148, 10, 150, 151, 152,
1846 153, 154, 155, 156, 157, 158, 159, 160, 161, 10,
2602 10, 10, 10, 10, 294, 10, 10, 10, 298, 10,
2603 10, 10, -1, 10, 304, 13, 14, 15, 16, 17,
2604 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2605 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2606 38, 39, 40, 41, 42, 43, 44, 10, 10, 10,
2607 10, 49, 50, 51, 10, 10, 10, 55, 56, 57,
2608 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2609 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2610 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2611 88, 89, 90, 91, 92, 93, 94, 95, 10, 10,
2612 10, 10, 10, 10, 10, 10, 10, 105, 106, 107,
2613 10, 109, 110, 111, 10, 10, 114, 115, 116, 117,
2614 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2615 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2616 10, 10, 10, 141, 142, 143, 144, 145, 146, 147,
2617 148, 10, 150, 151, 152, 153, 154, 155, 156, 157,
2618 158, 159, 160, 161, 10, 10, 10, 10, 10, 10,
18472619 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1848 10, 10, 10, 10, 10, 10, 10, 10, 10, 182,
1849 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
1850 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
1851 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
1852 213, 214, 215, 216, 217, 218, 219, 220, 10, 222,
1853 10, 224, 225, 226, 227, 228, 229, 230, 231, 232,
1854 233, 234, 235, 236, 237, 238, 10, 10, 10, 10,
1855 10, 10, 10, 10, 10, 10, 10, 250, 251, 252,
1856 253, 254, 255, 10, 10, 10, 10, 10, 10, 10,
1857 263, 10, 10, 10, 10, 10, 10, 10, 271, 272,
1858 10, 274, 275, 10, 277, 278, 10, 10, 281, 282,
1859 283, 284, 285, 286, 287, 288, 10, 10, 10, 292,
1860 10, 10, 10, 10, 10, 10, 10, 10, 301, 302,
2620 10, 10, 10, 10, 182, 183, 184, 185, 186, 187,
2621 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2622 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2623 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
2624 218, 219, 220, 10, 222, 10, 224, 225, 226, 227,
2625 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2626 238, 239, 10, 10, 10, 10, 10, 10, 10, 10,
2627 10, 10, 10, 251, 252, 253, 254, 255, 256, 257,
2628 258, 259, 260, 10, 10, 10, 10, 10, 10, 10,
2629 268, 10, 10, 10, 10, 10, 10, 10, 276, 277,
2630 10, 279, 280, 10, 282, 283, 10, 10, 286, 287,
2631 288, 289, 290, 291, 292, 293, 10, 10, 10, 297,
2632 10, 10, 10, 10, 10, 10, 10, 10, 306, 307,
2633 308, 10, 10, 10, 10, 10, 10, 10, 10, 10,
18612634 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1862 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1863 10, 10, -1, -1, -1, 37, 37, -1, -1, -1,
2635 10, 10, 10, 10, -1, 37, 37, 37, -1, -1,
18642636 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1865 -1, -1, -1, -1, -1, -1, -1, -1, -1, 37,
1866 37, 37
2637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2638 -1, 37, 37
18672639 };
18682640
18692641 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
18702642 symbol of state STATE-NUM. */
1871 static const yytype_uint16 yystos[] =
2643 static const yytype_int16 yystos[] =
18722644 {
1873 0, 304, 0, 11, 12, 46, 52, 96, 112, 162,
1874 221, 239, 256, 265, 289, 293, 299, 305, 306, 307,
1875 310, 313, 316, 319, 327, 558, 569, 591, 595, 603,
1876 616, 626, 308, 311, 314, 317, 320, 328, 559, 570,
1877 592, 596, 604, 617, 627, 13, 14, 15, 16, 17,
2645 0, 310, 0, 11, 12, 46, 52, 96, 112, 162,
2646 221, 240, 261, 270, 294, 298, 304, 311, 312, 313,
2647 316, 319, 322, 325, 333, 570, 581, 603, 607, 615,
2648 628, 638, 314, 317, 320, 323, 326, 334, 571, 582,
2649 604, 608, 616, 629, 639, 13, 14, 15, 16, 17,
18782650 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
18792651 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
18802652 38, 39, 40, 41, 42, 43, 44, 49, 50, 51,
18922664 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
18932665 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
18942666 222, 224, 225, 226, 227, 228, 229, 230, 231, 232,
1895 233, 234, 235, 236, 237, 238, 250, 251, 252, 253,
1896 254, 255, 263, 271, 272, 274, 275, 277, 278, 281,
1897 282, 283, 284, 285, 286, 287, 288, 292, 301, 302,
1898 309, 330, 331, 332, 333, 334, 335, 336, 337, 338,
2667 233, 234, 235, 236, 237, 238, 239, 251, 252, 253,
2668 254, 255, 256, 257, 258, 259, 260, 268, 276, 277,
2669 279, 280, 282, 283, 286, 287, 288, 289, 290, 291,
2670 292, 293, 297, 306, 307, 308, 315, 336, 337, 338,
18992671 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
19002672 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
19012673 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
19152687 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
19162688 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
19172689 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
1918 529, 599, 600, 601, 602, 625, 45, 47, 48, 108,
1919 139, 149, 280, 312, 530, 531, 532, 533, 534, 535,
1920 536, 45, 53, 54, 138, 140, 279, 315, 537, 538,
1921 539, 540, 541, 542, 45, 81, 82, 106, 183, 184,
1922 223, 318, 551, 552, 553, 554, 555, 556, 557, 45,
1923 264, 266, 267, 268, 269, 270, 276, 321, 543, 544,
1924 545, 546, 547, 548, 549, 550, 294, 295, 296, 297,
1925 298, 322, 323, 324, 325, 326, 329, 543, 544, 545,
1926 546, 547, 97, 98, 99, 100, 101, 102, 103, 104,
1927 560, 561, 562, 563, 564, 565, 566, 567, 568, 163,
1928 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
1929 174, 175, 176, 177, 178, 179, 180, 181, 571, 572,
1930 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
1931 583, 584, 585, 586, 587, 588, 589, 590, 113, 593,
1932 594, 300, 597, 598, 240, 241, 242, 243, 244, 245,
1933 246, 247, 248, 249, 605, 606, 607, 608, 609, 610,
1934 611, 612, 613, 614, 615, 257, 258, 259, 260, 261,
1935 262, 618, 619, 620, 621, 622, 623, 624, 290, 291,
1936 628, 629, 630, 10, 10, 10, 10, 10, 10, 10,
2690 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
2691 539, 540, 541, 611, 612, 613, 614, 637, 45, 47,
2692 48, 108, 139, 149, 285, 318, 542, 543, 544, 545,
2693 546, 547, 548, 45, 53, 54, 138, 140, 284, 321,
2694 549, 550, 551, 552, 553, 554, 45, 81, 82, 106,
2695 183, 184, 223, 324, 563, 564, 565, 566, 567, 568,
2696 569, 45, 269, 271, 272, 273, 274, 275, 281, 327,
2697 555, 556, 557, 558, 559, 560, 561, 562, 299, 300,
2698 301, 302, 303, 328, 329, 330, 331, 332, 335, 555,
2699 556, 557, 558, 559, 97, 98, 99, 100, 101, 102,
2700 103, 104, 572, 573, 574, 575, 576, 577, 578, 579,
2701 580, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2702 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2703 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
2704 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
2705 113, 605, 606, 305, 609, 610, 241, 242, 243, 244,
2706 245, 246, 247, 248, 249, 250, 617, 618, 619, 620,
2707 621, 622, 623, 624, 625, 626, 627, 262, 263, 264,
2708 265, 266, 267, 630, 631, 632, 633, 634, 635, 636,
2709 295, 296, 640, 641, 642, 10, 10, 10, 10, 10,
19372710 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
19382711 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
19392712 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
19632736 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
19642737 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
19652738 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1966 10, 10, 10, 10, 10, 10, 10, 10, 10
2739 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2740 10, 10, 10, 10, 10, 10, 10
19672741 };
19682742
19692743 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1970 static const yytype_uint16 yyr1[] =
2744 static const yytype_int16 yyr1[] =
19712745 {
1972 0, 303, 304, 304, 305, 305, 305, 305, 305, 305,
1973 305, 305, 305, 305, 305, 305, 305, 305, 306, 307,
1974 308, 308, 309, 309, 309, 309, 309, 309, 309, 309,
1975 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1976 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1977 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1978 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1979 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1980 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1981 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1982 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1983 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1984 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1985 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1986 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1987 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1988 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1989 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1990 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1991 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1992 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1993 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
1994 309, 309, 309, 309, 309, 309, 309, 310, 311, 311,
1995 312, 312, 312, 312, 312, 312, 312, 313, 314, 314,
1996 315, 315, 315, 315, 315, 315, 316, 317, 317, 318,
1997 318, 318, 318, 318, 318, 318, 319, 320, 320, 321,
1998 321, 321, 321, 321, 321, 321, 321, 322, 323, 324,
1999 325, 326, 327, 328, 328, 329, 329, 329, 329, 329,
2000 329, 329, 329, 329, 329, 330, 331, 332, 333, 334,
2746 0, 309, 310, 310, 311, 311, 311, 311, 311, 311,
2747 311, 311, 311, 311, 311, 311, 311, 311, 312, 313,
2748 314, 314, 315, 315, 315, 315, 315, 315, 315, 315,
2749 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2750 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2751 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2752 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2753 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2754 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2755 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2756 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2757 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2758 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2759 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2760 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2761 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2762 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2763 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2764 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2765 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2766 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2767 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2768 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2769 315, 315, 315, 316, 317, 317, 318, 318, 318, 318,
2770 318, 318, 318, 319, 320, 320, 321, 321, 321, 321,
2771 321, 321, 322, 323, 323, 324, 324, 324, 324, 324,
2772 324, 324, 325, 326, 326, 327, 327, 327, 327, 327,
2773 327, 327, 327, 328, 329, 330, 331, 332, 333, 334,
2774 334, 335, 335, 335, 335, 335, 335, 335, 335, 335,
20012775 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
20022776 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
20032777 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
20202794 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
20212795 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
20222796 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
2023 555, 556, 557, 558, 559, 559, 560, 560, 560, 560,
2024 560, 560, 560, 560, 561, 562, 563, 564, 565, 566,
2025 567, 568, 569, 570, 570, 571, 571, 571, 571, 571,
2026 571, 571, 571, 571, 571, 571, 571, 571, 571, 571,
2027 571, 571, 571, 571, 572, 573, 574, 575, 576, 577,
2028 578, 579, 580, 581, 582, 583, 584, 585, 586, 587,
2029 588, 589, 590, 591, 592, 592, 593, 594, 595, 596,
2030 596, 597, 598, 599, 600, 601, 602, 603, 604, 604,
2031 605, 605, 605, 605, 605, 605, 605, 605, 605, 605,
2032 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
2033 616, 617, 617, 618, 618, 618, 618, 618, 618, 619,
2034 620, 621, 622, 623, 624, 625, 626, 627, 627, 628,
2035 628, 629, 630
2797 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
2798 565, 566, 567, 568, 569, 570, 571, 571, 572, 572,
2799 572, 572, 572, 572, 572, 572, 573, 574, 575, 576,
2800 577, 578, 579, 580, 581, 582, 582, 583, 583, 583,
2801 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,
2802 583, 583, 583, 583, 583, 583, 584, 585, 586, 587,
2803 588, 589, 590, 591, 592, 593, 594, 595, 596, 597,
2804 598, 599, 600, 601, 602, 603, 604, 604, 605, 606,
2805 607, 608, 608, 609, 610, 611, 612, 613, 614, 615,
2806 616, 616, 617, 617, 617, 617, 617, 617, 617, 617,
2807 617, 617, 618, 619, 620, 621, 622, 623, 624, 625,
2808 626, 627, 628, 629, 629, 630, 630, 630, 630, 630,
2809 630, 631, 632, 633, 634, 635, 636, 637, 638, 639,
2810 639, 640, 640, 641, 642
20362811 };
20372812
20382813 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2039 static const yytype_uint8 yyr2[] =
2814 static const yytype_int8 yyr2[] =
20402815 {
20412816 0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
20422817 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
20602835 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
20612836 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
20622837 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2063 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
2064 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
2065 1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
2066 1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
2067 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
2068 2, 2, 1, 2, 0, 1, 1, 1, 1, 1,
2069 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
2838 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2839 1, 1, 1, 1, 2, 0, 1, 1, 1, 1,
2840 1, 1, 1, 1, 2, 0, 1, 1, 1, 1,
2841 1, 1, 1, 2, 0, 1, 1, 1, 1, 1,
2842 1, 1, 1, 2, 0, 1, 1, 1, 1, 1,
2843 1, 1, 1, 2, 2, 2, 2, 2, 1, 2,
2844 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2845 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
20702846 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
20712847 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
20722848 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
20792855 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
20802856 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
20812857 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2858 2, 2, 3, 2, 2, 2, 2, 2, 2, 2,
2859 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2860 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2861 2, 2, 3, 2, 2, 2, 2, 2, 2, 2,
2862 2, 2, 2, 3, 3, 4, 4, 4, 3, 3,
2863 2, 2, 2, 2, 2, 2, 3, 3, 2, 2,
2864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
20822865 2, 2, 2, 2, 2, 3, 2, 2, 2, 2,
20832866 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2867 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
2868 3, 3, 2, 2, 2, 1, 2, 0, 1, 1,
2869 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
2870 2, 2, 2, 2, 1, 2, 0, 1, 1, 1,
2871 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2872 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
20842873 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2085 2, 2, 2, 2, 3, 2, 2, 2, 2, 2,
2086 2, 2, 2, 2, 2, 3, 3, 4, 4, 4,
2087 3, 3, 2, 2, 2, 2, 2, 2, 3, 3,
2088 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2089 2, 2, 2, 3, 2, 2, 2, 2, 2, 2,
2090 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2091 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
2092 2, 2, 2, 1, 2, 0, 1, 1, 1, 1,
2093 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
2874 2, 2, 2, 2, 2, 1, 2, 0, 1, 2,
2875 1, 2, 0, 1, 2, 2, 2, 3, 3, 1,
2876 2, 0, 1, 1, 1, 1, 1, 1, 1, 1,
2877 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
20942878 2, 2, 1, 2, 0, 1, 1, 1, 1, 1,
2095 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2096 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
2097 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2098 2, 2, 2, 1, 2, 0, 1, 2, 1, 2,
2099 0, 1, 2, 2, 2, 3, 3, 1, 2, 0,
2100 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2101 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2102 1, 2, 0, 1, 1, 1, 1, 1, 1, 2,
2103 2, 2, 2, 2, 2, 3, 1, 2, 0, 1,
2104 1, 2, 2
2879 1, 2, 2, 2, 2, 2, 2, 3, 1, 2,
2880 0, 1, 1, 2, 2
21052881 };
21062882
2883
2884 enum { YYENOMEM = -2 };
21072885
21082886 #define yyerrok (yyerrstatus = 0)
21092887 #define yyclearin (yychar = YYEMPTY)
2110 #define YYEMPTY (-2)
2111 #define YYEOF 0
21122888
21132889 #define YYACCEPT goto yyacceptlab
21142890 #define YYABORT goto yyabortlab
21342910 } \
21352911 while (0)
21362912
2137 /* Error token number */
2138 #define YYTERROR 1
2139 #define YYERRCODE 256
2140
2913 /* Backward compatibility with an undocumented macro.
2914 Use YYerror or YYUNDEF. */
2915 #define YYERRCODE YYUNDEF
21412916
21422917
21432918 /* Enable debugging if requested. */
21552930 } while (0)
21562931
21572932 /* This macro is provided for backward compatibility. */
2158 #ifndef YY_LOCATION_PRINT
2159 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2160 #endif
2161
2162
2163 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2933 # ifndef YY_LOCATION_PRINT
2934 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2935 # endif
2936
2937
2938 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
21642939 do { \
21652940 if (yydebug) \
21662941 { \
21672942 YYFPRINTF (stderr, "%s ", Title); \
21682943 yy_symbol_print (stderr, \
2169 Type, Value); \
2944 Kind, Value); \
21702945 YYFPRINTF (stderr, "\n"); \
21712946 } \
21722947 } while (0)
21772952 `-----------------------------------*/
21782953
21792954 static void
2180 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2955 yy_symbol_value_print (FILE *yyo,
2956 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
21812957 {
21822958 FILE *yyoutput = yyo;
21832959 YYUSE (yyoutput);
21842960 if (!yyvaluep)
21852961 return;
21862962 # ifdef YYPRINT
2187 if (yytype < YYNTOKENS)
2188 YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
2963 if (yykind < YYNTOKENS)
2964 YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
21892965 # endif
2190 YYUSE (yytype);
2966 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2967 YYUSE (yykind);
2968 YY_IGNORE_MAYBE_UNINITIALIZED_END
21912969 }
21922970
21932971
21962974 `---------------------------*/
21972975
21982976 static void
2199 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2977 yy_symbol_print (FILE *yyo,
2978 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
22002979 {
22012980 YYFPRINTF (yyo, "%s %s (",
2202 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2203
2204 yy_symbol_value_print (yyo, yytype, yyvaluep);
2981 yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
2982
2983 yy_symbol_value_print (yyo, yykind, yyvaluep);
22052984 YYFPRINTF (yyo, ")");
22062985 }
22072986
22112990 `------------------------------------------------------------------*/
22122991
22132992 static void
2214 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2993 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
22152994 {
22162995 YYFPRINTF (stderr, "Stack now");
22172996 for (; yybottom <= yytop; yybottom++)
22343013 `------------------------------------------------*/
22353014
22363015 static void
2237 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
3016 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
3017 int yyrule)
22383018 {
2239 unsigned long yylno = yyrline[yyrule];
3019 int yylno = yyrline[yyrule];
22403020 int yynrhs = yyr2[yyrule];
22413021 int yyi;
2242 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3022 YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
22433023 yyrule - 1, yylno);
22443024 /* The symbols being reduced. */
22453025 for (yyi = 0; yyi < yynrhs; yyi++)
22463026 {
22473027 YYFPRINTF (stderr, " $%d = ", yyi + 1);
22483028 yy_symbol_print (stderr,
2249 yystos[yyssp[yyi + 1 - yynrhs]],
2250 &yyvsp[(yyi + 1) - (yynrhs)]
2251 );
3029 YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
3030 &yyvsp[(yyi + 1) - (yynrhs)]);
22523031 YYFPRINTF (stderr, "\n");
22533032 }
22543033 }
22633042 multiple parsers can coexist. */
22643043 int yydebug;
22653044 #else /* !YYDEBUG */
2266 # define YYDPRINTF(Args)
2267 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3045 # define YYDPRINTF(Args) ((void) 0)
3046 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
22683047 # define YY_STACK_PRINT(Bottom, Top)
22693048 # define YY_REDUCE_PRINT(Rule)
22703049 #endif /* !YYDEBUG */
22873066 #endif
22883067
22893068
2290 #if YYERROR_VERBOSE
2291
2292 # ifndef yystrlen
2293 # if defined __GLIBC__ && defined _STRING_H
2294 # define yystrlen strlen
2295 # else
2296 /* Return the length of YYSTR. */
2297 static YYSIZE_T
2298 yystrlen (const char *yystr)
2299 {
2300 YYSIZE_T yylen;
2301 for (yylen = 0; yystr[yylen]; yylen++)
2302 continue;
2303 return yylen;
2304 }
2305 # endif
2306 # endif
2307
2308 # ifndef yystpcpy
2309 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2310 # define yystpcpy stpcpy
2311 # else
2312 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2313 YYDEST. */
2314 static char *
2315 yystpcpy (char *yydest, const char *yysrc)
2316 {
2317 char *yyd = yydest;
2318 const char *yys = yysrc;
2319
2320 while ((*yyd++ = *yys++) != '\0')
2321 continue;
2322
2323 return yyd - 1;
2324 }
2325 # endif
2326 # endif
2327
2328 # ifndef yytnamerr
2329 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2330 quotes and backslashes, so that it's suitable for yyerror. The
2331 heuristic is that double-quoting is unnecessary unless the string
2332 contains an apostrophe, a comma, or backslash (other than
2333 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2334 null, do not copy; instead, return the length of what the result
2335 would have been. */
2336 static YYSIZE_T
2337 yytnamerr (char *yyres, const char *yystr)
2338 {
2339 if (*yystr == '"')
2340 {
2341 YYSIZE_T yyn = 0;
2342 char const *yyp = yystr;
2343
2344 for (;;)
2345 switch (*++yyp)
2346 {
2347 case '\'':
2348 case ',':
2349 goto do_not_strip_quotes;
2350
2351 case '\\':
2352 if (*++yyp != '\\')
2353 goto do_not_strip_quotes;
2354 else
2355 goto append;
2356
2357 append:
2358 default:
2359 if (yyres)
2360 yyres[yyn] = *yyp;
2361 yyn++;
2362 break;
2363
2364 case '"':
2365 if (yyres)
2366 yyres[yyn] = '\0';
2367 return yyn;
2368 }
2369 do_not_strip_quotes: ;
2370 }
2371
2372 if (! yyres)
2373 return yystrlen (yystr);
2374
2375 return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
2376 }
2377 # endif
2378
2379 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2380 about the unexpected token YYTOKEN for the state stack whose top is
2381 YYSSP.
2382
2383 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
2384 not large enough to hold the message. In that case, also set
2385 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
2386 required number of bytes is too large to store. */
2387 static int
2388 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2389 yytype_int16 *yyssp, int yytoken)
2390 {
2391 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2392 YYSIZE_T yysize = yysize0;
2393 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2394 /* Internationalized format string. */
2395 const char *yyformat = YY_NULLPTR;
2396 /* Arguments of yyformat. */
2397 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2398 /* Number of reported tokens (one for the "unexpected", one per
2399 "expected"). */
2400 int yycount = 0;
2401
2402 /* There are many possibilities here to consider:
2403 - If this state is a consistent state with a default action, then
2404 the only way this function was invoked is if the default action
2405 is an error action. In that case, don't check for expected
2406 tokens because there are none.
2407 - The only way there can be no lookahead present (in yychar) is if
2408 this state is a consistent state with a default action. Thus,
2409 detecting the absence of a lookahead is sufficient to determine
2410 that there is no unexpected or expected token to report. In that
2411 case, just report a simple "syntax error".
2412 - Don't assume there isn't a lookahead just because this state is a
2413 consistent state with a default action. There might have been a
2414 previous inconsistent state, consistent state with a non-default
2415 action, or user semantic action that manipulated yychar.
2416 - Of course, the expected token list depends on states to have
2417 correct lookahead information, and it depends on the parser not
2418 to perform extra reductions after fetching a lookahead from the
2419 scanner and before detecting a syntax error. Thus, state merging
2420 (from LALR or IELR) and default reductions corrupt the expected
2421 token list. However, the list is correct for canonical LR with
2422 one exception: it will still contain any token that will not be
2423 accepted due to an error action in a later state.
2424 */
2425 if (yytoken != YYEMPTY)
2426 {
2427 int yyn = yypact[*yyssp];
2428 yyarg[yycount++] = yytname[yytoken];
2429 if (!yypact_value_is_default (yyn))
2430 {
2431 /* Start YYX at -YYN if negative to avoid negative indexes in
2432 YYCHECK. In other words, skip the first -YYN actions for
2433 this state because they are default actions. */
2434 int yyxbegin = yyn < 0 ? -yyn : 0;
2435 /* Stay within bounds of both yycheck and yytname. */
2436 int yychecklim = YYLAST - yyn + 1;
2437 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2438 int yyx;
2439
2440 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2441 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2442 && !yytable_value_is_error (yytable[yyx + yyn]))
2443 {
2444 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2445 {
2446 yycount = 1;
2447 yysize = yysize0;
2448 break;
2449 }
2450 yyarg[yycount++] = yytname[yyx];
2451 {
2452 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2453 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2454 yysize = yysize1;
2455 else
2456 return 2;
2457 }
2458 }
2459 }
2460 }
2461
2462 switch (yycount)
2463 {
2464 # define YYCASE_(N, S) \
2465 case N: \
2466 yyformat = S; \
2467 break
2468 default: /* Avoid compiler warnings. */
2469 YYCASE_(0, YY_("syntax error"));
2470 YYCASE_(1, YY_("syntax error, unexpected %s"));
2471 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2472 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2473 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2474 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2475 # undef YYCASE_
2476 }
2477
2478 {
2479 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2480 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2481 yysize = yysize1;
2482 else
2483 return 2;
2484 }
2485
2486 if (*yymsg_alloc < yysize)
2487 {
2488 *yymsg_alloc = 2 * yysize;
2489 if (! (yysize <= *yymsg_alloc
2490 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2491 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2492 return 1;
2493 }
2494
2495 /* Avoid sprintf, as that infringes on the user's name space.
2496 Don't have undefined behavior even if the translation
2497 produced a string with the wrong number of "%s"s. */
2498 {
2499 char *yyp = *yymsg;
2500 int yyi = 0;
2501 while ((*yyp = *yyformat) != '\0')
2502 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2503 {
2504 yyp += yytnamerr (yyp, yyarg[yyi++]);
2505 yyformat += 2;
2506 }
2507 else
2508 {
2509 yyp++;
2510 yyformat++;
2511 }
2512 }
2513 return 0;
2514 }
2515 #endif /* YYERROR_VERBOSE */
3069
3070
3071
25163072
25173073 /*-----------------------------------------------.
25183074 | Release the memory associated to this symbol. |
25193075 `-----------------------------------------------*/
25203076
25213077 static void
2522 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3078 yydestruct (const char *yymsg,
3079 yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
25233080 {
25243081 YYUSE (yyvaluep);
25253082 if (!yymsg)
25263083 yymsg = "Deleting";
2527 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3084 YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
25283085
25293086 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2530 YYUSE (yytype);
3087 YYUSE (yykind);
25313088 YY_IGNORE_MAYBE_UNINITIALIZED_END
25323089 }
2533
2534
25353090
25363091
25373092 /* The lookahead symbol. */
25433098 int yynerrs;
25443099
25453100
3101
3102
25463103 /*----------.
25473104 | yyparse. |
25483105 `----------*/
25503107 int
25513108 yyparse (void)
25523109 {
2553 int yystate;
3110 yy_state_fast_t yystate;
25543111 /* Number of tokens to shift before error messages enabled. */
25553112 int yyerrstatus;
25563113
25613118 Refer to the stacks through separate pointers, to allow yyoverflow
25623119 to reallocate them elsewhere. */
25633120
3121 /* Their size. */
3122 YYPTRDIFF_T yystacksize;
3123
25643124 /* The state stack. */
2565 yytype_int16 yyssa[YYINITDEPTH];
2566 yytype_int16 *yyss;
2567 yytype_int16 *yyssp;
3125 yy_state_t yyssa[YYINITDEPTH];
3126 yy_state_t *yyss;
3127 yy_state_t *yyssp;
25683128
25693129 /* The semantic value stack. */
25703130 YYSTYPE yyvsa[YYINITDEPTH];
25713131 YYSTYPE *yyvs;
25723132 YYSTYPE *yyvsp;
25733133
2574 YYSIZE_T yystacksize;
2575
25763134 int yyn;
3135 /* The return value of yyparse. */
25773136 int yyresult;
25783137 /* Lookahead token as an internal (translated) token number. */
2579 int yytoken = 0;
3138 yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
25803139 /* The variables used to return semantic value and location from the
25813140 action routines. */
25823141 YYSTYPE yyval;
25833142
2584 #if YYERROR_VERBOSE
2585 /* Buffer for error messages, and its allocated size. */
2586 char yymsgbuf[128];
2587 char *yymsg = yymsgbuf;
2588 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2589 #endif
3143
25903144
25913145 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
25923146
25943148 Keep to zero when no symbol should be popped. */
25953149 int yylen = 0;
25963150
3151 yynerrs = 0;
3152 yystate = 0;
3153 yyerrstatus = 0;
3154
3155 yystacksize = YYINITDEPTH;
25973156 yyssp = yyss = yyssa;
25983157 yyvsp = yyvs = yyvsa;
2599 yystacksize = YYINITDEPTH;
3158
26003159
26013160 YYDPRINTF ((stderr, "Starting parse\n"));
26023161
2603 yystate = 0;
2604 yyerrstatus = 0;
2605 yynerrs = 0;
26063162 yychar = YYEMPTY; /* Cause a token to be read. */
26073163 goto yysetstate;
26083164
26173173
26183174
26193175 /*--------------------------------------------------------------------.
2620 | yynewstate -- set current state (the top of the stack) to yystate. |
3176 | yysetstate -- set current state (the top of the stack) to yystate. |
26213177 `--------------------------------------------------------------------*/
26223178 yysetstate:
26233179 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
26243180 YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
2625 *yyssp = (yytype_int16) yystate;
3181 YY_IGNORE_USELESS_CAST_BEGIN
3182 *yyssp = YY_CAST (yy_state_t, yystate);
3183 YY_IGNORE_USELESS_CAST_END
3184 YY_STACK_PRINT (yyss, yyssp);
26263185
26273186 if (yyss + yystacksize - 1 <= yyssp)
26283187 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
26303189 #else
26313190 {
26323191 /* Get the current used size of the three stacks, in elements. */
2633 YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
3192 YYPTRDIFF_T yysize = yyssp - yyss + 1;
26343193
26353194 # if defined yyoverflow
26363195 {
26373196 /* Give user a chance to reallocate the stack. Use copies of
26383197 these so that the &'s don't force the real ones into
26393198 memory. */
3199 yy_state_t *yyss1 = yyss;
26403200 YYSTYPE *yyvs1 = yyvs;
2641 yytype_int16 *yyss1 = yyss;
26423201
26433202 /* Each stack pointer address is followed by the size of the
26443203 data in use in that stack, in bytes. This used to be a
26453204 conditional around just the two extra args, but that might
26463205 be undefined if yyoverflow is a macro. */
26473206 yyoverflow (YY_("memory exhausted"),
2648 &yyss1, yysize * sizeof (*yyssp),
2649 &yyvs1, yysize * sizeof (*yyvsp),
3207 &yyss1, yysize * YYSIZEOF (*yyssp),
3208 &yyvs1, yysize * YYSIZEOF (*yyvsp),
26503209 &yystacksize);
26513210 yyss = yyss1;
26523211 yyvs = yyvs1;
26603219 yystacksize = YYMAXDEPTH;
26613220
26623221 {
2663 yytype_int16 *yyss1 = yyss;
3222 yy_state_t *yyss1 = yyss;
26643223 union yyalloc *yyptr =
2665 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3224 YY_CAST (union yyalloc *,
3225 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
26663226 if (! yyptr)
26673227 goto yyexhaustedlab;
26683228 YYSTACK_RELOCATE (yyss_alloc, yyss);
26693229 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2670 # undef YYSTACK_RELOCATE
3230 # undef YYSTACK_RELOCATE
26713231 if (yyss1 != yyssa)
26723232 YYSTACK_FREE (yyss1);
26733233 }
26763236 yyssp = yyss + yysize - 1;
26773237 yyvsp = yyvs + yysize - 1;
26783238
2679 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2680 (unsigned long) yystacksize));
3239 YY_IGNORE_USELESS_CAST_BEGIN
3240 YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3241 YY_CAST (long, yystacksize)));
3242 YY_IGNORE_USELESS_CAST_END
26813243
26823244 if (yyss + yystacksize - 1 <= yyssp)
26833245 YYABORT;
27043266
27053267 /* Not known => get a lookahead token if don't already have one. */
27063268
2707 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
3269 /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
27083270 if (yychar == YYEMPTY)
27093271 {
2710 YYDPRINTF ((stderr, "Reading a token: "));
3272 YYDPRINTF ((stderr, "Reading a token\n"));
27113273 yychar = yylex ();
27123274 }
27133275
27143276 if (yychar <= YYEOF)
27153277 {
2716 yychar = yytoken = YYEOF;
3278 yychar = YYEOF;
3279 yytoken = YYSYMBOL_YYEOF;
27173280 YYDPRINTF ((stderr, "Now at end of input.\n"));
3281 }
3282 else if (yychar == YYerror)
3283 {
3284 /* The scanner already issued an error message, process directly
3285 to error recovery. But do not keep the error token as
3286 lookahead, it is too special and may lead us to an endless
3287 loop in error recovery. */
3288 yychar = YYUNDEF;
3289 yytoken = YYSYMBOL_YYerror;
3290 goto yyerrlab1;
27183291 }
27193292 else
27203293 {
27433316
27443317 /* Shift the lookahead token. */
27453318 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2746
2747 /* Discard the shifted token. */
2748 yychar = YYEMPTY;
2749
27503319 yystate = yyn;
27513320 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
27523321 *++yyvsp = yylval;
27533322 YY_IGNORE_MAYBE_UNINITIALIZED_END
3323
3324 /* Discard the shifted token. */
3325 yychar = YYEMPTY;
27543326 goto yynewstate;
27553327
27563328
27863358 switch (yyn)
27873359 {
27883360 case 18:
2789 #line 195 "util/configparser.y"
2790 {
3361 #line 197 "util/configparser.y"
3362 {
27913363 OUTYY(("\nP(force-toplevel)\n"));
27923364 }
2793 #line 2795 "util/configparser.c"
3365 #line 3367 "util/configparser.c"
27943366 break;
27953367
27963368 case 19:
2797 #line 201 "util/configparser.y"
2798 {
3369 #line 203 "util/configparser.y"
3370 {
27993371 OUTYY(("\nP(server:)\n"));
28003372 }
2801 #line 2803 "util/configparser.c"
2802 break;
2803
2804 case 227:
2805 #line 299 "util/configparser.y"
2806 {
3373 #line 3375 "util/configparser.c"
3374 break;
3375
3376 case 233:
3377 #line 305 "util/configparser.y"
3378 {
28073379 struct config_stub* s;
28083380 OUTYY(("\nP(stub_zone:)\n"));
28093381 s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
28133385 } else
28143386 yyerror("out of memory");
28153387 }
2816 #line 2818 "util/configparser.c"
2817 break;
2818
2819 case 237:
2820 #line 316 "util/configparser.y"
2821 {
3388 #line 3390 "util/configparser.c"
3389 break;
3390
3391 case 243:
3392 #line 322 "util/configparser.y"
3393 {
28223394 struct config_stub* s;
28233395 OUTYY(("\nP(forward_zone:)\n"));
28243396 s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
28283400 } else
28293401 yyerror("out of memory");
28303402 }
2831 #line 2833 "util/configparser.c"
2832 break;
2833
2834 case 246:
2835 #line 333 "util/configparser.y"
2836 {
3403 #line 3405 "util/configparser.c"
3404 break;
3405
3406 case 252:
3407 #line 339 "util/configparser.y"
3408 {
28373409 struct config_view* s;
28383410 OUTYY(("\nP(view:)\n"));
28393411 s = (struct config_view*)calloc(1, sizeof(struct config_view));
28453417 } else
28463418 yyerror("out of memory");
28473419 }
2848 #line 2850 "util/configparser.c"
2849 break;
2850
2851 case 256:
2852 #line 352 "util/configparser.y"
2853 {
3420 #line 3422 "util/configparser.c"
3421 break;
3422
3423 case 262:
3424 #line 358 "util/configparser.y"
3425 {
28543426 struct config_auth* s;
28553427 OUTYY(("\nP(auth_zone:)\n"));
28563428 s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
28653437 } else
28663438 yyerror("out of memory");
28673439 }
2868 #line 2870 "util/configparser.c"
2869 break;
2870
2871 case 267:
2872 #line 376 "util/configparser.y"
2873 {
3440 #line 3442 "util/configparser.c"
3441 break;
3442
3443 case 273:
3444 #line 382 "util/configparser.y"
3445 {
28743446 uint8_t* bitlist;
28753447 size_t len = 0;
28763448 OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str)));
28863458
28873459 }
28883460 }
2889 #line 2891 "util/configparser.c"
2890 break;
2891
2892 case 268:
2893 #line 395 "util/configparser.y"
2894 {
3461 #line 3463 "util/configparser.c"
3462 break;
3463
3464 case 274:
3465 #line 401 "util/configparser.y"
3466 {
28953467 OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str)));
28963468 if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 &&
28973469 strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 &&
29053477 cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str);
29063478 }
29073479 }
2908 #line 2910 "util/configparser.c"
2909 break;
2910
2911 case 269:
2912 #line 412 "util/configparser.y"
2913 {
3480 #line 3482 "util/configparser.c"
3481 break;
3482
3483 case 275:
3484 #line 418 "util/configparser.y"
3485 {
29143486 OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str)));
29153487 free(cfg_parser->cfg->auths->rpz_cname);
29163488 cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str);
29173489 }
2918 #line 2920 "util/configparser.c"
2919 break;
2920
2921 case 270:
2922 #line 420 "util/configparser.y"
2923 {
3490 #line 3492 "util/configparser.c"
3491 break;
3492
3493 case 276:
3494 #line 426 "util/configparser.y"
3495 {
29243496 OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str)));
29253497 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
29263498 yyerror("expected yes or no.");
29273499 else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0);
29283500 free((yyvsp[0].str));
29293501 }
2930 #line 2932 "util/configparser.c"
2931 break;
2932
2933 case 271:
2934 #line 430 "util/configparser.y"
2935 {
3502 #line 3504 "util/configparser.c"
3503 break;
3504
3505 case 277:
3506 #line 436 "util/configparser.y"
3507 {
29363508 OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str)));
29373509 free(cfg_parser->cfg->auths->rpz_log_name);
29383510 cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str);
29393511 }
2940 #line 2942 "util/configparser.c"
2941 break;
2942
2943 case 272:
2944 #line 438 "util/configparser.y"
2945 {
3512 #line 3514 "util/configparser.c"
3513 break;
3514
3515 case 278:
3516 #line 444 "util/configparser.y"
3517 {
29463518 struct config_auth* s;
29473519 OUTYY(("\nP(rpz:)\n"));
29483520 s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
29573529 } else
29583530 yyerror("out of memory");
29593531 }
2960 #line 2962 "util/configparser.c"
2961 break;
2962
2963 case 285:
2964 #line 461 "util/configparser.y"
2965 {
3532 #line 3534 "util/configparser.c"
3533 break;
3534
3535 case 291:
3536 #line 467 "util/configparser.y"
3537 {
29663538 OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
29673539 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
29683540 yyerror("number expected");
29693541 else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
29703542 free((yyvsp[0].str));
29713543 }
2972 #line 2974 "util/configparser.c"
2973 break;
2974
2975 case 286:
2976 #line 470 "util/configparser.y"
2977 {
3544 #line 3546 "util/configparser.c"
3545 break;
3546
3547 case 292:
3548 #line 476 "util/configparser.y"
3549 {
29783550 OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
29793551 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
29803552 yyerror("number expected");
29813553 else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
29823554 free((yyvsp[0].str));
29833555 }
2984 #line 2986 "util/configparser.c"
2985 break;
2986
2987 case 287:
2988 #line 479 "util/configparser.y"
2989 {
3556 #line 3558 "util/configparser.c"
3557 break;
3558
3559 case 293:
3560 #line 485 "util/configparser.y"
3561 {
29903562 OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
29913563 if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
29923564 cfg_parser->cfg->stat_interval = 0;
29953567 else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
29963568 free((yyvsp[0].str));
29973569 }
2998 #line 3000 "util/configparser.c"
2999 break;
3000
3001 case 288:
3002 #line 490 "util/configparser.y"
3003 {
3570 #line 3572 "util/configparser.c"
3571 break;
3572
3573 case 294:
3574 #line 496 "util/configparser.y"
3575 {
30043576 OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
30053577 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
30063578 yyerror("expected yes or no.");
30073579 else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
30083580 free((yyvsp[0].str));
30093581 }
3010 #line 3012 "util/configparser.c"
3011 break;
3012
3013 case 289:
3014 #line 499 "util/configparser.y"
3015 {
3582 #line 3584 "util/configparser.c"
3583 break;
3584
3585 case 295:
3586 #line 505 "util/configparser.y"
3587 {
30163588 OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
30173589 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
30183590 yyerror("expected yes or no.");
30193591 else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
30203592 free((yyvsp[0].str));
30213593 }
3022 #line 3024 "util/configparser.c"
3023 break;
3024
3025 case 290:
3026 #line 508 "util/configparser.y"
3027 {
3594 #line 3596 "util/configparser.c"
3595 break;
3596
3597 case 296:
3598 #line 514 "util/configparser.y"
3599 {
30283600 OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
30293601 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
30303602 yyerror("expected yes or no.");
30313603 else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
30323604 free((yyvsp[0].str));
30333605 }
3034 #line 3036 "util/configparser.c"
3035 break;
3036
3037 case 291:
3038 #line 517 "util/configparser.y"
3039 {
3606 #line 3608 "util/configparser.c"
3607 break;
3608
3609 case 297:
3610 #line 523 "util/configparser.y"
3611 {
30403612 OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str)));
30413613 if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
30423614 cfg_parser->cfg->shm_key = 0;
30453617 else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
30463618 free((yyvsp[0].str));
30473619 }
3048 #line 3050 "util/configparser.c"
3049 break;
3050
3051 case 292:
3052 #line 528 "util/configparser.y"
3053 {
3620 #line 3622 "util/configparser.c"
3621 break;
3622
3623 case 298:
3624 #line 534 "util/configparser.y"
3625 {
30543626 OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
30553627 if(atoi((yyvsp[0].str)) == 0)
30563628 yyerror("port number expected");
30573629 else cfg_parser->cfg->port = atoi((yyvsp[0].str));
30583630 free((yyvsp[0].str));
30593631 }
3060 #line 3062 "util/configparser.c"
3061 break;
3062
3063 case 293:
3064 #line 537 "util/configparser.y"
3065 {
3632 #line 3634 "util/configparser.c"
3633 break;
3634
3635 case 299:
3636 #line 543 "util/configparser.y"
3637 {
30663638 #ifdef CLIENT_SUBNET
30673639 OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str)));
30683640 if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str)))
30723644 free((yyvsp[0].str));
30733645 #endif
30743646 }
3075 #line 3077 "util/configparser.c"
3076 break;
3077
3078 case 294:
3079 #line 549 "util/configparser.y"
3080 {
3647 #line 3649 "util/configparser.c"
3648 break;
3649
3650 case 300:
3651 #line 555 "util/configparser.y"
3652 {
30813653 #ifdef CLIENT_SUBNET
30823654 OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str)));
30833655 if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone,
30883660 free((yyvsp[0].str));
30893661 #endif
30903662 }
3091 #line 3093 "util/configparser.c"
3092 break;
3093
3094 case 295:
3095 #line 563 "util/configparser.y"
3096 {
3663 #line 3665 "util/configparser.c"
3664 break;
3665
3666 case 301:
3667 #line 569 "util/configparser.y"
3668 {
30973669 #ifdef CLIENT_SUBNET
30983670 OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str)));
30993671 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
31063678 #endif
31073679 free((yyvsp[0].str));
31083680 }
3109 #line 3111 "util/configparser.c"
3110 break;
3111
3112 case 296:
3113 #line 578 "util/configparser.y"
3114 {
3681 #line 3683 "util/configparser.c"
3682 break;
3683
3684 case 302:
3685 #line 584 "util/configparser.y"
3686 {
31153687 #ifdef CLIENT_SUBNET
31163688 OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str)));
31173689 OUTYY(("P(Deprecated option, ignoring)\n"));
31203692 #endif
31213693 free((yyvsp[0].str));
31223694 }
3123 #line 3125 "util/configparser.c"
3124 break;
3125
3126 case 297:
3127 #line 589 "util/configparser.y"
3128 {
3695 #line 3697 "util/configparser.c"
3696 break;
3697
3698 case 303:
3699 #line 595 "util/configparser.y"
3700 {
31293701 #ifdef CLIENT_SUBNET
31303702 OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
31313703 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
31403712 #endif
31413713 free((yyvsp[0].str));
31423714 }
3143 #line 3145 "util/configparser.c"
3144 break;
3145
3146 case 298:
3147 #line 606 "util/configparser.y"
3148 {
3715 #line 3717 "util/configparser.c"
3716 break;
3717
3718 case 304:
3719 #line 612 "util/configparser.y"
3720 {
31493721 #ifdef CLIENT_SUBNET
31503722 OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
31513723 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
31603732 #endif
31613733 free((yyvsp[0].str));
31623734 }
3163 #line 3165 "util/configparser.c"
3164 break;
3165
3166 case 299:
3167 #line 623 "util/configparser.y"
3168 {
3735 #line 3737 "util/configparser.c"
3736 break;
3737
3738 case 305:
3739 #line 629 "util/configparser.y"
3740 {
31693741 #ifdef CLIENT_SUBNET
31703742 OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
31713743 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
31803752 #endif
31813753 free((yyvsp[0].str));
31823754 }
3183 #line 3185 "util/configparser.c"
3184 break;
3185
3186 case 300:
3187 #line 640 "util/configparser.y"
3188 {
3755 #line 3757 "util/configparser.c"
3756 break;
3757
3758 case 306:
3759 #line 646 "util/configparser.y"
3760 {
31893761 #ifdef CLIENT_SUBNET
31903762 OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
31913763 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
32003772 #endif
32013773 free((yyvsp[0].str));
32023774 }
3203 #line 3205 "util/configparser.c"
3204 break;
3205
3206 case 301:
3207 #line 657 "util/configparser.y"
3208 {
3775 #line 3777 "util/configparser.c"
3776 break;
3777
3778 case 307:
3779 #line 663 "util/configparser.y"
3780 {
32093781 #ifdef CLIENT_SUBNET
32103782 OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str)));
32113783 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
32183790 #endif
32193791 free((yyvsp[0].str));
32203792 }
3221 #line 3223 "util/configparser.c"
3222 break;
3223
3224 case 302:
3225 #line 672 "util/configparser.y"
3226 {
3793 #line 3795 "util/configparser.c"
3794 break;
3795
3796 case 308:
3797 #line 678 "util/configparser.y"
3798 {
32273799 #ifdef CLIENT_SUBNET
32283800 OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str)));
32293801 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
32363808 #endif
32373809 free((yyvsp[0].str));
32383810 }
3239 #line 3241 "util/configparser.c"
3240 break;
3241
3242 case 303:
3243 #line 687 "util/configparser.y"
3244 {
3811 #line 3813 "util/configparser.c"
3812 break;
3813
3814 case 309:
3815 #line 693 "util/configparser.y"
3816 {
32453817 OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
32463818 if(cfg_parser->cfg->num_ifs == 0)
32473819 cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
32523824 else
32533825 cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
32543826 }
3255 #line 3257 "util/configparser.c"
3256 break;
3257
3258 case 304:
3259 #line 700 "util/configparser.y"
3260 {
3827 #line 3829 "util/configparser.c"
3828 break;
3829
3830 case 310:
3831 #line 706 "util/configparser.y"
3832 {
32613833 OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
32623834 if(cfg_parser->cfg->num_out_ifs == 0)
32633835 cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
32703842 cfg_parser->cfg->out_ifs[
32713843 cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
32723844 }
3273 #line 3275 "util/configparser.c"
3274 break;
3275
3276 case 305:
3277 #line 715 "util/configparser.y"
3278 {
3845 #line 3847 "util/configparser.c"
3846 break;
3847
3848 case 311:
3849 #line 721 "util/configparser.y"
3850 {
32793851 OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
32803852 if(atoi((yyvsp[0].str)) == 0)
32813853 yyerror("number expected");
32823854 else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
32833855 free((yyvsp[0].str));
32843856 }
3285 #line 3287 "util/configparser.c"
3286 break;
3287
3288 case 306:
3289 #line 724 "util/configparser.y"
3290 {
3857 #line 3859 "util/configparser.c"
3858 break;
3859
3860 case 312:
3861 #line 730 "util/configparser.y"
3862 {
32913863 OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
32923864 if(!cfg_mark_ports((yyvsp[0].str), 1,
32933865 cfg_parser->cfg->outgoing_avail_ports, 65536))
32943866 yyerror("port number or range (\"low-high\") expected");
32953867 free((yyvsp[0].str));
32963868 }
3297 #line 3299 "util/configparser.c"
3298 break;
3299
3300 case 307:
3301 #line 733 "util/configparser.y"
3302 {
3869 #line 3871 "util/configparser.c"
3870 break;
3871
3872 case 313:
3873 #line 739 "util/configparser.y"
3874 {
33033875 OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
33043876 if(!cfg_mark_ports((yyvsp[0].str), 0,
33053877 cfg_parser->cfg->outgoing_avail_ports, 65536))
33063878 yyerror("port number or range (\"low-high\") expected");
33073879 free((yyvsp[0].str));
33083880 }
3309 #line 3311 "util/configparser.c"
3310 break;
3311
3312 case 308:
3313 #line 742 "util/configparser.y"
3314 {
3881 #line 3883 "util/configparser.c"
3882 break;
3883
3884 case 314:
3885 #line 748 "util/configparser.y"
3886 {
33153887 OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
33163888 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
33173889 yyerror("number expected");
33183890 else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
33193891 free((yyvsp[0].str));
33203892 }
3321 #line 3323 "util/configparser.c"
3322 break;
3323
3324 case 309:
3325 #line 751 "util/configparser.y"
3326 {
3893 #line 3895 "util/configparser.c"
3894 break;
3895
3896 case 315:
3897 #line 757 "util/configparser.y"
3898 {
33273899 OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
33283900 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
33293901 yyerror("number expected");
33303902 else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
33313903 free((yyvsp[0].str));
33323904 }
3333 #line 3335 "util/configparser.c"
3334 break;
3335
3336 case 310:
3337 #line 760 "util/configparser.y"
3338 {
3905 #line 3907 "util/configparser.c"
3906 break;
3907
3908 case 316:
3909 #line 766 "util/configparser.y"
3910 {
33393911 OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
33403912 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
33413913 yyerror("expected yes or no.");
33423914 else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
33433915 free((yyvsp[0].str));
33443916 }
3345 #line 3347 "util/configparser.c"
3346 break;
3347
3348 case 311:
3349 #line 769 "util/configparser.y"
3350 {
3917 #line 3919 "util/configparser.c"
3918 break;
3919
3920 case 317:
3921 #line 775 "util/configparser.y"
3922 {
33513923 OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
33523924 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
33533925 yyerror("expected yes or no.");
33543926 else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
33553927 free((yyvsp[0].str));
33563928 }
3357 #line 3359 "util/configparser.c"
3358 break;
3359
3360 case 312:
3361 #line 778 "util/configparser.y"
3362 {
3929 #line 3931 "util/configparser.c"
3930 break;
3931
3932 case 318:
3933 #line 784 "util/configparser.y"
3934 {
33633935 OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
33643936 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
33653937 yyerror("expected yes or no.");
33663938 else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
33673939 free((yyvsp[0].str));
33683940 }
3369 #line 3371 "util/configparser.c"
3370 break;
3371
3372 case 313:
3373 #line 787 "util/configparser.y"
3374 {
3941 #line 3943 "util/configparser.c"
3942 break;
3943
3944 case 319:
3945 #line 793 "util/configparser.y"
3946 {
33753947 OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
33763948 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
33773949 yyerror("expected yes or no.");
33783950 else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
33793951 free((yyvsp[0].str));
33803952 }
3381 #line 3383 "util/configparser.c"
3382 break;
3383
3384 case 314:
3385 #line 796 "util/configparser.y"
3386 {
3953 #line 3955 "util/configparser.c"
3954 break;
3955
3956 case 320:
3957 #line 802 "util/configparser.y"
3958 {
33873959 OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
33883960 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
33893961 yyerror("expected yes or no.");
33903962 else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
33913963 free((yyvsp[0].str));
33923964 }
3393 #line 3395 "util/configparser.c"
3394 break;
3395
3396 case 315:
3397 #line 805 "util/configparser.y"
3398 {
3965 #line 3967 "util/configparser.c"
3966 break;
3967
3968 case 321:
3969 #line 811 "util/configparser.y"
3970 {
33993971 OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str)));
34003972 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
34013973 yyerror("expected yes or no.");
34023974 else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
34033975 free((yyvsp[0].str));
34043976 }
3405 #line 3407 "util/configparser.c"
3406 break;
3407
3408 case 316:
3409 #line 814 "util/configparser.y"
3410 {
3977 #line 3979 "util/configparser.c"
3978 break;
3979
3980 case 322:
3981 #line 820 "util/configparser.y"
3982 {
34113983 OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
34123984 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
34133985 yyerror("expected yes or no.");
34143986 else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
34153987 free((yyvsp[0].str));
34163988 }
3417 #line 3419 "util/configparser.c"
3418 break;
3419
3420 case 317:
3421 #line 823 "util/configparser.y"
3422 {
3989 #line 3991 "util/configparser.c"
3990 break;
3991
3992 case 323:
3993 #line 829 "util/configparser.y"
3994 {
34233995 OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
34243996 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
34253997 yyerror("number expected");
34263998 else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
34273999 free((yyvsp[0].str));
34284000 }
3429 #line 3431 "util/configparser.c"
3430 break;
3431
3432 case 318:
3433 #line 832 "util/configparser.y"
3434 {
4001 #line 4003 "util/configparser.c"
4002 break;
4003
4004 case 324:
4005 #line 838 "util/configparser.y"
4006 {
34354007 OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
34364008 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
34374009 yyerror("number expected");
34384010 else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
34394011 free((yyvsp[0].str));
34404012 }
3441 #line 3443 "util/configparser.c"
3442 break;
3443
3444 case 319:
3445 #line 841 "util/configparser.y"
3446 {
4013 #line 4015 "util/configparser.c"
4014 break;
4015
4016 case 325:
4017 #line 847 "util/configparser.y"
4018 {
34474019 OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str)));
34484020 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
34494021 yyerror("number expected");
34544026 else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str));
34554027 free((yyvsp[0].str));
34564028 }
3457 #line 3459 "util/configparser.c"
3458 break;
3459
3460 case 320:
3461 #line 854 "util/configparser.y"
3462 {
4029 #line 4031 "util/configparser.c"
4030 break;
4031
4032 case 326:
4033 #line 860 "util/configparser.y"
4034 {
34634035 OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str)));
34644036 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
34654037 yyerror("expected yes or no.");
34664038 else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0);
34674039 free((yyvsp[0].str));
34684040 }
3469 #line 3471 "util/configparser.c"
3470 break;
3471
3472 case 321:
3473 #line 863 "util/configparser.y"
3474 {
4041 #line 4043 "util/configparser.c"
4042 break;
4043
4044 case 327:
4045 #line 869 "util/configparser.y"
4046 {
34754047 OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str)));
34764048 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
34774049 yyerror("number expected");
34824054 else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str));
34834055 free((yyvsp[0].str));
34844056 }
3485 #line 3487 "util/configparser.c"
3486 break;
3487
3488 case 322:
3489 #line 876 "util/configparser.y"
3490 {
4057 #line 4059 "util/configparser.c"
4058 break;
4059
4060 case 328:
4061 #line 882 "util/configparser.y"
4062 {
34914063 OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
34924064 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
34934065 yyerror("expected yes or no.");
34944066 else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
34954067 free((yyvsp[0].str));
34964068 }
3497 #line 3499 "util/configparser.c"
3498 break;
3499
3500 case 323:
3501 #line 885 "util/configparser.y"
3502 {
4069 #line 4071 "util/configparser.c"
4070 break;
4071
4072 case 329:
4073 #line 891 "util/configparser.y"
4074 {
35034075 OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str)));
35044076 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
35054077 yyerror("expected yes or no.");
35064078 else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
35074079 free((yyvsp[0].str));
35084080 }
3509 #line 3511 "util/configparser.c"
3510 break;
3511
3512 case 324:
3513 #line 894 "util/configparser.y"
3514 {
4081 #line 4083 "util/configparser.c"
4082 break;
4083
4084 case 330:
4085 #line 900 "util/configparser.y"
4086 {
35154087 OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
35164088 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
35174089 yyerror("expected yes or no.");
35184090 else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
35194091 free((yyvsp[0].str));
35204092 }
3521 #line 3523 "util/configparser.c"
3522 break;
3523
3524 case 325:
3525 #line 903 "util/configparser.y"
3526 {
4093 #line 4095 "util/configparser.c"
4094 break;
4095
4096 case 331:
4097 #line 909 "util/configparser.y"
4098 {
35274099 OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str)));
35284100 free(cfg_parser->cfg->ssl_service_key);
35294101 cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
35304102 }
3531 #line 3533 "util/configparser.c"
3532 break;
3533
3534 case 326:
3535 #line 910 "util/configparser.y"
3536 {
4103 #line 4105 "util/configparser.c"
4104 break;
4105
4106 case 332:
4107 #line 916 "util/configparser.y"
4108 {
35374109 OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str)));
35384110 free(cfg_parser->cfg->ssl_service_pem);
35394111 cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
35404112 }
3541 #line 3543 "util/configparser.c"
3542 break;
3543
3544 case 327:
3545 #line 917 "util/configparser.y"
3546 {
4113 #line 4115 "util/configparser.c"
4114 break;
4115
4116 case 333:
4117 #line 923 "util/configparser.y"
4118 {
35474119 OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
35484120 if(atoi((yyvsp[0].str)) == 0)
35494121 yyerror("port number expected");
35504122 else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
35514123 free((yyvsp[0].str));
35524124 }
3553 #line 3555 "util/configparser.c"
3554 break;
3555
3556 case 328:
3557 #line 926 "util/configparser.y"
3558 {
4125 #line 4127 "util/configparser.c"
4126 break;
4127
4128 case 334:
4129 #line 932 "util/configparser.y"
4130 {
35594131 OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
35604132 free(cfg_parser->cfg->tls_cert_bundle);
35614133 cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
35624134 }
3563 #line 3565 "util/configparser.c"
3564 break;
3565
3566 case 329:
3567 #line 933 "util/configparser.y"
3568 {
4135 #line 4137 "util/configparser.c"
4136 break;
4137
4138 case 335:
4139 #line 939 "util/configparser.y"
4140 {
35694141 OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str)));
35704142 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
35714143 yyerror("expected yes or no.");
35724144 else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
35734145 free((yyvsp[0].str));
35744146 }
3575 #line 3577 "util/configparser.c"
3576 break;
3577
3578 case 330:
3579 #line 942 "util/configparser.y"
3580 {
4147 #line 4149 "util/configparser.c"
4148 break;
4149
4150 case 336:
4151 #line 948 "util/configparser.y"
4152 {
35814153 OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str)));
35824154 if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
35834155 (yyvsp[0].str)))
35844156 yyerror("out of memory");
35854157 }
3586 #line 3588 "util/configparser.c"
3587 break;
3588
3589 case 331:
3590 #line 950 "util/configparser.y"
3591 {
4158 #line 4160 "util/configparser.c"
4159 break;
4160
4161 case 337:
4162 #line 956 "util/configparser.y"
4163 {
35924164 OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str)));
35934165 free(cfg_parser->cfg->tls_ciphers);
35944166 cfg_parser->cfg->tls_ciphers = (yyvsp[0].str);
35954167 }
3596 #line 3598 "util/configparser.c"
3597 break;
3598
3599 case 332:
3600 #line 957 "util/configparser.y"
3601 {
4168 #line 4170 "util/configparser.c"
4169 break;
4170
4171 case 338:
4172 #line 963 "util/configparser.y"
4173 {
36024174 OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str)));
36034175 free(cfg_parser->cfg->tls_ciphersuites);
36044176 cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str);
36054177 }
3606 #line 3608 "util/configparser.c"
3607 break;
3608
3609 case 333:
3610 #line 964 "util/configparser.y"
3611 {
4178 #line 4180 "util/configparser.c"
4179 break;
4180
4181 case 339:
4182 #line 970 "util/configparser.y"
4183 {
36124184 OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str)));
36134185 if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
36144186 (yyvsp[0].str)))
36154187 yyerror("out of memory");
36164188 }
3617 #line 3619 "util/configparser.c"
3618 break;
3619
3620 case 334:
3621 #line 972 "util/configparser.y"
3622 {
4189 #line 4191 "util/configparser.c"
4190 break;
4191
4192 case 340:
4193 #line 978 "util/configparser.y"
4194 {
36234195 OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str)));
36244196 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
36254197 yyerror("expected yes or no.");
36264198 else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0);
36274199 free((yyvsp[0].str));
36284200 }
3629 #line 3631 "util/configparser.c"
3630 break;
3631
3632 case 335:
3633 #line 981 "util/configparser.y"
3634 {
4201 #line 4203 "util/configparser.c"
4202 break;
4203
4204 case 341:
4205 #line 987 "util/configparser.y"
4206 {
36354207 OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str)));
36364208 if(atoi((yyvsp[0].str)) == 0)
36374209 yyerror("port number expected");
36384210 else cfg_parser->cfg->https_port = atoi((yyvsp[0].str));
36394211 free((yyvsp[0].str));
36404212 }
3641 #line 3643 "util/configparser.c"
3642 break;
3643
3644 case 336:
3645 #line 989 "util/configparser.y"
3646 {
4213 #line 4215 "util/configparser.c"
4214 break;
4215
4216 case 342:
4217 #line 995 "util/configparser.y"
4218 {
36474219 OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str)));
36484220 free(cfg_parser->cfg->http_endpoint);
36494221 if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') {
36584230 cfg_parser->cfg->http_endpoint = (yyvsp[0].str);
36594231 }
36604232 }
3661 #line 3663 "util/configparser.c"
3662 break;
3663
3664 case 337:
3665 #line 1005 "util/configparser.y"
3666 {
4233 #line 4235 "util/configparser.c"
4234 break;
4235
4236 case 343:
4237 #line 1011 "util/configparser.y"
4238 {
36674239 OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str)));
36684240 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
36694241 yyerror("number expected");
36704242 else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str));
36714243 free((yyvsp[0].str));
36724244 }
3673 #line 3675 "util/configparser.c"
3674 break;
3675
3676 case 338:
3677 #line 1013 "util/configparser.y"
3678 {
4245 #line 4247 "util/configparser.c"
4246 break;
4247
4248 case 344:
4249 #line 1019 "util/configparser.y"
4250 {
36794251 OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str)));
36804252 if(!cfg_parse_memsize((yyvsp[0].str),
36814253 &cfg_parser->cfg->http_query_buffer_size))
36824254 yyerror("memory size expected");
36834255 free((yyvsp[0].str));
36844256 }
3685 #line 3687 "util/configparser.c"
3686 break;
3687
3688 case 339:
3689 #line 1021 "util/configparser.y"
3690 {
4257 #line 4259 "util/configparser.c"
4258 break;
4259
4260 case 345:
4261 #line 1027 "util/configparser.y"
4262 {
36914263 OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str)));
36924264 if(!cfg_parse_memsize((yyvsp[0].str),
36934265 &cfg_parser->cfg->http_response_buffer_size))
36944266 yyerror("memory size expected");
36954267 free((yyvsp[0].str));
36964268 }
3697 #line 3699 "util/configparser.c"
3698 break;
3699
3700 case 340:
3701 #line 1029 "util/configparser.y"
3702 {
4269 #line 4271 "util/configparser.c"
4270 break;
4271
4272 case 346:
4273 #line 1035 "util/configparser.y"
4274 {
37034275 OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str)));
37044276 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37054277 yyerror("expected yes or no.");
37064278 else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0);
37074279 free((yyvsp[0].str));
37084280 }
3709 #line 3711 "util/configparser.c"
3710 break;
3711
3712 case 341:
3713 #line 1037 "util/configparser.y"
3714 {
4281 #line 4283 "util/configparser.c"
4282 break;
4283
4284 case 347:
4285 #line 1043 "util/configparser.y"
4286 {
37154287 OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str)));
37164288 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37174289 yyerror("expected yes or no.");
37184290 else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0);
37194291 free((yyvsp[0].str));
37204292 }
3721 #line 3723 "util/configparser.c"
3722 break;
3723
3724 case 342:
3725 #line 1045 "util/configparser.y"
3726 {
4293 #line 4295 "util/configparser.c"
4294 break;
4295
4296 case 348:
4297 #line 1051 "util/configparser.y"
4298 {
37274299 OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str)));
37284300 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37294301 yyerror("expected yes or no.");
37304302 else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
37314303 free((yyvsp[0].str));
37324304 }
3733 #line 3735 "util/configparser.c"
3734 break;
3735
3736 case 343:
3737 #line 1054 "util/configparser.y"
3738 {
4305 #line 4307 "util/configparser.c"
4306 break;
4307
4308 case 349:
4309 #line 1060 "util/configparser.y"
4310 {
37394311 OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
37404312 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37414313 yyerror("expected yes or no.");
37424314 else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
37434315 free((yyvsp[0].str));
37444316 }
3745 #line 3747 "util/configparser.c"
3746 break;
3747
3748 case 344:
3749 #line 1063 "util/configparser.y"
3750 {
4317 #line 4319 "util/configparser.c"
4318 break;
4319
4320 case 350:
4321 #line 1069 "util/configparser.y"
4322 {
37514323 OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
37524324 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37534325 yyerror("expected yes or no.");
37594331 #endif
37604332 free((yyvsp[0].str));
37614333 }
3762 #line 3764 "util/configparser.c"
3763 break;
3764
3765 case 345:
3766 #line 1077 "util/configparser.y"
3767 {
4334 #line 4336 "util/configparser.c"
4335 break;
4336
4337 case 351:
4338 #line 1083 "util/configparser.y"
4339 {
37684340 OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
37694341 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37704342 yyerror("expected yes or no.");
37714343 else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
37724344 free((yyvsp[0].str));
37734345 }
3774 #line 3776 "util/configparser.c"
3775 break;
3776
3777 case 346:
3778 #line 1086 "util/configparser.y"
3779 {
4346 #line 4348 "util/configparser.c"
4347 break;
4348
4349 case 352:
4350 #line 1092 "util/configparser.y"
4351 {
37804352 OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
37814353 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37824354 yyerror("expected yes or no.");
37834355 else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
37844356 free((yyvsp[0].str));
37854357 }
3786 #line 3788 "util/configparser.c"
3787 break;
3788
3789 case 347:
3790 #line 1095 "util/configparser.y"
3791 {
4358 #line 4360 "util/configparser.c"
4359 break;
4360
4361 case 353:
4362 #line 1101 "util/configparser.y"
4363 {
37924364 OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str)));
37934365 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37944366 yyerror("expected yes or no.");
37954367 else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
37964368 free((yyvsp[0].str));
37974369 }
3798 #line 3800 "util/configparser.c"
3799 break;
3800
3801 case 348:
3802 #line 1104 "util/configparser.y"
3803 {
4370 #line 4372 "util/configparser.c"
4371 break;
4372
4373 case 354:
4374 #line 1110 "util/configparser.y"
4375 {
38044376 OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str)));
38054377 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
38064378 yyerror("expected yes or no.");
38074379 else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0);
38084380 free((yyvsp[0].str));
38094381 }
3810 #line 3812 "util/configparser.c"
3811 break;
3812
3813 case 349:
3814 #line 1113 "util/configparser.y"
3815 {
4382 #line 4384 "util/configparser.c"
4383 break;
4384
4385 case 355:
4386 #line 1119 "util/configparser.y"
4387 {
38164388 OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str)));
38174389 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
38184390 yyerror("expected yes or no.");
38194391 else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0);
38204392 free((yyvsp[0].str));
38214393 }
3822 #line 3824 "util/configparser.c"
3823 break;
3824
3825 case 350:
3826 #line 1122 "util/configparser.y"
3827 {
4394 #line 4396 "util/configparser.c"
4395 break;
4396
4397 case 356:
4398 #line 1128 "util/configparser.y"
4399 {
38284400 OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str)));
38294401 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
38304402 yyerror("expected yes or no.");
38314403 else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0);
38324404 free((yyvsp[0].str));
38334405 }
3834 #line 3836 "util/configparser.c"
3835 break;
3836
3837 case 351:
3838 #line 1131 "util/configparser.y"
3839 {
4406 #line 4408 "util/configparser.c"
4407 break;
4408
4409 case 357:
4410 #line 1137 "util/configparser.y"
4411 {
38404412 OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
38414413 free(cfg_parser->cfg->chrootdir);
38424414 cfg_parser->cfg->chrootdir = (yyvsp[0].str);
38434415 }
3844 #line 3846 "util/configparser.c"
3845 break;
3846
3847 case 352:
3848 #line 1138 "util/configparser.y"
3849 {
4416 #line 4418 "util/configparser.c"
4417 break;
4418
4419 case 358:
4420 #line 1144 "util/configparser.y"
4421 {
38504422 OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
38514423 free(cfg_parser->cfg->username);
38524424 cfg_parser->cfg->username = (yyvsp[0].str);
38534425 }
3854 #line 3856 "util/configparser.c"
3855 break;
3856
3857 case 353:
3858 #line 1145 "util/configparser.y"
3859 {
4426 #line 4428 "util/configparser.c"
4427 break;
4428
4429 case 359:
4430 #line 1151 "util/configparser.y"
4431 {
38604432 OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
38614433 free(cfg_parser->cfg->directory);
38624434 cfg_parser->cfg->directory = (yyvsp[0].str);
38804452 }
38814453 }
38824454 }
3883 #line 3885 "util/configparser.c"
3884 break;
3885
3886 case 354:
3887 #line 1171 "util/configparser.y"
3888 {
4455 #line 4457 "util/configparser.c"
4456 break;
4457
4458 case 360:
4459 #line 1177 "util/configparser.y"
4460 {
38894461 OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
38904462 free(cfg_parser->cfg->logfile);
38914463 cfg_parser->cfg->logfile = (yyvsp[0].str);
38924464 cfg_parser->cfg->use_syslog = 0;
38934465 }
3894 #line 3896 "util/configparser.c"
3895 break;
3896
3897 case 355:
3898 #line 1179 "util/configparser.y"
3899 {
4466 #line 4468 "util/configparser.c"
4467 break;
4468
4469 case 361:
4470 #line 1185 "util/configparser.y"
4471 {
39004472 OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
39014473 free(cfg_parser->cfg->pidfile);
39024474 cfg_parser->cfg->pidfile = (yyvsp[0].str);
39034475 }
3904 #line 3906 "util/configparser.c"
3905 break;
3906
3907 case 356:
3908 #line 1186 "util/configparser.y"
3909 {
4476 #line 4478 "util/configparser.c"
4477 break;
4478
4479 case 362:
4480 #line 1192 "util/configparser.y"
4481 {
39104482 OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str)));
39114483 if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
39124484 yyerror("out of memory");
39134485 }
3914 #line 3916 "util/configparser.c"
3915 break;
3916
3917 case 357:
3918 #line 1193 "util/configparser.y"
3919 {
4486 #line 4488 "util/configparser.c"
4487 break;
4488
4489 case 363:
4490 #line 1199 "util/configparser.y"
4491 {
39204492 OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
39214493 log_warn("option dlv-anchor-file ignored: DLV is decommissioned");
39224494 free((yyvsp[0].str));
39234495 }
3924 #line 3926 "util/configparser.c"
3925 break;
3926
3927 case 358:
3928 #line 1200 "util/configparser.y"
3929 {
4496 #line 4498 "util/configparser.c"
4497 break;
4498
4499 case 364:
4500 #line 1206 "util/configparser.y"
4501 {
39304502 OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
39314503 log_warn("option dlv-anchor ignored: DLV is decommissioned");
39324504 free((yyvsp[0].str));
39334505 }
3934 #line 3936 "util/configparser.c"
3935 break;
3936
3937 case 359:
3938 #line 1207 "util/configparser.y"
3939 {
4506 #line 4508 "util/configparser.c"
4507 break;
4508
4509 case 365:
4510 #line 1213 "util/configparser.y"
4511 {
39404512 OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
39414513 if(!cfg_strlist_insert(&cfg_parser->cfg->
39424514 auto_trust_anchor_file_list, (yyvsp[0].str)))
39434515 yyerror("out of memory");
39444516 }
3945 #line 3947 "util/configparser.c"
3946 break;
3947
3948 case 360:
3949 #line 1215 "util/configparser.y"
3950 {
4517 #line 4519 "util/configparser.c"
4518 break;
4519
4520 case 366:
4521 #line 1221 "util/configparser.y"
4522 {
39514523 OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
39524524 if(!cfg_strlist_insert(&cfg_parser->cfg->
39534525 trust_anchor_file_list, (yyvsp[0].str)))
39544526 yyerror("out of memory");
39554527 }
3956 #line 3958 "util/configparser.c"
3957 break;
3958
3959 case 361:
3960 #line 1223 "util/configparser.y"
3961 {
4528 #line 4530 "util/configparser.c"
4529 break;
4530
4531 case 367:
4532 #line 1229 "util/configparser.y"
4533 {
39624534 OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
39634535 if(!cfg_strlist_insert(&cfg_parser->cfg->
39644536 trusted_keys_file_list, (yyvsp[0].str)))
39654537 yyerror("out of memory");
39664538 }
3967 #line 3969 "util/configparser.c"
3968 break;
3969
3970 case 362:
3971 #line 1231 "util/configparser.y"
3972 {
4539 #line 4541 "util/configparser.c"
4540 break;
4541
4542 case 368:
4543 #line 1237 "util/configparser.y"
4544 {
39734545 OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str)));
39744546 if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
39754547 yyerror("out of memory");
39764548 }
3977 #line 3979 "util/configparser.c"
3978 break;
3979
3980 case 363:
3981 #line 1238 "util/configparser.y"
3982 {
4549 #line 4551 "util/configparser.c"
4550 break;
4551
4552 case 369:
4553 #line 1244 "util/configparser.y"
4554 {
39834555 OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str)));
39844556 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
39854557 yyerror("expected yes or no.");
39884560 (strcmp((yyvsp[0].str), "yes")==0);
39894561 free((yyvsp[0].str));
39904562 }
3991 #line 3993 "util/configparser.c"
3992 break;
3993
3994 case 364:
3995 #line 1249 "util/configparser.y"
3996 {
4563 #line 4565 "util/configparser.c"
4564 break;
4565
4566 case 370:
4567 #line 1255 "util/configparser.y"
4568 {
39974569 OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str)));
39984570 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
39994571 yyerror("expected yes or no.");
40024574 (strcmp((yyvsp[0].str), "yes")==0);
40034575 free((yyvsp[0].str));
40044576 }
4005 #line 4007 "util/configparser.c"
4006 break;
4007
4008 case 365:
4009 #line 1260 "util/configparser.y"
4010 {
4577 #line 4579 "util/configparser.c"
4578 break;
4579
4580 case 371:
4581 #line 1266 "util/configparser.y"
4582 {
40114583 OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str)));
40124584 if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
40134585 yyerror("out of memory");
40144586 }
4015 #line 4017 "util/configparser.c"
4016 break;
4017
4018 case 366:
4019 #line 1267 "util/configparser.y"
4020 {
4587 #line 4589 "util/configparser.c"
4588 break;
4589
4590 case 372:
4591 #line 1273 "util/configparser.y"
4592 {
40214593 OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
40224594 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
40234595 yyerror("expected yes or no.");
40244596 else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
40254597 free((yyvsp[0].str));
40264598 }
4027 #line 4029 "util/configparser.c"
4028 break;
4029
4030 case 367:
4031 #line 1276 "util/configparser.y"
4032 {
4599 #line 4601 "util/configparser.c"
4600 break;
4601
4602 case 373:
4603 #line 1282 "util/configparser.y"
4604 {
40334605 OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
40344606 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
40354607 yyerror("expected yes or no.");
40364608 else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
40374609 free((yyvsp[0].str));
40384610 }
4039 #line 4041 "util/configparser.c"
4040 break;
4041
4042 case 368:
4043 #line 1285 "util/configparser.y"
4044 {
4611 #line 4613 "util/configparser.c"
4612 break;
4613
4614 case 374:
4615 #line 1291 "util/configparser.y"
4616 {
40454617 OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str)));
40464618 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
40474619 yyerror("expected yes or no.");
40484620 else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
40494621 free((yyvsp[0].str));
40504622 }
4051 #line 4053 "util/configparser.c"
4052 break;
4053
4054 case 369:
4055 #line 1294 "util/configparser.y"
4056 {
4623 #line 4625 "util/configparser.c"
4624 break;
4625
4626 case 375:
4627 #line 1300 "util/configparser.y"
4628 {
40574629 OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
40584630 free(cfg_parser->cfg->identity);
40594631 cfg_parser->cfg->identity = (yyvsp[0].str);
40604632 }
4061 #line 4063 "util/configparser.c"
4062 break;
4063
4064 case 370:
4065 #line 1301 "util/configparser.y"
4066 {
4633 #line 4635 "util/configparser.c"
4634 break;
4635
4636 case 376:
4637 #line 1307 "util/configparser.y"
4638 {
40674639 OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
40684640 free(cfg_parser->cfg->version);
40694641 cfg_parser->cfg->version = (yyvsp[0].str);
40704642 }
4071 #line 4073 "util/configparser.c"
4072 break;
4073
4074 case 371:
4075 #line 1308 "util/configparser.y"
4076 {
4643 #line 4645 "util/configparser.c"
4644 break;
4645
4646 case 377:
4647 #line 1314 "util/configparser.y"
4648 {
4649 OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str)));
4650 free(cfg_parser->cfg->nsid_cfg_str);
4651 cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str);
4652 free(cfg_parser->cfg->nsid);
4653 cfg_parser->cfg->nsid = NULL;
4654 cfg_parser->cfg->nsid_len = 0;
4655 if (*(yyvsp[0].str) == 0)
4656 ; /* pass; empty string is not setting nsid */
4657 else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid(
4658 (yyvsp[0].str), &cfg_parser->cfg->nsid_len)))
4659 yyerror("the NSID must be either a hex string or an "
4660 "ascii character string prepended with ascii_.");
4661 }
4662 #line 4664 "util/configparser.c"
4663 break;
4664
4665 case 378:
4666 #line 1330 "util/configparser.y"
4667 {
40774668 OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
40784669 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
40794670 yyerror("buffer size expected");
40804671 free((yyvsp[0].str));
40814672 }
4082 #line 4084 "util/configparser.c"
4083 break;
4084
4085 case 372:
4086 #line 1316 "util/configparser.y"
4087 {
4673 #line 4675 "util/configparser.c"
4674 break;
4675
4676 case 379:
4677 #line 1338 "util/configparser.y"
4678 {
40884679 OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
40894680 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
40904681 yyerror("buffer size expected");
40914682 free((yyvsp[0].str));
40924683 }
4093 #line 4095 "util/configparser.c"
4094 break;
4095
4096 case 373:
4097 #line 1324 "util/configparser.y"
4684 #line 4686 "util/configparser.c"
4685 break;
4686
4687 case 380:
4688 #line 1346 "util/configparser.y"
40984689 {
40994690 OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
41004691 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
41034694 (strcmp((yyvsp[0].str), "yes")==0);
41044695 free((yyvsp[0].str));
41054696 }
4106 #line 4108 "util/configparser.c"
4107 break;
4108
4109 case 374:
4110 #line 1334 "util/configparser.y"
4697 #line 4699 "util/configparser.c"
4698 break;
4699
4700 case 381:
4701 #line 1356 "util/configparser.y"
41114702 {
41124703 OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
41134704 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
41164707 (strcmp((yyvsp[0].str), "yes")==0);
41174708 free((yyvsp[0].str));
41184709 }
4119 #line 4121 "util/configparser.c"
4120 break;
4121
4122 case 375:
4123 #line 1344 "util/configparser.y"
4710 #line 4712 "util/configparser.c"
4711 break;
4712
4713 case 382:
4714 #line 1366 "util/configparser.y"
41244715 {
41254716 OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
41264717 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
41294720 (strcmp((yyvsp[0].str), "yes")==0);
41304721 free((yyvsp[0].str));
41314722 }
4132 #line 4134 "util/configparser.c"
4133 break;
4134
4135 case 376:
4136 #line 1354 "util/configparser.y"
4137 {
4723 #line 4725 "util/configparser.c"
4724 break;
4725
4726 case 383:
4727 #line 1376 "util/configparser.y"
4728 {
41384729 OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str)));
41394730 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
41404731 yyerror("number expected");
41464737 cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str));
41474738 free((yyvsp[0].str));
41484739 }
4149 #line 4151 "util/configparser.c"
4150 break;
4151
4152 case 377:
4153 #line 1368 "util/configparser.y"
4154 {
4740 #line 4742 "util/configparser.c"
4741 break;
4742
4743 case 384:
4744 #line 1390 "util/configparser.y"
4745 {
41554746 OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str)));
41564747 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size))
41574748 yyerror("memory size expected");
41584749 free((yyvsp[0].str));
41594750 }
4160 #line 4162 "util/configparser.c"
4161 break;
4162
4163 case 378:
4164 #line 1376 "util/configparser.y"
4165 {
4751 #line 4753 "util/configparser.c"
4752 break;
4753
4754 case 385:
4755 #line 1398 "util/configparser.y"
4756 {
41664757 OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
41674758 if(atoi((yyvsp[0].str)) == 0)
41684759 yyerror("number expected");
41734764 else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
41744765 free((yyvsp[0].str));
41754766 }
4176 #line 4178 "util/configparser.c"
4177 break;
4178
4179 case 379:
4180 #line 1389 "util/configparser.y"
4181 {
4767 #line 4769 "util/configparser.c"
4768 break;
4769
4770 case 386:
4771 #line 1411 "util/configparser.y"
4772 {
41824773 OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
41834774 if(atoi((yyvsp[0].str)) == 0)
41844775 yyerror("number expected");
41874778 else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
41884779 free((yyvsp[0].str));
41894780 }
4190 #line 4192 "util/configparser.c"
4191 break;
4192
4193 case 380:
4194 #line 1400 "util/configparser.y"
4195 {
4781 #line 4783 "util/configparser.c"
4782 break;
4783
4784 case 387:
4785 #line 1422 "util/configparser.y"
4786 {
41964787 OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
41974788 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
41984789 yyerror("memory size expected");
41994790 free((yyvsp[0].str));
42004791 }
4201 #line 4203 "util/configparser.c"
4202 break;
4203
4204 case 381:
4205 #line 1408 "util/configparser.y"
4206 {
4792 #line 4794 "util/configparser.c"
4793 break;
4794
4795 case 388:
4796 #line 1430 "util/configparser.y"
4797 {
42074798 OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
42084799 if(atoi((yyvsp[0].str)) == 0)
42094800 yyerror("number expected");
42144805 }
42154806 free((yyvsp[0].str));
42164807 }
4217 #line 4219 "util/configparser.c"
4218 break;
4219
4220 case 382:
4221 #line 1421 "util/configparser.y"
4222 {
4808 #line 4810 "util/configparser.c"
4809 break;
4810
4811 case 389:
4812 #line 1443 "util/configparser.y"
4813 {
42234814 OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
42244815 if(atoi((yyvsp[0].str)) == 0)
42254816 yyerror("number expected");
42264817 else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
42274818 free((yyvsp[0].str));
42284819 }
4229 #line 4231 "util/configparser.c"
4230 break;
4231
4232 case 383:
4233 #line 1430 "util/configparser.y"
4234 {
4820 #line 4822 "util/configparser.c"
4821 break;
4822
4823 case 390:
4824 #line 1452 "util/configparser.y"
4825 {
42354826 OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
42364827 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
42374828 yyerror("number expected");
42384829 else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
42394830 free((yyvsp[0].str));
42404831 }
4241 #line 4243 "util/configparser.c"
4242 break;
4243
4244 case 384:
4245 #line 1439 "util/configparser.y"
4246 {
4832 #line 4834 "util/configparser.c"
4833 break;
4834
4835 case 391:
4836 #line 1461 "util/configparser.y"
4837 {
42474838 OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
42484839 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
42494840 yyerror("number expected");
42504841 else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
42514842 free((yyvsp[0].str));
42524843 }
4253 #line 4255 "util/configparser.c"
4254 break;
4255
4256 case 385:
4257 #line 1448 "util/configparser.y"
4258 {
4844 #line 4846 "util/configparser.c"
4845 break;
4846
4847 case 392:
4848 #line 1470 "util/configparser.y"
4849 {
42594850 OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str)));
42604851 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
42614852 yyerror("expected yes or no.");
42624853 else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0);
42634854 free((yyvsp[0].str));
42644855 }
4265 #line 4267 "util/configparser.c"
4266 break;
4267
4268 case 386:
4269 #line 1457 "util/configparser.y"
4270 {
4856 #line 4858 "util/configparser.c"
4857 break;
4858
4859 case 393:
4860 #line 1479 "util/configparser.y"
4861 {
42714862 OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
42724863 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
42734864 yyerror("expected yes or no.");
42754866 (strcmp((yyvsp[0].str), "yes")==0);
42764867 free((yyvsp[0].str));
42774868 }
4278 #line 4280 "util/configparser.c"
4279 break;
4280
4281 case 387:
4282 #line 1467 "util/configparser.y"
4283 {
4869 #line 4871 "util/configparser.c"
4870 break;
4871
4872 case 394:
4873 #line 1489 "util/configparser.y"
4874 {
42844875 OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
42854876 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
42864877 yyerror("expected yes or no.");
42884879 (strcmp((yyvsp[0].str), "yes")==0);
42894880 free((yyvsp[0].str));
42904881 }
4291 #line 4293 "util/configparser.c"
4292 break;
4293
4294 case 388:
4295 #line 1477 "util/configparser.y"
4296 {
4882 #line 4884 "util/configparser.c"
4883 break;
4884
4885 case 395:
4886 #line 1499 "util/configparser.y"
4887 {
42974888 OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
42984889 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
42994890 yyerror("memory size expected");
43004891 free((yyvsp[0].str));
43014892 }
4302 #line 4304 "util/configparser.c"
4303 break;
4304
4305 case 389:
4306 #line 1485 "util/configparser.y"
4307 {
4893 #line 4895 "util/configparser.c"
4894 break;
4895
4896 case 396:
4897 #line 1507 "util/configparser.y"
4898 {
43084899 OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
43094900 if(atoi((yyvsp[0].str)) == 0)
43104901 yyerror("number expected");
43154906 }
43164907 free((yyvsp[0].str));
43174908 }
4318 #line 4320 "util/configparser.c"
4319 break;
4320
4321 case 390:
4322 #line 1498 "util/configparser.y"
4323 {
4909 #line 4911 "util/configparser.c"
4910 break;
4911
4912 case 397:
4913 #line 1520 "util/configparser.y"
4914 {
43244915 OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
43254916 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
43264917 yyerror("number expected");
43274918 else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
43284919 free((yyvsp[0].str));
43294920 }
4330 #line 4332 "util/configparser.c"
4331 break;
4332
4333 case 391:
4334 #line 1507 "util/configparser.y"
4335 {
4921 #line 4923 "util/configparser.c"
4922 break;
4923
4924 case 398:
4925 #line 1529 "util/configparser.y"
4926 {
43364927 OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
43374928 verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
43384929 "removed, use infra-host-ttl)", (yyvsp[0].str));
43394930 free((yyvsp[0].str));
43404931 }
4341 #line 4343 "util/configparser.c"
4342 break;
4343
4344 case 392:
4345 #line 1515 "util/configparser.y"
4346 {
4932 #line 4934 "util/configparser.c"
4933 break;
4934
4935 case 399:
4936 #line 1537 "util/configparser.y"
4937 {
43474938 OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
43484939 if(atoi((yyvsp[0].str)) == 0)
43494940 yyerror("number expected");
43504941 else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
43514942 free((yyvsp[0].str));
43524943 }
4353 #line 4355 "util/configparser.c"
4354 break;
4355
4356 case 393:
4357 #line 1524 "util/configparser.y"
4358 {
4944 #line 4946 "util/configparser.c"
4945 break;
4946
4947 case 400:
4948 #line 1546 "util/configparser.y"
4949 {
43594950 OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
43604951 verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
43614952 "(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
43624953 free((yyvsp[0].str));
43634954 }
4364 #line 4366 "util/configparser.c"
4365 break;
4366
4367 case 394:
4368 #line 1532 "util/configparser.y"
4369 {
4955 #line 4957 "util/configparser.c"
4956 break;
4957
4958 case 401:
4959 #line 1554 "util/configparser.y"
4960 {
43704961 OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
43714962 if(atoi((yyvsp[0].str)) == 0)
43724963 yyerror("number expected");
43774968 }
43784969 free((yyvsp[0].str));
43794970 }
4380 #line 4382 "util/configparser.c"
4381 break;
4382
4383 case 395:
4384 #line 1545 "util/configparser.y"
4385 {
4971 #line 4973 "util/configparser.c"
4972 break;
4973
4974 case 402:
4975 #line 1567 "util/configparser.y"
4976 {
43864977 OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
43874978 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
43884979 yyerror("number expected");
43894980 else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
43904981 free((yyvsp[0].str));
43914982 }
4392 #line 4394 "util/configparser.c"
4393 break;
4394
4395 case 396:
4396 #line 1554 "util/configparser.y"
4397 {
4983 #line 4985 "util/configparser.c"
4984 break;
4985
4986 case 403:
4987 #line 1576 "util/configparser.y"
4988 {
43984989 OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str)));
43994990 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
44004991 yyerror("expected yes or no.");
44024993 (strcmp((yyvsp[0].str), "yes")==0);
44034994 free((yyvsp[0].str));
44044995 }
4405 #line 4407 "util/configparser.c"
4406 break;
4407
4408 case 397:
4409 #line 1564 "util/configparser.y"
4410 {
4996 #line 4998 "util/configparser.c"
4997 break;
4998
4999 case 404:
5000 #line 1586 "util/configparser.y"
5001 {
44115002 OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str)));
44125003 free(cfg_parser->cfg->target_fetch_policy);
44135004 cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
44145005 }
4415 #line 4417 "util/configparser.c"
4416 break;
4417
4418 case 398:
4419 #line 1571 "util/configparser.y"
4420 {
5006 #line 5008 "util/configparser.c"
5007 break;
5008
5009 case 405:
5010 #line 1593 "util/configparser.y"
5011 {
44215012 OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
44225013 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
44235014 yyerror("expected yes or no.");
44255016 (strcmp((yyvsp[0].str), "yes")==0);
44265017 free((yyvsp[0].str));
44275018 }
4428 #line 4430 "util/configparser.c"
4429 break;
4430
4431 case 399:
4432 #line 1581 "util/configparser.y"
4433 {
5019 #line 5021 "util/configparser.c"
5020 break;
5021
5022 case 406:
5023 #line 1603 "util/configparser.y"
5024 {
44345025 OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
44355026 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
44365027 yyerror("expected yes or no.");
44385029 (strcmp((yyvsp[0].str), "yes")==0);
44395030 free((yyvsp[0].str));
44405031 }
4441 #line 4443 "util/configparser.c"
4442 break;
4443
4444 case 400:
4445 #line 1591 "util/configparser.y"
4446 {
5032 #line 5034 "util/configparser.c"
5033 break;
5034
5035 case 407:
5036 #line 1613 "util/configparser.y"
5037 {
44475038 OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
44485039 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
44495040 yyerror("expected yes or no.");
44515042 (strcmp((yyvsp[0].str), "yes")==0);
44525043 free((yyvsp[0].str));
44535044 }
4454 #line 4456 "util/configparser.c"
4455 break;
4456
4457 case 401:
4458 #line 1601 "util/configparser.y"
4459 {
5045 #line 5047 "util/configparser.c"
5046 break;
5047
5048 case 408:
5049 #line 1623 "util/configparser.y"
5050 {
44605051 OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
44615052 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
44625053 yyerror("expected yes or no.");
44645055 (strcmp((yyvsp[0].str), "yes")==0);
44655056 free((yyvsp[0].str));
44665057 }
4467 #line 4469 "util/configparser.c"
4468 break;
4469
4470 case 402:
4471 #line 1611 "util/configparser.y"
4472 {
5058 #line 5060 "util/configparser.c"
5059 break;
5060
5061 case 409:
5062 #line 1633 "util/configparser.y"
5063 {
44735064 OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
44745065 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
44755066 yyerror("expected yes or no.");
44775068 (strcmp((yyvsp[0].str), "yes")==0);
44785069 free((yyvsp[0].str));
44795070 }
4480 #line 4482 "util/configparser.c"
4481 break;
4482
4483 case 403:
4484 #line 1621 "util/configparser.y"
4485 {
5071 #line 5073 "util/configparser.c"
5072 break;
5073
5074 case 410:
5075 #line 1643 "util/configparser.y"
5076 {
44865077 OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
44875078 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
44885079 yyerror("expected yes or no.");
44905081 (strcmp((yyvsp[0].str), "yes")==0);
44915082 free((yyvsp[0].str));
44925083 }
4493 #line 4495 "util/configparser.c"
4494 break;
4495
4496 case 404:
4497 #line 1631 "util/configparser.y"
4498 {
5084 #line 5086 "util/configparser.c"
5085 break;
5086
5087 case 411:
5088 #line 1653 "util/configparser.y"
5089 {
44995090 OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
45005091 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
45015092 yyerror("expected yes or no.");
45035094 (strcmp((yyvsp[0].str), "yes")==0);
45045095 free((yyvsp[0].str));
45055096 }
4506 #line 4508 "util/configparser.c"
4507 break;
4508
4509 case 405:
4510 #line 1641 "util/configparser.y"
4511 {
5097 #line 5099 "util/configparser.c"
5098 break;
5099
5100 case 412:
5101 #line 1663 "util/configparser.y"
5102 {
45125103 OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str)));
45135104 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
45145105 yyerror("expected yes or no.");
45165107 (strcmp((yyvsp[0].str), "yes")==0);
45175108 free((yyvsp[0].str));
45185109 }
4519 #line 4521 "util/configparser.c"
4520 break;
4521
4522 case 406:
4523 #line 1651 "util/configparser.y"
4524 {
5110 #line 5112 "util/configparser.c"
5111 break;
5112
5113 case 413:
5114 #line 1673 "util/configparser.y"
5115 {
45255116 OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str)));
45265117 if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
45275118 yyerror("out of memory");
45285119 }
4529 #line 4531 "util/configparser.c"
4530 break;
4531
4532 case 407:
4533 #line 1658 "util/configparser.y"
4534 {
5120 #line 5122 "util/configparser.c"
5121 break;
5122
5123 case 414:
5124 #line 1680 "util/configparser.y"
5125 {
45355126 OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str)));
45365127 if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
45375128 yyerror("out of memory");
45385129 }
4539 #line 4541 "util/configparser.c"
4540 break;
4541
4542 case 408:
4543 #line 1665 "util/configparser.y"
4544 {
5130 #line 5132 "util/configparser.c"
5131 break;
5132
5133 case 415:
5134 #line 1687 "util/configparser.y"
5135 {
45455136 OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str)));
45465137 if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
45475138 yyerror("out of memory");
45485139 }
4549 #line 4551 "util/configparser.c"
4550 break;
4551
4552 case 409:
4553 #line 1672 "util/configparser.y"
4554 {
5140 #line 5142 "util/configparser.c"
5141 break;
5142
5143 case 416:
5144 #line 1694 "util/configparser.y"
5145 {
45555146 OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
45565147 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
45575148 yyerror("expected yes or no.");
45585149 else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
45595150 free((yyvsp[0].str));
45605151 }
4561 #line 4563 "util/configparser.c"
4562 break;
4563
4564 case 410:
4565 #line 1681 "util/configparser.y"
4566 {
5152 #line 5154 "util/configparser.c"
5153 break;
5154
5155 case 417:
5156 #line 1703 "util/configparser.y"
5157 {
45675158 OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
45685159 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
45695160 yyerror("expected yes or no.");
45705161 else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
45715162 free((yyvsp[0].str));
45725163 }
4573 #line 4575 "util/configparser.c"
4574 break;
4575
4576 case 411:
4577 #line 1690 "util/configparser.y"
4578 {
5164 #line 5166 "util/configparser.c"
5165 break;
5166
5167 case 418:
5168 #line 1712 "util/configparser.y"
5169 {
45795170 OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str)));
45805171 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
45815172 yyerror("expected yes or no.");
45825173 else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0);
45835174 free((yyvsp[0].str));
45845175 }
4585 #line 4587 "util/configparser.c"
4586 break;
4587
4588 case 412:
4589 #line 1699 "util/configparser.y"
4590 {
5176 #line 5178 "util/configparser.c"
5177 break;
5178
5179 case 419:
5180 #line 1721 "util/configparser.y"
5181 {
45915182 OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
45925183 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
45935184 yyerror("number expected");
45945185 else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
45955186 free((yyvsp[0].str));
45965187 }
4597 #line 4599 "util/configparser.c"
4598 break;
4599
4600 case 413:
4601 #line 1708 "util/configparser.y"
4602 {
5188 #line 5190 "util/configparser.c"
5189 break;
5190
5191 case 420:
5192 #line 1730 "util/configparser.y"
5193 {
46035194 OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str)));
46045195 if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
46055196 yyerror("out of memory");
46065197 }
4607 #line 4609 "util/configparser.c"
4608 break;
4609
4610 case 414:
4611 #line 1715 "util/configparser.y"
4612 {
5198 #line 5200 "util/configparser.c"
5199 break;
5200
5201 case 421:
5202 #line 1737 "util/configparser.y"
5203 {
46135204 OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str)));
46145205 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
46155206 yyerror("expected yes or no.");
46175208 (strcmp((yyvsp[0].str), "yes")==0);
46185209 free((yyvsp[0].str));
46195210 }
4620 #line 4622 "util/configparser.c"
4621 break;
4622
4623 case 415:
4624 #line 1725 "util/configparser.y"
4625 {
5211 #line 5213 "util/configparser.c"
5212 break;
5213
5214 case 422:
5215 #line 1747 "util/configparser.y"
5216 {
46265217 OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
46275218 if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 &&
46285219 strcmp((yyvsp[0].str), "deny_non_local")!=0 &&
46405231 fatal_exit("out of memory adding acl");
46415232 }
46425233 }
4643 #line 4645 "util/configparser.c"
4644 break;
4645
4646 case 416:
4647 #line 1745 "util/configparser.y"
4648 {
5234 #line 5236 "util/configparser.c"
5235 break;
5236
5237 case 423:
5238 #line 1767 "util/configparser.y"
5239 {
46495240 OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str)));
46505241 free(cfg_parser->cfg->module_conf);
46515242 cfg_parser->cfg->module_conf = (yyvsp[0].str);
46525243 }
4653 #line 4655 "util/configparser.c"
4654 break;
4655
4656 case 417:
4657 #line 1752 "util/configparser.y"
4658 {
5244 #line 5246 "util/configparser.c"
5245 break;
5246
5247 case 424:
5248 #line 1774 "util/configparser.y"
5249 {
46595250 OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
46605251 if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
46615252 cfg_parser->cfg->val_date_override = 0;
46715262 }
46725263 free((yyvsp[0].str));
46735264 }
4674 #line 4676 "util/configparser.c"
4675 break;
4676
4677 case 418:
4678 #line 1770 "util/configparser.y"
4679 {
5265 #line 5267 "util/configparser.c"
5266 break;
5267
5268 case 425:
5269 #line 1792 "util/configparser.y"
5270 {
46805271 OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
46815272 if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
46825273 cfg_parser->cfg->val_sig_skew_min = 0;
46875278 }
46885279 free((yyvsp[0].str));
46895280 }
4690 #line 4692 "util/configparser.c"
4691 break;
4692
4693 case 419:
4694 #line 1783 "util/configparser.y"
4695 {
5281 #line 5283 "util/configparser.c"
5282 break;
5283
5284 case 426:
5285 #line 1805 "util/configparser.y"
5286 {
46965287 OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
46975288 if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
46985289 cfg_parser->cfg->val_sig_skew_max = 0;
47035294 }
47045295 free((yyvsp[0].str));
47055296 }
4706 #line 4708 "util/configparser.c"
4707 break;
4708
4709 case 420:
4710 #line 1796 "util/configparser.y"
4711 {
5297 #line 5299 "util/configparser.c"
5298 break;
5299
5300 case 427:
5301 #line 1818 "util/configparser.y"
5302 {
47125303 OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
47135304 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
47145305 yyerror("number expected");
47155306 else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
47165307 free((yyvsp[0].str));
47175308 }
4718 #line 4720 "util/configparser.c"
4719 break;
4720
4721 case 421:
4722 #line 1805 "util/configparser.y"
4723 {
5309 #line 5311 "util/configparser.c"
5310 break;
5311
5312 case 428:
5313 #line 1827 "util/configparser.y"
5314 {
47245315 OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
47255316 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
47265317 yyerror("number expected");
47275318 else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
47285319 free((yyvsp[0].str));
47295320 }
4730 #line 4732 "util/configparser.c"
4731 break;
4732
4733 case 422:
4734 #line 1814 "util/configparser.y"
4735 {
5321 #line 5323 "util/configparser.c"
5322 break;
5323
5324 case 429:
5325 #line 1836 "util/configparser.y"
5326 {
47365327 OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
47375328 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
47385329 yyerror("number expected");
47395330 else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
47405331 free((yyvsp[0].str));
47415332 }
4742 #line 4744 "util/configparser.c"
4743 break;
4744
4745 case 423:
4746 #line 1823 "util/configparser.y"
4747 {
5333 #line 5335 "util/configparser.c"
5334 break;
5335
5336 case 430:
5337 #line 1845 "util/configparser.y"
5338 {
47485339 OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
47495340 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
47505341 yyerror("number expected");
47515342 else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
47525343 free((yyvsp[0].str));
47535344 }
4754 #line 4756 "util/configparser.c"
4755 break;
4756
4757 case 424:
4758 #line 1832 "util/configparser.y"
4759 {
5345 #line 5347 "util/configparser.c"
5346 break;
5347
5348 case 431:
5349 #line 1854 "util/configparser.y"
5350 {
47605351 OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
47615352 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
47625353 yyerror("expected yes or no.");
47645355 (strcmp((yyvsp[0].str), "yes")==0);
47655356 free((yyvsp[0].str));
47665357 }
4767 #line 4769 "util/configparser.c"
4768 break;
4769
4770 case 425:
4771 #line 1842 "util/configparser.y"
4772 {
5358 #line 5360 "util/configparser.c"
5359 break;
5360
5361 case 432:
5362 #line 1864 "util/configparser.y"
5363 {
47735364 OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
47745365 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
47755366 yyerror("expected yes or no.");
47775368 (strcmp((yyvsp[0].str), "yes")==0);
47785369 free((yyvsp[0].str));
47795370 }
4780 #line 4782 "util/configparser.c"
4781 break;
4782
4783 case 426:
4784 #line 1852 "util/configparser.y"
4785 {
5371 #line 5373 "util/configparser.c"
5372 break;
5373
5374 case 433:
5375 #line 1874 "util/configparser.y"
5376 {
47865377 OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str)));
47875378 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
47885379 yyerror("expected yes or no.");
47915382 (strcmp((yyvsp[0].str), "yes")==0);
47925383 free((yyvsp[0].str));
47935384 }
4794 #line 4796 "util/configparser.c"
4795 break;
4796
4797 case 427:
4798 #line 1863 "util/configparser.y"
4799 {
5385 #line 5387 "util/configparser.c"
5386 break;
5387
5388 case 434:
5389 #line 1885 "util/configparser.y"
5390 {
48005391 OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
48015392 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
48025393 yyerror("expected yes or no.");
48035394 else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
48045395 free((yyvsp[0].str));
48055396 }
4806 #line 4808 "util/configparser.c"
4807 break;
4808
4809 case 428:
4810 #line 1872 "util/configparser.y"
4811 {
5397 #line 5399 "util/configparser.c"
5398 break;
5399
5400 case 435:
5401 #line 1894 "util/configparser.y"
5402 {
48125403 OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
48135404 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
48145405 yyerror("expected yes or no.");
48155406 else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
48165407 free((yyvsp[0].str));
48175408 }
4818 #line 4820 "util/configparser.c"
4819 break;
4820
4821 case 429:
4822 #line 1881 "util/configparser.y"
4823 {
5409 #line 5411 "util/configparser.c"
5410 break;
5411
5412 case 436:
5413 #line 1903 "util/configparser.y"
5414 {
48245415 OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str)));
48255416 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
48265417 yyerror("number expected");
48275418 else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str));
48285419 free((yyvsp[0].str));
48295420 }
4830 #line 4832 "util/configparser.c"
4831 break;
4832
4833 case 430:
4834 #line 1890 "util/configparser.y"
4835 {
5421 #line 5423 "util/configparser.c"
5422 break;
5423
5424 case 437:
5425 #line 1912 "util/configparser.y"
5426 {
48365427 OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str)));
48375428 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
48385429 yyerror("expected yes or no.");
48395430 else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0);
48405431 free((yyvsp[0].str));
48415432 }
4842 #line 4844 "util/configparser.c"
4843 break;
4844
4845 case 431:
4846 #line 1899 "util/configparser.y"
4847 {
5433 #line 5435 "util/configparser.c"
5434 break;
5435
5436 case 438:
5437 #line 1921 "util/configparser.y"
5438 {
48485439 OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str)));
48495440 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
48505441 yyerror("number expected");
48515442 else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str));
48525443 free((yyvsp[0].str));
48535444 }
4854 #line 4856 "util/configparser.c"
4855 break;
4856
4857 case 432:
4858 #line 1908 "util/configparser.y"
4859 {
5445 #line 5447 "util/configparser.c"
5446 break;
5447
5448 case 439:
5449 #line 1930 "util/configparser.y"
5450 {
48605451 OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str)));
48615452 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
48625453 yyerror("number expected");
48635454 else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str));
48645455 free((yyvsp[0].str));
48655456 }
4866 #line 4868 "util/configparser.c"
4867 break;
4868
4869 case 433:
4870 #line 1917 "util/configparser.y"
4871 {
5457 #line 5459 "util/configparser.c"
5458 break;
5459
5460 case 440:
5461 #line 1939 "util/configparser.y"
5462 {
5463 OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str)));
5464 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5465 yyerror("expected yes or no.");
5466 else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0);
5467 free((yyvsp[0].str));
5468 }
5469 #line 5471 "util/configparser.c"
5470 break;
5471
5472 case 441:
5473 #line 1948 "util/configparser.y"
5474 {
48725475 OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
48735476 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
48745477 yyerror("expected yes or no.");
48795482 #endif
48805483 free((yyvsp[0].str));
48815484 }
4882 #line 4884 "util/configparser.c"
4883 break;
4884
4885 case 434:
4886 #line 1930 "util/configparser.y"
4887 {
5485 #line 5487 "util/configparser.c"
5486 break;
5487
5488 case 442:
5489 #line 1961 "util/configparser.y"
5490 {
48885491 OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str)));
48895492 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
48905493 yyerror("expected yes or no.");
48955498 #endif
48965499 free((yyvsp[0].str));
48975500 }
4898 #line 4900 "util/configparser.c"
4899 break;
4900
4901 case 435:
4902 #line 1943 "util/configparser.y"
4903 {
5501 #line 5503 "util/configparser.c"
5502 break;
5503
5504 case 443:
5505 #line 1974 "util/configparser.y"
5506 {
49045507 OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
49055508 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
49065509 yyerror("number expected");
49075510 else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
49085511 free((yyvsp[0].str));
49095512 }
4910 #line 4912 "util/configparser.c"
4911 break;
4912
4913 case 436:
4914 #line 1952 "util/configparser.y"
4915 {
5513 #line 5515 "util/configparser.c"
5514 break;
5515
5516 case 444:
5517 #line 1983 "util/configparser.y"
5518 {
49165519 OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str)));
49175520 free(cfg_parser->cfg->val_nsec3_key_iterations);
49185521 cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
49195522 }
4920 #line 4922 "util/configparser.c"
4921 break;
4922
4923 case 437:
4924 #line 1959 "util/configparser.y"
4925 {
5523 #line 5525 "util/configparser.c"
5524 break;
5525
5526 case 445:
5527 #line 1990 "util/configparser.y"
5528 {
49265529 OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
49275530 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
49285531 yyerror("number expected");
49295532 else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
49305533 free((yyvsp[0].str));
49315534 }
4932 #line 4934 "util/configparser.c"
4933 break;
4934
4935 case 438:
4936 #line 1968 "util/configparser.y"
4937 {
5535 #line 5537 "util/configparser.c"
5536 break;
5537
5538 case 446:
5539 #line 1999 "util/configparser.y"
5540 {
49385541 OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
49395542 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
49405543 yyerror("number expected");
49415544 else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
49425545 free((yyvsp[0].str));
49435546 }
4944 #line 4946 "util/configparser.c"
4945 break;
4946
4947 case 439:
4948 #line 1977 "util/configparser.y"
4949 {
5547 #line 5549 "util/configparser.c"
5548 break;
5549
5550 case 447:
5551 #line 2008 "util/configparser.y"
5552 {
49505553 OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
49515554 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
49525555 yyerror("number expected");
49535556 else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
49545557 free((yyvsp[0].str));
49555558 }
4956 #line 4958 "util/configparser.c"
4957 break;
4958
4959 case 440:
4960 #line 1986 "util/configparser.y"
4961 {
5559 #line 5561 "util/configparser.c"
5560 break;
5561
5562 case 448:
5563 #line 2017 "util/configparser.y"
5564 {
49625565 OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
49635566 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
49645567 yyerror("expected yes or no.");
49665569 (strcmp((yyvsp[0].str), "yes")==0);
49675570 free((yyvsp[0].str));
49685571 }
4969 #line 4971 "util/configparser.c"
4970 break;
4971
4972 case 441:
4973 #line 1995 "util/configparser.y"
4974 {
5572 #line 5574 "util/configparser.c"
5573 break;
5574
5575 case 449:
5576 #line 2026 "util/configparser.y"
5577 {
49755578 OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str)));
49765579 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
49775580 yyerror("memory size expected");
49785581 free((yyvsp[0].str));
49795582 }
4980 #line 4982 "util/configparser.c"
4981 break;
4982
4983 case 442:
4984 #line 2003 "util/configparser.y"
4985 {
5583 #line 5585 "util/configparser.c"
5584 break;
5585
5586 case 450:
5587 #line 2034 "util/configparser.y"
5588 {
49865589 OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
49875590 if(atoi((yyvsp[0].str)) == 0)
49885591 yyerror("number expected");
49935596 }
49945597 free((yyvsp[0].str));
49955598 }
4996 #line 4998 "util/configparser.c"
4997 break;
4998
4999 case 443:
5000 #line 2016 "util/configparser.y"
5001 {
5599 #line 5601 "util/configparser.c"
5600 break;
5601
5602 case 451:
5603 #line 2047 "util/configparser.y"
5604 {
50025605 OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str)));
50035606 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
50045607 yyerror("memory size expected");
50055608 free((yyvsp[0].str));
50065609 }
5007 #line 5009 "util/configparser.c"
5008 break;
5009
5010 case 444:
5011 #line 2024 "util/configparser.y"
5012 {
5610 #line 5612 "util/configparser.c"
5611 break;
5612
5613 case 452:
5614 #line 2055 "util/configparser.y"
5615 {
50135616 OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
50145617 if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
50155618 strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 &&
50185621 && strcmp((yyvsp[0].str), "always_transparent")!=0
50195622 && strcmp((yyvsp[0].str), "always_refuse")!=0
50205623 && strcmp((yyvsp[0].str), "always_nxdomain")!=0
5624 && strcmp((yyvsp[0].str), "always_nodata")!=0
5625 && strcmp((yyvsp[0].str), "always_deny")!=0
5626 && strcmp((yyvsp[0].str), "always_null")!=0
50215627 && strcmp((yyvsp[0].str), "noview")!=0
50225628 && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0
50235629 && strcmp((yyvsp[0].str), "inform_redirect") != 0
50265632 "refuse, redirect, transparent, "
50275633 "typetransparent, inform, inform_deny, "
50285634 "inform_redirect, always_transparent, "
5029 "always_refuse, always_nxdomain, noview "
5030 ", nodefault or ipset");
5635 "always_refuse, always_nxdomain, "
5636 "always_nodata, always_deny, always_null, "
5637 "noview, nodefault or ipset");
50315638 free((yyvsp[-1].str));
50325639 free((yyvsp[0].str));
50335640 } else if(strcmp((yyvsp[0].str), "nodefault")==0) {
50485655 fatal_exit("out of memory adding local-zone");
50495656 }
50505657 }
5051 #line 5053 "util/configparser.c"
5052 break;
5053
5054 case 445:
5055 #line 2065 "util/configparser.y"
5056 {
5658 #line 5660 "util/configparser.c"
5659 break;
5660
5661 case 453:
5662 #line 2100 "util/configparser.y"
5663 {
50575664 OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str)));
50585665 if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
50595666 fatal_exit("out of memory adding local-data");
50605667 }
5061 #line 5063 "util/configparser.c"
5062 break;
5063
5064 case 446:
5065 #line 2072 "util/configparser.y"
5066 {
5668 #line 5670 "util/configparser.c"
5669 break;
5670
5671 case 454:
5672 #line 2107 "util/configparser.y"
5673 {
50675674 char* ptr;
50685675 OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
50695676 ptr = cfg_ptr_reverse((yyvsp[0].str));
50765683 yyerror("local-data-ptr could not be reversed");
50775684 }
50785685 }
5079 #line 5081 "util/configparser.c"
5080 break;
5081
5082 case 447:
5083 #line 2087 "util/configparser.y"
5084 {
5686 #line 5688 "util/configparser.c"
5687 break;
5688
5689 case 455:
5690 #line 2122 "util/configparser.y"
5691 {
50855692 OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
50865693 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
50875694 yyerror("expected yes or no.");
50895696 (strcmp((yyvsp[0].str), "yes")==0);
50905697 free((yyvsp[0].str));
50915698 }
5092 #line 5094 "util/configparser.c"
5093 break;
5094
5095 case 448:
5096 #line 2097 "util/configparser.y"
5097 {
5699 #line 5701 "util/configparser.c"
5700 break;
5701
5702 case 456:
5703 #line 2132 "util/configparser.y"
5704 {
50985705 OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
50995706 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
51005707 yyerror("expected yes or no.");
51025709 (strcmp((yyvsp[0].str), "yes")==0);
51035710 free((yyvsp[0].str));
51045711 }
5105 #line 5107 "util/configparser.c"
5106 break;
5107
5108 case 449:
5109 #line 2107 "util/configparser.y"
5110 {
5712 #line 5714 "util/configparser.c"
5713 break;
5714
5715 case 457:
5716 #line 2142 "util/configparser.y"
5717 {
51115718 OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str)));
51125719 cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str));
51135720 free((yyvsp[0].str));
51145721 }
5115 #line 5117 "util/configparser.c"
5116 break;
5117
5118 case 450:
5119 #line 2114 "util/configparser.y"
5120 {
5722 #line 5724 "util/configparser.c"
5723 break;
5724
5725 case 458:
5726 #line 2149 "util/configparser.y"
5727 {
51215728 OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str)));
51225729 cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
51235730 free((yyvsp[0].str));
51245731 }
5125 #line 5127 "util/configparser.c"
5126 break;
5127
5128 case 451:
5129 #line 2121 "util/configparser.y"
5130 {
5732 #line 5734 "util/configparser.c"
5733 break;
5734
5735 case 459:
5736 #line 2156 "util/configparser.y"
5737 {
51315738 OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
51325739 free(cfg_parser->cfg->dns64_prefix);
51335740 cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
51345741 }
5135 #line 5137 "util/configparser.c"
5136 break;
5137
5138 case 452:
5139 #line 2128 "util/configparser.y"
5140 {
5742 #line 5744 "util/configparser.c"
5743 break;
5744
5745 case 460:
5746 #line 2163 "util/configparser.y"
5747 {
51415748 OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
51425749 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
51435750 yyerror("expected yes or no.");
51445751 else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
51455752 free((yyvsp[0].str));
51465753 }
5147 #line 5149 "util/configparser.c"
5148 break;
5149
5150 case 453:
5151 #line 2137 "util/configparser.y"
5152 {
5754 #line 5756 "util/configparser.c"
5755 break;
5756
5757 case 461:
5758 #line 2172 "util/configparser.y"
5759 {
51535760 OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str)));
51545761 if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa,
51555762 (yyvsp[0].str)))
51565763 fatal_exit("out of memory adding dns64-ignore-aaaa");
51575764 }
5158 #line 5160 "util/configparser.c"
5159 break;
5160
5161 case 454:
5162 #line 2145 "util/configparser.y"
5163 {
5765 #line 5767 "util/configparser.c"
5766 break;
5767
5768 case 462:
5769 #line 2180 "util/configparser.y"
5770 {
51645771 char* p, *s = (yyvsp[0].str);
51655772 OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
51665773 while((p=strsep(&s, " \t\n")) != NULL) {
51725779 }
51735780 free((yyvsp[0].str));
51745781 }
5175 #line 5177 "util/configparser.c"
5176 break;
5177
5178 case 455:
5179 #line 2159 "util/configparser.y"
5180 {
5782 #line 5784 "util/configparser.c"
5783 break;
5784
5785 case 463:
5786 #line 2194 "util/configparser.y"
5787 {
51815788 size_t len = 0;
51825789 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
51835790 &len);
51965803 }
51975804 }
51985805 }
5199 #line 5201 "util/configparser.c"
5200 break;
5201
5202 case 456:
5203 #line 2180 "util/configparser.y"
5204 {
5806 #line 5808 "util/configparser.c"
5807 break;
5808
5809 case 464:
5810 #line 2215 "util/configparser.y"
5811 {
52055812 size_t len = 0;
52065813 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
52075814 &len);
52205827 }
52215828 }
52225829 }
5223 #line 5225 "util/configparser.c"
5224 break;
5225
5226 case 457:
5227 #line 2201 "util/configparser.y"
5228 {
5830 #line 5832 "util/configparser.c"
5831 break;
5832
5833 case 465:
5834 #line 2236 "util/configparser.y"
5835 {
52295836 OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
52305837 if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
52315838 (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
52355842 free((yyvsp[0].str));
52365843 }
52375844 }
5238 #line 5240 "util/configparser.c"
5239 break;
5240
5241 case 458:
5242 #line 2213 "util/configparser.y"
5243 {
5845 #line 5847 "util/configparser.c"
5846 break;
5847
5848 case 466:
5849 #line 2248 "util/configparser.y"
5850 {
52445851 OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
52455852 if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
52465853 (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
52505857 free((yyvsp[0].str));
52515858 }
52525859 }
5253 #line 5255 "util/configparser.c"
5254 break;
5255
5256 case 459:
5257 #line 2225 "util/configparser.y"
5258 {
5860 #line 5862 "util/configparser.c"
5861 break;
5862
5863 case 467:
5864 #line 2260 "util/configparser.y"
5865 {
52595866 OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
52605867 if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
52615868 (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
52655872 free((yyvsp[0].str));
52665873 }
52675874 }
5268 #line 5270 "util/configparser.c"
5269 break;
5270
5271 case 460:
5272 #line 2237 "util/configparser.y"
5273 {
5875 #line 5877 "util/configparser.c"
5876 break;
5877
5878 case 468:
5879 #line 2272 "util/configparser.y"
5880 {
52745881 OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
52755882 if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
52765883 (yyvsp[-1].str), (yyvsp[0].str))) {
52775884 yyerror("out of memory");
52785885 }
52795886 }
5280 #line 5282 "util/configparser.c"
5281 break;
5282
5283 case 461:
5284 #line 2246 "util/configparser.y"
5285 {
5887 #line 5889 "util/configparser.c"
5888 break;
5889
5890 case 469:
5891 #line 2281 "util/configparser.y"
5892 {
52865893 size_t len = 0;
52875894 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
52885895 &len);
53015908 }
53025909 }
53035910 }
5304 #line 5306 "util/configparser.c"
5305 break;
5306
5307 case 462:
5308 #line 2267 "util/configparser.y"
5309 {
5911 #line 5913 "util/configparser.c"
5912 break;
5913
5914 case 470:
5915 #line 2302 "util/configparser.y"
5916 {
53105917 OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str)));
53115918 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
53125919 yyerror("number expected");
53135920 else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
53145921 free((yyvsp[0].str));
53155922 }
5316 #line 5318 "util/configparser.c"
5317 break;
5318
5319 case 463:
5320 #line 2277 "util/configparser.y"
5321 {
5923 #line 5925 "util/configparser.c"
5924 break;
5925
5926 case 471:
5927 #line 2312 "util/configparser.y"
5928 {
53225929 OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str)));
53235930 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
53245931 yyerror("number expected");
53255932 else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
53265933 free((yyvsp[0].str));
53275934 }
5328 #line 5330 "util/configparser.c"
5329 break;
5330
5331 case 464:
5332 #line 2286 "util/configparser.y"
5333 {
5935 #line 5937 "util/configparser.c"
5936 break;
5937
5938 case 472:
5939 #line 2321 "util/configparser.y"
5940 {
53345941 OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str)));
53355942 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
53365943 yyerror("memory size expected");
53375944 free((yyvsp[0].str));
53385945 }
5339 #line 5341 "util/configparser.c"
5340 break;
5341
5342 case 465:
5343 #line 2294 "util/configparser.y"
5344 {
5946 #line 5948 "util/configparser.c"
5947 break;
5948
5949 case 473:
5950 #line 2329 "util/configparser.y"
5951 {
53455952 OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str)));
53465953 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
53475954 yyerror("memory size expected");
53485955 free((yyvsp[0].str));
53495956 }
5350 #line 5352 "util/configparser.c"
5351 break;
5352
5353 case 466:
5354 #line 2302 "util/configparser.y"
5355 {
5957 #line 5959 "util/configparser.c"
5958 break;
5959
5960 case 474:
5961 #line 2337 "util/configparser.y"
5962 {
53565963 OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
53575964 if(atoi((yyvsp[0].str)) == 0)
53585965 yyerror("number expected");
53635970 }
53645971 free((yyvsp[0].str));
53655972 }
5366 #line 5368 "util/configparser.c"
5367 break;
5368
5369 case 467:
5370 #line 2315 "util/configparser.y"
5371 {
5973 #line 5975 "util/configparser.c"
5974 break;
5975
5976 case 475:
5977 #line 2350 "util/configparser.y"
5978 {
53725979 OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
53735980 if(atoi((yyvsp[0].str)) == 0)
53745981 yyerror("number expected");
53795986 }
53805987 free((yyvsp[0].str));
53815988 }
5382 #line 5384 "util/configparser.c"
5383 break;
5384
5385 case 468:
5386 #line 2328 "util/configparser.y"
5387 {
5989 #line 5991 "util/configparser.c"
5990 break;
5991
5992 case 476:
5993 #line 2363 "util/configparser.y"
5994 {
53885995 OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
53895996 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
53905997 yyerror("number expected");
53976004 "ratelimit-for-domain");
53986005 }
53996006 }
5400 #line 5402 "util/configparser.c"
5401 break;
5402
5403 case 469:
5404 #line 2343 "util/configparser.y"
5405 {
6007 #line 6009 "util/configparser.c"
6008 break;
6009
6010 case 477:
6011 #line 2378 "util/configparser.y"
6012 {
54066013 OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
54076014 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
54086015 yyerror("number expected");
54156022 "ratelimit-below-domain");
54166023 }
54176024 }
5418 #line 5420 "util/configparser.c"
5419 break;
5420
5421 case 470:
5422 #line 2358 "util/configparser.y"
5423 {
6025 #line 6027 "util/configparser.c"
6026 break;
6027
6028 case 478:
6029 #line 2393 "util/configparser.y"
6030 {
54246031 OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str)));
54256032 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
54266033 yyerror("number expected");
54276034 else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
54286035 free((yyvsp[0].str));
54296036 }
5430 #line 5432 "util/configparser.c"
5431 break;
5432
5433 case 471:
5434 #line 2367 "util/configparser.y"
5435 {
6037 #line 6039 "util/configparser.c"
6038 break;
6039
6040 case 479:
6041 #line 2402 "util/configparser.y"
6042 {
54366043 OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str)));
54376044 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
54386045 yyerror("number expected");
54396046 else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
54406047 free((yyvsp[0].str));
54416048 }
5442 #line 5444 "util/configparser.c"
5443 break;
5444
5445 case 472:
5446 #line 2376 "util/configparser.y"
5447 {
6049 #line 6051 "util/configparser.c"
6050 break;
6051
6052 case 480:
6053 #line 2411 "util/configparser.y"
6054 {
54486055 OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n"));
54496056 free((yyvsp[0].str));
54506057 }
5451 #line 5453 "util/configparser.c"
5452 break;
5453
5454 case 473:
5455 #line 2382 "util/configparser.y"
5456 {
6058 #line 6060 "util/configparser.c"
6059 break;
6060
6061 case 481:
6062 #line 2417 "util/configparser.y"
6063 {
54576064 OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str)));
54586065 if(atoi((yyvsp[0].str)) <= 0)
54596066 yyerror("number expected");
54606067 else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str));
54616068 free((yyvsp[0].str));
54626069 }
5463 #line 5465 "util/configparser.c"
5464 break;
5465
5466 case 474:
5467 #line 2391 "util/configparser.y"
5468 {
6070 #line 6072 "util/configparser.c"
6071 break;
6072
6073 case 482:
6074 #line 2426 "util/configparser.y"
6075 {
54696076 OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str)));
54706077 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
54716078 yyerror("number expected");
54726079 else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str));
54736080 free((yyvsp[0].str));
54746081 }
5475 #line 5477 "util/configparser.c"
5476 break;
5477
5478 case 475:
5479 #line 2400 "util/configparser.y"
5480 {
6082 #line 6084 "util/configparser.c"
6083 break;
6084
6085 case 483:
6086 #line 2435 "util/configparser.y"
6087 {
54816088 OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
54826089 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
54836090 yyerror("expected yes or no.");
54856092 (strcmp((yyvsp[0].str), "yes")==0);
54866093 free((yyvsp[0].str));
54876094 }
5488 #line 5490 "util/configparser.c"
5489 break;
5490
5491 case 476:
5492 #line 2410 "util/configparser.y"
5493 {
6095 #line 6097 "util/configparser.c"
6096 break;
6097
6098 case 484:
6099 #line 2445 "util/configparser.y"
6100 {
54946101 OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
54956102 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
54966103 yyerror("expected yes or no.");
54986105 (strcmp((yyvsp[0].str), "yes")==0);
54996106 free((yyvsp[0].str));
55006107 }
5501 #line 5503 "util/configparser.c"
5502 break;
5503
5504 case 477:
5505 #line 2420 "util/configparser.y"
5506 {
6108 #line 6110 "util/configparser.c"
6109 break;
6110
6111 case 485:
6112 #line 2455 "util/configparser.y"
6113 {
6114 OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str)));
6115 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6116 yyerror("expected yes or no.");
6117 else cfg_parser->cfg->pad_responses =
6118 (strcmp((yyvsp[0].str), "yes")==0);
6119 free((yyvsp[0].str));
6120 }
6121 #line 6123 "util/configparser.c"
6122 break;
6123
6124 case 486:
6125 #line 2465 "util/configparser.y"
6126 {
6127 OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str)));
6128 if(atoi((yyvsp[0].str)) == 0)
6129 yyerror("number expected");
6130 else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str));
6131 free((yyvsp[0].str));
6132 }
6133 #line 6135 "util/configparser.c"
6134 break;
6135
6136 case 487:
6137 #line 2474 "util/configparser.y"
6138 {
6139 OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str)));
6140 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6141 yyerror("expected yes or no.");
6142 else cfg_parser->cfg->pad_queries =
6143 (strcmp((yyvsp[0].str), "yes")==0);
6144 free((yyvsp[0].str));
6145 }
6146 #line 6148 "util/configparser.c"
6147 break;
6148
6149 case 488:
6150 #line 2484 "util/configparser.y"
6151 {
6152 OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str)));
6153 if(atoi((yyvsp[0].str)) == 0)
6154 yyerror("number expected");
6155 else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str));
6156 free((yyvsp[0].str));
6157 }
6158 #line 6160 "util/configparser.c"
6159 break;
6160
6161 case 489:
6162 #line 2493 "util/configparser.y"
6163 {
55076164 #ifdef USE_IPSECMOD
55086165 OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str)));
55096166 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
55146171 #endif
55156172 free((yyvsp[0].str));
55166173 }
5517 #line 5519 "util/configparser.c"
5518 break;
5519
5520 case 478:
5521 #line 2433 "util/configparser.y"
5522 {
6174 #line 6176 "util/configparser.c"
6175 break;
6176
6177 case 490:
6178 #line 2506 "util/configparser.y"
6179 {
55236180 #ifdef USE_IPSECMOD
55246181 OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str)));
55256182 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
55306187 #endif
55316188 free((yyvsp[0].str));
55326189 }
5533 #line 5535 "util/configparser.c"
5534 break;
5535
5536 case 479:
5537 #line 2446 "util/configparser.y"
5538 {
6190 #line 6192 "util/configparser.c"
6191 break;
6192
6193 case 491:
6194 #line 2519 "util/configparser.y"
6195 {
55396196 #ifdef USE_IPSECMOD
55406197 OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str)));
55416198 free(cfg_parser->cfg->ipsecmod_hook);
55456202 free((yyvsp[0].str));
55466203 #endif
55476204 }
5548 #line 5550 "util/configparser.c"
5549 break;
5550
5551 case 480:
5552 #line 2458 "util/configparser.y"
5553 {
6205 #line 6207 "util/configparser.c"
6206 break;
6207
6208 case 492:
6209 #line 2531 "util/configparser.y"
6210 {
55546211 #ifdef USE_IPSECMOD
55556212 OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str)));
55566213 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
55626219 free((yyvsp[0].str));
55636220 #endif
55646221 }
5565 #line 5567 "util/configparser.c"
5566 break;
5567
5568 case 481:
5569 #line 2472 "util/configparser.y"
5570 {
6222 #line 6224 "util/configparser.c"
6223 break;
6224
6225 case 493:
6226 #line 2545 "util/configparser.y"
6227 {
55716228 #ifdef USE_IPSECMOD
55726229 OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str)));
55736230 if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str)))
55776234 free((yyvsp[0].str));
55786235 #endif
55796236 }
5580 #line 5582 "util/configparser.c"
5581 break;
5582
5583 case 482:
5584 #line 2484 "util/configparser.y"
5585 {
6237 #line 6239 "util/configparser.c"
6238 break;
6239
6240 case 494:
6241 #line 2557 "util/configparser.y"
6242 {
55866243 #ifdef USE_IPSECMOD
55876244 OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str)));
55886245 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
55946251 free((yyvsp[0].str));
55956252 #endif
55966253 }
5597 #line 5599 "util/configparser.c"
5598 break;
5599
5600 case 483:
5601 #line 2498 "util/configparser.y"
5602 {
6254 #line 6256 "util/configparser.c"
6255 break;
6256
6257 case 495:
6258 #line 2571 "util/configparser.y"
6259 {
56036260 OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
56046261 if(!cfg_str2list_insert(
56056262 &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str)))
56066263 fatal_exit("out of memory adding "
56076264 "edns-client-string");
56086265 }
5609 #line 5611 "util/configparser.c"
5610 break;
5611
5612 case 484:
5613 #line 2507 "util/configparser.y"
5614 {
6266 #line 6268 "util/configparser.c"
6267 break;
6268
6269 case 496:
6270 #line 2580 "util/configparser.y"
6271 {
56156272 OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str)));
56166273 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
56176274 yyerror("option code expected");
56216278 free((yyvsp[0].str));
56226279
56236280 }
5624 #line 5626 "util/configparser.c"
5625 break;
5626
5627 case 485:
5628 #line 2519 "util/configparser.y"
5629 {
6281 #line 6283 "util/configparser.c"
6282 break;
6283
6284 case 497:
6285 #line 2592 "util/configparser.y"
6286 {
56306287 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
56316288 if(cfg_parser->cfg->stubs->name)
56326289 yyerror("stub name override, there must be one name "
56346291 free(cfg_parser->cfg->stubs->name);
56356292 cfg_parser->cfg->stubs->name = (yyvsp[0].str);
56366293 }
5637 #line 5639 "util/configparser.c"
5638 break;
5639
5640 case 486:
5641 #line 2529 "util/configparser.y"
5642 {
6294 #line 6296 "util/configparser.c"
6295 break;
6296
6297 case 498:
6298 #line 2602 "util/configparser.y"
6299 {
56436300 OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str)));
56446301 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str)))
56456302 yyerror("out of memory");
56466303 }
5647 #line 5649 "util/configparser.c"
5648 break;
5649
5650 case 487:
5651 #line 2536 "util/configparser.y"
5652 {
6304 #line 6306 "util/configparser.c"
6305 break;
6306
6307 case 499:
6308 #line 2609 "util/configparser.y"
6309 {
56536310 OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str)));
56546311 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
56556312 yyerror("out of memory");
56566313 }
5657 #line 5659 "util/configparser.c"
5658 break;
5659
5660 case 488:
5661 #line 2543 "util/configparser.y"
5662 {
6314 #line 6316 "util/configparser.c"
6315 break;
6316
6317 case 500:
6318 #line 2616 "util/configparser.y"
6319 {
56636320 OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
56646321 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
56656322 yyerror("expected yes or no.");
56666323 else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
56676324 free((yyvsp[0].str));
56686325 }
5669 #line 5671 "util/configparser.c"
5670 break;
5671
5672 case 489:
5673 #line 2552 "util/configparser.y"
5674 {
6326 #line 6328 "util/configparser.c"
6327 break;
6328
6329 case 501:
6330 #line 2625 "util/configparser.y"
6331 {
56756332 OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str)));
56766333 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
56776334 yyerror("expected yes or no.");
56786335 else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
56796336 free((yyvsp[0].str));
56806337 }
5681 #line 5683 "util/configparser.c"
5682 break;
5683
5684 case 490:
5685 #line 2561 "util/configparser.y"
5686 {
6338 #line 6340 "util/configparser.c"
6339 break;
6340
6341 case 502:
6342 #line 2634 "util/configparser.y"
6343 {
56876344 OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str)));
56886345 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
56896346 yyerror("expected yes or no.");
56916348 (strcmp((yyvsp[0].str), "yes")==0);
56926349 free((yyvsp[0].str));
56936350 }
5694 #line 5696 "util/configparser.c"
5695 break;
5696
5697 case 491:
5698 #line 2571 "util/configparser.y"
5699 {
6351 #line 6353 "util/configparser.c"
6352 break;
6353
6354 case 503:
6355 #line 2644 "util/configparser.y"
6356 {
57006357 OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
57016358 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
57026359 yyerror("expected yes or no.");
57046361 (strcmp((yyvsp[0].str), "yes")==0);
57056362 free((yyvsp[0].str));
57066363 }
5707 #line 5709 "util/configparser.c"
5708 break;
5709
5710 case 492:
5711 #line 2581 "util/configparser.y"
5712 {
6364 #line 6366 "util/configparser.c"
6365 break;
6366
6367 case 504:
6368 #line 2654 "util/configparser.y"
6369 {
57136370 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
57146371 if(cfg_parser->cfg->forwards->name)
57156372 yyerror("forward name override, there must be one "
57176374 free(cfg_parser->cfg->forwards->name);
57186375 cfg_parser->cfg->forwards->name = (yyvsp[0].str);
57196376 }
5720 #line 5722 "util/configparser.c"
5721 break;
5722
5723 case 493:
5724 #line 2591 "util/configparser.y"
5725 {
6377 #line 6379 "util/configparser.c"
6378 break;
6379
6380 case 505:
6381 #line 2664 "util/configparser.y"
6382 {
57266383 OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str)));
57276384 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
57286385 yyerror("out of memory");
57296386 }
5730 #line 5732 "util/configparser.c"
5731 break;
5732
5733 case 494:
5734 #line 2598 "util/configparser.y"
5735 {
6387 #line 6389 "util/configparser.c"
6388 break;
6389
6390 case 506:
6391 #line 2671 "util/configparser.y"
6392 {
57366393 OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str)));
57376394 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
57386395 yyerror("out of memory");
57396396 }
5740 #line 5742 "util/configparser.c"
5741 break;
5742
5743 case 495:
5744 #line 2605 "util/configparser.y"
5745 {
6397 #line 6399 "util/configparser.c"
6398 break;
6399
6400 case 507:
6401 #line 2678 "util/configparser.y"
6402 {
57466403 OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
57476404 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
57486405 yyerror("expected yes or no.");
57496406 else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
57506407 free((yyvsp[0].str));
57516408 }
5752 #line 5754 "util/configparser.c"
5753 break;
5754
5755 case 496:
5756 #line 2614 "util/configparser.y"
5757 {
6409 #line 6411 "util/configparser.c"
6410 break;
6411
6412 case 508:
6413 #line 2687 "util/configparser.y"
6414 {
57586415 OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str)));
57596416 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
57606417 yyerror("expected yes or no.");
57616418 else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
57626419 free((yyvsp[0].str));
57636420 }
5764 #line 5766 "util/configparser.c"
5765 break;
5766
5767 case 497:
5768 #line 2623 "util/configparser.y"
5769 {
6421 #line 6423 "util/configparser.c"
6422 break;
6423
6424 case 509:
6425 #line 2696 "util/configparser.y"
6426 {
57706427 OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str)));
57716428 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
57726429 yyerror("expected yes or no.");
57746431 (strcmp((yyvsp[0].str), "yes")==0);
57756432 free((yyvsp[0].str));
57766433 }
5777 #line 5779 "util/configparser.c"
5778 break;
5779
5780 case 498:
5781 #line 2633 "util/configparser.y"
5782 {
6434 #line 6436 "util/configparser.c"
6435 break;
6436
6437 case 510:
6438 #line 2706 "util/configparser.y"
6439 {
57836440 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
57846441 if(cfg_parser->cfg->auths->name)
57856442 yyerror("auth name override, there must be one name "
57876444 free(cfg_parser->cfg->auths->name);
57886445 cfg_parser->cfg->auths->name = (yyvsp[0].str);
57896446 }
5790 #line 5792 "util/configparser.c"
5791 break;
5792
5793 case 499:
5794 #line 2643 "util/configparser.y"
5795 {
6447 #line 6449 "util/configparser.c"
6448 break;
6449
6450 case 511:
6451 #line 2716 "util/configparser.y"
6452 {
57966453 OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str)));
57976454 free(cfg_parser->cfg->auths->zonefile);
57986455 cfg_parser->cfg->auths->zonefile = (yyvsp[0].str);
57996456 }
5800 #line 5802 "util/configparser.c"
5801 break;
5802
5803 case 500:
5804 #line 2650 "util/configparser.y"
5805 {
6457 #line 6459 "util/configparser.c"
6458 break;
6459
6460 case 512:
6461 #line 2723 "util/configparser.y"
6462 {
58066463 OUTYY(("P(master:%s)\n", (yyvsp[0].str)));
58076464 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str)))
58086465 yyerror("out of memory");
58096466 }
5810 #line 5812 "util/configparser.c"
5811 break;
5812
5813 case 501:
5814 #line 2657 "util/configparser.y"
5815 {
6467 #line 6469 "util/configparser.c"
6468 break;
6469
6470 case 513:
6471 #line 2730 "util/configparser.y"
6472 {
58166473 OUTYY(("P(url:%s)\n", (yyvsp[0].str)));
58176474 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str)))
58186475 yyerror("out of memory");
58196476 }
5820 #line 5822 "util/configparser.c"
5821 break;
5822
5823 case 502:
5824 #line 2664 "util/configparser.y"
5825 {
6477 #line 6479 "util/configparser.c"
6478 break;
6479
6480 case 514:
6481 #line 2737 "util/configparser.y"
6482 {
58266483 OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str)));
58276484 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify,
58286485 (yyvsp[0].str)))
58296486 yyerror("out of memory");
58306487 }
5831 #line 5833 "util/configparser.c"
5832 break;
5833
5834 case 503:
5835 #line 2672 "util/configparser.y"
5836 {
6488 #line 6490 "util/configparser.c"
6489 break;
6490
6491 case 515:
6492 #line 2745 "util/configparser.y"
6493 {
58376494 OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str)));
58386495 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
58396496 yyerror("expected yes or no.");
58416498 (strcmp((yyvsp[0].str), "yes")==0);
58426499 free((yyvsp[0].str));
58436500 }
5844 #line 5846 "util/configparser.c"
5845 break;
5846
5847 case 504:
5848 #line 2682 "util/configparser.y"
5849 {
6501 #line 6503 "util/configparser.c"
6502 break;
6503
6504 case 516:
6505 #line 2755 "util/configparser.y"
6506 {
58506507 OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str)));
58516508 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
58526509 yyerror("expected yes or no.");
58546511 (strcmp((yyvsp[0].str), "yes")==0);
58556512 free((yyvsp[0].str));
58566513 }
5857 #line 5859 "util/configparser.c"
5858 break;
5859
5860 case 505:
5861 #line 2692 "util/configparser.y"
5862 {
6514 #line 6516 "util/configparser.c"
6515 break;
6516
6517 case 517:
6518 #line 2765 "util/configparser.y"
6519 {
58636520 OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str)));
58646521 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
58656522 yyerror("expected yes or no.");
58676524 (strcmp((yyvsp[0].str), "yes")==0);
58686525 free((yyvsp[0].str));
58696526 }
5870 #line 5872 "util/configparser.c"
5871 break;
5872
5873 case 506:
5874 #line 2702 "util/configparser.y"
5875 {
6527 #line 6529 "util/configparser.c"
6528 break;
6529
6530 case 518:
6531 #line 2775 "util/configparser.y"
6532 {
58766533 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
58776534 if(cfg_parser->cfg->views->name)
58786535 yyerror("view name override, there must be one "
58806537 free(cfg_parser->cfg->views->name);
58816538 cfg_parser->cfg->views->name = (yyvsp[0].str);
58826539 }
5883 #line 5885 "util/configparser.c"
5884 break;
5885
5886 case 507:
5887 #line 2712 "util/configparser.y"
5888 {
6540 #line 6542 "util/configparser.c"
6541 break;
6542
6543 case 519:
6544 #line 2785 "util/configparser.y"
6545 {
58896546 OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
58906547 if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
58916548 strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 &&
59226579 fatal_exit("out of memory adding local-zone");
59236580 }
59246581 }
5925 #line 5927 "util/configparser.c"
5926 break;
5927
5928 case 508:
5929 #line 2751 "util/configparser.y"
5930 {
6582 #line 6584 "util/configparser.c"
6583 break;
6584
6585 case 520:
6586 #line 2824 "util/configparser.y"
6587 {
59316588 OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
59326589 validate_respip_action((yyvsp[0].str));
59336590 if(!cfg_str2list_insert(
59356592 fatal_exit("out of memory adding per-view "
59366593 "response-ip action");
59376594 }
5938 #line 5940 "util/configparser.c"
5939 break;
5940
5941 case 509:
5942 #line 2761 "util/configparser.y"
5943 {
6595 #line 6597 "util/configparser.c"
6596 break;
6597
6598 case 521:
6599 #line 2834 "util/configparser.y"
6600 {
59446601 OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str)));
59456602 if(!cfg_str2list_insert(
59466603 &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str)))
59476604 fatal_exit("out of memory adding response-ip-data");
59486605 }
5949 #line 5951 "util/configparser.c"
5950 break;
5951
5952 case 510:
5953 #line 2769 "util/configparser.y"
5954 {
6606 #line 6608 "util/configparser.c"
6607 break;
6608
6609 case 522:
6610 #line 2842 "util/configparser.y"
6611 {
59556612 OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
59566613 if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
59576614 fatal_exit("out of memory adding local-data");
59586615 }
59596616 }
5960 #line 5962 "util/configparser.c"
5961 break;
5962
5963 case 511:
5964 #line 2777 "util/configparser.y"
5965 {
6617 #line 6619 "util/configparser.c"
6618 break;
6619
6620 case 523:
6621 #line 2850 "util/configparser.y"
6622 {
59666623 char* ptr;
59676624 OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str)));
59686625 ptr = cfg_ptr_reverse((yyvsp[0].str));
59756632 yyerror("local-data-ptr could not be reversed");
59766633 }
59776634 }
5978 #line 5980 "util/configparser.c"
5979 break;
5980
5981 case 512:
5982 #line 2792 "util/configparser.y"
5983 {
6635 #line 6637 "util/configparser.c"
6636 break;
6637
6638 case 524:
6639 #line 2865 "util/configparser.y"
6640 {
59846641 OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
59856642 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
59866643 yyerror("expected yes or no.");
59876644 else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
59886645 free((yyvsp[0].str));
59896646 }
5990 #line 5992 "util/configparser.c"
5991 break;
5992
5993 case 513:
5994 #line 2801 "util/configparser.y"
5995 {
6647 #line 6649 "util/configparser.c"
6648 break;
6649
6650 case 525:
6651 #line 2874 "util/configparser.y"
6652 {
59966653 OUTYY(("\nP(remote-control:)\n"));
59976654 }
5998 #line 6000 "util/configparser.c"
5999 break;
6000
6001 case 524:
6002 #line 2812 "util/configparser.y"
6003 {
6655 #line 6657 "util/configparser.c"
6656 break;
6657
6658 case 536:
6659 #line 2885 "util/configparser.y"
6660 {
60046661 OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
60056662 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
60066663 yyerror("expected yes or no.");
60086665 (strcmp((yyvsp[0].str), "yes")==0);
60096666 free((yyvsp[0].str));
60106667 }
6011 #line 6013 "util/configparser.c"
6012 break;
6013
6014 case 525:
6015 #line 2822 "util/configparser.y"
6016 {
6668 #line 6670 "util/configparser.c"
6669 break;
6670
6671 case 537:
6672 #line 2895 "util/configparser.y"
6673 {
60176674 OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
60186675 if(atoi((yyvsp[0].str)) == 0)
60196676 yyerror("control port number expected");
60206677 else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
60216678 free((yyvsp[0].str));
60226679 }
6023 #line 6025 "util/configparser.c"
6024 break;
6025
6026 case 526:
6027 #line 2831 "util/configparser.y"
6028 {
6680 #line 6682 "util/configparser.c"
6681 break;
6682
6683 case 538:
6684 #line 2904 "util/configparser.y"
6685 {
60296686 OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
60306687 if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
60316688 yyerror("out of memory");
60326689 }
6033 #line 6035 "util/configparser.c"
6034 break;
6035
6036 case 527:
6037 #line 2838 "util/configparser.y"
6038 {
6690 #line 6692 "util/configparser.c"
6691 break;
6692
6693 case 539:
6694 #line 2911 "util/configparser.y"
6695 {
60396696 OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
60406697 cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0);
60416698 free((yyvsp[0].str));
60426699 }
6043 #line 6045 "util/configparser.c"
6044 break;
6045
6046 case 528:
6047 #line 2845 "util/configparser.y"
6048 {
6700 #line 6702 "util/configparser.c"
6701 break;
6702
6703 case 540:
6704 #line 2918 "util/configparser.y"
6705 {
60496706 OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
60506707 free(cfg_parser->cfg->server_key_file);
60516708 cfg_parser->cfg->server_key_file = (yyvsp[0].str);
60526709 }
6053 #line 6055 "util/configparser.c"
6054 break;
6055
6056 case 529:
6057 #line 2852 "util/configparser.y"
6058 {
6710 #line 6712 "util/configparser.c"
6711 break;
6712
6713 case 541:
6714 #line 2925 "util/configparser.y"
6715 {
60596716 OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
60606717 free(cfg_parser->cfg->server_cert_file);
60616718 cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
60626719 }
6063 #line 6065 "util/configparser.c"
6064 break;
6065
6066 case 530:
6067 #line 2859 "util/configparser.y"
6068 {
6720 #line 6722 "util/configparser.c"
6721 break;
6722
6723 case 542:
6724 #line 2932 "util/configparser.y"
6725 {
60696726 OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
60706727 free(cfg_parser->cfg->control_key_file);
60716728 cfg_parser->cfg->control_key_file = (yyvsp[0].str);
60726729 }
6073 #line 6075 "util/configparser.c"
6074 break;
6075
6076 case 531:
6077 #line 2866 "util/configparser.y"
6078 {
6730 #line 6732 "util/configparser.c"
6731 break;
6732
6733 case 543:
6734 #line 2939 "util/configparser.y"
6735 {
60796736 OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
60806737 free(cfg_parser->cfg->control_cert_file);
60816738 cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
60826739 }
6083 #line 6085 "util/configparser.c"
6084 break;
6085
6086 case 532:
6087 #line 2873 "util/configparser.y"
6088 {
6740 #line 6742 "util/configparser.c"
6741 break;
6742
6743 case 544:
6744 #line 2946 "util/configparser.y"
6745 {
60896746 OUTYY(("\nP(dnstap:)\n"));
60906747 }
6091 #line 6093 "util/configparser.c"
6092 break;
6093
6094 case 554:
6095 #line 2893 "util/configparser.y"
6096 {
6748 #line 6750 "util/configparser.c"
6749 break;
6750
6751 case 566:
6752 #line 2966 "util/configparser.y"
6753 {
60976754 OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
60986755 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
60996756 yyerror("expected yes or no.");
61006757 else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
61016758 free((yyvsp[0].str));
61026759 }
6103 #line 6105 "util/configparser.c"
6104 break;
6105
6106 case 555:
6107 #line 2902 "util/configparser.y"
6108 {
6760 #line 6762 "util/configparser.c"
6761 break;
6762
6763 case 567:
6764 #line 2975 "util/configparser.y"
6765 {
61096766 OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str)));
61106767 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
61116768 yyerror("expected yes or no.");
61136770 (strcmp((yyvsp[0].str), "yes")==0);
61146771 free((yyvsp[0].str));
61156772 }
6116 #line 6118 "util/configparser.c"
6117 break;
6118
6119 case 556:
6120 #line 2912 "util/configparser.y"
6121 {
6773 #line 6775 "util/configparser.c"
6774 break;
6775
6776 case 568:
6777 #line 2985 "util/configparser.y"
6778 {
61226779 OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
61236780 free(cfg_parser->cfg->dnstap_socket_path);
61246781 cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
61256782 }
6126 #line 6128 "util/configparser.c"
6127 break;
6128
6129 case 557:
6130 #line 2919 "util/configparser.y"
6131 {
6783 #line 6785 "util/configparser.c"
6784 break;
6785
6786 case 569:
6787 #line 2992 "util/configparser.y"
6788 {
61326789 OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str)));
61336790 free(cfg_parser->cfg->dnstap_ip);
61346791 cfg_parser->cfg->dnstap_ip = (yyvsp[0].str);
61356792 }
6136 #line 6138 "util/configparser.c"
6137 break;
6138
6139 case 558:
6140 #line 2926 "util/configparser.y"
6141 {
6793 #line 6795 "util/configparser.c"
6794 break;
6795
6796 case 570:
6797 #line 2999 "util/configparser.y"
6798 {
61426799 OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str)));
61436800 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
61446801 yyerror("expected yes or no.");
61456802 else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0);
61466803 free((yyvsp[0].str));
61476804 }
6148 #line 6150 "util/configparser.c"
6149 break;
6150
6151 case 559:
6152 #line 2935 "util/configparser.y"
6153 {
6805 #line 6807 "util/configparser.c"
6806 break;
6807
6808 case 571:
6809 #line 3008 "util/configparser.y"
6810 {
61546811 OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str)));
61556812 free(cfg_parser->cfg->dnstap_tls_server_name);
61566813 cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str);
61576814 }
6158 #line 6160 "util/configparser.c"
6159 break;
6160
6161 case 560:
6162 #line 2942 "util/configparser.y"
6163 {
6815 #line 6817 "util/configparser.c"
6816 break;
6817
6818 case 572:
6819 #line 3015 "util/configparser.y"
6820 {
61646821 OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
61656822 free(cfg_parser->cfg->dnstap_tls_cert_bundle);
61666823 cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str);
61676824 }
6168 #line 6170 "util/configparser.c"
6169 break;
6170
6171 case 561:
6172 #line 2949 "util/configparser.y"
6173 {
6825 #line 6827 "util/configparser.c"
6826 break;
6827
6828 case 573:
6829 #line 3022 "util/configparser.y"
6830 {
61746831 OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str)));
61756832 free(cfg_parser->cfg->dnstap_tls_client_key_file);
61766833 cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str);
61776834 }
6178 #line 6180 "util/configparser.c"
6179 break;
6180
6181 case 562:
6182 #line 2956 "util/configparser.y"
6183 {
6835 #line 6837 "util/configparser.c"
6836 break;
6837
6838 case 574:
6839 #line 3029 "util/configparser.y"
6840 {
61846841 OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str)));
61856842 free(cfg_parser->cfg->dnstap_tls_client_cert_file);
61866843 cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str);
61876844 }
6188 #line 6190 "util/configparser.c"
6189 break;
6190
6191 case 563:
6192 #line 2963 "util/configparser.y"
6193 {
6845 #line 6847 "util/configparser.c"
6846 break;
6847
6848 case 575:
6849 #line 3036 "util/configparser.y"
6850 {
61946851 OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
61956852 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
61966853 yyerror("expected yes or no.");
61976854 else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
61986855 free((yyvsp[0].str));
61996856 }
6200 #line 6202 "util/configparser.c"
6201 break;
6202
6203 case 564:
6204 #line 2972 "util/configparser.y"
6205 {
6857 #line 6859 "util/configparser.c"
6858 break;
6859
6860 case 576:
6861 #line 3045 "util/configparser.y"
6862 {
62066863 OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
62076864 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
62086865 yyerror("expected yes or no.");
62096866 else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
62106867 free((yyvsp[0].str));
62116868 }
6212 #line 6214 "util/configparser.c"
6213 break;
6214
6215 case 565:
6216 #line 2981 "util/configparser.y"
6217 {
6869 #line 6871 "util/configparser.c"
6870 break;
6871
6872 case 577:
6873 #line 3054 "util/configparser.y"
6874 {
62186875 OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
62196876 free(cfg_parser->cfg->dnstap_identity);
62206877 cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
62216878 }
6222 #line 6224 "util/configparser.c"
6223 break;
6224
6225 case 566:
6226 #line 2988 "util/configparser.y"
6227 {
6879 #line 6881 "util/configparser.c"
6880 break;
6881
6882 case 578:
6883 #line 3061 "util/configparser.y"
6884 {
62286885 OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
62296886 free(cfg_parser->cfg->dnstap_version);
62306887 cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
62316888 }
6232 #line 6234 "util/configparser.c"
6233 break;
6234
6235 case 567:
6236 #line 2995 "util/configparser.y"
6237 {
6889 #line 6891 "util/configparser.c"
6890 break;
6891
6892 case 579:
6893 #line 3068 "util/configparser.y"
6894 {
62386895 OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
62396896 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
62406897 yyerror("expected yes or no.");
62426899 (strcmp((yyvsp[0].str), "yes")==0);
62436900 free((yyvsp[0].str));
62446901 }
6245 #line 6247 "util/configparser.c"
6246 break;
6247
6248 case 568:
6249 #line 3005 "util/configparser.y"
6250 {
6902 #line 6904 "util/configparser.c"
6903 break;
6904
6905 case 580:
6906 #line 3078 "util/configparser.y"
6907 {
62516908 OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
62526909 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
62536910 yyerror("expected yes or no.");
62556912 (strcmp((yyvsp[0].str), "yes")==0);
62566913 free((yyvsp[0].str));
62576914 }
6258 #line 6260 "util/configparser.c"
6259 break;
6260
6261 case 569:
6262 #line 3015 "util/configparser.y"
6263 {
6915 #line 6917 "util/configparser.c"
6916 break;
6917
6918 case 581:
6919 #line 3088 "util/configparser.y"
6920 {
62646921 OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
62656922 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
62666923 yyerror("expected yes or no.");
62686925 (strcmp((yyvsp[0].str), "yes")==0);
62696926 free((yyvsp[0].str));
62706927 }
6271 #line 6273 "util/configparser.c"
6272 break;
6273
6274 case 570:
6275 #line 3025 "util/configparser.y"
6276 {
6928 #line 6930 "util/configparser.c"
6929 break;
6930
6931 case 582:
6932 #line 3098 "util/configparser.y"
6933 {
62776934 OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
62786935 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
62796936 yyerror("expected yes or no.");
62816938 (strcmp((yyvsp[0].str), "yes")==0);
62826939 free((yyvsp[0].str));
62836940 }
6284 #line 6286 "util/configparser.c"
6285 break;
6286
6287 case 571:
6288 #line 3035 "util/configparser.y"
6289 {
6941 #line 6943 "util/configparser.c"
6942 break;
6943
6944 case 583:
6945 #line 3108 "util/configparser.y"
6946 {
62906947 OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
62916948 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
62926949 yyerror("expected yes or no.");
62946951 (strcmp((yyvsp[0].str), "yes")==0);
62956952 free((yyvsp[0].str));
62966953 }
6297 #line 6299 "util/configparser.c"
6298 break;
6299
6300 case 572:
6301 #line 3045 "util/configparser.y"
6302 {
6954 #line 6956 "util/configparser.c"
6955 break;
6956
6957 case 584:
6958 #line 3118 "util/configparser.y"
6959 {
63036960 OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
63046961 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
63056962 yyerror("expected yes or no.");
63076964 (strcmp((yyvsp[0].str), "yes")==0);
63086965 free((yyvsp[0].str));
63096966 }
6310 #line 6312 "util/configparser.c"
6311 break;
6312
6313 case 573:
6314 #line 3055 "util/configparser.y"
6315 {
6967 #line 6969 "util/configparser.c"
6968 break;
6969
6970 case 585:
6971 #line 3128 "util/configparser.y"
6972 {
63166973 OUTYY(("\nP(python:)\n"));
63176974 }
6318 #line 6320 "util/configparser.c"
6319 break;
6320
6321 case 577:
6322 #line 3064 "util/configparser.y"
6323 {
6975 #line 6977 "util/configparser.c"
6976 break;
6977
6978 case 589:
6979 #line 3137 "util/configparser.y"
6980 {
63246981 OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
63256982 if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str)))
63266983 yyerror("out of memory");
63276984 }
6328 #line 6330 "util/configparser.c"
6329 break;
6330
6331 case 578:
6332 #line 3070 "util/configparser.y"
6333 {
6985 #line 6987 "util/configparser.c"
6986 break;
6987
6988 case 590:
6989 #line 3143 "util/configparser.y"
6990 {
63346991 OUTYY(("\nP(dynlib:)\n"));
63356992 }
6336 #line 6338 "util/configparser.c"
6337 break;
6338
6339 case 582:
6340 #line 3079 "util/configparser.y"
6341 {
6993 #line 6995 "util/configparser.c"
6994 break;
6995
6996 case 594:
6997 #line 3152 "util/configparser.y"
6998 {
63426999 OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str)));
63437000 if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str)))
63447001 yyerror("out of memory");
63457002 }
6346 #line 6348 "util/configparser.c"
6347 break;
6348
6349 case 583:
6350 #line 3085 "util/configparser.y"
6351 {
7003 #line 7005 "util/configparser.c"
7004 break;
7005
7006 case 595:
7007 #line 3158 "util/configparser.y"
7008 {
63527009 OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
63537010 if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
63547011 yyerror("expected yes or no.");
63567013 (strcmp((yyvsp[0].str), "yes")==0);
63577014 free((yyvsp[0].str));
63587015 }
6359 #line 6361 "util/configparser.c"
6360 break;
6361
6362 case 584:
6363 #line 3095 "util/configparser.y"
6364 {
7016 #line 7018 "util/configparser.c"
7017 break;
7018
7019 case 596:
7020 #line 3168 "util/configparser.y"
7021 {
63657022 OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str)));
63667023 free(cfg_parser->cfg->log_identity);
63677024 cfg_parser->cfg->log_identity = (yyvsp[0].str);
63687025 }
6369 #line 6371 "util/configparser.c"
6370 break;
6371
6372 case 585:
6373 #line 3102 "util/configparser.y"
6374 {
7026 #line 7028 "util/configparser.c"
7027 break;
7028
7029 case 597:
7030 #line 3175 "util/configparser.y"
7031 {
63757032 OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
63767033 validate_respip_action((yyvsp[0].str));
63777034 if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions,
63787035 (yyvsp[-1].str), (yyvsp[0].str)))
63797036 fatal_exit("out of memory adding response-ip");
63807037 }
6381 #line 6383 "util/configparser.c"
6382 break;
6383
6384 case 586:
6385 #line 3111 "util/configparser.y"
6386 {
7038 #line 7040 "util/configparser.c"
7039 break;
7040
7041 case 598:
7042 #line 3184 "util/configparser.y"
7043 {
63877044 OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str)));
63887045 if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
63897046 (yyvsp[-1].str), (yyvsp[0].str)))
63907047 fatal_exit("out of memory adding response-ip-data");
63917048 }
6392 #line 6394 "util/configparser.c"
6393 break;
6394
6395 case 587:
6396 #line 3119 "util/configparser.y"
6397 {
7049 #line 7051 "util/configparser.c"
7050 break;
7051
7052 case 599:
7053 #line 3192 "util/configparser.y"
7054 {
63987055 OUTYY(("\nP(dnscrypt:)\n"));
63997056 }
6400 #line 6402 "util/configparser.c"
6401 break;
6402
6403 case 600:
6404 #line 3135 "util/configparser.y"
6405 {
7057 #line 7059 "util/configparser.c"
7058 break;
7059
7060 case 612:
7061 #line 3208 "util/configparser.y"
7062 {
64067063 OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str)));
64077064 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
64087065 yyerror("expected yes or no.");
64097066 else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
64107067 free((yyvsp[0].str));
64117068 }
6412 #line 6414 "util/configparser.c"
6413 break;
6414
6415 case 601:
6416 #line 3145 "util/configparser.y"
6417 {
7069 #line 7071 "util/configparser.c"
7070 break;
7071
7072 case 613:
7073 #line 3218 "util/configparser.y"
7074 {
64187075 OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
64197076 if(atoi((yyvsp[0].str)) == 0)
64207077 yyerror("port number expected");
64217078 else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
64227079 free((yyvsp[0].str));
64237080 }
6424 #line 6426 "util/configparser.c"
6425 break;
6426
6427 case 602:
6428 #line 3154 "util/configparser.y"
6429 {
7081 #line 7083 "util/configparser.c"
7082 break;
7083
7084 case 614:
7085 #line 3227 "util/configparser.y"
7086 {
64307087 OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str)));
64317088 free(cfg_parser->cfg->dnscrypt_provider);
64327089 cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
64337090 }
6434 #line 6436 "util/configparser.c"
6435 break;
6436
6437 case 603:
6438 #line 3161 "util/configparser.y"
6439 {
7091 #line 7093 "util/configparser.c"
7092 break;
7093
7094 case 615:
7095 #line 3234 "util/configparser.y"
7096 {
64407097 OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str)));
64417098 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
64427099 log_warn("dnscrypt-provider-cert %s is a duplicate", (yyvsp[0].str));
64437100 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
64447101 fatal_exit("out of memory adding dnscrypt-provider-cert");
64457102 }
6446 #line 6448 "util/configparser.c"
6447 break;
6448
6449 case 604:
6450 #line 3170 "util/configparser.y"
6451 {
7103 #line 7105 "util/configparser.c"
7104 break;
7105
7106 case 616:
7107 #line 3243 "util/configparser.y"
7108 {
64527109 OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str)));
64537110 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
64547111 fatal_exit("out of memory adding dnscrypt-provider-cert-rotated");
64557112 }
6456 #line 6458 "util/configparser.c"
6457 break;
6458
6459 case 605:
6460 #line 3177 "util/configparser.y"
6461 {
7113 #line 7115 "util/configparser.c"
7114 break;
7115
7116 case 617:
7117 #line 3250 "util/configparser.y"
7118 {
64627119 OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str)));
64637120 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
64647121 log_warn("dnscrypt-secret-key: %s is a duplicate", (yyvsp[0].str));
64657122 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
64667123 fatal_exit("out of memory adding dnscrypt-secret-key");
64677124 }
6468 #line 6470 "util/configparser.c"
6469 break;
6470
6471 case 606:
6472 #line 3186 "util/configparser.y"
6473 {
7125 #line 7127 "util/configparser.c"
7126 break;
7127
7128 case 618:
7129 #line 3259 "util/configparser.y"
7130 {
64747131 OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str)));
64757132 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
64767133 yyerror("memory size expected");
64777134 free((yyvsp[0].str));
64787135 }
6479 #line 6481 "util/configparser.c"
6480 break;
6481
6482 case 607:
6483 #line 3194 "util/configparser.y"
6484 {
7136 #line 7138 "util/configparser.c"
7137 break;
7138
7139 case 619:
7140 #line 3267 "util/configparser.y"
7141 {
64857142 OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str)));
64867143 if(atoi((yyvsp[0].str)) == 0)
64877144 yyerror("number expected");
64927149 }
64937150 free((yyvsp[0].str));
64947151 }
6495 #line 6497 "util/configparser.c"
6496 break;
6497
6498 case 608:
6499 #line 3207 "util/configparser.y"
6500 {
7152 #line 7154 "util/configparser.c"
7153 break;
7154
7155 case 620:
7156 #line 3280 "util/configparser.y"
7157 {
65017158 OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str)));
65027159 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
65037160 yyerror("memory size expected");
65047161 free((yyvsp[0].str));
65057162 }
6506 #line 6508 "util/configparser.c"
6507 break;
6508
6509 case 609:
6510 #line 3215 "util/configparser.y"
6511 {
7163 #line 7165 "util/configparser.c"
7164 break;
7165
7166 case 621:
7167 #line 3288 "util/configparser.y"
7168 {
65127169 OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str)));
65137170 if(atoi((yyvsp[0].str)) == 0)
65147171 yyerror("number expected");
65197176 }
65207177 free((yyvsp[0].str));
65217178 }
6522 #line 6524 "util/configparser.c"
6523 break;
6524
6525 case 610:
6526 #line 3228 "util/configparser.y"
6527 {
7179 #line 7181 "util/configparser.c"
7180 break;
7181
7182 case 622:
7183 #line 3301 "util/configparser.y"
7184 {
65287185 OUTYY(("\nP(cachedb:)\n"));
65297186 }
6530 #line 6532 "util/configparser.c"
6531 break;
6532
6533 case 619:
6534 #line 3239 "util/configparser.y"
6535 {
7187 #line 7189 "util/configparser.c"
7188 break;
7189
7190 case 631:
7191 #line 3312 "util/configparser.y"
7192 {
65367193 #ifdef USE_CACHEDB
65377194 OUTYY(("P(backend:%s)\n", (yyvsp[0].str)));
65387195 free(cfg_parser->cfg->cachedb_backend);
65427199 free((yyvsp[0].str));
65437200 #endif
65447201 }
6545 #line 6547 "util/configparser.c"
6546 break;
6547
6548 case 620:
6549 #line 3251 "util/configparser.y"
6550 {
7202 #line 7204 "util/configparser.c"
7203 break;
7204
7205 case 632:
7206 #line 3324 "util/configparser.y"
7207 {
65517208 #ifdef USE_CACHEDB
65527209 OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str)));
65537210 free(cfg_parser->cfg->cachedb_secret);
65577214 free((yyvsp[0].str));
65587215 #endif
65597216 }
6560 #line 6562 "util/configparser.c"
6561 break;
6562
6563 case 621:
6564 #line 3263 "util/configparser.y"
6565 {
7217 #line 7219 "util/configparser.c"
7218 break;
7219
7220 case 633:
7221 #line 3336 "util/configparser.y"
7222 {
65667223 #if defined(USE_CACHEDB) && defined(USE_REDIS)
65677224 OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str)));
65687225 free(cfg_parser->cfg->redis_server_host);
65727229 free((yyvsp[0].str));
65737230 #endif
65747231 }
6575 #line 6577 "util/configparser.c"
6576 break;
6577
6578 case 622:
6579 #line 3275 "util/configparser.y"
6580 {
7232 #line 7234 "util/configparser.c"
7233 break;
7234
7235 case 634:
7236 #line 3348 "util/configparser.y"
7237 {
65817238 #if defined(USE_CACHEDB) && defined(USE_REDIS)
65827239 int port;
65837240 OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str)));
65907247 #endif
65917248 free((yyvsp[0].str));
65927249 }
6593 #line 6595 "util/configparser.c"
6594 break;
6595
6596 case 623:
6597 #line 3290 "util/configparser.y"
6598 {
7250 #line 7252 "util/configparser.c"
7251 break;
7252
7253 case 635:
7254 #line 3363 "util/configparser.y"
7255 {
65997256 #if defined(USE_CACHEDB) && defined(USE_REDIS)
66007257 OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str)));
66017258 if(atoi((yyvsp[0].str)) == 0)
66067263 #endif
66077264 free((yyvsp[0].str));
66087265 }
6609 #line 6611 "util/configparser.c"
6610 break;
6611
6612 case 624:
6613 #line 3303 "util/configparser.y"
6614 {
7266 #line 7268 "util/configparser.c"
7267 break;
7268
7269 case 636:
7270 #line 3376 "util/configparser.y"
7271 {
66157272 #if defined(USE_CACHEDB) && defined(USE_REDIS)
66167273 OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str)));
66177274 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
66227279 #endif
66237280 free((yyvsp[0].str));
66247281 }
6625 #line 6627 "util/configparser.c"
6626 break;
6627
6628 case 625:
6629 #line 3316 "util/configparser.y"
6630 {
7282 #line 7284 "util/configparser.c"
7283 break;
7284
7285 case 637:
7286 #line 3389 "util/configparser.y"
7287 {
66317288 OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
66327289 if (atoi((yyvsp[0].str)) < 0)
66337290 yyerror("positive number expected");
66367293 fatal_exit("out of memory adding tcp connection limit");
66377294 }
66387295 }
6639 #line 6641 "util/configparser.c"
6640 break;
6641
6642 case 626:
6643 #line 3327 "util/configparser.y"
6644 {
7296 #line 7298 "util/configparser.c"
7297 break;
7298
7299 case 638:
7300 #line 3400 "util/configparser.y"
7301 {
66457302 OUTYY(("\nP(ipset:)\n"));
66467303 }
6647 #line 6649 "util/configparser.c"
6648 break;
6649
6650 case 631:
6651 #line 3336 "util/configparser.y"
6652 {
7304 #line 7306 "util/configparser.c"
7305 break;
7306
7307 case 643:
7308 #line 3409 "util/configparser.y"
7309 {
66537310 #ifdef USE_IPSET
66547311 OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str)));
66557312 if(cfg_parser->cfg->ipset_name_v4)
66627319 free((yyvsp[0].str));
66637320 #endif
66647321 }
6665 #line 6667 "util/configparser.c"
6666 break;
6667
6668 case 632:
6669 #line 3351 "util/configparser.y"
6670 {
7322 #line 7324 "util/configparser.c"
7323 break;
7324
7325 case 644:
7326 #line 3424 "util/configparser.y"
7327 {
66717328 #ifdef USE_IPSET
66727329 OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str)));
66737330 if(cfg_parser->cfg->ipset_name_v6)
66807337 free((yyvsp[0].str));
66817338 #endif
66827339 }
6683 #line 6685 "util/configparser.c"
6684 break;
6685
6686
6687 #line 6689 "util/configparser.c"
7340 #line 7342 "util/configparser.c"
7341 break;
7342
7343
7344 #line 7346 "util/configparser.c"
66887345
66897346 default: break;
66907347 }
66997356 case of YYERROR or YYBACKUP, subsequent parser actions might lead
67007357 to an incorrect destructor call or verbose syntax error message
67017358 before the lookahead is translated. */
6702 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7359 YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
67037360
67047361 YYPOPSTACK (yylen);
67057362 yylen = 0;
6706 YY_STACK_PRINT (yyss, yyssp);
67077363
67087364 *++yyvsp = yyval;
67097365
67277383 yyerrlab:
67287384 /* Make sure we have latest lookahead translation. See comments at
67297385 user semantic actions for why this is necessary. */
6730 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6731
7386 yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
67327387 /* If not already recovering from an error, report this error. */
67337388 if (!yyerrstatus)
67347389 {
67357390 ++yynerrs;
6736 #if ! YYERROR_VERBOSE
67377391 yyerror (YY_("syntax error"));
6738 #else
6739 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6740 yyssp, yytoken)
6741 {
6742 char const *yymsgp = YY_("syntax error");
6743 int yysyntax_error_status;
6744 yysyntax_error_status = YYSYNTAX_ERROR;
6745 if (yysyntax_error_status == 0)
6746 yymsgp = yymsg;
6747 else if (yysyntax_error_status == 1)
6748 {
6749 if (yymsg != yymsgbuf)
6750 YYSTACK_FREE (yymsg);
6751 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6752 if (!yymsg)
6753 {
6754 yymsg = yymsgbuf;
6755 yymsg_alloc = sizeof yymsgbuf;
6756 yysyntax_error_status = 2;
6757 }
6758 else
6759 {
6760 yysyntax_error_status = YYSYNTAX_ERROR;
6761 yymsgp = yymsg;
6762 }
6763 }
6764 yyerror (yymsgp);
6765 if (yysyntax_error_status == 2)
6766 goto yyexhaustedlab;
6767 }
6768 # undef YYSYNTAX_ERROR
6769 #endif
67707392 }
6771
6772
67737393
67747394 if (yyerrstatus == 3)
67757395 {
68197439 yyerrlab1:
68207440 yyerrstatus = 3; /* Each real token shifted decrements this. */
68217441
7442 /* Pop stack until we find a state that shifts the error token. */
68227443 for (;;)
68237444 {
68247445 yyn = yypact[yystate];
68257446 if (!yypact_value_is_default (yyn))
68267447 {
6827 yyn += YYTERROR;
6828 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7448 yyn += YYSYMBOL_YYerror;
7449 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
68297450 {
68307451 yyn = yytable[yyn];
68317452 if (0 < yyn)
68397460
68407461
68417462 yydestruct ("Error: popping",
6842 yystos[yystate], yyvsp);
7463 YY_ACCESSING_SYMBOL (yystate), yyvsp);
68437464 YYPOPSTACK (1);
68447465 yystate = *yyssp;
68457466 YY_STACK_PRINT (yyss, yyssp);
68517472
68527473
68537474 /* Shift the error token. */
6854 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7475 YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
68557476
68567477 yystate = yyn;
68577478 goto yynewstate;
68737494 goto yyreturn;
68747495
68757496
6876 #if !defined yyoverflow || YYERROR_VERBOSE
7497 #if !defined yyoverflow
68777498 /*-------------------------------------------------.
68787499 | yyexhaustedlab -- memory exhaustion comes here. |
68797500 `-------------------------------------------------*/
69037524 while (yyssp != yyss)
69047525 {
69057526 yydestruct ("Cleanup: popping",
6906 yystos[*yyssp], yyvsp);
7527 YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
69077528 YYPOPSTACK (1);
69087529 }
69097530 #ifndef yyoverflow
69107531 if (yyss != yyssa)
69117532 YYSTACK_FREE (yyss);
69127533 #endif
6913 #if YYERROR_VERBOSE
6914 if (yymsg != yymsgbuf)
6915 YYSTACK_FREE (yymsg);
6916 #endif
7534
69177535 return yyresult;
69187536 }
6919 #line 3365 "util/configparser.y"
7537
7538 #line 3438 "util/configparser.y"
69207539
69217540
69227541 /* parse helper routines could be here */
0 /* A Bison parser, made by GNU Bison 3.4.1. */
0 /* A Bison parser, made by GNU Bison 3.6.4. */
11
22 /* Bison interface for Yacc-like parsers in C
33
4 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
4 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
55 Inc.
66
77 This program is free software: you can redistribute it and/or modify
3030 This special exception was added by the Free Software Foundation in
3131 version 2.2 of Bison. */
3232
33 /* Undocumented macros, especially those whose name start with YY_,
34 are private implementation details. Do not rely on them. */
33 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
34 especially those whose name start with YY_ or yy_. They are
35 private implementation details that can be changed or removed. */
3536
3637 #ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED
3738 # define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED
4344 extern int yydebug;
4445 #endif
4546
46 /* Token type. */
47 /* Token kinds. */
4748 #ifndef YYTOKENTYPE
4849 # define YYTOKENTYPE
4950 enum yytokentype
5051 {
51 SPACE = 258,
52 LETTER = 259,
53 NEWLINE = 260,
54 COMMENT = 261,
55 COLON = 262,
56 ANY = 263,
57 ZONESTR = 264,
58 STRING_ARG = 265,
59 VAR_FORCE_TOPLEVEL = 266,
60 VAR_SERVER = 267,
61 VAR_VERBOSITY = 268,
62 VAR_NUM_THREADS = 269,
63 VAR_PORT = 270,
64 VAR_OUTGOING_RANGE = 271,
65 VAR_INTERFACE = 272,
66 VAR_PREFER_IP4 = 273,
67 VAR_DO_IP4 = 274,
68 VAR_DO_IP6 = 275,
69 VAR_PREFER_IP6 = 276,
70 VAR_DO_UDP = 277,
71 VAR_DO_TCP = 278,
72 VAR_TCP_MSS = 279,
73 VAR_OUTGOING_TCP_MSS = 280,
74 VAR_TCP_IDLE_TIMEOUT = 281,
75 VAR_EDNS_TCP_KEEPALIVE = 282,
76 VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283,
77 VAR_CHROOT = 284,
78 VAR_USERNAME = 285,
79 VAR_DIRECTORY = 286,
80 VAR_LOGFILE = 287,
81 VAR_PIDFILE = 288,
82 VAR_MSG_CACHE_SIZE = 289,
83 VAR_MSG_CACHE_SLABS = 290,
84 VAR_NUM_QUERIES_PER_THREAD = 291,
85 VAR_RRSET_CACHE_SIZE = 292,
86 VAR_RRSET_CACHE_SLABS = 293,
87 VAR_OUTGOING_NUM_TCP = 294,
88 VAR_INFRA_HOST_TTL = 295,
89 VAR_INFRA_LAME_TTL = 296,
90 VAR_INFRA_CACHE_SLABS = 297,
91 VAR_INFRA_CACHE_NUMHOSTS = 298,
92 VAR_INFRA_CACHE_LAME_SIZE = 299,
93 VAR_NAME = 300,
94 VAR_STUB_ZONE = 301,
95 VAR_STUB_HOST = 302,
96 VAR_STUB_ADDR = 303,
97 VAR_TARGET_FETCH_POLICY = 304,
98 VAR_HARDEN_SHORT_BUFSIZE = 305,
99 VAR_HARDEN_LARGE_QUERIES = 306,
100 VAR_FORWARD_ZONE = 307,
101 VAR_FORWARD_HOST = 308,
102 VAR_FORWARD_ADDR = 309,
103 VAR_DO_NOT_QUERY_ADDRESS = 310,
104 VAR_HIDE_IDENTITY = 311,
105 VAR_HIDE_VERSION = 312,
106 VAR_IDENTITY = 313,
107 VAR_VERSION = 314,
108 VAR_HARDEN_GLUE = 315,
109 VAR_MODULE_CONF = 316,
110 VAR_TRUST_ANCHOR_FILE = 317,
111 VAR_TRUST_ANCHOR = 318,
112 VAR_VAL_OVERRIDE_DATE = 319,
113 VAR_BOGUS_TTL = 320,
114 VAR_VAL_CLEAN_ADDITIONAL = 321,
115 VAR_VAL_PERMISSIVE_MODE = 322,
116 VAR_INCOMING_NUM_TCP = 323,
117 VAR_MSG_BUFFER_SIZE = 324,
118 VAR_KEY_CACHE_SIZE = 325,
119 VAR_KEY_CACHE_SLABS = 326,
120 VAR_TRUSTED_KEYS_FILE = 327,
121 VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328,
122 VAR_USE_SYSLOG = 329,
123 VAR_OUTGOING_INTERFACE = 330,
124 VAR_ROOT_HINTS = 331,
125 VAR_DO_NOT_QUERY_LOCALHOST = 332,
126 VAR_CACHE_MAX_TTL = 333,
127 VAR_HARDEN_DNSSEC_STRIPPED = 334,
128 VAR_ACCESS_CONTROL = 335,
129 VAR_LOCAL_ZONE = 336,
130 VAR_LOCAL_DATA = 337,
131 VAR_INTERFACE_AUTOMATIC = 338,
132 VAR_STATISTICS_INTERVAL = 339,
133 VAR_DO_DAEMONIZE = 340,
134 VAR_USE_CAPS_FOR_ID = 341,
135 VAR_STATISTICS_CUMULATIVE = 342,
136 VAR_OUTGOING_PORT_PERMIT = 343,
137 VAR_OUTGOING_PORT_AVOID = 344,
138 VAR_DLV_ANCHOR_FILE = 345,
139 VAR_DLV_ANCHOR = 346,
140 VAR_NEG_CACHE_SIZE = 347,
141 VAR_HARDEN_REFERRAL_PATH = 348,
142 VAR_PRIVATE_ADDRESS = 349,
143 VAR_PRIVATE_DOMAIN = 350,
144 VAR_REMOTE_CONTROL = 351,
145 VAR_CONTROL_ENABLE = 352,
146 VAR_CONTROL_INTERFACE = 353,
147 VAR_CONTROL_PORT = 354,
148 VAR_SERVER_KEY_FILE = 355,
149 VAR_SERVER_CERT_FILE = 356,
150 VAR_CONTROL_KEY_FILE = 357,
151 VAR_CONTROL_CERT_FILE = 358,
152 VAR_CONTROL_USE_CERT = 359,
153 VAR_EXTENDED_STATISTICS = 360,
154 VAR_LOCAL_DATA_PTR = 361,
155 VAR_JOSTLE_TIMEOUT = 362,
156 VAR_STUB_PRIME = 363,
157 VAR_UNWANTED_REPLY_THRESHOLD = 364,
158 VAR_LOG_TIME_ASCII = 365,
159 VAR_DOMAIN_INSECURE = 366,
160 VAR_PYTHON = 367,
161 VAR_PYTHON_SCRIPT = 368,
162 VAR_VAL_SIG_SKEW_MIN = 369,
163 VAR_VAL_SIG_SKEW_MAX = 370,
164 VAR_CACHE_MIN_TTL = 371,
165 VAR_VAL_LOG_LEVEL = 372,
166 VAR_AUTO_TRUST_ANCHOR_FILE = 373,
167 VAR_KEEP_MISSING = 374,
168 VAR_ADD_HOLDDOWN = 375,
169 VAR_DEL_HOLDDOWN = 376,
170 VAR_SO_RCVBUF = 377,
171 VAR_EDNS_BUFFER_SIZE = 378,
172 VAR_PREFETCH = 379,
173 VAR_PREFETCH_KEY = 380,
174 VAR_SO_SNDBUF = 381,
175 VAR_SO_REUSEPORT = 382,
176 VAR_HARDEN_BELOW_NXDOMAIN = 383,
177 VAR_IGNORE_CD_FLAG = 384,
178 VAR_LOG_QUERIES = 385,
179 VAR_LOG_REPLIES = 386,
180 VAR_LOG_LOCAL_ACTIONS = 387,
181 VAR_TCP_UPSTREAM = 388,
182 VAR_SSL_UPSTREAM = 389,
183 VAR_SSL_SERVICE_KEY = 390,
184 VAR_SSL_SERVICE_PEM = 391,
185 VAR_SSL_PORT = 392,
186 VAR_FORWARD_FIRST = 393,
187 VAR_STUB_SSL_UPSTREAM = 394,
188 VAR_FORWARD_SSL_UPSTREAM = 395,
189 VAR_TLS_CERT_BUNDLE = 396,
190 VAR_HTTPS_PORT = 397,
191 VAR_HTTP_ENDPOINT = 398,
192 VAR_HTTP_MAX_STREAMS = 399,
193 VAR_HTTP_QUERY_BUFFER_SIZE = 400,
194 VAR_HTTP_RESPONSE_BUFFER_SIZE = 401,
195 VAR_HTTP_NODELAY = 402,
196 VAR_HTTP_NOTLS_DOWNSTREAM = 403,
197 VAR_STUB_FIRST = 404,
198 VAR_MINIMAL_RESPONSES = 405,
199 VAR_RRSET_ROUNDROBIN = 406,
200 VAR_MAX_UDP_SIZE = 407,
201 VAR_DELAY_CLOSE = 408,
202 VAR_UDP_CONNECT = 409,
203 VAR_UNBLOCK_LAN_ZONES = 410,
204 VAR_INSECURE_LAN_ZONES = 411,
205 VAR_INFRA_CACHE_MIN_RTT = 412,
206 VAR_INFRA_KEEP_PROBING = 413,
207 VAR_DNS64_PREFIX = 414,
208 VAR_DNS64_SYNTHALL = 415,
209 VAR_DNS64_IGNORE_AAAA = 416,
210 VAR_DNSTAP = 417,
211 VAR_DNSTAP_ENABLE = 418,
212 VAR_DNSTAP_SOCKET_PATH = 419,
213 VAR_DNSTAP_IP = 420,
214 VAR_DNSTAP_TLS = 421,
215 VAR_DNSTAP_TLS_SERVER_NAME = 422,
216 VAR_DNSTAP_TLS_CERT_BUNDLE = 423,
217 VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 424,
218 VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 425,
219 VAR_DNSTAP_SEND_IDENTITY = 426,
220 VAR_DNSTAP_SEND_VERSION = 427,
221 VAR_DNSTAP_BIDIRECTIONAL = 428,
222 VAR_DNSTAP_IDENTITY = 429,
223 VAR_DNSTAP_VERSION = 430,
224 VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 431,
225 VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 432,
226 VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 433,
227 VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 434,
228 VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 435,
229 VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 436,
230 VAR_RESPONSE_IP_TAG = 437,
231 VAR_RESPONSE_IP = 438,
232 VAR_RESPONSE_IP_DATA = 439,
233 VAR_HARDEN_ALGO_DOWNGRADE = 440,
234 VAR_IP_TRANSPARENT = 441,
235 VAR_IP_DSCP = 442,
236 VAR_DISABLE_DNSSEC_LAME_CHECK = 443,
237 VAR_IP_RATELIMIT = 444,
238 VAR_IP_RATELIMIT_SLABS = 445,
239 VAR_IP_RATELIMIT_SIZE = 446,
240 VAR_RATELIMIT = 447,
241 VAR_RATELIMIT_SLABS = 448,
242 VAR_RATELIMIT_SIZE = 449,
243 VAR_RATELIMIT_FOR_DOMAIN = 450,
244 VAR_RATELIMIT_BELOW_DOMAIN = 451,
245 VAR_IP_RATELIMIT_FACTOR = 452,
246 VAR_RATELIMIT_FACTOR = 453,
247 VAR_SEND_CLIENT_SUBNET = 454,
248 VAR_CLIENT_SUBNET_ZONE = 455,
249 VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 456,
250 VAR_CLIENT_SUBNET_OPCODE = 457,
251 VAR_MAX_CLIENT_SUBNET_IPV4 = 458,
252 VAR_MAX_CLIENT_SUBNET_IPV6 = 459,
253 VAR_MIN_CLIENT_SUBNET_IPV4 = 460,
254 VAR_MIN_CLIENT_SUBNET_IPV6 = 461,
255 VAR_MAX_ECS_TREE_SIZE_IPV4 = 462,
256 VAR_MAX_ECS_TREE_SIZE_IPV6 = 463,
257 VAR_CAPS_WHITELIST = 464,
258 VAR_CACHE_MAX_NEGATIVE_TTL = 465,
259 VAR_PERMIT_SMALL_HOLDDOWN = 466,
260 VAR_QNAME_MINIMISATION = 467,
261 VAR_QNAME_MINIMISATION_STRICT = 468,
262 VAR_IP_FREEBIND = 469,
263 VAR_DEFINE_TAG = 470,
264 VAR_LOCAL_ZONE_TAG = 471,
265 VAR_ACCESS_CONTROL_TAG = 472,
266 VAR_LOCAL_ZONE_OVERRIDE = 473,
267 VAR_ACCESS_CONTROL_TAG_ACTION = 474,
268 VAR_ACCESS_CONTROL_TAG_DATA = 475,
269 VAR_VIEW = 476,
270 VAR_ACCESS_CONTROL_VIEW = 477,
271 VAR_VIEW_FIRST = 478,
272 VAR_SERVE_EXPIRED = 479,
273 VAR_SERVE_EXPIRED_TTL = 480,
274 VAR_SERVE_EXPIRED_TTL_RESET = 481,
275 VAR_SERVE_EXPIRED_REPLY_TTL = 482,
276 VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483,
277 VAR_FAKE_DSA = 484,
278 VAR_FAKE_SHA1 = 485,
279 VAR_LOG_IDENTITY = 486,
280 VAR_HIDE_TRUSTANCHOR = 487,
281 VAR_TRUST_ANCHOR_SIGNALING = 488,
282 VAR_AGGRESSIVE_NSEC = 489,
283 VAR_USE_SYSTEMD = 490,
284 VAR_SHM_ENABLE = 491,
285 VAR_SHM_KEY = 492,
286 VAR_ROOT_KEY_SENTINEL = 493,
287 VAR_DNSCRYPT = 494,
288 VAR_DNSCRYPT_ENABLE = 495,
289 VAR_DNSCRYPT_PORT = 496,
290 VAR_DNSCRYPT_PROVIDER = 497,
291 VAR_DNSCRYPT_SECRET_KEY = 498,
292 VAR_DNSCRYPT_PROVIDER_CERT = 499,
293 VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 500,
294 VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 501,
295 VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 502,
296 VAR_DNSCRYPT_NONCE_CACHE_SIZE = 503,
297 VAR_DNSCRYPT_NONCE_CACHE_SLABS = 504,
298 VAR_IPSECMOD_ENABLED = 505,
299 VAR_IPSECMOD_HOOK = 506,
300 VAR_IPSECMOD_IGNORE_BOGUS = 507,
301 VAR_IPSECMOD_MAX_TTL = 508,
302 VAR_IPSECMOD_WHITELIST = 509,
303 VAR_IPSECMOD_STRICT = 510,
304 VAR_CACHEDB = 511,
305 VAR_CACHEDB_BACKEND = 512,
306 VAR_CACHEDB_SECRETSEED = 513,
307 VAR_CACHEDB_REDISHOST = 514,
308 VAR_CACHEDB_REDISPORT = 515,
309 VAR_CACHEDB_REDISTIMEOUT = 516,
310 VAR_CACHEDB_REDISEXPIRERECORDS = 517,
311 VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 518,
312 VAR_FOR_UPSTREAM = 519,
313 VAR_AUTH_ZONE = 520,
314 VAR_ZONEFILE = 521,
315 VAR_MASTER = 522,
316 VAR_URL = 523,
317 VAR_FOR_DOWNSTREAM = 524,
318 VAR_FALLBACK_ENABLED = 525,
319 VAR_TLS_ADDITIONAL_PORT = 526,
320 VAR_LOW_RTT = 527,
321 VAR_LOW_RTT_PERMIL = 528,
322 VAR_FAST_SERVER_PERMIL = 529,
323 VAR_FAST_SERVER_NUM = 530,
324 VAR_ALLOW_NOTIFY = 531,
325 VAR_TLS_WIN_CERT = 532,
326 VAR_TCP_CONNECTION_LIMIT = 533,
327 VAR_FORWARD_NO_CACHE = 534,
328 VAR_STUB_NO_CACHE = 535,
329 VAR_LOG_SERVFAIL = 536,
330 VAR_DENY_ANY = 537,
331 VAR_UNKNOWN_SERVER_TIME_LIMIT = 538,
332 VAR_LOG_TAG_QUERYREPLY = 539,
333 VAR_STREAM_WAIT_SIZE = 540,
334 VAR_TLS_CIPHERS = 541,
335 VAR_TLS_CIPHERSUITES = 542,
336 VAR_TLS_USE_SNI = 543,
337 VAR_IPSET = 544,
338 VAR_IPSET_NAME_V4 = 545,
339 VAR_IPSET_NAME_V6 = 546,
340 VAR_TLS_SESSION_TICKET_KEYS = 547,
341 VAR_RPZ = 548,
342 VAR_TAGS = 549,
343 VAR_RPZ_ACTION_OVERRIDE = 550,
344 VAR_RPZ_CNAME_OVERRIDE = 551,
345 VAR_RPZ_LOG = 552,
346 VAR_RPZ_LOG_NAME = 553,
347 VAR_DYNLIB = 554,
348 VAR_DYNLIB_FILE = 555,
349 VAR_EDNS_CLIENT_STRING = 556,
350 VAR_EDNS_CLIENT_STRING_OPCODE = 557
52 YYEMPTY = -2,
53 YYEOF = 0, /* "end of file" */
54 YYerror = 256, /* error */
55 YYUNDEF = 257, /* "invalid token" */
56 SPACE = 258, /* SPACE */
57 LETTER = 259, /* LETTER */
58 NEWLINE = 260, /* NEWLINE */
59 COMMENT = 261, /* COMMENT */
60 COLON = 262, /* COLON */
61 ANY = 263, /* ANY */
62 ZONESTR = 264, /* ZONESTR */
63 STRING_ARG = 265, /* STRING_ARG */
64 VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */
65 VAR_SERVER = 267, /* VAR_SERVER */
66 VAR_VERBOSITY = 268, /* VAR_VERBOSITY */
67 VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */
68 VAR_PORT = 270, /* VAR_PORT */
69 VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */
70 VAR_INTERFACE = 272, /* VAR_INTERFACE */
71 VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */
72 VAR_DO_IP4 = 274, /* VAR_DO_IP4 */
73 VAR_DO_IP6 = 275, /* VAR_DO_IP6 */
74 VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */
75 VAR_DO_UDP = 277, /* VAR_DO_UDP */
76 VAR_DO_TCP = 278, /* VAR_DO_TCP */
77 VAR_TCP_MSS = 279, /* VAR_TCP_MSS */
78 VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */
79 VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */
80 VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */
81 VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */
82 VAR_CHROOT = 284, /* VAR_CHROOT */
83 VAR_USERNAME = 285, /* VAR_USERNAME */
84 VAR_DIRECTORY = 286, /* VAR_DIRECTORY */
85 VAR_LOGFILE = 287, /* VAR_LOGFILE */
86 VAR_PIDFILE = 288, /* VAR_PIDFILE */
87 VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */
88 VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */
89 VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */
90 VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */
91 VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */
92 VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */
93 VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */
94 VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */
95 VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */
96 VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */
97 VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */
98 VAR_NAME = 300, /* VAR_NAME */
99 VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */
100 VAR_STUB_HOST = 302, /* VAR_STUB_HOST */
101 VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */
102 VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */
103 VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */
104 VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */
105 VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */
106 VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */
107 VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */
108 VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */
109 VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */
110 VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */
111 VAR_IDENTITY = 313, /* VAR_IDENTITY */
112 VAR_VERSION = 314, /* VAR_VERSION */
113 VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */
114 VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */
115 VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */
116 VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */
117 VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */
118 VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */
119 VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */
120 VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */
121 VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */
122 VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */
123 VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */
124 VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */
125 VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */
126 VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */
127 VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */
128 VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */
129 VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */
130 VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */
131 VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */
132 VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */
133 VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */
134 VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */
135 VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */
136 VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */
137 VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */
138 VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */
139 VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */
140 VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */
141 VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */
142 VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */
143 VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */
144 VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */
145 VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */
146 VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */
147 VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */
148 VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */
149 VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */
150 VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */
151 VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */
152 VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */
153 VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */
154 VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */
155 VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */
156 VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */
157 VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */
158 VAR_EXTENDED_STATISTICS = 360, /* VAR_EXTENDED_STATISTICS */
159 VAR_LOCAL_DATA_PTR = 361, /* VAR_LOCAL_DATA_PTR */
160 VAR_JOSTLE_TIMEOUT = 362, /* VAR_JOSTLE_TIMEOUT */
161 VAR_STUB_PRIME = 363, /* VAR_STUB_PRIME */
162 VAR_UNWANTED_REPLY_THRESHOLD = 364, /* VAR_UNWANTED_REPLY_THRESHOLD */
163 VAR_LOG_TIME_ASCII = 365, /* VAR_LOG_TIME_ASCII */
164 VAR_DOMAIN_INSECURE = 366, /* VAR_DOMAIN_INSECURE */
165 VAR_PYTHON = 367, /* VAR_PYTHON */
166 VAR_PYTHON_SCRIPT = 368, /* VAR_PYTHON_SCRIPT */
167 VAR_VAL_SIG_SKEW_MIN = 369, /* VAR_VAL_SIG_SKEW_MIN */
168 VAR_VAL_SIG_SKEW_MAX = 370, /* VAR_VAL_SIG_SKEW_MAX */
169 VAR_CACHE_MIN_TTL = 371, /* VAR_CACHE_MIN_TTL */
170 VAR_VAL_LOG_LEVEL = 372, /* VAR_VAL_LOG_LEVEL */
171 VAR_AUTO_TRUST_ANCHOR_FILE = 373, /* VAR_AUTO_TRUST_ANCHOR_FILE */
172 VAR_KEEP_MISSING = 374, /* VAR_KEEP_MISSING */
173 VAR_ADD_HOLDDOWN = 375, /* VAR_ADD_HOLDDOWN */
174 VAR_DEL_HOLDDOWN = 376, /* VAR_DEL_HOLDDOWN */
175 VAR_SO_RCVBUF = 377, /* VAR_SO_RCVBUF */
176 VAR_EDNS_BUFFER_SIZE = 378, /* VAR_EDNS_BUFFER_SIZE */
177 VAR_PREFETCH = 379, /* VAR_PREFETCH */
178 VAR_PREFETCH_KEY = 380, /* VAR_PREFETCH_KEY */
179 VAR_SO_SNDBUF = 381, /* VAR_SO_SNDBUF */
180 VAR_SO_REUSEPORT = 382, /* VAR_SO_REUSEPORT */
181 VAR_HARDEN_BELOW_NXDOMAIN = 383, /* VAR_HARDEN_BELOW_NXDOMAIN */
182 VAR_IGNORE_CD_FLAG = 384, /* VAR_IGNORE_CD_FLAG */
183 VAR_LOG_QUERIES = 385, /* VAR_LOG_QUERIES */
184 VAR_LOG_REPLIES = 386, /* VAR_LOG_REPLIES */
185 VAR_LOG_LOCAL_ACTIONS = 387, /* VAR_LOG_LOCAL_ACTIONS */
186 VAR_TCP_UPSTREAM = 388, /* VAR_TCP_UPSTREAM */
187 VAR_SSL_UPSTREAM = 389, /* VAR_SSL_UPSTREAM */
188 VAR_SSL_SERVICE_KEY = 390, /* VAR_SSL_SERVICE_KEY */
189 VAR_SSL_SERVICE_PEM = 391, /* VAR_SSL_SERVICE_PEM */
190 VAR_SSL_PORT = 392, /* VAR_SSL_PORT */
191 VAR_FORWARD_FIRST = 393, /* VAR_FORWARD_FIRST */
192 VAR_STUB_SSL_UPSTREAM = 394, /* VAR_STUB_SSL_UPSTREAM */
193 VAR_FORWARD_SSL_UPSTREAM = 395, /* VAR_FORWARD_SSL_UPSTREAM */
194 VAR_TLS_CERT_BUNDLE = 396, /* VAR_TLS_CERT_BUNDLE */
195 VAR_HTTPS_PORT = 397, /* VAR_HTTPS_PORT */
196 VAR_HTTP_ENDPOINT = 398, /* VAR_HTTP_ENDPOINT */
197 VAR_HTTP_MAX_STREAMS = 399, /* VAR_HTTP_MAX_STREAMS */
198 VAR_HTTP_QUERY_BUFFER_SIZE = 400, /* VAR_HTTP_QUERY_BUFFER_SIZE */
199 VAR_HTTP_RESPONSE_BUFFER_SIZE = 401, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */
200 VAR_HTTP_NODELAY = 402, /* VAR_HTTP_NODELAY */
201 VAR_HTTP_NOTLS_DOWNSTREAM = 403, /* VAR_HTTP_NOTLS_DOWNSTREAM */
202 VAR_STUB_FIRST = 404, /* VAR_STUB_FIRST */
203 VAR_MINIMAL_RESPONSES = 405, /* VAR_MINIMAL_RESPONSES */
204 VAR_RRSET_ROUNDROBIN = 406, /* VAR_RRSET_ROUNDROBIN */
205 VAR_MAX_UDP_SIZE = 407, /* VAR_MAX_UDP_SIZE */
206 VAR_DELAY_CLOSE = 408, /* VAR_DELAY_CLOSE */
207 VAR_UDP_CONNECT = 409, /* VAR_UDP_CONNECT */
208 VAR_UNBLOCK_LAN_ZONES = 410, /* VAR_UNBLOCK_LAN_ZONES */
209 VAR_INSECURE_LAN_ZONES = 411, /* VAR_INSECURE_LAN_ZONES */
210 VAR_INFRA_CACHE_MIN_RTT = 412, /* VAR_INFRA_CACHE_MIN_RTT */
211 VAR_INFRA_KEEP_PROBING = 413, /* VAR_INFRA_KEEP_PROBING */
212 VAR_DNS64_PREFIX = 414, /* VAR_DNS64_PREFIX */
213 VAR_DNS64_SYNTHALL = 415, /* VAR_DNS64_SYNTHALL */
214 VAR_DNS64_IGNORE_AAAA = 416, /* VAR_DNS64_IGNORE_AAAA */
215 VAR_DNSTAP = 417, /* VAR_DNSTAP */
216 VAR_DNSTAP_ENABLE = 418, /* VAR_DNSTAP_ENABLE */
217 VAR_DNSTAP_SOCKET_PATH = 419, /* VAR_DNSTAP_SOCKET_PATH */
218 VAR_DNSTAP_IP = 420, /* VAR_DNSTAP_IP */
219 VAR_DNSTAP_TLS = 421, /* VAR_DNSTAP_TLS */
220 VAR_DNSTAP_TLS_SERVER_NAME = 422, /* VAR_DNSTAP_TLS_SERVER_NAME */
221 VAR_DNSTAP_TLS_CERT_BUNDLE = 423, /* VAR_DNSTAP_TLS_CERT_BUNDLE */
222 VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 424, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */
223 VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 425, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */
224 VAR_DNSTAP_SEND_IDENTITY = 426, /* VAR_DNSTAP_SEND_IDENTITY */
225 VAR_DNSTAP_SEND_VERSION = 427, /* VAR_DNSTAP_SEND_VERSION */
226 VAR_DNSTAP_BIDIRECTIONAL = 428, /* VAR_DNSTAP_BIDIRECTIONAL */
227 VAR_DNSTAP_IDENTITY = 429, /* VAR_DNSTAP_IDENTITY */
228 VAR_DNSTAP_VERSION = 430, /* VAR_DNSTAP_VERSION */
229 VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 431, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */
230 VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 432, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */
231 VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */
232 VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */
233 VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */
234 VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */
235 VAR_RESPONSE_IP_TAG = 437, /* VAR_RESPONSE_IP_TAG */
236 VAR_RESPONSE_IP = 438, /* VAR_RESPONSE_IP */
237 VAR_RESPONSE_IP_DATA = 439, /* VAR_RESPONSE_IP_DATA */
238 VAR_HARDEN_ALGO_DOWNGRADE = 440, /* VAR_HARDEN_ALGO_DOWNGRADE */
239 VAR_IP_TRANSPARENT = 441, /* VAR_IP_TRANSPARENT */
240 VAR_IP_DSCP = 442, /* VAR_IP_DSCP */
241 VAR_DISABLE_DNSSEC_LAME_CHECK = 443, /* VAR_DISABLE_DNSSEC_LAME_CHECK */
242 VAR_IP_RATELIMIT = 444, /* VAR_IP_RATELIMIT */
243 VAR_IP_RATELIMIT_SLABS = 445, /* VAR_IP_RATELIMIT_SLABS */
244 VAR_IP_RATELIMIT_SIZE = 446, /* VAR_IP_RATELIMIT_SIZE */
245 VAR_RATELIMIT = 447, /* VAR_RATELIMIT */
246 VAR_RATELIMIT_SLABS = 448, /* VAR_RATELIMIT_SLABS */
247 VAR_RATELIMIT_SIZE = 449, /* VAR_RATELIMIT_SIZE */
248 VAR_RATELIMIT_FOR_DOMAIN = 450, /* VAR_RATELIMIT_FOR_DOMAIN */
249 VAR_RATELIMIT_BELOW_DOMAIN = 451, /* VAR_RATELIMIT_BELOW_DOMAIN */
250 VAR_IP_RATELIMIT_FACTOR = 452, /* VAR_IP_RATELIMIT_FACTOR */
251 VAR_RATELIMIT_FACTOR = 453, /* VAR_RATELIMIT_FACTOR */
252 VAR_SEND_CLIENT_SUBNET = 454, /* VAR_SEND_CLIENT_SUBNET */
253 VAR_CLIENT_SUBNET_ZONE = 455, /* VAR_CLIENT_SUBNET_ZONE */
254 VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 456, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */
255 VAR_CLIENT_SUBNET_OPCODE = 457, /* VAR_CLIENT_SUBNET_OPCODE */
256 VAR_MAX_CLIENT_SUBNET_IPV4 = 458, /* VAR_MAX_CLIENT_SUBNET_IPV4 */
257 VAR_MAX_CLIENT_SUBNET_IPV6 = 459, /* VAR_MAX_CLIENT_SUBNET_IPV6 */
258 VAR_MIN_CLIENT_SUBNET_IPV4 = 460, /* VAR_MIN_CLIENT_SUBNET_IPV4 */
259 VAR_MIN_CLIENT_SUBNET_IPV6 = 461, /* VAR_MIN_CLIENT_SUBNET_IPV6 */
260 VAR_MAX_ECS_TREE_SIZE_IPV4 = 462, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */
261 VAR_MAX_ECS_TREE_SIZE_IPV6 = 463, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */
262 VAR_CAPS_WHITELIST = 464, /* VAR_CAPS_WHITELIST */
263 VAR_CACHE_MAX_NEGATIVE_TTL = 465, /* VAR_CACHE_MAX_NEGATIVE_TTL */
264 VAR_PERMIT_SMALL_HOLDDOWN = 466, /* VAR_PERMIT_SMALL_HOLDDOWN */
265 VAR_QNAME_MINIMISATION = 467, /* VAR_QNAME_MINIMISATION */
266 VAR_QNAME_MINIMISATION_STRICT = 468, /* VAR_QNAME_MINIMISATION_STRICT */
267 VAR_IP_FREEBIND = 469, /* VAR_IP_FREEBIND */
268 VAR_DEFINE_TAG = 470, /* VAR_DEFINE_TAG */
269 VAR_LOCAL_ZONE_TAG = 471, /* VAR_LOCAL_ZONE_TAG */
270 VAR_ACCESS_CONTROL_TAG = 472, /* VAR_ACCESS_CONTROL_TAG */
271 VAR_LOCAL_ZONE_OVERRIDE = 473, /* VAR_LOCAL_ZONE_OVERRIDE */
272 VAR_ACCESS_CONTROL_TAG_ACTION = 474, /* VAR_ACCESS_CONTROL_TAG_ACTION */
273 VAR_ACCESS_CONTROL_TAG_DATA = 475, /* VAR_ACCESS_CONTROL_TAG_DATA */
274 VAR_VIEW = 476, /* VAR_VIEW */
275 VAR_ACCESS_CONTROL_VIEW = 477, /* VAR_ACCESS_CONTROL_VIEW */
276 VAR_VIEW_FIRST = 478, /* VAR_VIEW_FIRST */
277 VAR_SERVE_EXPIRED = 479, /* VAR_SERVE_EXPIRED */
278 VAR_SERVE_EXPIRED_TTL = 480, /* VAR_SERVE_EXPIRED_TTL */
279 VAR_SERVE_EXPIRED_TTL_RESET = 481, /* VAR_SERVE_EXPIRED_TTL_RESET */
280 VAR_SERVE_EXPIRED_REPLY_TTL = 482, /* VAR_SERVE_EXPIRED_REPLY_TTL */
281 VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */
282 VAR_SERVE_ORIGINAL_TTL = 484, /* VAR_SERVE_ORIGINAL_TTL */
283 VAR_FAKE_DSA = 485, /* VAR_FAKE_DSA */
284 VAR_FAKE_SHA1 = 486, /* VAR_FAKE_SHA1 */
285 VAR_LOG_IDENTITY = 487, /* VAR_LOG_IDENTITY */
286 VAR_HIDE_TRUSTANCHOR = 488, /* VAR_HIDE_TRUSTANCHOR */
287 VAR_TRUST_ANCHOR_SIGNALING = 489, /* VAR_TRUST_ANCHOR_SIGNALING */
288 VAR_AGGRESSIVE_NSEC = 490, /* VAR_AGGRESSIVE_NSEC */
289 VAR_USE_SYSTEMD = 491, /* VAR_USE_SYSTEMD */
290 VAR_SHM_ENABLE = 492, /* VAR_SHM_ENABLE */
291 VAR_SHM_KEY = 493, /* VAR_SHM_KEY */
292 VAR_ROOT_KEY_SENTINEL = 494, /* VAR_ROOT_KEY_SENTINEL */
293 VAR_DNSCRYPT = 495, /* VAR_DNSCRYPT */
294 VAR_DNSCRYPT_ENABLE = 496, /* VAR_DNSCRYPT_ENABLE */
295 VAR_DNSCRYPT_PORT = 497, /* VAR_DNSCRYPT_PORT */
296 VAR_DNSCRYPT_PROVIDER = 498, /* VAR_DNSCRYPT_PROVIDER */
297 VAR_DNSCRYPT_SECRET_KEY = 499, /* VAR_DNSCRYPT_SECRET_KEY */
298 VAR_DNSCRYPT_PROVIDER_CERT = 500, /* VAR_DNSCRYPT_PROVIDER_CERT */
299 VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 501, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */
300 VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 502, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */
301 VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 503, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */
302 VAR_DNSCRYPT_NONCE_CACHE_SIZE = 504, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */
303 VAR_DNSCRYPT_NONCE_CACHE_SLABS = 505, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */
304 VAR_PAD_RESPONSES = 506, /* VAR_PAD_RESPONSES */
305 VAR_PAD_RESPONSES_BLOCK_SIZE = 507, /* VAR_PAD_RESPONSES_BLOCK_SIZE */
306 VAR_PAD_QUERIES = 508, /* VAR_PAD_QUERIES */
307 VAR_PAD_QUERIES_BLOCK_SIZE = 509, /* VAR_PAD_QUERIES_BLOCK_SIZE */
308 VAR_IPSECMOD_ENABLED = 510, /* VAR_IPSECMOD_ENABLED */
309 VAR_IPSECMOD_HOOK = 511, /* VAR_IPSECMOD_HOOK */
310 VAR_IPSECMOD_IGNORE_BOGUS = 512, /* VAR_IPSECMOD_IGNORE_BOGUS */
311 VAR_IPSECMOD_MAX_TTL = 513, /* VAR_IPSECMOD_MAX_TTL */
312 VAR_IPSECMOD_WHITELIST = 514, /* VAR_IPSECMOD_WHITELIST */
313 VAR_IPSECMOD_STRICT = 515, /* VAR_IPSECMOD_STRICT */
314 VAR_CACHEDB = 516, /* VAR_CACHEDB */
315 VAR_CACHEDB_BACKEND = 517, /* VAR_CACHEDB_BACKEND */
316 VAR_CACHEDB_SECRETSEED = 518, /* VAR_CACHEDB_SECRETSEED */
317 VAR_CACHEDB_REDISHOST = 519, /* VAR_CACHEDB_REDISHOST */
318 VAR_CACHEDB_REDISPORT = 520, /* VAR_CACHEDB_REDISPORT */
319 VAR_CACHEDB_REDISTIMEOUT = 521, /* VAR_CACHEDB_REDISTIMEOUT */
320 VAR_CACHEDB_REDISEXPIRERECORDS = 522, /* VAR_CACHEDB_REDISEXPIRERECORDS */
321 VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 523, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */
322 VAR_FOR_UPSTREAM = 524, /* VAR_FOR_UPSTREAM */
323 VAR_AUTH_ZONE = 525, /* VAR_AUTH_ZONE */
324 VAR_ZONEFILE = 526, /* VAR_ZONEFILE */
325 VAR_MASTER = 527, /* VAR_MASTER */
326 VAR_URL = 528, /* VAR_URL */
327 VAR_FOR_DOWNSTREAM = 529, /* VAR_FOR_DOWNSTREAM */
328 VAR_FALLBACK_ENABLED = 530, /* VAR_FALLBACK_ENABLED */
329 VAR_TLS_ADDITIONAL_PORT = 531, /* VAR_TLS_ADDITIONAL_PORT */
330 VAR_LOW_RTT = 532, /* VAR_LOW_RTT */
331 VAR_LOW_RTT_PERMIL = 533, /* VAR_LOW_RTT_PERMIL */
332 VAR_FAST_SERVER_PERMIL = 534, /* VAR_FAST_SERVER_PERMIL */
333 VAR_FAST_SERVER_NUM = 535, /* VAR_FAST_SERVER_NUM */
334 VAR_ALLOW_NOTIFY = 536, /* VAR_ALLOW_NOTIFY */
335 VAR_TLS_WIN_CERT = 537, /* VAR_TLS_WIN_CERT */
336 VAR_TCP_CONNECTION_LIMIT = 538, /* VAR_TCP_CONNECTION_LIMIT */
337 VAR_FORWARD_NO_CACHE = 539, /* VAR_FORWARD_NO_CACHE */
338 VAR_STUB_NO_CACHE = 540, /* VAR_STUB_NO_CACHE */
339 VAR_LOG_SERVFAIL = 541, /* VAR_LOG_SERVFAIL */
340 VAR_DENY_ANY = 542, /* VAR_DENY_ANY */
341 VAR_UNKNOWN_SERVER_TIME_LIMIT = 543, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */
342 VAR_LOG_TAG_QUERYREPLY = 544, /* VAR_LOG_TAG_QUERYREPLY */
343 VAR_STREAM_WAIT_SIZE = 545, /* VAR_STREAM_WAIT_SIZE */
344 VAR_TLS_CIPHERS = 546, /* VAR_TLS_CIPHERS */
345 VAR_TLS_CIPHERSUITES = 547, /* VAR_TLS_CIPHERSUITES */
346 VAR_TLS_USE_SNI = 548, /* VAR_TLS_USE_SNI */
347 VAR_IPSET = 549, /* VAR_IPSET */
348 VAR_IPSET_NAME_V4 = 550, /* VAR_IPSET_NAME_V4 */
349 VAR_IPSET_NAME_V6 = 551, /* VAR_IPSET_NAME_V6 */
350 VAR_TLS_SESSION_TICKET_KEYS = 552, /* VAR_TLS_SESSION_TICKET_KEYS */
351 VAR_RPZ = 553, /* VAR_RPZ */
352 VAR_TAGS = 554, /* VAR_TAGS */
353 VAR_RPZ_ACTION_OVERRIDE = 555, /* VAR_RPZ_ACTION_OVERRIDE */
354 VAR_RPZ_CNAME_OVERRIDE = 556, /* VAR_RPZ_CNAME_OVERRIDE */
355 VAR_RPZ_LOG = 557, /* VAR_RPZ_LOG */
356 VAR_RPZ_LOG_NAME = 558, /* VAR_RPZ_LOG_NAME */
357 VAR_DYNLIB = 559, /* VAR_DYNLIB */
358 VAR_DYNLIB_FILE = 560, /* VAR_DYNLIB_FILE */
359 VAR_EDNS_CLIENT_STRING = 561, /* VAR_EDNS_CLIENT_STRING */
360 VAR_EDNS_CLIENT_STRING_OPCODE = 562, /* VAR_EDNS_CLIENT_STRING_OPCODE */
361 VAR_NSID = 563 /* VAR_NSID */
351362 };
363 typedef enum yytokentype yytoken_kind_t;
352364 #endif
353 /* Tokens. */
365 /* Token kinds. */
366 #define YYEOF 0
367 #define YYerror 256
368 #define YYUNDEF 257
354369 #define SPACE 258
355370 #define LETTER 259
356371 #define NEWLINE 260
577592 #define VAR_SERVE_EXPIRED_TTL_RESET 481
578593 #define VAR_SERVE_EXPIRED_REPLY_TTL 482
579594 #define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 483
580 #define VAR_FAKE_DSA 484
581 #define VAR_FAKE_SHA1 485
582 #define VAR_LOG_IDENTITY 486
583 #define VAR_HIDE_TRUSTANCHOR 487
584 #define VAR_TRUST_ANCHOR_SIGNALING 488
585 #define VAR_AGGRESSIVE_NSEC 489
586 #define VAR_USE_SYSTEMD 490
587 #define VAR_SHM_ENABLE 491
588 #define VAR_SHM_KEY 492
589 #define VAR_ROOT_KEY_SENTINEL 493
590 #define VAR_DNSCRYPT 494
591 #define VAR_DNSCRYPT_ENABLE 495
592 #define VAR_DNSCRYPT_PORT 496
593 #define VAR_DNSCRYPT_PROVIDER 497
594 #define VAR_DNSCRYPT_SECRET_KEY 498
595 #define VAR_DNSCRYPT_PROVIDER_CERT 499
596 #define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 500
597 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 501
598 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 502
599 #define VAR_DNSCRYPT_NONCE_CACHE_SIZE 503
600 #define VAR_DNSCRYPT_NONCE_CACHE_SLABS 504
601 #define VAR_IPSECMOD_ENABLED 505
602 #define VAR_IPSECMOD_HOOK 506
603 #define VAR_IPSECMOD_IGNORE_BOGUS 507
604 #define VAR_IPSECMOD_MAX_TTL 508
605 #define VAR_IPSECMOD_WHITELIST 509
606 #define VAR_IPSECMOD_STRICT 510
607 #define VAR_CACHEDB 511
608 #define VAR_CACHEDB_BACKEND 512
609 #define VAR_CACHEDB_SECRETSEED 513
610 #define VAR_CACHEDB_REDISHOST 514
611 #define VAR_CACHEDB_REDISPORT 515
612 #define VAR_CACHEDB_REDISTIMEOUT 516
613 #define VAR_CACHEDB_REDISEXPIRERECORDS 517
614 #define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 518
615 #define VAR_FOR_UPSTREAM 519
616 #define VAR_AUTH_ZONE 520
617 #define VAR_ZONEFILE 521
618 #define VAR_MASTER 522
619 #define VAR_URL 523
620 #define VAR_FOR_DOWNSTREAM 524
621 #define VAR_FALLBACK_ENABLED 525
622 #define VAR_TLS_ADDITIONAL_PORT 526
623 #define VAR_LOW_RTT 527
624 #define VAR_LOW_RTT_PERMIL 528
625 #define VAR_FAST_SERVER_PERMIL 529
626 #define VAR_FAST_SERVER_NUM 530
627 #define VAR_ALLOW_NOTIFY 531
628 #define VAR_TLS_WIN_CERT 532
629 #define VAR_TCP_CONNECTION_LIMIT 533
630 #define VAR_FORWARD_NO_CACHE 534
631 #define VAR_STUB_NO_CACHE 535
632 #define VAR_LOG_SERVFAIL 536
633 #define VAR_DENY_ANY 537
634 #define VAR_UNKNOWN_SERVER_TIME_LIMIT 538
635 #define VAR_LOG_TAG_QUERYREPLY 539
636 #define VAR_STREAM_WAIT_SIZE 540
637 #define VAR_TLS_CIPHERS 541
638 #define VAR_TLS_CIPHERSUITES 542
639 #define VAR_TLS_USE_SNI 543
640 #define VAR_IPSET 544
641 #define VAR_IPSET_NAME_V4 545
642 #define VAR_IPSET_NAME_V6 546
643 #define VAR_TLS_SESSION_TICKET_KEYS 547
644 #define VAR_RPZ 548
645 #define VAR_TAGS 549
646 #define VAR_RPZ_ACTION_OVERRIDE 550
647 #define VAR_RPZ_CNAME_OVERRIDE 551
648 #define VAR_RPZ_LOG 552
649 #define VAR_RPZ_LOG_NAME 553
650 #define VAR_DYNLIB 554
651 #define VAR_DYNLIB_FILE 555
652 #define VAR_EDNS_CLIENT_STRING 556
653 #define VAR_EDNS_CLIENT_STRING_OPCODE 557
595 #define VAR_SERVE_ORIGINAL_TTL 484
596 #define VAR_FAKE_DSA 485
597 #define VAR_FAKE_SHA1 486
598 #define VAR_LOG_IDENTITY 487
599 #define VAR_HIDE_TRUSTANCHOR 488
600 #define VAR_TRUST_ANCHOR_SIGNALING 489
601 #define VAR_AGGRESSIVE_NSEC 490
602 #define VAR_USE_SYSTEMD 491
603 #define VAR_SHM_ENABLE 492
604 #define VAR_SHM_KEY 493
605 #define VAR_ROOT_KEY_SENTINEL 494
606 #define VAR_DNSCRYPT 495
607 #define VAR_DNSCRYPT_ENABLE 496
608 #define VAR_DNSCRYPT_PORT 497
609 #define VAR_DNSCRYPT_PROVIDER 498
610 #define VAR_DNSCRYPT_SECRET_KEY 499
611 #define VAR_DNSCRYPT_PROVIDER_CERT 500
612 #define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 501
613 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 502
614 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 503
615 #define VAR_DNSCRYPT_NONCE_CACHE_SIZE 504
616 #define VAR_DNSCRYPT_NONCE_CACHE_SLABS 505
617 #define VAR_PAD_RESPONSES 506
618 #define VAR_PAD_RESPONSES_BLOCK_SIZE 507
619 #define VAR_PAD_QUERIES 508
620 #define VAR_PAD_QUERIES_BLOCK_SIZE 509
621 #define VAR_IPSECMOD_ENABLED 510
622 #define VAR_IPSECMOD_HOOK 511
623 #define VAR_IPSECMOD_IGNORE_BOGUS 512
624 #define VAR_IPSECMOD_MAX_TTL 513
625 #define VAR_IPSECMOD_WHITELIST 514
626 #define VAR_IPSECMOD_STRICT 515
627 #define VAR_CACHEDB 516
628 #define VAR_CACHEDB_BACKEND 517
629 #define VAR_CACHEDB_SECRETSEED 518
630 #define VAR_CACHEDB_REDISHOST 519
631 #define VAR_CACHEDB_REDISPORT 520
632 #define VAR_CACHEDB_REDISTIMEOUT 521
633 #define VAR_CACHEDB_REDISEXPIRERECORDS 522
634 #define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 523
635 #define VAR_FOR_UPSTREAM 524
636 #define VAR_AUTH_ZONE 525
637 #define VAR_ZONEFILE 526
638 #define VAR_MASTER 527
639 #define VAR_URL 528
640 #define VAR_FOR_DOWNSTREAM 529
641 #define VAR_FALLBACK_ENABLED 530
642 #define VAR_TLS_ADDITIONAL_PORT 531
643 #define VAR_LOW_RTT 532
644 #define VAR_LOW_RTT_PERMIL 533
645 #define VAR_FAST_SERVER_PERMIL 534
646 #define VAR_FAST_SERVER_NUM 535
647 #define VAR_ALLOW_NOTIFY 536
648 #define VAR_TLS_WIN_CERT 537
649 #define VAR_TCP_CONNECTION_LIMIT 538
650 #define VAR_FORWARD_NO_CACHE 539
651 #define VAR_STUB_NO_CACHE 540
652 #define VAR_LOG_SERVFAIL 541
653 #define VAR_DENY_ANY 542
654 #define VAR_UNKNOWN_SERVER_TIME_LIMIT 543
655 #define VAR_LOG_TAG_QUERYREPLY 544
656 #define VAR_STREAM_WAIT_SIZE 545
657 #define VAR_TLS_CIPHERS 546
658 #define VAR_TLS_CIPHERSUITES 547
659 #define VAR_TLS_USE_SNI 548
660 #define VAR_IPSET 549
661 #define VAR_IPSET_NAME_V4 550
662 #define VAR_IPSET_NAME_V6 551
663 #define VAR_TLS_SESSION_TICKET_KEYS 552
664 #define VAR_RPZ 553
665 #define VAR_TAGS 554
666 #define VAR_RPZ_ACTION_OVERRIDE 555
667 #define VAR_RPZ_CNAME_OVERRIDE 556
668 #define VAR_RPZ_LOG 557
669 #define VAR_RPZ_LOG_NAME 558
670 #define VAR_DYNLIB 559
671 #define VAR_DYNLIB_FILE 560
672 #define VAR_EDNS_CLIENT_STRING 561
673 #define VAR_EDNS_CLIENT_STRING_OPCODE 562
674 #define VAR_NSID 563
654675
655676 /* Value type. */
656677 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
660681
661682 char* str;
662683
663 #line 665 "util/configparser.h"
684 #line 686 "util/configparser.h"
664685
665686 };
666687 typedef union YYSTYPE YYSTYPE;
150150 %token VAR_ACCESS_CONTROL_TAG_DATA VAR_VIEW VAR_ACCESS_CONTROL_VIEW
151151 %token VAR_VIEW_FIRST VAR_SERVE_EXPIRED VAR_SERVE_EXPIRED_TTL
152152 %token VAR_SERVE_EXPIRED_TTL_RESET VAR_SERVE_EXPIRED_REPLY_TTL
153 %token VAR_SERVE_EXPIRED_CLIENT_TIMEOUT VAR_FAKE_DSA
153 %token VAR_SERVE_EXPIRED_CLIENT_TIMEOUT VAR_SERVE_ORIGINAL_TTL VAR_FAKE_DSA
154154 %token VAR_FAKE_SHA1 VAR_LOG_IDENTITY VAR_HIDE_TRUSTANCHOR
155155 %token VAR_TRUST_ANCHOR_SIGNALING VAR_AGGRESSIVE_NSEC VAR_USE_SYSTEMD
156156 %token VAR_SHM_ENABLE VAR_SHM_KEY VAR_ROOT_KEY_SENTINEL
161161 %token VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS
162162 %token VAR_DNSCRYPT_NONCE_CACHE_SIZE
163163 %token VAR_DNSCRYPT_NONCE_CACHE_SLABS
164 %token VAR_PAD_RESPONSES VAR_PAD_RESPONSES_BLOCK_SIZE
165 %token VAR_PAD_QUERIES VAR_PAD_QUERIES_BLOCK_SIZE
164166 %token VAR_IPSECMOD_ENABLED VAR_IPSECMOD_HOOK VAR_IPSECMOD_IGNORE_BOGUS
165167 %token VAR_IPSECMOD_MAX_TTL VAR_IPSECMOD_WHITELIST VAR_IPSECMOD_STRICT
166168 %token VAR_CACHEDB VAR_CACHEDB_BACKEND VAR_CACHEDB_SECRETSEED
178180 %token VAR_TLS_SESSION_TICKET_KEYS VAR_RPZ VAR_TAGS VAR_RPZ_ACTION_OVERRIDE
179181 %token VAR_RPZ_CNAME_OVERRIDE VAR_RPZ_LOG VAR_RPZ_LOG_NAME
180182 %token VAR_DYNLIB VAR_DYNLIB_FILE VAR_EDNS_CLIENT_STRING
181 %token VAR_EDNS_CLIENT_STRING_OPCODE
183 %token VAR_EDNS_CLIENT_STRING_OPCODE VAR_NSID
182184
183185 %%
184186 toplevelvars: /* empty */ | toplevelvars toplevelvar ;
273275 server_disable_dnssec_lame_check | server_access_control_tag |
274276 server_local_zone_override | server_access_control_tag_action |
275277 server_access_control_tag_data | server_access_control_view |
276 server_qname_minimisation_strict | server_serve_expired |
278 server_qname_minimisation_strict |
279 server_pad_responses | server_pad_responses_block_size |
280 server_pad_queries | server_pad_queries_block_size |
281 server_serve_expired |
277282 server_serve_expired_ttl | server_serve_expired_ttl_reset |
278283 server_serve_expired_reply_ttl | server_serve_expired_client_timeout |
279 server_fake_dsa | server_log_identity | server_use_systemd |
284 server_serve_original_ttl | server_fake_dsa |
285 server_log_identity | server_use_systemd |
280286 server_response_ip_tag | server_response_ip | server_response_ip_data |
281287 server_shm_enable | server_shm_key | server_fake_sha1 |
282288 server_hide_trustanchor | server_trust_anchor_signaling |
292298 server_stream_wait_size | server_tls_ciphers |
293299 server_tls_ciphersuites | server_tls_session_ticket_keys |
294300 server_tls_use_sni | server_edns_client_string |
295 server_edns_client_string_opcode
301 server_edns_client_string_opcode | server_nsid
296302 ;
297303 stubstart: VAR_STUB_ZONE
298304 {
13011307 OUTYY(("P(server_version:%s)\n", $2));
13021308 free(cfg_parser->cfg->version);
13031309 cfg_parser->cfg->version = $2;
1310 }
1311 ;
1312 server_nsid: VAR_NSID STRING_ARG
1313 {
1314 OUTYY(("P(server_nsid:%s)\n", $2));
1315 free(cfg_parser->cfg->nsid_cfg_str);
1316 cfg_parser->cfg->nsid_cfg_str = $2;
1317 free(cfg_parser->cfg->nsid);
1318 cfg_parser->cfg->nsid = NULL;
1319 cfg_parser->cfg->nsid_len = 0;
1320 if (*$2 == 0)
1321 ; /* pass; empty string is not setting nsid */
1322 else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid(
1323 $2, &cfg_parser->cfg->nsid_len)))
1324 yyerror("the NSID must be either a hex string or an "
1325 "ascii character string prepended with ascii_.");
13041326 }
13051327 ;
13061328 server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG
19121934 free($2);
19131935 }
19141936 ;
1937 server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG
1938 {
1939 OUTYY(("P(server_serve_original_ttl:%s)\n", $2));
1940 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
1941 yyerror("expected yes or no.");
1942 else cfg_parser->cfg->serve_original_ttl = (strcmp($2, "yes")==0);
1943 free($2);
1944 }
1945 ;
19151946 server_fake_dsa: VAR_FAKE_DSA STRING_ARG
19161947 {
19171948 OUTYY(("P(server_fake_dsa:%s)\n", $2));
20292060 && strcmp($3, "always_transparent")!=0
20302061 && strcmp($3, "always_refuse")!=0
20312062 && strcmp($3, "always_nxdomain")!=0
2063 && strcmp($3, "always_nodata")!=0
2064 && strcmp($3, "always_deny")!=0
2065 && strcmp($3, "always_null")!=0
20322066 && strcmp($3, "noview")!=0
20332067 && strcmp($3, "inform")!=0 && strcmp($3, "inform_deny")!=0
20342068 && strcmp($3, "inform_redirect") != 0
20372071 "refuse, redirect, transparent, "
20382072 "typetransparent, inform, inform_deny, "
20392073 "inform_redirect, always_transparent, "
2040 "always_refuse, always_nxdomain, noview "
2041 ", nodefault or ipset");
2074 "always_refuse, always_nxdomain, "
2075 "always_nodata, always_deny, always_null, "
2076 "noview, nodefault or ipset");
20422077 free($2);
20432078 free($3);
20442079 } else if(strcmp($3, "nodefault")==0) {
24122447 yyerror("expected yes or no.");
24132448 else cfg_parser->cfg->qname_minimisation_strict =
24142449 (strcmp($2, "yes")==0);
2450 free($2);
2451 }
2452 ;
2453 server_pad_responses: VAR_PAD_RESPONSES STRING_ARG
2454 {
2455 OUTYY(("P(server_pad_responses:%s)\n", $2));
2456 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
2457 yyerror("expected yes or no.");
2458 else cfg_parser->cfg->pad_responses =
2459 (strcmp($2, "yes")==0);
2460 free($2);
2461 }
2462 ;
2463 server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG
2464 {
2465 OUTYY(("P(server_pad_responses_block_size:%s)\n", $2));
2466 if(atoi($2) == 0)
2467 yyerror("number expected");
2468 else cfg_parser->cfg->pad_responses_block_size = atoi($2);
2469 free($2);
2470 }
2471 ;
2472 server_pad_queries: VAR_PAD_QUERIES STRING_ARG
2473 {
2474 OUTYY(("P(server_pad_queries:%s)\n", $2));
2475 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
2476 yyerror("expected yes or no.");
2477 else cfg_parser->cfg->pad_queries =
2478 (strcmp($2, "yes")==0);
2479 free($2);
2480 }
2481 ;
2482 server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG
2483 {
2484 OUTYY(("P(server_pad_queries_block_size:%s)\n", $2));
2485 if(atoi($2) == 0)
2486 yyerror("number expected");
2487 else cfg_parser->cfg->pad_queries_block_size = atoi($2);
24152488 free($2);
24162489 }
24172490 ;
8383 #define yyget_leng ub_c_get_leng
8484 #define yylineno ub_c_lineno
8585 #define yyget_text ub_c_get_text
86 #define yyss ub_c_ss
87 #define yysslim ub_c_sslim
88 #define yyssp ub_c_ssp
89 #define yystacksize ub_c_stacksize
90 #define yyvs ub_c_vs
91 #define yyvsp ub_c_vsp
8692
8793 #endif /* UTIL_CONFIGYYRENAME_H */
453453 size_t i, j, owner_pos;
454454 int r, owner_labs;
455455 uint16_t owner_ptr = 0;
456 time_t adjust = 0;
456457 struct packed_rrset_data* data = (struct packed_rrset_data*)
457458 key->entry.data;
458459
463464 owner_labs = dname_count_labels(key->rk.dname);
464465 owner_pos = sldns_buffer_position(pkt);
465466
466 /* For an rrset with a fixed TTL, use the rrset's TTL as given */
467 /** Determine relative time adjustment for TTL values.
468 * For an rrset with a fixed TTL, use the rrset's TTL as given. */
467469 if((key->rk.flags & PACKED_RRSET_FIXEDTTL) != 0)
468 timenow = 0;
470 adjust = 0;
471 else
472 adjust = SERVE_ORIGINAL_TTL ? data->ttl_add : timenow;
469473
470474 if(do_data) {
471475 const sldns_rr_descriptor* c = type_rdata_compressable(key);
478482 return r;
479483 sldns_buffer_write(pkt, &key->rk.type, 2);
480484 sldns_buffer_write(pkt, &key->rk.rrset_class, 2);
481 if(data->rr_ttl[j] < timenow)
485 if(data->rr_ttl[j] < adjust)
482486 sldns_buffer_write_u32(pkt,
483487 SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0);
484 else sldns_buffer_write_u32(pkt,
485 data->rr_ttl[j]-timenow);
488 else sldns_buffer_write_u32(pkt, data->rr_ttl[j]-adjust);
486489 if(c) {
487490 if((r=compress_rdata(pkt, data->rr_data[j],
488491 data->rr_len[j], region, tree, c))
516519 }
517520 sldns_buffer_write_u16(pkt, LDNS_RR_TYPE_RRSIG);
518521 sldns_buffer_write(pkt, &key->rk.rrset_class, 2);
519 if(data->rr_ttl[i] < timenow)
522 if(data->rr_ttl[i] < adjust)
520523 sldns_buffer_write_u32(pkt,
521524 SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0);
522 else sldns_buffer_write_u32(pkt,
523 data->rr_ttl[i]-timenow);
525 else sldns_buffer_write_u32(pkt, data->rr_ttl[i]-adjust);
524526 /* rrsig rdata cannot be compressed, perform 100+ byte
525527 * memcopy. */
526528 sldns_buffer_write(pkt, data->rr_data[i],
800802 return 1 + 2 + 2 + 4 + 2 + rdatalen;
801803 }
802804
803 void
804 attach_edns_record(sldns_buffer* pkt, struct edns_data* edns)
805 static void
806 attach_edns_record_max_msg_sz(sldns_buffer* pkt, struct edns_data* edns,
807 uint16_t max_msg_sz)
805808 {
806809 size_t len;
807810 size_t rdatapos;
808811 struct edns_option* opt;
809 if(!edns || !edns->edns_present)
810 return;
812 struct edns_option* padding_option = NULL;
811813 /* inc additional count */
812814 sldns_buffer_write_u16_at(pkt, 10,
813815 sldns_buffer_read_u16_at(pkt, 10) + 1);
825827 sldns_buffer_write_u16(pkt, 0); /* rdatalen */
826828 /* write rdata */
827829 for(opt=edns->opt_list; opt; opt=opt->next) {
830 if (opt->opt_code == LDNS_EDNS_PADDING) {
831 padding_option = opt;
832 continue;
833 }
828834 sldns_buffer_write_u16(pkt, opt->opt_code);
829835 sldns_buffer_write_u16(pkt, opt->opt_len);
830836 if(opt->opt_len != 0)
831837 sldns_buffer_write(pkt, opt->opt_data, opt->opt_len);
832838 }
839 if (padding_option && edns->padding_block_size ) {
840 size_t pad_pos = sldns_buffer_position(pkt);
841 size_t msg_sz = ((pad_pos + 3) / edns->padding_block_size + 1)
842 * edns->padding_block_size;
843 size_t pad_sz;
844
845 if (msg_sz > max_msg_sz)
846 msg_sz = max_msg_sz;
847
848 /* By use of calc_edns_field_size, calling functions should
849 * have made sure that there is enough space for at least a
850 * zero sized padding option.
851 */
852 log_assert(pad_pos + 4 <= msg_sz);
853
854 pad_sz = msg_sz - pad_pos - 4;
855 sldns_buffer_write_u16(pkt, LDNS_EDNS_PADDING);
856 sldns_buffer_write_u16(pkt, pad_sz);
857 if (pad_sz) {
858 memset(sldns_buffer_current(pkt), 0, pad_sz);
859 sldns_buffer_skip(pkt, pad_sz);
860 }
861 }
833862 if(edns->opt_list)
834863 sldns_buffer_write_u16_at(pkt, rdatapos,
835864 sldns_buffer_position(pkt)-rdatapos-2);
836865 sldns_buffer_flip(pkt);
866 }
867
868 void
869 attach_edns_record(sldns_buffer* pkt, struct edns_data* edns)
870 {
871 if(!edns || !edns->edns_present)
872 return;
873 attach_edns_record_max_msg_sz(pkt, edns, edns->udp_size);
837874 }
838875
839876 int
884921 }
885922 if(attach_edns && sldns_buffer_capacity(pkt) >=
886923 sldns_buffer_limit(pkt)+attach_edns)
887 attach_edns_record(pkt, edns);
924 attach_edns_record_max_msg_sz(pkt, edns, udpsize+attach_edns);
888925 return 1;
889926 }
890927
10191019 edns->bits = sldns_read_uint16(&found->rr_last->ttl_data[2]);
10201020 edns->udp_size = ntohs(found->rrset_class);
10211021 edns->opt_list = NULL;
1022 edns->padding_block_size = 0;
10221023
10231024 /* take the options */
10241025 rdata_len = found->rr_first->size-2;
10921093 edns->edns_version = sldns_buffer_read_u8(pkt);
10931094 edns->bits = sldns_buffer_read_u16(pkt);
10941095 edns->opt_list = NULL;
1096 edns->padding_block_size = 0;
10951097
10961098 /* take the options */
10971099 rdata_len = sldns_buffer_read_u16(pkt);
8686 extern time_t SERVE_EXPIRED_REPLY_TTL;
8787 /** Negative cache time (for entries without any RRs.) */
8888 #define NORR_TTL 5 /* seconds */
89 /** If we serve the original TTL or decrementing TTLs */
90 extern int SERVE_ORIGINAL_TTL;
8991
9092 /**
9193 * Data stored in scratch pad memory during parsing.
224226 uint16_t udp_size;
225227 /** rdata element list, or NULL if none */
226228 struct edns_option* opt_list;
229 /** block size to pad */
230 uint16_t padding_block_size;
227231 };
228232
229233 /**
6666 time_t SERVE_EXPIRED_TTL = 0;
6767 /** TTL to use for expired records */
6868 time_t SERVE_EXPIRED_REPLY_TTL = 30;
69 /** If we serve the original TTL or decrementing TTLs */
70 int SERVE_ORIGINAL_TTL = 0;
6971
7072 /** allocate qinfo, return 0 on error */
7173 static int
196198 if(*rr_ttl > MAX_NEG_TTL)
197199 *rr_ttl = MAX_NEG_TTL;
198200 }
199 if(*rr_ttl < MIN_TTL)
201 if(!SERVE_ORIGINAL_TTL && (*rr_ttl < MIN_TTL))
200202 *rr_ttl = MIN_TTL;
201 if(*rr_ttl > MAX_TTL)
203 if(!SERVE_ORIGINAL_TTL && (*rr_ttl > MAX_TTL))
202204 *rr_ttl = MAX_TTL;
203205 if(*rr_ttl < data->ttl)
204206 data->ttl = *rr_ttl;
320322 (sizeof(size_t)+sizeof(uint8_t*)+sizeof(time_t)) +
321323 pset->size;
322324 if(region)
323 *data = regional_alloc(region, s);
324 else *data = malloc(s);
325 *data = regional_alloc_zero(region, s);
326 else *data = calloc(1, s);
325327 if(!*data)
326328 return 0;
327329 /* copy & decompress */
525527 for(j=0; j<data->count + data->rrsig_count; j++) {
526528 data->rr_ttl[j] += timenow;
527529 }
530 data->ttl_add = timenow;
528531 }
529532 }
530533
10341037 struct inplace_cb* callback_list, enum inplace_cb_list_type type,
10351038 struct query_info* qinfo, struct module_qstate* qstate,
10361039 struct reply_info* rep, int rcode, struct edns_data* edns,
1037 struct comm_reply* repinfo, struct regional* region)
1040 struct comm_reply* repinfo, struct regional* region,
1041 struct timeval* start_time)
10381042 {
10391043 struct inplace_cb* cb;
10401044 struct edns_option* opt_list_out = NULL;
10471051 fptr_ok(fptr_whitelist_inplace_cb_reply_generic(
10481052 (inplace_cb_reply_func_type*)cb->cb, type));
10491053 (void)(*(inplace_cb_reply_func_type*)cb->cb)(qinfo, qstate, rep,
1050 rcode, edns, &opt_list_out, repinfo, region, cb->id, cb->cb_arg);
1054 rcode, edns, &opt_list_out, repinfo, region, start_time, cb->id, cb->cb_arg);
10511055 }
10521056 edns->opt_list = opt_list_out;
10531057 return 1;
10551059
10561060 int inplace_cb_reply_call(struct module_env* env, struct query_info* qinfo,
10571061 struct module_qstate* qstate, struct reply_info* rep, int rcode,
1058 struct edns_data* edns, struct comm_reply* repinfo, struct regional* region)
1062 struct edns_data* edns, struct comm_reply* repinfo, struct regional* region,
1063 struct timeval* start_time)
10591064 {
10601065 return inplace_cb_reply_call_generic(
10611066 env->inplace_cb_lists[inplace_cb_reply], inplace_cb_reply, qinfo,
1062 qstate, rep, rcode, edns, repinfo, region);
1067 qstate, rep, rcode, edns, repinfo, region, start_time);
10631068 }
10641069
10651070 int inplace_cb_reply_cache_call(struct module_env* env,
10661071 struct query_info* qinfo, struct module_qstate* qstate,
10671072 struct reply_info* rep, int rcode, struct edns_data* edns,
1068 struct comm_reply* repinfo, struct regional* region)
1073 struct comm_reply* repinfo, struct regional* region,
1074 struct timeval* start_time)
10691075 {
10701076 return inplace_cb_reply_call_generic(
10711077 env->inplace_cb_lists[inplace_cb_reply_cache], inplace_cb_reply_cache,
1072 qinfo, qstate, rep, rcode, edns, repinfo, region);
1078 qinfo, qstate, rep, rcode, edns, repinfo, region, start_time);
10731079 }
10741080
10751081 int inplace_cb_reply_local_call(struct module_env* env,
10761082 struct query_info* qinfo, struct module_qstate* qstate,
10771083 struct reply_info* rep, int rcode, struct edns_data* edns,
1078 struct comm_reply* repinfo, struct regional* region)
1084 struct comm_reply* repinfo, struct regional* region,
1085 struct timeval* start_time)
10791086 {
10801087 return inplace_cb_reply_call_generic(
10811088 env->inplace_cb_lists[inplace_cb_reply_local], inplace_cb_reply_local,
1082 qinfo, qstate, rep, rcode, edns, repinfo, region);
1089 qinfo, qstate, rep, rcode, edns, repinfo, region, start_time);
10831090 }
10841091
10851092 int inplace_cb_reply_servfail_call(struct module_env* env,
10861093 struct query_info* qinfo, struct module_qstate* qstate,
10871094 struct reply_info* rep, int rcode, struct edns_data* edns,
1088 struct comm_reply* repinfo, struct regional* region)
1095 struct comm_reply* repinfo, struct regional* region,
1096 struct timeval* start_time)
10891097 {
10901098 /* We are going to servfail. Remove any potential edns options. */
10911099 if(qstate)
10931101 return inplace_cb_reply_call_generic(
10941102 env->inplace_cb_lists[inplace_cb_reply_servfail],
10951103 inplace_cb_reply_servfail, qinfo, qstate, rep, rcode, edns, repinfo,
1096 region);
1104 region, start_time);
10971105 }
10981106
10991107 int inplace_cb_query_call(struct module_env* env, struct query_info* qinfo,
553553 * @param edns: edns data of the reply.
554554 * @param repinfo: comm_reply. Reply information for a communication point.
555555 * @param region: region to store data.
556 * @param start_time: the start time of recursion, when the packet arrived,
557 * or the current time for cache responses.
556558 * @return false on failure (a callback function returned an error).
557559 */
558560 int inplace_cb_reply_call(struct module_env* env, struct query_info* qinfo,
559561 struct module_qstate* qstate, struct reply_info* rep, int rcode,
560 struct edns_data* edns, struct comm_reply* repinfo, struct regional* region);
562 struct edns_data* edns, struct comm_reply* repinfo, struct regional* region,
563 struct timeval* start_time);
561564
562565 /**
563566 * Call the registered functions in the inplace_cb_reply_cache linked list.
570573 * @param edns: edns data of the reply. Edns input can be found here.
571574 * @param repinfo: comm_reply. Reply information for a communication point.
572575 * @param region: region to store data.
576 * @param start_time: the start time of recursion, when the packet arrived,
577 * or the current time for cache responses.
573578 * @return false on failure (a callback function returned an error).
574579 */
575580 int inplace_cb_reply_cache_call(struct module_env* env,
576581 struct query_info* qinfo, struct module_qstate* qstate,
577582 struct reply_info* rep, int rcode, struct edns_data* edns,
578 struct comm_reply* repinfo, struct regional* region);
583 struct comm_reply* repinfo, struct regional* region,
584 struct timeval* start_time);
579585
580586 /**
581587 * Call the registered functions in the inplace_cb_reply_local linked list.
588594 * @param edns: edns data of the reply. Edns input can be found here.
589595 * @param repinfo: comm_reply. Reply information for a communication point.
590596 * @param region: region to store data.
597 * @param start_time: the start time of recursion, when the packet arrived,
598 * or the current time for cache responses.
591599 * @return false on failure (a callback function returned an error).
592600 */
593601 int inplace_cb_reply_local_call(struct module_env* env,
594602 struct query_info* qinfo, struct module_qstate* qstate,
595603 struct reply_info* rep, int rcode, struct edns_data* edns,
596 struct comm_reply* repinfo, struct regional* region);
604 struct comm_reply* repinfo, struct regional* region,
605 struct timeval* start_time);
597606
598607 /**
599608 * Call the registered functions in the inplace_cb_reply linked list.
607616 * is NULL.
608617 * @param repinfo: comm_reply. Reply information for a communication point.
609618 * @param region: region to store data.
619 * @param start_time: the start time of recursion, when the packet arrived,
620 * or the current time for cache responses.
610621 * @return false on failure (a callback function returned an error).
611622 */
612623 int inplace_cb_reply_servfail_call(struct module_env* env,
613624 struct query_info* qinfo, struct module_qstate* qstate,
614625 struct reply_info* rep, int rcode, struct edns_data* edns,
615 struct comm_reply* repinfo, struct regional* region);
626 struct comm_reply* repinfo, struct regional* region,
627 struct timeval* start_time);
616628
617629 /**
618630 * Call the registered functions in the inplace_cb_query linked list.
219219 {
220220 size_t i;
221221 size_t total = data->count + data->rrsig_count;
222 data->ttl_add = add;
222223 data->ttl += add;
223224 for(i=0; i<total; i++)
224225 data->rr_ttl[i] += add;
274275 entry.data;
275276 uint8_t rr[65535];
276277 size_t rlen = rrset->rk.dname_len + 2 + 2 + 4 + d->rr_len[i];
278 time_t adjust = 0;
277279 log_assert(dest_len > 0 && dest);
278280 if(rlen > dest_len) {
279281 dest[0] = 0;
284286 memmove(rr+rrset->rk.dname_len, &rrset->rk.type, 2);
285287 else sldns_write_uint16(rr+rrset->rk.dname_len, LDNS_RR_TYPE_RRSIG);
286288 memmove(rr+rrset->rk.dname_len+2, &rrset->rk.rrset_class, 2);
289 adjust = SERVE_ORIGINAL_TTL ? d->ttl_add : now;
290 if (d->rr_ttl[i] < adjust) adjust = d->rr_ttl[i]; /* Prevent negative TTL overflow */
287291 sldns_write_uint32(rr+rrset->rk.dname_len+4,
288 (uint32_t)(d->rr_ttl[i]-now));
292 (uint32_t)(d->rr_ttl[i]-adjust));
289293 memmove(rr+rrset->rk.dname_len+8, d->rr_data[i], d->rr_len[i]);
290294 if(sldns_wire2str_rr_buf(rr, rlen, dest, dest_len) == -1) {
291295 log_info("rrbuf failure %d %s", (int)d->rr_len[i], dest);
331335 struct packed_rrset_data* data = (struct packed_rrset_data*)
332336 key->entry.data;
333337 size_t dsize, i;
338 time_t adjust = 0;
334339 if(!ck)
335340 return NULL;
336341 ck->id = key->id;
349354 ck->entry.data = d;
350355 packed_rrset_ptr_fixup(d);
351356 /* make TTLs relative - once per rrset */
357 adjust = SERVE_ORIGINAL_TTL ? data->ttl_add : now;
352358 for(i=0; i<d->count + d->rrsig_count; i++) {
353 if(d->rr_ttl[i] < now)
359 if(d->rr_ttl[i] < adjust)
354360 d->rr_ttl[i] = SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0;
355 else d->rr_ttl[i] -= now;
356 }
357 if(d->ttl < now)
361 else d->rr_ttl[i] -= adjust;
362 }
363 if(d->ttl < adjust)
358364 d->ttl = SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0;
359 else d->ttl -= now;
365 else d->ttl -= adjust;
366 d->ttl_add = 0; /* TTLs have been made relative */
360367 return ck;
361368 }
362369
232232 * the ttl value to send changes due to time.
233233 */
234234 struct packed_rrset_data {
235 /** Timestamp added to TTLs in the packed data.
236 * Needed to support serving original TTLs. */
237 time_t ttl_add;
235238 /** TTL (in seconds like time()) of the rrset.
236239 * Same for all RRs see rfc2181(5.2). */
237240 time_t ttl;
159159 !edns_keepalive(edns_out, edns_in, c, region))
160160 return 0;
161161
162 if (cfg->nsid && edns_opt_list_find(edns_in->opt_list, LDNS_EDNS_NSID)
163 && !edns_opt_list_append(&edns_out->opt_list,
164 LDNS_EDNS_NSID, cfg->nsid_len, cfg->nsid, region))
165 return 0;
166
167 if(!cfg->pad_responses || c->type != comm_tcp || !c->ssl
168 || !edns_opt_list_find(edns_in->opt_list, LDNS_EDNS_PADDING)) {
169 ; /* pass */
170 }
171
172 else if(!edns_opt_list_append(&edns_out->opt_list, LDNS_EDNS_PADDING
173 , 0, NULL, region))
174 return 0;
175 else
176 edns_out->padding_block_size = cfg->pad_responses_block_size;
177
162178 return 1;
163179 }
20132013 2368,
20142014 2370,
20152015 2372,
2016 2378,
20162017 2381,
20172018 2382,
20182019 2383,
35733574 3977,
35743575 3978,
35753576 3979,
3576 3980,
35773577 3981,
35783578 3982,
35793579 3983,
256256 typedef int inplace_cb_reply_func_type(struct query_info* qinfo,
257257 struct module_qstate* qstate, struct reply_info* rep, int rcode,
258258 struct edns_data* edns, struct edns_option** opt_list_out,
259 struct comm_reply* repinfo, struct regional* region, int id,
260 void* callback);
259 struct comm_reply* repinfo, struct regional* region,
260 struct timeval* start_time, int id, void* callback);
261261
262262 /**
263263 * Inplace callback function called before sending the query to a nameserver.
320320 struct sockaddr_storage* addr, socklen_t* addrlen, int* af)
321321 {
322322 uint8_t* ia;
323 size_t dnamelabs = dname_count_labels(dname);
323 int dnamelabs = dname_count_labels(dname);
324324 uint8_t lablen;
325325 char* e = NULL;
326326 int z = 0;
332332 /* send a UDP reply */
333333 int
334334 comm_point_send_udp_msg(struct comm_point *c, sldns_buffer* packet,
335 struct sockaddr* addr, socklen_t addrlen)
335 struct sockaddr* addr, socklen_t addrlen, int is_connected)
336336 {
337337 ssize_t sent;
338338 log_assert(c->fd != -1);
340340 if(sldns_buffer_remaining(packet) == 0)
341341 log_err("error: send empty UDP packet");
342342 #endif
343 if(addr) {
344 log_assert(addr && addrlen > 0);
343 log_assert(addr && addrlen > 0);
344 if(!is_connected) {
345345 sent = sendto(c->fd, (void*)sldns_buffer_begin(packet),
346346 sldns_buffer_remaining(packet), 0,
347347 addr, addrlen);
366366 #endif
367367 int e;
368368 fd_set_block(c->fd);
369 sent = sendto(c->fd, (void*)sldns_buffer_begin(packet),
370 sldns_buffer_remaining(packet), 0,
371 addr, addrlen);
369 if (!is_connected) {
370 sent = sendto(c->fd, (void*)sldns_buffer_begin(packet),
371 sldns_buffer_remaining(packet), 0,
372 addr, addrlen);
373 } else {
374 sent = send(c->fd, (void*)sldns_buffer_begin(packet),
375 sldns_buffer_remaining(packet), 0);
376 }
372377 e = errno;
373378 fd_set_nonblock(c->fd);
374379 errno = e;
377382 if(sent == -1) {
378383 if(!udp_send_errno_needs_log(addr, addrlen))
379384 return 0;
380 verbose(VERB_OPS, "sendto failed: %s", sock_strerror(errno));
381 log_addr(VERB_OPS, "remote address is",
382 (struct sockaddr_storage*)addr, addrlen);
385 if (!is_connected) {
386 verbose(VERB_OPS, "sendto failed: %s", sock_strerror(errno));
387 } else {
388 verbose(VERB_OPS, "send failed: %s", sock_strerror(errno));
389 }
390 if(addr)
391 log_addr(VERB_OPS, "remote address is",
392 (struct sockaddr_storage*)addr, addrlen);
383393 return 0;
384394 } else if((size_t)sent != sldns_buffer_remaining(packet)) {
385395 log_err("sent %d in place of %d bytes",
582592 static int udp_recv_needs_log(int err)
583593 {
584594 switch(err) {
595 case EACCES: /* some hosts send ICMP 'Permission Denied' */
596 #ifndef USE_WINSOCK
585597 case ECONNREFUSED:
586598 # ifdef ENETUNREACH
587599 case ENETUNREACH:
595607 # ifdef ENETDOWN
596608 case ENETDOWN:
597609 # endif
610 #else /* USE_WINSOCK */
611 case WSAECONNREFUSED:
612 case WSAENETUNREACH:
613 case WSAEHOSTDOWN:
614 case WSAEHOSTUNREACH:
615 case WSAENETDOWN:
616 #endif
598617 if(verbosity >= VERB_ALGO)
599618 return 1;
600619 return 0;
735754 #else
736755 if(WSAGetLastError() != WSAEINPROGRESS &&
737756 WSAGetLastError() != WSAECONNRESET &&
738 WSAGetLastError()!= WSAEWOULDBLOCK)
757 WSAGetLastError()!= WSAEWOULDBLOCK &&
758 udp_recv_needs_log(WSAGetLastError()))
739759 log_err("recvfrom failed: %s",
740760 wsa_strerror(WSAGetLastError()));
741761 #endif
753773 buffer = rep.c->buffer;
754774 #endif
755775 (void)comm_point_send_udp_msg(rep.c, buffer,
756 (struct sockaddr*)&rep.addr, rep.addrlen);
776 (struct sockaddr*)&rep.addr, rep.addrlen, 0);
757777 }
758778 if(!rep.c || rep.c->fd != fd) /* commpoint closed to -1 or reused for
759779 another UDP port. Note rep.c cannot be reused with TCP fd. */
760780 break;
761781 }
782 }
783
784 int adjusted_tcp_timeout(struct comm_point* c)
785 {
786 if(c->tcp_timeout_msec < TCP_QUERY_TIMEOUT_MINIMUM)
787 return TCP_QUERY_TIMEOUT_MINIMUM;
788 return c->tcp_timeout_msec;
762789 }
763790
764791 /** Use a new tcp handler for new query fd, set to read query */
794821 c->tcp_timeout_msec /= 500;
795822 else if (handler_usage > 80)
796823 c->tcp_timeout_msec = 0;
797 comm_point_start_listening(c, fd,
798 c->tcp_timeout_msec < TCP_QUERY_TIMEOUT_MINIMUM
799 ? TCP_QUERY_TIMEOUT_MINIMUM
800 : c->tcp_timeout_msec);
824 comm_point_start_listening(c, fd, adjusted_tcp_timeout(c));
801825 }
802826
803827 void comm_base_handle_slow_accept(int ATTR_UNUSED(fd),
11071131 if( (*c->callback)(c, c->cb_arg, NETEVENT_PKT_WRITTEN,
11081132 &c->repinfo) ) {
11091133 comm_point_start_listening(c, -1,
1110 c->tcp_timeout_msec);
1134 adjusted_tcp_timeout(c));
11111135 }
11121136 } else {
1113 comm_point_start_listening(c, -1, c->tcp_timeout_msec);
1137 comm_point_start_listening(c, -1,
1138 adjusted_tcp_timeout(c));
11141139 }
11151140 }
11161141 }
11311156 comm_point_stop_listening(c);
11321157 fptr_ok(fptr_whitelist_comm_point(c->callback));
11331158 if( (*c->callback)(c, c->cb_arg, NETEVENT_NOERROR, &c->repinfo) ) {
1134 comm_point_start_listening(c, -1, c->tcp_timeout_msec);
1159 comm_point_start_listening(c, -1,
1160 adjusted_tcp_timeout(c));
11351161 }
11361162 }
11371163 }
15931619 if(errno == ECONNRESET && verbosity < 2)
15941620 return 0; /* silence reset by peer */
15951621 #endif
1622 #ifdef ENETUNREACH
1623 if(errno == ENETUNREACH && verbosity < 2)
1624 return 0; /* silence it */
1625 #endif
1626 #ifdef EHOSTDOWN
1627 if(errno == EHOSTDOWN && verbosity < 2)
1628 return 0; /* silence it */
1629 #endif
1630 #ifdef EHOSTUNREACH
1631 if(errno == EHOSTUNREACH && verbosity < 2)
1632 return 0; /* silence it */
1633 #endif
1634 #ifdef ENETDOWN
1635 if(errno == ENETDOWN && verbosity < 2)
1636 return 0; /* silence it */
1637 #endif
1638 #ifdef EACCES
1639 if(errno == EACCES && verbosity < 2)
1640 return 0; /* silence it */
1641 #endif
1642 #ifdef ENOTCONN
1643 if(errno == ENOTCONN) {
1644 log_err_addr("read (in tcp s) failed and this could be because TCP Fast Open is enabled [--disable-tfo-client --disable-tfo-server] but does not work", sock_strerror(errno),
1645 &c->repinfo.addr, c->repinfo.addrlen);
1646 return 0;
1647 }
1648 #endif
15961649 #else /* USE_WINSOCK */
15971650 if(WSAGetLastError() == WSAECONNRESET)
15981651 return 0;
18911944 log_assert(c->tcp_write_and_read || sldns_buffer_remaining(buffer) > 0);
18921945 log_assert(!c->tcp_write_and_read || c->tcp_write_byte_count < c->tcp_write_pkt_len + 2);
18931946 if(c->tcp_write_and_read) {
1894 r = send(fd, (void*)c->tcp_write_pkt + c->tcp_write_byte_count - 2,
1947 r = send(fd, (void*)(c->tcp_write_pkt + c->tcp_write_byte_count - 2),
18951948 c->tcp_write_pkt_len + 2 - c->tcp_write_byte_count, 0);
18961949 } else {
18971950 r = send(fd, (void*)sldns_buffer_current(buffer),
23592412 return 1;
23602413 }
23612414
2362 /** handle nonchunked data segment, return 0=fail, 1=wait, 2=process more */
2415 /** handle chunked data segment, return 0=fail, 1=wait, 2=process more */
23632416 static int
23642417 http_chunked_segment(struct comm_point* c)
23652418 {
23692422 */
23702423 size_t remainbufferlen;
23712424 size_t got_now = sldns_buffer_limit(c->buffer) - c->http_stored;
2425 verbose(VERB_ALGO, "http_chunked_segment: got now %d, tcpbytcount %d, http_stored %d, buffer pos %d, buffer limit %d", (int)got_now, (int)c->tcp_byte_count, (int)c->http_stored, (int)sldns_buffer_position(c->buffer), (int)sldns_buffer_limit(c->buffer));
23722426 if(c->tcp_byte_count <= got_now) {
23732427 /* the chunk has completed (with perhaps some extra data
23742428 * from next chunk header and next chunk) */
24362490
24372491 #ifdef HAVE_NGHTTP2
24382492 /** Create new http2 session. Called when creating handling comm point. */
2439 struct http2_session* http2_session_create(struct comm_point* c)
2493 static struct http2_session* http2_session_create(struct comm_point* c)
24402494 {
24412495 struct http2_session* session = calloc(1, sizeof(*session));
24422496 if(!session) {
24502504 #endif
24512505
24522506 /** Delete http2 session. After closing connection or on error */
2453 void http2_session_delete(struct http2_session* h2_session)
2507 static void http2_session_delete(struct http2_session* h2_session)
24542508 {
24552509 #ifdef HAVE_NGHTTP2
24562510 if(h2_session->callbacks)
25262580
25272581 /** remove stream from session linked list. After stream close callback or
25282582 * closing connection */
2529 void http2_session_remove_stream(struct http2_session* h2_session,
2583 static void http2_session_remove_stream(struct http2_session* h2_session,
25302584 struct http2_stream* h2_stream)
25312585 {
25322586 if(h2_stream->prev)
26522706 if(nghttp2_session_want_write(c->h2_session->session)) {
26532707 c->tcp_is_reading = 0;
26542708 comm_point_stop_listening(c);
2655 comm_point_start_listening(c, -1, c->tcp_timeout_msec);
2709 comm_point_start_listening(c, -1, adjusted_tcp_timeout(c));
26562710 } else if(!nghttp2_session_want_read(c->h2_session->session))
26572711 return 0; /* connection can be closed */
26582712 return 1;
27082762 }
27092763
27102764 sldns_buffer_flip(c->buffer);
2765 /* if we are partway in a segment of data, position us at the point
2766 * where we left off previously */
2767 if(c->http_stored < sldns_buffer_limit(c->buffer))
2768 sldns_buffer_set_position(c->buffer, c->http_stored);
2769 else sldns_buffer_set_position(c->buffer, sldns_buffer_limit(c->buffer));
27112770
27122771 while(sldns_buffer_remaining(c->buffer) > 0) {
27132772 /* Handle HTTP/1.x data */
29703029 if(nghttp2_session_want_read(c->h2_session->session)) {
29713030 c->tcp_is_reading = 1;
29723031 comm_point_stop_listening(c);
2973 comm_point_start_listening(c, -1, c->tcp_timeout_msec);
3032 comm_point_start_listening(c, -1, adjusted_tcp_timeout(c));
29743033 } else if(!nghttp2_session_want_write(c->h2_session->session))
29753034 return 0; /* connection can be closed */
29763035 return 1;
31773236 comm_point_delete(c);
31783237 return NULL;
31793238 }
3239 c->event_added = 1;
31803240 return c;
31813241 }
31823242
32363296 comm_point_delete(c);
32373297 return NULL;
32383298 }
3299 c->event_added = 1;
32393300 return c;
32403301 }
32413302
35203581 comm_point_delete(c);
35213582 return NULL;
35223583 }
3584 c->event_added = 1;
35233585 /* now prealloc the handlers */
35243586 for(i=0; i<num; i++) {
35253587 if(port_type == listen_type_tcp ||
37433805 free(c);
37443806 return NULL;
37453807 }
3808 c->event_added = 1;
37463809 return c;
37473810 }
37483811
38053868 free(c);
38063869 return NULL;
38073870 }
3871 c->event_added = 1;
38083872 return c;
38093873 }
38103874
38153879 return;
38163880 if(c->fd != -1) {
38173881 verbose(5, "comm_point_close of %d: event_del", c->fd);
3818 if(ub_event_del(c->ev->ev) != 0) {
3819 log_err("could not event_del on close");
3882 if(c->event_added) {
3883 if(ub_event_del(c->ev->ev) != 0) {
3884 log_err("could not event_del on close");
3885 }
3886 c->event_added = 0;
38203887 }
38213888 }
38223889 tcl_close_connection(c->tcl_addr);
39003967 repinfo->addrlen, repinfo);
39013968 else
39023969 comm_point_send_udp_msg(repinfo->c, buffer,
3903 (struct sockaddr*)&repinfo->addr, repinfo->addrlen);
3970 (struct sockaddr*)&repinfo->addr, repinfo->addrlen, 0);
39043971 #ifdef USE_DNSTAP
39053972 if(repinfo->c->dtenv != NULL &&
39063973 repinfo->c->dtenv->log_client_response_messages)
39283995 repinfo->c->tcp_is_reading = 0;
39293996 comm_point_stop_listening(repinfo->c);
39303997 comm_point_start_listening(repinfo->c, -1,
3931 repinfo->c->tcp_timeout_msec);
3998 adjusted_tcp_timeout(repinfo->c));
39323999 return;
39334000 } else {
39344001 comm_point_start_listening(repinfo->c, -1,
3935 repinfo->c->tcp_timeout_msec);
4002 adjusted_tcp_timeout(repinfo->c));
39364003 }
39374004 }
39384005 }
39654032 comm_point_stop_listening(struct comm_point* c)
39664033 {
39674034 verbose(VERB_ALGO, "comm point stop listening %d", c->fd);
3968 if(ub_event_del(c->ev->ev) != 0) {
3969 log_err("event_del error to stoplisten");
4035 if(c->event_added) {
4036 if(ub_event_del(c->ev->ev) != 0) {
4037 log_err("event_del error to stoplisten");
4038 }
4039 c->event_added = 0;
39704040 }
39714041 }
39724042
39784048 if(c->type == comm_tcp_accept && !c->tcp_free) {
39794049 /* no use to start listening no free slots. */
39804050 return;
4051 }
4052 if(c->event_added) {
4053 if(ub_event_del(c->ev->ev) != 0) {
4054 log_err("event_del error to startlisten");
4055 }
4056 c->event_added = 0;
39814057 }
39824058 if(msec != -1 && msec != 0) {
39834059 if(!c->timeout) {
40184094 if(ub_event_add(c->ev->ev, msec==0?NULL:c->timeout) != 0) {
40194095 log_err("event_add failed. in cpsl.");
40204096 }
4097 c->event_added = 1;
40214098 }
40224099
40234100 void comm_point_listen_for_rw(struct comm_point* c, int rd, int wr)
40244101 {
40254102 verbose(VERB_ALGO, "comm point listen_for_rw %d %d", c->fd, wr);
4026 if(ub_event_del(c->ev->ev) != 0) {
4027 log_err("event_del error to cplf");
4103 if(c->event_added) {
4104 if(ub_event_del(c->ev->ev) != 0) {
4105 log_err("event_del error to cplf");
4106 }
4107 c->event_added = 0;
40284108 }
40294109 ub_event_del_bits(c->ev->ev, UB_EV_READ|UB_EV_WRITE);
40304110 if(rd) ub_event_add_bits(c->ev->ev, UB_EV_READ);
40324112 if(ub_event_add(c->ev->ev, c->timeout) != 0) {
40334113 log_err("event_add failed. in cplf.");
40344114 }
4115 c->event_added = 1;
40354116 }
40364117
40374118 size_t comm_point_get_mem(struct comm_point* c)
165165 struct comm_point {
166166 /** behind the scenes structure, with say libevent info. alloced. */
167167 struct internal_event* ev;
168 /** if the event is added or not */
169 int event_added;
168170
169171 /** file descriptor for communication point */
170172 int fd;
632634 * @param addr: where to send it to. If NULL, send is performed,
633635 * for connected sockets, to the connected address.
634636 * @param addrlen: length of addr.
637 * @param is_connected: if the UDP socket is connect()ed.
635638 * @return: false on a failure.
636639 */
637640 int comm_point_send_udp_msg(struct comm_point* c, struct sldns_buffer* packet,
638 struct sockaddr* addr, socklen_t addrlen);
641 struct sockaddr* addr, socklen_t addrlen,int is_connected);
639642
640643 /**
641644 * Stop listening for input on the commpoint. No callbacks will happen.
659662 * @param wr: if true, listens for writing.
660663 */
661664 void comm_point_listen_for_rw(struct comm_point* c, int rd, int wr);
665
666 /**
667 * For TCP handlers that use c->tcp_timeout_msec, this routine adjusts
668 * it with the minimum. Otherwise, a 0 value advertised without the
669 * minimum applied moves to a 0 in comm_point_start_listening and that
670 * routine treats it as no timeout, listen forever, which is not wanted.
671 * @param c: comm point to use the tcp_timeout_msec of.
672 * @return adjusted tcp_timeout_msec value with the minimum if smaller.
673 */
674 int adjusted_tcp_timeout(struct comm_point* c);
662675
663676 /**
664677 * Get size of memory used by comm point.
397397 return;
398398 }
399399 table->num--;
400 table->space_used -= (*table->sizefunc)(entry->key, entry->data);
401 lock_quick_unlock(&table->lock);
400 table->space_used -= (*table->sizefunc)(entry->key, entry->data);
402401 lock_rw_wrlock(&entry->lock);
403402 if(table->markdelfunc)
404403 (*table->markdelfunc)(entry->key);
405404 lock_rw_unlock(&entry->lock);
406405 lock_quick_unlock(&bin->lock);
406 lock_quick_unlock(&table->lock);
407407 /* finish removal */
408408 d = entry->data;
409409 (*table->delkeyfunc)(entry->key, table->cb_arg);
23642364 edns.edns_version = 0;
23652365 edns.bits = EDNS_DO;
23662366 edns.opt_list = NULL;
2367 edns.padding_block_size = 0;
23672368 if(sldns_buffer_capacity(buf) < 65535)
23682369 edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
23692370 else edns.udp_size = 65535;